@modelcontextprotocol/sdk 1.1.1 → 1.3.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 (157) hide show
  1. package/README.md +358 -58
  2. package/dist/cjs/cli.d.ts.map +1 -0
  3. package/dist/cjs/cli.js +134 -0
  4. package/dist/cjs/cli.js.map +1 -0
  5. package/dist/{client → cjs/client}/index.d.ts +8 -2
  6. package/dist/cjs/client/index.d.ts.map +1 -0
  7. package/dist/cjs/client/index.js +222 -0
  8. package/dist/cjs/client/index.js.map +1 -0
  9. package/dist/cjs/client/sse.d.ts.map +1 -0
  10. package/dist/cjs/client/sse.js +99 -0
  11. package/dist/cjs/client/sse.js.map +1 -0
  12. package/dist/cjs/client/stdio.d.ts.map +1 -0
  13. package/dist/cjs/client/stdio.js +156 -0
  14. package/dist/cjs/client/stdio.js.map +1 -0
  15. package/dist/cjs/client/websocket.d.ts.map +1 -0
  16. package/dist/cjs/client/websocket.js +65 -0
  17. package/dist/cjs/client/websocket.js.map +1 -0
  18. package/dist/cjs/inMemory.d.ts.map +1 -0
  19. package/dist/cjs/inMemory.js +51 -0
  20. package/dist/cjs/inMemory.js.map +1 -0
  21. package/dist/cjs/package.json +1 -0
  22. package/dist/cjs/server/completable.d.ts +22 -0
  23. package/dist/cjs/server/completable.d.ts.map +1 -0
  24. package/dist/cjs/server/completable.js +65 -0
  25. package/dist/cjs/server/completable.js.map +1 -0
  26. package/dist/{server → cjs/server}/index.d.ts +13 -2
  27. package/dist/cjs/server/index.d.ts.map +1 -0
  28. package/dist/cjs/server/index.js +200 -0
  29. package/dist/cjs/server/index.js.map +1 -0
  30. package/dist/cjs/server/mcp.d.ts +150 -0
  31. package/dist/cjs/server/mcp.d.ts.map +1 -0
  32. package/dist/cjs/server/mcp.js +365 -0
  33. package/dist/cjs/server/mcp.js.map +1 -0
  34. package/dist/cjs/server/sse.d.ts.map +1 -0
  35. package/dist/cjs/server/sse.js +123 -0
  36. package/dist/cjs/server/sse.js.map +1 -0
  37. package/dist/cjs/server/stdio.d.ts.map +1 -0
  38. package/dist/cjs/server/stdio.js +85 -0
  39. package/dist/cjs/server/stdio.js.map +1 -0
  40. package/dist/{shared → cjs/shared}/protocol.d.ts +6 -1
  41. package/dist/cjs/shared/protocol.d.ts.map +1 -0
  42. package/dist/cjs/shared/protocol.js +321 -0
  43. package/dist/cjs/shared/protocol.js.map +1 -0
  44. package/dist/cjs/shared/stdio.d.ts.map +1 -0
  45. package/dist/cjs/shared/stdio.js +37 -0
  46. package/dist/cjs/shared/stdio.js.map +1 -0
  47. package/dist/cjs/shared/transport.d.ts.map +1 -0
  48. package/dist/cjs/shared/transport.js +3 -0
  49. package/dist/{shared → cjs/shared}/transport.js.map +1 -1
  50. package/dist/cjs/shared/uriTemplate.d.ts +24 -0
  51. package/dist/cjs/shared/uriTemplate.d.ts.map +1 -0
  52. package/dist/cjs/shared/uriTemplate.js +242 -0
  53. package/dist/cjs/shared/uriTemplate.js.map +1 -0
  54. package/dist/cjs/types.d.ts.map +1 -0
  55. package/dist/cjs/types.js +1002 -0
  56. package/dist/cjs/types.js.map +1 -0
  57. package/dist/esm/cli.d.ts +2 -0
  58. package/dist/esm/cli.d.ts.map +1 -0
  59. package/dist/esm/cli.js.map +1 -0
  60. package/dist/esm/client/index.d.ts +779 -0
  61. package/dist/esm/client/index.d.ts.map +1 -0
  62. package/dist/{client → esm/client}/index.js +14 -2
  63. package/dist/esm/client/index.js.map +1 -0
  64. package/dist/esm/client/sse.d.ts +27 -0
  65. package/dist/esm/client/sse.d.ts.map +1 -0
  66. package/dist/esm/client/sse.js.map +1 -0
  67. package/dist/esm/client/stdio.d.ts +63 -0
  68. package/dist/esm/client/stdio.d.ts.map +1 -0
  69. package/dist/esm/client/stdio.js.map +1 -0
  70. package/dist/esm/client/websocket.d.ts +17 -0
  71. package/dist/esm/client/websocket.d.ts.map +1 -0
  72. package/dist/esm/client/websocket.js.map +1 -0
  73. package/dist/esm/inMemory.d.ts +20 -0
  74. package/dist/esm/inMemory.d.ts.map +1 -0
  75. package/dist/esm/inMemory.js.map +1 -0
  76. package/dist/esm/package.json +1 -0
  77. package/dist/esm/server/completable.d.ts +22 -0
  78. package/dist/esm/server/completable.d.ts.map +1 -0
  79. package/dist/esm/server/completable.js +60 -0
  80. package/dist/esm/server/completable.js.map +1 -0
  81. package/dist/esm/server/index.d.ts +123 -0
  82. package/dist/esm/server/index.d.ts.map +1 -0
  83. package/dist/{server → esm/server}/index.js +16 -2
  84. package/dist/esm/server/index.js.map +1 -0
  85. package/dist/esm/server/mcp.d.ts +150 -0
  86. package/dist/esm/server/mcp.d.ts.map +1 -0
  87. package/dist/esm/server/mcp.js +360 -0
  88. package/dist/esm/server/mcp.js.map +1 -0
  89. package/dist/esm/server/sse.d.ts +46 -0
  90. package/dist/esm/server/sse.d.ts.map +1 -0
  91. package/dist/esm/server/sse.js.map +1 -0
  92. package/dist/esm/server/stdio.d.ts +28 -0
  93. package/dist/esm/server/stdio.d.ts.map +1 -0
  94. package/dist/esm/server/stdio.js.map +1 -0
  95. package/dist/esm/shared/protocol.d.ts +162 -0
  96. package/dist/esm/shared/protocol.d.ts.map +1 -0
  97. package/dist/{shared → esm/shared}/protocol.js +19 -0
  98. package/dist/esm/shared/protocol.js.map +1 -0
  99. package/dist/esm/shared/stdio.d.ts +13 -0
  100. package/dist/esm/shared/stdio.d.ts.map +1 -0
  101. package/dist/esm/shared/stdio.js.map +1 -0
  102. package/dist/esm/shared/transport.d.ts +39 -0
  103. package/dist/esm/shared/transport.d.ts.map +1 -0
  104. package/dist/esm/shared/transport.js.map +1 -0
  105. package/dist/esm/shared/uriTemplate.d.ts +24 -0
  106. package/dist/esm/shared/uriTemplate.d.ts.map +1 -0
  107. package/dist/esm/shared/uriTemplate.js +238 -0
  108. package/dist/esm/shared/uriTemplate.js.map +1 -0
  109. package/dist/esm/types.d.ts +26431 -0
  110. package/dist/esm/types.d.ts.map +1 -0
  111. package/dist/esm/types.js.map +1 -0
  112. package/package.json +12 -6
  113. package/dist/cli.d.ts.map +0 -1
  114. package/dist/cli.js.map +0 -1
  115. package/dist/client/index.d.ts.map +0 -1
  116. package/dist/client/index.js.map +0 -1
  117. package/dist/client/sse.d.ts.map +0 -1
  118. package/dist/client/sse.js.map +0 -1
  119. package/dist/client/stdio.d.ts.map +0 -1
  120. package/dist/client/stdio.js.map +0 -1
  121. package/dist/client/websocket.d.ts.map +0 -1
  122. package/dist/client/websocket.js.map +0 -1
  123. package/dist/inMemory.d.ts.map +0 -1
  124. package/dist/inMemory.js.map +0 -1
  125. package/dist/server/index.d.ts.map +0 -1
  126. package/dist/server/index.js.map +0 -1
  127. package/dist/server/sse.d.ts.map +0 -1
  128. package/dist/server/sse.js.map +0 -1
  129. package/dist/server/stdio.d.ts.map +0 -1
  130. package/dist/server/stdio.js.map +0 -1
  131. package/dist/shared/protocol.d.ts.map +0 -1
  132. package/dist/shared/protocol.js.map +0 -1
  133. package/dist/shared/stdio.d.ts.map +0 -1
  134. package/dist/shared/stdio.js.map +0 -1
  135. package/dist/shared/transport.d.ts.map +0 -1
  136. package/dist/types.d.ts.map +0 -1
  137. package/dist/types.js.map +0 -1
  138. /package/dist/{cli.d.ts → cjs/cli.d.ts} +0 -0
  139. /package/dist/{client → cjs/client}/sse.d.ts +0 -0
  140. /package/dist/{client → cjs/client}/stdio.d.ts +0 -0
  141. /package/dist/{client → cjs/client}/websocket.d.ts +0 -0
  142. /package/dist/{inMemory.d.ts → cjs/inMemory.d.ts} +0 -0
  143. /package/dist/{server → cjs/server}/sse.d.ts +0 -0
  144. /package/dist/{server → cjs/server}/stdio.d.ts +0 -0
  145. /package/dist/{shared → cjs/shared}/stdio.d.ts +0 -0
  146. /package/dist/{shared → cjs/shared}/transport.d.ts +0 -0
  147. /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
  148. /package/dist/{cli.js → esm/cli.js} +0 -0
  149. /package/dist/{client → esm/client}/sse.js +0 -0
  150. /package/dist/{client → esm/client}/stdio.js +0 -0
  151. /package/dist/{client → esm/client}/websocket.js +0 -0
  152. /package/dist/{inMemory.js → esm/inMemory.js} +0 -0
  153. /package/dist/{server → esm/server}/sse.js +0 -0
  154. /package/dist/{server → esm/server}/stdio.js +0 -0
  155. /package/dist/{shared → esm/shared}/stdio.js +0 -0
  156. /package/dist/{shared → esm/shared}/transport.js +0 -0
  157. /package/dist/{types.js → esm/types.js} +0 -0
@@ -0,0 +1,150 @@
1
+ import { Server, ServerOptions } from "./index.js";
2
+ import { z, ZodRawShape, ZodTypeAny, ZodType, ZodTypeDef, ZodOptional } from "zod";
3
+ import { Implementation, CallToolResult, Resource, ListResourcesResult, GetPromptResult, ReadResourceResult } from "../types.js";
4
+ import { UriTemplate, Variables } from "../shared/uriTemplate.js";
5
+ import { RequestHandlerExtra } from "../shared/protocol.js";
6
+ import { Transport } from "../shared/transport.js";
7
+ /**
8
+ * High-level MCP server that provides a simpler API for working with resources, tools, and prompts.
9
+ * For advanced usage (like sending notifications or setting custom request handlers), use the underlying
10
+ * Server instance available via the `server` property.
11
+ */
12
+ export declare class McpServer {
13
+ /**
14
+ * The underlying Server instance, useful for advanced operations like sending notifications.
15
+ */
16
+ readonly server: Server;
17
+ private _registeredResources;
18
+ private _registeredResourceTemplates;
19
+ private _registeredTools;
20
+ private _registeredPrompts;
21
+ constructor(serverInfo: Implementation, options?: ServerOptions);
22
+ /**
23
+ * Attaches to the given transport, starts it, and starts listening for messages.
24
+ *
25
+ * The `server` object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.
26
+ */
27
+ connect(transport: Transport): Promise<void>;
28
+ /**
29
+ * Closes the connection.
30
+ */
31
+ close(): Promise<void>;
32
+ private setToolRequestHandlers;
33
+ private setCompletionRequestHandler;
34
+ private handlePromptCompletion;
35
+ private handleResourceCompletion;
36
+ private setResourceRequestHandlers;
37
+ private setPromptRequestHandlers;
38
+ /**
39
+ * Registers a resource `name` at a fixed URI, which will use the given callback to respond to read requests.
40
+ */
41
+ resource(name: string, uri: string, readCallback: ReadResourceCallback): void;
42
+ /**
43
+ * Registers a resource `name` at a fixed URI with metadata, which will use the given callback to respond to read requests.
44
+ */
45
+ resource(name: string, uri: string, metadata: ResourceMetadata, readCallback: ReadResourceCallback): void;
46
+ /**
47
+ * Registers a resource `name` with a template pattern, which will use the given callback to respond to read requests.
48
+ */
49
+ resource(name: string, template: ResourceTemplate, readCallback: ReadResourceTemplateCallback): void;
50
+ /**
51
+ * Registers a resource `name` with a template pattern and metadata, which will use the given callback to respond to read requests.
52
+ */
53
+ resource(name: string, template: ResourceTemplate, metadata: ResourceMetadata, readCallback: ReadResourceTemplateCallback): void;
54
+ /**
55
+ * Registers a zero-argument tool `name`, which will run the given function when the client calls it.
56
+ */
57
+ tool(name: string, cb: ToolCallback): void;
58
+ /**
59
+ * Registers a zero-argument tool `name` (with a description) which will run the given function when the client calls it.
60
+ */
61
+ tool(name: string, description: string, cb: ToolCallback): void;
62
+ /**
63
+ * Registers a tool `name` accepting the given arguments, which must be an object containing named properties associated with Zod schemas. When the client calls it, the function will be run with the parsed and validated arguments.
64
+ */
65
+ tool<Args extends ZodRawShape>(name: string, paramsSchema: Args, cb: ToolCallback<Args>): void;
66
+ /**
67
+ * Registers a tool `name` (with a description) accepting the given arguments, which must be an object containing named properties associated with Zod schemas. When the client calls it, the function will be run with the parsed and validated arguments.
68
+ */
69
+ tool<Args extends ZodRawShape>(name: string, description: string, paramsSchema: Args, cb: ToolCallback<Args>): void;
70
+ /**
71
+ * Registers a zero-argument prompt `name`, which will run the given function when the client calls it.
72
+ */
73
+ prompt(name: string, cb: PromptCallback): void;
74
+ /**
75
+ * Registers a zero-argument prompt `name` (with a description) which will run the given function when the client calls it.
76
+ */
77
+ prompt(name: string, description: string, cb: PromptCallback): void;
78
+ /**
79
+ * Registers a prompt `name` accepting the given arguments, which must be an object containing named properties associated with Zod schemas. When the client calls it, the function will be run with the parsed and validated arguments.
80
+ */
81
+ prompt<Args extends PromptArgsRawShape>(name: string, argsSchema: Args, cb: PromptCallback<Args>): void;
82
+ /**
83
+ * Registers a prompt `name` (with a description) accepting the given arguments, which must be an object containing named properties associated with Zod schemas. When the client calls it, the function will be run with the parsed and validated arguments.
84
+ */
85
+ prompt<Args extends PromptArgsRawShape>(name: string, description: string, argsSchema: Args, cb: PromptCallback<Args>): void;
86
+ }
87
+ /**
88
+ * A callback to complete one variable within a resource template's URI template.
89
+ */
90
+ export type CompleteResourceTemplateCallback = (value: string) => string[] | Promise<string[]>;
91
+ /**
92
+ * A resource template combines a URI pattern with optional functionality to enumerate
93
+ * all resources matching that pattern.
94
+ */
95
+ export declare class ResourceTemplate {
96
+ private _callbacks;
97
+ private _uriTemplate;
98
+ constructor(uriTemplate: string | UriTemplate, _callbacks: {
99
+ /**
100
+ * A callback to list all resources matching this template. This is required to specified, even if `undefined`, to avoid accidentally forgetting resource listing.
101
+ */
102
+ list: ListResourcesCallback | undefined;
103
+ /**
104
+ * An optional callback to autocomplete variables within the URI template. Useful for clients and users to discover possible values.
105
+ */
106
+ complete?: {
107
+ [variable: string]: CompleteResourceTemplateCallback;
108
+ };
109
+ });
110
+ /**
111
+ * Gets the URI template pattern.
112
+ */
113
+ get uriTemplate(): UriTemplate;
114
+ /**
115
+ * Gets the list callback, if one was provided.
116
+ */
117
+ get listCallback(): ListResourcesCallback | undefined;
118
+ /**
119
+ * Gets the callback for completing a specific URI template variable, if one was provided.
120
+ */
121
+ completeCallback(variable: string): CompleteResourceTemplateCallback | undefined;
122
+ }
123
+ /**
124
+ * Callback for a tool handler registered with Server.tool().
125
+ *
126
+ * Parameters will include tool arguments, if applicable, as well as other request handler context.
127
+ */
128
+ export type ToolCallback<Args extends undefined | ZodRawShape = undefined> = Args extends ZodRawShape ? (args: z.objectOutputType<Args, ZodTypeAny>, extra: RequestHandlerExtra) => CallToolResult | Promise<CallToolResult> : (extra: RequestHandlerExtra) => CallToolResult | Promise<CallToolResult>;
129
+ /**
130
+ * Additional, optional information for annotating a resource.
131
+ */
132
+ export type ResourceMetadata = Omit<Resource, "uri" | "name">;
133
+ /**
134
+ * Callback to list all resources matching a given template.
135
+ */
136
+ export type ListResourcesCallback = (extra: RequestHandlerExtra) => ListResourcesResult | Promise<ListResourcesResult>;
137
+ /**
138
+ * Callback to read a resource at a given URI.
139
+ */
140
+ export type ReadResourceCallback = (uri: URL, extra: RequestHandlerExtra) => ReadResourceResult | Promise<ReadResourceResult>;
141
+ /**
142
+ * Callback to read a resource at a given URI, following a filled-in URI template.
143
+ */
144
+ export type ReadResourceTemplateCallback = (uri: URL, variables: Variables, extra: RequestHandlerExtra) => ReadResourceResult | Promise<ReadResourceResult>;
145
+ type PromptArgsRawShape = {
146
+ [k: string]: ZodType<string, ZodTypeDef, string> | ZodOptional<ZodType<string, ZodTypeDef, string>>;
147
+ };
148
+ export type PromptCallback<Args extends undefined | PromptArgsRawShape = undefined> = Args extends PromptArgsRawShape ? (args: z.objectOutputType<Args, ZodTypeAny>, extra: RequestHandlerExtra) => GetPromptResult | Promise<GetPromptResult> : (extra: RequestHandlerExtra) => GetPromptResult | Promise<GetPromptResult>;
149
+ export {};
150
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,360 @@
1
+ import { Server } from "./index.js";
2
+ import { zodToJsonSchema } from "zod-to-json-schema";
3
+ import { z, } from "zod";
4
+ import { McpError, ErrorCode, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema, ListToolsRequestSchema, CallToolRequestSchema, ListResourcesRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, CompleteRequestSchema, } from "../types.js";
5
+ import { Completable } from "./completable.js";
6
+ import { UriTemplate } from "../shared/uriTemplate.js";
7
+ /**
8
+ * High-level MCP server that provides a simpler API for working with resources, tools, and prompts.
9
+ * For advanced usage (like sending notifications or setting custom request handlers), use the underlying
10
+ * Server instance available via the `server` property.
11
+ */
12
+ export class McpServer {
13
+ constructor(serverInfo, options) {
14
+ this._registeredResources = {};
15
+ this._registeredResourceTemplates = {};
16
+ this._registeredTools = {};
17
+ this._registeredPrompts = {};
18
+ this.server = new Server(serverInfo, options);
19
+ }
20
+ /**
21
+ * Attaches to the given transport, starts it, and starts listening for messages.
22
+ *
23
+ * The `server` object assumes ownership of the Transport, replacing any callbacks that have already been set, and expects that it is the only user of the Transport instance going forward.
24
+ */
25
+ async connect(transport) {
26
+ return await this.server.connect(transport);
27
+ }
28
+ /**
29
+ * Closes the connection.
30
+ */
31
+ async close() {
32
+ await this.server.close();
33
+ }
34
+ setToolRequestHandlers() {
35
+ this.server.assertCanSetRequestHandler(ListToolsRequestSchema.shape.method.value);
36
+ this.server.assertCanSetRequestHandler(CallToolRequestSchema.shape.method.value);
37
+ this.server.registerCapabilities({
38
+ tools: {},
39
+ });
40
+ this.server.setRequestHandler(ListToolsRequestSchema, () => ({
41
+ tools: Object.entries(this._registeredTools).map(([name, tool]) => {
42
+ return {
43
+ name,
44
+ description: tool.description,
45
+ inputSchema: tool.inputSchema
46
+ ? zodToJsonSchema(tool.inputSchema)
47
+ : EMPTY_OBJECT_JSON_SCHEMA,
48
+ };
49
+ }),
50
+ }));
51
+ this.server.setRequestHandler(CallToolRequestSchema, async (request, extra) => {
52
+ const tool = this._registeredTools[request.params.name];
53
+ if (!tool) {
54
+ throw new McpError(ErrorCode.InvalidParams, `Tool ${request.params.name} not found`);
55
+ }
56
+ if (tool.inputSchema) {
57
+ const parseResult = await tool.inputSchema.safeParseAsync(request.params.arguments);
58
+ if (!parseResult.success) {
59
+ throw new McpError(ErrorCode.InvalidParams, `Invalid arguments for tool ${request.params.name}: ${parseResult.error.message}`);
60
+ }
61
+ const args = parseResult.data;
62
+ const cb = tool.callback;
63
+ try {
64
+ return await Promise.resolve(cb(args, extra));
65
+ }
66
+ catch (error) {
67
+ return {
68
+ content: [
69
+ {
70
+ type: "text",
71
+ text: error instanceof Error ? error.message : String(error),
72
+ },
73
+ ],
74
+ isError: true,
75
+ };
76
+ }
77
+ }
78
+ else {
79
+ const cb = tool.callback;
80
+ try {
81
+ return await Promise.resolve(cb(extra));
82
+ }
83
+ catch (error) {
84
+ return {
85
+ content: [
86
+ {
87
+ type: "text",
88
+ text: error instanceof Error ? error.message : String(error),
89
+ },
90
+ ],
91
+ isError: true,
92
+ };
93
+ }
94
+ }
95
+ });
96
+ }
97
+ setCompletionRequestHandler() {
98
+ this.server.assertCanSetRequestHandler(CompleteRequestSchema.shape.method.value);
99
+ this.server.setRequestHandler(CompleteRequestSchema, async (request) => {
100
+ switch (request.params.ref.type) {
101
+ case "ref/prompt":
102
+ return this.handlePromptCompletion(request, request.params.ref);
103
+ case "ref/resource":
104
+ return this.handleResourceCompletion(request, request.params.ref);
105
+ default:
106
+ throw new McpError(ErrorCode.InvalidParams, `Invalid completion reference: ${request.params.ref}`);
107
+ }
108
+ });
109
+ }
110
+ async handlePromptCompletion(request, ref) {
111
+ const prompt = this._registeredPrompts[ref.name];
112
+ if (!prompt) {
113
+ throw new McpError(ErrorCode.InvalidParams, `Prompt ${request.params.ref.name} not found`);
114
+ }
115
+ if (!prompt.argsSchema) {
116
+ return EMPTY_COMPLETION_RESULT;
117
+ }
118
+ const field = prompt.argsSchema.shape[request.params.argument.name];
119
+ if (!(field instanceof Completable)) {
120
+ return EMPTY_COMPLETION_RESULT;
121
+ }
122
+ const def = field._def;
123
+ const suggestions = await def.complete(request.params.argument.value);
124
+ return createCompletionResult(suggestions);
125
+ }
126
+ async handleResourceCompletion(request, ref) {
127
+ const template = Object.values(this._registeredResourceTemplates).find((t) => t.resourceTemplate.uriTemplate.toString() === ref.uri);
128
+ if (!template) {
129
+ if (this._registeredResources[ref.uri]) {
130
+ // Attempting to autocomplete a fixed resource URI is not an error in the spec (but probably should be).
131
+ return EMPTY_COMPLETION_RESULT;
132
+ }
133
+ throw new McpError(ErrorCode.InvalidParams, `Resource template ${request.params.ref.uri} not found`);
134
+ }
135
+ const completer = template.resourceTemplate.completeCallback(request.params.argument.name);
136
+ if (!completer) {
137
+ return EMPTY_COMPLETION_RESULT;
138
+ }
139
+ const suggestions = await completer(request.params.argument.value);
140
+ return createCompletionResult(suggestions);
141
+ }
142
+ setResourceRequestHandlers() {
143
+ this.server.assertCanSetRequestHandler(ListResourcesRequestSchema.shape.method.value);
144
+ this.server.assertCanSetRequestHandler(ListResourceTemplatesRequestSchema.shape.method.value);
145
+ this.server.assertCanSetRequestHandler(ReadResourceRequestSchema.shape.method.value);
146
+ this.server.registerCapabilities({
147
+ resources: {},
148
+ });
149
+ this.server.setRequestHandler(ListResourcesRequestSchema, async (request, extra) => {
150
+ const resources = Object.entries(this._registeredResources).map(([uri, resource]) => ({
151
+ uri,
152
+ name: resource.name,
153
+ ...resource.metadata,
154
+ }));
155
+ const templateResources = [];
156
+ for (const template of Object.values(this._registeredResourceTemplates)) {
157
+ if (!template.resourceTemplate.listCallback) {
158
+ continue;
159
+ }
160
+ const result = await template.resourceTemplate.listCallback(extra);
161
+ for (const resource of result.resources) {
162
+ templateResources.push({
163
+ ...resource,
164
+ ...template.metadata,
165
+ });
166
+ }
167
+ }
168
+ return { resources: [...resources, ...templateResources] };
169
+ });
170
+ this.server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {
171
+ const resourceTemplates = Object.entries(this._registeredResourceTemplates).map(([name, template]) => ({
172
+ name,
173
+ uriTemplate: template.resourceTemplate.uriTemplate.toString(),
174
+ ...template.metadata,
175
+ }));
176
+ return { resourceTemplates };
177
+ });
178
+ this.server.setRequestHandler(ReadResourceRequestSchema, async (request, extra) => {
179
+ const uri = new URL(request.params.uri);
180
+ // First check for exact resource match
181
+ const resource = this._registeredResources[uri.toString()];
182
+ if (resource) {
183
+ return resource.readCallback(uri, extra);
184
+ }
185
+ // Then check templates
186
+ for (const template of Object.values(this._registeredResourceTemplates)) {
187
+ const variables = template.resourceTemplate.uriTemplate.match(uri.toString());
188
+ if (variables) {
189
+ return template.readCallback(uri, variables, extra);
190
+ }
191
+ }
192
+ throw new McpError(ErrorCode.InvalidParams, `Resource ${uri} not found`);
193
+ });
194
+ this.setCompletionRequestHandler();
195
+ }
196
+ setPromptRequestHandlers() {
197
+ this.server.assertCanSetRequestHandler(ListPromptsRequestSchema.shape.method.value);
198
+ this.server.assertCanSetRequestHandler(GetPromptRequestSchema.shape.method.value);
199
+ this.server.registerCapabilities({
200
+ prompts: {},
201
+ });
202
+ this.server.setRequestHandler(ListPromptsRequestSchema, () => ({
203
+ prompts: Object.entries(this._registeredPrompts).map(([name, prompt]) => {
204
+ return {
205
+ name,
206
+ description: prompt.description,
207
+ arguments: prompt.argsSchema
208
+ ? promptArgumentsFromSchema(prompt.argsSchema)
209
+ : undefined,
210
+ };
211
+ }),
212
+ }));
213
+ this.server.setRequestHandler(GetPromptRequestSchema, async (request, extra) => {
214
+ const prompt = this._registeredPrompts[request.params.name];
215
+ if (!prompt) {
216
+ throw new McpError(ErrorCode.InvalidParams, `Prompt ${request.params.name} not found`);
217
+ }
218
+ if (prompt.argsSchema) {
219
+ const parseResult = await prompt.argsSchema.safeParseAsync(request.params.arguments);
220
+ if (!parseResult.success) {
221
+ throw new McpError(ErrorCode.InvalidParams, `Invalid arguments for prompt ${request.params.name}: ${parseResult.error.message}`);
222
+ }
223
+ const args = parseResult.data;
224
+ const cb = prompt.callback;
225
+ return await Promise.resolve(cb(args, extra));
226
+ }
227
+ else {
228
+ const cb = prompt.callback;
229
+ return await Promise.resolve(cb(extra));
230
+ }
231
+ });
232
+ this.setCompletionRequestHandler();
233
+ }
234
+ resource(name, uriOrTemplate, ...rest) {
235
+ let metadata;
236
+ if (typeof rest[0] === "object") {
237
+ metadata = rest.shift();
238
+ }
239
+ const readCallback = rest[0];
240
+ if (typeof uriOrTemplate === "string") {
241
+ if (this._registeredResources[uriOrTemplate]) {
242
+ throw new Error(`Resource ${uriOrTemplate} is already registered`);
243
+ }
244
+ this._registeredResources[uriOrTemplate] = {
245
+ name,
246
+ metadata,
247
+ readCallback: readCallback,
248
+ };
249
+ }
250
+ else {
251
+ if (this._registeredResourceTemplates[name]) {
252
+ throw new Error(`Resource template ${name} is already registered`);
253
+ }
254
+ this._registeredResourceTemplates[name] = {
255
+ resourceTemplate: uriOrTemplate,
256
+ metadata,
257
+ readCallback: readCallback,
258
+ };
259
+ }
260
+ this.setResourceRequestHandlers();
261
+ }
262
+ tool(name, ...rest) {
263
+ if (this._registeredTools[name]) {
264
+ throw new Error(`Tool ${name} is already registered`);
265
+ }
266
+ let description;
267
+ if (typeof rest[0] === "string") {
268
+ description = rest.shift();
269
+ }
270
+ let paramsSchema;
271
+ if (rest.length > 1) {
272
+ paramsSchema = rest.shift();
273
+ }
274
+ const cb = rest[0];
275
+ this._registeredTools[name] = {
276
+ description,
277
+ inputSchema: paramsSchema === undefined ? undefined : z.object(paramsSchema),
278
+ callback: cb,
279
+ };
280
+ this.setToolRequestHandlers();
281
+ }
282
+ prompt(name, ...rest) {
283
+ if (this._registeredPrompts[name]) {
284
+ throw new Error(`Prompt ${name} is already registered`);
285
+ }
286
+ let description;
287
+ if (typeof rest[0] === "string") {
288
+ description = rest.shift();
289
+ }
290
+ let argsSchema;
291
+ if (rest.length > 1) {
292
+ argsSchema = rest.shift();
293
+ }
294
+ const cb = rest[0];
295
+ this._registeredPrompts[name] = {
296
+ description,
297
+ argsSchema: argsSchema === undefined ? undefined : z.object(argsSchema),
298
+ callback: cb,
299
+ };
300
+ this.setPromptRequestHandlers();
301
+ }
302
+ }
303
+ /**
304
+ * A resource template combines a URI pattern with optional functionality to enumerate
305
+ * all resources matching that pattern.
306
+ */
307
+ export class ResourceTemplate {
308
+ constructor(uriTemplate, _callbacks) {
309
+ this._callbacks = _callbacks;
310
+ this._uriTemplate =
311
+ typeof uriTemplate === "string"
312
+ ? new UriTemplate(uriTemplate)
313
+ : uriTemplate;
314
+ }
315
+ /**
316
+ * Gets the URI template pattern.
317
+ */
318
+ get uriTemplate() {
319
+ return this._uriTemplate;
320
+ }
321
+ /**
322
+ * Gets the list callback, if one was provided.
323
+ */
324
+ get listCallback() {
325
+ return this._callbacks.list;
326
+ }
327
+ /**
328
+ * Gets the callback for completing a specific URI template variable, if one was provided.
329
+ */
330
+ completeCallback(variable) {
331
+ var _a;
332
+ return (_a = this._callbacks.complete) === null || _a === void 0 ? void 0 : _a[variable];
333
+ }
334
+ }
335
+ const EMPTY_OBJECT_JSON_SCHEMA = {
336
+ type: "object",
337
+ };
338
+ function promptArgumentsFromSchema(schema) {
339
+ return Object.entries(schema.shape).map(([name, field]) => ({
340
+ name,
341
+ description: field.description,
342
+ required: !field.isOptional(),
343
+ }));
344
+ }
345
+ function createCompletionResult(suggestions) {
346
+ return {
347
+ completion: {
348
+ values: suggestions.slice(0, 100),
349
+ total: suggestions.length,
350
+ hasMore: suggestions.length > 100,
351
+ },
352
+ };
353
+ }
354
+ const EMPTY_COMPLETION_RESULT = {
355
+ completion: {
356
+ values: [],
357
+ hasMore: false,
358
+ },
359
+ };
360
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAiB,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,CAAC,GASF,MAAM,KAAK,CAAC;AACb,OAAO,EAKL,QAAQ,EACR,SAAS,EAOT,kCAAkC,EAClC,yBAAyB,EACzB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,qBAAqB,GAMtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAa,MAAM,0BAA0B,CAAC;AAIlE;;;;GAIG;AACH,MAAM,OAAO,SAAS;IAapB,YAAY,UAA0B,EAAE,OAAuB;QAPvD,yBAAoB,GAA0C,EAAE,CAAC;QACjE,iCAA4B,GAEhC,EAAE,CAAC;QACC,qBAAgB,GAAuC,EAAE,CAAC;QAC1D,uBAAkB,GAAyC,EAAE,CAAC;QAGpE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,SAAoB;QAChC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC1C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACzC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC/B,KAAK,EAAE,EAAE;SACV,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,sBAAsB,EACtB,GAAoB,EAAE,CAAC,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAC9C,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAQ,EAAE;gBACrB,OAAO;oBACL,IAAI;oBACJ,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC3B,CAAC,CAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAyB;wBAC5D,CAAC,CAAC,wBAAwB;iBAC7B,CAAC;YACJ,CAAC,CACF;SACF,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,qBAAqB,EACrB,KAAK,EAAE,OAAO,EAAE,KAAK,EAA2B,EAAE;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CACxC,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CACvD,OAAO,CAAC,MAAM,CAAC,SAAS,CACzB,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,8BAA8B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAClF,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAqC,CAAC;gBACtD,IAAI,CAAC;oBACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBAChD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;6BAC7D;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,IAAI,CAAC,QAAmC,CAAC;gBACpD,IAAI,CAAC;oBACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;6BAC7D;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,2BAA2B;QACjC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACzC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,qBAAqB,EACrB,KAAK,EAAE,OAAO,EAA2B,EAAE;YACzC,QAAQ,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAChC,KAAK,YAAY;oBACf,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAElE,KAAK,cAAc;oBACjB,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEpE;oBACE,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,iCAAiC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CACtD,CAAC;YACN,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,OAAwB,EACxB,GAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,UAAU,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,YAAY,CAC9C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,KAAK,YAAY,WAAW,CAAC,EAAE,CAAC;YACpC,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,MAAM,GAAG,GAA8B,KAAK,CAAC,IAAI,CAAC;QAClD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,OAAwB,EACxB,GAAsB;QAEtB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,GAAG,CAC7D,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,wGAAwG;gBACxG,OAAO,uBAAuB,CAAC;YACjC,CAAC;YAED,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,qBAAqB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CACxD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAC7B,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnE,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAEO,0BAA0B;QAChC,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,0BAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC9C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,kCAAkC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACtD,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC7C,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC/B,SAAS,EAAE,EAAE;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,0BAA0B,EAC1B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,GAAG,CAC7D,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpB,GAAG;gBACH,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,GAAG,QAAQ,CAAC,QAAQ;aACrB,CAAC,CACH,CAAC;YAEF,MAAM,iBAAiB,GAAe,EAAE,CAAC;YACzC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAClC,IAAI,CAAC,4BAA4B,CAClC,EAAE,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACxC,iBAAiB,CAAC,IAAI,CAAC;wBACrB,GAAG,QAAQ;wBACX,GAAG,QAAQ,CAAC,QAAQ;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC;QAC7D,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,kCAAkC,EAClC,KAAK,IAAI,EAAE;YACT,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CACtC,IAAI,CAAC,4BAA4B,CAClC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI;gBACJ,WAAW,EAAE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE;gBAC7D,GAAG,QAAQ,CAAC,QAAQ;aACrB,CAAC,CAAC,CAAC;YAEJ,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC/B,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,yBAAyB,EACzB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAExC,uCAAuC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;YAED,uBAAuB;YACvB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAClC,IAAI,CAAC,4BAA4B,CAClC,EAAE,CAAC;gBACF,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAC3D,GAAG,CAAC,QAAQ,EAAE,CACf,CAAC;gBACF,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,YAAY,GAAG,YAAY,CAC5B,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAEO,wBAAwB;QAC9B,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,wBAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC5C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC1C,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC/B,OAAO,EAAE,EAAE;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,wBAAwB,EACxB,GAAsB,EAAE,CAAC,CAAC;YACxB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAClD,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAU,EAAE;gBACzB,OAAO;oBACL,IAAI;oBACJ,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,SAAS,EAAE,MAAM,CAAC,UAAU;wBAC1B,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,UAAU,CAAC;wBAC9C,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC,CACF;SACF,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,sBAAsB,EACtB,KAAK,EAAE,OAAO,EAAE,KAAK,EAA4B,EAAE;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,UAAU,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAC1C,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,CACxD,OAAO,CAAC,MAAM,CAAC,SAAS,CACzB,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,aAAa,EACvB,gCAAgC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CACpF,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,QAA8C,CAAC;gBACjE,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,MAAM,CAAC,QAAqC,CAAC;gBACxD,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAoCD,QAAQ,CACN,IAAY,EACZ,aAAwC,EACxC,GAAG,IAAe;QAElB,IAAI,QAAsC,CAAC;QAC3C,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAsB,CAAC;QAC9C,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAEK,CAAC;QAEjC,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,YAAY,aAAa,wBAAwB,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,GAAG;gBACzC,IAAI;gBACJ,QAAQ;gBACR,YAAY,EAAE,YAAoC;aACnD,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,wBAAwB,CAAC,CAAC;YACrE,CAAC;YAED,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG;gBACxC,gBAAgB,EAAE,aAAa;gBAC/B,QAAQ;gBACR,YAAY,EAAE,YAA4C;aAC3D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,0BAA0B,EAAE,CAAC;IACpC,CAAC;IA+BD,IAAI,CAAC,IAAY,EAAE,GAAG,IAAe;QACnC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,wBAAwB,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,WAA+B,CAAC;QACpC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,WAAW,GAAG,IAAI,CAAC,KAAK,EAAY,CAAC;QACvC,CAAC;QAED,IAAI,YAAqC,CAAC;QAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,YAAY,GAAG,IAAI,CAAC,KAAK,EAAiB,CAAC;QAC7C,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAA0C,CAAC;QAC5D,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG;YAC5B,WAAW;YACX,WAAW,EACT,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACjE,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,CAAC,sBAAsB,EAAE,CAAC;IAChC,CAAC;IA+BD,MAAM,CAAC,IAAY,EAAE,GAAG,IAAe;QACrC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,wBAAwB,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,WAA+B,CAAC;QACpC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,WAAW,GAAG,IAAI,CAAC,KAAK,EAAY,CAAC;QACvC,CAAC;QAED,IAAI,UAA0C,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,UAAU,GAAG,IAAI,CAAC,KAAK,EAAwB,CAAC;QAClD,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAmD,CAAC;QACrE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG;YAC9B,WAAW;YACX,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YACvE,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;CACF;AASD;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IAG3B,YACE,WAAiC,EACzB,UAYP;QAZO,eAAU,GAAV,UAAU,CAYjB;QAED,IAAI,CAAC,YAAY;YACf,OAAO,WAAW,KAAK,QAAQ;gBAC7B,CAAC,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC;gBAC9B,CAAC,CAAC,WAAW,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,gBAAgB,CACd,QAAgB;;QAEhB,OAAO,MAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,0CAAG,QAAQ,CAAC,CAAC;IAC9C,CAAC;CACF;AAqBD,MAAM,wBAAwB,GAAG;IAC/B,IAAI,EAAE,QAAiB;CACxB,CAAC;AAgEF,SAAS,yBAAyB,CAChC,MAAqC;IAErC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CACrC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAkB,EAAE,CAAC,CAAC;QAClC,IAAI;QACJ,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;KAC9B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAqB;IACnD,OAAO;QACL,UAAU,EAAE;YACV,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACjC,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,OAAO,EAAE,WAAW,CAAC,MAAM,GAAG,GAAG;SAClC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,uBAAuB,GAAmB;IAC9C,UAAU,EAAE;QACV,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,KAAK;KACf;CACF,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { IncomingMessage, ServerResponse } from "node:http";
2
+ import { Transport } from "../shared/transport.js";
3
+ import { JSONRPCMessage } from "../types.js";
4
+ /**
5
+ * Server transport for SSE: this will send messages over an SSE connection and receive messages from HTTP POST requests.
6
+ *
7
+ * This transport is only available in Node.js environments.
8
+ */
9
+ export declare class SSEServerTransport implements Transport {
10
+ private _endpoint;
11
+ private res;
12
+ private _sseResponse?;
13
+ private _sessionId;
14
+ onclose?: () => void;
15
+ onerror?: (error: Error) => void;
16
+ onmessage?: (message: JSONRPCMessage) => void;
17
+ /**
18
+ * Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.
19
+ */
20
+ constructor(_endpoint: string, res: ServerResponse);
21
+ /**
22
+ * Handles the initial SSE connection request.
23
+ *
24
+ * This should be called when a GET request is made to establish the SSE stream.
25
+ */
26
+ start(): Promise<void>;
27
+ /**
28
+ * Handles incoming POST messages.
29
+ *
30
+ * This should be called when a POST request is made to send a message to the server.
31
+ */
32
+ handlePostMessage(req: IncomingMessage, res: ServerResponse, parsedBody?: unknown): Promise<void>;
33
+ /**
34
+ * Handle a client message, regardless of how it arrived. This can be used to inform the server of messages that arrive via a means different than HTTP POST.
35
+ */
36
+ handleMessage(message: unknown): Promise<void>;
37
+ close(): Promise<void>;
38
+ send(message: JSONRPCMessage): Promise<void>;
39
+ /**
40
+ * Returns the session ID for this transport.
41
+ *
42
+ * This can be used to route incoming POST requests.
43
+ */
44
+ get sessionId(): string;
45
+ }
46
+ //# sourceMappingURL=sse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/server/sse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAwB,MAAM,aAAa,CAAC;AAMnE;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAYhD,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C;;OAEG;gBAEO,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc;IAK7B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB5B;;;;OAIG;IACG,iBAAiB,CACrB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC;IAkChB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlD;;;;OAIG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/server/sse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { Readable, Writable } from "node:stream";
2
+ import { JSONRPCMessage } from "../types.js";
3
+ import { Transport } from "../shared/transport.js";
4
+ /**
5
+ * Server transport for stdio: this communicates with a MCP client by reading from the current process' stdin and writing to stdout.
6
+ *
7
+ * This transport is only available in Node.js environments.
8
+ */
9
+ export declare class StdioServerTransport implements Transport {
10
+ private _stdin;
11
+ private _stdout;
12
+ private _readBuffer;
13
+ private _started;
14
+ constructor(_stdin?: Readable, _stdout?: Writable);
15
+ onclose?: () => void;
16
+ onerror?: (error: Error) => void;
17
+ onmessage?: (message: JSONRPCMessage) => void;
18
+ _ondata: (chunk: Buffer) => void;
19
+ _onerror: (error: Error) => void;
20
+ /**
21
+ * Starts listening for messages on stdin.
22
+ */
23
+ start(): Promise<void>;
24
+ private processReadBuffer;
25
+ close(): Promise<void>;
26
+ send(message: JSONRPCMessage): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=stdio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../../src/server/stdio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,SAAS;IAKlD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IALjB,OAAO,CAAC,WAAW,CAAgC;IACnD,OAAO,CAAC,QAAQ,CAAS;gBAGf,MAAM,GAAE,QAAwB,EAChC,OAAO,GAAE,QAAyB;IAG5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAG9C,OAAO,UAAW,MAAM,UAGtB;IACF,QAAQ,UAAW,KAAK,UAEtB;IAEF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAY5B,OAAO,CAAC,iBAAiB;IAenB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5B,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAU7C"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../../../src/server/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAIlE;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IAI/B,YACU,SAAmB,OAAO,CAAC,KAAK,EAChC,UAAoB,OAAO,CAAC,MAAM;QADlC,WAAM,GAAN,MAAM,CAA0B;QAChC,YAAO,GAAP,OAAO,CAA2B;QALpC,gBAAW,GAAe,IAAI,UAAU,EAAE,CAAC;QAC3C,aAAQ,GAAG,KAAK,CAAC;QAWzB,gFAAgF;QAChF,YAAO,GAAG,CAAC,KAAa,EAAE,EAAE;YAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC,CAAC;QACF,aAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;;YAC1B,MAAA,IAAI,CAAC,OAAO,qDAAG,KAAK,CAAC,CAAC;QACxB,CAAC,CAAC;IAbC,CAAC;IAeJ;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,+GAA+G,CAChH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEO,iBAAiB;;QACvB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC/C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;oBACrB,MAAM;gBACR,CAAC;gBAED,MAAA,IAAI,CAAC,SAAS,qDAAG,OAAO,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAA,IAAI,CAAC,OAAO,qDAAG,KAAc,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;;QACT,mCAAmC;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExC,0CAA0C;QAC1C,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,sBAAsB,KAAK,CAAC,EAAE,CAAC;YACjC,gDAAgD;YAChD,0FAA0F;YAC1F,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;QAED,sCAAsC;QACtC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,MAAA,IAAI,CAAC,OAAO,oDAAI,CAAC;IACnB,CAAC;IAED,IAAI,CAAC,OAAuB;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}