ai 5.0.0-canary.9 → 5.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/CHANGELOG.md +1306 -0
- package/README.md +5 -5
- package/dist/index.d.mts +3049 -3827
- package/dist/index.d.ts +3049 -3827
- package/dist/index.js +8313 -8222
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +8695 -8554
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.d.mts +49 -613
- package/dist/internal/index.d.ts +49 -613
- package/dist/internal/index.js +702 -1133
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +688 -1104
- package/dist/internal/index.mjs.map +1 -1
- package/dist/mcp-stdio/index.d.mts +16 -96
- package/dist/mcp-stdio/index.d.ts +16 -96
- package/dist/mcp-stdio/index.js +90 -93
- package/dist/mcp-stdio/index.js.map +1 -1
- package/dist/mcp-stdio/index.mjs +33 -48
- package/dist/mcp-stdio/index.mjs.map +1 -1
- package/dist/test/index.d.mts +64 -12
- package/dist/test/index.d.ts +64 -12
- package/dist/test/index.js +137 -13
- package/dist/test/index.js.map +1 -1
- package/dist/test/index.mjs +135 -13
- package/dist/test/index.mjs.map +1 -1
- package/internal.d.ts +1 -0
- package/mcp-stdio.d.ts +1 -0
- package/package.json +30 -18
- package/test.d.ts +1 -0
@@ -1,115 +1,35 @@
|
|
1
1
|
import { IOType } from 'node:child_process';
|
2
2
|
import { Stream } from 'node:stream';
|
3
|
-
import { z } from 'zod';
|
3
|
+
import { z } from 'zod/v4';
|
4
4
|
|
5
|
-
declare const JSONRPCMessageSchema: z.ZodUnion<[z.ZodObject<
|
5
|
+
declare const JSONRPCMessageSchema: z.ZodUnion<readonly [z.ZodObject<{
|
6
6
|
jsonrpc: z.ZodLiteral<"2.0">;
|
7
|
-
id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
8
|
-
}, {
|
7
|
+
id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
9
8
|
method: z.ZodString;
|
10
9
|
params: z.ZodOptional<z.ZodObject<{
|
11
|
-
_meta: z.ZodOptional<z.ZodObject<{},
|
12
|
-
},
|
13
|
-
|
14
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
15
|
-
_meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
16
|
-
}, z.ZodTypeAny, "passthrough">>>;
|
17
|
-
}>, "strict", z.ZodTypeAny, {
|
18
|
-
id: string | number;
|
19
|
-
method: string;
|
20
|
-
jsonrpc: "2.0";
|
21
|
-
params?: z.objectOutputType<{
|
22
|
-
_meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
23
|
-
}, z.ZodTypeAny, "passthrough"> | undefined;
|
24
|
-
}, {
|
25
|
-
id: string | number;
|
26
|
-
method: string;
|
27
|
-
jsonrpc: "2.0";
|
28
|
-
params?: z.objectInputType<{
|
29
|
-
_meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
30
|
-
}, z.ZodTypeAny, "passthrough"> | undefined;
|
31
|
-
}>, z.ZodObject<z.objectUtil.extendShape<{
|
10
|
+
_meta: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
11
|
+
}, z.core.$loose>>;
|
12
|
+
}, z.core.$strict>, z.ZodObject<{
|
32
13
|
jsonrpc: z.ZodLiteral<"2.0">;
|
33
|
-
}, {
|
34
14
|
method: z.ZodString;
|
35
15
|
params: z.ZodOptional<z.ZodObject<{
|
36
|
-
_meta: z.ZodOptional<z.ZodObject<{},
|
37
|
-
},
|
38
|
-
|
39
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
40
|
-
_meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
41
|
-
}, z.ZodTypeAny, "passthrough">>>;
|
42
|
-
}>, "strict", z.ZodTypeAny, {
|
43
|
-
method: string;
|
44
|
-
jsonrpc: "2.0";
|
45
|
-
params?: z.objectOutputType<{
|
46
|
-
_meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
47
|
-
}, z.ZodTypeAny, "passthrough"> | undefined;
|
48
|
-
}, {
|
49
|
-
method: string;
|
50
|
-
jsonrpc: "2.0";
|
51
|
-
params?: z.objectInputType<{
|
52
|
-
_meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
53
|
-
}, z.ZodTypeAny, "passthrough"> | undefined;
|
54
|
-
}>, z.ZodObject<{
|
16
|
+
_meta: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
17
|
+
}, z.core.$loose>>;
|
18
|
+
}, z.core.$strict>, z.ZodObject<{
|
55
19
|
jsonrpc: z.ZodLiteral<"2.0">;
|
56
|
-
id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
20
|
+
id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
57
21
|
result: z.ZodObject<{
|
58
|
-
_meta: z.ZodOptional<z.ZodObject<{},
|
59
|
-
},
|
60
|
-
|
61
|
-
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
|
62
|
-
_meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
|
63
|
-
}, z.ZodTypeAny, "passthrough">>;
|
64
|
-
}, "strict", z.ZodTypeAny, {
|
65
|
-
result: {
|
66
|
-
_meta?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
67
|
-
} & {
|
68
|
-
[k: string]: unknown;
|
69
|
-
};
|
70
|
-
id: string | number;
|
71
|
-
jsonrpc: "2.0";
|
72
|
-
}, {
|
73
|
-
result: {
|
74
|
-
_meta?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
|
75
|
-
} & {
|
76
|
-
[k: string]: unknown;
|
77
|
-
};
|
78
|
-
id: string | number;
|
79
|
-
jsonrpc: "2.0";
|
80
|
-
}>, z.ZodObject<{
|
22
|
+
_meta: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
|
23
|
+
}, z.core.$loose>;
|
24
|
+
}, z.core.$strict>, z.ZodObject<{
|
81
25
|
jsonrpc: z.ZodLiteral<"2.0">;
|
82
|
-
id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
|
26
|
+
id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
83
27
|
error: z.ZodObject<{
|
84
28
|
code: z.ZodNumber;
|
85
29
|
message: z.ZodString;
|
86
30
|
data: z.ZodOptional<z.ZodUnknown>;
|
87
|
-
},
|
88
|
-
|
89
|
-
message: string;
|
90
|
-
data?: unknown;
|
91
|
-
}, {
|
92
|
-
code: number;
|
93
|
-
message: string;
|
94
|
-
data?: unknown;
|
95
|
-
}>;
|
96
|
-
}, "strict", z.ZodTypeAny, {
|
97
|
-
error: {
|
98
|
-
code: number;
|
99
|
-
message: string;
|
100
|
-
data?: unknown;
|
101
|
-
};
|
102
|
-
id: string | number;
|
103
|
-
jsonrpc: "2.0";
|
104
|
-
}, {
|
105
|
-
error: {
|
106
|
-
code: number;
|
107
|
-
message: string;
|
108
|
-
data?: unknown;
|
109
|
-
};
|
110
|
-
id: string | number;
|
111
|
-
jsonrpc: "2.0";
|
112
|
-
}>]>;
|
31
|
+
}, z.core.$strip>;
|
32
|
+
}, z.core.$strict>]>;
|
113
33
|
type JSONRPCMessage = z.infer<typeof JSONRPCMessageSchema>;
|
114
34
|
|
115
35
|
/**
|
package/dist/mcp-stdio/index.js
CHANGED
@@ -24,142 +24,139 @@ __export(mcp_stdio_exports, {
|
|
24
24
|
});
|
25
25
|
module.exports = __toCommonJS(mcp_stdio_exports);
|
26
26
|
|
27
|
-
//
|
28
|
-
var
|
27
|
+
// src/tool/mcp/json-rpc-message.ts
|
28
|
+
var import_v42 = require("zod/v4");
|
29
29
|
|
30
|
-
//
|
31
|
-
var
|
32
|
-
var ClientOrServerImplementationSchema =
|
33
|
-
name:
|
34
|
-
version:
|
35
|
-
})
|
36
|
-
var BaseParamsSchema =
|
37
|
-
_meta:
|
38
|
-
})
|
30
|
+
// src/tool/mcp/types.ts
|
31
|
+
var import_v4 = require("zod/v4");
|
32
|
+
var ClientOrServerImplementationSchema = import_v4.z.looseObject({
|
33
|
+
name: import_v4.z.string(),
|
34
|
+
version: import_v4.z.string()
|
35
|
+
});
|
36
|
+
var BaseParamsSchema = import_v4.z.looseObject({
|
37
|
+
_meta: import_v4.z.optional(import_v4.z.object({}).loose())
|
38
|
+
});
|
39
39
|
var ResultSchema = BaseParamsSchema;
|
40
|
-
var RequestSchema =
|
41
|
-
method:
|
42
|
-
params:
|
40
|
+
var RequestSchema = import_v4.z.object({
|
41
|
+
method: import_v4.z.string(),
|
42
|
+
params: import_v4.z.optional(BaseParamsSchema)
|
43
43
|
});
|
44
|
-
var ServerCapabilitiesSchema =
|
45
|
-
experimental:
|
46
|
-
logging:
|
47
|
-
prompts:
|
48
|
-
|
49
|
-
listChanged:
|
50
|
-
})
|
44
|
+
var ServerCapabilitiesSchema = import_v4.z.looseObject({
|
45
|
+
experimental: import_v4.z.optional(import_v4.z.object({}).loose()),
|
46
|
+
logging: import_v4.z.optional(import_v4.z.object({}).loose()),
|
47
|
+
prompts: import_v4.z.optional(
|
48
|
+
import_v4.z.looseObject({
|
49
|
+
listChanged: import_v4.z.optional(import_v4.z.boolean())
|
50
|
+
})
|
51
51
|
),
|
52
|
-
resources:
|
53
|
-
|
54
|
-
subscribe:
|
55
|
-
listChanged:
|
56
|
-
})
|
52
|
+
resources: import_v4.z.optional(
|
53
|
+
import_v4.z.looseObject({
|
54
|
+
subscribe: import_v4.z.optional(import_v4.z.boolean()),
|
55
|
+
listChanged: import_v4.z.optional(import_v4.z.boolean())
|
56
|
+
})
|
57
57
|
),
|
58
|
-
tools:
|
59
|
-
|
60
|
-
listChanged:
|
61
|
-
})
|
58
|
+
tools: import_v4.z.optional(
|
59
|
+
import_v4.z.looseObject({
|
60
|
+
listChanged: import_v4.z.optional(import_v4.z.boolean())
|
61
|
+
})
|
62
62
|
)
|
63
|
-
})
|
63
|
+
});
|
64
64
|
var InitializeResultSchema = ResultSchema.extend({
|
65
|
-
protocolVersion:
|
65
|
+
protocolVersion: import_v4.z.string(),
|
66
66
|
capabilities: ServerCapabilitiesSchema,
|
67
67
|
serverInfo: ClientOrServerImplementationSchema,
|
68
|
-
instructions:
|
68
|
+
instructions: import_v4.z.optional(import_v4.z.string())
|
69
69
|
});
|
70
70
|
var PaginatedResultSchema = ResultSchema.extend({
|
71
|
-
nextCursor:
|
71
|
+
nextCursor: import_v4.z.optional(import_v4.z.string())
|
72
72
|
});
|
73
|
-
var ToolSchema =
|
74
|
-
name:
|
75
|
-
description:
|
76
|
-
inputSchema:
|
77
|
-
type:
|
78
|
-
properties:
|
79
|
-
}).
|
80
|
-
}).
|
73
|
+
var ToolSchema = import_v4.z.object({
|
74
|
+
name: import_v4.z.string(),
|
75
|
+
description: import_v4.z.optional(import_v4.z.string()),
|
76
|
+
inputSchema: import_v4.z.object({
|
77
|
+
type: import_v4.z.literal("object"),
|
78
|
+
properties: import_v4.z.optional(import_v4.z.object({}).loose())
|
79
|
+
}).loose()
|
80
|
+
}).loose();
|
81
81
|
var ListToolsResultSchema = PaginatedResultSchema.extend({
|
82
|
-
tools:
|
82
|
+
tools: import_v4.z.array(ToolSchema)
|
83
83
|
});
|
84
|
-
var TextContentSchema =
|
85
|
-
type:
|
86
|
-
text:
|
87
|
-
}).
|
88
|
-
var ImageContentSchema =
|
89
|
-
type:
|
90
|
-
data:
|
91
|
-
mimeType:
|
92
|
-
}).
|
93
|
-
var ResourceContentsSchema =
|
84
|
+
var TextContentSchema = import_v4.z.object({
|
85
|
+
type: import_v4.z.literal("text"),
|
86
|
+
text: import_v4.z.string()
|
87
|
+
}).loose();
|
88
|
+
var ImageContentSchema = import_v4.z.object({
|
89
|
+
type: import_v4.z.literal("image"),
|
90
|
+
data: import_v4.z.base64(),
|
91
|
+
mimeType: import_v4.z.string()
|
92
|
+
}).loose();
|
93
|
+
var ResourceContentsSchema = import_v4.z.object({
|
94
94
|
/**
|
95
95
|
* The URI of this resource.
|
96
96
|
*/
|
97
|
-
uri:
|
97
|
+
uri: import_v4.z.string(),
|
98
98
|
/**
|
99
99
|
* The MIME type of this resource, if known.
|
100
100
|
*/
|
101
|
-
mimeType:
|
102
|
-
}).
|
101
|
+
mimeType: import_v4.z.optional(import_v4.z.string())
|
102
|
+
}).loose();
|
103
103
|
var TextResourceContentsSchema = ResourceContentsSchema.extend({
|
104
|
-
text:
|
104
|
+
text: import_v4.z.string()
|
105
105
|
});
|
106
106
|
var BlobResourceContentsSchema = ResourceContentsSchema.extend({
|
107
|
-
blob:
|
107
|
+
blob: import_v4.z.base64()
|
108
108
|
});
|
109
|
-
var EmbeddedResourceSchema =
|
110
|
-
type:
|
111
|
-
resource:
|
112
|
-
}).
|
109
|
+
var EmbeddedResourceSchema = import_v4.z.object({
|
110
|
+
type: import_v4.z.literal("resource"),
|
111
|
+
resource: import_v4.z.union([TextResourceContentsSchema, BlobResourceContentsSchema])
|
112
|
+
}).loose();
|
113
113
|
var CallToolResultSchema = ResultSchema.extend({
|
114
|
-
content:
|
115
|
-
|
114
|
+
content: import_v4.z.array(
|
115
|
+
import_v4.z.union([TextContentSchema, ImageContentSchema, EmbeddedResourceSchema])
|
116
116
|
),
|
117
|
-
isError:
|
117
|
+
isError: import_v4.z.boolean().default(false).optional()
|
118
118
|
}).or(
|
119
119
|
ResultSchema.extend({
|
120
|
-
toolResult:
|
120
|
+
toolResult: import_v4.z.unknown()
|
121
121
|
})
|
122
122
|
);
|
123
123
|
|
124
|
-
//
|
124
|
+
// src/tool/mcp/json-rpc-message.ts
|
125
125
|
var JSONRPC_VERSION = "2.0";
|
126
|
-
var JSONRPCRequestSchema =
|
127
|
-
jsonrpc:
|
128
|
-
id:
|
126
|
+
var JSONRPCRequestSchema = import_v42.z.object({
|
127
|
+
jsonrpc: import_v42.z.literal(JSONRPC_VERSION),
|
128
|
+
id: import_v42.z.union([import_v42.z.string(), import_v42.z.number().int()])
|
129
129
|
}).merge(RequestSchema).strict();
|
130
|
-
var JSONRPCResponseSchema =
|
131
|
-
jsonrpc:
|
132
|
-
id:
|
130
|
+
var JSONRPCResponseSchema = import_v42.z.object({
|
131
|
+
jsonrpc: import_v42.z.literal(JSONRPC_VERSION),
|
132
|
+
id: import_v42.z.union([import_v42.z.string(), import_v42.z.number().int()]),
|
133
133
|
result: ResultSchema
|
134
134
|
}).strict();
|
135
|
-
var JSONRPCErrorSchema =
|
136
|
-
jsonrpc:
|
137
|
-
id:
|
138
|
-
error:
|
139
|
-
code:
|
140
|
-
message:
|
141
|
-
data:
|
135
|
+
var JSONRPCErrorSchema = import_v42.z.object({
|
136
|
+
jsonrpc: import_v42.z.literal(JSONRPC_VERSION),
|
137
|
+
id: import_v42.z.union([import_v42.z.string(), import_v42.z.number().int()]),
|
138
|
+
error: import_v42.z.object({
|
139
|
+
code: import_v42.z.number().int(),
|
140
|
+
message: import_v42.z.string(),
|
141
|
+
data: import_v42.z.optional(import_v42.z.unknown())
|
142
142
|
})
|
143
143
|
}).strict();
|
144
|
-
var JSONRPCNotificationSchema =
|
145
|
-
jsonrpc:
|
144
|
+
var JSONRPCNotificationSchema = import_v42.z.object({
|
145
|
+
jsonrpc: import_v42.z.literal(JSONRPC_VERSION)
|
146
146
|
}).merge(
|
147
|
-
|
148
|
-
method:
|
149
|
-
params:
|
147
|
+
import_v42.z.object({
|
148
|
+
method: import_v42.z.string(),
|
149
|
+
params: import_v42.z.optional(BaseParamsSchema)
|
150
150
|
})
|
151
151
|
).strict();
|
152
|
-
var JSONRPCMessageSchema =
|
152
|
+
var JSONRPCMessageSchema = import_v42.z.union([
|
153
153
|
JSONRPCRequestSchema,
|
154
154
|
JSONRPCNotificationSchema,
|
155
155
|
JSONRPCResponseSchema,
|
156
156
|
JSONRPCErrorSchema
|
157
157
|
]);
|
158
158
|
|
159
|
-
//
|
160
|
-
var import_provider2 = require("@ai-sdk/provider");
|
161
|
-
|
162
|
-
// errors/mcp-client-error.ts
|
159
|
+
// src/error/mcp-client-error.ts
|
163
160
|
var import_provider = require("@ai-sdk/provider");
|
164
161
|
var name = "AI_MCPClientError";
|
165
162
|
var marker = `vercel.ai.error.${name}`;
|
@@ -213,7 +210,7 @@ function getEnvironment(customEnv) {
|
|
213
210
|
}
|
214
211
|
|
215
212
|
// mcp-stdio/create-child-process.ts
|
216
|
-
|
213
|
+
function createChildProcess(config, signal) {
|
217
214
|
var _a2, _b;
|
218
215
|
return (0, import_node_child_process.spawn)(config.command, (_a2 = config.args) != null ? _a2 : [], {
|
219
216
|
env: getEnvironment(config.env),
|
@@ -241,10 +238,10 @@ var StdioMCPTransport = class {
|
|
241
238
|
message: "StdioMCPTransport already started."
|
242
239
|
});
|
243
240
|
}
|
244
|
-
return new Promise(
|
241
|
+
return new Promise((resolve, reject) => {
|
245
242
|
var _a2, _b, _c, _d;
|
246
243
|
try {
|
247
|
-
const process =
|
244
|
+
const process = createChildProcess(
|
248
245
|
this.serverParams,
|
249
246
|
this.abortController.signal
|
250
247
|
);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../mcp-stdio/index.ts","../../core/tool/mcp/json-rpc-message.ts","../../core/tool/mcp/types.ts","../../errors/index.ts","../../errors/mcp-client-error.ts","../../mcp-stdio/create-child-process.ts","../../mcp-stdio/get-environment.ts","../../mcp-stdio/mcp-stdio-transport.ts"],"sourcesContent":["export {\n StdioMCPTransport as Experimental_StdioMCPTransport,\n type StdioConfig,\n} from './mcp-stdio-transport';\n","import { z } from 'zod';\nimport { BaseParamsSchema, RequestSchema, ResultSchema } from './types';\n\nconst JSONRPC_VERSION = '2.0';\n\nconst JSONRPCRequestSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n })\n .merge(RequestSchema)\n .strict();\n\nexport type JSONRPCRequest = z.infer<typeof JSONRPCRequestSchema>;\n\nconst JSONRPCResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n result: ResultSchema,\n })\n .strict();\n\nexport type JSONRPCResponse = z.infer<typeof JSONRPCResponseSchema>;\n\nconst JSONRPCErrorSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n error: z.object({\n code: z.number().int(),\n message: z.string(),\n data: z.optional(z.unknown()),\n }),\n })\n .strict();\n\nexport type JSONRPCError = z.infer<typeof JSONRPCErrorSchema>;\n\nconst JSONRPCNotificationSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n })\n .merge(\n z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n }),\n )\n .strict();\n\nexport type JSONRPCNotification = z.infer<typeof JSONRPCNotificationSchema>;\n\nexport const JSONRPCMessageSchema = z.union([\n JSONRPCRequestSchema,\n JSONRPCNotificationSchema,\n JSONRPCResponseSchema,\n JSONRPCErrorSchema,\n]);\n\nexport type JSONRPCMessage = z.infer<typeof JSONRPCMessageSchema>;\n","import { z } from 'zod';\nimport { MappedTool, Tool, ToolParameters } from '../tool';\nimport { JSONObject } from '@ai-sdk/provider';\n\nexport const LATEST_PROTOCOL_VERSION = '2024-11-05';\nexport const SUPPORTED_PROTOCOL_VERSIONS = [\n LATEST_PROTOCOL_VERSION,\n '2024-10-07',\n];\n\nexport type ToolSchemas =\n | Record<string, { parameters: ToolParameters<JSONObject | unknown> }>\n | 'automatic'\n | undefined;\n\nexport type McpToolSet<TOOL_SCHEMAS extends ToolSchemas = 'automatic'> =\n TOOL_SCHEMAS extends Record<string, { parameters: ToolParameters<any> }>\n ? {\n [K in keyof TOOL_SCHEMAS]: MappedTool<TOOL_SCHEMAS[K], CallToolResult> &\n Required<\n Pick<MappedTool<TOOL_SCHEMAS[K], CallToolResult>, 'execute'>\n >;\n }\n : McpToolSet<Record<string, { parameters: ToolParameters<unknown> }>>;\n\nconst ClientOrServerImplementationSchema = z\n .object({\n name: z.string(),\n version: z.string(),\n })\n .passthrough();\nexport type Configuration = z.infer<typeof ClientOrServerImplementationSchema>;\n\nexport const BaseParamsSchema = z\n .object({\n _meta: z.optional(z.object({}).passthrough()),\n })\n .passthrough();\ntype BaseParams = z.infer<typeof BaseParamsSchema>;\nexport const ResultSchema = BaseParamsSchema;\n\nexport const RequestSchema = z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n});\nexport type Request = z.infer<typeof RequestSchema>;\nexport type RequestOptions = {\n signal?: AbortSignal;\n timeout?: number;\n maxTotalTimeout?: number;\n};\n\nexport type Notification = z.infer<typeof RequestSchema>;\n\nconst ServerCapabilitiesSchema = z\n .object({\n experimental: z.optional(z.object({}).passthrough()),\n logging: z.optional(z.object({}).passthrough()),\n prompts: z.optional(\n z\n .object({\n listChanged: z.optional(z.boolean()),\n })\n .passthrough(),\n ),\n resources: z.optional(\n z\n .object({\n subscribe: z.optional(z.boolean()),\n listChanged: z.optional(z.boolean()),\n })\n .passthrough(),\n ),\n tools: z.optional(\n z\n .object({\n listChanged: z.optional(z.boolean()),\n })\n .passthrough(),\n ),\n })\n .passthrough();\nexport type ServerCapabilities = z.infer<typeof ServerCapabilitiesSchema>;\n\nexport const InitializeResultSchema = ResultSchema.extend({\n protocolVersion: z.string(),\n capabilities: ServerCapabilitiesSchema,\n serverInfo: ClientOrServerImplementationSchema,\n instructions: z.optional(z.string()),\n});\nexport type InitializeResult = z.infer<typeof InitializeResultSchema>;\n\nexport type PaginatedRequest = Request & {\n params?: BaseParams & {\n cursor?: string;\n };\n};\n\nconst PaginatedResultSchema = ResultSchema.extend({\n nextCursor: z.optional(z.string()),\n});\n\nconst ToolSchema = z\n .object({\n name: z.string(),\n description: z.optional(z.string()),\n inputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.optional(z.object({}).passthrough()),\n })\n .passthrough(),\n })\n .passthrough();\nexport type MCPTool = z.infer<typeof ToolSchema>;\nexport const ListToolsResultSchema = PaginatedResultSchema.extend({\n tools: z.array(ToolSchema),\n});\nexport type ListToolsResult = z.infer<typeof ListToolsResultSchema>;\n\nconst TextContentSchema = z\n .object({\n type: z.literal('text'),\n text: z.string(),\n })\n .passthrough();\nconst ImageContentSchema = z\n .object({\n type: z.literal('image'),\n data: z.string().base64(),\n mimeType: z.string(),\n })\n .passthrough();\nconst ResourceContentsSchema = z\n .object({\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n })\n .passthrough();\nconst TextResourceContentsSchema = ResourceContentsSchema.extend({\n text: z.string(),\n});\nconst BlobResourceContentsSchema = ResourceContentsSchema.extend({\n blob: z.string().base64(),\n});\nconst EmbeddedResourceSchema = z\n .object({\n type: z.literal('resource'),\n resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n })\n .passthrough();\n\nexport const CallToolResultSchema = ResultSchema.extend({\n content: z.array(\n z.union([TextContentSchema, ImageContentSchema, EmbeddedResourceSchema]),\n ),\n isError: z.boolean().default(false).optional(),\n}).or(\n ResultSchema.extend({\n toolResult: z.unknown(),\n }),\n);\nexport type CallToolResult = z.infer<typeof CallToolResultSchema>;\n","export {\n AISDKError,\n APICallError,\n EmptyResponseBodyError,\n InvalidPromptError,\n InvalidResponseDataError,\n JSONParseError,\n LoadAPIKeyError,\n NoContentGeneratedError,\n NoSuchModelError,\n TypeValidationError,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\n\nexport { InvalidArgumentError } from './invalid-argument-error';\nexport { InvalidStreamPartError } from './invalid-stream-part-error';\nexport { InvalidToolArgumentsError } from './invalid-tool-arguments-error';\nexport { NoImageGeneratedError } from './no-image-generated-error';\nexport { NoObjectGeneratedError } from './no-object-generated-error';\nexport { NoOutputSpecifiedError } from './no-output-specified-error';\nexport { NoSuchToolError } from './no-such-tool-error';\nexport { ToolCallRepairError } from './tool-call-repair-error';\nexport { ToolExecutionError } from './tool-execution-error';\nexport { MCPClientError } from './mcp-client-error';\n\nexport { InvalidDataContentError } from '../core/prompt/invalid-data-content-error';\nexport { InvalidMessageRoleError } from '../core/prompt/invalid-message-role-error';\nexport { MessageConversionError } from '../core/prompt/message-conversion-error';\nexport { DownloadError } from '../util/download-error';\nexport { RetryError } from '../util/retry-error';\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_MCPClientError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * An error occurred with the MCP client.\n */\nexport class MCPClientError extends AISDKError {\n private readonly [symbol] = true;\n\n constructor({\n name = 'MCPClientError',\n message,\n cause,\n }: {\n name?: string;\n message: string;\n cause?: unknown;\n }) {\n super({ name, message, cause });\n }\n\n static isInstance(error: unknown): error is MCPClientError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { ChildProcess, spawn } from 'node:child_process';\nimport { getEnvironment } from './get-environment';\nimport { StdioConfig } from './mcp-stdio-transport';\n\nexport async function createChildProcess(\n config: StdioConfig,\n signal: AbortSignal,\n): Promise<ChildProcess> {\n return spawn(config.command, config.args ?? [], {\n env: getEnvironment(config.env),\n stdio: ['pipe', 'pipe', config.stderr ?? 'inherit'],\n shell: false,\n signal,\n windowsHide: globalThis.process.platform === 'win32' && isElectron(),\n cwd: config.cwd,\n });\n}\n\nfunction isElectron() {\n return 'type' in globalThis.process;\n}\n","/**\n * Constructs the environment variables for the child process.\n *\n * @param customEnv - Custom environment variables to merge with default environment variables.\n * @returns The environment variables for the child process.\n */\nexport function getEnvironment(\n customEnv?: Record<string, string>,\n): Record<string, string> {\n const DEFAULT_INHERITED_ENV_VARS =\n globalThis.process.platform === 'win32'\n ? [\n 'APPDATA',\n 'HOMEDRIVE',\n 'HOMEPATH',\n 'LOCALAPPDATA',\n 'PATH',\n 'PROCESSOR_ARCHITECTURE',\n 'SYSTEMDRIVE',\n 'SYSTEMROOT',\n 'TEMP',\n 'USERNAME',\n 'USERPROFILE',\n ]\n : ['HOME', 'LOGNAME', 'PATH', 'SHELL', 'TERM', 'USER'];\n\n const env: Record<string, string> = customEnv ? { ...customEnv } : {};\n\n for (const key of DEFAULT_INHERITED_ENV_VARS) {\n const value = globalThis.process.env[key];\n if (value === undefined) {\n continue;\n }\n\n if (value.startsWith('()')) {\n continue;\n }\n\n env[key] = value;\n }\n\n return env;\n}\n","import type { ChildProcess, IOType } from 'node:child_process';\nimport { Stream } from 'node:stream';\nimport {\n JSONRPCMessage,\n JSONRPCMessageSchema,\n} from '../core/tool/mcp/json-rpc-message';\nimport { MCPTransport } from '../core/tool/mcp/mcp-transport';\nimport { MCPClientError } from '../errors';\nimport { createChildProcess } from './create-child-process';\n\nexport interface StdioConfig {\n command: string;\n args?: string[];\n env?: Record<string, string>;\n stderr?: IOType | Stream | number;\n cwd?: string;\n}\n\nexport class StdioMCPTransport implements MCPTransport {\n private process?: ChildProcess;\n private abortController: AbortController = new AbortController();\n private readBuffer: ReadBuffer = new ReadBuffer();\n private serverParams: StdioConfig;\n\n onclose?: () => void;\n onerror?: (error: unknown) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(server: StdioConfig) {\n this.serverParams = server;\n }\n\n async start(): Promise<void> {\n if (this.process) {\n throw new MCPClientError({\n message: 'StdioMCPTransport already started.',\n });\n }\n\n return new Promise(async (resolve, reject) => {\n try {\n const process = await createChildProcess(\n this.serverParams,\n this.abortController.signal,\n );\n\n this.process = process;\n\n this.process.on('error', error => {\n if (error.name === 'AbortError') {\n this.onclose?.();\n return;\n }\n\n reject(error);\n this.onerror?.(error);\n });\n\n this.process.on('spawn', () => {\n resolve();\n });\n\n this.process.on('close', _code => {\n this.process = undefined;\n this.onclose?.();\n });\n\n this.process.stdin?.on('error', error => {\n this.onerror?.(error);\n });\n\n this.process.stdout?.on('data', chunk => {\n this.readBuffer.append(chunk);\n this.processReadBuffer();\n });\n\n this.process.stdout?.on('error', error => {\n this.onerror?.(error);\n });\n } catch (error) {\n reject(error);\n this.onerror?.(error);\n }\n });\n }\n\n private processReadBuffer() {\n while (true) {\n try {\n const message = this.readBuffer.readMessage();\n if (message === null) {\n break;\n }\n\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(error as Error);\n }\n }\n }\n\n async close(): Promise<void> {\n this.abortController.abort();\n this.process = undefined;\n this.readBuffer.clear();\n }\n\n send(message: JSONRPCMessage): Promise<void> {\n return new Promise(resolve => {\n if (!this.process?.stdin) {\n throw new MCPClientError({\n message: 'StdioClientTransport not connected',\n });\n }\n\n const json = serializeMessage(message);\n if (this.process.stdin.write(json)) {\n resolve();\n } else {\n this.process.stdin.once('drain', resolve);\n }\n });\n }\n}\n\nclass ReadBuffer {\n private buffer?: Buffer;\n\n append(chunk: Buffer): void {\n this.buffer = this.buffer ? Buffer.concat([this.buffer, chunk]) : chunk;\n }\n\n readMessage(): JSONRPCMessage | null {\n if (!this.buffer) return null;\n\n const index = this.buffer.indexOf('\\n');\n if (index === -1) {\n return null;\n }\n\n const line = this.buffer.toString('utf8', 0, index);\n this.buffer = this.buffer.subarray(index + 1);\n return deserializeMessage(line);\n }\n\n clear(): void {\n this.buffer = undefined;\n }\n}\n\nfunction serializeMessage(message: JSONRPCMessage): string {\n return JSON.stringify(message) + '\\n';\n}\n\nexport function deserializeMessage(line: string): JSONRPCMessage {\n return JSONRPCMessageSchema.parse(JSON.parse(line));\n}\n"],"mappings":"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","names":["import_zod","import_provider","name","_a","_a","_b"]}
|
1
|
+
{"version":3,"sources":["../../mcp-stdio/index.ts","../../src/tool/mcp/json-rpc-message.ts","../../src/tool/mcp/types.ts","../../src/error/mcp-client-error.ts","../../mcp-stdio/create-child-process.ts","../../mcp-stdio/get-environment.ts","../../mcp-stdio/mcp-stdio-transport.ts"],"sourcesContent":["export {\n StdioMCPTransport as Experimental_StdioMCPTransport,\n type StdioConfig,\n} from './mcp-stdio-transport';\n","import { z } from 'zod/v4';\nimport { BaseParamsSchema, RequestSchema, ResultSchema } from './types';\n\nconst JSONRPC_VERSION = '2.0';\n\nconst JSONRPCRequestSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n })\n .merge(RequestSchema)\n .strict();\n\nexport type JSONRPCRequest = z.infer<typeof JSONRPCRequestSchema>;\n\nconst JSONRPCResponseSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n result: ResultSchema,\n })\n .strict();\n\nexport type JSONRPCResponse = z.infer<typeof JSONRPCResponseSchema>;\n\nconst JSONRPCErrorSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n id: z.union([z.string(), z.number().int()]),\n error: z.object({\n code: z.number().int(),\n message: z.string(),\n data: z.optional(z.unknown()),\n }),\n })\n .strict();\n\nexport type JSONRPCError = z.infer<typeof JSONRPCErrorSchema>;\n\nconst JSONRPCNotificationSchema = z\n .object({\n jsonrpc: z.literal(JSONRPC_VERSION),\n })\n .merge(\n z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n }),\n )\n .strict();\n\nexport type JSONRPCNotification = z.infer<typeof JSONRPCNotificationSchema>;\n\nexport const JSONRPCMessageSchema = z.union([\n JSONRPCRequestSchema,\n JSONRPCNotificationSchema,\n JSONRPCResponseSchema,\n JSONRPCErrorSchema,\n]);\n\nexport type JSONRPCMessage = z.infer<typeof JSONRPCMessageSchema>;\n","import { z } from 'zod/v4';\nimport { JSONObject } from '@ai-sdk/provider';\nimport { FlexibleSchema, Tool } from '@ai-sdk/provider-utils';\n\nexport const LATEST_PROTOCOL_VERSION = '2025-06-18';\nexport const SUPPORTED_PROTOCOL_VERSIONS = [\n LATEST_PROTOCOL_VERSION,\n '2025-03-26',\n '2024-11-05',\n];\n\nexport type ToolSchemas =\n | Record<string, { inputSchema: FlexibleSchema<JSONObject | unknown> }>\n | 'automatic'\n | undefined;\n\nexport type McpToolSet<TOOL_SCHEMAS extends ToolSchemas = 'automatic'> =\n TOOL_SCHEMAS extends Record<string, { inputSchema: FlexibleSchema<any> }>\n ? {\n [K in keyof TOOL_SCHEMAS]: TOOL_SCHEMAS[K] extends {\n inputSchema: FlexibleSchema<infer INPUT>;\n }\n ? Tool<INPUT, CallToolResult> &\n Required<Pick<Tool<INPUT, CallToolResult>, 'execute'>>\n : never;\n }\n : McpToolSet<Record<string, { inputSchema: FlexibleSchema<unknown> }>>;\n\nconst ClientOrServerImplementationSchema = z.looseObject({\n name: z.string(),\n version: z.string(),\n});\n\nexport type Configuration = z.infer<typeof ClientOrServerImplementationSchema>;\n\nexport const BaseParamsSchema = z.looseObject({\n _meta: z.optional(z.object({}).loose()),\n});\ntype BaseParams = z.infer<typeof BaseParamsSchema>;\nexport const ResultSchema = BaseParamsSchema;\n\nexport const RequestSchema = z.object({\n method: z.string(),\n params: z.optional(BaseParamsSchema),\n});\nexport type Request = z.infer<typeof RequestSchema>;\nexport type RequestOptions = {\n signal?: AbortSignal;\n timeout?: number;\n maxTotalTimeout?: number;\n};\n\nexport type Notification = z.infer<typeof RequestSchema>;\n\nconst ServerCapabilitiesSchema = z.looseObject({\n experimental: z.optional(z.object({}).loose()),\n logging: z.optional(z.object({}).loose()),\n prompts: z.optional(\n z.looseObject({\n listChanged: z.optional(z.boolean()),\n }),\n ),\n resources: z.optional(\n z.looseObject({\n subscribe: z.optional(z.boolean()),\n listChanged: z.optional(z.boolean()),\n }),\n ),\n tools: z.optional(\n z.looseObject({\n listChanged: z.optional(z.boolean()),\n }),\n ),\n});\n\nexport type ServerCapabilities = z.infer<typeof ServerCapabilitiesSchema>;\n\nexport const InitializeResultSchema = ResultSchema.extend({\n protocolVersion: z.string(),\n capabilities: ServerCapabilitiesSchema,\n serverInfo: ClientOrServerImplementationSchema,\n instructions: z.optional(z.string()),\n});\nexport type InitializeResult = z.infer<typeof InitializeResultSchema>;\n\nexport type PaginatedRequest = Request & {\n params?: BaseParams & {\n cursor?: string;\n };\n};\n\nconst PaginatedResultSchema = ResultSchema.extend({\n nextCursor: z.optional(z.string()),\n});\n\nconst ToolSchema = z\n .object({\n name: z.string(),\n description: z.optional(z.string()),\n inputSchema: z\n .object({\n type: z.literal('object'),\n properties: z.optional(z.object({}).loose()),\n })\n .loose(),\n })\n .loose();\nexport type MCPTool = z.infer<typeof ToolSchema>;\nexport const ListToolsResultSchema = PaginatedResultSchema.extend({\n tools: z.array(ToolSchema),\n});\nexport type ListToolsResult = z.infer<typeof ListToolsResultSchema>;\n\nconst TextContentSchema = z\n .object({\n type: z.literal('text'),\n text: z.string(),\n })\n .loose();\nconst ImageContentSchema = z\n .object({\n type: z.literal('image'),\n data: z.base64(),\n mimeType: z.string(),\n })\n .loose();\nconst ResourceContentsSchema = z\n .object({\n /**\n * The URI of this resource.\n */\n uri: z.string(),\n /**\n * The MIME type of this resource, if known.\n */\n mimeType: z.optional(z.string()),\n })\n .loose();\nconst TextResourceContentsSchema = ResourceContentsSchema.extend({\n text: z.string(),\n});\nconst BlobResourceContentsSchema = ResourceContentsSchema.extend({\n blob: z.base64(),\n});\nconst EmbeddedResourceSchema = z\n .object({\n type: z.literal('resource'),\n resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema]),\n })\n .loose();\n\nexport const CallToolResultSchema = ResultSchema.extend({\n content: z.array(\n z.union([TextContentSchema, ImageContentSchema, EmbeddedResourceSchema]),\n ),\n isError: z.boolean().default(false).optional(),\n}).or(\n ResultSchema.extend({\n toolResult: z.unknown(),\n }),\n);\nexport type CallToolResult = z.infer<typeof CallToolResultSchema>;\n","import { AISDKError } from '@ai-sdk/provider';\n\nconst name = 'AI_MCPClientError';\nconst marker = `vercel.ai.error.${name}`;\nconst symbol = Symbol.for(marker);\n\n/**\n * An error occurred with the MCP client.\n */\nexport class MCPClientError extends AISDKError {\n private readonly [symbol] = true;\n\n constructor({\n name = 'MCPClientError',\n message,\n cause,\n }: {\n name?: string;\n message: string;\n cause?: unknown;\n }) {\n super({ name, message, cause });\n }\n\n static isInstance(error: unknown): error is MCPClientError {\n return AISDKError.hasMarker(error, marker);\n }\n}\n","import { ChildProcess, spawn } from 'node:child_process';\nimport { getEnvironment } from './get-environment';\nimport { StdioConfig } from './mcp-stdio-transport';\n\nexport function createChildProcess(\n config: StdioConfig,\n signal: AbortSignal,\n): ChildProcess {\n return spawn(config.command, config.args ?? [], {\n env: getEnvironment(config.env),\n stdio: ['pipe', 'pipe', config.stderr ?? 'inherit'],\n shell: false,\n signal,\n windowsHide: globalThis.process.platform === 'win32' && isElectron(),\n cwd: config.cwd,\n });\n}\n\nfunction isElectron() {\n return 'type' in globalThis.process;\n}\n","/**\n * Constructs the environment variables for the child process.\n *\n * @param customEnv - Custom environment variables to merge with default environment variables.\n * @returns The environment variables for the child process.\n */\nexport function getEnvironment(\n customEnv?: Record<string, string>,\n): Record<string, string> {\n const DEFAULT_INHERITED_ENV_VARS =\n globalThis.process.platform === 'win32'\n ? [\n 'APPDATA',\n 'HOMEDRIVE',\n 'HOMEPATH',\n 'LOCALAPPDATA',\n 'PATH',\n 'PROCESSOR_ARCHITECTURE',\n 'SYSTEMDRIVE',\n 'SYSTEMROOT',\n 'TEMP',\n 'USERNAME',\n 'USERPROFILE',\n ]\n : ['HOME', 'LOGNAME', 'PATH', 'SHELL', 'TERM', 'USER'];\n\n const env: Record<string, string> = customEnv ? { ...customEnv } : {};\n\n for (const key of DEFAULT_INHERITED_ENV_VARS) {\n const value = globalThis.process.env[key];\n if (value === undefined) {\n continue;\n }\n\n if (value.startsWith('()')) {\n continue;\n }\n\n env[key] = value;\n }\n\n return env;\n}\n","import type { ChildProcess, IOType } from 'node:child_process';\nimport { Stream } from 'node:stream';\nimport {\n JSONRPCMessage,\n JSONRPCMessageSchema,\n} from '../src/tool/mcp/json-rpc-message';\nimport { MCPTransport } from '../src/tool/mcp/mcp-transport';\nimport { MCPClientError } from '../src/error/mcp-client-error';\nimport { createChildProcess } from './create-child-process';\n\nexport interface StdioConfig {\n command: string;\n args?: string[];\n env?: Record<string, string>;\n stderr?: IOType | Stream | number;\n cwd?: string;\n}\n\nexport class StdioMCPTransport implements MCPTransport {\n private process?: ChildProcess;\n private abortController: AbortController = new AbortController();\n private readBuffer: ReadBuffer = new ReadBuffer();\n private serverParams: StdioConfig;\n\n onclose?: () => void;\n onerror?: (error: unknown) => void;\n onmessage?: (message: JSONRPCMessage) => void;\n\n constructor(server: StdioConfig) {\n this.serverParams = server;\n }\n\n async start(): Promise<void> {\n if (this.process) {\n throw new MCPClientError({\n message: 'StdioMCPTransport already started.',\n });\n }\n\n return new Promise((resolve, reject) => {\n try {\n const process = createChildProcess(\n this.serverParams,\n this.abortController.signal,\n );\n\n this.process = process;\n\n this.process.on('error', error => {\n if (error.name === 'AbortError') {\n this.onclose?.();\n return;\n }\n\n reject(error);\n this.onerror?.(error);\n });\n\n this.process.on('spawn', () => {\n resolve();\n });\n\n this.process.on('close', _code => {\n this.process = undefined;\n this.onclose?.();\n });\n\n this.process.stdin?.on('error', error => {\n this.onerror?.(error);\n });\n\n this.process.stdout?.on('data', chunk => {\n this.readBuffer.append(chunk);\n this.processReadBuffer();\n });\n\n this.process.stdout?.on('error', error => {\n this.onerror?.(error);\n });\n } catch (error) {\n reject(error);\n this.onerror?.(error);\n }\n });\n }\n\n private processReadBuffer() {\n while (true) {\n try {\n const message = this.readBuffer.readMessage();\n if (message === null) {\n break;\n }\n\n this.onmessage?.(message);\n } catch (error) {\n this.onerror?.(error as Error);\n }\n }\n }\n\n async close(): Promise<void> {\n this.abortController.abort();\n this.process = undefined;\n this.readBuffer.clear();\n }\n\n send(message: JSONRPCMessage): Promise<void> {\n return new Promise(resolve => {\n if (!this.process?.stdin) {\n throw new MCPClientError({\n message: 'StdioClientTransport not connected',\n });\n }\n\n const json = serializeMessage(message);\n if (this.process.stdin.write(json)) {\n resolve();\n } else {\n this.process.stdin.once('drain', resolve);\n }\n });\n }\n}\n\nclass ReadBuffer {\n private buffer?: Buffer;\n\n append(chunk: Buffer): void {\n this.buffer = this.buffer ? Buffer.concat([this.buffer, chunk]) : chunk;\n }\n\n readMessage(): JSONRPCMessage | null {\n if (!this.buffer) return null;\n\n const index = this.buffer.indexOf('\\n');\n if (index === -1) {\n return null;\n }\n\n const line = this.buffer.toString('utf8', 0, index);\n this.buffer = this.buffer.subarray(index + 1);\n return deserializeMessage(line);\n }\n\n clear(): void {\n this.buffer = undefined;\n }\n}\n\nfunction serializeMessage(message: JSONRPCMessage): string {\n return JSON.stringify(message) + '\\n';\n}\n\nexport function deserializeMessage(line: string): JSONRPCMessage {\n return JSONRPCMessageSchema.parse(JSON.parse(line));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,IAAAA,aAAkB;;;ACAlB,gBAAkB;AA4BlB,IAAM,qCAAqC,YAAE,YAAY;AAAA,EACvD,MAAM,YAAE,OAAO;AAAA,EACf,SAAS,YAAE,OAAO;AACpB,CAAC;AAIM,IAAM,mBAAmB,YAAE,YAAY;AAAA,EAC5C,OAAO,YAAE,SAAS,YAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;AACxC,CAAC;AAEM,IAAM,eAAe;AAErB,IAAM,gBAAgB,YAAE,OAAO;AAAA,EACpC,QAAQ,YAAE,OAAO;AAAA,EACjB,QAAQ,YAAE,SAAS,gBAAgB;AACrC,CAAC;AAUD,IAAM,2BAA2B,YAAE,YAAY;AAAA,EAC7C,cAAc,YAAE,SAAS,YAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;AAAA,EAC7C,SAAS,YAAE,SAAS,YAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;AAAA,EACxC,SAAS,YAAE;AAAA,IACT,YAAE,YAAY;AAAA,MACZ,aAAa,YAAE,SAAS,YAAE,QAAQ,CAAC;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EACA,WAAW,YAAE;AAAA,IACX,YAAE,YAAY;AAAA,MACZ,WAAW,YAAE,SAAS,YAAE,QAAQ,CAAC;AAAA,MACjC,aAAa,YAAE,SAAS,YAAE,QAAQ,CAAC;AAAA,IACrC,CAAC;AAAA,EACH;AAAA,EACA,OAAO,YAAE;AAAA,IACP,YAAE,YAAY;AAAA,MACZ,aAAa,YAAE,SAAS,YAAE,QAAQ,CAAC;AAAA,IACrC,CAAC;AAAA,EACH;AACF,CAAC;AAIM,IAAM,yBAAyB,aAAa,OAAO;AAAA,EACxD,iBAAiB,YAAE,OAAO;AAAA,EAC1B,cAAc;AAAA,EACd,YAAY;AAAA,EACZ,cAAc,YAAE,SAAS,YAAE,OAAO,CAAC;AACrC,CAAC;AASD,IAAM,wBAAwB,aAAa,OAAO;AAAA,EAChD,YAAY,YAAE,SAAS,YAAE,OAAO,CAAC;AACnC,CAAC;AAED,IAAM,aAAa,YAChB,OAAO;AAAA,EACN,MAAM,YAAE,OAAO;AAAA,EACf,aAAa,YAAE,SAAS,YAAE,OAAO,CAAC;AAAA,EAClC,aAAa,YACV,OAAO;AAAA,IACN,MAAM,YAAE,QAAQ,QAAQ;AAAA,IACxB,YAAY,YAAE,SAAS,YAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC;AAAA,EAC7C,CAAC,EACA,MAAM;AACX,CAAC,EACA,MAAM;AAEF,IAAM,wBAAwB,sBAAsB,OAAO;AAAA,EAChE,OAAO,YAAE,MAAM,UAAU;AAC3B,CAAC;AAGD,IAAM,oBAAoB,YACvB,OAAO;AAAA,EACN,MAAM,YAAE,QAAQ,MAAM;AAAA,EACtB,MAAM,YAAE,OAAO;AACjB,CAAC,EACA,MAAM;AACT,IAAM,qBAAqB,YACxB,OAAO;AAAA,EACN,MAAM,YAAE,QAAQ,OAAO;AAAA,EACvB,MAAM,YAAE,OAAO;AAAA,EACf,UAAU,YAAE,OAAO;AACrB,CAAC,EACA,MAAM;AACT,IAAM,yBAAyB,YAC5B,OAAO;AAAA;AAAA;AAAA;AAAA,EAIN,KAAK,YAAE,OAAO;AAAA;AAAA;AAAA;AAAA,EAId,UAAU,YAAE,SAAS,YAAE,OAAO,CAAC;AACjC,CAAC,EACA,MAAM;AACT,IAAM,6BAA6B,uBAAuB,OAAO;AAAA,EAC/D,MAAM,YAAE,OAAO;AACjB,CAAC;AACD,IAAM,6BAA6B,uBAAuB,OAAO;AAAA,EAC/D,MAAM,YAAE,OAAO;AACjB,CAAC;AACD,IAAM,yBAAyB,YAC5B,OAAO;AAAA,EACN,MAAM,YAAE,QAAQ,UAAU;AAAA,EAC1B,UAAU,YAAE,MAAM,CAAC,4BAA4B,0BAA0B,CAAC;AAC5E,CAAC,EACA,MAAM;AAEF,IAAM,uBAAuB,aAAa,OAAO;AAAA,EACtD,SAAS,YAAE;AAAA,IACT,YAAE,MAAM,CAAC,mBAAmB,oBAAoB,sBAAsB,CAAC;AAAA,EACzE;AAAA,EACA,SAAS,YAAE,QAAQ,EAAE,QAAQ,KAAK,EAAE,SAAS;AAC/C,CAAC,EAAE;AAAA,EACD,aAAa,OAAO;AAAA,IAClB,YAAY,YAAE,QAAQ;AAAA,EACxB,CAAC;AACH;;;AD7JA,IAAM,kBAAkB;AAExB,IAAM,uBAAuB,aAC1B,OAAO;AAAA,EACN,SAAS,aAAE,QAAQ,eAAe;AAAA,EAClC,IAAI,aAAE,MAAM,CAAC,aAAE,OAAO,GAAG,aAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC,EACA,MAAM,aAAa,EACnB,OAAO;AAIV,IAAM,wBAAwB,aAC3B,OAAO;AAAA,EACN,SAAS,aAAE,QAAQ,eAAe;AAAA,EAClC,IAAI,aAAE,MAAM,CAAC,aAAE,OAAO,GAAG,aAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EAC1C,QAAQ;AACV,CAAC,EACA,OAAO;AAIV,IAAM,qBAAqB,aACxB,OAAO;AAAA,EACN,SAAS,aAAE,QAAQ,eAAe;AAAA,EAClC,IAAI,aAAE,MAAM,CAAC,aAAE,OAAO,GAAG,aAAE,OAAO,EAAE,IAAI,CAAC,CAAC;AAAA,EAC1C,OAAO,aAAE,OAAO;AAAA,IACd,MAAM,aAAE,OAAO,EAAE,IAAI;AAAA,IACrB,SAAS,aAAE,OAAO;AAAA,IAClB,MAAM,aAAE,SAAS,aAAE,QAAQ,CAAC;AAAA,EAC9B,CAAC;AACH,CAAC,EACA,OAAO;AAIV,IAAM,4BAA4B,aAC/B,OAAO;AAAA,EACN,SAAS,aAAE,QAAQ,eAAe;AACpC,CAAC,EACA;AAAA,EACC,aAAE,OAAO;AAAA,IACP,QAAQ,aAAE,OAAO;AAAA,IACjB,QAAQ,aAAE,SAAS,gBAAgB;AAAA,EACrC,CAAC;AACH,EACC,OAAO;AAIH,IAAM,uBAAuB,aAAE,MAAM;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;;;AE1DD,sBAA2B;AAE3B,IAAM,OAAO;AACb,IAAM,SAAS,mBAAmB,IAAI;AACtC,IAAM,SAAS,OAAO,IAAI,MAAM;AAJhC;AASO,IAAM,iBAAN,cAA6B,2BAAW;AAAA,EAG7C,YAAY;AAAA,IACV,MAAAC,QAAO;AAAA,IACP;AAAA,IACA;AAAA,EACF,GAIG;AACD,UAAM,EAAE,MAAAA,OAAM,SAAS,MAAM,CAAC;AAXhC,SAAkB,MAAU;AAAA,EAY5B;AAAA,EAEA,OAAO,WAAW,OAAyC;AACzD,WAAO,2BAAW,UAAU,OAAO,MAAM;AAAA,EAC3C;AACF;AAjBoB;;;ACVpB,gCAAoC;;;ACM7B,SAAS,eACd,WACwB;AACxB,QAAM,6BACJ,WAAW,QAAQ,aAAa,UAC5B;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IACA,CAAC,QAAQ,WAAW,QAAQ,SAAS,QAAQ,MAAM;AAEzD,QAAM,MAA8B,YAAY,EAAE,GAAG,UAAU,IAAI,CAAC;AAEpE,aAAW,OAAO,4BAA4B;AAC5C,UAAM,QAAQ,WAAW,QAAQ,IAAI,GAAG;AACxC,QAAI,UAAU,QAAW;AACvB;AAAA,IACF;AAEA,QAAI,MAAM,WAAW,IAAI,GAAG;AAC1B;AAAA,IACF;AAEA,QAAI,GAAG,IAAI;AAAA,EACb;AAEA,SAAO;AACT;;;ADtCO,SAAS,mBACd,QACA,QACc;AAPhB,MAAAC,KAAA;AAQE,aAAO,iCAAM,OAAO,UAASA,MAAA,OAAO,SAAP,OAAAA,MAAe,CAAC,GAAG;AAAA,IAC9C,KAAK,eAAe,OAAO,GAAG;AAAA,IAC9B,OAAO,CAAC,QAAQ,SAAQ,YAAO,WAAP,YAAiB,SAAS;AAAA,IAClD,OAAO;AAAA,IACP;AAAA,IACA,aAAa,WAAW,QAAQ,aAAa,WAAW,WAAW;AAAA,IACnE,KAAK,OAAO;AAAA,EACd,CAAC;AACH;AAEA,SAAS,aAAa;AACpB,SAAO,UAAU,WAAW;AAC9B;;;AEFO,IAAM,oBAAN,MAAgD;AAAA,EAUrD,YAAY,QAAqB;AARjC,SAAQ,kBAAmC,IAAI,gBAAgB;AAC/D,SAAQ,aAAyB,IAAI,WAAW;AAQ9C,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,MAAM,QAAuB;AAC3B,QAAI,KAAK,SAAS;AAChB,YAAM,IAAI,eAAe;AAAA,QACvB,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,WAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAvC5C,UAAAC,KAAA;AAwCM,UAAI;AACF,cAAM,UAAU;AAAA,UACd,KAAK;AAAA,UACL,KAAK,gBAAgB;AAAA,QACvB;AAEA,aAAK,UAAU;AAEf,aAAK,QAAQ,GAAG,SAAS,WAAS;AAhD1C,cAAAA,KAAAC;AAiDU,cAAI,MAAM,SAAS,cAAc;AAC/B,aAAAD,MAAA,KAAK,YAAL,gBAAAA,IAAA;AACA;AAAA,UACF;AAEA,iBAAO,KAAK;AACZ,WAAAC,MAAA,KAAK,YAAL,gBAAAA,IAAA,WAAe;AAAA,QACjB,CAAC;AAED,aAAK,QAAQ,GAAG,SAAS,MAAM;AAC7B,kBAAQ;AAAA,QACV,CAAC;AAED,aAAK,QAAQ,GAAG,SAAS,WAAS;AA9D1C,cAAAD;AA+DU,eAAK,UAAU;AACf,WAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAA;AAAA,QACF,CAAC;AAED,SAAAA,MAAA,KAAK,QAAQ,UAAb,gBAAAA,IAAoB,GAAG,SAAS,WAAS;AAnEjD,cAAAA;AAoEU,WAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAA,WAAe;AAAA,QACjB;AAEA,mBAAK,QAAQ,WAAb,mBAAqB,GAAG,QAAQ,WAAS;AACvC,eAAK,WAAW,OAAO,KAAK;AAC5B,eAAK,kBAAkB;AAAA,QACzB;AAEA,mBAAK,QAAQ,WAAb,mBAAqB,GAAG,SAAS,WAAS;AA5ElD,cAAAA;AA6EU,WAAAA,MAAA,KAAK,YAAL,gBAAAA,IAAA,WAAe;AAAA,QACjB;AAAA,MACF,SAAS,OAAO;AACd,eAAO,KAAK;AACZ,mBAAK,YAAL,8BAAe;AAAA,MACjB;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEQ,oBAAoB;AAtF9B,QAAAA,KAAA;AAuFI,WAAO,MAAM;AACX,UAAI;AACF,cAAM,UAAU,KAAK,WAAW,YAAY;AAC5C,YAAI,YAAY,MAAM;AACpB;AAAA,QACF;AAEA,SAAAA,MAAA,KAAK,cAAL,gBAAAA,IAAA,WAAiB;AAAA,MACnB,SAAS,OAAO;AACd,mBAAK,YAAL,8BAAe;AAAA,MACjB;AAAA,IACF;AAAA,EACF;AAAA,EAEA,MAAM,QAAuB;AAC3B,SAAK,gBAAgB,MAAM;AAC3B,SAAK,UAAU;AACf,SAAK,WAAW,MAAM;AAAA,EACxB;AAAA,EAEA,KAAK,SAAwC;AAC3C,WAAO,IAAI,QAAQ,aAAW;AA5GlC,UAAAA;AA6GM,UAAI,GAACA,MAAA,KAAK,YAAL,gBAAAA,IAAc,QAAO;AACxB,cAAM,IAAI,eAAe;AAAA,UACvB,SAAS;AAAA,QACX,CAAC;AAAA,MACH;AAEA,YAAM,OAAO,iBAAiB,OAAO;AACrC,UAAI,KAAK,QAAQ,MAAM,MAAM,IAAI,GAAG;AAClC,gBAAQ;AAAA,MACV,OAAO;AACL,aAAK,QAAQ,MAAM,KAAK,SAAS,OAAO;AAAA,MAC1C;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEA,IAAM,aAAN,MAAiB;AAAA,EAGf,OAAO,OAAqB;AAC1B,SAAK,SAAS,KAAK,SAAS,OAAO,OAAO,CAAC,KAAK,QAAQ,KAAK,CAAC,IAAI;AAAA,EACpE;AAAA,EAEA,cAAqC;AACnC,QAAI,CAAC,KAAK;AAAQ,aAAO;AAEzB,UAAM,QAAQ,KAAK,OAAO,QAAQ,IAAI;AACtC,QAAI,UAAU,IAAI;AAChB,aAAO;AAAA,IACT;AAEA,UAAM,OAAO,KAAK,OAAO,SAAS,QAAQ,GAAG,KAAK;AAClD,SAAK,SAAS,KAAK,OAAO,SAAS,QAAQ,CAAC;AAC5C,WAAO,mBAAmB,IAAI;AAAA,EAChC;AAAA,EAEA,QAAc;AACZ,SAAK,SAAS;AAAA,EAChB;AACF;AAEA,SAAS,iBAAiB,SAAiC;AACzD,SAAO,KAAK,UAAU,OAAO,IAAI;AACnC;AAEO,SAAS,mBAAmB,MAA8B;AAC/D,SAAO,qBAAqB,MAAM,KAAK,MAAM,IAAI,CAAC;AACpD;","names":["import_v4","name","_a","_a","_b"]}
|
package/dist/mcp-stdio/index.mjs
CHANGED
@@ -1,40 +1,40 @@
|
|
1
|
-
//
|
2
|
-
import { z as z2 } from "zod";
|
1
|
+
// src/tool/mcp/json-rpc-message.ts
|
2
|
+
import { z as z2 } from "zod/v4";
|
3
3
|
|
4
|
-
//
|
5
|
-
import { z } from "zod";
|
6
|
-
var ClientOrServerImplementationSchema = z.
|
4
|
+
// src/tool/mcp/types.ts
|
5
|
+
import { z } from "zod/v4";
|
6
|
+
var ClientOrServerImplementationSchema = z.looseObject({
|
7
7
|
name: z.string(),
|
8
8
|
version: z.string()
|
9
|
-
})
|
10
|
-
var BaseParamsSchema = z.
|
11
|
-
_meta: z.optional(z.object({}).
|
12
|
-
})
|
9
|
+
});
|
10
|
+
var BaseParamsSchema = z.looseObject({
|
11
|
+
_meta: z.optional(z.object({}).loose())
|
12
|
+
});
|
13
13
|
var ResultSchema = BaseParamsSchema;
|
14
14
|
var RequestSchema = z.object({
|
15
15
|
method: z.string(),
|
16
16
|
params: z.optional(BaseParamsSchema)
|
17
17
|
});
|
18
|
-
var ServerCapabilitiesSchema = z.
|
19
|
-
experimental: z.optional(z.object({}).
|
20
|
-
logging: z.optional(z.object({}).
|
18
|
+
var ServerCapabilitiesSchema = z.looseObject({
|
19
|
+
experimental: z.optional(z.object({}).loose()),
|
20
|
+
logging: z.optional(z.object({}).loose()),
|
21
21
|
prompts: z.optional(
|
22
|
-
z.
|
22
|
+
z.looseObject({
|
23
23
|
listChanged: z.optional(z.boolean())
|
24
|
-
})
|
24
|
+
})
|
25
25
|
),
|
26
26
|
resources: z.optional(
|
27
|
-
z.
|
27
|
+
z.looseObject({
|
28
28
|
subscribe: z.optional(z.boolean()),
|
29
29
|
listChanged: z.optional(z.boolean())
|
30
|
-
})
|
30
|
+
})
|
31
31
|
),
|
32
32
|
tools: z.optional(
|
33
|
-
z.
|
33
|
+
z.looseObject({
|
34
34
|
listChanged: z.optional(z.boolean())
|
35
|
-
})
|
35
|
+
})
|
36
36
|
)
|
37
|
-
})
|
37
|
+
});
|
38
38
|
var InitializeResultSchema = ResultSchema.extend({
|
39
39
|
protocolVersion: z.string(),
|
40
40
|
capabilities: ServerCapabilitiesSchema,
|
@@ -49,21 +49,21 @@ var ToolSchema = z.object({
|
|
49
49
|
description: z.optional(z.string()),
|
50
50
|
inputSchema: z.object({
|
51
51
|
type: z.literal("object"),
|
52
|
-
properties: z.optional(z.object({}).
|
53
|
-
}).
|
54
|
-
}).
|
52
|
+
properties: z.optional(z.object({}).loose())
|
53
|
+
}).loose()
|
54
|
+
}).loose();
|
55
55
|
var ListToolsResultSchema = PaginatedResultSchema.extend({
|
56
56
|
tools: z.array(ToolSchema)
|
57
57
|
});
|
58
58
|
var TextContentSchema = z.object({
|
59
59
|
type: z.literal("text"),
|
60
60
|
text: z.string()
|
61
|
-
}).
|
61
|
+
}).loose();
|
62
62
|
var ImageContentSchema = z.object({
|
63
63
|
type: z.literal("image"),
|
64
|
-
data: z.
|
64
|
+
data: z.base64(),
|
65
65
|
mimeType: z.string()
|
66
|
-
}).
|
66
|
+
}).loose();
|
67
67
|
var ResourceContentsSchema = z.object({
|
68
68
|
/**
|
69
69
|
* The URI of this resource.
|
@@ -73,17 +73,17 @@ var ResourceContentsSchema = z.object({
|
|
73
73
|
* The MIME type of this resource, if known.
|
74
74
|
*/
|
75
75
|
mimeType: z.optional(z.string())
|
76
|
-
}).
|
76
|
+
}).loose();
|
77
77
|
var TextResourceContentsSchema = ResourceContentsSchema.extend({
|
78
78
|
text: z.string()
|
79
79
|
});
|
80
80
|
var BlobResourceContentsSchema = ResourceContentsSchema.extend({
|
81
|
-
blob: z.
|
81
|
+
blob: z.base64()
|
82
82
|
});
|
83
83
|
var EmbeddedResourceSchema = z.object({
|
84
84
|
type: z.literal("resource"),
|
85
85
|
resource: z.union([TextResourceContentsSchema, BlobResourceContentsSchema])
|
86
|
-
}).
|
86
|
+
}).loose();
|
87
87
|
var CallToolResultSchema = ResultSchema.extend({
|
88
88
|
content: z.array(
|
89
89
|
z.union([TextContentSchema, ImageContentSchema, EmbeddedResourceSchema])
|
@@ -95,7 +95,7 @@ var CallToolResultSchema = ResultSchema.extend({
|
|
95
95
|
})
|
96
96
|
);
|
97
97
|
|
98
|
-
//
|
98
|
+
// src/tool/mcp/json-rpc-message.ts
|
99
99
|
var JSONRPC_VERSION = "2.0";
|
100
100
|
var JSONRPCRequestSchema = z2.object({
|
101
101
|
jsonrpc: z2.literal(JSONRPC_VERSION),
|
@@ -130,22 +130,7 @@ var JSONRPCMessageSchema = z2.union([
|
|
130
130
|
JSONRPCErrorSchema
|
131
131
|
]);
|
132
132
|
|
133
|
-
//
|
134
|
-
import {
|
135
|
-
AISDKError as AISDKError2,
|
136
|
-
APICallError,
|
137
|
-
EmptyResponseBodyError,
|
138
|
-
InvalidPromptError,
|
139
|
-
InvalidResponseDataError,
|
140
|
-
JSONParseError,
|
141
|
-
LoadAPIKeyError,
|
142
|
-
NoContentGeneratedError,
|
143
|
-
NoSuchModelError,
|
144
|
-
TypeValidationError,
|
145
|
-
UnsupportedFunctionalityError
|
146
|
-
} from "@ai-sdk/provider";
|
147
|
-
|
148
|
-
// errors/mcp-client-error.ts
|
133
|
+
// src/error/mcp-client-error.ts
|
149
134
|
import { AISDKError } from "@ai-sdk/provider";
|
150
135
|
var name = "AI_MCPClientError";
|
151
136
|
var marker = `vercel.ai.error.${name}`;
|
@@ -199,7 +184,7 @@ function getEnvironment(customEnv) {
|
|
199
184
|
}
|
200
185
|
|
201
186
|
// mcp-stdio/create-child-process.ts
|
202
|
-
|
187
|
+
function createChildProcess(config, signal) {
|
203
188
|
var _a2, _b;
|
204
189
|
return spawn(config.command, (_a2 = config.args) != null ? _a2 : [], {
|
205
190
|
env: getEnvironment(config.env),
|
@@ -227,10 +212,10 @@ var StdioMCPTransport = class {
|
|
227
212
|
message: "StdioMCPTransport already started."
|
228
213
|
});
|
229
214
|
}
|
230
|
-
return new Promise(
|
215
|
+
return new Promise((resolve, reject) => {
|
231
216
|
var _a2, _b, _c, _d;
|
232
217
|
try {
|
233
|
-
const process =
|
218
|
+
const process = createChildProcess(
|
234
219
|
this.serverParams,
|
235
220
|
this.abortController.signal
|
236
221
|
);
|