poe-code 3.0.130 → 3.0.132

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 (49) hide show
  1. package/README.md +15 -1
  2. package/dist/cli/commands/spawn.js +175 -130
  3. package/dist/cli/commands/spawn.js.map +1 -1
  4. package/dist/cli/poe-agent-main.js +10 -9
  5. package/dist/cli/poe-agent-main.js.map +1 -1
  6. package/dist/cli/program.js +0 -2
  7. package/dist/cli/program.js.map +1 -1
  8. package/dist/codegen/agent-spawn-py-types.d.ts +19 -0
  9. package/dist/codegen/agent-spawn-py-types.js +330 -0
  10. package/dist/codegen/agent-spawn-py-types.js.map +1 -0
  11. package/dist/index.js +10217 -9564
  12. package/dist/index.js.map +4 -4
  13. package/dist/providers/claude-code.js +67 -33
  14. package/dist/providers/claude-code.js.map +4 -4
  15. package/dist/providers/codex.js +67 -33
  16. package/dist/providers/codex.js.map +4 -4
  17. package/dist/providers/create-provider.js +3 -3
  18. package/dist/providers/create-provider.js.map +1 -1
  19. package/dist/providers/kimi.js +76 -33
  20. package/dist/providers/kimi.js.map +4 -4
  21. package/dist/providers/opencode.js +67 -33
  22. package/dist/providers/opencode.js.map +4 -4
  23. package/dist/providers/poe-agent.js +13 -10
  24. package/dist/providers/poe-agent.js.map +3 -3
  25. package/dist/providers/spawn-options.d.ts +2 -0
  26. package/dist/sdk/experiment.js +23 -10
  27. package/dist/sdk/experiment.js.map +1 -1
  28. package/dist/sdk/launch.js +17 -1
  29. package/dist/sdk/launch.js.map +1 -1
  30. package/dist/sdk/pipeline.js +25 -11
  31. package/dist/sdk/pipeline.js.map +1 -1
  32. package/dist/sdk/ralph.js +23 -10
  33. package/dist/sdk/ralph.js.map +1 -1
  34. package/dist/sdk/spawn-core.d.ts +1 -1
  35. package/dist/sdk/spawn-core.js +54 -57
  36. package/dist/sdk/spawn-core.js.map +1 -1
  37. package/dist/sdk/spawn.js +95 -12
  38. package/dist/sdk/spawn.js.map +1 -1
  39. package/dist/sdk/types.d.ts +9 -1
  40. package/dist/workspace/resolve-spawn-workspace.d.ts +15 -0
  41. package/dist/workspace/resolve-spawn-workspace.js +28 -0
  42. package/dist/workspace/resolve-spawn-workspace.js.map +1 -0
  43. package/package.json +21 -3
  44. package/dist/cli/commands/research.d.ts +0 -13
  45. package/dist/cli/commands/research.js +0 -158
  46. package/dist/cli/commands/research.js.map +0 -1
  47. package/dist/sdk/research.d.ts +0 -62
  48. package/dist/sdk/research.js +0 -343
  49. package/dist/sdk/research.js.map +0 -1
@@ -5,6 +5,8 @@ export interface SpawnCommandOptions {
5
5
  model?: string;
6
6
  mode?: SpawnMode;
7
7
  mcpServers?: McpSpawnConfig;
8
+ logDir?: string;
9
+ activityTimeoutMs?: number;
8
10
  cwd?: string;
9
11
  useStdin?: boolean;
10
12
  interactive?: boolean;
@@ -1,7 +1,7 @@
1
1
  import path from "node:path";
2
2
  import * as fsPromises from "node:fs/promises";
3
3
  import { ExperimentJournal, runExperimentLoop as runWorkspaceExperimentLoop } from "@poe-code/experiment-loop";
4
- import { renderAcpStream } from "@poe-code/agent-spawn";
4
+ import { renderAcpStream, isActivityTimeoutError } from "@poe-code/agent-spawn";
5
5
  import { spawn as sdkSpawn } from "./spawn.js";
6
6
  function createDefaultFs() {
7
7
  return {
@@ -34,19 +34,32 @@ function resolveAbsoluteDocPath(docPath, cwd, homeDir) {
34
34
  function resolveJournalPath(docPath) {
35
35
  return path.join(path.dirname(docPath), `${path.basename(docPath, path.extname(docPath))}.journal.jsonl`);
36
36
  }
37
+ const AUTONOMOUS_ACTIVITY_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
38
+ const MAX_TIMEOUT_RETRIES = 3;
37
39
  export async function runExperiment(options) {
38
40
  return runWorkspaceExperimentLoop({
39
41
  ...options,
40
42
  runAgent: async (input) => {
41
- const { events, result } = sdkSpawn(input.agent, {
42
- prompt: input.prompt,
43
- cwd: input.cwd,
44
- model: input.model,
45
- mode: "yolo",
46
- ...(input.signal ? { signal: input.signal } : {})
47
- });
48
- await renderAcpStream(events);
49
- return await result;
43
+ for (let attempt = 1; attempt <= MAX_TIMEOUT_RETRIES; attempt++) {
44
+ try {
45
+ const { events, result } = sdkSpawn(input.agent, {
46
+ prompt: input.prompt,
47
+ cwd: input.cwd,
48
+ model: input.model,
49
+ mode: "yolo",
50
+ activityTimeoutMs: AUTONOMOUS_ACTIVITY_TIMEOUT_MS,
51
+ ...(input.signal ? { signal: input.signal } : {})
52
+ });
53
+ await renderAcpStream(events);
54
+ return await result;
55
+ }
56
+ catch (error) {
57
+ if (!isActivityTimeoutError(error) || attempt === MAX_TIMEOUT_RETRIES) {
58
+ throw error;
59
+ }
60
+ }
61
+ }
62
+ throw new Error("Unreachable");
50
63
  }
51
64
  });
52
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/sdk/experiment.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"experiment.js","sourceRoot":"","sources":["../../src/sdk/experiment.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import path from "node:path";
2
2
  import { spawnSync } from "node:child_process";
3
+ import { parseLocator } from "@poe-code/workspace-resolver";
3
4
  import { followManagedLogs, listManagedProcesses, readManagedLogs, removeManagedProcess, restartManagedProcess, runManagedProcess, startManagedProcess, stopManagedProcess } from "@poe-code/process-launcher";
4
5
  import { createHostRunner, detectEngine } from "@poe-code/process-runner";
5
6
  import { getCurrentExecutionContext } from "../utils/execution-context.js";
@@ -9,9 +10,10 @@ export async function startLaunch(options) {
9
10
  const variables = options.variables ?? process.env;
10
11
  const executionContext = getCurrentExecutionContext(import.meta.url);
11
12
  const runner = createHostRunner({ detached: true });
13
+ const spec = normalizeLaunchSpec(options.spec, cwd);
12
14
  return await startManagedProcess({
13
15
  baseDir: resolveLaunchBaseDir(homeDir),
14
- spec: options.spec,
16
+ spec,
15
17
  spawnDaemon: async (id) => {
16
18
  const handle = runner.exec({
17
19
  args: [...executionContext.command.args, "launch", "__run", id],
@@ -114,6 +116,20 @@ function resolveHomeDir(homeDir) {
114
116
  }
115
117
  return process.env.HOME ?? process.cwd();
116
118
  }
119
+ function normalizeLaunchSpec(spec, baseDir) {
120
+ if (!spec.cwd) {
121
+ return spec;
122
+ }
123
+ const locator = parseLocator(spec.cwd);
124
+ if (locator.scheme !== "local") {
125
+ return spec;
126
+ }
127
+ const cwd = path.isAbsolute(locator.path) ? locator.path : path.resolve(baseDir, locator.path);
128
+ return {
129
+ ...spec,
130
+ cwd
131
+ };
132
+ }
117
133
  function sendSignalToManagedProcess(pid, signal) {
118
134
  if (process.platform === "win32") {
119
135
  process.kill(pid, signal);
@@ -1 +1 @@
1
- {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/sdk/launch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/sdk/launch.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,35 @@
1
1
  import { runPipeline as runWorkspacePipeline } from "@poe-code/pipeline";
2
- import { renderAcpStream } from "@poe-code/agent-spawn";
2
+ import { renderAcpStream, isActivityTimeoutError } from "@poe-code/agent-spawn";
3
3
  import { spawn as sdkSpawn } from "./spawn.js";
4
4
  export { resolvePlanDirectory } from "@poe-code/pipeline";
5
+ const AUTONOMOUS_ACTIVITY_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
6
+ const MAX_TIMEOUT_RETRIES = 3;
5
7
  export async function runPipeline(options) {
6
8
  return runWorkspacePipeline({
7
9
  ...options,
8
10
  runAgent: async (input) => {
9
- const { events, result } = sdkSpawn(input.agent, {
10
- prompt: input.prompt,
11
- cwd: input.cwd,
12
- logDir: input.logDir,
13
- model: input.model,
14
- mode: input.mode,
15
- ...(input.mcpServers ? { mcpServers: input.mcpServers } : {})
16
- });
17
- await renderAcpStream(events);
18
- return await result;
11
+ for (let attempt = 1; attempt <= MAX_TIMEOUT_RETRIES; attempt++) {
12
+ try {
13
+ const { events, result } = sdkSpawn(input.agent, {
14
+ prompt: input.prompt,
15
+ cwd: input.cwd,
16
+ logDir: input.logDir,
17
+ model: input.model,
18
+ mode: input.mode,
19
+ activityTimeoutMs: AUTONOMOUS_ACTIVITY_TIMEOUT_MS,
20
+ ...(input.mcpServers ? { mcpServers: input.mcpServers } : {}),
21
+ ...(input.signal ? { signal: input.signal } : {})
22
+ });
23
+ await renderAcpStream(events);
24
+ return await result;
25
+ }
26
+ catch (error) {
27
+ if (!isActivityTimeoutError(error) || attempt === MAX_TIMEOUT_RETRIES) {
28
+ throw error;
29
+ }
30
+ }
31
+ }
32
+ throw new Error("Unreachable");
19
33
  }
20
34
  });
21
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/sdk/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,oBAAoB,EAGpC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkB/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,OAAO,oBAAoB,CAAC;QAC1B,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,EAAE,KAAiE,EAAE,EAAE;YACpF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC,CAAC;YACH,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,MAAM,MAAM,CAAC;QACtB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/sdk/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,IAAI,oBAAoB,EAGpC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAkB/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,8BAA8B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AACpE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAA2B;IAE3B,OAAO,oBAAoB,CAAC;QAC1B,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,EAAE,KAAiE,EAAE,EAAE;YACpF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,mBAAmB,EAAE,OAAO,EAAE,EAAE,CAAC;gBAChE,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;wBAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,iBAAiB,EAAE,8BAA8B;wBACjD,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC7D,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAClD,CAAC,CAAC;oBACH,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC9B,OAAO,MAAM,MAAM,CAAC;gBACtB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,mBAAmB,EAAE,CAAC;wBACtE,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
package/dist/sdk/ralph.js CHANGED
@@ -1,19 +1,32 @@
1
1
  import { runRalph as runWorkspaceRalph } from "@poe-code/ralph";
2
- import { renderAcpStream } from "@poe-code/agent-spawn";
2
+ import { renderAcpStream, isActivityTimeoutError } from "@poe-code/agent-spawn";
3
3
  import { spawn as sdkSpawn } from "./spawn.js";
4
+ const AUTONOMOUS_ACTIVITY_TIMEOUT_MS = 10 * 60 * 1000; // 10 minutes
5
+ const MAX_TIMEOUT_RETRIES = 3;
4
6
  export async function runRalph(options) {
5
7
  return runWorkspaceRalph({
6
8
  ...options,
7
9
  runAgent: async (input) => {
8
- const { events, result } = sdkSpawn(input.agent, {
9
- prompt: input.prompt,
10
- cwd: input.cwd,
11
- model: input.model,
12
- mode: "yolo",
13
- ...(input.signal ? { signal: input.signal } : {})
14
- });
15
- await renderAcpStream(events);
16
- return result;
10
+ for (let attempt = 1; attempt <= MAX_TIMEOUT_RETRIES; attempt++) {
11
+ try {
12
+ const { events, result } = sdkSpawn(input.agent, {
13
+ prompt: input.prompt,
14
+ cwd: input.cwd,
15
+ model: input.model,
16
+ mode: "yolo",
17
+ activityTimeoutMs: AUTONOMOUS_ACTIVITY_TIMEOUT_MS,
18
+ ...(input.signal ? { signal: input.signal } : {})
19
+ });
20
+ await renderAcpStream(events);
21
+ return result;
22
+ }
23
+ catch (error) {
24
+ if (!isActivityTimeoutError(error) || attempt === MAX_TIMEOUT_RETRIES) {
25
+ throw error;
26
+ }
27
+ }
28
+ }
29
+ throw new Error("Unreachable");
17
30
  }
18
31
  });
19
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ralph.js","sourceRoot":"","sources":["../../src/sdk/ralph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAG9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAU/C,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAwB;IAExB,OAAO,iBAAiB,CAAC;QACvB,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,EACb,KAA8D,EAC9D,EAAE;YACF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;gBAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,IAAI,EAAE,MAAM;gBACZ,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAClD,CAAC,CAAC;YACH,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"ralph.js","sourceRoot":"","sources":["../../src/sdk/ralph.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,IAAI,iBAAiB,EAG9B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAU/C,MAAM,8BAA8B,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;AACpE,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAwB;IAExB,OAAO,iBAAiB,CAAC;QACvB,GAAG,OAAO;QACV,QAAQ,EAAE,KAAK,EACb,KAA8D,EAC9D,EAAE;YACF,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,mBAAmB,EAAE,OAAO,EAAE,EAAE,CAAC;gBAChE,IAAI,CAAC;oBACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE;wBAC/C,MAAM,EAAE,KAAK,CAAC,MAAM;wBACpB,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,IAAI,EAAE,MAAM;wBACZ,iBAAiB,EAAE,8BAA8B;wBACjD,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAClD,CAAC,CAAC;oBACH,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC9B,OAAO,MAAM,CAAC;gBAChB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,mBAAmB,EAAE,CAAC;wBACtE,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -4,7 +4,7 @@ import type { McpSpawnConfig, SpawnMode } from "@poe-code/agent-spawn";
4
4
  export interface SpawnCoreOptions {
5
5
  /** The prompt to send to the provider */
6
6
  prompt: string;
7
- /** Working directory for the service CLI */
7
+ /** Working directory or workspace locator for the service CLI */
8
8
  cwd?: string;
9
9
  /** Model identifier override */
10
10
  model?: string;
@@ -1,8 +1,8 @@
1
- import path from "node:path";
2
1
  import chalk from "chalk";
3
2
  import { resolveAgentId, parseAgentSpecifier } from "@poe-code/agent-defs";
4
3
  import { resolveConfigModel } from "@poe-code/poe-code-config";
5
4
  import { buildProviderContext, createExecutionResources } from "../cli/commands/shared.js";
5
+ import { resolveSpawnWorkspace } from "../workspace/resolve-spawn-workspace.js";
6
6
  /**
7
7
  * Core spawn implementation used by both SDK and CLI.
8
8
  * Accepts an existing container to avoid creating a new one.
@@ -13,60 +13,66 @@ export async function spawnCore(container, service, options, flags = { dryRun: f
13
13
  throw new Error(`Unknown service "${service}".`);
14
14
  }
15
15
  const model = await resolveConfiguredModel(container, service, options.model);
16
- // Resolve working directory
17
- const cwdOverride = resolveSpawnWorkingDirectory(container.env.cwd, options.cwd);
18
- // Build spawn command options (internal format)
19
- const spawnOptions = {
20
- prompt: options.prompt,
21
- args: options.args,
22
- model,
16
+ const workspace = await resolveSpawnWorkspace(options.cwd, {
17
+ baseDir: container.env.cwd,
18
+ homeDir: container.env.homeDir,
23
19
  mode: options.mode,
24
- mcpServers: options.mcpServers,
25
- cwd: cwdOverride,
26
- useStdin: options.useStdin ?? false
27
- };
28
- // Create execution resources (logger, context)
29
- const commandFlags = { dryRun: flags.dryRun, assumeYes: true, verbose: flags.verbose };
30
- const resources = createExecutionResources(container, commandFlags, `spawn:${service}`);
31
- // Handle dry run
32
- if (flags.dryRun) {
33
- const summary = formatSpawnDryRunMessage(adapter.label, spawnOptions);
34
- resources.logger.dryRun(summary);
35
- return {
36
- stdout: "",
37
- stderr: "",
38
- exitCode: 0
20
+ resolveRemoteLocators: !flags.dryRun,
21
+ fs: container.fs,
22
+ exec: container.commandRunner
23
+ });
24
+ const cwdOverride = workspace.cwd;
25
+ try {
26
+ const spawnOptions = {
27
+ prompt: options.prompt,
28
+ args: options.args,
29
+ model,
30
+ mode: options.mode,
31
+ mcpServers: options.mcpServers,
32
+ cwd: cwdOverride,
33
+ useStdin: options.useStdin ?? false
39
34
  };
40
- }
41
- if (typeof adapter.spawn !== "function") {
42
- throw new Error(`${adapter.label} does not support spawn.`);
43
- }
44
- if (spawnOptions.useStdin && !adapter.supportsStdinPrompt) {
45
- throw new Error(`${adapter.label} does not support stdin prompts. Use a different service (e.g. "codex") or pass the prompt as an argument.`);
46
- }
47
- // Build provider context
48
- const providerContext = buildProviderContext(container, adapter, resources);
49
- // Invoke spawn through registry
50
- const result = (await container.registry.invoke(adapter.name, "spawn", async (entry) => {
51
- if (!entry.spawn) {
35
+ const commandFlags = { dryRun: flags.dryRun, assumeYes: true, verbose: flags.verbose };
36
+ const resources = createExecutionResources(container, commandFlags, `spawn:${service}`);
37
+ if (flags.dryRun) {
38
+ const summary = formatSpawnDryRunMessage(adapter.label, spawnOptions);
39
+ resources.logger.dryRun(summary);
40
+ return {
41
+ stdout: "",
42
+ stderr: "",
43
+ exitCode: 0
44
+ };
45
+ }
46
+ if (typeof adapter.spawn !== "function") {
52
47
  throw new Error(`${adapter.label} does not support spawn.`);
53
48
  }
54
- const output = await entry.spawn(providerContext, spawnOptions);
55
- return output;
56
- }));
57
- // Return normalized result
58
- if (!result) {
49
+ if (spawnOptions.useStdin && !adapter.supportsStdinPrompt) {
50
+ throw new Error(`${adapter.label} does not support stdin prompts. Use a different service (e.g. "codex") or pass the prompt as an argument.`);
51
+ }
52
+ const providerContext = buildProviderContext(container, adapter, resources);
53
+ const result = (await container.registry.invoke(adapter.name, "spawn", async (entry) => {
54
+ if (!entry.spawn) {
55
+ throw new Error(`${adapter.label} does not support spawn.`);
56
+ }
57
+ const output = await entry.spawn(providerContext, spawnOptions);
58
+ return output;
59
+ }));
60
+ if (!result) {
61
+ return {
62
+ stdout: "",
63
+ stderr: "",
64
+ exitCode: 0
65
+ };
66
+ }
59
67
  return {
60
- stdout: "",
61
- stderr: "",
62
- exitCode: 0
68
+ stdout: result.stdout,
69
+ stderr: result.stderr,
70
+ exitCode: result.exitCode
63
71
  };
64
72
  }
65
- return {
66
- stdout: result.stdout,
67
- stderr: result.stderr,
68
- exitCode: result.exitCode
69
- };
73
+ finally {
74
+ await workspace.cleanup?.();
75
+ }
70
76
  }
71
77
  export async function resolveConfiguredModel(container, service, model) {
72
78
  if (model != null) {
@@ -113,13 +119,4 @@ function formatSpawnArg(arg) {
113
119
  function formatQuoted(value) {
114
120
  return JSON.stringify(value);
115
121
  }
116
- function resolveSpawnWorkingDirectory(baseDir, candidate) {
117
- if (!candidate || candidate.trim().length === 0) {
118
- return undefined;
119
- }
120
- if (path.isAbsolute(candidate)) {
121
- return candidate;
122
- }
123
- return path.resolve(baseDir, candidate);
124
- }
125
122
  //# sourceMappingURL=spawn-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-core.js","sourceRoot":"","sources":["../../src/sdk/spawn-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn-core.js","sourceRoot":"","sources":["../../src/sdk/spawn-core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAwBhF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAAuB,EACvB,OAAe,EACf,OAAyB,EACzB,QAAwB,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE;IAEzD,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,GAAG,EAAE;QACzD,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG;QAC1B,OAAO,EAAE,SAAS,CAAC,GAAG,CAAC,OAAO;QAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,qBAAqB,EAAE,CAAC,KAAK,CAAC,MAAM;QACpC,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC,aAAa;KAC9B,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,YAAY,GAAwB;YACxC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,GAAG,EAAE,WAAW;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;SACpC,CAAC;QAEF,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC;QACvF,MAAM,SAAS,GAAG,wBAAwB,CACxC,SAAS,EACT,YAAY,EACZ,SAAS,OAAO,EAAE,CACnB,CAAC;QAEF,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,wBAAwB,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACtE,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACjC,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,0BAA0B,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,YAAY,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAC1D,MAAM,IAAI,KAAK,CACb,GAAG,OAAO,CAAC,KAAK,4GAA4G,CAC7H,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QAE5E,MAAM,MAAM,GAAG,CAAC,MAAM,SAAS,CAAC,QAAQ,CAAC,MAAM,CAC7C,OAAO,CAAC,IAAI,EACZ,OAAO,EACP,KAAK,EAAE,KAAK,EAAE,EAAE;YACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,0BAA0B,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,YAAY,CAAC,CAAC;YAChE,OAAO,MAAoC,CAAC;QAC9C,CAAC,CACF,CAA+B,CAAC;QAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO;gBACL,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,CAAC;aACZ,CAAC;QACJ,CAAC;QAED,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,SAAwD,EACxD,OAAe,EACf,KAAc;IAEd,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAClB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,EAAE,IAAI,IAAI,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IAChE,MAAM,eAAe,GAAG,MAAM,kBAAkB,CAC9C;QACE,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,UAAU;KACnC,EACD,OAAO,CACR,CAAC;IAEF,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,OAAO,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,YAAY,CAAC;AACxD,CAAC;AAED,SAAS,wBAAwB,CAC/B,KAAa,EACb,OAA4B;IAE5B,MAAM,KAAK,GAAa,CAAC,wBAAwB,KAAK,GAAG,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ;QACnC,CAAC,CAAC,WAAW,OAAO,CAAC,MAAM,CAAC,MAAM,SAAS;QAC3C,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAEpE,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,WAAW,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;AAC7C,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
package/dist/sdk/spawn.js CHANGED
@@ -1,11 +1,15 @@
1
+ import * as nodeFs from "node:fs/promises";
2
+ import os from "node:os";
1
3
  import { getPoeApiKey } from "./credentials.js";
2
4
  import { resolveConfiguredModel, spawnCore } from "./spawn-core.js";
3
5
  import { createSdkContainer } from "./container.js";
4
- import { getSpawnConfig, spawn as spawnNonStreaming, spawnInteractive, spawnStreaming, renderAcpStream, applyMiddlewares, sessionCapture, usageCapture, spawnLog } from "@poe-code/agent-spawn";
6
+ import { getAcpSpawnConfig, getSpawnConfig, spawn as spawnNonStreaming, spawnAcp, spawnInteractive, spawnStreaming, renderAcpStream, applyMiddlewares, sessionCapture, usageCapture, spawnLog, runCommand } from "@poe-code/agent-spawn";
7
+ import { resolveSpawnWorkspace } from "../workspace/resolve-spawn-workspace.js";
5
8
  export function spawn(service, promptOrOptions, maybeOptions) {
6
9
  const options = typeof promptOrOptions === "string"
7
10
  ? { ...maybeOptions, prompt: promptOrOptions }
8
11
  : promptOrOptions;
12
+ const resolvedMcpServers = options.mcpServers ?? options.mcpConfig;
9
13
  const emptyEvents = (async function* () { })();
10
14
  /**
11
15
  * Deferred event stream resolution.
@@ -40,11 +44,24 @@ export function spawn(service, promptOrOptions, maybeOptions) {
40
44
  }
41
45
  })();
42
46
  const result = (async () => {
47
+ let workspace;
43
48
  try {
49
+ workspace = await resolveSpawnWorkspace(options.cwd, {
50
+ baseDir: process.cwd(),
51
+ homeDir: os.homedir(),
52
+ mode: options.mode,
53
+ fs: {
54
+ mkdir: async (target, resolveOptions) => await nodeFs.mkdir(target, resolveOptions).then(() => undefined),
55
+ stat: async (target) => await nodeFs.stat(target),
56
+ rm: async (target, resolveOptions) => await nodeFs.rm(target, resolveOptions)
57
+ },
58
+ exec: runCommand
59
+ });
60
+ const cwd = workspace.cwd;
44
61
  await getPoeApiKey();
45
62
  let container;
46
63
  const getContainer = () => {
47
- container ??= createSdkContainer({ cwd: options.cwd });
64
+ container ??= createSdkContainer({ cwd });
48
65
  return container;
49
66
  };
50
67
  const resolveModel = async () => options.model ?? await resolveConfiguredModel(getContainer(), service);
@@ -53,12 +70,12 @@ export function spawn(service, promptOrOptions, maybeOptions) {
53
70
  const model = await resolveModel();
54
71
  const interactiveResult = await spawnInteractive(service, {
55
72
  prompt: options.prompt,
56
- cwd: options.cwd,
73
+ cwd,
57
74
  model,
58
75
  mode: options.mode,
59
76
  signal: options.signal,
60
77
  args: options.args,
61
- ...(options.mcpServers ? { mcpServers: options.mcpServers } : {})
78
+ ...(resolvedMcpServers ? { mcpServers: resolvedMcpServers } : {})
62
79
  });
63
80
  return {
64
81
  stdout: interactiveResult.stdout,
@@ -67,6 +84,50 @@ export function spawn(service, promptOrOptions, maybeOptions) {
67
84
  ...(interactiveResult.usage ? { usage: interactiveResult.usage } : {})
68
85
  };
69
86
  }
87
+ const acpSpawnConfig = getAcpSpawnConfig(service);
88
+ if (acpSpawnConfig) {
89
+ const model = await resolveModel();
90
+ const { events: rawEvents, done } = spawnAcp({
91
+ agentId: service,
92
+ prompt: options.prompt,
93
+ cwd: options.cwd,
94
+ model,
95
+ mode: options.mode,
96
+ mcpServers: options.mcpServers,
97
+ signal: options.signal,
98
+ });
99
+ const middlewareContext = {
100
+ sessionId: "unknown",
101
+ agent: service,
102
+ logDir: options.logDir,
103
+ events: [],
104
+ usage: {
105
+ inputTokens: 0,
106
+ outputTokens: 0
107
+ },
108
+ eventStream: rawEvents,
109
+ prompt: options.prompt,
110
+ model,
111
+ mode: options.mode,
112
+ cwd: options.cwd,
113
+ startedAt: new Date()
114
+ };
115
+ await applyMiddlewares([sessionCapture, usageCapture, spawnLog], middlewareContext);
116
+ resolveEventsOnce(middlewareContext.eventStream ?? emptyEvents);
117
+ const final = await done;
118
+ const threadId = middlewareContext.threadId ?? final.threadId;
119
+ const sessionId = (middlewareContext.sessionId !== "unknown" ? middlewareContext.sessionId : undefined) ??
120
+ final.sessionId ??
121
+ threadId;
122
+ return {
123
+ stdout: final.stdout,
124
+ stderr: final.stderr,
125
+ exitCode: final.exitCode,
126
+ ...(threadId ? { threadId } : {}),
127
+ ...(sessionId ? { sessionId } : {}),
128
+ ...(final.usage ? { usage: final.usage } : {})
129
+ };
130
+ }
70
131
  const spawnConfig = getSpawnConfig(service);
71
132
  const supportsStreaming = !!spawnConfig &&
72
133
  spawnConfig.kind === "cli" &&
@@ -76,12 +137,15 @@ export function spawn(service, promptOrOptions, maybeOptions) {
76
137
  const { events: rawEvents, done } = spawnStreaming({
77
138
  agentId: service,
78
139
  prompt: options.prompt,
79
- cwd: options.cwd,
140
+ cwd,
80
141
  model,
81
142
  mode: options.mode,
82
143
  args: options.args,
83
144
  signal: options.signal,
84
- ...(options.mcpServers ? { mcpServers: options.mcpServers } : {}),
145
+ ...(resolvedMcpServers ? { mcpServers: resolvedMcpServers } : {}),
146
+ ...(options.activityTimeoutMs !== undefined
147
+ ? { activityTimeoutMs: options.activityTimeoutMs }
148
+ : {}),
85
149
  useStdin: false
86
150
  });
87
151
  const middlewareContext = {
@@ -97,7 +161,7 @@ export function spawn(service, promptOrOptions, maybeOptions) {
97
161
  prompt: options.prompt,
98
162
  model,
99
163
  mode: options.mode,
100
- cwd: options.cwd,
164
+ cwd,
101
165
  startedAt: new Date()
102
166
  };
103
167
  await applyMiddlewares([sessionCapture, usageCapture, spawnLog], middlewareContext);
@@ -107,13 +171,14 @@ export function spawn(service, promptOrOptions, maybeOptions) {
107
171
  const sessionId = (middlewareContext.sessionId !== "unknown" ? middlewareContext.sessionId : undefined) ??
108
172
  final.sessionId ??
109
173
  threadId;
174
+ const usage = final.usage ?? getCapturedUsage(middlewareContext.usage);
110
175
  return {
111
176
  stdout: final.stdout,
112
177
  stderr: final.stderr,
113
178
  exitCode: final.exitCode,
114
179
  ...(threadId ? { threadId } : {}),
115
180
  ...(sessionId ? { sessionId } : {}),
116
- ...(final.usage ? { usage: final.usage } : {})
181
+ ...(usage ? { usage } : {})
117
182
  };
118
183
  }
119
184
  if (spawnConfig && spawnConfig.kind === "cli") {
@@ -121,12 +186,15 @@ export function spawn(service, promptOrOptions, maybeOptions) {
121
186
  const model = await resolveModel();
122
187
  return spawnNonStreaming(service, {
123
188
  prompt: options.prompt,
124
- cwd: options.cwd,
189
+ cwd,
125
190
  model,
126
191
  mode: options.mode,
127
192
  args: options.args,
128
193
  signal: options.signal,
129
- ...(options.mcpServers ? { mcpServers: options.mcpServers } : {}),
194
+ ...(resolvedMcpServers ? { mcpServers: resolvedMcpServers } : {}),
195
+ ...(options.activityTimeoutMs !== undefined
196
+ ? { activityTimeoutMs: options.activityTimeoutMs }
197
+ : {}),
130
198
  useStdin: false
131
199
  });
132
200
  }
@@ -134,11 +202,11 @@ export function spawn(service, promptOrOptions, maybeOptions) {
134
202
  const model = await resolveModel();
135
203
  return spawnCore(getContainer(), service, {
136
204
  prompt: options.prompt,
137
- cwd: options.cwd,
205
+ cwd,
138
206
  model,
139
207
  mode: options.mode,
140
208
  args: options.args,
141
- ...(options.mcpServers ? { mcpServers: options.mcpServers } : {}),
209
+ ...(resolvedMcpServers ? { mcpServers: resolvedMcpServers } : {}),
142
210
  useStdin: false
143
211
  });
144
212
  }
@@ -146,9 +214,24 @@ export function spawn(service, promptOrOptions, maybeOptions) {
146
214
  resolveEventsOnce(emptyEvents);
147
215
  throw error;
148
216
  }
217
+ finally {
218
+ await workspace?.cleanup?.();
219
+ }
149
220
  })();
150
221
  return { events, result };
151
222
  }
223
+ function getCapturedUsage(usage) {
224
+ if (!usage) {
225
+ return undefined;
226
+ }
227
+ if (usage.inputTokens > 0 || usage.outputTokens > 0) {
228
+ return usage;
229
+ }
230
+ if (usage.cachedTokens !== undefined || usage.costUsd !== undefined) {
231
+ return usage;
232
+ }
233
+ return undefined;
234
+ }
152
235
  /**
153
236
  * Spawns an agent and renders ACP events to stdout with pretty formatting.
154
237
  *