@agentteams/runner 0.0.84 → 0.0.85-dev.209

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