@phamvuhoang/otto-core 0.6.0 → 0.8.0
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.
- package/dist/agent-runtime.d.ts +75 -0
- package/dist/agent-runtime.d.ts.map +1 -0
- package/dist/agent-runtime.js +121 -0
- package/dist/agent-runtime.js.map +1 -0
- package/dist/cli-help.d.ts +38 -0
- package/dist/cli-help.d.ts.map +1 -1
- package/dist/cli-help.js +85 -8
- package/dist/cli-help.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/loop.d.ts +17 -0
- package/dist/loop.d.ts.map +1 -1
- package/dist/loop.js +121 -22
- package/dist/loop.js.map +1 -1
- package/dist/panel.d.ts +7 -0
- package/dist/panel.d.ts.map +1 -1
- package/dist/panel.js +10 -4
- package/dist/panel.js.map +1 -1
- package/dist/preflight.d.ts +12 -0
- package/dist/preflight.d.ts.map +1 -1
- package/dist/preflight.js +65 -13
- package/dist/preflight.js.map +1 -1
- package/dist/prompt-reduction.d.ts +17 -0
- package/dist/prompt-reduction.d.ts.map +1 -0
- package/dist/prompt-reduction.js +25 -0
- package/dist/prompt-reduction.js.map +1 -0
- package/dist/rate-limit.d.ts.map +1 -1
- package/dist/rate-limit.js +2 -1
- package/dist/rate-limit.js.map +1 -1
- package/dist/run-bin.d.ts.map +1 -1
- package/dist/run-bin.js +111 -7
- package/dist/run-bin.js.map +1 -1
- package/dist/runner.d.ts +86 -3
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +304 -46
- package/dist/runner.js.map +1 -1
- package/dist/stage-exec.d.ts +5 -0
- package/dist/stage-exec.d.ts.map +1 -1
- package/dist/stage-exec.js +14 -5
- package/dist/stage-exec.js.map +1 -1
- package/dist/state.d.ts +4 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js.map +1 -1
- package/dist/tokens.d.ts +15 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +62 -0
- package/dist/tokens.js.map +1 -0
- package/dist/watch.d.ts +13 -0
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +9 -4
- package/dist/watch.js.map +1 -1
- package/package.json +1 -1
- package/templates/review-lens.md +2 -0
- package/templates/review-synth.md +2 -0
- package/templates/review-verify.md +2 -0
- package/templates/review.md +2 -0
package/dist/runner.js
CHANGED
|
@@ -2,18 +2,164 @@ import { spawn } from "node:child_process";
|
|
|
2
2
|
import { appendFileSync, closeSync, mkdirSync, openSync, rmSync, writeFileSync, } from "node:fs";
|
|
3
3
|
import { createInterface } from "node:readline";
|
|
4
4
|
import { join, posix } from "node:path";
|
|
5
|
-
import {
|
|
5
|
+
import { AGENT_DISPLAY_NAMES } from "./agent-runtime.js";
|
|
6
|
+
import { boldOut, dim, renderEvent, SYM_OUT, } from "./stream-render.js";
|
|
6
7
|
import { RateLimitError, isLimitResult, resetsAtFromEvent, } from "./rate-limit.js";
|
|
7
|
-
|
|
8
|
-
|
|
8
|
+
import { emptyTokenUsage, parseTokenUsage } from "./tokens.js";
|
|
9
|
+
/**
|
|
10
|
+
* Pure extraction of the fields Otto tracks from a stream-json `result` event.
|
|
11
|
+
* `runtimeId` stamps which runtime produced it (defaults to claude — the only
|
|
12
|
+
* runtime whose output is this stream-json shape today).
|
|
13
|
+
*/
|
|
14
|
+
export function resultFromEvent(ev, runtimeId = "claude") {
|
|
9
15
|
const e = (ev ?? {});
|
|
10
16
|
return {
|
|
11
17
|
result: typeof e.result === "string" ? e.result : "",
|
|
12
18
|
costUsd: typeof e.total_cost_usd === "number" ? e.total_cost_usd : 0,
|
|
13
19
|
isError: e.is_error === true,
|
|
14
20
|
apiErrorStatus: typeof e.api_error_status === "string" ? e.api_error_status : null,
|
|
21
|
+
usage: parseTokenUsage(e),
|
|
22
|
+
runtimeId,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
function usageNumber(value) {
|
|
26
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
|
|
27
|
+
return 0;
|
|
28
|
+
}
|
|
29
|
+
return Math.floor(value);
|
|
30
|
+
}
|
|
31
|
+
function codexUsageFromEvent(ev) {
|
|
32
|
+
const e = (ev ?? {});
|
|
33
|
+
const u = (e.usage ?? {});
|
|
34
|
+
return {
|
|
35
|
+
inputTokens: usageNumber(u.input_tokens),
|
|
36
|
+
outputTokens: usageNumber(u.output_tokens),
|
|
37
|
+
cacheCreationInputTokens: 0,
|
|
38
|
+
cacheReadInputTokens: usageNumber(u.cached_input_tokens),
|
|
15
39
|
};
|
|
16
40
|
}
|
|
41
|
+
function codexErrorMessage(ev) {
|
|
42
|
+
const e = (ev ?? {});
|
|
43
|
+
const err = (e.error ?? {});
|
|
44
|
+
if (typeof err.message === "string")
|
|
45
|
+
return err.message;
|
|
46
|
+
if (typeof e.message === "string")
|
|
47
|
+
return e.message;
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
function codexAgentMessage(ev) {
|
|
51
|
+
const e = (ev ?? {});
|
|
52
|
+
if (e.type !== "item.completed")
|
|
53
|
+
return null;
|
|
54
|
+
const item = (e.item ?? {});
|
|
55
|
+
if (typeof item.text !== "string")
|
|
56
|
+
return null;
|
|
57
|
+
return item.type === "agent_message" || typeof item.text === "string"
|
|
58
|
+
? item.text
|
|
59
|
+
: null;
|
|
60
|
+
}
|
|
61
|
+
function renderCodexEvent(ev) {
|
|
62
|
+
const text = codexAgentMessage(ev);
|
|
63
|
+
if (text == null)
|
|
64
|
+
return;
|
|
65
|
+
const lines = text.split("\n");
|
|
66
|
+
const formatted = lines
|
|
67
|
+
.map((line, idx) => idx === 0 ? `${boldOut(SYM_OUT.bullet)} ${line}` : ` ${line}`)
|
|
68
|
+
.join("\r\n");
|
|
69
|
+
process.stdout.write(formatted + "\r\n\n");
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a per-run parser for `codex exec --json` JSONL. Codex reports the
|
|
73
|
+
* final assistant text as the last `item.completed` agent_message and emits the
|
|
74
|
+
* terminal status on `turn.completed` / `turn.failed` / `error`.
|
|
75
|
+
*/
|
|
76
|
+
export function createCodexStreamParser() {
|
|
77
|
+
let result = "";
|
|
78
|
+
let usage = emptyTokenUsage();
|
|
79
|
+
let isError = false;
|
|
80
|
+
let apiErrorStatus = null;
|
|
81
|
+
const finish = () => ({
|
|
82
|
+
result,
|
|
83
|
+
costUsd: 0,
|
|
84
|
+
isError,
|
|
85
|
+
apiErrorStatus,
|
|
86
|
+
usage,
|
|
87
|
+
runtimeId: "codex",
|
|
88
|
+
});
|
|
89
|
+
return (ev) => {
|
|
90
|
+
const e = (ev ?? {});
|
|
91
|
+
const type = e.type;
|
|
92
|
+
const text = codexAgentMessage(ev);
|
|
93
|
+
if (text != null) {
|
|
94
|
+
result = text;
|
|
95
|
+
return undefined;
|
|
96
|
+
}
|
|
97
|
+
if (type === "turn.completed") {
|
|
98
|
+
usage = codexUsageFromEvent(ev);
|
|
99
|
+
return finish();
|
|
100
|
+
}
|
|
101
|
+
if (type === "turn.failed" || type === "error") {
|
|
102
|
+
isError = true;
|
|
103
|
+
const msg = codexErrorMessage(ev);
|
|
104
|
+
if (msg) {
|
|
105
|
+
apiErrorStatus = msg;
|
|
106
|
+
if (!result)
|
|
107
|
+
result = msg;
|
|
108
|
+
}
|
|
109
|
+
return finish();
|
|
110
|
+
}
|
|
111
|
+
return undefined;
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
function numericUnixSeconds(value) {
|
|
115
|
+
return Math.floor(value > 10_000_000_000 ? value / 1000 : value);
|
|
116
|
+
}
|
|
117
|
+
function valueFromObject(obj, keys) {
|
|
118
|
+
for (const key of keys) {
|
|
119
|
+
if (obj[key] != null)
|
|
120
|
+
return obj[key];
|
|
121
|
+
}
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Opportunistically read a Codex reset hint from failed-turn/error events. The
|
|
126
|
+
* CLI does not currently promise a single stable reset field, so absent or
|
|
127
|
+
* unknown shapes return null and the loop falls back to its default wait.
|
|
128
|
+
*/
|
|
129
|
+
export function resetsAtFromCodexEvent(ev, nowSeconds = Math.floor(Date.now() / 1000)) {
|
|
130
|
+
const e = (ev ?? {});
|
|
131
|
+
if (e.type !== "turn.failed" && e.type !== "error")
|
|
132
|
+
return null;
|
|
133
|
+
const err = (e.error ?? e ?? {});
|
|
134
|
+
const rateLimits = (err.rate_limits ?? e.rate_limits);
|
|
135
|
+
const seconds = valueFromObject(err, [
|
|
136
|
+
"resets_in_seconds",
|
|
137
|
+
"reset_in_seconds",
|
|
138
|
+
"retry_after_seconds",
|
|
139
|
+
]);
|
|
140
|
+
if (typeof seconds === "number" && Number.isFinite(seconds) && seconds >= 0) {
|
|
141
|
+
return nowSeconds + Math.floor(seconds);
|
|
142
|
+
}
|
|
143
|
+
const retryAfterMs = valueFromObject(err, ["retry_after_ms"]);
|
|
144
|
+
if (typeof retryAfterMs === "number" &&
|
|
145
|
+
Number.isFinite(retryAfterMs) &&
|
|
146
|
+
retryAfterMs >= 0) {
|
|
147
|
+
return nowSeconds + Math.ceil(retryAfterMs / 1000);
|
|
148
|
+
}
|
|
149
|
+
const resetAt = valueFromObject(err, ["resets_at", "reset_at", "resetsAt"]) ??
|
|
150
|
+
(rateLimits
|
|
151
|
+
? valueFromObject(rateLimits, ["resets_at", "reset_at", "resetsAt"])
|
|
152
|
+
: undefined);
|
|
153
|
+
if (typeof resetAt === "number" && Number.isFinite(resetAt) && resetAt >= 0) {
|
|
154
|
+
return numericUnixSeconds(resetAt);
|
|
155
|
+
}
|
|
156
|
+
if (typeof resetAt === "string") {
|
|
157
|
+
const parsed = Date.parse(resetAt);
|
|
158
|
+
if (Number.isFinite(parsed))
|
|
159
|
+
return Math.floor(parsed / 1000);
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
17
163
|
const STDERR_TAIL_LINES = 40;
|
|
18
164
|
const DEFAULT_RESULT_GRACE_MS = 30_000;
|
|
19
165
|
/**
|
|
@@ -48,6 +194,25 @@ export function resolveModelArgs(raw) {
|
|
|
48
194
|
return [];
|
|
49
195
|
return ["--model", trimmed];
|
|
50
196
|
}
|
|
197
|
+
/**
|
|
198
|
+
* Resolve the model spec for the active runtime (issue #24 P3). A
|
|
199
|
+
* provider-specific override (`OTTO_CLAUDE_MODEL` / `OTTO_CODEX_MODEL`) wins
|
|
200
|
+
* over the provider-neutral `OTTO_MODEL`, so a user who keeps both runtimes
|
|
201
|
+
* configured can pin a model per runtime. Returns the resolved spec plus the
|
|
202
|
+
* env var it came from (for `--print-config`), or `undefined` when nothing is
|
|
203
|
+
* set (the runtime's CLI default applies). Empty/whitespace overrides are
|
|
204
|
+
* ignored so they fall through to the generic value.
|
|
205
|
+
*/
|
|
206
|
+
export function resolveModelSelection(runtimeId, env = process.env) {
|
|
207
|
+
const specificVar = `OTTO_${runtimeId.toUpperCase()}_MODEL`;
|
|
208
|
+
const specific = env[specificVar]?.trim();
|
|
209
|
+
if (specific)
|
|
210
|
+
return { spec: specific, source: specificVar };
|
|
211
|
+
const generic = env.OTTO_MODEL?.trim();
|
|
212
|
+
if (generic)
|
|
213
|
+
return { spec: generic, source: "OTTO_MODEL" };
|
|
214
|
+
return undefined;
|
|
215
|
+
}
|
|
51
216
|
/** `OTTO_RUNNER=host` → bare host run; anything else (incl. unset) → sandbox. */
|
|
52
217
|
export function resolveRunner(raw) {
|
|
53
218
|
return raw?.trim() === "host" ? "host" : "sandbox";
|
|
@@ -82,14 +247,15 @@ export function buildSandboxSettings(workspaceDir, allowedDomains) {
|
|
|
82
247
|
}
|
|
83
248
|
return { sandbox };
|
|
84
249
|
}
|
|
85
|
-
function abortError() {
|
|
86
|
-
const err = new Error(
|
|
250
|
+
function abortError(command) {
|
|
251
|
+
const err = new Error(`${command} command aborted`);
|
|
87
252
|
err.name = "AbortError";
|
|
88
253
|
return err;
|
|
89
254
|
}
|
|
90
|
-
export function stageLogPath(workspaceDir, iteration, stageName) {
|
|
255
|
+
export function stageLogPath(workspaceDir, iteration, stageName, runtimeId) {
|
|
91
256
|
const timestamp = new Date().toISOString().replace(/[:.]/g, "-");
|
|
92
|
-
|
|
257
|
+
const suffix = runtimeId ? `-${runtimeId}` : "";
|
|
258
|
+
return join(workspaceDir, ".otto-tmp", "logs", `${timestamp}-iter${iteration}-${stageName}${suffix}.ndjson`);
|
|
93
259
|
}
|
|
94
260
|
/**
|
|
95
261
|
* Build the `claude` argv. Extracted as a pure helper so callers can unit-test
|
|
@@ -122,6 +288,79 @@ export function buildClaudeArgs(stage, promptRelPath, modelArgs, settingsPath) {
|
|
|
122
288
|
args.push(`Read the full instructions from the file ./${promptRelPath} in the current workspace and execute them.`);
|
|
123
289
|
return args;
|
|
124
290
|
}
|
|
291
|
+
/** Map Otto's runner mode to Codex's own sandbox vocabulary. */
|
|
292
|
+
export function resolveCodexSandboxMode(raw) {
|
|
293
|
+
return resolveRunner(raw) === "host"
|
|
294
|
+
? "danger-full-access"
|
|
295
|
+
: "workspace-write";
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Build the `codex exec` argv. Codex owns sandboxing itself, so Otto never
|
|
299
|
+
* passes Claude's transient `--settings` file here.
|
|
300
|
+
*/
|
|
301
|
+
export function buildCodexArgs(_stage, promptRelPath, modelArgs, _settingsPath, sandboxMode = resolveCodexSandboxMode(process.env.OTTO_RUNNER)) {
|
|
302
|
+
return [
|
|
303
|
+
"codex",
|
|
304
|
+
"exec",
|
|
305
|
+
"--json",
|
|
306
|
+
"--skip-git-repo-check",
|
|
307
|
+
"--sandbox",
|
|
308
|
+
sandboxMode,
|
|
309
|
+
"--ask-for-approval",
|
|
310
|
+
"never",
|
|
311
|
+
...modelArgs,
|
|
312
|
+
`Read the full instructions from the file ./${promptRelPath} in the current workspace and execute them.`,
|
|
313
|
+
];
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Codex's current CLI docs call out CODEX_API_KEY for `codex exec`; issue #31's
|
|
317
|
+
* acceptance criteria also mention OPENAI_API_KEY. Preserve both by mapping the
|
|
318
|
+
* OpenAI key into Codex's expected env var for this child process only.
|
|
319
|
+
*/
|
|
320
|
+
export function buildCodexEnv(env = process.env) {
|
|
321
|
+
const next = { ...env };
|
|
322
|
+
// Keep the compatibility mapping scoped to the child so Otto's own process
|
|
323
|
+
// does not mutate the user's shell-level credential environment.
|
|
324
|
+
if (!next.CODEX_API_KEY && next.OPENAI_API_KEY) {
|
|
325
|
+
next.CODEX_API_KEY = next.OPENAI_API_KEY;
|
|
326
|
+
}
|
|
327
|
+
return next;
|
|
328
|
+
}
|
|
329
|
+
/** The Claude Code adapter — Otto's default and historically-hardcoded runtime. */
|
|
330
|
+
export const claudeRuntime = {
|
|
331
|
+
id: "claude",
|
|
332
|
+
displayName: AGENT_DISPLAY_NAMES.claude,
|
|
333
|
+
command: "claude",
|
|
334
|
+
supportsSandboxSettings: true,
|
|
335
|
+
buildArgs: buildClaudeArgs,
|
|
336
|
+
parseResultEvent: (ev) => resultFromEvent(ev, "claude"),
|
|
337
|
+
};
|
|
338
|
+
/** The Codex CLI adapter, powered by `codex exec --json`. */
|
|
339
|
+
export const codexRuntime = {
|
|
340
|
+
id: "codex",
|
|
341
|
+
displayName: AGENT_DISPLAY_NAMES.codex,
|
|
342
|
+
command: "codex",
|
|
343
|
+
supportsSandboxSettings: false,
|
|
344
|
+
buildArgs: buildCodexArgs,
|
|
345
|
+
parseResultEvent: (ev) => resultFromEvent(ev, "codex"),
|
|
346
|
+
createStreamParser: createCodexStreamParser,
|
|
347
|
+
resetsAtFromEvent: resetsAtFromCodexEvent,
|
|
348
|
+
buildEnv: buildCodexEnv,
|
|
349
|
+
};
|
|
350
|
+
const AGENT_RUNTIMES = {
|
|
351
|
+
claude: claudeRuntime,
|
|
352
|
+
codex: codexRuntime,
|
|
353
|
+
};
|
|
354
|
+
/**
|
|
355
|
+
* Select the adapter for a resolved runtime id.
|
|
356
|
+
*/
|
|
357
|
+
export function getAgentRuntime(id) {
|
|
358
|
+
const runtime = AGENT_RUNTIMES[id];
|
|
359
|
+
if (!runtime) {
|
|
360
|
+
throw new Error(`the ${AGENT_DISPLAY_NAMES[id]} runtime is not available in this build.`);
|
|
361
|
+
}
|
|
362
|
+
return runtime;
|
|
363
|
+
}
|
|
125
364
|
export async function runStage(stage, renderedPrompt, workspaceDir, iteration, spillHostDir, logPathOverride, options = {}) {
|
|
126
365
|
const tmpHostDir = join(workspaceDir, ".otto-tmp");
|
|
127
366
|
mkdirSync(tmpHostDir, { recursive: true });
|
|
@@ -132,16 +371,18 @@ export async function runStage(stage, renderedPrompt, workspaceDir, iteration, s
|
|
|
132
371
|
const promptHostPath = join(tmpHostDir, promptName);
|
|
133
372
|
const promptRelPath = posix.join(".otto-tmp", promptName);
|
|
134
373
|
writeFileSync(promptHostPath, renderedPrompt, "utf8");
|
|
374
|
+
const runtime = options.runtime ?? claudeRuntime;
|
|
135
375
|
let settingsHostPath;
|
|
136
|
-
if (
|
|
376
|
+
if (runtime.supportsSandboxSettings &&
|
|
377
|
+
resolveRunner(process.env.OTTO_RUNNER) === "sandbox") {
|
|
137
378
|
const settings = buildSandboxSettings(workspaceDir, resolveSandboxNet(process.env.OTTO_SANDBOX_NET));
|
|
138
379
|
settingsHostPath = join(tmpHostDir, `.sandbox-${process.pid}-${iteration}-${Date.now()}.json`);
|
|
139
380
|
writeFileSync(settingsHostPath, JSON.stringify(settings), "utf8");
|
|
140
381
|
}
|
|
141
382
|
process.stderr.write(`${dim("log → " + logPath)}\n`);
|
|
142
383
|
try {
|
|
143
|
-
const argv =
|
|
144
|
-
return await
|
|
384
|
+
const argv = runtime.buildArgs(stage, promptRelPath, resolveModelArgs(resolveModelSelection(runtime.id)?.spec), settingsHostPath);
|
|
385
|
+
return await streamRuntime(argv, workspaceDir, logPath, runtime, options);
|
|
145
386
|
}
|
|
146
387
|
finally {
|
|
147
388
|
rmSync(promptHostPath, { force: true });
|
|
@@ -151,24 +392,52 @@ export async function runStage(stage, renderedPrompt, workspaceDir, iteration, s
|
|
|
151
392
|
rmSync(spillHostDir, { recursive: true, force: true });
|
|
152
393
|
}
|
|
153
394
|
}
|
|
154
|
-
function
|
|
395
|
+
function streamRuntime(argv, cwd, logPath, runtime, options = {}) {
|
|
155
396
|
if (options.signal?.aborted) {
|
|
156
|
-
return Promise.reject(abortError());
|
|
397
|
+
return Promise.reject(abortError(runtime.command));
|
|
157
398
|
}
|
|
158
399
|
return new Promise((resolve, reject) => {
|
|
159
400
|
const logFd = openSync(logPath, "a");
|
|
160
401
|
const toolMap = new Map();
|
|
161
402
|
const graceMs = parseGraceMs(process.env.OTTO_RESULT_GRACE_MS);
|
|
162
|
-
|
|
403
|
+
const parseStreamEvent = runtime.createStreamParser?.();
|
|
404
|
+
const settleFinalAfterGrace = () => {
|
|
405
|
+
// Arm one-shot post-result grace timer to recover from CLI self-deadlocks
|
|
406
|
+
// where the child emits its final NDJSON but never exits.
|
|
407
|
+
if (graceTimer || graceMs <= 0)
|
|
408
|
+
return;
|
|
409
|
+
graceTimer = setTimeout(() => {
|
|
410
|
+
if (settled)
|
|
411
|
+
return;
|
|
412
|
+
process.stderr.write(`${dim(`grace timer fired after ${graceMs}ms post-result — killing ${runtime.command} child`)}\n`);
|
|
413
|
+
try {
|
|
414
|
+
child.kill();
|
|
415
|
+
}
|
|
416
|
+
catch {
|
|
417
|
+
// Already dead; close handler will be a no-op via settle guard.
|
|
418
|
+
}
|
|
419
|
+
if (final && isLimitResult(final)) {
|
|
420
|
+
rejectOnce(new RateLimitError(final.result || "rate limit", lastResetsAt));
|
|
421
|
+
}
|
|
422
|
+
else {
|
|
423
|
+
resolveOnce(final);
|
|
424
|
+
}
|
|
425
|
+
}, graceMs);
|
|
426
|
+
graceTimer.unref?.();
|
|
427
|
+
};
|
|
428
|
+
// Spawn the selected agent CLI on the host instead of docker.
|
|
163
429
|
const child = spawn(argv[0], argv.slice(1), {
|
|
164
430
|
cwd,
|
|
165
431
|
stdio: ["ignore", "pipe", "pipe"],
|
|
432
|
+
env: runtime.buildEnv?.(process.env) ?? process.env,
|
|
166
433
|
});
|
|
167
434
|
let final = {
|
|
168
435
|
result: "",
|
|
169
436
|
costUsd: 0,
|
|
170
437
|
isError: false,
|
|
171
438
|
apiErrorStatus: null,
|
|
439
|
+
usage: emptyTokenUsage(),
|
|
440
|
+
runtimeId: runtime.id,
|
|
172
441
|
};
|
|
173
442
|
let lastResetsAt = null;
|
|
174
443
|
const stderrTail = [];
|
|
@@ -215,7 +484,7 @@ function streamClaude(argv, cwd, logPath, options = {}) {
|
|
|
215
484
|
catch {
|
|
216
485
|
// Already dead; close handling below will settle if needed.
|
|
217
486
|
}
|
|
218
|
-
rejectOnce(abortError());
|
|
487
|
+
rejectOnce(abortError(runtime.command));
|
|
219
488
|
};
|
|
220
489
|
rl = createInterface({ input: child.stdout });
|
|
221
490
|
rl.on("line", (line) => {
|
|
@@ -231,37 +500,26 @@ function streamClaude(argv, cwd, logPath, options = {}) {
|
|
|
231
500
|
catch {
|
|
232
501
|
return;
|
|
233
502
|
}
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
503
|
+
if (runtime.id === "codex")
|
|
504
|
+
renderCodexEvent(parsed);
|
|
505
|
+
else
|
|
506
|
+
renderEvent(parsed, toolMap);
|
|
507
|
+
const runtimeReset = runtime.resetsAtFromEvent?.(parsed);
|
|
508
|
+
if (runtimeReset != null)
|
|
509
|
+
lastResetsAt = runtimeReset;
|
|
510
|
+
else if (parsed.type === "rate_limit_event") {
|
|
511
|
+
const claudeReset = resetsAtFromEvent(parsed);
|
|
512
|
+
if (claudeReset != null)
|
|
513
|
+
lastResetsAt = claudeReset;
|
|
239
514
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
return;
|
|
249
|
-
process.stderr.write(`${dim(`grace timer fired after ${graceMs}ms post-result — killing claude child`)}\n`);
|
|
250
|
-
try {
|
|
251
|
-
child.kill();
|
|
252
|
-
}
|
|
253
|
-
catch {
|
|
254
|
-
// Already dead; close handler will be a no-op via settle guard.
|
|
255
|
-
}
|
|
256
|
-
if (final && isLimitResult(final)) {
|
|
257
|
-
rejectOnce(new RateLimitError(final.result || "rate limit", lastResetsAt));
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
resolveOnce(final);
|
|
261
|
-
}
|
|
262
|
-
}, graceMs);
|
|
263
|
-
graceTimer.unref?.();
|
|
264
|
-
}
|
|
515
|
+
const streamResult = parseStreamEvent?.(parsed);
|
|
516
|
+
if (streamResult) {
|
|
517
|
+
final = streamResult;
|
|
518
|
+
settleFinalAfterGrace();
|
|
519
|
+
}
|
|
520
|
+
else if (parsed.type === "result") {
|
|
521
|
+
final = runtime.parseResultEvent(parsed);
|
|
522
|
+
settleFinalAfterGrace();
|
|
265
523
|
}
|
|
266
524
|
});
|
|
267
525
|
rlErr = createInterface({ input: child.stderr });
|
|
@@ -271,7 +529,7 @@ function streamClaude(argv, cwd, logPath, options = {}) {
|
|
|
271
529
|
stderrTail.push(line);
|
|
272
530
|
if (stderrTail.length > STDERR_TAIL_LINES)
|
|
273
531
|
stderrTail.shift();
|
|
274
|
-
process.stderr.write(`${dim("
|
|
532
|
+
process.stderr.write(`${dim(runtime.command + " " + line)}\n`);
|
|
275
533
|
});
|
|
276
534
|
if (options.signal?.aborted) {
|
|
277
535
|
onAbort();
|
|
@@ -287,7 +545,7 @@ function streamClaude(argv, cwd, logPath, options = {}) {
|
|
|
287
545
|
return;
|
|
288
546
|
}
|
|
289
547
|
if (code !== 0) {
|
|
290
|
-
rejectOnce(new Error(
|
|
548
|
+
rejectOnce(new Error(`${runtime.command} exited with ${code}\n${stderrTail.join("\n")}`));
|
|
291
549
|
return;
|
|
292
550
|
}
|
|
293
551
|
resolveOnce(final);
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/stage-exec.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { type AgentRuntimeId } from "./agent-runtime.js";
|
|
1
2
|
import { type StageResult } from "./runner.js";
|
|
2
3
|
import type { Stage } from "./stages.js";
|
|
4
|
+
import type { TokenMode } from "./tokens.js";
|
|
3
5
|
export type ExecuteStageOptions = {
|
|
4
6
|
stage: Stage;
|
|
5
7
|
vars: Record<string, string>;
|
|
@@ -7,9 +9,12 @@ export type ExecuteStageOptions = {
|
|
|
7
9
|
packageDir: string;
|
|
8
10
|
iteration: number;
|
|
9
11
|
maxRetries: number;
|
|
12
|
+
tokenMode?: TokenMode;
|
|
10
13
|
signal?: AbortSignal;
|
|
11
14
|
/** Disambiguates spill/log paths when multiple sub-stages share an iteration (panel lenses). */
|
|
12
15
|
logLabel?: string;
|
|
16
|
+
/** Active runtime id; suffixes the NDJSON log filename so logs are runtime-labelled. */
|
|
17
|
+
agentId?: AgentRuntimeId;
|
|
13
18
|
};
|
|
14
19
|
/** Render a stage's template (inside the retry, so flaky shell tags retry) and run it. */
|
|
15
20
|
export declare function executeStage(opts: ExecuteStageOptions): Promise<StageResult>;
|
package/dist/stage-exec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-exec.d.ts","sourceRoot":"","sources":["../src/stage-exec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stage-exec.d.ts","sourceRoot":"","sources":["../src/stage-exec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIxE,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wFAAwF;IACxF,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF,0FAA0F;AAC1F,wBAAsB,YAAY,CAChC,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAAC,WAAW,CAAC,CA6DtB"}
|
package/dist/stage-exec.js
CHANGED
|
@@ -1,21 +1,30 @@
|
|
|
1
1
|
import { appendFileSync, mkdirSync } from "node:fs";
|
|
2
2
|
import { dirname, join, posix } from "node:path";
|
|
3
|
+
import { DEFAULT_AGENT } from "./agent-runtime.js";
|
|
4
|
+
import { applyPromptReduction } from "./prompt-reduction.js";
|
|
3
5
|
import { renderTemplate } from "./render.js";
|
|
4
6
|
import { DEFAULT_BACKOFF_MS, backoffFor, withRetries } from "./retry.js";
|
|
5
|
-
import { runStage, stageLogPath } from "./runner.js";
|
|
7
|
+
import { getAgentRuntime, runStage, stageLogPath, } from "./runner.js";
|
|
6
8
|
import { USE_COLOR, dim } from "./stream-render.js";
|
|
7
9
|
/** Render a stage's template (inside the retry, so flaky shell tags retry) and run it. */
|
|
8
10
|
export async function executeStage(opts) {
|
|
9
|
-
const { stage, vars, workspaceDir, packageDir, iteration, maxRetries, signal, } = opts;
|
|
11
|
+
const { stage, vars, workspaceDir, packageDir, iteration, maxRetries, tokenMode = "off", signal, } = opts;
|
|
10
12
|
const label = opts.logLabel ?? stage.name;
|
|
11
13
|
const spillRel = `spill-${process.pid}-${iteration}-${label}-${Date.now()}`;
|
|
12
14
|
const spillHostDir = join(workspaceDir, ".otto-tmp", spillRel);
|
|
13
15
|
const spillRefPath = posix.join(".otto-tmp", spillRel);
|
|
14
|
-
const stageLog = stageLogPath(workspaceDir, iteration, label);
|
|
16
|
+
const stageLog = stageLogPath(workspaceDir, iteration, label, opts.agentId);
|
|
15
17
|
mkdirSync(dirname(stageLog), { recursive: true });
|
|
18
|
+
const runtime = getAgentRuntime(opts.agentId ?? DEFAULT_AGENT);
|
|
16
19
|
return withRetries(() => {
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
let prompt = renderTemplate(join(packageDir, "templates", stage.template), vars, { cwd: workspaceDir, spillHostDir, spillRefPath });
|
|
21
|
+
if (tokenMode === "reduce") {
|
|
22
|
+
const reduced = applyPromptReduction(prompt);
|
|
23
|
+
prompt = reduced.prompt;
|
|
24
|
+
const { originalChars, reducedChars, cacheHits } = reduced.stats;
|
|
25
|
+
process.stderr.write(`${dim(`prompt reduce ${originalChars} -> ${reducedChars} chars | cache hits ${cacheHits}`)}\n`);
|
|
26
|
+
}
|
|
27
|
+
return runStage(stage, prompt, workspaceDir, iteration, spillHostDir, stageLog, { signal, runtime });
|
|
19
28
|
}, {
|
|
20
29
|
max: maxRetries,
|
|
21
30
|
backoffMs: DEFAULT_BACKOFF_MS,
|
package/dist/stage-exec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage-exec.js","sourceRoot":"","sources":["../src/stage-exec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,
|
|
1
|
+
{"version":3,"file":"stage-exec.js","sourceRoot":"","sources":["../src/stage-exec.ts"],"names":[],"mappings":"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"}
|
package/dist/state.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { AgentRuntimeId } from "./agent-runtime.js";
|
|
1
2
|
export type RunStatus = "running" | "waiting-rate-limit" | "interrupted" | "complete";
|
|
2
3
|
export type RunState = {
|
|
3
4
|
bin: string;
|
|
@@ -7,6 +8,9 @@ export type RunState = {
|
|
|
7
8
|
of: number;
|
|
8
9
|
status: RunStatus;
|
|
9
10
|
resetsAt?: number | null;
|
|
11
|
+
/** Active runtime at persist time. Records an auto-switch so a resumed run
|
|
12
|
+
* keeps the fallback (unless --fresh clears state). Absent on pre-switch runs. */
|
|
13
|
+
agent?: AgentRuntimeId;
|
|
10
14
|
startedAt: string;
|
|
11
15
|
updatedAt: string;
|
|
12
16
|
};
|
package/dist/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,oBAAoB,GACpB,aAAa,GACb,UAAU,CAAC;AAEf,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQ/D;AAED,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAMlE;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAQT"}
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,oBAAoB,GACpB,aAAa,GACb,UAAU,CAAC;AAEf,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;uFACmF;IACnF,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,wEAAwE;AACxE,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAQ/D;AAED,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,CAMlE;AAED,iDAAiD;AACjD,wBAAgB,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAErD;AAED,4EAA4E;AAC5E,wBAAgB,aAAa,CAC3B,IAAI,EAAE,QAAQ,GAAG,IAAI,EACrB,GAAG,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACjD,OAAO,CAQT"}
|
package/dist/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../src/state.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAyBjC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAE9C,wEAAwE;AACxE,MAAM,UAAU,SAAS,CAAC,YAAoB;IAC5C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CACf,YAAY,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CACxC,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,UAAU,CAAC,YAAoB,EAAE,CAAW;IAC1D,SAAS,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,aAAa,CACX,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAClC,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,UAAU,UAAU,CAAC,YAAoB;IAC7C,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,aAAa,CAC3B,IAAqB,EACrB,GAAkD;IAElD,OAAO,CACL,IAAI,IAAI,IAAI;QACZ,IAAI,CAAC,MAAM,KAAK,UAAU;QAC1B,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG;QACpB,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI;QACtB,IAAI,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAC3B,CAAC;AACJ,CAAC"}
|
package/dist/tokens.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type TokenMode = "off" | "measure" | "reduce";
|
|
2
|
+
export type TokenUsage = {
|
|
3
|
+
inputTokens: number;
|
|
4
|
+
outputTokens: number;
|
|
5
|
+
cacheCreationInputTokens: number;
|
|
6
|
+
cacheReadInputTokens: number;
|
|
7
|
+
};
|
|
8
|
+
export declare function emptyTokenUsage(): TokenUsage;
|
|
9
|
+
/** Parse Claude stream-json result-event token usage. Missing fields are zero. */
|
|
10
|
+
export declare function parseTokenUsage(ev: unknown): TokenUsage;
|
|
11
|
+
export declare function addTokenUsage(a: TokenUsage, b: TokenUsage): TokenUsage;
|
|
12
|
+
export declare function tokenUsageTotal(u: TokenUsage): number;
|
|
13
|
+
export declare function formatTokenUsage(u: TokenUsage): string;
|
|
14
|
+
export declare function parseTokenMode(raw: string | undefined, source?: string): TokenMode;
|
|
15
|
+
//# sourceMappingURL=tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokens.d.ts","sourceRoot":"","sources":["../src/tokens.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErD,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,wBAAwB,EAAE,MAAM,CAAC;IACjC,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,wBAAgB,eAAe,IAAI,UAAU,CAO5C;AAcD,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,EAAE,EAAE,OAAO,GAAG,UAAU,CAQvD;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,GAAG,UAAU,CAQtE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAOrD;AAID,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAQtD;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,MAAM,SAAiB,GACtB,SAAS,CASX"}
|