Download node_modules/@modelcontextprotocol/sdk/dist/cjs/inMemory.js from Snapkitty/agentscope-sift: direct link, hf CLI and curl.
- Browser
- Download file 1.92 kB
-
https://huggingface.co/Snapkitty/agentscope-sift/resolve/main/node_modules/%40modelcontextprotocol/sdk/dist/cjs/inMemory.js
- Command line
-
hf download hf://Snapkitty/agentscope-sift/node_modules/@modelcontextprotocol/sdk/dist/cjs/inMemory.js
-
curl -L -o inMemory.js https://huggingface.co/Snapkitty/agentscope-sift/resolve/main/node_modules/%40modelcontextprotocol/sdk/dist/cjs/inMemory.js
1.92 kB
| ; | |
| Object.defineProperty(exports, "__esModule", { value: true }); | |
| exports.InMemoryTransport = void 0; | |
| /** | |
| * In-memory transport for creating clients and servers that talk to each other within the same process. | |
| */ | |
| class InMemoryTransport { | |
| constructor() { | |
| this._messageQueue = []; | |
| } | |
| /** | |
| * Creates a pair of linked in-memory transports that can communicate with each other. One should be passed to a Client and one to a Server. | |
| */ | |
| static createLinkedPair() { | |
| const clientTransport = new InMemoryTransport(); | |
| const serverTransport = new InMemoryTransport(); | |
| clientTransport._otherTransport = serverTransport; | |
| serverTransport._otherTransport = clientTransport; | |
| return [clientTransport, serverTransport]; | |
| } | |
| async start() { | |
| // Process any messages that were queued before start was called | |
| while (this._messageQueue.length > 0) { | |
| const queuedMessage = this._messageQueue.shift(); | |
| this.onmessage?.(queuedMessage.message, queuedMessage.extra); | |
| } | |
| } | |
| async close() { | |
| const other = this._otherTransport; | |
| this._otherTransport = undefined; | |
| await other?.close(); | |
| this.onclose?.(); | |
| } | |
| /** | |
| * Sends a message with optional auth info. | |
| * This is useful for testing authentication scenarios. | |
| */ | |
| async send(message, options) { | |
| if (!this._otherTransport) { | |
| throw new Error('Not connected'); | |
| } | |
| if (this._otherTransport.onmessage) { | |
| this._otherTransport.onmessage(message, { authInfo: options?.authInfo }); | |
| } | |
| else { | |
| this._otherTransport._messageQueue.push({ message, extra: { authInfo: options?.authInfo } }); | |
| } | |
| } | |
| } | |
| exports.InMemoryTransport = InMemoryTransport; | |
| //# sourceMappingURL=inMemory.js.map |