@procedures/mcp-server 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +211 -292
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/host.d.ts +168 -0
  5. package/dist/host.d.ts.map +1 -0
  6. package/dist/host.js +182 -0
  7. package/dist/host.js.map +1 -0
  8. package/dist/index.d.ts +6 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +5 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/procedures/mcp/serve.d.ts +18 -0
  13. package/dist/procedures/mcp/serve.d.ts.map +1 -1
  14. package/dist/procedures/mcp/serve.js +36 -31
  15. package/dist/procedures/mcp/serve.js.map +1 -1
  16. package/dist/transport/http.d.ts +4 -0
  17. package/dist/transport/http.d.ts.map +1 -1
  18. package/dist/transport/http.js +9 -3
  19. package/dist/transport/http.js.map +1 -1
  20. package/dist/transport/mcp-transport.d.ts +26 -0
  21. package/dist/transport/mcp-transport.d.ts.map +1 -1
  22. package/dist/transport/mcp-transport.js +184 -19
  23. package/dist/transport/mcp-transport.js.map +1 -1
  24. package/dist/transport/stdio.d.ts +4 -2
  25. package/dist/transport/stdio.d.ts.map +1 -1
  26. package/dist/transport/stdio.js +4 -3
  27. package/dist/transport/stdio.js.map +1 -1
  28. package/dist/types.d.ts +70 -2
  29. package/dist/types.d.ts.map +1 -1
  30. package/dist/untrusted.d.ts +56 -0
  31. package/dist/untrusted.d.ts.map +1 -0
  32. package/dist/untrusted.js +68 -0
  33. package/dist/untrusted.js.map +1 -0
  34. package/package.json +4 -4
  35. package/src/host.ts +346 -0
  36. package/src/index.ts +15 -0
  37. package/src/procedures/mcp/serve.ts +54 -36
  38. package/src/transport/http.ts +9 -3
  39. package/src/transport/mcp-transport.ts +206 -21
  40. package/src/transport/stdio.ts +5 -3
  41. package/src/types.ts +82 -2
  42. package/src/untrusted.ts +109 -0
@@ -8,11 +8,15 @@
8
8
  * a local server apply: the server listens on loopback by default, it refuses a web page of
9
9
  * another host or origin (DNS rebinding, cross-site requests), and with a token it refuses a
10
10
  * request without the token.
11
+ *
12
+ * Each tool call carries the credentials of its HTTP request (CLI-10), so the request hook of the
13
+ * server (`principalOf`) and its token check apply. A server that reads cookies trusts a request
14
+ * with a cookie only from a named origin (CSRF).
11
15
  */
12
16
  import { randomUUID } from "node:crypto";
13
17
  import { createServer } from "node:http";
14
18
  import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
15
- import { bearerOf, checkBrowserRequest, tokenMatches } from "@procedures/client";
19
+ import { bearerOf, checkBrowserRequest, hasAmbientCredentials, tokenMatches } from "@procedures/client";
16
20
  /**
17
21
  * This function makes the Streamable HTTP endpoint of an MCP server. `connect` connects the
18
22
  * transport of a new session to an MCP server of its own.
@@ -55,8 +59,10 @@ export function createHttpTransport(options, connect) {
55
59
  refuse(res, 404, "NOT_FOUND", `No MCP endpoint at ${url.pathname}`);
56
60
  return;
57
61
  }
58
- // A web page must not reach the tools: the host and the origin of the request
59
- const guard = checkBrowserRequest(req, { ...(options.allowedOrigins ? { allowedOrigins: options.allowedOrigins } : {}) });
62
+ // A web page must not reach the tools: the host and the origin of the request. A server that
63
+ // reads cookies trusts a request with ambient credentials only from a named origin (CSRF)
64
+ const ambient = options.ambientCredentials === "always" || hasAmbientCredentials(req.headers);
65
+ const guard = checkBrowserRequest(req, { ...(options.allowedOrigins ? { allowedOrigins: options.allowedOrigins } : {}) }, false, ambient);
60
66
  if (!guard.ok) {
61
67
  refuse(res, guard.status, guard.code, guard.message);
62
68
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/transport/http.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAwE,MAAM,WAAW,CAAC;AAE/G,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAaxG;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,OAA6B,EAC7B,OAAoE;IAEpE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;IAC3C,MAAM,MAAM,GAAe,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC;IAC5D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAyC,CAAC;IAElE,MAAM,MAAM,GAAG,CAAC,GAAmB,EAAE,MAAc,EAAE,IAAY,EAAE,OAAe,EAAQ,EAAE;QAC1F,GAAG,CAAC,UAAU,GAAG,MAAM,CAAC;QACxB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;QAClD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1G,CAAC,CAAC;IAEF,4FAA4F;IAC5F,MAAM,WAAW,GAAG,KAAK,EAAE,GAAoB,EAAsD,EAAE;QACrG,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAChD,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAClE,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO,SAAS,CAAC;QAC5C,MAAM,SAAS,GAAkC,IAAI,6BAA6B,CAAC;YACjF,kBAAkB,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;YACtC,oBAAoB,EAAE,CAAC,EAAE,EAAE,EAAE;gBAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC,CAAC;QACH,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;YACvB,IAAI,SAAS,CAAC,SAAS;gBAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChE,CAAC,CAAC;QACF,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAoB,EAAE,GAAmB,EAAQ,EAAE;QACpE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC;QACxD,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/E,OAAO;QACT,CAAC;QACD,6FAA6F;QAC7F,0FAA0F;QAC1F,MAAM,OAAO,GAAG,OAAO,CAAC,kBAAkB,KAAK,QAAQ,IAAI,qBAAqB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9F,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1I,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACrD,OAAO;QACT,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YACxG,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,EAAE,8CAA8C,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QACD,KAAK,WAAW,CAAC,GAAG,CAAC;aAClB,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAClB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,mBAAmB,EAAE,kDAAkD,CAAC,CAAC;gBAC1F,OAAO;YACT,CAAC;YACD,OAAO,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC3C,CAAC,CAAC;aACD,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACxB,IAAI,CAAC,GAAG,CAAC,WAAW;gBAAE,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACnH,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAEhC,OAAO;QACL,MAAM,EAAE,KAAK,IAAI,EAAE;YACjB,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1C,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;wBAC7C,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;wBAC5B,OAAO,EAAE,CAAC;oBACZ,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAwB,CAAC;YACvD,MAAM,KAAK,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC;YACtD,OAAO,UAAU,KAAK,IAAI,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;QAC3E,CAAC;QACD,IAAI,QAAQ;YACV,OAAO,QAAQ,CAAC,IAAI,CAAC;QACvB,CAAC;QACD,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACjC,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACpC,QAAQ,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACrF,IAAI,KAAK,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;oBAClC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC9B,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -7,6 +7,13 @@
7
7
  import type { ServerTransport, Server } from "@procedures/client";
8
8
  import { type McpTool } from "@procedures/mcp";
9
9
  import type { McpServerTransportOptions, McpServerTransportState } from "../types.js";
10
+ /**
11
+ * The tools with the names of a `toolName` function. Without the function, the tools keep the
12
+ * default names.
13
+ */
14
+ export declare function namedTools(tools: readonly McpTool[], toolName?: ((path: readonly string[]) => string) | undefined): McpTool[];
15
+ /** The time that the face waits for the answer of the person, when the question gives no time. */
16
+ export declare const DEFAULT_ELICIT_TIMEOUT_MS = 300000;
10
17
  /**
11
18
  * MCP Server Transport
12
19
  *
@@ -45,6 +52,8 @@ export declare class McpServerTransport implements ServerTransport {
45
52
  private listChangedTimer;
46
53
  /** The limits of a stream that can run without an end, the time in milliseconds (R15) */
47
54
  private readonly streamLimits;
55
+ /** This function removes the listener of the end of the stdio input */
56
+ private stdinEnd;
48
57
  constructor(server: Server, options?: McpServerTransportOptions);
49
58
  /**
50
59
  * An MCP server of the SDK with the handlers of this transport. The stdio transport has one, and
@@ -65,6 +74,23 @@ export declare class McpServerTransport implements ServerTransport {
65
74
  * the items while the stream runs.
66
75
  */
67
76
  private streamResult;
77
+ /**
78
+ * The content of a successful value. A tool with untrusted fields (`metadata.untrusted`) gives
79
+ * the data as JSON in the first block. The second block has the texts of those fields in
80
+ * envelopes. In the structured content, each untrusted field is the text of its envelopes.
81
+ */
82
+ private render;
83
+ /**
84
+ * The function of this face that asks the person, or undefined when the client cannot ask
85
+ * (it declares no elicitation). Each question goes with the tool call (`relatedRequestId`), so
86
+ * the Streamable HTTP transport sends it on the stream of the call.
87
+ */
88
+ private faceElicit;
89
+ /**
90
+ * The progress function of a call, when the caller sent a progress token. `used()` tells if
91
+ * the procedure reported its own progress.
92
+ */
93
+ private callProgress;
68
94
  private setupRegistryListeners;
69
95
  /**
70
96
  * Remove the registry event listeners, if attached.
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-transport.d.ts","sourceRoot":"","sources":["../../src/transport/mcp-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAqB,MAAM,oBAAoB,CAAC;AAErF,OAAO,EAIL,KAAK,OAAO,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAmCtF;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IACxD,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,OAAO,CACa;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,gBAAgB,CAA6C;IACrE,OAAO,CAAC,kBAAkB,CAA6C;IACvE,oFAAoF;IACpF,OAAO,CAAC,IAAI,CAA+B;IAC3C,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,OAAO,CAAqB;IACpC,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB,CAA4C;IACpE,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IAEjE,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B,EA2BlE;IAED;;;OAGG;IACH,OAAO,CAAC,eAAe;IAUvB;;OAEG;IACH,OAAO,CAAC,aAAa;IA0FrB;;OAEG;IACH;;;;;OAKG;YACW,YAAY;IAkD1B,OAAO,CAAC,sBAAsB;IAiB9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAcpB,2FAA2F;IAC3F,OAAO,CAAC,aAAa;IAKrB,gFAAgF;IAChF,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,GAAG;IAQX;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAkD3B;IAED;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAoB1B;IAED;;OAEG;IACH,SAAS,IAAI,OAAO,CAEnB;IAED;;OAEG;IACH,QAAQ,IAAI,uBAAuB,CAOlC;IAED;;OAEG;IACH,QAAQ,IAAI,OAAO,EAAE,CAEpB;CACF"}
1
+ {"version":3,"file":"mcp-transport.d.ts","sourceRoot":"","sources":["../../src/transport/mcp-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,KAAK,EACV,eAAe,EACf,MAAM,EAUP,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAGL,KAAK,OAAO,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,yBAAyB,EAAE,uBAAuB,EAAgC,MAAM,aAAa,CAAC;AAOpH;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,MAAM,CAAC,GAAG,SAAS,GAAG,OAAO,EAAE,CAE7H;AAED,kGAAkG;AAClG,eAAO,MAAM,yBAAyB,SAAU,CAAC;AAsDjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IACxD,QAAQ,CAAC,IAAI,SAAS;IAEtB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,OAAO,CACa;IAC5B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAmC;IAChD,OAAO,CAAC,gBAAgB,CAA6C;IACrE,OAAO,CAAC,kBAAkB,CAA6C;IACvE,oFAAoF;IACpF,OAAO,CAAC,IAAI,CAA+B;IAC3C,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwB;IACvD,OAAO,CAAC,OAAO,CAAqB;IACpC,8EAA8E;IAC9E,OAAO,CAAC,gBAAgB,CAA4C;IACpE,yFAAyF;IACzF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAA2B;IAE3C,YAAY,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,yBAA8B,EA2BlE;IAED;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,aAAa;IA2GrB;;OAEG;IACH;;;;;OAKG;YACW,YAAY;IAuD1B;;;;OAIG;IACH,OAAO,CAAC,MAAM;IAyBd;;;;OAIG;IACH,OAAO,CAAC,UAAU;IA4BlB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,sBAAsB;IAiB9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;OAEG;IACH,OAAO,CAAC,YAAY;IAkBpB,2FAA2F;IAC3F,OAAO,CAAC,aAAa;IAKrB,gFAAgF;IAChF,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,GAAG;IAQX;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAmE3B;IAED;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAsB1B;IAED;;OAEG;IACH,SAAS,IAAI,OAAO,CAEnB;IAED;;OAEG;IACH,QAAQ,IAAI,uBAAuB,CAOlC;IAED;;OAEG;IACH,QAAQ,IAAI,OAAO,EAAE,CAEpB;CACF"}
@@ -6,19 +6,43 @@
6
6
  */
7
7
  import { Server as McpServer } from "@modelcontextprotocol/sdk/server/index.js";
8
8
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
9
- import { PROCEDURE_REGISTRY, pathToMethod } from "@procedures/client";
10
- import { proceduresToMcpTools, toToolDefinition, decodePath, } from "@procedures/mcp";
9
+ import { PROCEDURE_REGISTRY, pathToMethod, createElicit, elicitWithPolicy, requestCredentials, untrustedTextsOf } from "@procedures/client";
10
+ import { proceduresToMcpTools, toToolDefinition, } from "@procedures/mcp";
11
11
  import { createStdioTransport } from "./stdio.js";
12
12
  import { createSseTransport } from "./sse.js";
13
13
  import { createHttpTransport } from "./http.js";
14
14
  import { optionalMs } from "@procedures/client";
15
+ import { createUntrustedEnvelopes } from "../untrusted.js";
16
+ /**
17
+ * The tools with the names of a `toolName` function. Without the function, the tools keep the
18
+ * default names.
19
+ */
20
+ export function namedTools(tools, toolName) {
21
+ return toolName ? tools.map((tool) => ({ ...tool, name: toolName(tool.procedurePath) })) : [...tools];
22
+ }
23
+ /** The time that the face waits for the answer of the person, when the question gives no time. */
24
+ export const DEFAULT_ELICIT_TIMEOUT_MS = 300_000;
25
+ /**
26
+ * The credentials of a tool call that came over the network (CLI-10): the bearer token, the
27
+ * cookies, the headers and the query of its HTTP request. A call over stdio or an in-memory
28
+ * transport has none: it comes from this process.
29
+ */
30
+ function callCredentials(extra) {
31
+ const info = extra.requestInfo;
32
+ if (!info)
33
+ return undefined;
34
+ return requestCredentials({ headers: info.headers, url: info.url ? `${info.url.pathname}${info.url.search}` : undefined });
35
+ }
15
36
  /**
16
37
  * Generate a unique request ID.
17
38
  */
18
39
  /** The most text blocks of a stream result: the last items of a long stream. */
19
40
  const MAX_STREAM_BLOCKS = 100;
20
- function toText(value) {
21
- return typeof value === "string" ? value : (JSON.stringify(value, null, 2) ?? String(value));
41
+ /** The text of a value: a string as it is, another value as JSON (pretty, or compact on one line). */
42
+ function toText(value, json = "pretty") {
43
+ if (typeof value === "string")
44
+ return value;
45
+ return (json === "compact" ? JSON.stringify(value) : JSON.stringify(value, null, 2)) ?? String(value);
22
46
  }
23
47
  /**
24
48
  * The structured content of a result: the result as JSON, when it is an object. JSON drops
@@ -77,6 +101,8 @@ export class McpServerTransport {
77
101
  listChangedTimer;
78
102
  /** The limits of a stream that can run without an end, the time in milliseconds (R15) */
79
103
  streamLimits;
104
+ /** This function removes the listener of the end of the stdio input */
105
+ stdinEnd;
80
106
  constructor(server, options = {}) {
81
107
  this.server = server;
82
108
  this.options = {
@@ -112,6 +138,8 @@ export class McpServerTransport {
112
138
  capabilities: {
113
139
  tools: { listChanged: true },
114
140
  },
141
+ // The instructions of the server: the client gives them to the model (CLI-10)
142
+ ...(this.options.instructions !== undefined ? { instructions: this.options.instructions } : {}),
115
143
  });
116
144
  this.setupHandlers(server);
117
145
  return server;
@@ -140,10 +168,12 @@ export class McpServerTransport {
140
168
  isError: true,
141
169
  };
142
170
  }
143
- // Decode path from tool name. The method is the core mapping of every host (deep dive
144
- // architecture review 3.3)
145
- const path = decodePath(name);
171
+ // The path of the procedure of the tool. The method is the core mapping of every host
172
+ // (deep dive architecture review 3.3). A tool name of the toolName option does not decode,
173
+ // and a sanitized segment does not decode to the segment of the procedure.
174
+ const path = tool.procedurePath;
146
175
  // Build ServerRequest
176
+ const credentials = callCredentials(extra);
147
177
  const serverRequest = {
148
178
  id: generateRequestId(),
149
179
  method: pathToMethod(path),
@@ -154,23 +184,38 @@ export class McpServerTransport {
154
184
  },
155
185
  // A cancelled tool call (notifications/cancelled) aborts the procedure
156
186
  signal: extra.signal,
187
+ // The credentials of a call over the network: the request hook (principalOf) and the
188
+ // token check of the server apply to it (CLI-10)
189
+ ...(credentials ? { credentials } : {}),
190
+ };
191
+ // What this face offers the procedure (CLI-12): the questions to the person, and the
192
+ // progress for a caller that sent a progress token
193
+ const elicit = elicitWithPolicy(this.faceElicit(server, extra), this.options.elicitation);
194
+ const progress = this.callProgress(extra);
195
+ const callRequest = {
196
+ ...serverRequest,
197
+ ...(elicit ? { elicit } : {}),
198
+ ...(progress ? { progress: progress.report } : {}),
157
199
  };
158
200
  try {
159
201
  // Process through universal server
160
- const response = await this.server.handle(serverRequest);
202
+ const response = await this.server.handle(callRequest);
161
203
  this.log(`Tool ${name} completed: ${response.status.type}`);
162
204
  // Convert to MCP result
163
205
  if (response.status.type === "success" && response.stream) {
164
206
  const unbounded = response.metadata?.["stream"] === "unbounded";
165
- return await this.streamResult(response.stream, extra, unbounded);
207
+ // The items are the progress of a stream, unless the procedure reports its own
208
+ return await this.streamResult(response.stream, extra, unbounded, tool, () => progress?.used() === true);
166
209
  }
167
210
  if (response.status.type === "success") {
168
- const structured = tool.outputSchema ? structuredContentOf(response.payload) : undefined;
211
+ const rendered = this.render(response.payload, tool);
212
+ const hooked = this.options.content?.({ ...rendered, tool, value: response.payload });
213
+ const result = hooked ?? rendered;
169
214
  return {
170
- content: [{ type: "text", text: toText(response.payload) }],
215
+ content: result.content,
171
216
  // MCP structured output: the result as an object, for a tool with an output schema.
172
217
  // The text block stays, for clients that do not read structured content.
173
- ...(structured ? { structuredContent: structured } : {}),
218
+ ...(result.structuredContent ? { structuredContent: result.structuredContent } : {}),
174
219
  };
175
220
  }
176
221
  else {
@@ -207,7 +252,7 @@ export class McpServerTransport {
207
252
  * and a progress notification when the caller sent a progress token, so a client can show
208
253
  * the items while the stream runs.
209
254
  */
210
- async streamResult(stream, extra, unbounded = false) {
255
+ async streamResult(stream, extra, unbounded = false, tool, ownProgress = () => false) {
211
256
  const progressToken = extra._meta?.progressToken;
212
257
  const blocks = [];
213
258
  let count = 0;
@@ -224,15 +269,18 @@ export class McpServerTransport {
224
269
  count--;
225
270
  break;
226
271
  }
227
- const text = toText(item);
272
+ // An item with untrusted fields gives its data, then its envelopes (CLI-10)
273
+ const rendered = tool?.untrusted ? this.render(item, tool).content : undefined;
274
+ const text = rendered ? rendered.map((block) => block.text).join("\n") : toText(item, this.options.json);
228
275
  blocks.push({ type: "text", text });
229
276
  if (blocks.length > MAX_STREAM_BLOCKS)
230
277
  blocks.shift();
231
- if (progressToken !== undefined) {
278
+ if (progressToken !== undefined && !ownProgress()) {
279
+ const message = rendered ? rendered[0].text : text;
232
280
  await extra
233
281
  .sendNotification({
234
282
  method: "notifications/progress",
235
- params: { progressToken, progress: count, message: text.slice(0, 1000) },
283
+ params: { progressToken, progress: count, message: message.slice(0, 1000) },
236
284
  })
237
285
  .catch(() => undefined);
238
286
  }
@@ -252,6 +300,100 @@ export class McpServerTransport {
252
300
  blocks.push({ type: "text", text: "(no items)" });
253
301
  return { content: blocks };
254
302
  }
303
+ /**
304
+ * The content of a successful value. A tool with untrusted fields (`metadata.untrusted`) gives
305
+ * the data as JSON in the first block. The second block has the texts of those fields in
306
+ * envelopes. In the structured content, each untrusted field is the text of its envelopes.
307
+ */
308
+ render(value, tool) {
309
+ const fields = tool.untrusted ?? [];
310
+ if (fields.length === 0 || value === null || typeof value !== "object" || Array.isArray(value)) {
311
+ const structured = tool.outputSchema ? structuredContentOf(value) : undefined;
312
+ return { content: [{ type: "text", text: toText(value, this.options.json) }], ...(structured ? { structuredContent: structured } : {}) };
313
+ }
314
+ const data = { ...value };
315
+ const envelopes = createUntrustedEnvelopes(this.options.untrusted ?? {});
316
+ const wrap = this.options.untrusted?.wrap;
317
+ const texts = {};
318
+ const blocks = [];
319
+ for (const field of fields) {
320
+ if (!(field in data))
321
+ continue;
322
+ const items = untrustedTextsOf(data[field]);
323
+ delete data[field];
324
+ const text = wrap ? wrap(items, { tool: tool.name, field }) : envelopes.text(items);
325
+ texts[field] = text;
326
+ if (text !== "")
327
+ blocks.push(text);
328
+ }
329
+ const content = [{ type: "text", text: toText(data, this.options.json) }];
330
+ if (blocks.length > 0)
331
+ content.push({ type: "text", text: blocks.join("\n") });
332
+ const structured = tool.outputSchema ? structuredContentOf(data) : undefined;
333
+ return { content, ...(structured ? { structuredContent: { ...structured, ...texts } } : {}) };
334
+ }
335
+ /**
336
+ * The function of this face that asks the person, or undefined when the client cannot ask
337
+ * (it declares no elicitation). Each question goes with the tool call (`relatedRequestId`), so
338
+ * the Streamable HTTP transport sends it on the stream of the call.
339
+ */
340
+ faceElicit(server, extra) {
341
+ const capability = server.getClientCapabilities()?.elicitation;
342
+ if (!capability)
343
+ return undefined;
344
+ const modes = [];
345
+ if (capability.form)
346
+ modes.push("form");
347
+ if (capability.url)
348
+ modes.push("url");
349
+ if (modes.length === 0)
350
+ return undefined;
351
+ return createElicit(modes, async (request, options) => {
352
+ const timeout = optionalMs(options.timeout, "timeout") ?? DEFAULT_ELICIT_TIMEOUT_MS;
353
+ const signal = options.signal && options.signal !== extra.signal ? AbortSignal.any([extra.signal, options.signal]) : extra.signal;
354
+ const params = request.mode === "url"
355
+ ? { mode: "url", message: request.message, url: request.url, elicitationId: request.id ?? globalThis.crypto.randomUUID() }
356
+ : {
357
+ mode: "form",
358
+ message: request.message,
359
+ requestedSchema: {
360
+ type: "object",
361
+ properties: request.fields,
362
+ ...(request.required ? { required: [...request.required] } : {}),
363
+ },
364
+ };
365
+ // The SDK types do not agree with exactOptionalPropertyTypes and readonly arrays
366
+ const reply = await server.elicitInput(params, { relatedRequestId: extra.requestId, signal, timeout });
367
+ return { action: reply.action, ...(reply.content ? { content: reply.content } : {}), by: "person" };
368
+ });
369
+ }
370
+ /**
371
+ * The progress function of a call, when the caller sent a progress token. `used()` tells if
372
+ * the procedure reported its own progress.
373
+ */
374
+ callProgress(extra) {
375
+ const progressToken = extra._meta?.progressToken;
376
+ if (progressToken === undefined)
377
+ return undefined;
378
+ let used = false;
379
+ return {
380
+ used: () => used,
381
+ report: async (update) => {
382
+ used = true;
383
+ await extra
384
+ .sendNotification({
385
+ method: "notifications/progress",
386
+ params: {
387
+ progressToken,
388
+ progress: update.progress,
389
+ ...(update.total !== undefined ? { total: update.total } : {}),
390
+ ...(update.message !== undefined ? { message: update.message.slice(0, 1000) } : {}),
391
+ },
392
+ })
393
+ .catch(() => undefined);
394
+ },
395
+ };
396
+ }
255
397
  setupRegistryListeners() {
256
398
  // Create listener functions that we can later remove
257
399
  this.registerListener = () => {
@@ -287,7 +429,11 @@ export class McpServerTransport {
287
429
  const mcpTools = proceduresToMcpTools(procedures, this.options.toolFilter);
288
430
  const before = this.toolSignature();
289
431
  this.tools.clear();
290
- for (const tool of mcpTools) {
432
+ for (const tool of namedTools(mcpTools, this.options.toolName)) {
433
+ if (this.tools.has(tool.name)) {
434
+ // MUST be stderr: stdout carries the protocol of stdio
435
+ console.error(`[mcp] Two procedures have the tool name "${tool.name}": the transport keeps ${tool.procedurePath.join(".")}`);
436
+ }
291
437
  this.tools.set(tool.name, tool);
292
438
  }
293
439
  this.log(`Refreshed tools: ${this.tools.size} available`);
@@ -344,12 +490,27 @@ export class McpServerTransport {
344
490
  this.log("Using the given transport");
345
491
  }
346
492
  else if (this.options.transport === "stdio") {
347
- transport = createStdioTransport();
493
+ const stdio = this.options.stdio;
494
+ const stdin = stdio?.stdin ?? process.stdin;
495
+ transport = createStdioTransport(stdin, stdio?.stdout);
496
+ // The client closed the input: the host stops (CLI-10). The SDK does not watch the end.
497
+ if (stdio?.onEnd) {
498
+ const onEnd = stdio.onEnd;
499
+ const listener = () => {
500
+ this.log("The input of stdio ended");
501
+ onEnd();
502
+ };
503
+ stdin.once("end", listener);
504
+ this.stdinEnd = () => stdin.off("end", listener);
505
+ }
348
506
  this.log("Using stdio transport");
349
507
  }
350
508
  else if (this.options.transport === "http") {
351
509
  // Streamable HTTP (roadmap R26): an MCP server of its own for each session
352
- this.http = createHttpTransport(this.options.httpOptions ?? {}, async (sessionTransport) => {
510
+ // The face trusts cookies only as the server reads them (CSRF)
511
+ const ambientCredentials = this.server.ambientCredentials;
512
+ const httpOptions = { ...this.options.httpOptions, ...(ambientCredentials ? { ambientCredentials } : {}) };
513
+ this.http = createHttpTransport(httpOptions, async (sessionTransport) => {
353
514
  const sessionServer = this.createSdkServer();
354
515
  this.sessionServers.add(sessionServer);
355
516
  sessionServer.onclose = () => this.sessionServers.delete(sessionServer);
@@ -374,6 +535,8 @@ export class McpServerTransport {
374
535
  }
375
536
  catch (error) {
376
537
  this.removeRegistryListeners();
538
+ this.stdinEnd?.();
539
+ this.stdinEnd = undefined;
377
540
  await this.http?.close().catch(() => undefined);
378
541
  this.http = undefined;
379
542
  throw error;
@@ -390,6 +553,8 @@ export class McpServerTransport {
390
553
  }
391
554
  // Cleanup registry listeners
392
555
  this.removeRegistryListeners();
556
+ this.stdinEnd?.();
557
+ this.stdinEnd = undefined;
393
558
  if (this.listChangedTimer) {
394
559
  clearTimeout(this.listChangedTimer);
395
560
  this.listChangedTimer = undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-transport.js","sourceRoot":"","sources":["../../src/transport/mcp-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,GAEX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAyB,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAY,CAAC;QAC1D,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAgC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3H,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,KAAK,CAAC;IAEd,SAAS,CAAY;IACrB,MAAM,CAAS;IACf,QAAQ,CAAoB;IAC5B,OAAO,CACa;IACpB,OAAO,GAAG,KAAK,CAAC;IAChB,KAAK,GAAyB,IAAI,GAAG,EAAE,CAAC;IACxC,gBAAgB,CAA6C;IAC7D,kBAAkB,CAA6C;IACvE,oFAAoF;IAC5E,IAAI,CAA+B;IAC3C,uEAAuE;IACtD,cAAc,GAAG,IAAI,GAAG,EAAa,CAAC;IAC/C,OAAO,CAAqB;IACpC,8EAA8E;IACtE,gBAAgB,CAA4C;IACpE,yFAAyF;IACxE,YAAY,CAAoC;IAEjE,YAAY,MAAc,EAAE,OAAO,GAA8B,EAAE;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG;YACb,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO;YACvC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI;gBAChC,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,OAAO;aACjB;YACD,GAAG,OAAO;SACX,CAAC;QACF,IAAI,CAAC,YAAY,GAAG;YAClB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,GAAG,CAAC;YACtD,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,MAAM;SAC9E,CAAC;QACF,6FAA6F;QAC7F,2FAA2F;QAC3F,IAAI,CAAC,QAAQ;YACX,OAAO,CAAC,QAAQ;gBACf,MAAoD,CAAC,WAAW,EAAE,EAAE;gBACrE,kBAAkB,CAAC;QAErB,4FAA4F;QAC5F,4EAA4E;QAC5E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAExC,4FAA4F;QAC5F,uFAAuF;IACzF,CAAC;IAED;;;OAGG;IACK,eAAe;QACrB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACpD,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;aAC7B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAiB;QACrC,yDAAyD;QACzD,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC1D,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAEtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAEpE,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;YAE5C,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACvE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,IAAI,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAErC,YAAY;YACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAmB,IAAI,EAAE,EAAE,CAAC;oBACrE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,sFAAsF;YACtF,2BAA2B;YAC3B,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;YAE9B,sBAAsB;YACtB,MAAM,aAAa,GAAG;gBACpB,EAAE,EAAE,iBAAiB,EAAE;gBACvB,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,IAAI,IAAI,EAAE;gBACnB,QAAQ,EAAE;oBACR,SAAS,EAAE,KAAc;oBACzB,YAAY,EAAE,iBAAiB,EAAE;iBAClC;gBACD,uEAAuE;gBACvE,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC;YAEF,IAAI,CAAC;gBACH,mCAAmC;gBACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;gBAEzD,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,eAAe,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE5D,wBAAwB;gBACxB,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,WAAW,CAAC;oBAChE,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBACpE,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBACzF,OAAO;wBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpE,oFAAoF;wBACpF,yEAAyE;wBACzE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACzD,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,yEAAyE;oBACzE,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC3G,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;6BAC7F;yBACF;wBACD,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACrE,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW,OAAO,EAAE,CAAC,CAAC;gBAE3C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oBACnD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH;;;;;OAKG;IACK,KAAK,CAAC,YAAY,CACxB,MAA8B,EAC9B,KAGC,EACD,SAAS,GAAG,KAAK;QAEjB,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;QACjD,MAAM,MAAM,GAA0C,EAAE,CAAC;QACzD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,wFAAwF;QACxF,yEAAyE;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,SAA6B,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAChC,KAAK,EAAE,CAAC;gBACR,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChF,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;oBAC3G,KAAK,EAAE,CAAC;oBACR,MAAM;gBACR,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpC,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB;oBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBACtD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAChC,MAAM,KAAK;yBACR,gBAAgB,CAAC;wBAChB,MAAM,EAAE,wBAAwB;wBAChC,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;qBACzE,CAAC;yBACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,KAAK,GAAG,iBAAiB,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,qBAAqB,KAAK,GAAG,iBAAiB,iBAAiB,EAAE,CAAC,CAAC;QACnH,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oEAAoE,SAAS,IAAI,EAAE,CAAC,CAAC;QACzH,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAEO,sBAAsB;QAC5B,qDAAqD;QACrD,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE;YAC3B,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,4DAA4D;QAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC7B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM;YAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAClF,CAAC;IAED,2FAA2F;IACnF,aAAa;QACnB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,gFAAgF;IACxE,mBAAmB;QACzB,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAClC,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc;gBAAE,aAAa,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5G,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAC5D,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,OAAe;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,mFAAmF;YACnF,gGAAgG;YAChG,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC;YACH,+BAA+B;YAC/B,IAAI,SAAmC,CAAC;YACxC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC9B,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC9C,SAAS,GAAG,oBAAoB,EAAE,CAAC;gBACnC,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;gBAC7C,2EAA2E;gBAC3E,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE;oBACzF,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACvC,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBACxE,MAAM,aAAa,CAAC,OAAO,CAAC,gBAA2C,CAAC,CAAC;gBAC3E,CAAC,CAAC,CAAC;gBACH,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC5C,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,kCAAkC;YAClC,IAAI,SAAS;gBAAE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAC,SAAS,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc;YAAE,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACpG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"mcp-transport.js","sourceRoot":"","sources":["../../src/transport/mcp-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GAEvB,MAAM,oCAAoC,CAAC;AAe5C,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC5I,OAAO,EACL,oBAAoB,EACpB,gBAAgB,GAEjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAyB,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAyB,EAAE,QAA4D;IAChH,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;AACxG,CAAC;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAYjD;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAgB;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC;IAC/B,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7H,CAAC;AAED;;GAEG;AACH,gFAAgF;AAChF,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B,sGAAsG;AACtG,SAAS,MAAM,CAAC,KAAc,EAAE,IAAI,GAAyB,QAAQ;IACnE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AACxG,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1F,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAY,CAAC;QAC1D,OAAO,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAgC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC3H,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;AACvE,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,kBAAkB;IACpB,IAAI,GAAG,KAAK,CAAC;IAEd,SAAS,CAAY;IACrB,MAAM,CAAS;IACf,QAAQ,CAAoB;IAC5B,OAAO,CACa;IACpB,OAAO,GAAG,KAAK,CAAC;IAChB,KAAK,GAAyB,IAAI,GAAG,EAAE,CAAC;IACxC,gBAAgB,CAA6C;IAC7D,kBAAkB,CAA6C;IACvE,oFAAoF;IAC5E,IAAI,CAA+B;IAC3C,uEAAuE;IACtD,cAAc,GAAG,IAAI,GAAG,EAAa,CAAC;IAC/C,OAAO,CAAqB;IACpC,8EAA8E;IACtE,gBAAgB,CAA4C;IACpE,yFAAyF;IACxE,YAAY,CAAoC;IACjE,uEAAuE;IAC/D,QAAQ,CAA2B;IAE3C,YAAY,MAAc,EAAE,OAAO,GAA8B,EAAE;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG;YACb,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,OAAO;YACvC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI;gBAChC,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,OAAO;aACjB;YACD,GAAG,OAAO;SACX,CAAC;QACF,IAAI,CAAC,YAAY,GAAG;YAClB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,GAAG,CAAC;YACtD,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,mBAAmB,CAAC,IAAI,MAAM;SAC9E,CAAC;QACF,6FAA6F;QAC7F,2FAA2F;QAC3F,IAAI,CAAC,QAAQ;YACX,OAAO,CAAC,QAAQ;gBACf,MAAoD,CAAC,WAAW,EAAE,EAAE;gBACrE,kBAAkB,CAAC;QAErB,4FAA4F;QAC5F,4EAA4E;QAC5E,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QAExC,4FAA4F;QAC5F,uFAAuF;IACzF,CAAC;IAED;;;OAGG;IACK,eAAe;QACrB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;YACpD,YAAY,EAAE;gBACZ,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;aAC7B;YACD,8EAA8E;YAC9E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChG,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAiB;QACrC,yDAAyD;QACzD,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC1D,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YAEtC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAEpE,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,CAAC,MAAM,QAAQ,CAAC,CAAC;YAE5C,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,6CAA6C;QAC7C,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACvE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YAEjD,IAAI,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAErC,YAAY;YACZ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;gBACpC,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAmB,IAAI,EAAE,EAAE,CAAC;oBACrE,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,sFAAsF;YACtF,2FAA2F;YAC3F,2EAA2E;YAC3E,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;YAEhC,sBAAsB;YACtB,MAAM,WAAW,GAAG,eAAe,CAAC,KAAkB,CAAC,CAAC;YACxD,MAAM,aAAa,GAAG;gBACpB,EAAE,EAAE,iBAAiB,EAAE;gBACvB,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,IAAI,IAAI,EAAE;gBACnB,QAAQ,EAAE;oBACR,SAAS,EAAE,KAAc;oBACzB,YAAY,EAAE,iBAAiB,EAAE;iBAClC;gBACD,uEAAuE;gBACvE,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,qFAAqF;gBACrF,iDAAiD;gBACjD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxC,CAAC;YACF,qFAAqF;YACrF,mDAAmD;YACnD,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG;gBAClB,GAAG,aAAa;gBAChB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACnD,CAAC;YAEF,IAAI,CAAC;gBACH,mCAAmC;gBACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAEvD,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,eAAe,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE5D,wBAAwB;gBACxB,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC1D,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,WAAW,CAAC;oBAChE,+EAA+E;oBAC/E,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;gBAC3G,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACrD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;oBACtF,MAAM,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;oBAClC,OAAO;wBACL,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,oFAAoF;wBACpF,yEAAyE;wBACzE,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACrF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,yEAAyE;oBACzE,MAAM,MAAM,GAAG,OAAO,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;oBAC3G,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,IAAI,eAAe,GAAG,MAAM,CAAC,CAAC,CAAC,aAAa,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;6BAC7F;yBACF;wBACD,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;qBACrE,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvE,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,WAAW,OAAO,EAAE,CAAC,CAAC;gBAE3C,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;oBACnD,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH;;;;;OAKG;IACK,KAAK,CAAC,YAAY,CACxB,MAA8B,EAC9B,KAGC,EACD,SAAS,GAAG,KAAK,EACjB,IAAc,EACd,WAAW,GAAkB,GAAG,EAAE,CAAC,KAAK;QAExC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;QACjD,MAAM,MAAM,GAA0C,EAAE,CAAC;QACzD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,wFAAwF;QACxF,yEAAyE;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,IAAI,SAA6B,CAAC;QAClC,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAChC,KAAK,EAAE,CAAC;gBACR,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAChF,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;oBAC3G,KAAK,EAAE,CAAC;oBACR,MAAM;gBACR,CAAC;gBACD,4EAA4E;gBAC5E,MAAM,QAAQ,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/E,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzG,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBACpC,IAAI,MAAM,CAAC,MAAM,GAAG,iBAAiB;oBAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBACtD,IAAI,aAAa,KAAK,SAAS,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;oBACpD,MAAM,KAAK;yBACR,gBAAgB,CAAC;wBAChB,MAAM,EAAE,wBAAwB;wBAChC,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;qBAC5E,CAAC;yBACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5F,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,KAAK,GAAG,iBAAiB,EAAE,CAAC;YAC9B,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,qBAAqB,KAAK,GAAG,iBAAiB,iBAAiB,EAAE,CAAC,CAAC;QACnH,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oEAAoE,SAAS,IAAI,EAAE,CAAC,CAAC;QACzH,CAAC;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,KAAc,EAAE,IAAa;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/F,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3I,CAAC;QACD,MAAM,IAAI,GAA4B,EAAE,GAAI,KAAiC,EAAE,CAAC;QAChF,MAAM,SAAS,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC;QAC1C,MAAM,KAAK,GAA2B,EAAE,CAAC;QACzC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC;gBAAE,SAAS;YAC/B,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpF,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YACpB,IAAI,IAAI,KAAK,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,OAAO,GAAmB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC1F,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/E,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7E,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAChG,CAAC;IAED;;;;OAIG;IACK,UAAU,CAAC,MAAiB,EAAE,KAAgB;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,qBAAqB,EAAE,EAAE,WAA4D,CAAC;QAChH,IAAI,CAAC,UAAU;YAAE,OAAO,SAAS,CAAC;QAClC,MAAM,KAAK,GAAiB,EAAE,CAAC;QAC/B,IAAI,UAAU,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,UAAU,CAAC,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,SAAS,CAAC;QACzC,OAAO,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAsB,EAAE,OAAsB,EAAyB,EAAE;YACzG,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,yBAAyB,CAAC;YACpF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;YAClI,MAAM,MAAM,GACV,OAAO,CAAC,IAAI,KAAK,KAAK;gBACpB,CAAC,CAAC,EAAE,IAAI,EAAE,KAAc,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE;gBACnI,CAAC,CAAC;oBACE,IAAI,EAAE,MAAe;oBACrB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,eAAe,EAAE;wBACf,IAAI,EAAE,QAAiB;wBACvB,UAAU,EAAE,OAAO,CAAC,MAAM;wBAC1B,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACjE;iBACF,CAAC;YACR,iFAAiF;YACjF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,MAAe,EAAE,EAAE,gBAAgB,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAChH,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;QACtG,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,YAAY,CAAC,KAAgB;QACnC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;QACjD,IAAI,aAAa,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAClD,IAAI,IAAI,GAAG,KAAK,CAAC;QACjB,OAAO;YACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI;YAChB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBACvB,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM,KAAK;qBACR,gBAAgB,CAAC;oBAChB,MAAM,EAAE,wBAAwB;oBAChC,MAAM,EAAE;wBACN,aAAa;wBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC9D,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACpF;iBACF,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,sBAAsB;QAC5B,qDAAqD;QACrD,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE;YAC3B,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACnD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;YACrD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,4DAA4D;QAC5D,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACK,uBAAuB;QAC7B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACrD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACzD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,uDAAuD;gBACvD,OAAO,CAAC,KAAK,CAAC,4CAA4C,IAAI,CAAC,IAAI,0BAA0B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/H,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,YAAY,CAAC,CAAC;QAC1D,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,KAAK,MAAM;YAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAClF,CAAC;IAED,2FAA2F;IACnF,aAAa;QACnB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,CAAC;IAED,gFAAgF;IACxE,mBAAmB;QACzB,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAClC,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;YAClC,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,OAAO;YAC1B,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc;gBAAE,aAAa,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5G,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;gBAC5D,IAAI,CAAC,GAAG,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7F,CAAC,CAAC,CAAC;QACL,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,GAAG,CAAC,OAAe;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACvB,mFAAmF;YACnF,gGAAgG;YAChG,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,qEAAqE;QACrE,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,IAAI,CAAC;YACH,+BAA+B;YAC/B,IAAI,SAAmC,CAAC;YACxC,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC9B,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBACtC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACxC,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjC,MAAM,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;gBAC5C,SAAS,GAAG,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;gBACvD,wFAAwF;gBACxF,IAAI,KAAK,EAAE,KAAK,EAAE,CAAC;oBACjB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;oBAC1B,MAAM,QAAQ,GAAG,GAAS,EAAE;wBAC1B,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;wBACrC,KAAK,EAAE,CAAC;oBACV,CAAC,CAAC;oBACF,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;oBAC5B,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACnD,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;gBAC7C,2EAA2E;gBAC3E,+DAA+D;gBAC/D,MAAM,kBAAkB,GAAI,IAAI,CAAC,MAAkC,CAAC,kBAAkB,CAAC;gBACvF,MAAM,WAAW,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3G,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE;oBACtE,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC7C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;oBACvC,aAAa,CAAC,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;oBACxE,MAAM,aAAa,CAAC,OAAO,CAAC,gBAA2C,CAAC,CAAC;gBAC3E,CAAC,CAAC,CAAC;gBACH,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;iBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC5C,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACxD,IAAI,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;YACtE,CAAC;YAED,kCAAkC;YAClC,IAAI,SAAS;gBAAE,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxC,IAAI,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,OAAO,CAAC,SAAS,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAC1B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc;YAAE,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACpG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC1B,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YACjC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -3,14 +3,16 @@
3
3
  *
4
4
  * Creates an MCP stdio transport for CLI usage.
5
5
  */
6
+ import type { Readable, Writable } from "node:stream";
6
7
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
7
8
  /**
8
9
  * Create a stdio transport for MCP server.
9
10
  *
10
11
  * Stdio transport uses standard input/output for communication,
11
- * suitable for CLI tools and desktop app integrations.
12
+ * suitable for CLI tools and desktop app integrations. A test or an embedding gives other
13
+ * streams: the defaults are `process.stdin` and `process.stdout`.
12
14
  *
13
15
  * @returns MCP stdio transport instance
14
16
  */
15
- export declare function createStdioTransport(): StdioServerTransport;
17
+ export declare function createStdioTransport(stdin?: Readable, stdout?: Writable): StdioServerTransport;
16
18
  //# sourceMappingURL=stdio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/transport/stdio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,oBAAoB,CAE3D"}
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../src/transport/stdio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,QAAQ,GAAG,oBAAoB,CAE9F"}
@@ -8,11 +8,12 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
8
8
  * Create a stdio transport for MCP server.
9
9
  *
10
10
  * Stdio transport uses standard input/output for communication,
11
- * suitable for CLI tools and desktop app integrations.
11
+ * suitable for CLI tools and desktop app integrations. A test or an embedding gives other
12
+ * streams: the defaults are `process.stdin` and `process.stdout`.
12
13
  *
13
14
  * @returns MCP stdio transport instance
14
15
  */
15
- export function createStdioTransport() {
16
- return new StdioServerTransport();
16
+ export function createStdioTransport(stdin, stdout) {
17
+ return new StdioServerTransport(stdin, stdout);
17
18
  }
18
19
  //# sourceMappingURL=stdio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/transport/stdio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,oBAAoB,EAAE,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../src/transport/stdio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEjF;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAgB,EAAE,MAAiB;IACtE,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC"}