@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,49 +1,51 @@
1
- import { createWriteStream } from 'node:fs';
2
- import { spawn } from 'node:child_process';
3
- import { mkdir, rm, writeFile } 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 { setupCloseWatchdog, terminateRunnerChild } from './process-control.js';
1
+ import { createWriteStream } from "node:fs";
2
+ import { spawn } from "node:child_process";
3
+ import { mkdir, rm, writeFile } 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 { setupCloseWatchdog, terminateRunnerChild } from "./process-control.js";
9
9
  const PROMPT_PREVIEW_MAX = 500;
10
10
  const OUTPUT_PREVIEW_MAX = 400;
11
11
  const OUTPUT_CAPTURE_MAX = 200_000;
12
- const DEFAULT_CODEX_SANDBOX_LEVEL = 'workspace-write';
12
+ const DEFAULT_CODEX_SANDBOX_LEVEL = "workspace-write";
13
13
  export const resolveCodexSandboxLevel = (rawValue = process.env.CODEX_SANDBOX_LEVEL) => {
14
- if (rawValue?.trim() === 'off') {
15
- return 'off';
14
+ if (rawValue?.trim() === "off") {
15
+ return "off";
16
16
  }
17
17
  return DEFAULT_CODEX_SANDBOX_LEVEL;
18
18
  };
19
19
  export const buildCodexExecArgs = (prompt, model, sandboxLevel = resolveCodexSandboxLevel(), fastMode = false) => {
20
- const baseArgs = sandboxLevel === 'off'
21
- ? ['-a', 'never', 'exec', '--dangerously-bypass-approvals-and-sandbox']
22
- : ['-a', 'never', 'exec', '-s', 'workspace-write', '-c', 'sandbox_workspace_write.network_access=true'];
23
- const fastModeArgs = fastMode ? ['-c', 'features.fast_mode=true', '-c', 'service_tier="fast"'] : [];
24
- return model ? [...baseArgs, ...fastModeArgs, '--model', model, prompt] : [...baseArgs, ...fastModeArgs, prompt];
20
+ const baseArgs = sandboxLevel === "off"
21
+ ? ["-a", "never", "exec", "--dangerously-bypass-approvals-and-sandbox"]
22
+ : ["-a", "never", "exec", "-s", "workspace-write", "-c", "sandbox_workspace_write.network_access=true"];
23
+ const fastModeArgs = fastMode
24
+ ? ["-c", "features.fast_mode=true", "-c", "service_tier=\"fast\""]
25
+ : [];
26
+ return model ? [...baseArgs, ...fastModeArgs, "--model", model, prompt] : [...baseArgs, ...fastModeArgs, prompt];
25
27
  };
26
28
  const toPowerShellLiteral = (value) => `'${value.replaceAll("'", "''")}'`;
27
29
  // Windows에서는 전체 prompt를 command line(-EncodedCommand)에 싣지 않고 UTF-8 임시 파일로 전달한다.
28
30
  // prompt를 직접 인자로 넘기면 길이가 커질 때 `spawn ENAMETOOLONG`이 발생하므로,
29
31
  // encoded command에는 prompt 파일 경로만 포함하고 PowerShell에서 UTF-8(no BOM)로 읽어 Codex stdin에 pipe한다.
30
32
  export const toPowerShellEncodedCommand = (resolvedExecutablePath, promptFilePath, model, sandboxLevel = resolveCodexSandboxLevel(), fastMode = false) => {
31
- const sandboxSegment = sandboxLevel === 'off'
33
+ const sandboxSegment = sandboxLevel === "off"
32
34
  ? "'--dangerously-bypass-approvals-and-sandbox'"
33
35
  : "'-s' 'workspace-write' '-c' 'sandbox_workspace_write.network_access=true'";
34
- const modelSegment = model ? ` '--model' ${toPowerShellLiteral(model)}` : '';
35
- const fastModeSegment = fastMode ? " '-c' 'features.fast_mode=true' '-c' 'service_tier=\"fast\"'" : '';
36
+ const modelSegment = model ? ` '--model' ${toPowerShellLiteral(model)}` : "";
37
+ const fastModeSegment = fastMode ? " '-c' 'features.fast_mode=true' '-c' 'service_tier=\"fast\"'" : "";
36
38
  const scriptContent = [
37
39
  "$ErrorActionPreference = 'Stop'",
38
- '$utf8NoBom = [System.Text.UTF8Encoding]::new($false)',
39
- '[Console]::InputEncoding = $utf8NoBom',
40
- '[Console]::OutputEncoding = $utf8NoBom',
41
- '$OutputEncoding = $utf8NoBom',
42
- 'chcp 65001 > $null',
40
+ "$utf8NoBom = [System.Text.UTF8Encoding]::new($false)",
41
+ "[Console]::InputEncoding = $utf8NoBom",
42
+ "[Console]::OutputEncoding = $utf8NoBom",
43
+ "$OutputEncoding = $utf8NoBom",
44
+ "chcp 65001 > $null",
43
45
  `$promptText = [System.IO.File]::ReadAllText(${toPowerShellLiteral(promptFilePath)}, $utf8NoBom)`,
44
- `$promptText | & ${toPowerShellLiteral(resolvedExecutablePath)} '-a' 'never' 'exec' ${sandboxSegment}${fastModeSegment}${modelSegment}`,
45
- ].join('\r\n');
46
- return Buffer.from(scriptContent, 'utf16le').toString('base64');
46
+ `$promptText | & ${toPowerShellLiteral(resolvedExecutablePath)} '-a' 'never' 'exec' ${sandboxSegment}${fastModeSegment}${modelSegment}`
47
+ ].join("\r\n");
48
+ return Buffer.from(scriptContent, "utf16le").toString("base64");
47
49
  };
48
50
  const toPromptPreview = (prompt) => {
49
51
  if (prompt.length <= PROMPT_PREVIEW_MAX) {
@@ -52,7 +54,7 @@ const toPromptPreview = (prompt) => {
52
54
  return `${prompt.slice(0, PROMPT_PREVIEW_MAX)}...`;
53
55
  };
54
56
  const toOutputPreview = (chunk) => {
55
- const text = (typeof chunk === 'string' ? chunk : String(chunk)).trim();
57
+ const text = (typeof chunk === "string" ? chunk : String(chunk)).trim();
56
58
  if (text.length <= OUTPUT_PREVIEW_MAX) {
57
59
  return text;
58
60
  }
@@ -61,41 +63,41 @@ const toOutputPreview = (chunk) => {
61
63
  export class CodexRunner {
62
64
  async run(opts) {
63
65
  if (!opts.authPath || opts.authPath.trim().length === 0) {
64
- logger.error('authPath is missing for trigger');
66
+ logger.error("authPath is missing for trigger");
65
67
  return {
66
68
  exitCode: 1,
67
- errorMessage: 'authPath is missing for trigger',
69
+ errorMessage: "authPath is missing for trigger"
68
70
  };
69
71
  }
70
72
  const cwd = opts.authPath;
71
- const logPath = join(cwd, '.agentteams', 'runner', 'log', `${opts.triggerId}.log`);
73
+ const logPath = join(cwd, ".agentteams", "runner", "log", `${opts.triggerId}.log`);
72
74
  await mkdir(dirname(logPath), { recursive: true });
73
- const isWindows = platform() === 'win32';
75
+ const isWindows = platform() === "win32";
74
76
  const sandboxLevel = resolveCodexSandboxLevel();
75
77
  const resolvedExecutablePath = isWindows
76
- ? resolveExecutablePathWithPreference('codex', ['codex.cmd', 'codex'])
77
- : resolveExecutablePathWithPreference('codex', ['codex']);
78
+ ? resolveExecutablePathWithPreference("codex", ["codex.cmd", "codex"])
79
+ : resolveExecutablePathWithPreference("codex", ["codex"]);
78
80
  // Windows: 긴 prompt가 command line 길이 제한(spawn ENAMETOOLONG)에 걸리지 않도록 UTF-8 임시 파일로 전달한다.
79
81
  const windowsPromptFilePath = isWindows
80
- ? join(cwd, '.agentteams', 'runner', 'tmp', `${opts.triggerId}.prompt.txt`)
82
+ ? join(cwd, ".agentteams", "runner", "tmp", `${opts.triggerId}.prompt.txt`)
81
83
  : null;
82
84
  if (windowsPromptFilePath) {
83
85
  await mkdir(dirname(windowsPromptFilePath), { recursive: true });
84
- await writeFile(windowsPromptFilePath, opts.prompt, { encoding: 'utf8' });
86
+ await writeFile(windowsPromptFilePath, opts.prompt, { encoding: "utf8" });
85
87
  }
86
88
  const windowsEncodedCommand = windowsPromptFilePath
87
89
  ? toPowerShellEncodedCommand(resolvedExecutablePath, windowsPromptFilePath, opts.model, sandboxLevel, opts.fastMode === true)
88
90
  : null;
89
91
  const codexArgs = buildCodexExecArgs(opts.prompt, opts.model, sandboxLevel, opts.fastMode === true);
90
- const executableInfo = describeExecutableResolution('codex', {
91
- platform: () => (isWindows ? 'win32' : platform()),
92
+ const executableInfo = describeExecutableResolution("codex", {
93
+ platform: () => (isWindows ? "win32" : platform())
92
94
  });
93
- if (sandboxLevel === 'off') {
94
- logger.warn('Codex sandbox is disabled via CODEX_SANDBOX_LEVEL=off; runner git writes and arbitrary commands are fully enabled', {
95
- triggerId: opts.triggerId,
95
+ if (sandboxLevel === "off") {
96
+ logger.warn("Codex sandbox is disabled via CODEX_SANDBOX_LEVEL=off; runner git writes and arbitrary commands are fully enabled", {
97
+ triggerId: opts.triggerId
96
98
  });
97
99
  }
98
- logger.info('Runner prompt', {
100
+ logger.info("Runner prompt", {
99
101
  triggerId: opts.triggerId,
100
102
  promptLength: opts.prompt.length,
101
103
  promptPreview: toPromptPreview(opts.prompt),
@@ -104,48 +106,55 @@ export class CodexRunner {
104
106
  platform: executableInfo.platform,
105
107
  shell: executableInfo.shell,
106
108
  detached: isWindows ? false : true,
107
- windowsWrapper: isWindows ? 'powershell.exe -EncodedCommand' : null,
109
+ windowsWrapper: isWindows ? "powershell.exe -EncodedCommand" : null,
108
110
  sandboxLevel,
109
- fastMode: opts.fastMode === true,
111
+ fastMode: opts.fastMode === true
110
112
  });
111
113
  const child = isWindows
112
- ? spawn('powershell.exe', ['-NoLogo', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-EncodedCommand', windowsEncodedCommand ?? ''], {
114
+ ? spawn("powershell.exe", [
115
+ "-NoLogo",
116
+ "-NonInteractive",
117
+ "-ExecutionPolicy",
118
+ "Bypass",
119
+ "-EncodedCommand",
120
+ windowsEncodedCommand ?? ""
121
+ ], {
113
122
  cwd,
114
123
  detached: false,
115
124
  shell: false,
116
125
  windowsHide: true,
117
- stdio: ['ignore', 'pipe', 'pipe'],
126
+ stdio: ["ignore", "pipe", "pipe"],
118
127
  env: {
119
128
  ...process.env,
120
129
  AGENTTEAMS_API_KEY: opts.apiKey,
121
130
  AGENTTEAMS_API_URL: opts.apiUrl,
122
131
  AGENTTEAMS_TEAM_ID: opts.teamId,
123
132
  AGENTTEAMS_PROJECT_ID: opts.projectId,
124
- AGENTTEAMS_AGENT_NAME: opts.agentConfigId,
125
- },
133
+ AGENTTEAMS_AGENT_NAME: opts.agentConfigId
134
+ }
126
135
  })
127
- : spawnExecutable('codex', codexArgs, {
136
+ : spawnExecutable("codex", codexArgs, {
128
137
  cwd,
129
138
  detached: true,
130
- stdio: ['ignore', 'pipe', 'pipe'],
139
+ stdio: ["ignore", "pipe", "pipe"],
131
140
  env: {
132
141
  ...process.env,
133
142
  AGENTTEAMS_API_KEY: opts.apiKey,
134
143
  AGENTTEAMS_API_URL: opts.apiUrl,
135
144
  AGENTTEAMS_TEAM_ID: opts.teamId,
136
145
  AGENTTEAMS_PROJECT_ID: opts.projectId,
137
- AGENTTEAMS_AGENT_NAME: opts.agentConfigId,
138
- },
146
+ AGENTTEAMS_AGENT_NAME: opts.agentConfigId
147
+ }
139
148
  });
140
- const logStream = createWriteStream(logPath, { flags: 'a' });
141
- logStream.on('error', (err) => {
142
- logger.warn('Runner log stream error', { triggerId: opts.triggerId, error: err.message });
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 });
143
152
  });
144
153
  child.stdout?.pipe(logStream);
145
154
  child.stderr?.pipe(logStream);
146
- let lastOutput = '';
147
- let lastErrorOutput = '';
148
- let outputText = '';
155
+ let lastOutput = "";
156
+ let lastErrorOutput = "";
157
+ let outputText = "";
149
158
  const appendOutputText = (chunk) => {
150
159
  if (outputText.length >= OUTPUT_CAPTURE_MAX) {
151
160
  return;
@@ -153,40 +162,40 @@ export class CodexRunner {
153
162
  outputText += chunk.slice(0, OUTPUT_CAPTURE_MAX - outputText.length);
154
163
  };
155
164
  const idleTimer = { reset: () => { } };
156
- child.stdout?.on('data', (chunk) => {
157
- const rawOutput = Buffer.isBuffer(chunk) ? chunk.toString('utf8') : String(chunk);
165
+ child.stdout?.on("data", (chunk) => {
166
+ const rawOutput = Buffer.isBuffer(chunk) ? chunk.toString("utf8") : String(chunk);
158
167
  appendOutputText(rawOutput);
159
168
  const output = toOutputPreview(rawOutput);
160
169
  if (output.length > 0) {
161
170
  lastOutput = output;
162
171
  idleTimer.reset();
163
172
  opts.onStdoutChunk?.(output);
164
- logger.info('Runner stdout', {
173
+ logger.info("Runner stdout", {
165
174
  triggerId: opts.triggerId,
166
175
  pid: child.pid,
167
- output,
176
+ output
168
177
  });
169
178
  }
170
179
  });
171
- child.stderr?.on('data', (chunk) => {
172
- const output = toOutputPreview(Buffer.isBuffer(chunk) ? chunk.toString('utf8') : chunk);
180
+ child.stderr?.on("data", (chunk) => {
181
+ const output = toOutputPreview(Buffer.isBuffer(chunk) ? chunk.toString("utf8") : chunk);
173
182
  if (output.length > 0) {
174
183
  lastOutput = output;
175
184
  lastErrorOutput = output;
176
185
  idleTimer.reset();
177
186
  opts.onStderrChunk?.(output);
178
- logger.warn('Runner stderr', {
187
+ logger.warn("Runner stderr", {
179
188
  triggerId: opts.triggerId,
180
189
  pid: child.pid,
181
- output,
190
+ output
182
191
  });
183
192
  }
184
193
  });
185
- logger.info('Runner started', {
194
+ logger.info("Runner started", {
186
195
  triggerId: opts.triggerId,
187
196
  cwd,
188
197
  logPath,
189
- pid: child.pid,
198
+ pid: child.pid
190
199
  });
191
200
  // 정상 종료/실패 종료/취소 경로 모두에서 Windows prompt 임시 파일을 정리한다.
192
201
  // 삭제 실패는 runner 결과를 덮어쓰지 않고 warning 으로만 남긴다.
@@ -198,10 +207,10 @@ export class CodexRunner {
198
207
  await rm(windowsPromptFilePath, { force: true });
199
208
  }
200
209
  catch (error) {
201
- logger.warn('Failed to remove Windows prompt temp file', {
210
+ logger.warn("Failed to remove Windows prompt temp file", {
202
211
  triggerId: opts.triggerId,
203
212
  promptFilePath: windowsPromptFilePath,
204
- error: error instanceof Error ? error.message : String(error),
213
+ error: error instanceof Error ? error.message : String(error)
205
214
  });
206
215
  }
207
216
  };
@@ -218,11 +227,11 @@ export class CodexRunner {
218
227
  idleTimeoutId = setTimeout(() => {
219
228
  idleTimedOut = true;
220
229
  timedOut = true;
221
- logger.warn('Runner idle timeout reached; no output for configured idle period', {
230
+ logger.warn("Runner idle timeout reached; no output for configured idle period", {
222
231
  triggerId: opts.triggerId,
223
- idleTimeoutMs: opts.idleTimeoutMs,
232
+ idleTimeoutMs: opts.idleTimeoutMs
224
233
  });
225
- terminateRunnerChild(child, isWindows, opts.triggerId, 'timeout');
234
+ terminateRunnerChild(child, isWindows, opts.triggerId, "timeout");
226
235
  }, opts.idleTimeoutMs);
227
236
  };
228
237
  idleTimer.reset = () => {
@@ -241,47 +250,47 @@ export class CodexRunner {
241
250
  logStream.end();
242
251
  void removeWindowsPromptFile();
243
252
  if (opts.signal) {
244
- opts.signal.removeEventListener('abort', handleAbort);
253
+ opts.signal.removeEventListener("abort", handleAbort);
245
254
  }
246
255
  };
247
256
  const handleAbort = () => {
248
257
  cancelled = true;
249
- terminateRunnerChild(child, isWindows, opts.triggerId, 'cancel');
258
+ terminateRunnerChild(child, isWindows, opts.triggerId, "cancel");
250
259
  };
251
260
  const timeoutId = setTimeout(() => {
252
261
  timedOut = true;
253
- terminateRunnerChild(child, isWindows, opts.triggerId, 'timeout');
262
+ terminateRunnerChild(child, isWindows, opts.triggerId, "timeout");
254
263
  }, opts.timeoutMs);
255
264
  if (opts.signal?.aborted) {
256
265
  handleAbort();
257
266
  }
258
267
  else if (opts.signal) {
259
- opts.signal.addEventListener('abort', handleAbort, { once: true });
268
+ opts.signal.addEventListener("abort", handleAbort, { once: true });
260
269
  }
261
- child.on('error', (error) => {
270
+ child.on("error", (error) => {
262
271
  clearTimeout(timeoutId);
263
272
  cleanup();
264
- logger.error('Runner process launch failed', {
273
+ logger.error("Runner process launch failed", {
265
274
  triggerId: opts.triggerId,
266
- error: error.message,
275
+ error: error.message
267
276
  });
268
277
  resolve({
269
278
  exitCode: 1,
270
279
  lastOutput,
271
280
  outputText: outputText.trim() || undefined,
272
- errorMessage: error.message,
281
+ errorMessage: error.message
273
282
  });
274
283
  });
275
284
  const closeWatchdog = setupCloseWatchdog(child, opts.triggerId);
276
- child.on('close', (code) => {
285
+ child.on("close", (code) => {
277
286
  closeWatchdog.cancel();
278
287
  clearTimeout(timeoutId);
279
288
  cleanup();
280
- logger.info('Runner process closed', {
289
+ logger.info("Runner process closed", {
281
290
  triggerId: opts.triggerId,
282
291
  pid: child.pid,
283
292
  exitCode: code,
284
- timedOut,
293
+ timedOut
285
294
  });
286
295
  if (timedOut) {
287
296
  resolve({
@@ -290,7 +299,7 @@ export class CodexRunner {
290
299
  outputText: outputText.trim() || undefined,
291
300
  errorMessage: idleTimedOut
292
301
  ? `Runner idle timed out after ${Math.round(opts.idleTimeoutMs / 60_000)}m of no output`
293
- : `Runner fail-safe timed out after ${Math.round(opts.timeoutMs / 3_600_000)}h`,
302
+ : `Runner fail-safe timed out after ${Math.round(opts.timeoutMs / 3_600_000)}h`
294
303
  });
295
304
  return;
296
305
  }
@@ -300,7 +309,7 @@ export class CodexRunner {
300
309
  cancelled: true,
301
310
  lastOutput,
302
311
  outputText: outputText.trim() || undefined,
303
- errorMessage: 'Runner cancelled by user',
312
+ errorMessage: "Runner cancelled by user"
304
313
  });
305
314
  return;
306
315
  }
@@ -308,7 +317,7 @@ export class CodexRunner {
308
317
  exitCode: code ?? 1,
309
318
  lastOutput,
310
319
  outputText: outputText.trim() || undefined,
311
- errorMessage: code === 0 ? undefined : lastErrorOutput || lastOutput || `Runner exited with code ${code ?? 1}`,
320
+ errorMessage: code === 0 ? undefined : (lastErrorOutput || lastOutput || `Runner exited with code ${code ?? 1}`)
312
321
  });
313
322
  });
314
323
  });
@@ -1 +1 @@
1
- {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/runners/codex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/runners/codex.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
- import assert from 'node:assert/strict';
2
- import test from 'node:test';
3
- import { buildCodexExecArgs, resolveCodexSandboxLevel, toPowerShellEncodedCommand } from './codex.js';
4
- const decodeEncodedCommand = (encoded) => Buffer.from(encoded, 'base64').toString('utf16le');
5
- test('resolveCodexSandboxLevel defaults to workspace-write', () => {
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { buildCodexExecArgs, resolveCodexSandboxLevel, toPowerShellEncodedCommand } from "./codex.js";
4
+ const decodeEncodedCommand = (encoded) => Buffer.from(encoded, "base64").toString("utf16le");
5
+ test("resolveCodexSandboxLevel defaults to workspace-write", () => {
6
6
  const original = process.env.CODEX_SANDBOX_LEVEL;
7
7
  try {
8
8
  delete process.env.CODEX_SANDBOX_LEVEL;
9
- assert.equal(resolveCodexSandboxLevel(undefined), 'workspace-write');
10
- assert.equal(resolveCodexSandboxLevel(''), 'workspace-write');
11
- assert.equal(resolveCodexSandboxLevel('danger-full-access'), 'workspace-write');
9
+ assert.equal(resolveCodexSandboxLevel(undefined), "workspace-write");
10
+ assert.equal(resolveCodexSandboxLevel(""), "workspace-write");
11
+ assert.equal(resolveCodexSandboxLevel("danger-full-access"), "workspace-write");
12
12
  }
13
13
  finally {
14
14
  if (original !== undefined) {
@@ -19,94 +19,94 @@ test('resolveCodexSandboxLevel defaults to workspace-write', () => {
19
19
  }
20
20
  }
21
21
  });
22
- test('resolveCodexSandboxLevel accepts off', () => {
23
- assert.equal(resolveCodexSandboxLevel('off'), 'off');
22
+ test("resolveCodexSandboxLevel accepts off", () => {
23
+ assert.equal(resolveCodexSandboxLevel("off"), "off");
24
24
  });
25
- test('buildCodexExecArgs keeps sandboxing by default', () => {
26
- assert.deepEqual(buildCodexExecArgs('hello', 'gpt-5-codex', 'workspace-write'), [
27
- '-a',
28
- 'never',
29
- 'exec',
30
- '-s',
31
- 'workspace-write',
32
- '-c',
33
- 'sandbox_workspace_write.network_access=true',
34
- '--model',
35
- 'gpt-5-codex',
36
- 'hello',
25
+ test("buildCodexExecArgs keeps sandboxing by default", () => {
26
+ assert.deepEqual(buildCodexExecArgs("hello", "gpt-5-codex", "workspace-write"), [
27
+ "-a",
28
+ "never",
29
+ "exec",
30
+ "-s",
31
+ "workspace-write",
32
+ "-c",
33
+ "sandbox_workspace_write.network_access=true",
34
+ "--model",
35
+ "gpt-5-codex",
36
+ "hello"
37
37
  ]);
38
38
  });
39
- test('buildCodexExecArgs enables fast mode with service tier config', () => {
40
- assert.deepEqual(buildCodexExecArgs('hello', 'gpt-5.5', 'workspace-write', true), [
41
- '-a',
42
- 'never',
43
- 'exec',
44
- '-s',
45
- 'workspace-write',
46
- '-c',
47
- 'sandbox_workspace_write.network_access=true',
48
- '-c',
49
- 'features.fast_mode=true',
50
- '-c',
51
- 'service_tier="fast"',
52
- '--model',
53
- 'gpt-5.5',
54
- 'hello',
39
+ test("buildCodexExecArgs enables fast mode with service tier config", () => {
40
+ assert.deepEqual(buildCodexExecArgs("hello", "gpt-5.5", "workspace-write", true), [
41
+ "-a",
42
+ "never",
43
+ "exec",
44
+ "-s",
45
+ "workspace-write",
46
+ "-c",
47
+ "sandbox_workspace_write.network_access=true",
48
+ "-c",
49
+ "features.fast_mode=true",
50
+ "-c",
51
+ "service_tier=\"fast\"",
52
+ "--model",
53
+ "gpt-5.5",
54
+ "hello"
55
55
  ]);
56
56
  });
57
- test('buildCodexExecArgs disables sandbox when requested', () => {
58
- assert.deepEqual(buildCodexExecArgs('hello', null, 'off'), [
59
- '-a',
60
- 'never',
61
- 'exec',
62
- '--dangerously-bypass-approvals-and-sandbox',
63
- 'hello',
57
+ test("buildCodexExecArgs disables sandbox when requested", () => {
58
+ assert.deepEqual(buildCodexExecArgs("hello", null, "off"), [
59
+ "-a",
60
+ "never",
61
+ "exec",
62
+ "--dangerously-bypass-approvals-and-sandbox",
63
+ "hello"
64
64
  ]);
65
65
  });
66
- test('toPowerShellEncodedCommand reads prompt from file instead of embedding it', () => {
67
- const promptFilePath = 'C:\\repo\\.agentteams\\runner\\tmp\\trigger-123.prompt.txt';
68
- const encoded = toPowerShellEncodedCommand('C:\\Users\\dev\\codex.cmd', promptFilePath, 'gpt-5-codex', 'workspace-write');
66
+ test("toPowerShellEncodedCommand reads prompt from file instead of embedding it", () => {
67
+ const promptFilePath = "C:\\repo\\.agentteams\\runner\\tmp\\trigger-123.prompt.txt";
68
+ const encoded = toPowerShellEncodedCommand("C:\\Users\\dev\\codex.cmd", promptFilePath, "gpt-5-codex", "workspace-write");
69
69
  const decoded = decodeEncodedCommand(encoded);
70
70
  // prompt 파일을 UTF-8(no BOM)로 명시적으로 읽어야 한다.
71
- assert.ok(decoded.includes('[System.IO.File]::ReadAllText'));
72
- assert.ok(decoded.includes('$utf8NoBom'));
71
+ assert.ok(decoded.includes("[System.IO.File]::ReadAllText"));
72
+ assert.ok(decoded.includes("$utf8NoBom"));
73
73
  // encoded command 에는 prompt 본문이 아니라 파일 경로만 포함된다.
74
74
  assert.ok(decoded.includes(promptFilePath));
75
75
  });
76
- test('toPowerShellEncodedCommand length does not scale with prompt length', () => {
77
- const promptFilePath = 'C:\\repo\\.agentteams\\runner\\tmp\\trigger-456.prompt.txt';
76
+ test("toPowerShellEncodedCommand length does not scale with prompt length", () => {
77
+ const promptFilePath = "C:\\repo\\.agentteams\\runner\\tmp\\trigger-456.prompt.txt";
78
78
  // prompt 본문은 인자가 아니므로, 아무리 길어도 encoded command 크기에 영향을 주지 않는다.
79
- const encodedShort = toPowerShellEncodedCommand('C:\\codex.cmd', promptFilePath, 'gpt-5-codex', 'workspace-write');
80
- const encodedSame = toPowerShellEncodedCommand('C:\\codex.cmd', promptFilePath, 'gpt-5-codex', 'workspace-write');
79
+ const encodedShort = toPowerShellEncodedCommand("C:\\codex.cmd", promptFilePath, "gpt-5-codex", "workspace-write");
80
+ const encodedSame = toPowerShellEncodedCommand("C:\\codex.cmd", promptFilePath, "gpt-5-codex", "workspace-write");
81
81
  assert.equal(encodedShort, encodedSame);
82
82
  // 1MB 이상의 한글 prompt를 가정해도 encoded command 는 고정 스크립트 크기(2KB 미만)로 유지된다.
83
83
  assert.ok(encodedShort.length < 2048);
84
84
  });
85
- test('toPowerShellEncodedCommand preserves model, sandbox, and fast mode args', () => {
86
- const encoded = toPowerShellEncodedCommand('C:\\codex.cmd', 'C:\\repo\\.agentteams\\runner\\tmp\\t.prompt.txt', 'gpt-5.5', 'workspace-write', true);
85
+ test("toPowerShellEncodedCommand preserves model, sandbox, and fast mode args", () => {
86
+ const encoded = toPowerShellEncodedCommand("C:\\codex.cmd", "C:\\repo\\.agentteams\\runner\\tmp\\t.prompt.txt", "gpt-5.5", "workspace-write", true);
87
87
  const decoded = decodeEncodedCommand(encoded);
88
88
  assert.ok(decoded.includes("'--model' 'gpt-5.5'"));
89
89
  assert.ok(decoded.includes("'-s' 'workspace-write'"));
90
90
  assert.ok(decoded.includes("'-c' 'sandbox_workspace_write.network_access=true'"));
91
- assert.ok(decoded.includes('features.fast_mode=true'));
92
- assert.ok(decoded.includes('service_tier="fast"'));
91
+ assert.ok(decoded.includes("features.fast_mode=true"));
92
+ assert.ok(decoded.includes("service_tier=\"fast\""));
93
93
  });
94
- test('toPowerShellEncodedCommand uses bypass flag and omits model when sandbox off', () => {
95
- const encoded = toPowerShellEncodedCommand('C:\\codex.cmd', 'C:\\repo\\.agentteams\\runner\\tmp\\t.prompt.txt', null, 'off');
94
+ test("toPowerShellEncodedCommand uses bypass flag and omits model when sandbox off", () => {
95
+ const encoded = toPowerShellEncodedCommand("C:\\codex.cmd", "C:\\repo\\.agentteams\\runner\\tmp\\t.prompt.txt", null, "off");
96
96
  const decoded = decodeEncodedCommand(encoded);
97
- assert.ok(decoded.includes('--dangerously-bypass-approvals-and-sandbox'));
97
+ assert.ok(decoded.includes("--dangerously-bypass-approvals-and-sandbox"));
98
98
  assert.ok(!decoded.includes("'--model'"));
99
- assert.ok(!decoded.includes('features.fast_mode=true'));
99
+ assert.ok(!decoded.includes("features.fast_mode=true"));
100
100
  });
101
- test('resolveCodexSandboxLevel reads from process.env when no argument given', () => {
101
+ test("resolveCodexSandboxLevel reads from process.env when no argument given", () => {
102
102
  const original = process.env.CODEX_SANDBOX_LEVEL;
103
103
  try {
104
- process.env.CODEX_SANDBOX_LEVEL = 'off';
105
- assert.equal(resolveCodexSandboxLevel(), 'off');
106
- process.env.CODEX_SANDBOX_LEVEL = 'workspace-write';
107
- assert.equal(resolveCodexSandboxLevel(), 'workspace-write');
104
+ process.env.CODEX_SANDBOX_LEVEL = "off";
105
+ assert.equal(resolveCodexSandboxLevel(), "off");
106
+ process.env.CODEX_SANDBOX_LEVEL = "workspace-write";
107
+ assert.equal(resolveCodexSandboxLevel(), "workspace-write");
108
108
  delete process.env.CODEX_SANDBOX_LEVEL;
109
- assert.equal(resolveCodexSandboxLevel(), 'workspace-write');
109
+ assert.equal(resolveCodexSandboxLevel(), "workspace-write");
110
110
  }
111
111
  finally {
112
112
  if (original !== undefined) {