@alcyone-labs/arg-parser 1.1.0 → 2.0.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.
- package/README.md +460 -1179
- package/dist/assets/.dxtignore.template +38 -0
- package/dist/assets/logo_1_small.jpg +0 -0
- package/dist/assets/tsdown.dxt.config.ts +37 -0
- package/dist/index.cjs +23702 -2315
- package/dist/index.cjs.map +1 -1
- package/dist/index.min.mjs +16360 -1725
- package/dist/index.min.mjs.map +1 -1
- package/dist/index.mjs +23694 -2315
- package/dist/index.mjs.map +1 -1
- package/dist/src/config/ConfigurationManager.d.ts +74 -0
- package/dist/src/config/ConfigurationManager.d.ts.map +1 -0
- package/dist/src/config/plugins/ConfigPlugin.d.ts +60 -0
- package/dist/src/config/plugins/ConfigPlugin.d.ts.map +1 -0
- package/dist/src/config/plugins/ConfigPluginRegistry.d.ts +72 -0
- package/dist/src/config/plugins/ConfigPluginRegistry.d.ts.map +1 -0
- package/dist/src/config/plugins/TomlConfigPlugin.d.ts +30 -0
- package/dist/src/config/plugins/TomlConfigPlugin.d.ts.map +1 -0
- package/dist/src/config/plugins/YamlConfigPlugin.d.ts +29 -0
- package/dist/src/config/plugins/YamlConfigPlugin.d.ts.map +1 -0
- package/dist/src/config/plugins/index.d.ts +5 -0
- package/dist/src/config/plugins/index.d.ts.map +1 -0
- package/dist/src/core/ArgParser.d.ts +332 -0
- package/dist/src/core/ArgParser.d.ts.map +1 -0
- package/dist/src/{ArgParserBase.d.ts → core/ArgParserBase.d.ts} +84 -3
- package/dist/src/core/ArgParserBase.d.ts.map +1 -0
- package/dist/src/core/FlagManager.d.ts.map +1 -0
- package/dist/src/{types.d.ts → core/types.d.ts} +40 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/dxt/DxtGenerator.d.ts +115 -0
- package/dist/src/dxt/DxtGenerator.d.ts.map +1 -0
- package/dist/src/index.d.ts +10 -6
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/mcp/ArgParserMcp.d.ts +21 -0
- package/dist/src/mcp/ArgParserMcp.d.ts.map +1 -0
- package/dist/src/mcp/mcp-integration.d.ts +83 -0
- package/dist/src/mcp/mcp-integration.d.ts.map +1 -0
- package/dist/src/mcp/mcp-notifications.d.ts +138 -0
- package/dist/src/mcp/mcp-notifications.d.ts.map +1 -0
- package/dist/src/mcp/mcp-prompts.d.ts +132 -0
- package/dist/src/mcp/mcp-prompts.d.ts.map +1 -0
- package/dist/src/mcp/mcp-resources.d.ts +133 -0
- package/dist/src/mcp/mcp-resources.d.ts.map +1 -0
- package/dist/src/testing/fuzzy-test-cli.d.ts +5 -0
- package/dist/src/testing/fuzzy-test-cli.d.ts.map +1 -0
- package/dist/src/{fuzzy-tester.d.ts → testing/fuzzy-tester.d.ts} +1 -1
- package/dist/src/testing/fuzzy-tester.d.ts.map +1 -0
- package/package.json +51 -17
- package/dist/examples/fuzzy-demo.d.ts +0 -8
- package/dist/examples/fuzzy-demo.d.ts.map +0 -1
- package/dist/examples/fuzzy-test-example.d.ts +0 -8
- package/dist/examples/fuzzy-test-example.d.ts.map +0 -1
- package/dist/examples/fzf-search-cli.d.ts +0 -8
- package/dist/examples/fzf-search-cli.d.ts.map +0 -1
- package/dist/examples/getting-started.d.ts +0 -27
- package/dist/examples/getting-started.d.ts.map +0 -1
- package/dist/examples/mcp-preset-transports.d.ts +0 -19
- package/dist/examples/mcp-preset-transports.d.ts.map +0 -1
- package/dist/examples/simple-cli.d.ts +0 -26
- package/dist/examples/simple-cli.d.ts.map +0 -1
- package/dist/examples/v1.1.0-showcase.d.ts +0 -16
- package/dist/examples/v1.1.0-showcase.d.ts.map +0 -1
- package/dist/examples/with-env-example.d.ts +0 -3
- package/dist/examples/with-env-example.d.ts.map +0 -1
- package/dist/index-6G9StDO_.js +0 -6445
- package/dist/index-6G9StDO_.js.map +0 -1
- package/dist/index-CqU7Fj3C.cjs +0 -6444
- package/dist/index-CqU7Fj3C.cjs.map +0 -1
- package/dist/index-Dx_q1msW.js +0 -4682
- package/dist/index-Dx_q1msW.js.map +0 -1
- package/dist/src/ArgParser.d.ts +0 -156
- package/dist/src/ArgParser.d.ts.map +0 -1
- package/dist/src/ArgParserBase.d.ts.map +0 -1
- package/dist/src/FlagManager.d.ts.map +0 -1
- package/dist/src/fuzzy-test-cli.d.ts +0 -5
- package/dist/src/fuzzy-test-cli.d.ts.map +0 -1
- package/dist/src/fuzzy-tester.d.ts.map +0 -1
- package/dist/src/mcp-integration.d.ts +0 -31
- package/dist/src/mcp-integration.d.ts.map +0 -1
- package/dist/src/types.d.ts.map +0 -1
- package/dist/sse-B5Jf_YpG.cjs +0 -121
- package/dist/sse-B5Jf_YpG.cjs.map +0 -1
- package/dist/sse-BDL3h2Ll.js +0 -121
- package/dist/sse-BDL3h2Ll.js.map +0 -1
- package/dist/sse-DSjLfGFo.js +0 -107
- package/dist/sse-DSjLfGFo.js.map +0 -1
- package/dist/stdio-Cf19UQO7.js +0 -70
- package/dist/stdio-Cf19UQO7.js.map +0 -1
- package/dist/stdio-DESvSONI.cjs +0 -94
- package/dist/stdio-DESvSONI.cjs.map +0 -1
- package/dist/stdio-DLOResWr.js +0 -94
- package/dist/stdio-DLOResWr.js.map +0 -1
- package/dist/streamableHttp-DXIdDSbF.js +0 -342
- package/dist/streamableHttp-DXIdDSbF.js.map +0 -1
- package/dist/streamableHttp-DsXlAnqJ.cjs +0 -456
- package/dist/streamableHttp-DsXlAnqJ.cjs.map +0 -1
- package/dist/streamableHttp-Vd4Qsgko.js +0 -456
- package/dist/streamableHttp-Vd4Qsgko.js.map +0 -1
- package/dist/types-DSxPEImy.cjs +0 -943
- package/dist/types-DSxPEImy.cjs.map +0 -1
- package/dist/types-DdsPVLQ5.js +0 -846
- package/dist/types-DdsPVLQ5.js.map +0 -1
- package/dist/types-DpK81FWv.js +0 -944
- package/dist/types-DpK81FWv.js.map +0 -1
- /package/dist/src/{FlagManager.d.ts → core/FlagManager.d.ts} +0 -0
package/dist/src/ArgParser.d.ts
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
import { ArgParserBase } from "./ArgParserBase";
|
|
2
|
-
import type { GenerateMcpToolsOptions, IMcpToolStructure } from "./mcp-integration";
|
|
3
|
-
/**
|
|
4
|
-
* Configuration for a single MCP transport
|
|
5
|
-
*/
|
|
6
|
-
export type McpTransportConfig = {
|
|
7
|
-
type: "stdio" | "sse" | "streamable-http";
|
|
8
|
-
port?: number;
|
|
9
|
-
host?: string;
|
|
10
|
-
path?: string;
|
|
11
|
-
sessionIdGenerator?: () => string;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* Configuration options for MCP sub-command
|
|
15
|
-
*/
|
|
16
|
-
export type McpSubCommandOptions = {
|
|
17
|
-
/** Preset transport configurations to use when no CLI flags are provided */
|
|
18
|
-
defaultTransports?: McpTransportConfig[];
|
|
19
|
-
/** Single preset transport configuration (alternative to defaultTransports) */
|
|
20
|
-
defaultTransport?: McpTransportConfig;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* ArgParser with Model Context Protocol (MCP) integration capabilities.
|
|
24
|
-
*
|
|
25
|
-
* This class adds MCP server functionality on top of the standard ArgParser,
|
|
26
|
-
* allowing CLI tools to be easily exposed as MCP tools with minimal boilerplate.
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* const parser = new ArgParser({
|
|
31
|
-
* appName: "My CLI",
|
|
32
|
-
* appCommandName: "my-cli",
|
|
33
|
-
* handler: async (ctx) => ({ result: "success" })
|
|
34
|
-
* })
|
|
35
|
-
* .addFlags([...])
|
|
36
|
-
* .addMcpSubCommand("serve", {
|
|
37
|
-
* name: "my-cli-mcp-server",
|
|
38
|
-
* version: "1.0.0"
|
|
39
|
-
* });
|
|
40
|
-
* ```
|
|
41
|
-
*/
|
|
42
|
-
export declare class ArgParser<THandlerReturn = any> extends ArgParserBase<THandlerReturn> {
|
|
43
|
-
#private;
|
|
44
|
-
/**
|
|
45
|
-
* Generate MCP tools from this ArgParser instance
|
|
46
|
-
* @param options Optional configuration for MCP tool generation
|
|
47
|
-
* @returns Array of MCP tool structures ready for server registration
|
|
48
|
-
*/
|
|
49
|
-
toMcpTools(options?: GenerateMcpToolsOptions): IMcpToolStructure[];
|
|
50
|
-
/**
|
|
51
|
-
* Create an MCP server with tools generated from this ArgParser
|
|
52
|
-
* @param serverInfo Server configuration
|
|
53
|
-
* @param toolOptions Optional MCP tool generation options
|
|
54
|
-
* @returns Configured MCP server instance
|
|
55
|
-
*/
|
|
56
|
-
createMcpServer(serverInfo: {
|
|
57
|
-
name: string;
|
|
58
|
-
version: string;
|
|
59
|
-
description?: string;
|
|
60
|
-
}, toolOptions?: GenerateMcpToolsOptions): any;
|
|
61
|
-
/**
|
|
62
|
-
* Start an MCP server using stdio transport
|
|
63
|
-
* @param serverInfo Server configuration
|
|
64
|
-
* @param toolOptions Optional MCP tool generation options
|
|
65
|
-
* @returns Promise that resolves when server is connected
|
|
66
|
-
*/
|
|
67
|
-
startMcpServer(serverInfo: {
|
|
68
|
-
name: string;
|
|
69
|
-
version: string;
|
|
70
|
-
description?: string;
|
|
71
|
-
}, toolOptions?: GenerateMcpToolsOptions): Promise<void>;
|
|
72
|
-
/**
|
|
73
|
-
* Start an MCP server with multiple transport types simultaneously
|
|
74
|
-
* @param serverInfo Server configuration
|
|
75
|
-
* @param transports Array of transport configurations
|
|
76
|
-
* @param toolOptions Optional MCP tool generation options
|
|
77
|
-
* @returns Promise that resolves when all servers are started
|
|
78
|
-
*/
|
|
79
|
-
startMcpServerWithMultipleTransports(serverInfo: {
|
|
80
|
-
name: string;
|
|
81
|
-
version: string;
|
|
82
|
-
description?: string;
|
|
83
|
-
}, transports: Array<{
|
|
84
|
-
type: "stdio" | "sse" | "streamable-http";
|
|
85
|
-
port?: number;
|
|
86
|
-
host?: string;
|
|
87
|
-
path?: string;
|
|
88
|
-
sessionIdGenerator?: () => string;
|
|
89
|
-
}>, toolOptions?: GenerateMcpToolsOptions): Promise<void>;
|
|
90
|
-
/**
|
|
91
|
-
* Start an MCP server with a specific transport type
|
|
92
|
-
* @param serverInfo Server configuration
|
|
93
|
-
* @param transportType Type of transport to use
|
|
94
|
-
* @param transportOptions Transport-specific options
|
|
95
|
-
* @param toolOptions Optional MCP tool generation options
|
|
96
|
-
* @returns Promise that resolves when server is connected
|
|
97
|
-
*/
|
|
98
|
-
startMcpServerWithTransport(serverInfo: {
|
|
99
|
-
name: string;
|
|
100
|
-
version: string;
|
|
101
|
-
description?: string;
|
|
102
|
-
}, transportType: "stdio" | "sse" | "streamable-http", transportOptions?: {
|
|
103
|
-
port?: number;
|
|
104
|
-
host?: string;
|
|
105
|
-
path?: string;
|
|
106
|
-
sessionIdGenerator?: () => string;
|
|
107
|
-
}, toolOptions?: GenerateMcpToolsOptions): Promise<void>;
|
|
108
|
-
/**
|
|
109
|
-
* Override parse() to handle async handlers properly
|
|
110
|
-
* This allows ArgParser to work with async handlers while keeping
|
|
111
|
-
* backwards compatibility for synchronous usage
|
|
112
|
-
*/
|
|
113
|
-
parse(processArgs: string[], options?: any): any;
|
|
114
|
-
/**
|
|
115
|
-
* Async version of parse for when async handlers are detected
|
|
116
|
-
*/
|
|
117
|
-
parseAsync(processArgs: string[], options?: any): Promise<any>;
|
|
118
|
-
/**
|
|
119
|
-
* Add an MCP sub-command that starts an MCP server exposing this parser's functionality
|
|
120
|
-
* @param subCommandName Name of the sub-command (default: "mcp-server")
|
|
121
|
-
* @param serverInfo Server configuration
|
|
122
|
-
* @param options Optional configuration including preset transports and tool options
|
|
123
|
-
* @returns This ArgParserWithMcp instance for chaining
|
|
124
|
-
*/
|
|
125
|
-
addMcpSubCommand(subCommandName: string | undefined, serverInfo: {
|
|
126
|
-
name: string;
|
|
127
|
-
version: string;
|
|
128
|
-
description?: string;
|
|
129
|
-
}, options?: McpSubCommandOptions & {
|
|
130
|
-
toolOptions?: GenerateMcpToolsOptions;
|
|
131
|
-
}): this;
|
|
132
|
-
/**
|
|
133
|
-
* Add an MCP sub-command that starts an MCP server exposing this parser's functionality
|
|
134
|
-
* @param subCommandName Name of the sub-command (default: "mcp-server")
|
|
135
|
-
* @param serverInfo Server configuration
|
|
136
|
-
* @param toolOptions Optional MCP tool generation options (backward compatibility)
|
|
137
|
-
* @returns This ArgParserWithMcp instance for chaining
|
|
138
|
-
* @deprecated Use the options parameter instead for better configurability
|
|
139
|
-
*/
|
|
140
|
-
addMcpSubCommand(subCommandName: string | undefined, serverInfo: {
|
|
141
|
-
name: string;
|
|
142
|
-
version: string;
|
|
143
|
-
description?: string;
|
|
144
|
-
}, toolOptions?: GenerateMcpToolsOptions): this;
|
|
145
|
-
/**
|
|
146
|
-
* Factory method to create an ArgParser instance with MCP capabilities
|
|
147
|
-
* This provides a clean API for users who want MCP functionality from the start
|
|
148
|
-
*/
|
|
149
|
-
static withMcp<T = any>(options?: ConstructorParameters<typeof ArgParserBase>[0], initialFlags?: ConstructorParameters<typeof ArgParserBase>[1]): ArgParser<T>;
|
|
150
|
-
/**
|
|
151
|
-
* Convert an existing ArgParserBase instance to ArgParser with MCP
|
|
152
|
-
* This allows upgrading existing parsers to support MCP
|
|
153
|
-
*/
|
|
154
|
-
static fromArgParser<T = any>(parser: ArgParserBase<T>): ArgParser<T>;
|
|
155
|
-
}
|
|
156
|
-
//# sourceMappingURL=ArgParser.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArgParser.d.ts","sourceRoot":"","sources":["../../src/ArgParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArgParserBase.d.ts","sourceRoot":"","sources":["../../src/ArgParserBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FlagManager.d.ts","sourceRoot":"","sources":["../../src/FlagManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,qBAAa,WAAW;;gBAKpB,OAAO,GAAE;QAAE,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAO,EAClD,YAAY,GAAE,SAAS,KAAK,EAAO;IAMrC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,GAAG,aAAa;IAwC5C,OAAO,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI;IAoB1B,+BAA+B,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI;IAQnE,QAAQ,CAAC,KAAK,EAAE,SAAS,KAAK,EAAE,GAAG,IAAI;IAOvC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI9B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhD,IAAI,KAAK,IAAI,aAAa,EAAE,CAE3B;IAED,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fuzzy-test-cli.d.ts","sourceRoot":"","sources":["../../src/fuzzy-test-cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAgBxC,QAAA,MAAM,YAAY,iBAmEhB,CAAC;AAkPH,OAAO,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fuzzy-tester.d.ts","sourceRoot":"","sources":["../../src/fuzzy-tester.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,WAAW,gBAAgB;IAC/B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,4CAA4C;IAC5C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,yDAAyD;IACzD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,EAAE;QACP,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACpC,CAAC;CACH;AAED,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAA6B;gBAEhC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE,gBAAqB;IAWjE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC;IAiB9C;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAY5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmB/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAIhB;;OAEG;YACW,eAAe;IAsC7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAqDrC;;OAEG;IACH,OAAO,CAAC,6BAA6B;IAerC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsBxB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsC/B;;OAEG;YACW,WAAW;IA0CzB;;OAEG;IACH,OAAO,CAAC,cAAc;CAuCvB"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { ZodTypeAny } from "zod";
|
|
2
|
-
import { ArgParserBase } from "./ArgParserBase";
|
|
3
|
-
import type { ProcessedFlag, TParsedArgs } from "./";
|
|
4
|
-
export interface IMcpToolStructure {
|
|
5
|
-
name: string;
|
|
6
|
-
description?: string;
|
|
7
|
-
inputSchema: ZodTypeAny;
|
|
8
|
-
outputSchema?: ZodTypeAny;
|
|
9
|
-
execute: (args: any) => Promise<any>;
|
|
10
|
-
}
|
|
11
|
-
export interface GenerateMcpToolsOptions {
|
|
12
|
-
outputSchemaMap?: Record<string, ZodTypeAny>;
|
|
13
|
-
defaultOutputSchema?: ZodTypeAny;
|
|
14
|
-
generateToolName?: (commandPath: string[], appName?: string) => string;
|
|
15
|
-
includeSubCommands?: boolean;
|
|
16
|
-
toolNamePrefix?: string;
|
|
17
|
-
toolNameSuffix?: string;
|
|
18
|
-
}
|
|
19
|
-
interface ISpecialParseResultProps {
|
|
20
|
-
$commandChain?: string[];
|
|
21
|
-
$error?: {
|
|
22
|
-
type: string;
|
|
23
|
-
message: string;
|
|
24
|
-
details?: any;
|
|
25
|
-
};
|
|
26
|
-
handlerResponse?: any;
|
|
27
|
-
}
|
|
28
|
-
export type IParseExecutionResult = TParsedArgs<ProcessedFlag[]> & ISpecialParseResultProps;
|
|
29
|
-
export declare function generateMcpToolsFromArgParser(rootParser: ArgParserBase, options?: GenerateMcpToolsOptions): IMcpToolStructure[];
|
|
30
|
-
export {};
|
|
31
|
-
//# sourceMappingURL=mcp-integration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-integration.d.ts","sourceRoot":"","sources":["../../src/mcp-integration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,UAAU,EAAE,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAA0B,aAAa,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAK7E,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,OAAO,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACtC;AAqID,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC7C,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,gBAAgB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,wBAAwB;IAChC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC1D,eAAe,CAAC,EAAE,GAAG,CAAC;CACvB;AACD,MAAM,MAAM,qBAAqB,GAAG,WAAW,CAAC,aAAa,EAAE,CAAC,GAC9D,wBAAwB,CAAC;AAE3B,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,aAAa,EACzB,OAAO,CAAC,EAAE,uBAAuB,GAChC,iBAAiB,EAAE,CAwWrB"}
|
package/dist/src/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,MAAM,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAEpC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAwHtB,CAAC;AAEL;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtD;;;GAGG;AACH,MAAM,MAAM,0BAA0B,GAClC,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,GAAG,CAAC,GACxB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,OAAO,GACP,QAAQ,CAAC;AAEb;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,aAAa,CAAC,EAAE,MAAM,CAAC,GAAG;IAC7E,IAAI,EAAE,0BAA0B,CAAC;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,KAAK,GAAG,SAAS,GAAG;IAC9B,0BAA0B;IAC1B,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,uBAAuB;IACvB,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC;CAClE,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,iBAAiB,EACjB,UAAU,GAAG,MAAM,GAAG,WAAW,CAClC,GAAG;IAEF,QAAQ,CAAC,EAAE,CACT,KAAK,EAAE,GAAG,EACV,UAAU,CAAC,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,KACtC,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;CAC/E,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,0BAA0B,IAC1D,CAAC,SAAS,iBAAiB,GACvB,MAAM,GACN,CAAC,SAAS,iBAAiB,GACzB,MAAM,GACN,CAAC,SAAS,kBAAkB,GAC1B,OAAO,GACP,CAAC,SAAS,gBAAgB,GACxB,GAAG,EAAE,GACL,CAAC,SAAS,iBAAiB,GACzB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB,CAAC,SAAS,QAAQ,GAChB,MAAM,GACN,CAAC,SAAS,QAAQ,GAChB,MAAM,GACN,CAAC,SAAS,SAAS,GACjB,OAAO,GACP,CAAC,SAAS,OAAO,GACf,GAAG,EAAE,GACL,CAAC,SAAS,QAAQ,GAChB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACnB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,GAClC,CAAC,GACD,GAAG,CAAC;AAE9B;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,aAAa,IACrD,KAAK,CAAC,UAAU,CAAC,SAAS,IAAI,GAC1B,KAAK,CAAC,eAAe,CAAC,SAAS,IAAI,GACjC,OAAO,EAAE,GACT,OAAO,GACT,KAAK,CAAC,eAAe,CAAC,SAAS,IAAI,GACjC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GACjC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAEnC;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,MAAM,SAAS,SAAS,aAAa,EAAE,IAAI;KAChE,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,eAAe,CAC5C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CACrC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,eAAe,CACzB,mBAAmB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrE,kBAAkB,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IAClE;IACF,wDAAwD;IACxD,IAAI,EAAE,mBAAmB,CAAC;IAC1B,yEAAyE;IACzE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2FAA2F;IAC3F,MAAM,EAAE,iBAAiB,CAAC;IAC1B,wEAAwE;IACxE,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAGlC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,aAAa,EAAE,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAC1B,gBAAgB,SAAS,UAAU,GAAG,UAAU,EAChD,mBAAmB,SAAS,UAAU,GAAG,UAAU,EACnD,cAAc,GAAG,GAAG;IAEpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAE5E,MAAM,EAAE,iBAAiB,CAAC;IAC1B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,CACR,GAAG,EAAE,eAAe,CAClB,WAAW,CAAC,gBAAgB,CAAC,EAC7B,WAAW,CAAC,mBAAmB,CAAC,CACjC,KACE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC9C,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CACrB,YAAY,SAAS,UAAU,GAAG,UAAU,EAC5C,kBAAkB,SAAS,UAAU,GAAG,UAAU,EAClD,cAAc,GAAG,GAAG,IAClB,CACF,GAAG,EAAE,eAAe,CAClB,WAAW,CAAC,YAAY,CAAC,EACzB,WAAW,CAAC,kBAAkB,CAAC,CAChC,KACE,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC"}
|
package/dist/sse-B5Jf_YpG.cjs
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const node_crypto = require("node:crypto");
|
|
4
|
-
const types = require("./types-DSxPEImy.cjs");
|
|
5
|
-
const index = require("./index-CqU7Fj3C.cjs");
|
|
6
|
-
const url = require("url");
|
|
7
|
-
const MAXIMUM_MESSAGE_SIZE = "4mb";
|
|
8
|
-
class SSEServerTransport {
|
|
9
|
-
/**
|
|
10
|
-
* Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.
|
|
11
|
-
*/
|
|
12
|
-
constructor(_endpoint, res) {
|
|
13
|
-
this._endpoint = _endpoint;
|
|
14
|
-
this.res = res;
|
|
15
|
-
this._sessionId = node_crypto.randomUUID();
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Handles the initial SSE connection request.
|
|
19
|
-
*
|
|
20
|
-
* This should be called when a GET request is made to establish the SSE stream.
|
|
21
|
-
*/
|
|
22
|
-
async start() {
|
|
23
|
-
if (this._sseResponse) {
|
|
24
|
-
throw new Error("SSEServerTransport already started! If using Server class, note that connect() calls start() automatically.");
|
|
25
|
-
}
|
|
26
|
-
this.res.writeHead(200, {
|
|
27
|
-
"Content-Type": "text/event-stream",
|
|
28
|
-
"Cache-Control": "no-cache, no-transform",
|
|
29
|
-
Connection: "keep-alive"
|
|
30
|
-
});
|
|
31
|
-
const dummyBase = "http://localhost";
|
|
32
|
-
const endpointUrl = new url.URL(this._endpoint, dummyBase);
|
|
33
|
-
endpointUrl.searchParams.set("sessionId", this._sessionId);
|
|
34
|
-
const relativeUrlWithSession = endpointUrl.pathname + endpointUrl.search + endpointUrl.hash;
|
|
35
|
-
this.res.write(`event: endpoint
|
|
36
|
-
data: ${relativeUrlWithSession}
|
|
37
|
-
|
|
38
|
-
`);
|
|
39
|
-
this._sseResponse = this.res;
|
|
40
|
-
this.res.on("close", () => {
|
|
41
|
-
var _a;
|
|
42
|
-
this._sseResponse = void 0;
|
|
43
|
-
(_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Handles incoming POST messages.
|
|
48
|
-
*
|
|
49
|
-
* This should be called when a POST request is made to send a message to the server.
|
|
50
|
-
*/
|
|
51
|
-
async handlePostMessage(req, res, parsedBody) {
|
|
52
|
-
var _a, _b, _c;
|
|
53
|
-
if (!this._sseResponse) {
|
|
54
|
-
const message = "SSE connection not established";
|
|
55
|
-
res.writeHead(500).end(message);
|
|
56
|
-
throw new Error(message);
|
|
57
|
-
}
|
|
58
|
-
const authInfo = req.auth;
|
|
59
|
-
let body;
|
|
60
|
-
try {
|
|
61
|
-
const ct = index.contentType.parse((_a = req.headers["content-type"]) !== null && _a !== void 0 ? _a : "");
|
|
62
|
-
if (ct.type !== "application/json") {
|
|
63
|
-
throw new Error(`Unsupported content-type: ${ct}`);
|
|
64
|
-
}
|
|
65
|
-
body = parsedBody !== null && parsedBody !== void 0 ? parsedBody : await index.getRawBody(req, {
|
|
66
|
-
limit: MAXIMUM_MESSAGE_SIZE,
|
|
67
|
-
encoding: (_b = ct.parameters.charset) !== null && _b !== void 0 ? _b : "utf-8"
|
|
68
|
-
});
|
|
69
|
-
} catch (error) {
|
|
70
|
-
res.writeHead(400).end(String(error));
|
|
71
|
-
(_c = this.onerror) === null || _c === void 0 ? void 0 : _c.call(this, error);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
try {
|
|
75
|
-
await this.handleMessage(typeof body === "string" ? JSON.parse(body) : body, { authInfo });
|
|
76
|
-
} catch (_d) {
|
|
77
|
-
res.writeHead(400).end(`Invalid message: ${body}`);
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
res.writeHead(202).end("Accepted");
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* 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.
|
|
84
|
-
*/
|
|
85
|
-
async handleMessage(message, extra) {
|
|
86
|
-
var _a, _b;
|
|
87
|
-
let parsedMessage;
|
|
88
|
-
try {
|
|
89
|
-
parsedMessage = types.JSONRPCMessageSchema.parse(message);
|
|
90
|
-
} catch (error) {
|
|
91
|
-
(_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);
|
|
92
|
-
throw error;
|
|
93
|
-
}
|
|
94
|
-
(_b = this.onmessage) === null || _b === void 0 ? void 0 : _b.call(this, parsedMessage, extra);
|
|
95
|
-
}
|
|
96
|
-
async close() {
|
|
97
|
-
var _a, _b;
|
|
98
|
-
(_a = this._sseResponse) === null || _a === void 0 ? void 0 : _a.end();
|
|
99
|
-
this._sseResponse = void 0;
|
|
100
|
-
(_b = this.onclose) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
101
|
-
}
|
|
102
|
-
async send(message) {
|
|
103
|
-
if (!this._sseResponse) {
|
|
104
|
-
throw new Error("Not connected");
|
|
105
|
-
}
|
|
106
|
-
this._sseResponse.write(`event: message
|
|
107
|
-
data: ${JSON.stringify(message)}
|
|
108
|
-
|
|
109
|
-
`);
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Returns the session ID for this transport.
|
|
113
|
-
*
|
|
114
|
-
* This can be used to route incoming POST requests.
|
|
115
|
-
*/
|
|
116
|
-
get sessionId() {
|
|
117
|
-
return this._sessionId;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
exports.SSEServerTransport = SSEServerTransport;
|
|
121
|
-
//# sourceMappingURL=sse-B5Jf_YpG.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-B5Jf_YpG.cjs","sources":["../node_modules/.pnpm/@modelcontextprotocol+sdk@1.13.1/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.js"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { JSONRPCMessageSchema } from \"../types.js\";\nimport getRawBody from \"raw-body\";\nimport contentType from \"content-type\";\nimport { URL } from 'url';\nconst MAXIMUM_MESSAGE_SIZE = \"4mb\";\n/**\n * Server transport for SSE: this will send messages over an SSE connection and receive messages from HTTP POST requests.\n *\n * This transport is only available in Node.js environments.\n */\nexport class SSEServerTransport {\n /**\n * Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.\n */\n constructor(_endpoint, res) {\n this._endpoint = _endpoint;\n this.res = res;\n this._sessionId = randomUUID();\n }\n /**\n * Handles the initial SSE connection request.\n *\n * This should be called when a GET request is made to establish the SSE stream.\n */\n async start() {\n if (this._sseResponse) {\n throw new Error(\"SSEServerTransport already started! If using Server class, note that connect() calls start() automatically.\");\n }\n this.res.writeHead(200, {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache, no-transform\",\n Connection: \"keep-alive\",\n });\n // Send the endpoint event\n // Use a dummy base URL because this._endpoint is relative.\n // This allows using URL/URLSearchParams for robust parameter handling.\n const dummyBase = 'http://localhost'; // Any valid base works\n const endpointUrl = new URL(this._endpoint, dummyBase);\n endpointUrl.searchParams.set('sessionId', this._sessionId);\n // Reconstruct the relative URL string (pathname + search + hash)\n const relativeUrlWithSession = endpointUrl.pathname + endpointUrl.search + endpointUrl.hash;\n this.res.write(`event: endpoint\\ndata: ${relativeUrlWithSession}\\n\\n`);\n this._sseResponse = this.res;\n this.res.on(\"close\", () => {\n var _a;\n this._sseResponse = undefined;\n (_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);\n });\n }\n /**\n * Handles incoming POST messages.\n *\n * This should be called when a POST request is made to send a message to the server.\n */\n async handlePostMessage(req, res, parsedBody) {\n var _a, _b, _c;\n if (!this._sseResponse) {\n const message = \"SSE connection not established\";\n res.writeHead(500).end(message);\n throw new Error(message);\n }\n const authInfo = req.auth;\n let body;\n try {\n const ct = contentType.parse((_a = req.headers[\"content-type\"]) !== null && _a !== void 0 ? _a : \"\");\n if (ct.type !== \"application/json\") {\n throw new Error(`Unsupported content-type: ${ct}`);\n }\n body = parsedBody !== null && parsedBody !== void 0 ? parsedBody : await getRawBody(req, {\n limit: MAXIMUM_MESSAGE_SIZE,\n encoding: (_b = ct.parameters.charset) !== null && _b !== void 0 ? _b : \"utf-8\",\n });\n }\n catch (error) {\n res.writeHead(400).end(String(error));\n (_c = this.onerror) === null || _c === void 0 ? void 0 : _c.call(this, error);\n return;\n }\n try {\n await this.handleMessage(typeof body === 'string' ? JSON.parse(body) : body, { authInfo });\n }\n catch (_d) {\n res.writeHead(400).end(`Invalid message: ${body}`);\n return;\n }\n res.writeHead(202).end(\"Accepted\");\n }\n /**\n * 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.\n */\n async handleMessage(message, extra) {\n var _a, _b;\n let parsedMessage;\n try {\n parsedMessage = JSONRPCMessageSchema.parse(message);\n }\n catch (error) {\n (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);\n throw error;\n }\n (_b = this.onmessage) === null || _b === void 0 ? void 0 : _b.call(this, parsedMessage, extra);\n }\n async close() {\n var _a, _b;\n (_a = this._sseResponse) === null || _a === void 0 ? void 0 : _a.end();\n this._sseResponse = undefined;\n (_b = this.onclose) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n async send(message) {\n if (!this._sseResponse) {\n throw new Error(\"Not connected\");\n }\n this._sseResponse.write(`event: message\\ndata: ${JSON.stringify(message)}\\n\\n`);\n }\n /**\n * Returns the session ID for this transport.\n *\n * This can be used to route incoming POST requests.\n */\n get sessionId() {\n return this._sessionId;\n }\n}\n//# sourceMappingURL=sse.js.map"],"names":["randomUUID","URL","contentType","getRawBody","JSONRPCMessageSchema"],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/sse-BDL3h2Ll.js
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import { randomUUID } from "node:crypto";
|
|
2
|
-
import { J as JSONRPCMessageSchema } from "./types-DpK81FWv.js";
|
|
3
|
-
import { c as contentType, g as getRawBody } from "./index-6G9StDO_.js";
|
|
4
|
-
import { URL } from "url";
|
|
5
|
-
const MAXIMUM_MESSAGE_SIZE = "4mb";
|
|
6
|
-
class SSEServerTransport {
|
|
7
|
-
/**
|
|
8
|
-
* Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.
|
|
9
|
-
*/
|
|
10
|
-
constructor(_endpoint, res) {
|
|
11
|
-
this._endpoint = _endpoint;
|
|
12
|
-
this.res = res;
|
|
13
|
-
this._sessionId = randomUUID();
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Handles the initial SSE connection request.
|
|
17
|
-
*
|
|
18
|
-
* This should be called when a GET request is made to establish the SSE stream.
|
|
19
|
-
*/
|
|
20
|
-
async start() {
|
|
21
|
-
if (this._sseResponse) {
|
|
22
|
-
throw new Error("SSEServerTransport already started! If using Server class, note that connect() calls start() automatically.");
|
|
23
|
-
}
|
|
24
|
-
this.res.writeHead(200, {
|
|
25
|
-
"Content-Type": "text/event-stream",
|
|
26
|
-
"Cache-Control": "no-cache, no-transform",
|
|
27
|
-
Connection: "keep-alive"
|
|
28
|
-
});
|
|
29
|
-
const dummyBase = "http://localhost";
|
|
30
|
-
const endpointUrl = new URL(this._endpoint, dummyBase);
|
|
31
|
-
endpointUrl.searchParams.set("sessionId", this._sessionId);
|
|
32
|
-
const relativeUrlWithSession = endpointUrl.pathname + endpointUrl.search + endpointUrl.hash;
|
|
33
|
-
this.res.write(`event: endpoint
|
|
34
|
-
data: ${relativeUrlWithSession}
|
|
35
|
-
|
|
36
|
-
`);
|
|
37
|
-
this._sseResponse = this.res;
|
|
38
|
-
this.res.on("close", () => {
|
|
39
|
-
var _a;
|
|
40
|
-
this._sseResponse = void 0;
|
|
41
|
-
(_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Handles incoming POST messages.
|
|
46
|
-
*
|
|
47
|
-
* This should be called when a POST request is made to send a message to the server.
|
|
48
|
-
*/
|
|
49
|
-
async handlePostMessage(req, res, parsedBody) {
|
|
50
|
-
var _a, _b, _c;
|
|
51
|
-
if (!this._sseResponse) {
|
|
52
|
-
const message = "SSE connection not established";
|
|
53
|
-
res.writeHead(500).end(message);
|
|
54
|
-
throw new Error(message);
|
|
55
|
-
}
|
|
56
|
-
const authInfo = req.auth;
|
|
57
|
-
let body;
|
|
58
|
-
try {
|
|
59
|
-
const ct = contentType.parse((_a = req.headers["content-type"]) !== null && _a !== void 0 ? _a : "");
|
|
60
|
-
if (ct.type !== "application/json") {
|
|
61
|
-
throw new Error(`Unsupported content-type: ${ct}`);
|
|
62
|
-
}
|
|
63
|
-
body = parsedBody !== null && parsedBody !== void 0 ? parsedBody : await getRawBody(req, {
|
|
64
|
-
limit: MAXIMUM_MESSAGE_SIZE,
|
|
65
|
-
encoding: (_b = ct.parameters.charset) !== null && _b !== void 0 ? _b : "utf-8"
|
|
66
|
-
});
|
|
67
|
-
} catch (error) {
|
|
68
|
-
res.writeHead(400).end(String(error));
|
|
69
|
-
(_c = this.onerror) === null || _c === void 0 ? void 0 : _c.call(this, error);
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
try {
|
|
73
|
-
await this.handleMessage(typeof body === "string" ? JSON.parse(body) : body, { authInfo });
|
|
74
|
-
} catch (_d) {
|
|
75
|
-
res.writeHead(400).end(`Invalid message: ${body}`);
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
res.writeHead(202).end("Accepted");
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* 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.
|
|
82
|
-
*/
|
|
83
|
-
async handleMessage(message, extra) {
|
|
84
|
-
var _a, _b;
|
|
85
|
-
let parsedMessage;
|
|
86
|
-
try {
|
|
87
|
-
parsedMessage = JSONRPCMessageSchema.parse(message);
|
|
88
|
-
} catch (error) {
|
|
89
|
-
(_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);
|
|
90
|
-
throw error;
|
|
91
|
-
}
|
|
92
|
-
(_b = this.onmessage) === null || _b === void 0 ? void 0 : _b.call(this, parsedMessage, extra);
|
|
93
|
-
}
|
|
94
|
-
async close() {
|
|
95
|
-
var _a, _b;
|
|
96
|
-
(_a = this._sseResponse) === null || _a === void 0 ? void 0 : _a.end();
|
|
97
|
-
this._sseResponse = void 0;
|
|
98
|
-
(_b = this.onclose) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
99
|
-
}
|
|
100
|
-
async send(message) {
|
|
101
|
-
if (!this._sseResponse) {
|
|
102
|
-
throw new Error("Not connected");
|
|
103
|
-
}
|
|
104
|
-
this._sseResponse.write(`event: message
|
|
105
|
-
data: ${JSON.stringify(message)}
|
|
106
|
-
|
|
107
|
-
`);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Returns the session ID for this transport.
|
|
111
|
-
*
|
|
112
|
-
* This can be used to route incoming POST requests.
|
|
113
|
-
*/
|
|
114
|
-
get sessionId() {
|
|
115
|
-
return this._sessionId;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
export {
|
|
119
|
-
SSEServerTransport
|
|
120
|
-
};
|
|
121
|
-
//# sourceMappingURL=sse-BDL3h2Ll.js.map
|
package/dist/sse-BDL3h2Ll.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-BDL3h2Ll.js","sources":["../node_modules/.pnpm/@modelcontextprotocol+sdk@1.13.1/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.js"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { JSONRPCMessageSchema } from \"../types.js\";\nimport getRawBody from \"raw-body\";\nimport contentType from \"content-type\";\nimport { URL } from 'url';\nconst MAXIMUM_MESSAGE_SIZE = \"4mb\";\n/**\n * Server transport for SSE: this will send messages over an SSE connection and receive messages from HTTP POST requests.\n *\n * This transport is only available in Node.js environments.\n */\nexport class SSEServerTransport {\n /**\n * Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.\n */\n constructor(_endpoint, res) {\n this._endpoint = _endpoint;\n this.res = res;\n this._sessionId = randomUUID();\n }\n /**\n * Handles the initial SSE connection request.\n *\n * This should be called when a GET request is made to establish the SSE stream.\n */\n async start() {\n if (this._sseResponse) {\n throw new Error(\"SSEServerTransport already started! If using Server class, note that connect() calls start() automatically.\");\n }\n this.res.writeHead(200, {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache, no-transform\",\n Connection: \"keep-alive\",\n });\n // Send the endpoint event\n // Use a dummy base URL because this._endpoint is relative.\n // This allows using URL/URLSearchParams for robust parameter handling.\n const dummyBase = 'http://localhost'; // Any valid base works\n const endpointUrl = new URL(this._endpoint, dummyBase);\n endpointUrl.searchParams.set('sessionId', this._sessionId);\n // Reconstruct the relative URL string (pathname + search + hash)\n const relativeUrlWithSession = endpointUrl.pathname + endpointUrl.search + endpointUrl.hash;\n this.res.write(`event: endpoint\\ndata: ${relativeUrlWithSession}\\n\\n`);\n this._sseResponse = this.res;\n this.res.on(\"close\", () => {\n var _a;\n this._sseResponse = undefined;\n (_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);\n });\n }\n /**\n * Handles incoming POST messages.\n *\n * This should be called when a POST request is made to send a message to the server.\n */\n async handlePostMessage(req, res, parsedBody) {\n var _a, _b, _c;\n if (!this._sseResponse) {\n const message = \"SSE connection not established\";\n res.writeHead(500).end(message);\n throw new Error(message);\n }\n const authInfo = req.auth;\n let body;\n try {\n const ct = contentType.parse((_a = req.headers[\"content-type\"]) !== null && _a !== void 0 ? _a : \"\");\n if (ct.type !== \"application/json\") {\n throw new Error(`Unsupported content-type: ${ct}`);\n }\n body = parsedBody !== null && parsedBody !== void 0 ? parsedBody : await getRawBody(req, {\n limit: MAXIMUM_MESSAGE_SIZE,\n encoding: (_b = ct.parameters.charset) !== null && _b !== void 0 ? _b : \"utf-8\",\n });\n }\n catch (error) {\n res.writeHead(400).end(String(error));\n (_c = this.onerror) === null || _c === void 0 ? void 0 : _c.call(this, error);\n return;\n }\n try {\n await this.handleMessage(typeof body === 'string' ? JSON.parse(body) : body, { authInfo });\n }\n catch (_d) {\n res.writeHead(400).end(`Invalid message: ${body}`);\n return;\n }\n res.writeHead(202).end(\"Accepted\");\n }\n /**\n * 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.\n */\n async handleMessage(message, extra) {\n var _a, _b;\n let parsedMessage;\n try {\n parsedMessage = JSONRPCMessageSchema.parse(message);\n }\n catch (error) {\n (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);\n throw error;\n }\n (_b = this.onmessage) === null || _b === void 0 ? void 0 : _b.call(this, parsedMessage, extra);\n }\n async close() {\n var _a, _b;\n (_a = this._sseResponse) === null || _a === void 0 ? void 0 : _a.end();\n this._sseResponse = undefined;\n (_b = this.onclose) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n async send(message) {\n if (!this._sseResponse) {\n throw new Error(\"Not connected\");\n }\n this._sseResponse.write(`event: message\\ndata: ${JSON.stringify(message)}\\n\\n`);\n }\n /**\n * Returns the session ID for this transport.\n *\n * This can be used to route incoming POST requests.\n */\n get sessionId() {\n return this._sessionId;\n }\n}\n//# sourceMappingURL=sse.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
|
package/dist/sse-DSjLfGFo.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { randomUUID as h } from "node:crypto";
|
|
2
|
-
import { J as d } from "./types-DdsPVLQ5.js";
|
|
3
|
-
import { c as l, g as p } from "./index-Dx_q1msW.js";
|
|
4
|
-
import { URL as v } from "url";
|
|
5
|
-
const m = "4mb";
|
|
6
|
-
class g {
|
|
7
|
-
/**
|
|
8
|
-
* Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.
|
|
9
|
-
*/
|
|
10
|
-
constructor(s, e) {
|
|
11
|
-
this._endpoint = s, this.res = e, this._sessionId = h();
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Handles the initial SSE connection request.
|
|
15
|
-
*
|
|
16
|
-
* This should be called when a GET request is made to establish the SSE stream.
|
|
17
|
-
*/
|
|
18
|
-
async start() {
|
|
19
|
-
if (this._sseResponse)
|
|
20
|
-
throw new Error("SSEServerTransport already started! If using Server class, note that connect() calls start() automatically.");
|
|
21
|
-
this.res.writeHead(200, {
|
|
22
|
-
"Content-Type": "text/event-stream",
|
|
23
|
-
"Cache-Control": "no-cache, no-transform",
|
|
24
|
-
Connection: "keep-alive"
|
|
25
|
-
});
|
|
26
|
-
const s = "http://localhost", e = new v(this._endpoint, s);
|
|
27
|
-
e.searchParams.set("sessionId", this._sessionId);
|
|
28
|
-
const o = e.pathname + e.search + e.hash;
|
|
29
|
-
this.res.write(`event: endpoint
|
|
30
|
-
data: ${o}
|
|
31
|
-
|
|
32
|
-
`), this._sseResponse = this.res, this.res.on("close", () => {
|
|
33
|
-
var t;
|
|
34
|
-
this._sseResponse = void 0, (t = this.onclose) === null || t === void 0 || t.call(this);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Handles incoming POST messages.
|
|
39
|
-
*
|
|
40
|
-
* This should be called when a POST request is made to send a message to the server.
|
|
41
|
-
*/
|
|
42
|
-
async handlePostMessage(s, e, o) {
|
|
43
|
-
var t, r, a;
|
|
44
|
-
if (!this._sseResponse) {
|
|
45
|
-
const n = "SSE connection not established";
|
|
46
|
-
throw e.writeHead(500).end(n), new Error(n);
|
|
47
|
-
}
|
|
48
|
-
const c = s.auth;
|
|
49
|
-
let i;
|
|
50
|
-
try {
|
|
51
|
-
const n = l.parse((t = s.headers["content-type"]) !== null && t !== void 0 ? t : "");
|
|
52
|
-
if (n.type !== "application/json")
|
|
53
|
-
throw new Error(`Unsupported content-type: ${n}`);
|
|
54
|
-
i = o ?? await p(s, {
|
|
55
|
-
limit: m,
|
|
56
|
-
encoding: (r = n.parameters.charset) !== null && r !== void 0 ? r : "utf-8"
|
|
57
|
-
});
|
|
58
|
-
} catch (n) {
|
|
59
|
-
e.writeHead(400).end(String(n)), (a = this.onerror) === null || a === void 0 || a.call(this, n);
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
try {
|
|
63
|
-
await this.handleMessage(typeof i == "string" ? JSON.parse(i) : i, { authInfo: c });
|
|
64
|
-
} catch {
|
|
65
|
-
e.writeHead(400).end(`Invalid message: ${i}`);
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
e.writeHead(202).end("Accepted");
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* 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.
|
|
72
|
-
*/
|
|
73
|
-
async handleMessage(s, e) {
|
|
74
|
-
var o, t;
|
|
75
|
-
let r;
|
|
76
|
-
try {
|
|
77
|
-
r = d.parse(s);
|
|
78
|
-
} catch (a) {
|
|
79
|
-
throw (o = this.onerror) === null || o === void 0 || o.call(this, a), a;
|
|
80
|
-
}
|
|
81
|
-
(t = this.onmessage) === null || t === void 0 || t.call(this, r, e);
|
|
82
|
-
}
|
|
83
|
-
async close() {
|
|
84
|
-
var s, e;
|
|
85
|
-
(s = this._sseResponse) === null || s === void 0 || s.end(), this._sseResponse = void 0, (e = this.onclose) === null || e === void 0 || e.call(this);
|
|
86
|
-
}
|
|
87
|
-
async send(s) {
|
|
88
|
-
if (!this._sseResponse)
|
|
89
|
-
throw new Error("Not connected");
|
|
90
|
-
this._sseResponse.write(`event: message
|
|
91
|
-
data: ${JSON.stringify(s)}
|
|
92
|
-
|
|
93
|
-
`);
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Returns the session ID for this transport.
|
|
97
|
-
*
|
|
98
|
-
* This can be used to route incoming POST requests.
|
|
99
|
-
*/
|
|
100
|
-
get sessionId() {
|
|
101
|
-
return this._sessionId;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
export {
|
|
105
|
-
g as SSEServerTransport
|
|
106
|
-
};
|
|
107
|
-
//# sourceMappingURL=sse-DSjLfGFo.js.map
|
package/dist/sse-DSjLfGFo.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sse-DSjLfGFo.js","sources":["../node_modules/.pnpm/@modelcontextprotocol+sdk@1.13.1/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.js"],"sourcesContent":["import { randomUUID } from \"node:crypto\";\nimport { JSONRPCMessageSchema } from \"../types.js\";\nimport getRawBody from \"raw-body\";\nimport contentType from \"content-type\";\nimport { URL } from 'url';\nconst MAXIMUM_MESSAGE_SIZE = \"4mb\";\n/**\n * Server transport for SSE: this will send messages over an SSE connection and receive messages from HTTP POST requests.\n *\n * This transport is only available in Node.js environments.\n */\nexport class SSEServerTransport {\n /**\n * Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.\n */\n constructor(_endpoint, res) {\n this._endpoint = _endpoint;\n this.res = res;\n this._sessionId = randomUUID();\n }\n /**\n * Handles the initial SSE connection request.\n *\n * This should be called when a GET request is made to establish the SSE stream.\n */\n async start() {\n if (this._sseResponse) {\n throw new Error(\"SSEServerTransport already started! If using Server class, note that connect() calls start() automatically.\");\n }\n this.res.writeHead(200, {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache, no-transform\",\n Connection: \"keep-alive\",\n });\n // Send the endpoint event\n // Use a dummy base URL because this._endpoint is relative.\n // This allows using URL/URLSearchParams for robust parameter handling.\n const dummyBase = 'http://localhost'; // Any valid base works\n const endpointUrl = new URL(this._endpoint, dummyBase);\n endpointUrl.searchParams.set('sessionId', this._sessionId);\n // Reconstruct the relative URL string (pathname + search + hash)\n const relativeUrlWithSession = endpointUrl.pathname + endpointUrl.search + endpointUrl.hash;\n this.res.write(`event: endpoint\\ndata: ${relativeUrlWithSession}\\n\\n`);\n this._sseResponse = this.res;\n this.res.on(\"close\", () => {\n var _a;\n this._sseResponse = undefined;\n (_a = this.onclose) === null || _a === void 0 ? void 0 : _a.call(this);\n });\n }\n /**\n * Handles incoming POST messages.\n *\n * This should be called when a POST request is made to send a message to the server.\n */\n async handlePostMessage(req, res, parsedBody) {\n var _a, _b, _c;\n if (!this._sseResponse) {\n const message = \"SSE connection not established\";\n res.writeHead(500).end(message);\n throw new Error(message);\n }\n const authInfo = req.auth;\n let body;\n try {\n const ct = contentType.parse((_a = req.headers[\"content-type\"]) !== null && _a !== void 0 ? _a : \"\");\n if (ct.type !== \"application/json\") {\n throw new Error(`Unsupported content-type: ${ct}`);\n }\n body = parsedBody !== null && parsedBody !== void 0 ? parsedBody : await getRawBody(req, {\n limit: MAXIMUM_MESSAGE_SIZE,\n encoding: (_b = ct.parameters.charset) !== null && _b !== void 0 ? _b : \"utf-8\",\n });\n }\n catch (error) {\n res.writeHead(400).end(String(error));\n (_c = this.onerror) === null || _c === void 0 ? void 0 : _c.call(this, error);\n return;\n }\n try {\n await this.handleMessage(typeof body === 'string' ? JSON.parse(body) : body, { authInfo });\n }\n catch (_d) {\n res.writeHead(400).end(`Invalid message: ${body}`);\n return;\n }\n res.writeHead(202).end(\"Accepted\");\n }\n /**\n * 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.\n */\n async handleMessage(message, extra) {\n var _a, _b;\n let parsedMessage;\n try {\n parsedMessage = JSONRPCMessageSchema.parse(message);\n }\n catch (error) {\n (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);\n throw error;\n }\n (_b = this.onmessage) === null || _b === void 0 ? void 0 : _b.call(this, parsedMessage, extra);\n }\n async close() {\n var _a, _b;\n (_a = this._sseResponse) === null || _a === void 0 ? void 0 : _a.end();\n this._sseResponse = undefined;\n (_b = this.onclose) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n async send(message) {\n if (!this._sseResponse) {\n throw new Error(\"Not connected\");\n }\n this._sseResponse.write(`event: message\\ndata: ${JSON.stringify(message)}\\n\\n`);\n }\n /**\n * Returns the session ID for this transport.\n *\n * This can be used to route incoming POST requests.\n */\n get sessionId() {\n return this._sessionId;\n }\n}\n//# sourceMappingURL=sse.js.map"],"names":["MAXIMUM_MESSAGE_SIZE","SSEServerTransport","_endpoint","res","randomUUID","dummyBase","endpointUrl","URL","relativeUrlWithSession","_a","req","parsedBody","_b","_c","message","authInfo","body","ct","contentType","getRawBody","error","extra","parsedMessage","JSONRPCMessageSchema"],"mappings":"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","x_google_ignoreList":[0]}
|