@sandagent/runner-cli 0.8.2 → 0.8.4

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.
@@ -33,7 +33,6 @@ describe("runAgent", () => {
33
33
  beforeEach(() => {
34
34
  writtenData = [];
35
35
  originalWrite = process.stdout.write;
36
- // @ts-ignore - mocking stdout.write
37
36
  process.stdout.write = vi.fn((data) => {
38
37
  writtenData.push(data);
39
38
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../../src/__tests__/runner.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.test.js","sourceRoot":"","sources":["../../src/__tests__/runner.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { execSync } from "node:child_process";
2
- import { copyFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync, } from "node:fs";
2
+ import { copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync, } from "node:fs";
3
3
  import { basename, dirname, join, resolve } from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"build-image.js","sourceRoot":"","sources":["../src/build-image.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-image.js","sourceRoot":"","sources":["../src/build-image.ts"],"names":[],"mappings":"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"}
package/dist/bundle.mjs CHANGED
@@ -11,8 +11,8 @@ import {
11
11
  copyFileSync,
12
12
  existsSync,
13
13
  mkdirSync,
14
- readFileSync,
15
14
  readdirSync,
15
+ readFileSync,
16
16
  statSync,
17
17
  writeFileSync
18
18
  } from "node:fs";
@@ -477,20 +477,20 @@ function createCanUseToolCallback(claudeOptions) {
477
477
  }
478
478
  const cwd = claudeOptions.cwd || process.cwd();
479
479
  try {
480
- const fs = await import("node:fs");
481
- const path = await import("node:path");
482
- const approvalDir = path.join(cwd, ".sandagent", "approvals");
483
- const approvalFile = path.join(approvalDir, `${toolUseID}.json`);
480
+ const fs2 = await import("node:fs");
481
+ const path2 = await import("node:path");
482
+ const approvalDir = path2.join(cwd, ".sandagent", "approvals");
483
+ const approvalFile = path2.join(approvalDir, `${toolUseID}.json`);
484
484
  const timeout = Date.now() + 6e4;
485
485
  let lastApproval = null;
486
486
  while (Date.now() < timeout) {
487
487
  try {
488
- const data = fs.readFileSync(approvalFile, "utf-8");
488
+ const data = fs2.readFileSync(approvalFile, "utf-8");
489
489
  const approval = JSON.parse(data);
490
490
  lastApproval = approval;
491
491
  if (approval.status === "completed") {
492
492
  try {
493
- fs.unlinkSync(approvalFile);
493
+ fs2.unlinkSync(approvalFile);
494
494
  } catch {
495
495
  }
496
496
  return {
@@ -506,7 +506,7 @@ function createCanUseToolCallback(claudeOptions) {
506
506
  await new Promise((resolve3) => setTimeout(resolve3, 500));
507
507
  }
508
508
  try {
509
- fs.unlinkSync(approvalFile);
509
+ fs2.unlinkSync(approvalFile);
510
510
  } catch {
511
511
  }
512
512
  if (lastApproval && Object.keys(lastApproval.answers).length > 0) {
@@ -708,6 +708,9 @@ Documentation: https://platform.claude.com/docs/en/agent-sdk/typescript-v2-previ
708
708
  }
709
709
 
710
710
  // ../../packages/runner-codex/dist/codex-runner.js
711
+ import * as fs from "node:fs";
712
+ import * as os from "node:os";
713
+ import * as path from "node:path";
711
714
  import { Codex } from "@openai/codex-sdk";
712
715
  function normalizeCodexModel(model) {
713
716
  const trimmed = model.trim();
@@ -817,7 +820,36 @@ function createCodexRunner(options) {
817
820
  approvalPolicy: options.approvalPolicy
818
821
  };
819
822
  const thread = options.resume ? codex.resumeThread(options.resume, threadOptions) : codex.startThread(threadOptions);
820
- const streamedTurn = await thread.runStreamed(userInput, {
823
+ let inputToCodex = userInput;
824
+ const tempFiles = [];
825
+ try {
826
+ if (userInput.startsWith("[") && userInput.endsWith("]")) {
827
+ const parsed = JSON.parse(userInput);
828
+ if (Array.isArray(parsed)) {
829
+ const parts = [];
830
+ for (const p of parsed) {
831
+ if (p.type === "image" && typeof p.data === "string") {
832
+ const match = /^data:([^;]+);base64,(.+)$/.exec(p.data);
833
+ if (match) {
834
+ const ext = match[1].split("/")[1] ?? "png";
835
+ const tmpPath = path.join(os.tmpdir(), `sandagent-img-${Date.now()}-${Math.random().toString(36).slice(2)}.${ext}`);
836
+ fs.writeFileSync(tmpPath, Buffer.from(match[2], "base64"));
837
+ tempFiles.push(tmpPath);
838
+ parts.push({ type: "local_image", path: tmpPath });
839
+ }
840
+ } else {
841
+ const text = typeof p.text === "string" ? p.text : JSON.stringify(p);
842
+ parts.push({ type: "text", text });
843
+ }
844
+ }
845
+ if (parts.length > 0) {
846
+ inputToCodex = parts;
847
+ }
848
+ }
849
+ }
850
+ } catch (e) {
851
+ }
852
+ const streamedTurn = await thread.runStreamed(inputToCodex, {
821
853
  signal: options.abortController?.signal
822
854
  });
823
855
  for await (const event of streamedTurn.events) {
@@ -873,6 +905,12 @@ function createCodexRunner(options) {
873
905
  `;
874
906
  }
875
907
  }
908
+ for (const tmpFile of tempFiles) {
909
+ try {
910
+ fs.unlinkSync(tmpFile);
911
+ } catch {
912
+ }
913
+ }
876
914
  }
877
915
  };
878
916
  }
@@ -1158,19 +1196,19 @@ function createOpenCodeRunner(options = {}) {
1158
1196
  }
1159
1197
 
1160
1198
  // ../../packages/runner-pi/dist/pi-runner.js
1161
- import { appendFileSync as appendFileSync2, existsSync as existsSync3, unlinkSync as unlinkSync2 } from "node:fs";
1162
- import { join as join4 } from "node:path";
1199
+ import { appendFileSync as appendFileSync2, existsSync as existsSync3, unlinkSync as unlinkSync3 } from "node:fs";
1200
+ import { join as join5 } from "node:path";
1163
1201
  import { getModel } from "@mariozechner/pi-ai";
1164
- import { AuthStorage, ModelRegistry, SessionManager, createAgentSession } from "@mariozechner/pi-coding-agent";
1202
+ import { AuthStorage, createAgentSession, ModelRegistry, SessionManager } from "@mariozechner/pi-coding-agent";
1165
1203
 
1166
1204
  // ../../packages/runner-pi/dist/sandagent-resource-loader.js
1167
1205
  import { homedir } from "node:os";
1168
- import { join as join3 } from "node:path";
1206
+ import { join as join4 } from "node:path";
1169
1207
  import { DefaultResourceLoader, loadSkills } from "@mariozechner/pi-coding-agent";
1170
1208
  var SandagentResourceLoader = class {
1171
1209
  constructor(options = {}) {
1172
1210
  this.cwd = options.cwd ?? process.cwd();
1173
- this.agentDir = options.agentDir ?? join3(homedir(), ".pi", "agent");
1211
+ this.agentDir = options.agentDir ?? join4(homedir(), ".pi", "agent");
1174
1212
  this.skillPaths = options.skillPaths ?? [];
1175
1213
  this.delegate = new DefaultResourceLoader({
1176
1214
  cwd: this.cwd,
@@ -1259,6 +1297,24 @@ function emitStreamError(errorText) {
1259
1297
  "data: [DONE]\n\n"
1260
1298
  ];
1261
1299
  }
1300
+ function extractToolResultText(result) {
1301
+ if (result !== null && typeof result === "object") {
1302
+ const r = result;
1303
+ if (Array.isArray(r.content) && r.content.length > 0) {
1304
+ const text = r.content.filter((c) => c.type === "text" && typeof c.text === "string").map((c) => c.text).join("\n");
1305
+ if (text.length > 0) {
1306
+ return text;
1307
+ }
1308
+ }
1309
+ }
1310
+ if (typeof result === "string")
1311
+ return result;
1312
+ try {
1313
+ return JSON.stringify(result);
1314
+ } catch {
1315
+ return String(result);
1316
+ }
1317
+ }
1262
1318
  function usageToMessageMetadata(usage) {
1263
1319
  return {
1264
1320
  input_tokens: usage.input,
@@ -1290,9 +1346,9 @@ function traceRawMessage(debugCwd, data, reset = false) {
1290
1346
  if (!enabled)
1291
1347
  return;
1292
1348
  try {
1293
- const file = join4(debugCwd, "pi-message-stream-debug.json");
1349
+ const file = join5(debugCwd, "pi-message-stream-debug.json");
1294
1350
  if (reset && existsSync3(file))
1295
- unlinkSync2(file);
1351
+ unlinkSync3(file);
1296
1352
  const type = data !== null && typeof data === "object" ? data.type : void 0;
1297
1353
  let payload = data;
1298
1354
  try {
@@ -1355,16 +1411,20 @@ function createPiRunner(options = {}) {
1355
1411
  }
1356
1412
  const sessions = await SessionManager.list(cwd);
1357
1413
  const found = sessions.find((s) => s.id === resume);
1358
- return found ? SessionManager.open(found.path) : SessionManager.continueRecent(cwd);
1414
+ return found ? SessionManager.open(found.path) : SessionManager.create(cwd);
1359
1415
  }
1360
- return SessionManager.continueRecent(cwd);
1416
+ return SessionManager.create(cwd);
1361
1417
  })();
1418
+ const resourceLoader = options.skillPaths ? new SandagentResourceLoader({ cwd, skillPaths: options.skillPaths }) : void 0;
1419
+ if (resourceLoader) {
1420
+ await resourceLoader.reload();
1421
+ }
1362
1422
  const { session } = await createAgentSession({
1363
1423
  cwd,
1364
1424
  model,
1365
1425
  sessionManager,
1366
1426
  modelRegistry,
1367
- resourceLoader: options.skillPaths ? new SandagentResourceLoader({ cwd, skillPaths: options.skillPaths }) : void 0
1427
+ resourceLoader
1368
1428
  });
1369
1429
  if (options.systemPrompt != null && options.systemPrompt !== "") {
1370
1430
  session.agent.setSystemPrompt(options.systemPrompt);
@@ -1401,7 +1461,26 @@ function createPiRunner(options = {}) {
1401
1461
  }
1402
1462
  try {
1403
1463
  traceRawMessage(cwd, null, true);
1404
- const promptPromise = session.prompt(userInput);
1464
+ let promptText = userInput;
1465
+ let images;
1466
+ try {
1467
+ if (userInput.startsWith("[") && userInput.endsWith("]")) {
1468
+ const parsed = JSON.parse(userInput);
1469
+ if (Array.isArray(parsed)) {
1470
+ promptText = parsed.filter((p) => p.type === "text").map((p) => p.text).join("\n");
1471
+ const imageParts = parsed.filter((p) => p.type === "image");
1472
+ if (imageParts.length > 0) {
1473
+ images = imageParts.map((p) => ({
1474
+ type: "image",
1475
+ data: p.data,
1476
+ mimeType: p.mimeType
1477
+ }));
1478
+ }
1479
+ }
1480
+ }
1481
+ } catch (e) {
1482
+ }
1483
+ const promptPromise = session.prompt(promptText, images ? { images } : void 0);
1405
1484
  const messageId = `msg_${Date.now()}_${Math.random().toString(36).slice(2)}`;
1406
1485
  const textId = `text_${Date.now()}_${Math.random().toString(36).slice(2)}`;
1407
1486
  let hasStarted = false;
@@ -1466,14 +1545,15 @@ function createPiRunner(options = {}) {
1466
1545
  }
1467
1546
  }
1468
1547
  } else if (event.type === "tool_execution_start") {
1469
- yield `data: ${JSON.stringify({ type: "tool-input-start", toolCallId: event.toolCallId, toolName: event.toolName, dynamic: true })}
1548
+ yield `data: ${JSON.stringify({ type: "tool-input-start", toolCallId: event.toolCallId, toolName: event.toolName, dynamic: true, providerExecuted: true })}
1470
1549
 
1471
1550
  `;
1472
- yield `data: ${JSON.stringify({ type: "tool-input-available", toolCallId: event.toolCallId, toolName: event.toolName, input: event.args, dynamic: true })}
1551
+ yield `data: ${JSON.stringify({ type: "tool-input-available", toolCallId: event.toolCallId, toolName: event.toolName, input: event.args, dynamic: true, providerExecuted: true })}
1473
1552
 
1474
1553
  `;
1475
1554
  } else if (event.type === "tool_execution_end") {
1476
- yield `data: ${JSON.stringify({ type: "tool-output-available", toolCallId: event.toolCallId, output: event.result, isError: event.isError, dynamic: true })}
1555
+ const output = extractToolResultText(event.result);
1556
+ yield `data: ${JSON.stringify({ type: "tool-output-available", toolCallId: event.toolCallId, output, isError: event.isError, dynamic: true, providerExecuted: true })}
1477
1557
 
1478
1558
  `;
1479
1559
  } else if (event.type === "agent_end") {
@@ -1529,87 +1609,61 @@ function createPiRunner(options = {}) {
1529
1609
  };
1530
1610
  }
1531
1611
 
1612
+ // ../../packages/runner-core/dist/index.js
1613
+ function createRunner(options) {
1614
+ const cwd = options.cwd ?? process.cwd();
1615
+ const env = options.env ?? process.env;
1616
+ const abortController = options.abortController ?? new AbortController();
1617
+ const base = {
1618
+ model: options.model,
1619
+ systemPrompt: options.systemPrompt,
1620
+ maxTurns: options.maxTurns,
1621
+ allowedTools: options.allowedTools,
1622
+ resume: options.resume,
1623
+ env,
1624
+ abortController
1625
+ };
1626
+ switch (options.runner) {
1627
+ case "claude":
1628
+ return createClaudeRunner(base).run(options.userInput);
1629
+ case "codex":
1630
+ return createCodexRunner({ ...base, cwd }).run(options.userInput);
1631
+ case "gemini":
1632
+ return createGeminiRunner({
1633
+ model: options.model,
1634
+ cwd,
1635
+ env,
1636
+ abortController
1637
+ }).run(options.userInput);
1638
+ case "pi":
1639
+ return createPiRunner({
1640
+ ...base,
1641
+ cwd,
1642
+ sessionId: options.resume,
1643
+ skillPaths: options.skillPaths
1644
+ }).run(options.userInput);
1645
+ case "opencode":
1646
+ return createOpenCodeRunner({
1647
+ model: options.model,
1648
+ cwd,
1649
+ env,
1650
+ abortController
1651
+ }).run(options.userInput);
1652
+ case "copilot":
1653
+ throw new Error("Copilot runner not yet implemented");
1654
+ default:
1655
+ throw new Error(`Unknown runner: ${options.runner}`);
1656
+ }
1657
+ }
1658
+
1532
1659
  // src/runner.ts
1533
1660
  async function runAgent(options) {
1534
1661
  const abortController = new AbortController();
1535
- const signalHandler = async () => {
1536
- console.error("[Runner] Received termination signal, stopping...");
1537
- abortController.abort();
1538
- console.error(
1539
- "[Runner] AbortController.abort() completed (listeners triggered)"
1540
- );
1541
- };
1662
+ const signalHandler = () => abortController.abort();
1542
1663
  process.on("SIGTERM", signalHandler);
1543
1664
  process.on("SIGINT", signalHandler);
1544
- console.error("[Runner] Signal handlers registered");
1545
1665
  try {
1546
- let runner;
1547
- switch (options.runner) {
1548
- case "claude": {
1549
- runner = createClaudeRunner({
1550
- model: options.model,
1551
- systemPrompt: options.systemPrompt,
1552
- maxTurns: options.maxTurns,
1553
- allowedTools: options.allowedTools,
1554
- resume: options.resume,
1555
- env: process.env,
1556
- abortController
1557
- });
1558
- break;
1559
- }
1560
- case "codex": {
1561
- runner = createCodexRunner({
1562
- model: options.model,
1563
- systemPrompt: options.systemPrompt,
1564
- maxTurns: options.maxTurns,
1565
- allowedTools: options.allowedTools,
1566
- resume: options.resume,
1567
- cwd: process.cwd(),
1568
- env: process.env,
1569
- abortController
1570
- });
1571
- break;
1572
- }
1573
- case "copilot":
1574
- throw new Error(
1575
- "Copilot runner not yet implemented. Use --runner=claude for now."
1576
- );
1577
- case "gemini": {
1578
- runner = createGeminiRunner({
1579
- model: options.model,
1580
- cwd: process.cwd(),
1581
- env: process.env,
1582
- abortController
1583
- });
1584
- break;
1585
- }
1586
- case "pi": {
1587
- runner = createPiRunner({
1588
- model: options.model,
1589
- systemPrompt: options.systemPrompt,
1590
- cwd: process.cwd(),
1591
- env: process.env,
1592
- abortController,
1593
- sessionId: options.resume,
1594
- skillPaths: options.skillPaths
1595
- });
1596
- break;
1597
- }
1598
- case "opencode": {
1599
- runner = createOpenCodeRunner({
1600
- model: options.model,
1601
- cwd: process.cwd(),
1602
- env: process.env,
1603
- abortController
1604
- });
1605
- break;
1606
- }
1607
- default:
1608
- throw new Error(
1609
- `Unknown runner: ${options.runner}. Supported runners: claude, codex, gemini, opencode, copilot, pi`
1610
- );
1611
- }
1612
- for await (const chunk of runner.run(options.userInput)) {
1666
+ for await (const chunk of createRunner({ ...options, abortController })) {
1613
1667
  process.stdout.write(chunk);
1614
1668
  }
1615
1669
  } finally {
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- export { runAgent, type RunAgentOptions } from "./runner.js";
2
- export { buildImage, type BuildImageOptions } from "./build-image.js";
1
+ export { type BuildImageOptions, buildImage } from "./build-image.js";
2
+ export { type RunAgentOptions, runAgent } from "./runner.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,KAAK,eAAe,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { runAgent } from "./runner.js";
2
1
  export { buildImage } from "./build-image.js";
2
+ export { runAgent } from "./runner.js";
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAwB,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,UAAU,EAA0B,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAwB,QAAQ,EAAE,MAAM,aAAa,CAAC"}
package/dist/runner.d.ts CHANGED
@@ -1,29 +1,8 @@
1
- import type { BaseRunnerOptions } from "@sandagent/runner-claude";
1
+ import { type RunnerCoreOptions } from "@sandagent/runner-core";
2
+ export type RunAgentOptions = RunnerCoreOptions;
2
3
  /**
3
- * Options for running the agent
4
- * Extends BaseRunnerOptions with CLI-specific fields
5
- */
6
- export interface RunAgentOptions extends BaseRunnerOptions {
7
- /** Which runner to use: claude, codex, gemini, opencode, copilot, pi */
8
- runner: string;
9
- /** User input/task */
10
- userInput: string;
11
- /** Template to use (e.g., "default", "coder", "analyst", "researcher") */
12
- template?: string;
13
- /** Additional skill paths (for pi runner) */
14
- skillPaths?: string[];
15
- }
16
- /**
17
- * Run the agent and stream AI SDK UI messages to stdout.
18
- *
19
- * This function:
20
- * 1. Uses process.cwd() as project directory (set by cli.ts via --cwd)
21
- * 2. Creates a Claude runner with settingSources: ["project"]
22
- * 3. SDK automatically loads CLAUDE.md, .claude/settings.json, .claude/skills/*.skill.md
23
- * 4. Streams messages directly to stdout
24
- * 5. Handles SIGTERM/SIGINT signals to gracefully stop the runner
25
- *
26
- * The output is a valid AI SDK UI stream.
4
+ * Run the agent, stream AI SDK UI messages to stdout.
5
+ * Handles SIGTERM/SIGINT signals.
27
6
  */
28
7
  export declare function runAgent(options: RunAgentOptions): Promise<void>;
29
8
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAOlE;;;GAGG;AACH,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoGtE"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,MAAM,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAEhD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CActE"}
package/dist/runner.js CHANGED
@@ -1,106 +1,19 @@
1
- import { createClaudeRunner } from "@sandagent/runner-claude";
2
- import { createCodexRunner } from "@sandagent/runner-codex";
3
- import { createGeminiRunner } from "@sandagent/runner-gemini";
4
- import { createOpenCodeRunner } from "@sandagent/runner-opencode";
5
- import { createPiRunner } from "@sandagent/runner-pi";
1
+ import { createRunner } from "@sandagent/runner-core";
6
2
  /**
7
- * Run the agent and stream AI SDK UI messages to stdout.
8
- *
9
- * This function:
10
- * 1. Uses process.cwd() as project directory (set by cli.ts via --cwd)
11
- * 2. Creates a Claude runner with settingSources: ["project"]
12
- * 3. SDK automatically loads CLAUDE.md, .claude/settings.json, .claude/skills/*.skill.md
13
- * 4. Streams messages directly to stdout
14
- * 5. Handles SIGTERM/SIGINT signals to gracefully stop the runner
15
- *
16
- * The output is a valid AI SDK UI stream.
3
+ * Run the agent, stream AI SDK UI messages to stdout.
4
+ * Handles SIGTERM/SIGINT signals.
17
5
  */
18
6
  export async function runAgent(options) {
19
- // Create an AbortController to handle process signals
20
7
  const abortController = new AbortController();
21
- // Handle SIGTERM and SIGINT signals
22
- const signalHandler = async () => {
23
- console.error("[Runner] Received termination signal, stopping...");
24
- // Note: abort() synchronously triggers all abort event listeners,
25
- abortController.abort();
26
- console.error("[Runner] AbortController.abort() completed (listeners triggered)");
27
- };
8
+ const signalHandler = () => abortController.abort();
28
9
  process.on("SIGTERM", signalHandler);
29
10
  process.on("SIGINT", signalHandler);
30
- console.error("[Runner] Signal handlers registered");
31
11
  try {
32
- // Select the appropriate runner based on options.runner
33
- let runner;
34
- switch (options.runner) {
35
- case "claude": {
36
- runner = createClaudeRunner({
37
- model: options.model,
38
- systemPrompt: options.systemPrompt,
39
- maxTurns: options.maxTurns,
40
- allowedTools: options.allowedTools,
41
- resume: options.resume,
42
- env: process.env,
43
- abortController,
44
- });
45
- break;
46
- }
47
- case "codex": {
48
- runner = createCodexRunner({
49
- model: options.model,
50
- systemPrompt: options.systemPrompt,
51
- maxTurns: options.maxTurns,
52
- allowedTools: options.allowedTools,
53
- resume: options.resume,
54
- cwd: process.cwd(),
55
- env: process.env,
56
- abortController,
57
- });
58
- break;
59
- }
60
- case "copilot":
61
- throw new Error("Copilot runner not yet implemented. Use --runner=claude for now.");
62
- case "gemini": {
63
- runner = createGeminiRunner({
64
- model: options.model,
65
- cwd: process.cwd(),
66
- env: process.env,
67
- abortController,
68
- });
69
- break;
70
- }
71
- case "pi": {
72
- runner = createPiRunner({
73
- model: options.model,
74
- systemPrompt: options.systemPrompt,
75
- cwd: process.cwd(),
76
- env: process.env,
77
- abortController,
78
- sessionId: options.resume,
79
- skillPaths: options.skillPaths,
80
- });
81
- break;
82
- }
83
- case "opencode": {
84
- runner = createOpenCodeRunner({
85
- model: options.model,
86
- cwd: process.cwd(),
87
- env: process.env,
88
- abortController,
89
- });
90
- break;
91
- }
92
- default:
93
- throw new Error(`Unknown runner: ${options.runner}. Supported runners: claude, codex, gemini, opencode, copilot, pi`);
94
- }
95
- // Stream AI SDK UI messages to stdout
96
- for await (const chunk of runner.run(options.userInput)) {
97
- // Write directly to stdout without modification
98
- // This ensures the stream is a valid AI SDK UI stream
12
+ for await (const chunk of createRunner({ ...options, abortController })) {
99
13
  process.stdout.write(chunk);
100
14
  }
101
15
  }
102
16
  finally {
103
- // Clean up signal handlers
104
17
  process.off("SIGTERM", signalHandler);
105
18
  process.off("SIGINT", signalHandler);
106
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAiBtD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,sDAAsD;IACtD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAE9C,oCAAoC;IACpC,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACnE,kEAAkE;QAClE,eAAe,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CACX,kEAAkE,CACnE,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAEpC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAErD,IAAI,CAAC;QACH,wDAAwD;QACxD,IAAI,MAAyD,CAAC;QAE9D,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;YACvB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,kBAAkB,CAAC;oBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,GAAG,EAAE,OAAO,CAAC,GAA6B;oBAC1C,eAAe;iBAChB,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,GAAG,iBAAiB,CAAC;oBACzB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,GAAG,EAAE,OAAO,CAAC,GAA6B;oBAC1C,eAAe;iBAChB,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,SAAS;gBACZ,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;YACJ,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,kBAAkB,CAAC;oBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,GAAG,EAAE,OAAO,CAAC,GAA6B;oBAC1C,eAAe;iBAChB,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,IAAI,CAAC,CAAC,CAAC;gBACV,MAAM,GAAG,cAAc,CAAC;oBACtB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,GAAG,EAAE,OAAO,CAAC,GAA6B;oBAC1C,eAAe;oBACf,SAAS,EAAE,OAAO,CAAC,MAAM;oBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,GAAG,oBAAoB,CAAC;oBAC5B,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;oBAClB,GAAG,EAAE,OAAO,CAAC,GAA6B;oBAC1C,eAAe;iBAChB,CAAC,CAAC;gBACH,MAAM;YACR,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CACb,mBAAmB,OAAO,CAAC,MAAM,mEAAmE,CACrG,CAAC;QACN,CAAC;QAED,sCAAsC;QACtC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACxD,gDAAgD;YAChD,sDAAsD;YACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,2BAA2B;QAC3B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA0B,MAAM,wBAAwB,CAAC;AAI9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAwB;IACrD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9C,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IACpD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,eAAe,EAAE,CAAC,EAAE,CAAC;YACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;YAAS,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sandagent/runner-cli",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "description": "SandAgent Runner CLI - Like gemini-cli or claude-code, runs in your local terminal with AI SDK UI streaming",
5
5
  "type": "module",
6
6
  "bin": {
@@ -46,7 +46,8 @@
46
46
  "@mariozechner/pi-ai": "^0.56.1",
47
47
  "@mariozechner/pi-coding-agent": "^0.56.1",
48
48
  "dotenv": "^17.3.1",
49
- "zod": "^4.0.0"
49
+ "zod": "^4.0.0",
50
+ "@sandagent/runner-core": "0.1.0"
50
51
  },
51
52
  "devDependencies": {
52
53
  "@types/node": "^20.10.0",
@@ -54,10 +55,10 @@
54
55
  "typescript": "^5.3.0",
55
56
  "vitest": "^1.6.1",
56
57
  "@sandagent/runner-claude": "0.6.2",
57
- "@sandagent/runner-codex": "0.6.2",
58
58
  "@sandagent/runner-gemini": "0.6.2",
59
59
  "@sandagent/runner-opencode": "0.6.2",
60
- "@sandagent/runner-pi": "0.6.3"
60
+ "@sandagent/runner-pi": "0.6.3",
61
+ "@sandagent/runner-codex": "0.6.2"
61
62
  },
62
63
  "scripts": {
63
64
  "build": "tsc && pnpm bundle",