@usestratus/sdk 1.3.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.
Files changed (75) hide show
  1. package/README.md +69 -34
  2. package/dist/azure/create-model.d.ts +16 -0
  3. package/dist/azure/create-model.d.ts.map +1 -0
  4. package/dist/azure/create-model.js +45 -0
  5. package/dist/azure/create-model.js.map +1 -0
  6. package/dist/azure/endpoint.d.ts +5 -0
  7. package/dist/azure/endpoint.d.ts.map +1 -1
  8. package/dist/azure/endpoint.js +22 -0
  9. package/dist/azure/endpoint.js.map +1 -1
  10. package/dist/azure/index.d.ts +3 -1
  11. package/dist/azure/index.d.ts.map +1 -1
  12. package/dist/azure/index.js +1 -0
  13. package/dist/azure/index.js.map +1 -1
  14. package/dist/azure/responses-model.d.ts +74 -0
  15. package/dist/azure/responses-model.d.ts.map +1 -1
  16. package/dist/azure/responses-model.js +259 -6
  17. package/dist/azure/responses-model.js.map +1 -1
  18. package/dist/core/agent.d.ts.map +1 -1
  19. package/dist/core/agent.js +2 -0
  20. package/dist/core/agent.js.map +1 -1
  21. package/dist/core/debug.d.ts +5 -0
  22. package/dist/core/debug.d.ts.map +1 -0
  23. package/dist/core/debug.js +36 -0
  24. package/dist/core/debug.js.map +1 -0
  25. package/dist/core/hooks.d.ts +24 -21
  26. package/dist/core/hooks.d.ts.map +1 -1
  27. package/dist/core/index.d.ts +8 -3
  28. package/dist/core/index.d.ts.map +1 -1
  29. package/dist/core/index.js +4 -1
  30. package/dist/core/index.js.map +1 -1
  31. package/dist/core/mcp-client.d.ts +37 -27
  32. package/dist/core/mcp-client.d.ts.map +1 -1
  33. package/dist/core/mcp-client.js +190 -79
  34. package/dist/core/mcp-client.js.map +1 -1
  35. package/dist/core/model.d.ts +2 -0
  36. package/dist/core/model.d.ts.map +1 -1
  37. package/dist/core/result.d.ts +11 -1
  38. package/dist/core/result.d.ts.map +1 -1
  39. package/dist/core/result.js +19 -1
  40. package/dist/core/result.js.map +1 -1
  41. package/dist/core/run.d.ts +4 -3
  42. package/dist/core/run.d.ts.map +1 -1
  43. package/dist/core/run.js +21 -0
  44. package/dist/core/run.js.map +1 -1
  45. package/dist/core/sandbox.d.ts +46 -0
  46. package/dist/core/sandbox.d.ts.map +1 -0
  47. package/dist/core/sandbox.js +143 -0
  48. package/dist/core/sandbox.js.map +1 -0
  49. package/dist/core/session.d.ts +9 -3
  50. package/dist/core/session.d.ts.map +1 -1
  51. package/dist/core/session.js +15 -2
  52. package/dist/core/session.js.map +1 -1
  53. package/dist/core/tracing.d.ts +23 -0
  54. package/dist/core/tracing.d.ts.map +1 -1
  55. package/dist/core/tracing.js +129 -3
  56. package/dist/core/tracing.js.map +1 -1
  57. package/dist/core/types.d.ts +4 -0
  58. package/dist/core/types.d.ts.map +1 -1
  59. package/dist/core/validate-agent.d.ts +14 -0
  60. package/dist/core/validate-agent.d.ts.map +1 -0
  61. package/dist/core/validate-agent.js +33 -0
  62. package/dist/core/validate-agent.js.map +1 -0
  63. package/dist/testing/index.d.ts +4 -0
  64. package/dist/testing/index.d.ts.map +1 -0
  65. package/dist/testing/index.js +3 -0
  66. package/dist/testing/index.js.map +1 -0
  67. package/dist/testing/mock-model.d.ts +12 -0
  68. package/dist/testing/mock-model.d.ts.map +1 -0
  69. package/dist/testing/mock-model.js +40 -0
  70. package/dist/testing/mock-model.js.map +1 -0
  71. package/dist/testing/response-builders.d.ts +15 -0
  72. package/dist/testing/response-builders.d.ts.map +1 -0
  73. package/dist/testing/response-builders.js +22 -0
  74. package/dist/testing/response-builders.js.map +1 -0
  75. package/package.json +52 -34
@@ -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
- * Local MCP client that connects to MCP servers via stdio transport.
4
- * Discovers tools and wraps them as FunctionTool instances for use with Stratus agents.
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.process) {
26
+ if (this.connected) {
28
27
  throw new Error("McpClient is already connected");
29
28
  }
30
- this.process = spawn(this.config.command, this.config.args ?? [], {
31
- stdio: ["pipe", "pipe", "pipe"],
32
- env: { ...process.env, ...this.config.env },
33
- cwd: this.config.cwd,
34
- });
35
- this.process.stdout?.on("data", (data) => {
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.pendingRequests.clear();
51
- this.process = null;
52
- });
53
- await this.sendRequest("initialize", {
54
- protocolVersion: "2024-11-05",
55
- capabilities: {},
56
- clientInfo: { name: "stratus-sdk", version: "1.0.0" },
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
- /** Discover tools exposed by the MCP server. */
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
- return result.tools ?? [];
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
- return (result.content ?? [])
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
- type: "function",
87
- name: mcpTool.name,
88
- description: mcpTool.description ?? "",
89
- parameters: z.record(z.string(), z.unknown()),
90
- _rawJsonSchema: mcpTool.inputSchema,
91
- execute: async (_context, params) => {
92
- return this.callTool(mcpTool.name, params);
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
- // --- Private helpers ---
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.process) {
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 rawLength = match[1];
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 JSON parse errors in the buffer
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
- this.pendingRequests.set(id, { resolve, reject });
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":"AAAA,OAAO,EAAqB,KAAK,EAAE,MAAM,oBAAoB,CAAC;AA8C9D,MAAM,UAAU,eAAe,CAC9B,aAAoC,EACpC,YAAqC;IAErC,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC;QACnB,GAAG,YAAY;QACf,aAAa,EAAE,UAAU,MAAM,aAAa,EAAE,EAAE;KAChD,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,OAAO,SAAS;IACb,OAAO,GAAwB,IAAI,CAAC;IACpC,MAAM,GAAG,EAAE,CAAC;IACZ,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;IACpD,MAAM,GAAG,CAAC,CAAC;IACX,WAAW,CAAkC;IACpC,MAAM,CAAkB;IACxB,SAAS,CAA8B;IAChD,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,MAAuB;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACnD,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAChC,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YACrE,CAAC;YACD,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;gBACpC,eAAe,EAAE,YAAY;gBAC7B,YAAY,EAAE,EAAE;gBAChB,UAAU,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;aACrD,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA+B;QAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;YACzE,OAAO,IAAI,CAAC,WAAW,CAAC;QACzB,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,EAAE,CAAC,CAEvD,CAAC;QACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAA6B;QACzD,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YACpD,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,IAAI;SACf,CAAC,CAGD,CAAC;QAEF,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aACjF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,aAAa,OAAO,UAAU,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,KAAK,CAAC,QAAQ;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACxC,MAAM,EAAE,CAAC,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QAElC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAClD,OAAO;gBACN,IAAI,EAAE,UAAmB;gBACzB,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,EAAE;gBACtC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7C,cAAc,EAAE,OAAO,CAAC,WAAW;gBACnC,OAAO,EAAE,KAAK,EAAE,QAAkB,EAAE,MAA+B,EAAE,EAAE;oBACtE,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBAC3C,CAAC;aACD,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACf,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/D,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QAC1B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,YAAY;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,EAAE;YACjE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;YAC/B,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YAC3C,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAChD,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,aAAa,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAChC,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC/D,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YACb,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACjC,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;YAC7D,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;gBAC/D,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,GAAG,CAAC,CAAC;YACb,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACxB,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;YACpC,eAAe,EAAE,YAAY;YAC7B,YAAY,EAAE,EAAE;YAChB,UAAU,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;SACrD,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,gBAAgB,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEO,eAAe;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACtE,CAAC;IACF,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAA0B;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,CAClB,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3E,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAwB,EAAE,CAAC;QACzC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,MAAM,MAAM,CAAC,IAAI,CAAC;gBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,QAAQ,CAAC;IACjB,CAAC;IAEO,UAAU,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3E,CAAC;IAEO,WAAW,CAAC,IAAY;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QACtC,IAAI,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACb,CAAC;IAEO,aAAa;QACpB,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,SAAS,KAAK,CAAC,CAAC;gBAAE,MAAM;YAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;YAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACvD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;gBAC/C,SAAS;YACV,CAAC;YACD,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,aAAa;gBAAE,MAAM;YAE1D,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;YACrE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC,CAAC;YAE3D,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAI9B,CAAC;gBACF,MAAM,OAAO,GAAG,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5F,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;oBAC3B,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC5B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,EAAY,CAAC,CAAC;oBAClD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;wBACnB,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;oBACjE,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;oBACjC,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,oCAAoC;YACrC,CAAC;QACF,CAAC;IACF,CAAC;IAEO,WAAW,CAAC,MAAc,EAAE,MAAe;QAClD,IAAI,IAAI,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC,CAAC;gBACvE,OAAO;YACR,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC7B,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAChC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,MAAM,EAAE,CAAC,CAAC,CAAC;YACvD,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,CAAC;YAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,mBAAmB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;YAC3E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,MAAe;QAC7D,IAAI,IAAI,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;YAC1C,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO;QACR,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK;YAAE,OAAO;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,mBAAmB,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;QAC3E,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,eAAe,CAC5B,MAAc,EACd,MAAe,EACf,cAAuB;QAEvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACtD,MAAM,OAAO,GACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,UAAU;YACxC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YAC7B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE;YAC7C,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACR,GAAG,OAAO;gBACV,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,qCAAqC;aAC7C;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACpB,OAAO,EAAE,KAAK;gBACd,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnC,MAAM;gBACN,MAAM;aACN,CAAC;YACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC;SACnE,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,CAAC,cAAc;YAAE,OAAO,SAAS,CAAC;QACtC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAGnD,CAAC;QACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,QAAkB;QACjD,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/D,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC3C,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,KAAK;iBAChB,KAAK,CAAC,IAAI,CAAC;iBACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;iBAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;iBAChD,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ;gBAAE,SAAS;YACzC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC5E,CAAC;CACD"}
@@ -5,6 +5,8 @@ export interface ModelRequest {
5
5
  modelSettings?: ModelSettings;
6
6
  responseFormat?: ResponseFormat;
7
7
  previousResponseId?: string;
8
+ /** Raw input items appended to the Responses API input array (compaction items, MCP approval responses, etc.). */
9
+ rawInputItems?: Record<string, unknown>[];
8
10
  }
9
11
  export interface UsageInfo {
10
12
  promptTokens: number;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,cAAc,EACd,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,CAAC,cAAc,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAE/E,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACxC;AAED,MAAM,MAAM,WAAW,GACpB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC9C;IACA,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;CACjF,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACrB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1F,mBAAmB,CAClB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,aAAa,CAAC,WAAW,CAAC,CAAC;CAC9B"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,cAAc,EACd,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,YAAY;IAC5B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,CAAC,cAAc,GAAG,oBAAoB,CAAC,EAAE,CAAC;IAClD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kHAAkH;IAClH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,SAAS;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,gBAAgB,CAAC;AAE/E,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACxC;AAED,MAAM,MAAM,WAAW,GACpB;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GACnE;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAClE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC9C;IACA,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,CAAC;CACjF,GACD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,aAAa,CAAA;CAAE,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,KAAK;IACrB,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1F,mBAAmB,CAClB,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC3B,aAAa,CAAC,WAAW,CAAC,CAAC;CAC9B"}
@@ -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 | undefined;
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,GAAG,SAAS,CAAC;gBAE1B,OAAO,EAAE;QACpB,gBAAgB,EAAE,eAAe,EAAE,CAAC;QACpC,QAAQ,EAAE,WAAW,EAAE,CAAC;QACxB,YAAY,EAAE,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,EAAE,GAAG,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,SAAS,CAAC;KAClB;CAQD;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,GAAG,SAAS;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,EAAE,SAAS,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7C,sBAAsB,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAC9C;AAED,qBAAa,SAAS,CAAC,OAAO,GAAG,SAAS;IACzC,QAAQ,CAAC,WAAW,EAAG,KAAK,CAAU;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,OAAO,SAAS,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACtE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,qBAAqB,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC9D,QAAQ,CAAC,sBAAsB,EAAE,SAAS,kBAAkB,EAAE,CAAC;gBAEnD,IAAI,EAAE,gBAAgB,CAAC,OAAO,CAAC;IAc3C,gGAAgG;IAChG,WAAW,IAAI,WAAW,EAAE;CAG5B"}
1
+ {"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../src/core/result.ts"],"names":[],"mappings":"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"}
@@ -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 {
@@ -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,CAAwB;IAEtC,YAAY,OAOX;QACA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,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,CAAC;IAC5B,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"}
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"}
@@ -77,13 +77,14 @@ export interface RunOptions<TContext, TOutput = undefined> {
77
77
  * Takes precedence over per-tool `needsApproval` and `beforeToolCall` hooks.
78
78
  */
79
79
  canUseTool?: CanUseTool<TContext>;
80
+ /** Enable debug logging to stderr. Logs model requests/responses, tool calls, and handoffs. */
81
+ debug?: boolean;
80
82
  }
81
83
  export declare function run<TContext, TOutput = undefined>(agent: Agent<TContext, TOutput>, input: string | ChatMessage[], options?: RunOptions<TContext, TOutput>): Promise<RunResult<TOutput> | InterruptedRunResult<TOutput>>;
82
- export interface StreamOptions<TContext, TOutput = undefined> extends RunOptions<TContext, TOutput> {
83
- }
84
+ export type StreamOptions<TContext, TOutput = undefined> = RunOptions<TContext, TOutput>;
84
85
  export interface StreamedRunResult<TOutput = undefined> {
85
86
  stream: AsyncGenerator<StreamEvent>;
86
- result: Promise<RunResult<TOutput>>;
87
+ result: Promise<RunResult<TOutput> | InterruptedRunResult<TOutput>>;
87
88
  /**
88
89
  * Gracefully interrupt the run. The current model call or tool execution
89
90
  * will finish, then the run returns a partial RunResult with what has been
@@ -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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"}
package/dist/core/run.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { RunContext } from "./context";
2
+ import { createDebugLogger } from "./debug";
2
3
  import { MaxBudgetExceededError, MaxTurnsExceededError, OutputParseError, RunAbortedError, StratusError, ToolTimeoutError, } from "./errors";
3
4
  import { runInputGuardrails, runOutputGuardrails, runToolInputGuardrails, runToolOutputGuardrails, } from "./guardrails";
4
5
  import { handoffToDefinition } from "./handoff";
@@ -209,6 +210,7 @@ export async function run(agent, input, options) {
209
210
  const dynamicSubagents = options?.dynamicSubagents;
210
211
  const allowedTools = options?.allowedTools;
211
212
  const canUseToolFn = options?.canUseTool;
213
+ const debugLog = createDebugLogger(options?.debug);
212
214
  // Fire beforeRun hook on the entry agent
213
215
  const inputText = typeof input === "string" ? input : extractUserText(input);
214
216
  if (agent.hooks.beforeRun) {
@@ -271,6 +273,11 @@ export async function run(agent, input, options) {
271
273
  if (runHooks?.onLlmStart) {
272
274
  await runHooks.onLlmStart({ agent: currentAgent, request, context: ctx.context });
273
275
  }
276
+ debugLog.log("model", `request to ${currentAgent.name}`, {
277
+ messages: messages.length,
278
+ tools: toolDefs.length,
279
+ turn,
280
+ });
274
281
  let response;
275
282
  if (trace) {
276
283
  const span = trace.startSpan(`model_call:${currentAgent.name}`, "model_call", {
@@ -292,6 +299,11 @@ export async function run(agent, input, options) {
292
299
  else {
293
300
  response = await model.getResponse(request, { signal });
294
301
  }
302
+ debugLog.log("model", `response from ${currentAgent.name}`, {
303
+ content: response.content?.slice(0, 200),
304
+ toolCalls: response.toolCalls.map((tc) => tc.function.name),
305
+ usage: response.usage,
306
+ });
295
307
  // Fire onLlmEnd hooks
296
308
  const llmEndInfo = { content: response.content, toolCallCount: response.toolCalls.length };
297
309
  if (currentAgent.hooks.onLlmEnd) {
@@ -354,8 +366,10 @@ export async function run(agent, input, options) {
354
366
  usage: ctx.usage,
355
367
  });
356
368
  }
369
+ debugLog.log("tool", "executing", response.toolCalls.map((tc) => tc.function.name));
357
370
  const { toolMessages, handoffAgent } = await executeToolCallsWithHandoffs(currentAgent, ctx, response.toolCalls, trace, signal, toolErrorFmt, runHooks, toolInputGuardrails, toolOutputGuardrails, undefined, dynamicSubagents, canUseToolFn);
358
371
  messages.push(...toolMessages);
372
+ debugLog.log("tool", "results", toolMessages.map((m) => String(m.content).slice(0, 100)));
359
373
  // Check toolUseBehavior — should we stop instead of calling the LLM again?
360
374
  if (await shouldStopAfterToolCalls(currentAgent, response.toolCalls, toolMessages)) {
361
375
  const toolOutput = toolMessages.map((m) => m.content).join("\n");
@@ -372,6 +386,7 @@ export async function run(agent, input, options) {
372
386
  });
373
387
  }
374
388
  if (handoffAgent) {
389
+ debugLog.log("handoff", `${currentAgent.name} → ${handoffAgent.name}`);
375
390
  let allowHandoff = true;
376
391
  // Fire beforeHandoff hook on current agent
377
392
  if (currentAgent.hooks.beforeHandoff) {
@@ -499,6 +514,7 @@ async function* streamInternal(agent, input, options, resolveResult, rejectResul
499
514
  const dynamicSubagents = options?.dynamicSubagents;
500
515
  const allowedTools = options?.allowedTools;
501
516
  const canUseToolFn = options?.canUseTool;
517
+ const debugLog = createDebugLogger(options?.debug);
502
518
  // Fire beforeRun hook on the entry agent
503
519
  const inputText = typeof input === "string" ? input : extractUserText(input);
504
520
  if (agent.hooks.beforeRun) {
@@ -582,6 +598,11 @@ async function* streamInternal(agent, input, options, resolveResult, rejectResul
582
598
  if (runHooks?.onLlmStart) {
583
599
  await runHooks.onLlmStart({ agent: currentAgent, request, context: ctx.context });
584
600
  }
601
+ debugLog.log("model", `stream request to ${currentAgent.name}`, {
602
+ messages: messages.length,
603
+ tools: toolDefs.length,
604
+ turn,
605
+ });
585
606
  let finalResponse;
586
607
  let gotDone = false;
587
608
  for await (const event of model.getStreamedResponse(request, { signal })) {