orchajs 0.3.0 → 0.4.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-agents-template.js","sourceRoot":"","sources":["../src/cli-agents-template.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAy4BxB,CAAC"}
package/dist/cli.js CHANGED
@@ -1,20 +1,47 @@
1
1
  #!/usr/bin/env node
2
- import { existsSync } from "node:fs";
3
- import { appendFile, mkdir, readFile, writeFile } from "node:fs/promises";
4
- import { dirname, resolve } from "node:path";
2
+ import { existsSync, watch } from "node:fs";
3
+ import { appendFile, mkdir, readFile, rm, writeFile, } from "node:fs/promises";
4
+ import { dirname, relative, resolve } from "node:path";
5
+ import { pathToFileURL } from "node:url";
6
+ import { build as bundleEntry } from "esbuild";
7
+ import { AGENTS_MD } from "./cli-agents-template.js";
5
8
  import { buildProject } from "./compiler/build-project.js";
9
+ import { orcha } from "./orcha.js";
10
+ import { getOrchaRuntimeContext } from "./runtime/context.js";
11
+ import { runTests } from "./testing.js";
6
12
  const command = process.argv[2];
13
+ const commandArguments = process.argv.slice(3);
14
+ const projectRoot = process.cwd();
7
15
  try {
8
- if (command === "init") {
9
- await initializeProject(process.cwd());
10
- }
11
- else if (command === "build") {
12
- const outputPath = await buildProject({ projectRoot: process.cwd() });
13
- console.log(`Built ${outputPath}`);
14
- }
15
- else {
16
- printUsage();
17
- process.exitCode = command ? 1 : 0;
16
+ switch (command) {
17
+ case "init":
18
+ assertNoArguments(commandArguments, "init");
19
+ await initializeProject(projectRoot);
20
+ break;
21
+ case "dev":
22
+ assertNoArguments(commandArguments, "dev");
23
+ await watchProject(projectRoot);
24
+ break;
25
+ case "run":
26
+ await runAgent(projectRoot, commandArguments);
27
+ break;
28
+ case "test":
29
+ await testAgents(projectRoot, commandArguments);
30
+ break;
31
+ case "build": {
32
+ assertNoArguments(commandArguments, "build");
33
+ const outputPath = await buildProject({ projectRoot });
34
+ console.log(`Built ${relative(projectRoot, outputPath)}`);
35
+ break;
36
+ }
37
+ case "help":
38
+ case "--help":
39
+ case "-h":
40
+ case undefined:
41
+ printUsage();
42
+ break;
43
+ default:
44
+ throw new Error(`Unknown command "${command}". Run "orcha --help".`);
18
45
  }
19
46
  }
20
47
  catch (error) {
@@ -29,7 +56,7 @@ async function initializeProject(projectRoot) {
29
56
  provider: "anthropic",
30
57
  model: "claude-sonnet-4-6",
31
58
  region: "provider_managed",
32
- maxTokens: 1024,
59
+ maxTokens: 10240,
33
60
  outputType: "text",
34
61
  }, null, 2)}\n`,
35
62
  ],
@@ -53,6 +80,7 @@ async function initializeProject(projectRoot) {
53
80
  "",
54
81
  ].join("\n"),
55
82
  ],
83
+ ["AGENTS.md", AGENTS_MD],
56
84
  ]);
57
85
  for (const [relativePath, contents] of files) {
58
86
  const path = resolve(projectRoot, relativePath);
@@ -65,7 +93,287 @@ async function initializeProject(projectRoot) {
65
93
  console.log(`Created ${relativePath}`);
66
94
  }
67
95
  await ensureGitignore(projectRoot);
68
- console.log('\nImport "./orcha/index.js" once from your application entrypoint, then run your existing development command.');
96
+ console.log('\nRun "orcha dev" to validate changes or "orcha run exampleAgent --input \\"Hello\\"" to execute the agent.');
97
+ }
98
+ async function watchProject(projectRoot) {
99
+ const registryDirectory = resolve(projectRoot, "orcha");
100
+ if (!existsSync(registryDirectory)) {
101
+ throw new Error('Missing "orcha/". Run "orcha init" first.');
102
+ }
103
+ let validating = false;
104
+ let validateAgain = false;
105
+ let timer;
106
+ const validate = async () => {
107
+ if (validating) {
108
+ validateAgain = true;
109
+ return;
110
+ }
111
+ validating = true;
112
+ try {
113
+ await loadProject(projectRoot);
114
+ const agents = Object.keys(orcha.getCompiledBundle().agents);
115
+ console.log(`[orcha] valid — ${agents.length} agent${agents.length === 1 ? "" : "s"}: ${agents.join(", ") || "none"}`);
116
+ }
117
+ catch (error) {
118
+ console.error(`[orcha] invalid — ${error instanceof Error ? error.message : String(error)}`);
119
+ }
120
+ finally {
121
+ validating = false;
122
+ if (validateAgain) {
123
+ validateAgain = false;
124
+ void validate();
125
+ }
126
+ }
127
+ };
128
+ await validate();
129
+ console.log("[orcha] watching orcha/**");
130
+ const watcher = watch(registryDirectory, { recursive: true }, () => {
131
+ clearTimeout(timer);
132
+ timer = setTimeout(() => void validate(), 75);
133
+ });
134
+ await new Promise((resolveStop) => {
135
+ const stop = () => {
136
+ clearTimeout(timer);
137
+ watcher.close();
138
+ resolveStop();
139
+ };
140
+ process.once("SIGINT", stop);
141
+ process.once("SIGTERM", stop);
142
+ });
143
+ }
144
+ async function runAgent(projectRoot, arguments_) {
145
+ const parsed = parseArguments(arguments_, new Set([
146
+ "--input",
147
+ "--input-file",
148
+ "--session",
149
+ "--tool-results",
150
+ ]));
151
+ const agentName = parsed.positionals[0];
152
+ if (!agentName || parsed.positionals.length > 1) {
153
+ throw new Error('Usage: orcha run <agent> (--input "…" | --input-file request.json) [--session <id>] [--json]');
154
+ }
155
+ await loadProject(projectRoot);
156
+ const agent = orcha[agentName];
157
+ if (!agent || !(agentName in orcha.getCompiledBundle().agents)) {
158
+ throw new Error(`Unknown agent "${agentName}".`);
159
+ }
160
+ const sessionId = parsed.values.get("--session");
161
+ const toolResultsPath = parsed.values.get("--tool-results");
162
+ if (toolResultsPath && (parsed.values.has("--input") ||
163
+ parsed.values.has("--input-file"))) {
164
+ throw new Error("--tool-results cannot be combined with --input or --input-file.");
165
+ }
166
+ let execution;
167
+ if (toolResultsPath) {
168
+ if (!sessionId) {
169
+ throw new Error("--tool-results requires --session.");
170
+ }
171
+ execution = agent.resume(sessionId, {
172
+ toolResults: await readToolResults(resolve(projectRoot, toolResultsPath)),
173
+ });
174
+ }
175
+ else {
176
+ const input = await readAgentInput(parsed, projectRoot);
177
+ execution = sessionId
178
+ ? agent.resume(sessionId, normalizeResumeInput(input))
179
+ : agent.run(input);
180
+ }
181
+ const result = await execution.result;
182
+ const evaluations = await execution.evaluations;
183
+ if (parsed.flags.has("--json")) {
184
+ console.log(JSON.stringify({ result, evaluations }));
185
+ }
186
+ else {
187
+ printRunResult(projectRoot, result, evaluations);
188
+ }
189
+ if (result.status === "failed") {
190
+ process.exitCode = 1;
191
+ }
192
+ }
193
+ async function testAgents(projectRoot, arguments_) {
194
+ const parsed = parseArguments(arguments_, new Set());
195
+ if (parsed.positionals.length > 1) {
196
+ throw new Error("Usage: orcha test [agent | agent/test] [--json]");
197
+ }
198
+ const selector = parsed.positionals[0];
199
+ const [agent, test, extra] = selector?.split("/") ?? [];
200
+ if (extra || (selector?.includes("/") && (!agent || !test))) {
201
+ throw new Error('Test selector must be an agent name or "agent/test".');
202
+ }
203
+ await loadProject(projectRoot);
204
+ const report = await runTests(orcha, {
205
+ ...(agent ? { agent } : {}),
206
+ ...(test ? { test } : {}),
207
+ });
208
+ if (parsed.flags.has("--json")) {
209
+ console.log(JSON.stringify(report));
210
+ }
211
+ else {
212
+ console.log(`Agent tests: ${report.passed}/${report.total} passed`);
213
+ for (const testCase of report.cases) {
214
+ const sessionLink = testCase.sessionPath
215
+ ? `${testCase.sessionPath}:1`
216
+ : testCase.sessionId;
217
+ console.log(`${testCase.status === "passed" ? "PASS" : "FAIL"} ${testCase.agent}/${testCase.name} (${testCase.durationMs}ms) ${sessionLink}`);
218
+ for (const assertion of testCase.assertions) {
219
+ if (!assertion.passed) {
220
+ console.error(` ${assertion.message}`);
221
+ }
222
+ }
223
+ }
224
+ }
225
+ if (report.status === "failed") {
226
+ process.exitCode = 1;
227
+ }
228
+ }
229
+ async function loadProject(projectRoot) {
230
+ const registryPath = resolve(projectRoot, "orcha/index.ts");
231
+ if (!existsSync(registryPath)) {
232
+ throw new Error('Missing "orcha/index.ts". Run "orcha init" first.');
233
+ }
234
+ const temporaryDirectory = resolve(projectRoot, ".orcha/.cli");
235
+ const bundlePath = resolve(temporaryDirectory, `registry-${process.pid}-${Date.now()}.mjs`);
236
+ await mkdir(temporaryDirectory, { recursive: true });
237
+ try {
238
+ const previousBundle = orcha.isInitialized()
239
+ ? orcha.getCompiledBundle()
240
+ : undefined;
241
+ await bundleEntry({
242
+ entryPoints: [registryPath],
243
+ outfile: bundlePath,
244
+ bundle: true,
245
+ format: "esm",
246
+ platform: "node",
247
+ target: "node20",
248
+ packages: "external",
249
+ logLevel: "silent",
250
+ });
251
+ const previousRoot = process.env.ORCHA_PROJECT_ROOT;
252
+ const previousCompiling = process.env.ORCHA_COMPILING;
253
+ process.env.ORCHA_PROJECT_ROOT = projectRoot;
254
+ process.env.ORCHA_COMPILING = "1";
255
+ try {
256
+ await import(`${pathToFileURL(bundlePath).href}?time=${Date.now()}`);
257
+ }
258
+ finally {
259
+ restoreEnvironment("ORCHA_PROJECT_ROOT", previousRoot);
260
+ restoreEnvironment("ORCHA_COMPILING", previousCompiling);
261
+ }
262
+ if (!orcha.isInitialized() ||
263
+ orcha.getCompiledBundle() === previousBundle) {
264
+ throw new Error('"orcha/index.ts" must call orcha.init({ providers, agents }).');
265
+ }
266
+ }
267
+ finally {
268
+ await rm(bundlePath, { force: true });
269
+ }
270
+ }
271
+ function parseArguments(arguments_, valueOptions) {
272
+ const parsed = {
273
+ positionals: [],
274
+ flags: new Set(),
275
+ values: new Map(),
276
+ };
277
+ for (let index = 0; index < arguments_.length; index += 1) {
278
+ const argument = arguments_[index];
279
+ if (!argument.startsWith("--")) {
280
+ parsed.positionals.push(argument);
281
+ continue;
282
+ }
283
+ if (argument === "--json") {
284
+ parsed.flags.add(argument);
285
+ continue;
286
+ }
287
+ if (!valueOptions.has(argument)) {
288
+ throw new Error(`Unknown option "${argument}".`);
289
+ }
290
+ const value = arguments_[index + 1];
291
+ if (!value || value.startsWith("--")) {
292
+ throw new Error(`Option "${argument}" requires a value.`);
293
+ }
294
+ parsed.values.set(argument, value);
295
+ index += 1;
296
+ }
297
+ return parsed;
298
+ }
299
+ async function readAgentInput(parsed, projectRoot) {
300
+ const inline = parsed.values.get("--input");
301
+ const inputFile = parsed.values.get("--input-file");
302
+ if (inline && inputFile) {
303
+ throw new Error("--input and --input-file cannot be combined.");
304
+ }
305
+ if (inline !== undefined) {
306
+ return inline;
307
+ }
308
+ if (inputFile) {
309
+ return parseInput(await readFile(resolve(projectRoot, inputFile), "utf8"));
310
+ }
311
+ if (!process.stdin.isTTY) {
312
+ const chunks = [];
313
+ for await (const chunk of process.stdin) {
314
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
315
+ }
316
+ return parseInput(Buffer.concat(chunks).toString("utf8"));
317
+ }
318
+ throw new Error('Provide --input, --input-file, or pipe input through stdin.');
319
+ }
320
+ function parseInput(value) {
321
+ const trimmed = value.trim();
322
+ if (!trimmed) {
323
+ throw new Error("Agent input cannot be empty.");
324
+ }
325
+ if (!trimmed.startsWith("{")) {
326
+ return trimmed;
327
+ }
328
+ const parsed = JSON.parse(trimmed);
329
+ if (!parsed ||
330
+ typeof parsed !== "object" ||
331
+ !("content" in parsed)) {
332
+ throw new Error('Structured input must be an object with "content".');
333
+ }
334
+ return parsed;
335
+ }
336
+ function normalizeResumeInput(input) {
337
+ return typeof input === "string"
338
+ ? input
339
+ : { content: input.content };
340
+ }
341
+ async function readToolResults(path) {
342
+ const parsed = JSON.parse(await readFile(path, "utf8"));
343
+ const results = Array.isArray(parsed)
344
+ ? parsed
345
+ : parsed &&
346
+ typeof parsed === "object" &&
347
+ "toolResults" in parsed &&
348
+ Array.isArray(parsed.toolResults)
349
+ ? parsed.toolResults
350
+ : undefined;
351
+ if (!results) {
352
+ throw new Error('Tool results must be an array or an object with "toolResults".');
353
+ }
354
+ return results;
355
+ }
356
+ function printRunResult(projectRoot, result, evaluations) {
357
+ console.log(JSON.stringify(result, null, 2));
358
+ if (evaluations.length > 0) {
359
+ console.log("Evaluations:");
360
+ console.log(JSON.stringify(evaluations, null, 2));
361
+ }
362
+ console.log(`Session log: ${relative(projectRoot, resolve(projectRoot, getOrchaRuntimeContext(orcha).configuration.storage?.directory ??
363
+ ".orcha/sessions", `${result.sessionId}.jsonl`))}:1`);
364
+ }
365
+ function restoreEnvironment(name, value) {
366
+ if (value === undefined) {
367
+ delete process.env[name];
368
+ }
369
+ else {
370
+ process.env[name] = value;
371
+ }
372
+ }
373
+ function assertNoArguments(arguments_, command) {
374
+ if (arguments_.length > 0) {
375
+ throw new Error(`Usage: orcha ${command}`);
376
+ }
69
377
  }
70
378
  async function ensureGitignore(projectRoot) {
71
379
  const path = resolve(projectRoot, ".gitignore");
@@ -80,6 +388,17 @@ async function ensureGitignore(projectRoot) {
80
388
  console.log("Updated .gitignore");
81
389
  }
82
390
  function printUsage() {
83
- console.log(["Usage: orcha <command>", "", "Commands:", " init", " build"].join("\n"));
391
+ console.log([
392
+ "Usage: orcha <command>",
393
+ "",
394
+ "Commands:",
395
+ " init Add Orcha to the current project",
396
+ " dev Validate and watch orcha/**",
397
+ " run <agent> [options] Execute or resume an agent",
398
+ " test [agent | agent/test] Run agent tests",
399
+ " build Build the production Orcha bundle",
400
+ "",
401
+ "Run and test support --json for machine-readable output.",
402
+ ].join("\n"));
84
403
  }
85
404
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/runtime/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,yBAAyB,EAG1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EAGZ,sBAAsB,EACtB,qBAAqB,EAIrB,SAAS,EAGT,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EAGX,cAAc,EAEd,WAAW,EACX,kBAAkB,EAElB,eAAe,EACf,YAAY,EACZ,aAAa,EAId,MAAM,aAAa,CAAC;AAyBrB,qBAAa,YAAa,YAAW,YAAY;;gBAiBnC,OAAO,EAAE;QACnB,QAAQ,EAAE,qBAAqB,CAAC;QAChC,aAAa,EAAE,oBAAoB,CAAC;QACpC,KAAK,EAAE,YAAY,CAAC;QACpB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,wBAAwB,EAAE,yBAAyB,CAAC;QACpD,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IASD,IAAI,WAAW,IAAI,sBAAsB,EAAE,CAI1C;IAED,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAsB1C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,SAAS;IA+ClD,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAMhD,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC;IAkBpB,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAwC5D,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,eAAe,CAAC;CA+gC5B"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/runtime/agent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,yBAAyB,EAG1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EAGZ,sBAAsB,EACtB,qBAAqB,EAIrB,SAAS,EAGT,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EAGX,cAAc,EAEd,WAAW,EACX,kBAAkB,EAElB,eAAe,EACf,YAAY,EACZ,aAAa,EAId,MAAM,aAAa,CAAC;AAyBrB,qBAAa,YAAa,YAAW,YAAY;;gBAiBnC,OAAO,EAAE;QACnB,QAAQ,EAAE,qBAAqB,CAAC;QAChC,aAAa,EAAE,oBAAoB,CAAC;QACpC,KAAK,EAAE,YAAY,CAAC;QACpB,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,wBAAwB,EAAE,yBAAyB,CAAC;QACpD,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IASD,IAAI,WAAW,IAAI,sBAAsB,EAAE,CAI1C;IAED,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAsB1C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,SAAS;IA+ClD,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAMhD,OAAO,CACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC;IAkBpB,IAAI,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;IAwC5D,MAAM,CACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,eAAe,CAAC;CAqhC5B"}
@@ -728,11 +728,15 @@ export class RuntimeAgent {
728
728
  return "toolResults must resolve every pending callId exactly once.";
729
729
  }
730
730
  for (const result of results) {
731
+ if (result.isError !== undefined &&
732
+ typeof result.isError !== "boolean") {
733
+ return "toolResults[].isError must be a boolean when provided.";
734
+ }
731
735
  const call = calls.find((candidate) => candidate.callId === result.callId);
732
736
  const schema = call
733
737
  ? (this.#manifest.actions ?? {})[call.name]?.outputSchema
734
738
  : undefined;
735
- if (schema) {
739
+ if (schema && result.isError !== true) {
736
740
  try {
737
741
  validateStructuredValue(result.output, schema);
738
742
  }
@@ -878,12 +882,15 @@ function parseToolResults(value) {
878
882
  for (const item of value) {
879
883
  if (!isRecord(item) ||
880
884
  typeof item.callId !== "string" ||
881
- !("output" in item)) {
885
+ !("output" in item) ||
886
+ (item.isError !== undefined &&
887
+ typeof item.isError !== "boolean")) {
882
888
  return undefined;
883
889
  }
884
890
  results.push({
885
891
  callId: item.callId,
886
892
  output: item.output,
893
+ ...(item.isError === true ? { isError: true } : {}),
887
894
  });
888
895
  }
889
896
  return results;
@@ -892,6 +899,7 @@ function toProviderToolResult(result) {
892
899
  return {
893
900
  callId: result.callId,
894
901
  output: result.output ?? null,
902
+ ...(result.isError === true ? { isError: true } : {}),
895
903
  };
896
904
  }
897
905
  function toClientToolCall(call) {