@usestratus/sdk 1.5.0 → 1.6.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 +9 -9
- package/dist/azure/create-model.d.ts +1 -0
- package/dist/azure/create-model.d.ts.map +1 -1
- package/dist/azure/create-model.js +1 -0
- package/dist/azure/create-model.js.map +1 -1
- package/dist/azure/responses-model.d.ts +3 -0
- package/dist/azure/responses-model.d.ts.map +1 -1
- package/dist/azure/responses-model.js +22 -10
- package/dist/azure/responses-model.js.map +1 -1
- package/dist/core/hooks.d.ts +24 -21
- package/dist/core/hooks.d.ts.map +1 -1
- package/dist/core/index.d.ts +6 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +3 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/mcp-client.d.ts +37 -27
- package/dist/core/mcp-client.d.ts.map +1 -1
- package/dist/core/mcp-client.js +190 -79
- package/dist/core/mcp-client.js.map +1 -1
- package/dist/core/result.d.ts +11 -1
- package/dist/core/result.d.ts.map +1 -1
- package/dist/core/result.js +19 -1
- package/dist/core/result.js.map +1 -1
- package/dist/core/run.d.ts +2 -3
- package/dist/core/run.d.ts.map +1 -1
- package/dist/core/run.js.map +1 -1
- package/dist/core/sandbox.d.ts +46 -0
- package/dist/core/sandbox.d.ts.map +1 -0
- package/dist/core/sandbox.js +143 -0
- package/dist/core/sandbox.js.map +1 -0
- package/dist/core/session.d.ts +4 -4
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +3 -2
- package/dist/core/session.js.map +1 -1
- package/dist/core/tracing.d.ts +23 -0
- package/dist/core/tracing.d.ts.map +1 -1
- package/dist/core/tracing.js +129 -3
- package/dist/core/tracing.js.map +1 -1
- package/package.json +52 -38
|
@@ -1,57 +1,67 @@
|
|
|
1
1
|
import type { FunctionTool } from "./tool";
|
|
2
|
+
export type McpToolFilter = string[] | ((tool: McpToolDefinition) => boolean | Promise<boolean>);
|
|
3
|
+
export type McpHeaders = Record<string, string> | (() => Record<string, string> | Promise<Record<string, string>>);
|
|
2
4
|
export interface McpClientConfig {
|
|
3
|
-
/**
|
|
4
|
-
|
|
5
|
-
/**
|
|
5
|
+
/** Transport. Defaults to stdio when command is provided, otherwise streamable-http. */
|
|
6
|
+
transport?: "stdio" | "streamable-http";
|
|
7
|
+
/** Command to spawn for stdio MCP servers. */
|
|
8
|
+
command?: string;
|
|
9
|
+
/** Arguments for the stdio command. */
|
|
6
10
|
args?: string[];
|
|
7
|
-
/** Environment variables for the process */
|
|
11
|
+
/** Environment variables for the stdio process. */
|
|
8
12
|
env?: Record<string, string>;
|
|
9
|
-
/** Working directory */
|
|
13
|
+
/** Working directory for the stdio process. */
|
|
10
14
|
cwd?: string;
|
|
15
|
+
/** Streamable HTTP MCP endpoint. */
|
|
16
|
+
url?: string;
|
|
17
|
+
/** Static or async headers for HTTP MCP servers. Use this for Entra tokens or API keys. */
|
|
18
|
+
headers?: McpHeaders;
|
|
19
|
+
/** Cache tools/list results after the first call. */
|
|
20
|
+
cacheToolsList?: boolean;
|
|
21
|
+
/** Filter discovered tools before exposing them to an agent. */
|
|
22
|
+
toolFilter?: McpToolFilter;
|
|
23
|
+
/** Prefix exposed tool names, useful when multiple MCP servers have overlapping names. */
|
|
24
|
+
namePrefix?: string;
|
|
25
|
+
/** JSON-RPC request timeout in milliseconds. Defaults to 30 seconds. */
|
|
26
|
+
requestTimeoutMs?: number;
|
|
11
27
|
}
|
|
12
28
|
export interface McpToolDefinition {
|
|
13
29
|
name: string;
|
|
14
30
|
description?: string;
|
|
15
31
|
inputSchema?: Record<string, unknown>;
|
|
16
32
|
}
|
|
33
|
+
export declare function azureMcpHeaders(tokenProvider: () => Promise<string>, extraHeaders?: Record<string, string>): () => Promise<Record<string, string>>;
|
|
17
34
|
/**
|
|
18
|
-
*
|
|
19
|
-
* Discovers tools and wraps them as FunctionTool instances
|
|
20
|
-
*
|
|
21
|
-
* Usage:
|
|
22
|
-
* ```ts
|
|
23
|
-
* const client = new McpClient({ command: "npx", args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] });
|
|
24
|
-
* await client.connect();
|
|
25
|
-
* const tools = await client.getTools();
|
|
26
|
-
* const agent = new Agent({ tools });
|
|
27
|
-
* // ...
|
|
28
|
-
* await client.disconnect();
|
|
29
|
-
* ```
|
|
35
|
+
* MCP client for local stdio servers and Streamable HTTP servers.
|
|
36
|
+
* Discovers MCP tools and wraps them as Stratus FunctionTool instances.
|
|
30
37
|
*/
|
|
31
38
|
export declare class McpClient {
|
|
32
39
|
private process;
|
|
33
40
|
private buffer;
|
|
34
41
|
private pendingRequests;
|
|
35
42
|
private nextId;
|
|
43
|
+
private cachedTools;
|
|
36
44
|
private readonly config;
|
|
45
|
+
private readonly transport;
|
|
46
|
+
private connected;
|
|
37
47
|
constructor(config: McpClientConfig);
|
|
38
|
-
/** Connect to the MCP server and perform the initialize handshake. */
|
|
39
48
|
connect(): Promise<void>;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
49
|
+
listTools(options?: {
|
|
50
|
+
refresh?: boolean;
|
|
51
|
+
}): Promise<McpToolDefinition[]>;
|
|
43
52
|
callTool(name: string, args: Record<string, unknown>): Promise<string>;
|
|
44
|
-
|
|
45
|
-
* Discover MCP tools and return them as Stratus FunctionTool instances.
|
|
46
|
-
* Each returned tool proxies execution to the MCP server via `tools/call`.
|
|
47
|
-
*/
|
|
48
|
-
getTools<TContext = unknown>(): Promise<FunctionTool<any, TContext>[]>;
|
|
49
|
-
/** Disconnect from the MCP server and clean up. */
|
|
53
|
+
getTools<TContext = unknown>(): Promise<FunctionTool<Record<string, unknown>, TContext>[]>;
|
|
50
54
|
disconnect(): Promise<void>;
|
|
51
55
|
[Symbol.asyncDispose](): Promise<void>;
|
|
56
|
+
private connectStdio;
|
|
52
57
|
private assertConnected;
|
|
58
|
+
private applyToolFilter;
|
|
59
|
+
private withPrefix;
|
|
60
|
+
private stripPrefix;
|
|
53
61
|
private processBuffer;
|
|
54
62
|
private sendRequest;
|
|
55
63
|
private sendNotification;
|
|
64
|
+
private sendHttpRequest;
|
|
65
|
+
private parseHttpResponse;
|
|
56
66
|
}
|
|
57
67
|
//# sourceMappingURL=mcp-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC/B,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"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"}
|
package/dist/core/mcp-client.js
CHANGED
|
@@ -1,138 +1,186 @@
|
|
|
1
1
|
import { spawn } from "node:child_process";
|
|
2
|
+
export function azureMcpHeaders(tokenProvider, extraHeaders) {
|
|
3
|
+
return async () => ({
|
|
4
|
+
...extraHeaders,
|
|
5
|
+
Authorization: `Bearer ${await tokenProvider()}`,
|
|
6
|
+
});
|
|
7
|
+
}
|
|
2
8
|
/**
|
|
3
|
-
*
|
|
4
|
-
* Discovers tools and wraps them as FunctionTool instances
|
|
5
|
-
*
|
|
6
|
-
* Usage:
|
|
7
|
-
* ```ts
|
|
8
|
-
* const client = new McpClient({ command: "npx", args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] });
|
|
9
|
-
* await client.connect();
|
|
10
|
-
* const tools = await client.getTools();
|
|
11
|
-
* const agent = new Agent({ tools });
|
|
12
|
-
* // ...
|
|
13
|
-
* await client.disconnect();
|
|
14
|
-
* ```
|
|
9
|
+
* MCP client for local stdio servers and Streamable HTTP servers.
|
|
10
|
+
* Discovers MCP tools and wraps them as Stratus FunctionTool instances.
|
|
15
11
|
*/
|
|
16
12
|
export class McpClient {
|
|
17
13
|
process = null;
|
|
18
14
|
buffer = "";
|
|
19
15
|
pendingRequests = new Map();
|
|
20
16
|
nextId = 1;
|
|
17
|
+
cachedTools;
|
|
21
18
|
config;
|
|
19
|
+
transport;
|
|
20
|
+
connected = false;
|
|
22
21
|
constructor(config) {
|
|
23
22
|
this.config = config;
|
|
23
|
+
this.transport = config.transport ?? (config.command ? "stdio" : "streamable-http");
|
|
24
24
|
}
|
|
25
|
-
/** Connect to the MCP server and perform the initialize handshake. */
|
|
26
25
|
async connect() {
|
|
27
|
-
if (this.
|
|
26
|
+
if (this.connected) {
|
|
28
27
|
throw new Error("McpClient is already connected");
|
|
29
28
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
this.buffer += data.toString();
|
|
37
|
-
this.processBuffer();
|
|
38
|
-
});
|
|
39
|
-
this.process.on("error", (err) => {
|
|
40
|
-
for (const { reject } of this.pendingRequests.values()) {
|
|
41
|
-
reject(err);
|
|
42
|
-
}
|
|
43
|
-
this.pendingRequests.clear();
|
|
44
|
-
});
|
|
45
|
-
this.process.on("close", (code) => {
|
|
46
|
-
const err = new Error(`MCP server exited with code ${code}`);
|
|
47
|
-
for (const { reject } of this.pendingRequests.values()) {
|
|
48
|
-
reject(err);
|
|
29
|
+
if (this.transport === "stdio") {
|
|
30
|
+
await this.connectStdio();
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
if (!this.config.url) {
|
|
34
|
+
throw new Error("McpClient streamable-http transport requires url");
|
|
49
35
|
}
|
|
50
|
-
this.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
this.sendNotification("notifications/initialized", {});
|
|
36
|
+
await this.sendRequest("initialize", {
|
|
37
|
+
protocolVersion: "2024-11-05",
|
|
38
|
+
capabilities: {},
|
|
39
|
+
clientInfo: { name: "stratus-sdk", version: "1.0.0" },
|
|
40
|
+
});
|
|
41
|
+
await this.sendNotification("notifications/initialized", {});
|
|
42
|
+
}
|
|
43
|
+
this.connected = true;
|
|
59
44
|
}
|
|
60
|
-
|
|
61
|
-
async listTools() {
|
|
45
|
+
async listTools(options) {
|
|
62
46
|
this.assertConnected();
|
|
47
|
+
if (this.config.cacheToolsList && this.cachedTools && !options?.refresh) {
|
|
48
|
+
return this.cachedTools;
|
|
49
|
+
}
|
|
63
50
|
const result = (await this.sendRequest("tools/list", {}));
|
|
64
|
-
|
|
51
|
+
const tools = await this.applyToolFilter(result.tools ?? []);
|
|
52
|
+
if (this.config.cacheToolsList) {
|
|
53
|
+
this.cachedTools = tools;
|
|
54
|
+
}
|
|
55
|
+
return tools;
|
|
65
56
|
}
|
|
66
|
-
/** Call a tool on the MCP server and return concatenated text content. */
|
|
67
57
|
async callTool(name, args) {
|
|
68
58
|
this.assertConnected();
|
|
59
|
+
const rawName = this.stripPrefix(name);
|
|
69
60
|
const result = (await this.sendRequest("tools/call", {
|
|
70
|
-
name,
|
|
61
|
+
name: rawName,
|
|
71
62
|
arguments: args,
|
|
72
63
|
}));
|
|
73
|
-
|
|
64
|
+
const text = (result.content ?? [])
|
|
74
65
|
.filter((c) => c.type === "text" && !!c.text)
|
|
75
66
|
.map((c) => c.text)
|
|
76
67
|
.join("\n");
|
|
68
|
+
if (result.isError) {
|
|
69
|
+
throw new Error(text || `MCP tool "${rawName}" failed`);
|
|
70
|
+
}
|
|
71
|
+
return text;
|
|
77
72
|
}
|
|
78
|
-
/**
|
|
79
|
-
* Discover MCP tools and return them as Stratus FunctionTool instances.
|
|
80
|
-
* Each returned tool proxies execution to the MCP server via `tools/call`.
|
|
81
|
-
*/
|
|
82
73
|
async getTools() {
|
|
83
74
|
const mcpTools = await this.listTools();
|
|
84
75
|
const { z } = await import("zod");
|
|
85
|
-
return mcpTools.map((mcpTool) =>
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
76
|
+
return mcpTools.map((mcpTool) => {
|
|
77
|
+
const exposedName = this.withPrefix(mcpTool.name);
|
|
78
|
+
return {
|
|
79
|
+
type: "function",
|
|
80
|
+
name: exposedName,
|
|
81
|
+
description: mcpTool.description ?? "",
|
|
82
|
+
parameters: z.record(z.string(), z.unknown()),
|
|
83
|
+
_rawJsonSchema: mcpTool.inputSchema,
|
|
84
|
+
execute: async (_context, params) => {
|
|
85
|
+
return this.callTool(exposedName, params);
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
});
|
|
95
89
|
}
|
|
96
|
-
/** Disconnect from the MCP server and clean up. */
|
|
97
90
|
async disconnect() {
|
|
98
91
|
if (this.process) {
|
|
99
92
|
this.process.kill();
|
|
100
93
|
this.process = null;
|
|
101
94
|
}
|
|
102
|
-
for (const { reject } of this.pendingRequests.values()) {
|
|
95
|
+
for (const { reject, timer } of this.pendingRequests.values()) {
|
|
96
|
+
clearTimeout(timer);
|
|
103
97
|
reject(new Error("MCP client disconnected"));
|
|
104
98
|
}
|
|
105
99
|
this.pendingRequests.clear();
|
|
106
100
|
this.buffer = "";
|
|
101
|
+
this.connected = false;
|
|
107
102
|
}
|
|
108
103
|
async [Symbol.asyncDispose]() {
|
|
109
104
|
await this.disconnect();
|
|
110
105
|
}
|
|
111
|
-
|
|
106
|
+
async connectStdio() {
|
|
107
|
+
if (!this.config.command) {
|
|
108
|
+
throw new Error("McpClient stdio transport requires command");
|
|
109
|
+
}
|
|
110
|
+
this.process = spawn(this.config.command, this.config.args ?? [], {
|
|
111
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
112
|
+
env: { ...process.env, ...this.config.env },
|
|
113
|
+
cwd: this.config.cwd,
|
|
114
|
+
});
|
|
115
|
+
this.process.stdout?.on("data", (data) => {
|
|
116
|
+
this.buffer += data.toString();
|
|
117
|
+
this.processBuffer();
|
|
118
|
+
});
|
|
119
|
+
this.process.on("error", (err) => {
|
|
120
|
+
for (const { reject, timer } of this.pendingRequests.values()) {
|
|
121
|
+
clearTimeout(timer);
|
|
122
|
+
reject(err);
|
|
123
|
+
}
|
|
124
|
+
this.pendingRequests.clear();
|
|
125
|
+
});
|
|
126
|
+
this.process.on("close", (code) => {
|
|
127
|
+
const err = new Error(`MCP server exited with code ${code}`);
|
|
128
|
+
for (const { reject, timer } of this.pendingRequests.values()) {
|
|
129
|
+
clearTimeout(timer);
|
|
130
|
+
reject(err);
|
|
131
|
+
}
|
|
132
|
+
this.pendingRequests.clear();
|
|
133
|
+
this.process = null;
|
|
134
|
+
this.connected = false;
|
|
135
|
+
});
|
|
136
|
+
await this.sendRequest("initialize", {
|
|
137
|
+
protocolVersion: "2024-11-05",
|
|
138
|
+
capabilities: {},
|
|
139
|
+
clientInfo: { name: "stratus-sdk", version: "1.0.0" },
|
|
140
|
+
});
|
|
141
|
+
await this.sendNotification("notifications/initialized", {});
|
|
142
|
+
}
|
|
112
143
|
assertConnected() {
|
|
113
|
-
if (!this.
|
|
144
|
+
if (!this.connected) {
|
|
114
145
|
throw new Error("McpClient is not connected. Call connect() first.");
|
|
115
146
|
}
|
|
116
147
|
}
|
|
148
|
+
async applyToolFilter(tools) {
|
|
149
|
+
const filter = this.config.toolFilter;
|
|
150
|
+
if (!filter)
|
|
151
|
+
return tools;
|
|
152
|
+
if (Array.isArray(filter)) {
|
|
153
|
+
const allowed = new Set(filter);
|
|
154
|
+
return tools.filter((tool) => allowed.has(tool.name) || allowed.has(this.withPrefix(tool.name)));
|
|
155
|
+
}
|
|
156
|
+
const filtered = [];
|
|
157
|
+
for (const tool of tools) {
|
|
158
|
+
if (await filter(tool))
|
|
159
|
+
filtered.push(tool);
|
|
160
|
+
}
|
|
161
|
+
return filtered;
|
|
162
|
+
}
|
|
163
|
+
withPrefix(name) {
|
|
164
|
+
return this.config.namePrefix ? `${this.config.namePrefix}${name}` : name;
|
|
165
|
+
}
|
|
166
|
+
stripPrefix(name) {
|
|
167
|
+
const prefix = this.config.namePrefix;
|
|
168
|
+
if (prefix && name.startsWith(prefix))
|
|
169
|
+
return name.slice(prefix.length);
|
|
170
|
+
return name;
|
|
171
|
+
}
|
|
117
172
|
processBuffer() {
|
|
118
|
-
// MCP stdio uses JSON-RPC with Content-Length framing (like LSP).
|
|
119
173
|
while (true) {
|
|
120
174
|
const headerEnd = this.buffer.indexOf("\r\n\r\n");
|
|
121
175
|
if (headerEnd === -1)
|
|
122
176
|
break;
|
|
123
177
|
const header = this.buffer.slice(0, headerEnd);
|
|
124
178
|
const match = header.match(/Content-Length:\s*(\d+)/i);
|
|
125
|
-
if (!match) {
|
|
126
|
-
// Malformed header; skip past it
|
|
179
|
+
if (!match?.[1]) {
|
|
127
180
|
this.buffer = this.buffer.slice(headerEnd + 4);
|
|
128
181
|
continue;
|
|
129
182
|
}
|
|
130
|
-
const
|
|
131
|
-
if (rawLength === undefined) {
|
|
132
|
-
this.buffer = this.buffer.slice(headerEnd + 4);
|
|
133
|
-
continue;
|
|
134
|
-
}
|
|
135
|
-
const contentLength = Number.parseInt(rawLength, 10);
|
|
183
|
+
const contentLength = Number.parseInt(match[1], 10);
|
|
136
184
|
const bodyStart = headerEnd + 4;
|
|
137
185
|
if (this.buffer.length < bodyStart + contentLength)
|
|
138
186
|
break;
|
|
@@ -142,6 +190,7 @@ export class McpClient {
|
|
|
142
190
|
const message = JSON.parse(body);
|
|
143
191
|
const pending = message.id !== undefined ? this.pendingRequests.get(message.id) : undefined;
|
|
144
192
|
if (pending !== undefined) {
|
|
193
|
+
clearTimeout(pending.timer);
|
|
145
194
|
this.pendingRequests.delete(message.id);
|
|
146
195
|
if (message.error) {
|
|
147
196
|
pending.reject(new Error(message.error.message ?? "MCP error"));
|
|
@@ -150,32 +199,94 @@ export class McpClient {
|
|
|
150
199
|
pending.resolve(message.result);
|
|
151
200
|
}
|
|
152
201
|
}
|
|
153
|
-
// Notifications and server-initiated messages are ignored for now.
|
|
154
202
|
}
|
|
155
203
|
catch {
|
|
156
|
-
// Ignore
|
|
204
|
+
// Ignore malformed server messages.
|
|
157
205
|
}
|
|
158
206
|
}
|
|
159
207
|
}
|
|
160
208
|
sendRequest(method, params) {
|
|
209
|
+
if (this.transport === "streamable-http") {
|
|
210
|
+
return this.sendHttpRequest(method, params, true);
|
|
211
|
+
}
|
|
161
212
|
return new Promise((resolve, reject) => {
|
|
162
213
|
if (!this.process?.stdin) {
|
|
163
214
|
reject(new Error("McpClient is not connected. Call connect() first."));
|
|
164
215
|
return;
|
|
165
216
|
}
|
|
166
217
|
const id = this.nextId++;
|
|
167
|
-
|
|
218
|
+
const timer = setTimeout(() => {
|
|
219
|
+
this.pendingRequests.delete(id);
|
|
220
|
+
reject(new Error(`MCP request timed out: ${method}`));
|
|
221
|
+
}, this.config.requestTimeoutMs ?? 30_000);
|
|
222
|
+
this.pendingRequests.set(id, { resolve, reject, timer });
|
|
168
223
|
const body = JSON.stringify({ jsonrpc: "2.0", id, method, params });
|
|
169
224
|
const packet = `Content-Length: ${Buffer.byteLength(body)}\r\n\r\n${body}`;
|
|
170
225
|
this.process.stdin.write(packet);
|
|
171
226
|
});
|
|
172
227
|
}
|
|
173
|
-
sendNotification(method, params) {
|
|
228
|
+
async sendNotification(method, params) {
|
|
229
|
+
if (this.transport === "streamable-http") {
|
|
230
|
+
await this.sendHttpRequest(method, params, false);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
174
233
|
if (!this.process?.stdin)
|
|
175
234
|
return;
|
|
176
235
|
const body = JSON.stringify({ jsonrpc: "2.0", method, params });
|
|
177
236
|
const packet = `Content-Length: ${Buffer.byteLength(body)}\r\n\r\n${body}`;
|
|
178
237
|
this.process.stdin.write(packet);
|
|
179
238
|
}
|
|
239
|
+
async sendHttpRequest(method, params, expectResponse) {
|
|
240
|
+
if (!this.config.url) {
|
|
241
|
+
throw new Error("McpClient streamable-http transport requires url");
|
|
242
|
+
}
|
|
243
|
+
const id = expectResponse ? this.nextId++ : undefined;
|
|
244
|
+
const headers = typeof this.config.headers === "function"
|
|
245
|
+
? await this.config.headers()
|
|
246
|
+
: (this.config.headers ?? {});
|
|
247
|
+
const response = await fetch(this.config.url, {
|
|
248
|
+
method: "POST",
|
|
249
|
+
headers: {
|
|
250
|
+
...headers,
|
|
251
|
+
"Content-Type": "application/json",
|
|
252
|
+
Accept: "application/json, text/event-stream",
|
|
253
|
+
},
|
|
254
|
+
body: JSON.stringify({
|
|
255
|
+
jsonrpc: "2.0",
|
|
256
|
+
...(id !== undefined ? { id } : {}),
|
|
257
|
+
method,
|
|
258
|
+
params,
|
|
259
|
+
}),
|
|
260
|
+
signal: AbortSignal.timeout(this.config.requestTimeoutMs ?? 30_000),
|
|
261
|
+
});
|
|
262
|
+
if (!response.ok) {
|
|
263
|
+
throw new Error(`MCP HTTP request failed (${response.status})`);
|
|
264
|
+
}
|
|
265
|
+
if (!expectResponse)
|
|
266
|
+
return undefined;
|
|
267
|
+
const json = (await this.parseHttpResponse(response));
|
|
268
|
+
if (json.error) {
|
|
269
|
+
throw new Error(json.error.message ?? "MCP error");
|
|
270
|
+
}
|
|
271
|
+
return json.result;
|
|
272
|
+
}
|
|
273
|
+
async parseHttpResponse(response) {
|
|
274
|
+
const contentType = response.headers.get("content-type") ?? "";
|
|
275
|
+
if (!contentType.includes("event-stream")) {
|
|
276
|
+
return response.json();
|
|
277
|
+
}
|
|
278
|
+
const text = await response.text();
|
|
279
|
+
for (const block of text.split("\n\n")) {
|
|
280
|
+
const data = block
|
|
281
|
+
.split("\n")
|
|
282
|
+
.filter((line) => line.startsWith("data:"))
|
|
283
|
+
.map((line) => line.slice("data:".length).trim())
|
|
284
|
+
.join("\n");
|
|
285
|
+
if (!data || data === "[DONE]")
|
|
286
|
+
continue;
|
|
287
|
+
return JSON.parse(data);
|
|
288
|
+
}
|
|
289
|
+
throw new Error("MCP HTTP event stream ended without a JSON-RPC response");
|
|
290
|
+
}
|
|
180
291
|
}
|
|
181
292
|
//# sourceMappingURL=mcp-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-client.js","sourceRoot":"","sources":["../../src/core/mcp-client.ts"],"names":[],"mappings":"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"}
|
package/dist/core/result.d.ts
CHANGED
|
@@ -11,11 +11,19 @@ export interface PendingToolCall {
|
|
|
11
11
|
export declare class InterruptedRunResult<TOutput = undefined> {
|
|
12
12
|
readonly interrupted: true;
|
|
13
13
|
readonly pendingToolCalls: PendingToolCall[];
|
|
14
|
+
readonly output = "";
|
|
15
|
+
readonly finalOutput: TOutput extends undefined ? undefined : TOutput;
|
|
14
16
|
readonly messages: ChatMessage[];
|
|
15
17
|
readonly currentAgent: Agent<any, TOutput>;
|
|
18
|
+
readonly lastAgent: Agent<any, TOutput>;
|
|
16
19
|
readonly context: any;
|
|
17
20
|
readonly numTurns: number;
|
|
18
|
-
readonly usage: UsageInfo
|
|
21
|
+
readonly usage: UsageInfo;
|
|
22
|
+
readonly finishReason: FinishReason;
|
|
23
|
+
readonly totalCostUsd = 0;
|
|
24
|
+
readonly responseId?: string;
|
|
25
|
+
readonly inputGuardrailResults: readonly GuardrailRunResult[];
|
|
26
|
+
readonly outputGuardrailResults: readonly GuardrailRunResult[];
|
|
19
27
|
constructor(options: {
|
|
20
28
|
pendingToolCalls: PendingToolCall[];
|
|
21
29
|
messages: ChatMessage[];
|
|
@@ -24,6 +32,8 @@ export declare class InterruptedRunResult<TOutput = undefined> {
|
|
|
24
32
|
numTurns: number;
|
|
25
33
|
usage?: UsageInfo;
|
|
26
34
|
});
|
|
35
|
+
/** Convert the result's messages into a format suitable for chaining as input to another run */
|
|
36
|
+
toInputList(): ChatMessage[];
|
|
27
37
|
}
|
|
28
38
|
export interface RunResultOptions<TOutput = undefined> {
|
|
29
39
|
output: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,oBAAoB,CAAC,OAAO,GAAG,SAAS;IACpD,QAAQ,CAAC,WAAW,EAAG,IAAI,CAAU;IACrC,QAAQ,CAAC,gBAAgB,EAAE,eAAe,EAAE,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"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"}
|
package/dist/core/result.js
CHANGED
|
@@ -1,18 +1,36 @@
|
|
|
1
1
|
export class InterruptedRunResult {
|
|
2
2
|
interrupted = true;
|
|
3
3
|
pendingToolCalls;
|
|
4
|
+
output = "";
|
|
5
|
+
finalOutput;
|
|
4
6
|
messages;
|
|
5
7
|
currentAgent;
|
|
8
|
+
lastAgent;
|
|
6
9
|
context;
|
|
7
10
|
numTurns;
|
|
8
11
|
usage;
|
|
12
|
+
finishReason = "tool_calls";
|
|
13
|
+
totalCostUsd = 0;
|
|
14
|
+
responseId;
|
|
15
|
+
inputGuardrailResults = [];
|
|
16
|
+
outputGuardrailResults = [];
|
|
9
17
|
constructor(options) {
|
|
10
18
|
this.pendingToolCalls = options.pendingToolCalls;
|
|
19
|
+
this.finalOutput = undefined;
|
|
11
20
|
this.messages = options.messages;
|
|
12
21
|
this.currentAgent = options.currentAgent;
|
|
22
|
+
this.lastAgent = options.currentAgent;
|
|
13
23
|
this.context = options.context;
|
|
14
24
|
this.numTurns = options.numTurns;
|
|
15
|
-
this.usage = options.usage
|
|
25
|
+
this.usage = options.usage ?? {
|
|
26
|
+
promptTokens: 0,
|
|
27
|
+
completionTokens: 0,
|
|
28
|
+
totalTokens: 0,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Convert the result's messages into a format suitable for chaining as input to another run */
|
|
32
|
+
toInputList() {
|
|
33
|
+
return this.messages.filter((m) => m.role !== "system");
|
|
16
34
|
}
|
|
17
35
|
}
|
|
18
36
|
export class RunResult {
|
package/dist/core/result.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,oBAAoB;IACvB,WAAW,GAAG,IAAa,CAAC;IAC5B,gBAAgB,CAAoB;IACpC,QAAQ,CAAgB;IACxB,YAAY,CAAsB;IAClC,OAAO,CAAM;IACb,QAAQ,CAAS;IACjB,KAAK,
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,oBAAoB;IACvB,WAAW,GAAG,IAAa,CAAC;IAC5B,gBAAgB,CAAoB;IACpC,MAAM,GAAG,EAAE,CAAC;IACZ,WAAW,CAAkD;IAC7D,QAAQ,CAAgB;IACxB,YAAY,CAAsB;IAClC,SAAS,CAAsB;IAC/B,OAAO,CAAM;IACb,QAAQ,CAAS;IACjB,KAAK,CAAY;IACjB,YAAY,GAAiB,YAAY,CAAC;IAC1C,YAAY,GAAG,CAAC,CAAC;IACjB,UAAU,CAAU;IACpB,qBAAqB,GAAkC,EAAE,CAAC;IAC1D,sBAAsB,GAAkC,EAAE,CAAC;IAEpE,YAAY,OAOX;QACA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,WAAW,GAAG,SAA4D,CAAC;QAChF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI;YAC7B,YAAY,EAAE,CAAC;YACf,gBAAgB,EAAE,CAAC;YACnB,WAAW,EAAE,CAAC;SACd,CAAC;IACH,CAAC;IAED,gGAAgG;IAChG,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACzD,CAAC;CACD;AAgBD,MAAM,OAAO,SAAS;IACZ,WAAW,GAAG,KAAc,CAAC;IAC7B,MAAM,CAAS;IACf,WAAW,CAAkD;IAC7D,QAAQ,CAAgB;IACxB,KAAK,CAAY;IACjB,SAAS,CAAkB;IAC3B,YAAY,CAAgB;IAC5B,QAAQ,CAAS;IACjB,YAAY,CAAS;IACrB,UAAU,CAAU;IACpB,qBAAqB,CAAgC;IACrD,sBAAsB,CAAgC;IAE/D,YAAY,IAA+B;QAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAA8D,CAAC;QACvF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAClC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,qBAAqB,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC;IACjE,CAAC;IAED,gGAAgG;IAChG,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACzD,CAAC;CACD"}
|
package/dist/core/run.d.ts
CHANGED
|
@@ -81,11 +81,10 @@ export interface RunOptions<TContext, TOutput = undefined> {
|
|
|
81
81
|
debug?: boolean;
|
|
82
82
|
}
|
|
83
83
|
export declare function run<TContext, TOutput = undefined>(agent: Agent<TContext, TOutput>, input: string | ChatMessage[], options?: RunOptions<TContext, TOutput>): Promise<RunResult<TOutput> | InterruptedRunResult<TOutput>>;
|
|
84
|
-
export
|
|
85
|
-
}
|
|
84
|
+
export type StreamOptions<TContext, TOutput = undefined> = RunOptions<TContext, TOutput>;
|
|
86
85
|
export interface StreamedRunResult<TOutput = undefined> {
|
|
87
86
|
stream: AsyncGenerator<StreamEvent>;
|
|
88
|
-
result: Promise<RunResult<TOutput>>;
|
|
87
|
+
result: Promise<RunResult<TOutput> | InterruptedRunResult<TOutput>>;
|
|
89
88
|
/**
|
|
90
89
|
* Gracefully interrupt the run. The current model call or tool execution
|
|
91
90
|
* will finish, then the run returns a partial RunResult with what has been
|
package/dist/core/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/core/run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/core/run.ts"],"names":[],"mappings":"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"}
|