@agentteams/runner 0.0.84-dev.208 → 0.0.85

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 (122) hide show
  1. package/dist/api-client.d.ts +2 -2
  2. package/dist/api-client.js +66 -66
  3. package/dist/api-client.js.map +1 -1
  4. package/dist/api-client.test.js +54 -63
  5. package/dist/api-client.test.js.map +1 -1
  6. package/dist/autostart.js +81 -81
  7. package/dist/autostart.js.map +1 -1
  8. package/dist/autostart.test.js +35 -35
  9. package/dist/autostart.test.js.map +1 -1
  10. package/dist/commands/cleanup.js +4 -4
  11. package/dist/commands/init.js +14 -14
  12. package/dist/commands/restart.js +3 -3
  13. package/dist/commands/start.js +10 -10
  14. package/dist/commands/start.js.map +1 -1
  15. package/dist/commands/status.js +7 -7
  16. package/dist/commands/stop.js +7 -7
  17. package/dist/commands/uninstall.js +6 -6
  18. package/dist/commands/update.d.ts +4 -4
  19. package/dist/commands/update.js +22 -20
  20. package/dist/commands/update.js.map +1 -1
  21. package/dist/commands/update.test.js +42 -38
  22. package/dist/commands/update.test.js.map +1 -1
  23. package/dist/config.d.ts +1 -1
  24. package/dist/config.js +12 -12
  25. package/dist/config.test.js +61 -61
  26. package/dist/config.test.js.map +1 -1
  27. package/dist/daemon-control.d.ts +5 -5
  28. package/dist/daemon-control.js +22 -21
  29. package/dist/daemon-control.js.map +1 -1
  30. package/dist/daemon-control.test.js +29 -29
  31. package/dist/executable.d.ts +3 -3
  32. package/dist/executable.js +49 -46
  33. package/dist/executable.js.map +1 -1
  34. package/dist/executable.test.js +62 -62
  35. package/dist/executable.test.js.map +1 -1
  36. package/dist/handlers/trigger-handler.d.ts +6 -6
  37. package/dist/handlers/trigger-handler.js +124 -118
  38. package/dist/handlers/trigger-handler.js.map +1 -1
  39. package/dist/handlers/trigger-handler.test.js +365 -373
  40. package/dist/handlers/trigger-handler.test.js.map +1 -1
  41. package/dist/index.js +25 -25
  42. package/dist/logger.js +1 -1
  43. package/dist/pid.js +6 -6
  44. package/dist/poller.d.ts +7 -7
  45. package/dist/poller.js +53 -54
  46. package/dist/poller.js.map +1 -1
  47. package/dist/poller.test.js +181 -209
  48. package/dist/poller.test.js.map +1 -1
  49. package/dist/runners/amp.d.ts +1 -1
  50. package/dist/runners/amp.js +81 -74
  51. package/dist/runners/amp.js.map +1 -1
  52. package/dist/runners/antigravity.d.ts +3 -3
  53. package/dist/runners/antigravity.js +127 -116
  54. package/dist/runners/antigravity.js.map +1 -1
  55. package/dist/runners/antigravity.replay.test.js +25 -25
  56. package/dist/runners/antigravity.replay.test.js.map +1 -1
  57. package/dist/runners/antigravity.test.js +98 -98
  58. package/dist/runners/antigravity.test.js.map +1 -1
  59. package/dist/runners/claude-code.d.ts +1 -1
  60. package/dist/runners/claude-code.js +84 -85
  61. package/dist/runners/claude-code.js.map +1 -1
  62. package/dist/runners/claude-code.test.js +40 -37
  63. package/dist/runners/claude-code.test.js.map +1 -1
  64. package/dist/runners/codex.d.ts +1 -1
  65. package/dist/runners/codex.js +96 -87
  66. package/dist/runners/codex.js.map +1 -1
  67. package/dist/runners/codex.test.js +68 -68
  68. package/dist/runners/codex.test.js.map +1 -1
  69. package/dist/runners/index.d.ts +1 -1
  70. package/dist/runners/index.js +10 -10
  71. package/dist/runners/index.test.js +16 -16
  72. package/dist/runners/log-reporter.d.ts +2 -2
  73. package/dist/runners/log-reporter.js +10 -10
  74. package/dist/runners/log-reporter.test.js +70 -70
  75. package/dist/runners/log-reporter.test.js.map +1 -1
  76. package/dist/runners/opencode.d.ts +1 -1
  77. package/dist/runners/opencode.js +75 -68
  78. package/dist/runners/opencode.js.map +1 -1
  79. package/dist/runners/process-control.d.ts +1 -1
  80. package/dist/runners/process-control.js +11 -13
  81. package/dist/runners/process-control.js.map +1 -1
  82. package/dist/runners/stream-json-parser.d.ts +1 -1
  83. package/dist/runners/stream-json-parser.js +67 -70
  84. package/dist/runners/stream-json-parser.js.map +1 -1
  85. package/dist/runners/stream-json-parser.replay.test.js +17 -17
  86. package/dist/runners/stream-json-parser.replay.test.js.map +1 -1
  87. package/dist/runners/stream-json-parser.test.js +78 -76
  88. package/dist/runners/stream-json-parser.test.js.map +1 -1
  89. package/dist/types.d.ts +4 -4
  90. package/dist/utils/auth-path-store.js +7 -7
  91. package/dist/utils/auth-path-store.test.js +29 -24
  92. package/dist/utils/auth-path-store.test.js.map +1 -1
  93. package/dist/utils/auto-update.d.ts +4 -4
  94. package/dist/utils/auto-update.js +28 -30
  95. package/dist/utils/auto-update.js.map +1 -1
  96. package/dist/utils/auto-update.test.js +30 -30
  97. package/dist/utils/convention-evaluator.d.ts +1 -1
  98. package/dist/utils/convention-evaluator.js +21 -22
  99. package/dist/utils/convention-evaluator.js.map +1 -1
  100. package/dist/utils/convention-evaluator.test.js +110 -120
  101. package/dist/utils/convention-evaluator.test.js.map +1 -1
  102. package/dist/utils/convention-sync.d.ts +3 -3
  103. package/dist/utils/convention-sync.js +10 -10
  104. package/dist/utils/convention-sync.test.js +25 -39
  105. package/dist/utils/convention-sync.test.js.map +1 -1
  106. package/dist/utils/git-worktree.js +18 -20
  107. package/dist/utils/git-worktree.js.map +1 -1
  108. package/dist/utils/git-worktree.test.js +98 -98
  109. package/dist/utils/git-worktree.test.js.map +1 -1
  110. package/dist/utils/origin-issue-safeguard.js +30 -35
  111. package/dist/utils/origin-issue-safeguard.js.map +1 -1
  112. package/dist/utils/power-save-blocker.d.ts +4 -4
  113. package/dist/utils/power-save-blocker.js +33 -33
  114. package/dist/utils/power-save-blocker.test.js +37 -37
  115. package/dist/utils/power-save-blocker.test.js.map +1 -1
  116. package/dist/utils/runner-cleanup.d.ts +3 -3
  117. package/dist/utils/runner-cleanup.js +13 -13
  118. package/dist/utils/runner-cleanup.test.js +35 -35
  119. package/dist/utils/runner-history.js +3 -3
  120. package/dist/utils/runner-history.test.js +17 -17
  121. package/package.json +1 -4
  122. package/readme.md +10 -10
@@ -1,12 +1,12 @@
1
- import { createWriteStream } from 'node:fs';
2
- import { spawn } from 'node:child_process';
3
- import { mkdir } from 'node:fs/promises';
4
- import { platform } from 'node:os';
5
- import { dirname, join } from 'node:path';
6
- import { describeExecutableResolution, resolveExecutablePathWithPreference, spawnExecutable } from '../executable.js';
7
- import { logger } from '../logger.js';
8
- import { createStreamJsonLineParser } from './stream-json-parser.js';
9
- import { setupCloseWatchdog, terminateRunnerChild } from './process-control.js';
1
+ import { createWriteStream } from "node:fs";
2
+ import { spawn } from "node:child_process";
3
+ import { mkdir } from "node:fs/promises";
4
+ import { platform } from "node:os";
5
+ import { dirname, join } from "node:path";
6
+ import { describeExecutableResolution, resolveExecutablePathWithPreference, spawnExecutable } from "../executable.js";
7
+ import { logger } from "../logger.js";
8
+ import { createStreamJsonLineParser } from "./stream-json-parser.js";
9
+ import { setupCloseWatchdog, terminateRunnerChild } from "./process-control.js";
10
10
  const PROMPT_PREVIEW_MAX = 500;
11
11
  const OUTPUT_PREVIEW_MAX = 400;
12
12
  const OUTPUT_CAPTURE_MAX = 200_000;
@@ -16,17 +16,9 @@ const OUTPUT_CAPTURE_MAX = 200_000;
16
16
  // session; if the installed CLI does not recognize it, the option is silently ignored.
17
17
  const FAST_MODE_SETTINGS_JSON = JSON.stringify({ fastMode: true });
18
18
  export const buildClaudeCodeArgs = (model, fastMode = false) => {
19
- const modelArgs = model ? ['--model', model] : [];
20
- const settingsArgs = fastMode ? ['--settings', FAST_MODE_SETTINGS_JSON] : [];
21
- return [
22
- '-p',
23
- '--output-format',
24
- 'stream-json',
25
- '--verbose',
26
- '--dangerously-skip-permissions',
27
- ...settingsArgs,
28
- ...modelArgs,
29
- ];
19
+ const modelArgs = model ? ["--model", model] : [];
20
+ const settingsArgs = fastMode ? ["--settings", FAST_MODE_SETTINGS_JSON] : [];
21
+ return ["-p", "--output-format", "stream-json", "--verbose", "--dangerously-skip-permissions", ...settingsArgs, ...modelArgs];
30
22
  };
31
23
  export const extractResultTextFromStreamJson = (outputText) => {
32
24
  const trimmedOutput = outputText.trim();
@@ -36,12 +28,12 @@ export const extractResultTextFromStreamJson = (outputText) => {
36
28
  .filter((line) => line.length > 0);
37
29
  for (let index = lines.length - 1; index >= 0; index -= 1) {
38
30
  const line = lines[index];
39
- if (!line.includes('"type":"result"')) {
31
+ if (!line.includes("\"type\":\"result\"")) {
40
32
  continue;
41
33
  }
42
34
  try {
43
35
  const parsed = JSON.parse(line);
44
- if (parsed.type === 'result' && typeof parsed.result === 'string' && parsed.result.trim().length > 0) {
36
+ if (parsed.type === "result" && typeof parsed.result === "string" && parsed.result.trim().length > 0) {
45
37
  return parsed.result.trim();
46
38
  }
47
39
  }
@@ -54,20 +46,20 @@ export const extractResultTextFromStreamJson = (outputText) => {
54
46
  const toPowerShellEncodedCommand = (resolvedExecutablePath, prompt, model, fastMode = false) => {
55
47
  const argSegment = buildClaudeCodeArgs(model, fastMode)
56
48
  .map((arg) => ` '${arg.replaceAll("'", "''")}'`)
57
- .join('');
49
+ .join("");
58
50
  const scriptContent = [
59
51
  "$ErrorActionPreference = 'Stop'",
60
- '$utf8NoBom = [System.Text.UTF8Encoding]::new($false)',
61
- '[Console]::InputEncoding = $utf8NoBom',
62
- '[Console]::OutputEncoding = $utf8NoBom',
63
- '$OutputEncoding = $utf8NoBom',
64
- 'chcp 65001 > $null',
52
+ "$utf8NoBom = [System.Text.UTF8Encoding]::new($false)",
53
+ "[Console]::InputEncoding = $utf8NoBom",
54
+ "[Console]::OutputEncoding = $utf8NoBom",
55
+ "$OutputEncoding = $utf8NoBom",
56
+ "chcp 65001 > $null",
65
57
  `$promptText = @'`,
66
58
  `${prompt.replaceAll("'@", "'@")}`,
67
59
  `'@`,
68
- `$promptText | & '${resolvedExecutablePath.replaceAll("'", "''")}'${argSegment}`,
69
- ].join('\r\n');
70
- return Buffer.from(scriptContent, 'utf16le').toString('base64');
60
+ `$promptText | & '${resolvedExecutablePath.replaceAll("'", "''")}'${argSegment}`
61
+ ].join("\r\n");
62
+ return Buffer.from(scriptContent, "utf16le").toString("base64");
71
63
  };
72
64
  const toPromptPreview = (prompt) => {
73
65
  if (prompt.length <= PROMPT_PREVIEW_MAX) {
@@ -76,7 +68,7 @@ const toPromptPreview = (prompt) => {
76
68
  return `${prompt.slice(0, PROMPT_PREVIEW_MAX)}...`;
77
69
  };
78
70
  const toOutputPreview = (chunk) => {
79
- const text = (typeof chunk === 'string' ? chunk : String(chunk)).trim();
71
+ const text = (typeof chunk === "string" ? chunk : String(chunk)).trim();
80
72
  if (text.length <= OUTPUT_PREVIEW_MAX) {
81
73
  return text;
82
74
  }
@@ -85,27 +77,27 @@ const toOutputPreview = (chunk) => {
85
77
  export class ClaudeCodeRunner {
86
78
  async run(opts) {
87
79
  if (!opts.authPath || opts.authPath.trim().length === 0) {
88
- logger.error('authPath is missing for trigger');
80
+ logger.error("authPath is missing for trigger");
89
81
  return {
90
82
  exitCode: 1,
91
- errorMessage: 'authPath is missing for trigger',
83
+ errorMessage: "authPath is missing for trigger"
92
84
  };
93
85
  }
94
86
  const cwd = opts.authPath;
95
- const logPath = join(cwd, '.agentteams', 'runner', 'log', `${opts.triggerId}.log`);
87
+ const logPath = join(cwd, ".agentteams", "runner", "log", `${opts.triggerId}.log`);
96
88
  await mkdir(dirname(logPath), { recursive: true });
97
- const isWindows = platform() === 'win32';
89
+ const isWindows = platform() === "win32";
98
90
  const resolvedExecutablePath = isWindows
99
- ? resolveExecutablePathWithPreference('claude', ['claude.cmd', 'claude'])
100
- : resolveExecutablePathWithPreference('claude', ['claude']);
91
+ ? resolveExecutablePathWithPreference("claude", ["claude.cmd", "claude"])
92
+ : resolveExecutablePathWithPreference("claude", ["claude"]);
101
93
  const windowsEncodedCommand = isWindows
102
94
  ? toPowerShellEncodedCommand(resolvedExecutablePath, opts.prompt, opts.model, opts.fastMode === true)
103
95
  : null;
104
96
  const claudeArgs = buildClaudeCodeArgs(opts.model, opts.fastMode === true);
105
- const executableInfo = describeExecutableResolution('claude', {
106
- platform: () => (isWindows ? 'win32' : platform()),
97
+ const executableInfo = describeExecutableResolution("claude", {
98
+ platform: () => (isWindows ? "win32" : platform())
107
99
  });
108
- logger.info('Runner prompt', {
100
+ logger.info("Runner prompt", {
109
101
  triggerId: opts.triggerId,
110
102
  promptLength: opts.prompt.length,
111
103
  promptPreview: toPromptPreview(opts.prompt),
@@ -114,47 +106,54 @@ export class ClaudeCodeRunner {
114
106
  platform: executableInfo.platform,
115
107
  shell: executableInfo.shell,
116
108
  detached: isWindows ? false : true,
117
- windowsWrapper: isWindows ? 'powershell.exe -EncodedCommand' : null,
118
- fastMode: opts.fastMode === true,
109
+ windowsWrapper: isWindows ? "powershell.exe -EncodedCommand" : null,
110
+ fastMode: opts.fastMode === true
119
111
  });
120
112
  const child = isWindows
121
- ? spawn('powershell.exe', ['-NoLogo', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-EncodedCommand', windowsEncodedCommand ?? ''], {
113
+ ? spawn("powershell.exe", [
114
+ "-NoLogo",
115
+ "-NonInteractive",
116
+ "-ExecutionPolicy",
117
+ "Bypass",
118
+ "-EncodedCommand",
119
+ windowsEncodedCommand ?? ""
120
+ ], {
122
121
  cwd,
123
122
  detached: false,
124
123
  shell: false,
125
124
  windowsHide: true,
126
- stdio: ['ignore', 'pipe', 'pipe'],
125
+ stdio: ["ignore", "pipe", "pipe"],
127
126
  env: {
128
127
  ...process.env,
129
128
  AGENTTEAMS_API_KEY: opts.apiKey,
130
129
  AGENTTEAMS_API_URL: opts.apiUrl,
131
130
  AGENTTEAMS_TEAM_ID: opts.teamId,
132
131
  AGENTTEAMS_PROJECT_ID: opts.projectId,
133
- AGENTTEAMS_AGENT_NAME: opts.agentConfigId,
134
- },
132
+ AGENTTEAMS_AGENT_NAME: opts.agentConfigId
133
+ }
135
134
  })
136
- : spawnExecutable('claude', [...claudeArgs, opts.prompt], {
135
+ : spawnExecutable("claude", [...claudeArgs, opts.prompt], {
137
136
  cwd,
138
137
  detached: true,
139
- stdio: ['ignore', 'pipe', 'pipe'],
138
+ stdio: ["ignore", "pipe", "pipe"],
140
139
  env: {
141
140
  ...process.env,
142
141
  AGENTTEAMS_API_KEY: opts.apiKey,
143
142
  AGENTTEAMS_API_URL: opts.apiUrl,
144
143
  AGENTTEAMS_TEAM_ID: opts.teamId,
145
144
  AGENTTEAMS_PROJECT_ID: opts.projectId,
146
- AGENTTEAMS_AGENT_NAME: opts.agentConfigId,
147
- },
145
+ AGENTTEAMS_AGENT_NAME: opts.agentConfigId
146
+ }
148
147
  });
149
- const logStream = createWriteStream(logPath, { flags: 'a' });
150
- logStream.on('error', (err) => {
151
- logger.warn('Runner log stream error', { triggerId: opts.triggerId, error: err.message });
148
+ const logStream = createWriteStream(logPath, { flags: "a" });
149
+ logStream.on("error", (err) => {
150
+ logger.warn("Runner log stream error", { triggerId: opts.triggerId, error: err.message });
152
151
  });
153
152
  child.stdout?.pipe(logStream);
154
153
  child.stderr?.pipe(logStream);
155
- let lastOutput = '';
156
- let lastErrorOutput = '';
157
- let outputText = '';
154
+ let lastOutput = "";
155
+ let lastErrorOutput = "";
156
+ let outputText = "";
158
157
  const appendOutputText = (chunk) => {
159
158
  if (outputText.length >= OUTPUT_CAPTURE_MAX) {
160
159
  return;
@@ -167,40 +166,40 @@ export class ClaudeCodeRunner {
167
166
  opts.onStdoutChunk?.(entry.message);
168
167
  }
169
168
  }, { cwd });
170
- child.stdout?.on('data', (chunk) => {
171
- const rawOutput = Buffer.isBuffer(chunk) ? chunk.toString('utf8') : String(chunk);
169
+ child.stdout?.on("data", (chunk) => {
170
+ const rawOutput = Buffer.isBuffer(chunk) ? chunk.toString("utf8") : String(chunk);
172
171
  appendOutputText(rawOutput);
173
172
  streamParser.push(rawOutput);
174
173
  const output = toOutputPreview(rawOutput);
175
174
  if (output.length > 0) {
176
175
  lastOutput = output;
177
176
  idleTimer.reset();
178
- logger.info('Runner stdout', {
177
+ logger.info("Runner stdout", {
179
178
  triggerId: opts.triggerId,
180
179
  pid: child.pid,
181
- output,
180
+ output
182
181
  });
183
182
  }
184
183
  });
185
- child.stderr?.on('data', (chunk) => {
186
- const output = toOutputPreview(Buffer.isBuffer(chunk) ? chunk.toString('utf8') : chunk);
184
+ child.stderr?.on("data", (chunk) => {
185
+ const output = toOutputPreview(Buffer.isBuffer(chunk) ? chunk.toString("utf8") : chunk);
187
186
  if (output.length > 0) {
188
187
  lastOutput = output;
189
188
  lastErrorOutput = output;
190
189
  idleTimer.reset();
191
190
  opts.onStderrChunk?.(output);
192
- logger.warn('Runner stderr', {
191
+ logger.warn("Runner stderr", {
193
192
  triggerId: opts.triggerId,
194
193
  pid: child.pid,
195
- output,
194
+ output
196
195
  });
197
196
  }
198
197
  });
199
- logger.info('Runner started', {
198
+ logger.info("Runner started", {
200
199
  triggerId: opts.triggerId,
201
200
  cwd,
202
201
  logPath,
203
- pid: child.pid,
202
+ pid: child.pid
204
203
  });
205
204
  return await new Promise((resolve) => {
206
205
  let finished = false;
@@ -215,11 +214,11 @@ export class ClaudeCodeRunner {
215
214
  idleTimeoutId = setTimeout(() => {
216
215
  idleTimedOut = true;
217
216
  timedOut = true;
218
- logger.warn('Runner idle timeout reached; no output for configured idle period', {
217
+ logger.warn("Runner idle timeout reached; no output for configured idle period", {
219
218
  triggerId: opts.triggerId,
220
- idleTimeoutMs: opts.idleTimeoutMs,
219
+ idleTimeoutMs: opts.idleTimeoutMs
221
220
  });
222
- terminateRunnerChild(child, isWindows, opts.triggerId, 'timeout');
221
+ terminateRunnerChild(child, isWindows, opts.triggerId, "timeout");
223
222
  }, opts.idleTimeoutMs);
224
223
  };
225
224
  idleTimer.reset = () => {
@@ -237,61 +236,61 @@ export class ClaudeCodeRunner {
237
236
  idleTimer.reset = () => { };
238
237
  logStream.end();
239
238
  if (opts.signal) {
240
- opts.signal.removeEventListener('abort', handleAbort);
239
+ opts.signal.removeEventListener("abort", handleAbort);
241
240
  }
242
241
  };
243
242
  const handleAbort = () => {
244
243
  cancelled = true;
245
- terminateRunnerChild(child, isWindows, opts.triggerId, 'cancel');
244
+ terminateRunnerChild(child, isWindows, opts.triggerId, "cancel");
246
245
  };
247
246
  const timeoutId = setTimeout(() => {
248
247
  timedOut = true;
249
- terminateRunnerChild(child, isWindows, opts.triggerId, 'timeout');
248
+ terminateRunnerChild(child, isWindows, opts.triggerId, "timeout");
250
249
  }, opts.timeoutMs);
251
250
  if (opts.signal?.aborted) {
252
251
  handleAbort();
253
252
  }
254
253
  else if (opts.signal) {
255
- opts.signal.addEventListener('abort', handleAbort, { once: true });
254
+ opts.signal.addEventListener("abort", handleAbort, { once: true });
256
255
  }
257
- child.on('error', (error) => {
256
+ child.on("error", (error) => {
258
257
  clearTimeout(timeoutId);
259
258
  cleanup();
260
- logger.error('Runner process launch failed', {
259
+ logger.error("Runner process launch failed", {
261
260
  triggerId: opts.triggerId,
262
- error: error.message,
261
+ error: error.message
263
262
  });
264
263
  resolve({
265
264
  exitCode: 1,
266
265
  lastOutput,
267
266
  outputText: outputText.trim() || undefined,
268
- errorMessage: error.message,
267
+ errorMessage: error.message
269
268
  });
270
269
  });
271
270
  const closeWatchdog = setupCloseWatchdog(child, opts.triggerId);
272
- child.on('close', (code) => {
271
+ child.on("close", (code) => {
273
272
  closeWatchdog.cancel();
274
273
  clearTimeout(timeoutId);
275
274
  streamParser.flush();
276
275
  cleanup();
277
- logger.info('Runner process closed', {
276
+ logger.info("Runner process closed", {
278
277
  triggerId: opts.triggerId,
279
278
  pid: child.pid,
280
279
  exitCode: code,
281
- timedOut,
280
+ timedOut
282
281
  });
283
282
  if (timedOut) {
284
283
  const trimmedOutputText = outputText.trim();
285
284
  const resolvedOutputText = idleTimedOut && trimmedOutputText.length > 0
286
285
  ? extractResultTextFromStreamJson(outputText)
287
- : trimmedOutputText || undefined;
286
+ : (trimmedOutputText || undefined);
288
287
  resolve({
289
288
  exitCode: 1,
290
289
  lastOutput,
291
290
  outputText: resolvedOutputText,
292
291
  errorMessage: idleTimedOut
293
292
  ? `Runner idle timed out after ${Math.round(opts.idleTimeoutMs / 60_000)}m of no output`
294
- : `Runner fail-safe timed out after ${Math.round(opts.timeoutMs / 3_600_000)}h`,
293
+ : `Runner fail-safe timed out after ${Math.round(opts.timeoutMs / 3_600_000)}h`
295
294
  });
296
295
  return;
297
296
  }
@@ -301,7 +300,7 @@ export class ClaudeCodeRunner {
301
300
  cancelled: true,
302
301
  lastOutput,
303
302
  outputText: outputText.trim() || undefined,
304
- errorMessage: 'Runner cancelled by user',
303
+ errorMessage: "Runner cancelled by user"
305
304
  });
306
305
  return;
307
306
  }
@@ -309,7 +308,7 @@ export class ClaudeCodeRunner {
309
308
  exitCode: code ?? 1,
310
309
  lastOutput,
311
310
  outputText: outputText.trim() || undefined,
312
- errorMessage: code === 0 ? undefined : lastErrorOutput || lastOutput || `Runner exited with code ${code ?? 1}`,
311
+ errorMessage: code === 0 ? undefined : (lastErrorOutput || lastOutput || `Runner exited with code ${code ?? 1}`)
313
312
  });
314
313
  });
315
314
  });
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/runners/claude-code.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACtH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAGhF,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAC/B,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAEnC,wFAAwF;AACxF,oFAAoF;AACpF,sFAAsF;AACtF,uFAAuF;AACvF,MAAM,uBAAuB,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAqB,EAAE,QAAQ,GAAG,KAAK,EAAY,EAAE;IACvF,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7E,OAAO;QACL,IAAI;QACJ,iBAAiB;QACjB,aAAa;QACb,WAAW;QACX,gCAAgC;QAChC,GAAG,YAAY;QACf,GAAG,SAAS;KACb,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,UAAkB,EAAU,EAAE;IAC5E,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,aAAa;SACxB,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAErC,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACtC,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwC,CAAC;YACvE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrG,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,aAAa,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,sBAA8B,EAC9B,MAAc,EACd,KAAqB,EACrB,QAAQ,GAAG,KAAK,EACR,EAAE;IACV,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC;SACpD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;SAC/C,IAAI,CAAC,EAAE,CAAC,CAAC;IACZ,MAAM,aAAa,GAAG;QACpB,iCAAiC;QACjC,sDAAsD;QACtD,uCAAuC;QACvC,wCAAwC;QACxC,8BAA8B;QAC9B,oBAAoB;QACpB,kBAAkB;QAClB,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAClC,IAAI;QACJ,oBAAoB,sBAAsB,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,UAAU,EAAE;KACjF,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEf,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,MAAc,EAAU,EAAE;IACjD,IAAI,MAAM,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAc,EAAU,EAAE;IACjD,MAAM,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxE,IAAI,IAAI,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,OAAO,gBAAgB;IAC3B,KAAK,CAAC,GAAG,CAAC,IAAmB;QAC3B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YAChD,OAAO;gBACL,QAAQ,EAAE,CAAC;gBACX,YAAY,EAAE,iCAAiC;aAChD,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,SAAS,MAAM,CAAC,CAAC;QACnF,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC;QACzC,MAAM,sBAAsB,GAAG,SAAS;YACtC,CAAC,CAAC,mCAAmC,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACzE,CAAC,CAAC,mCAAmC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,MAAM,qBAAqB,GAAG,SAAS;YACrC,CAAC,CAAC,0BAA0B,CAAC,sBAAsB,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;YACrG,CAAC,CAAC,IAAI,CAAC;QACT,MAAM,UAAU,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QAC3E,MAAM,cAAc,GAAG,4BAA4B,CAAC,QAAQ,EAAE;YAC5D,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;SACnD,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAChC,aAAa,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3C,gBAAgB,EAAE,cAAc,CAAC,gBAAgB;YACjD,sBAAsB;YACtB,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,KAAK,EAAE,cAAc,CAAC,KAAK;YAC3B,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;YAClC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,IAAI;YACnE,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI;SACjC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,SAAS;YACrB,CAAC,CAAC,KAAK,CACH,gBAAgB,EAChB,CAAC,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,qBAAqB,IAAI,EAAE,CAAC,EAC5G;gBACE,GAAG;gBACH,QAAQ,EAAE,KAAK;gBACf,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,kBAAkB,EAAE,IAAI,CAAC,MAAM;oBAC/B,kBAAkB,EAAE,IAAI,CAAC,MAAM;oBAC/B,kBAAkB,EAAE,IAAI,CAAC,MAAM;oBAC/B,qBAAqB,EAAE,IAAI,CAAC,SAAS;oBACrC,qBAAqB,EAAE,IAAI,CAAC,aAAa;iBAC1C;aACF,CACF;YACH,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,GAAG,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE;gBACtD,GAAG;gBACH,QAAQ,EAAE,IAAI;gBACd,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,kBAAkB,EAAE,IAAI,CAAC,MAAM;oBAC/B,kBAAkB,EAAE,IAAI,CAAC,MAAM;oBAC/B,kBAAkB,EAAE,IAAI,CAAC,MAAM;oBAC/B,qBAAqB,EAAE,IAAI,CAAC,SAAS;oBACrC,qBAAqB,EAAE,IAAI,CAAC,aAAa;iBAC1C;aACF,CAAC,CAAC;QAEP,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YAC5B,MAAM,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5F,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,eAAe,GAAG,EAAE,CAAC;QACzB,IAAI,UAAU,GAAG,EAAE,CAAC;QAEpB,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE;YACzC,IAAI,UAAU,CAAC,MAAM,IAAI,kBAAkB,EAAE,CAAC;gBAC5C,OAAO;YACT,CAAC;YAED,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,EAAE,KAAK,EAAE,GAAS,EAAE,GAAE,CAAC,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAG,0BAA0B,CAC7C,CAAC,OAAO,EAAE,EAAE;YACV,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,EACD,EAAE,GAAG,EAAE,CACR,CAAC;QACF,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAClF,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAC5B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,UAAU,GAAG,MAAM,CAAC;gBACpB,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;oBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,UAAU,GAAG,MAAM,CAAC;gBACpB,eAAe,GAAG,MAAM,CAAC;gBACzB,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;oBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,MAAM;iBACP,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAC5B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,GAAG;YACH,OAAO;YACP,GAAG,EAAE,KAAK,CAAC,GAAG;SACf,CAAC,CAAC;QAEH,OAAO,MAAM,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,EAAE;YAC9C,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,SAAS,GAAG,KAAK,CAAC;YAEtB,IAAI,aAAa,GAAyC,IAAI,CAAC;YAE/D,MAAM,gBAAgB,GAAG,GAAG,EAAE;gBAC5B,IAAI,aAAa,EAAE,CAAC;oBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC9B,CAAC;gBAED,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC9B,YAAY,GAAG,IAAI,CAAC;oBACpB,QAAQ,GAAG,IAAI,CAAC;oBAChB,MAAM,CAAC,IAAI,CAAC,mEAAmE,EAAE;wBAC/E,SAAS,EAAE,IAAI,CAAC,SAAS;wBACzB,aAAa,EAAE,IAAI,CAAC,aAAa;qBAClC,CAAC,CAAC;oBACH,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACpE,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACzB,CAAC,CAAC;YAEF,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE;gBACrB,gBAAgB,EAAE,CAAC;YACrB,CAAC,CAAC;YAEF,gBAAgB,EAAE,CAAC;YAEnB,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO;gBACT,CAAC;gBAED,QAAQ,GAAG,IAAI,CAAC;gBAChB,IAAI,aAAa,EAAE,CAAC;oBAClB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC9B,CAAC;gBAED,SAAS,CAAC,KAAK,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;gBAC3B,SAAS,CAAC,GAAG,EAAE,CAAC;gBAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC,CAAC;YACF,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,SAAS,GAAG,IAAI,CAAC;gBACjB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACnE,CAAC,CAAC;YACF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;gBAChC,QAAQ,GAAG,IAAI,CAAC;gBAChB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACpE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEnB,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACzB,WAAW,EAAE,CAAC;YAChB,CAAC;iBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,CAAC;YAED,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1B,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;oBAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,KAAK,EAAE,KAAK,CAAC,OAAO;iBACrB,CAAC,CAAC;gBACH,OAAO,CAAC;oBACN,QAAQ,EAAE,CAAC;oBACX,UAAU;oBACV,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,SAAS;oBAC1C,YAAY,EAAE,KAAK,CAAC,OAAO;iBAC5B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAEhE,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,aAAa,CAAC,MAAM,EAAE,CAAC;gBACvB,YAAY,CAAC,SAAS,CAAC,CAAC;gBACxB,YAAY,CAAC,KAAK,EAAE,CAAC;gBACrB,OAAO,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;oBACnC,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,IAAI;oBACd,QAAQ;iBACT,CAAC,CAAC;gBAEH,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,iBAAiB,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;oBAC5C,MAAM,kBAAkB,GACtB,YAAY,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC;wBAC1C,CAAC,CAAC,+BAA+B,CAAC,UAAU,CAAC;wBAC7C,CAAC,CAAC,iBAAiB,IAAI,SAAS,CAAC;oBACrC,OAAO,CAAC;wBACN,QAAQ,EAAE,CAAC;wBACX,UAAU;wBACV,UAAU,EAAE,kBAAkB;wBAC9B,YAAY,EAAE,YAAY;4BACxB,CAAC,CAAC,+BAA+B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,gBAAgB;4BACxF,CAAC,CAAC,oCAAoC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG;qBAClF,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,CAAC;wBACN,QAAQ,EAAE,CAAC;wBACX,SAAS,EAAE,IAAI;wBACf,UAAU;wBACV,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,SAAS;wBAC1C,YAAY,EAAE,0BAA0B;qBACzC,CAAC,CAAC;oBACH,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC;oBACN,QAAQ,EAAE,IAAI,IAAI,CAAC;oBACnB,UAAU;oBACV,UAAU,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,SAAS;oBAC1C,YAAY,EACV,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,IAAI,UAAU,IAAI,2BAA2B,IAAI,IAAI,CAAC,EAAE;iBACnG,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"claude-code.js","sourceRoot":"","sources":["../../src/runners/claude-code.ts"],"names":[],"mappings":"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"}
@@ -1,49 +1,52 @@
1
- import assert from 'node:assert/strict';
2
- import test from 'node:test';
3
- import { buildClaudeCodeArgs, extractResultTextFromStreamJson } from './claude-code.js';
4
- test('buildClaudeCodeArgs enables stream-json mode with verbose output', () => {
5
- assert.deepEqual(buildClaudeCodeArgs('claude-sonnet'), [
6
- '-p',
7
- '--output-format',
8
- 'stream-json',
9
- '--verbose',
10
- '--dangerously-skip-permissions',
11
- '--model',
12
- 'claude-sonnet',
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { buildClaudeCodeArgs, extractResultTextFromStreamJson } from "./claude-code.js";
4
+ test("buildClaudeCodeArgs enables stream-json mode with verbose output", () => {
5
+ assert.deepEqual(buildClaudeCodeArgs("claude-sonnet"), [
6
+ "-p",
7
+ "--output-format",
8
+ "stream-json",
9
+ "--verbose",
10
+ "--dangerously-skip-permissions",
11
+ "--model",
12
+ "claude-sonnet"
13
13
  ]);
14
14
  });
15
- test('buildClaudeCodeArgs omits the model flag when no model is provided', () => {
15
+ test("buildClaudeCodeArgs omits the model flag when no model is provided", () => {
16
16
  assert.deepEqual(buildClaudeCodeArgs(null), [
17
- '-p',
18
- '--output-format',
19
- 'stream-json',
20
- '--verbose',
21
- '--dangerously-skip-permissions',
17
+ "-p",
18
+ "--output-format",
19
+ "stream-json",
20
+ "--verbose",
21
+ "--dangerously-skip-permissions"
22
22
  ]);
23
23
  });
24
- test('buildClaudeCodeArgs injects fast mode settings', () => {
25
- assert.deepEqual(buildClaudeCodeArgs('claude-opus-4-7', true), [
26
- '-p',
27
- '--output-format',
28
- 'stream-json',
29
- '--verbose',
30
- '--dangerously-skip-permissions',
31
- '--settings',
32
- '{"fastMode":true}',
33
- '--model',
34
- 'claude-opus-4-7',
24
+ test("buildClaudeCodeArgs injects fast mode settings", () => {
25
+ assert.deepEqual(buildClaudeCodeArgs("claude-opus-4-7", true), [
26
+ "-p",
27
+ "--output-format",
28
+ "stream-json",
29
+ "--verbose",
30
+ "--dangerously-skip-permissions",
31
+ "--settings",
32
+ "{\"fastMode\":true}",
33
+ "--model",
34
+ "claude-opus-4-7"
35
35
  ]);
36
36
  });
37
- test('extractResultTextFromStreamJson returns the final result payload', () => {
37
+ test("extractResultTextFromStreamJson returns the final result payload", () => {
38
38
  const output = [
39
- '{"type":"message_start"}',
40
- '{"type":"content_block_delta","delta":"thinking"}',
41
- '{"type":"result","result":"Final answer"}',
42
- ].join('\n');
43
- assert.equal(extractResultTextFromStreamJson(output), 'Final answer');
39
+ "{\"type\":\"message_start\"}",
40
+ "{\"type\":\"content_block_delta\",\"delta\":\"thinking\"}",
41
+ "{\"type\":\"result\",\"result\":\"Final answer\"}"
42
+ ].join("\n");
43
+ assert.equal(extractResultTextFromStreamJson(output), "Final answer");
44
44
  });
45
- test('extractResultTextFromStreamJson falls back to raw output when result parsing fails', () => {
46
- const output = ['{"type":"message_start"}', '{"type":"result","result":'].join('\n');
45
+ test("extractResultTextFromStreamJson falls back to raw output when result parsing fails", () => {
46
+ const output = [
47
+ "{\"type\":\"message_start\"}",
48
+ "{\"type\":\"result\",\"result\":"
49
+ ].join("\n");
47
50
  assert.equal(extractResultTextFromStreamJson(output), output);
48
51
  });
49
52
  //# sourceMappingURL=claude-code.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"claude-code.test.js","sourceRoot":"","sources":["../../src/runners/claude-code.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AAExF,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE;QACrD,IAAI;QACJ,iBAAiB;QACjB,aAAa;QACb,WAAW;QACX,gCAAgC;QAChC,SAAS;QACT,eAAe;KAChB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;IAC9E,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAC1C,IAAI;QACJ,iBAAiB;QACjB,aAAa;QACb,WAAW;QACX,gCAAgC;KACjC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC1D,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE;QAC7D,IAAI;QACJ,iBAAiB;QACjB,aAAa;QACb,WAAW;QACX,gCAAgC;QAChC,YAAY;QACZ,mBAAmB;QACnB,SAAS;QACT,iBAAiB;KAClB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,MAAM,GAAG;QACb,0BAA0B;QAC1B,mDAAmD;QACnD,2CAA2C;KAC5C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oFAAoF,EAAE,GAAG,EAAE;IAC9F,MAAM,MAAM,GAAG,CAAC,0BAA0B,EAAE,4BAA4B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAErF,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"claude-code.test.js","sourceRoot":"","sources":["../../src/runners/claude-code.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,MAAM,kBAAkB,CAAC;AAExF,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAAE;QACrD,IAAI;QACJ,iBAAiB;QACjB,aAAa;QACb,WAAW;QACX,gCAAgC;QAChC,SAAS;QACT,eAAe;KAChB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;IAC9E,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAC1C,IAAI;QACJ,iBAAiB;QACjB,aAAa;QACb,WAAW;QACX,gCAAgC;KACjC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,GAAG,EAAE;IAC1D,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,EAAE;QAC7D,IAAI;QACJ,iBAAiB;QACjB,aAAa;QACb,WAAW;QACX,gCAAgC;QAChC,YAAY;QACZ,qBAAqB;QACrB,SAAS;QACT,iBAAiB;KAClB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kEAAkE,EAAE,GAAG,EAAE;IAC5E,MAAM,MAAM,GAAG;QACb,8BAA8B;QAC9B,2DAA2D;QAC3D,mDAAmD;KACpD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,oFAAoF,EAAE,GAAG,EAAE;IAC9F,MAAM,MAAM,GAAG;QACb,8BAA8B;QAC9B,kCAAkC;KACnC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Runner, RunnerOptions, RunResult } from './types.js';
1
+ import type { Runner, RunnerOptions, RunResult } from "./types.js";
2
2
  export declare const resolveCodexSandboxLevel: (rawValue?: string | undefined) => "workspace-write" | "off";
3
3
  export declare const buildCodexExecArgs: (prompt: string, model?: string | null, sandboxLevel?: "workspace-write" | "off", fastMode?: boolean) => string[];
4
4
  export declare const toPowerShellEncodedCommand: (resolvedExecutablePath: string, promptFilePath: string, model?: string | null, sandboxLevel?: "workspace-write" | "off", fastMode?: boolean) => string;