(transport: StdioClientTransport)
| 79 | ); |
| 80 | |
| 81 | const messageQueue = (transport: StdioClientTransport) => { |
| 82 | const messages: Array<JSONRPCMessage> = []; |
| 83 | const waiters: Array<(message: JSONRPCMessage) => void> = []; |
| 84 | |
| 85 | transport.onmessage = (message) => { |
| 86 | const waiter = waiters.shift(); |
| 87 | if (waiter) { |
| 88 | waiter(message); |
| 89 | } else { |
| 90 | messages.push(message); |
| 91 | } |
| 92 | }; |
| 93 | |
| 94 | return { |
| 95 | next: (): Promise<JSONRPCMessage> => { |
| 96 | const message = messages.shift(); |
| 97 | return message ? Promise.resolve(message) : new Promise((resolve) => waiters.push(resolve)); |
| 98 | }, |
| 99 | }; |
| 100 | }; |
| 101 | |
| 102 | describe("MCP stdio integration", () => { |
| 103 | // The regression: a client that opens with an unsupported probe used to get |
no test coverage detected