@smartmemory/stratum 0.3.3 → 0.4.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/cli/guard.js +63 -6
- package/dist/cli/guard.js.map +1 -1
- package/dist/cli/learn.js +226 -0
- package/dist/cli/learn.js.map +1 -0
- package/dist/cli/query_gate.js +2 -1
- package/dist/cli/query_gate.js.map +1 -1
- package/dist/cli/stratum.js +5 -2
- package/dist/cli/stratum.js.map +1 -1
- package/dist/connectors/background.js +58 -10
- package/dist/connectors/background.js.map +1 -1
- package/dist/connectors/base.js +16 -0
- package/dist/connectors/base.js.map +1 -1
- package/dist/connectors/cancellation.js +119 -0
- package/dist/connectors/cancellation.js.map +1 -0
- package/dist/connectors/claude-bg-worker.js +9 -1
- package/dist/connectors/claude-bg-worker.js.map +1 -1
- package/dist/connectors/claude.js +179 -86
- package/dist/connectors/claude.js.map +1 -1
- package/dist/connectors/codex.js +289 -61
- package/dist/connectors/codex.js.map +1 -1
- package/dist/connectors/runner.js +44 -3
- package/dist/connectors/runner.js.map +1 -1
- package/dist/contracts/events.json +34 -1
- package/dist/contracts/guard-signers.allowed +36 -0
- package/dist/contracts/mcp-surface.json +1097 -104
- package/dist/engine/checkpoint.js +8 -1
- package/dist/engine/checkpoint.js.map +1 -1
- package/dist/engine/engine.js +508 -42
- package/dist/engine/engine.js.map +1 -1
- package/dist/engine/evaluate.js +61 -0
- package/dist/engine/evaluate.js.map +1 -0
- package/dist/engine/ledger.js +12 -0
- package/dist/engine/ledger.js.map +1 -1
- package/dist/engine/receipts.js +91 -0
- package/dist/engine/receipts.js.map +1 -0
- package/dist/engine/state.js +51 -1
- package/dist/engine/state.js.map +1 -1
- package/dist/guard/authorization.js +71 -0
- package/dist/guard/authorization.js.map +1 -0
- package/dist/guard/descriptors.js +248 -0
- package/dist/guard/descriptors.js.map +1 -0
- package/dist/guard/errors.js +12 -0
- package/dist/guard/errors.js.map +1 -1
- package/dist/guard/evidence.js +24 -3
- package/dist/guard/evidence.js.map +1 -1
- package/dist/guard/sshsig.js +264 -0
- package/dist/guard/sshsig.js.map +1 -0
- package/dist/guard/store.js +13 -0
- package/dist/guard/store.js.map +1 -1
- package/dist/guard/transition.js +484 -33
- package/dist/guard/transition.js.map +1 -1
- package/dist/guard/trust.js +78 -0
- package/dist/guard/trust.js.map +1 -0
- package/dist/ir/schema.js +8 -1
- package/dist/ir/schema.js.map +1 -1
- package/dist/ir/validate.js +3 -1
- package/dist/ir/validate.js.map +1 -1
- package/dist/judge/judged.js +1 -1
- package/dist/judge/pricing.js +1 -0
- package/dist/judge/pricing.js.map +1 -1
- package/dist/learn/apply.js +600 -0
- package/dist/learn/apply.js.map +1 -0
- package/dist/learn/candidate.js +186 -0
- package/dist/learn/candidate.js.map +1 -0
- package/dist/learn/classify.js +181 -0
- package/dist/learn/classify.js.map +1 -0
- package/dist/learn/harvest.js +138 -0
- package/dist/learn/harvest.js.map +1 -0
- package/dist/learn/smartmemory_egress.js +330 -0
- package/dist/learn/smartmemory_egress.js.map +1 -0
- package/dist/mcp/server.js +155 -24
- package/dist/mcp/server.js.map +1 -1
- package/dist/policy/bundle.js +195 -0
- package/dist/policy/bundle.js.map +1 -0
- package/dist/policy/events.js +51 -0
- package/dist/policy/events.js.map +1 -0
- package/dist/policy/smartmemory_client.js +332 -0
- package/dist/policy/smartmemory_client.js.map +1 -0
- package/dist/policy/types.js +2 -0
- package/dist/policy/types.js.map +1 -0
- package/package.json +3 -2
package/dist/connectors/codex.js
CHANGED
|
@@ -1,7 +1,79 @@
|
|
|
1
1
|
import { spawn as nodeSpawn } from "node:child_process";
|
|
2
|
+
import { accessSync, constants, existsSync, readdirSync } from "node:fs";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { delimiter, dirname, join } from "node:path";
|
|
5
|
+
import { createRequire } from "node:module";
|
|
2
6
|
import { Codex } from "@openai/codex-sdk";
|
|
3
|
-
import { finiteNonnegative, modelIdentity } from "./base.js";
|
|
4
|
-
|
|
7
|
+
import { finiteNonnegative, modelIdentity, SMARTMEMORY_SCRUB_VARS } from "./base.js";
|
|
8
|
+
import { linkAbort, cancellationGraceMs, processTermination, requireProcessGroups } from "./cancellation.js";
|
|
9
|
+
/** How long a post-spawn `error` may wait for the matching `close` before the
|
|
10
|
+
* run settles on the error alone. Short: it only covers the gap between the two
|
|
11
|
+
* events for a child that did start. */
|
|
12
|
+
const SPAWN_ERROR_CLOSE_MS = 250;
|
|
13
|
+
const CODEX_SCRUB_VARS = ["ANTHROPIC_API_KEY", "CLAUDE_API_KEY", "CLAUDECODE", ...SMARTMEMORY_SCRUB_VARS];
|
|
14
|
+
/** GUI apps cannot start inside the Codex OS sandbox: full Chrome aborts
|
|
15
|
+
* (SIGABRT) during WindowServer registration even with --headless. Agents that
|
|
16
|
+
* discover this by crashing tend to retry into a crash loop, so every dispatch
|
|
17
|
+
* states the constraint up front. */
|
|
18
|
+
export const CODEX_SANDBOX_PREAMBLE = [
|
|
19
|
+
"[sandbox constraints]",
|
|
20
|
+
"You are running inside a restricted OS sandbox (macOS seatbelt / Linux landlock).",
|
|
21
|
+
"GUI applications cannot start here: full Chrome/Chromium, Electron, or anything",
|
|
22
|
+
"that opens a window aborts at launch (SIGABRT). That abort is the sandbox, not",
|
|
23
|
+
"a bug in the code under test. For browser work use chrome-headless-shell (set",
|
|
24
|
+
"via PUPPETEER_EXECUTABLE_PATH when available) or another headless-only tool.",
|
|
25
|
+
"If a GUI launch aborts, do not retry it.",
|
|
26
|
+
"[/sandbox constraints]",
|
|
27
|
+
].join("\n");
|
|
28
|
+
/** Deliberately NOT gated on sandboxMode. Both values of CodexSandboxMode
|
|
29
|
+
* ("read-only" | "workspace-write") are passed to `codex --sandbox`, so every
|
|
30
|
+
* dispatch runs under seatbelt/landlock — the modes differ in write permission,
|
|
31
|
+
* not window-server access, and GUI apps abort under both. Gating on the mode
|
|
32
|
+
* would strip the warning from workspace-write agents, which are exactly the
|
|
33
|
+
* ones that run browser tests and crash-looped before this existed. Revisit
|
|
34
|
+
* only if an unsandboxed mode is ever added to CodexSandboxMode. */
|
|
35
|
+
export function withSandboxPreamble(prompt) {
|
|
36
|
+
if (prompt.startsWith("[sandbox constraints]"))
|
|
37
|
+
return prompt;
|
|
38
|
+
return `${CODEX_SANDBOX_PREAMBLE}\n\n${prompt}`;
|
|
39
|
+
}
|
|
40
|
+
/** Newest chrome-headless-shell in the Puppeteer cache, if any. Sandboxed
|
|
41
|
+
* agents can run this binary where full Chrome aborts (see
|
|
42
|
+
* CODEX_SANDBOX_PREAMBLE), but cannot install it themselves without network. */
|
|
43
|
+
export function resolveHeadlessShellPath(home = homedir()) {
|
|
44
|
+
const root = join(home, ".cache", "puppeteer", "chrome-headless-shell");
|
|
45
|
+
if (!existsSync(root))
|
|
46
|
+
return undefined;
|
|
47
|
+
const buildOf = (dir) => (dir.split("-").pop() ?? "").split(".").map(Number);
|
|
48
|
+
const versions = readdirSync(root)
|
|
49
|
+
.filter((dir) => /-[\d.]+$/.test(dir))
|
|
50
|
+
.sort((a, b) => {
|
|
51
|
+
const [va, vb] = [buildOf(a), buildOf(b)];
|
|
52
|
+
for (let i = 0; i < Math.max(va.length, vb.length); i++) {
|
|
53
|
+
if ((va[i] ?? 0) !== (vb[i] ?? 0))
|
|
54
|
+
return (vb[i] ?? 0) - (va[i] ?? 0);
|
|
55
|
+
}
|
|
56
|
+
return 0;
|
|
57
|
+
});
|
|
58
|
+
const binaryName = process.platform === "win32" ? "chrome-headless-shell.exe" : "chrome-headless-shell";
|
|
59
|
+
for (const version of versions) {
|
|
60
|
+
const versionDir = join(root, version);
|
|
61
|
+
const binary = readdirSync(versionDir)
|
|
62
|
+
.filter((dir) => dir.startsWith("chrome-headless-shell-"))
|
|
63
|
+
.map((dir) => join(versionDir, dir, binaryName))
|
|
64
|
+
.find((candidate) => existsSync(candidate));
|
|
65
|
+
if (binary)
|
|
66
|
+
return binary;
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
export function applyHeadlessShellEnv(env, home) {
|
|
71
|
+
if (env.PUPPETEER_EXECUTABLE_PATH)
|
|
72
|
+
return;
|
|
73
|
+
const shell = resolveHeadlessShellPath(home);
|
|
74
|
+
if (shell)
|
|
75
|
+
env.PUPPETEER_EXECUTABLE_PATH = shell;
|
|
76
|
+
}
|
|
5
77
|
export function defaultCodexModel() {
|
|
6
78
|
return process.env.CODEX_MODEL ?? "gpt-5.6-terra/high";
|
|
7
79
|
}
|
|
@@ -44,92 +116,139 @@ export function codexCommand(modelId, cwd, sandboxMode) {
|
|
|
44
116
|
}
|
|
45
117
|
export class CodexConnector {
|
|
46
118
|
model;
|
|
119
|
+
signal;
|
|
47
120
|
cwd;
|
|
48
121
|
sandboxMode;
|
|
49
122
|
env;
|
|
50
123
|
transport;
|
|
124
|
+
ownProcessGroup;
|
|
125
|
+
graceMs;
|
|
126
|
+
injectedSpawn;
|
|
51
127
|
sdkFactory;
|
|
52
128
|
spawn;
|
|
53
129
|
onEvent;
|
|
54
130
|
constructor(options = {}) {
|
|
55
|
-
this.model = options.model ?? defaultCodexModel();
|
|
131
|
+
this.model = codexModelWithEffort(options.model ?? (options.effort === undefined ? defaultCodexModel() : modelIdentity(defaultCodexModel()).model), options.effort);
|
|
132
|
+
this.signal = options.signal;
|
|
56
133
|
this.cwd = options.cwd ?? process.cwd();
|
|
57
134
|
this.sandboxMode = options.sandboxMode ?? "read-only";
|
|
58
135
|
this.env = { ...(options.env ?? process.env) };
|
|
59
136
|
for (const key of CODEX_SCRUB_VARS)
|
|
60
137
|
delete this.env[key];
|
|
138
|
+
// A caller-supplied env is authoritative; the headless-shell default is
|
|
139
|
+
// only layered onto the ambient process.env fallback.
|
|
140
|
+
if (options.env === undefined)
|
|
141
|
+
applyHeadlessShellEnv(this.env);
|
|
61
142
|
// Passing an injected spawn is itself an explicit request for the legacy
|
|
62
143
|
// process seam. Production selects exec with STRATUM_CODEX_TRANSPORT=exec.
|
|
63
|
-
|
|
144
|
+
const selectedTransport = options.transport ?? (options.spawn ? "exec" : resolveCodexTransport(this.env));
|
|
145
|
+
// Owning a process group requires exec. A transport request or signal alone
|
|
146
|
+
// keeps the selected SDK/exec transport; only the MCP cancellation contract
|
|
147
|
+
// opts into process-group ownership.
|
|
148
|
+
this.ownProcessGroup = options.ownProcessGroup === true;
|
|
149
|
+
this.transport = this.ownProcessGroup ? "exec" : selectedTransport;
|
|
150
|
+
this.graceMs = options.cancellationGraceMs ?? cancellationGraceMs(this.env);
|
|
151
|
+
this.injectedSpawn = options.spawn !== undefined;
|
|
64
152
|
this.sdkFactory = options.sdkFactory ?? defaultSdkFactory;
|
|
65
153
|
this.spawn = options.spawn ?? nodeSpawn;
|
|
66
154
|
this.onEvent = options.onEvent;
|
|
67
155
|
}
|
|
68
156
|
async run(prompt) {
|
|
69
|
-
|
|
157
|
+
this.signal?.throwIfAborted();
|
|
158
|
+
if (this.ownProcessGroup)
|
|
159
|
+
requireProcessGroups();
|
|
160
|
+
const framed = withSandboxPreamble(prompt);
|
|
161
|
+
return this.transport === "sdk" ? this.runSdk(framed) : this.runExec(framed);
|
|
70
162
|
}
|
|
71
163
|
async runSdk(prompt) {
|
|
72
164
|
const startedAt = Date.now();
|
|
73
165
|
const stdoutLimit = resolveStdoutLimit();
|
|
74
166
|
const controller = new AbortController();
|
|
75
|
-
const
|
|
76
|
-
const options = {
|
|
77
|
-
approvalPolicy: "never",
|
|
78
|
-
model: identity.model,
|
|
79
|
-
sandboxMode: this.sandboxMode,
|
|
80
|
-
skipGitRepoCheck: true,
|
|
81
|
-
workingDirectory: this.cwd,
|
|
82
|
-
...(identity.effort !== undefined ? { modelReasoningEffort: reasoningEffort(identity.effort) } : {}),
|
|
83
|
-
};
|
|
84
|
-
const client = this.sdkFactory({ env: stringEnvironment(this.env) });
|
|
85
|
-
const streamed = await client.startThread(options).runStreamed(prompt, { signal: controller.signal });
|
|
86
|
-
const text = [];
|
|
167
|
+
const unlink = linkAbort(this.signal, controller);
|
|
87
168
|
let inputTokens = 0;
|
|
88
169
|
let outputTokens = 0;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
170
|
+
let cacheRead = 0;
|
|
171
|
+
let costUsd = 0;
|
|
172
|
+
try {
|
|
173
|
+
const identity = modelIdentity(this.model);
|
|
174
|
+
const options = {
|
|
175
|
+
approvalPolicy: "never",
|
|
176
|
+
model: identity.model,
|
|
177
|
+
sandboxMode: this.sandboxMode,
|
|
178
|
+
skipGitRepoCheck: true,
|
|
179
|
+
workingDirectory: this.cwd,
|
|
180
|
+
...(identity.effort !== undefined ? { modelReasoningEffort: reasoningEffort(identity.effort) } : {}),
|
|
181
|
+
};
|
|
182
|
+
const pathBinary = pathCodex(this.env);
|
|
183
|
+
const client = this.sdkFactory({ env: stringEnvironment(this.env), ...(pathBinary ? { codexPathOverride: pathBinary } : {}) });
|
|
184
|
+
const streamed = await client.startThread(options).runStreamed(prompt, { signal: controller.signal });
|
|
185
|
+
const text = [];
|
|
186
|
+
// Consume SDK events directly rather than run(), which buffers every tool
|
|
187
|
+
// and file-change item for the whole turn. Stratum only retains the final
|
|
188
|
+
// agent text and accounting data, matching the direct JSONL transport. The
|
|
189
|
+
// SDK does not expose its raw readline/stderr buffers, so this enforces the
|
|
190
|
+
// same per-JSONL-line bound immediately after each event is yielded.
|
|
191
|
+
for await (const event of streamed.events) {
|
|
192
|
+
if (exceedsStreamLimit(JSON.stringify(event), stdoutLimit)) {
|
|
193
|
+
controller.abort();
|
|
194
|
+
throw stdoutOverrunError(stdoutLimit);
|
|
195
|
+
}
|
|
196
|
+
for (const connectorEvent of codexConnectorEvents(event, this.model, prompt)) {
|
|
197
|
+
await this.emit(connectorEvent);
|
|
198
|
+
}
|
|
199
|
+
if ((event.type === "turn.completed" || event.type === "turn.failed") && "usage" in event && isRecord(event.usage)) {
|
|
200
|
+
inputTokens += finiteNonnegative(event.usage.input_tokens);
|
|
201
|
+
outputTokens += finiteNonnegative(event.usage.output_tokens);
|
|
202
|
+
cacheRead += finiteNonnegative(event.usage.cached_input_tokens);
|
|
203
|
+
costUsd += finiteNonnegative(event.usage.total_cost_usd ?? event.usage.cost_usd);
|
|
204
|
+
}
|
|
205
|
+
if (event.type === "error")
|
|
206
|
+
throw new Error(event.message);
|
|
207
|
+
if (event.type === "turn.failed")
|
|
208
|
+
throw new Error(event.error.message);
|
|
209
|
+
if (event.type === "item.completed" && event.item.type === "agent_message" && event.item.text) {
|
|
210
|
+
text.push(event.item.text);
|
|
211
|
+
}
|
|
112
212
|
}
|
|
213
|
+
controller.signal.throwIfAborted();
|
|
214
|
+
const durationMs = Math.max(0, Date.now() - startedAt);
|
|
215
|
+
return {
|
|
216
|
+
text: text.join(""),
|
|
217
|
+
usage: { tokens: inputTokens + outputTokens, ms: durationMs },
|
|
218
|
+
split: { input: inputTokens, output: outputTokens },
|
|
219
|
+
telemetry: { durationMs, ...identity },
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
throw attachCodexUsage(error, inputTokens, outputTokens, cacheRead, costUsd, Date.now() - startedAt, this.model);
|
|
224
|
+
}
|
|
225
|
+
finally {
|
|
226
|
+
unlink();
|
|
113
227
|
}
|
|
114
|
-
const durationMs = Math.max(0, Date.now() - startedAt);
|
|
115
|
-
return {
|
|
116
|
-
text: text.join(""),
|
|
117
|
-
usage: { tokens: inputTokens + outputTokens, ms: durationMs },
|
|
118
|
-
telemetry: { durationMs, ...identity },
|
|
119
|
-
};
|
|
120
228
|
}
|
|
121
229
|
async runExec(prompt) {
|
|
122
230
|
const startedAt = Date.now();
|
|
123
|
-
const
|
|
231
|
+
const command = this.injectedSpawn ? { command: "codex", prefix: [] } : resolveCodexCommand(this.env);
|
|
232
|
+
const child = this.spawn(command.command, [...command.prefix, ...codexExecArgs(this.model, this.cwd, this.sandboxMode)], {
|
|
124
233
|
cwd: this.cwd,
|
|
125
234
|
env: this.env,
|
|
235
|
+
detached: this.ownProcessGroup && process.platform !== "win32",
|
|
126
236
|
});
|
|
237
|
+
const termination = processTermination(child, this.ownProcessGroup, this.graceMs);
|
|
238
|
+
const killGroup = () => { void termination.terminate(); };
|
|
239
|
+
const abort = killGroup;
|
|
240
|
+
this.signal?.addEventListener("abort", abort, { once: true });
|
|
241
|
+
if (this.signal?.aborted)
|
|
242
|
+
abort();
|
|
127
243
|
const stdoutLimit = resolveStdoutLimit();
|
|
128
244
|
const text = [];
|
|
129
245
|
let inputTokens = 0;
|
|
130
246
|
let outputTokens = 0;
|
|
247
|
+
let cacheRead = 0;
|
|
248
|
+
let costUsd = 0;
|
|
131
249
|
let codexError;
|
|
132
250
|
let eventDelivery = Promise.resolve();
|
|
251
|
+
let eventDeliveryError;
|
|
133
252
|
const handleLine = (line) => {
|
|
134
253
|
const record = parseRecord(line);
|
|
135
254
|
if (!record)
|
|
@@ -137,10 +256,24 @@ export class CodexConnector {
|
|
|
137
256
|
const connectorEvents = codexConnectorEvents(record, this.model, prompt);
|
|
138
257
|
if (connectorEvents.length > 0) {
|
|
139
258
|
eventDelivery = eventDelivery.then(async () => {
|
|
259
|
+
if (eventDeliveryError)
|
|
260
|
+
return;
|
|
140
261
|
for (const connectorEvent of connectorEvents)
|
|
141
262
|
await this.emit(connectorEvent);
|
|
263
|
+
}).catch((error) => {
|
|
264
|
+
// Attach immediately, while the process is still alive: a callback
|
|
265
|
+
// rejection must neither escape as unhandled nor leave an agent running.
|
|
266
|
+
eventDeliveryError = error instanceof Error ? error : new Error(String(error));
|
|
267
|
+
try {
|
|
268
|
+
killGroup();
|
|
269
|
+
}
|
|
270
|
+
catch (killError) {
|
|
271
|
+
eventDeliveryError = new Error("Could not terminate Codex after an event callback failed", { cause: killError });
|
|
272
|
+
}
|
|
142
273
|
});
|
|
143
274
|
}
|
|
275
|
+
if (record.type === "turn.failed" && isRecord(record.error))
|
|
276
|
+
codexError = String(record.error.message ?? "codex turn failed");
|
|
144
277
|
if (record.type === "error" && codexError === undefined) {
|
|
145
278
|
codexError = typeof record.message === "string" ? record.message : "codex error";
|
|
146
279
|
}
|
|
@@ -148,9 +281,11 @@ export class CodexConnector {
|
|
|
148
281
|
if (typeof record.item.text === "string" && record.item.text)
|
|
149
282
|
text.push(record.item.text);
|
|
150
283
|
}
|
|
151
|
-
if (record.type === "turn.completed" && isRecord(record.usage)) {
|
|
284
|
+
if ((record.type === "turn.completed" || record.type === "turn.failed") && isRecord(record.usage)) {
|
|
152
285
|
inputTokens += finiteNonnegative(record.usage.input_tokens);
|
|
153
286
|
outputTokens += finiteNonnegative(record.usage.output_tokens);
|
|
287
|
+
cacheRead += finiteNonnegative(record.usage.cached_input_tokens);
|
|
288
|
+
costUsd += finiteNonnegative(record.usage.total_cost_usd ?? record.usage.cost_usd);
|
|
154
289
|
}
|
|
155
290
|
};
|
|
156
291
|
// Lines are parsed as they stream, so only one pending partial line is
|
|
@@ -166,7 +301,10 @@ export class CodexConnector {
|
|
|
166
301
|
overrun = true;
|
|
167
302
|
pending = "";
|
|
168
303
|
pendingBytes = 0;
|
|
169
|
-
child
|
|
304
|
+
// Overrun means the child is producing output we can no longer parse, so
|
|
305
|
+
// the graceful window buys nothing and lets it keep flooding: SIGKILL the
|
|
306
|
+
// group now. Teardown (including group reaping) is still awaited below.
|
|
307
|
+
void termination.terminate("SIGKILL");
|
|
170
308
|
};
|
|
171
309
|
child.stdout.on("data", (chunk) => {
|
|
172
310
|
if (overrun)
|
|
@@ -190,25 +328,63 @@ export class CodexConnector {
|
|
|
190
328
|
declareOverrun();
|
|
191
329
|
});
|
|
192
330
|
child.stderr.on("data", (chunk) => { stderr = (stderr + chunk).slice(-stdoutLimit); });
|
|
331
|
+
// A cancelled child may close stdin before it consumes the prompt.
|
|
332
|
+
child.stdin.on("error", () => { });
|
|
193
333
|
child.stdin.end(prompt, "utf8");
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
334
|
+
let spawnError;
|
|
335
|
+
const exitCode = await new Promise((resolve) => {
|
|
336
|
+
let settled = false;
|
|
337
|
+
let deadline;
|
|
338
|
+
const settle = (code) => {
|
|
339
|
+
if (settled)
|
|
340
|
+
return;
|
|
341
|
+
settled = true;
|
|
342
|
+
if (deadline)
|
|
343
|
+
clearTimeout(deadline);
|
|
344
|
+
resolve(code);
|
|
345
|
+
};
|
|
346
|
+
child.once("close", (code) => settle(code ?? 1));
|
|
347
|
+
child.once("error", (error) => {
|
|
348
|
+
spawnError = error;
|
|
349
|
+
// A process that never started emits `error` and no `close`, so waiting
|
|
350
|
+
// on `close` alone would hang the run forever. A post-spawn `error`
|
|
351
|
+
// (EPIPE on a killed child) is still followed by `close`, so give that
|
|
352
|
+
// a short bound rather than settling immediately and losing the code.
|
|
353
|
+
if (!settled)
|
|
354
|
+
deadline = setTimeout(() => settle(1), SPAWN_ERROR_CLOSE_MS);
|
|
355
|
+
});
|
|
356
|
+
}).finally(() => this.signal?.removeEventListener("abort", abort));
|
|
357
|
+
if (!overrun && pending)
|
|
202
358
|
handleLine(pending);
|
|
359
|
+
// Child exit is not the whole lifetime: callbacks may still be writing a
|
|
360
|
+
// usage/event ledger. Drain them before every terminal outcome, including
|
|
361
|
+
// abort and stream overrun, so cancellation acknowledges complete teardown.
|
|
203
362
|
await eventDelivery;
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
363
|
+
try {
|
|
364
|
+
await termination.finish();
|
|
365
|
+
this.signal?.throwIfAborted();
|
|
366
|
+
if (overrun)
|
|
367
|
+
throw stdoutOverrunError(stdoutLimit);
|
|
368
|
+
if (spawnError)
|
|
369
|
+
throw spawnError;
|
|
370
|
+
if (eventDeliveryError)
|
|
371
|
+
throw eventDeliveryError;
|
|
372
|
+
if (codexError)
|
|
373
|
+
throw new Error(codexError);
|
|
374
|
+
// A nonzero exit is NOT on its own a failed run: codex exits nonzero on some
|
|
375
|
+
// sandbox denials after it has already emitted a complete agent_message.
|
|
376
|
+
// Only an exit that produced no agent text at all is an error.
|
|
377
|
+
if (exitCode !== 0 && text.length === 0)
|
|
378
|
+
throw new Error(stderr.trim() || `codex exited with code ${exitCode}`);
|
|
379
|
+
}
|
|
380
|
+
catch (error) {
|
|
381
|
+
throw attachCodexUsage(error, inputTokens, outputTokens, cacheRead, costUsd, Date.now() - startedAt, this.model);
|
|
382
|
+
}
|
|
208
383
|
const durationMs = Math.max(0, Date.now() - startedAt);
|
|
209
384
|
return {
|
|
210
385
|
text: text.join(""),
|
|
211
386
|
usage: { tokens: inputTokens + outputTokens, ms: durationMs },
|
|
387
|
+
split: { input: inputTokens, output: outputTokens },
|
|
212
388
|
telemetry: { durationMs, ...modelIdentity(this.model) },
|
|
213
389
|
};
|
|
214
390
|
}
|
|
@@ -316,4 +492,56 @@ function exceedsStreamLimit(value, limit) {
|
|
|
316
492
|
function stdoutOverrunError(limit) {
|
|
317
493
|
return new Error(`codex stdout exceeded STRATUM_CODEX_STREAM_LIMIT_BYTES (current limit ${limit} bytes). Raise the env knob and retry.`);
|
|
318
494
|
}
|
|
495
|
+
export function codexModelWithEffort(model, effort) {
|
|
496
|
+
const identity = modelIdentity(model);
|
|
497
|
+
if (effort !== undefined && identity.effort !== undefined && effort !== identity.effort) {
|
|
498
|
+
throw new Error("Codex effort conflicts with the effort suffix in model");
|
|
499
|
+
}
|
|
500
|
+
const selected = effort ?? identity.effort;
|
|
501
|
+
if (selected !== undefined)
|
|
502
|
+
reasoningEffort(selected);
|
|
503
|
+
return selected === undefined ? identity.model : `${identity.model}/${selected}`;
|
|
504
|
+
}
|
|
505
|
+
/** Resolve only at execution time; the user's PATH binary takes precedence. */
|
|
506
|
+
export function bundledCodexCommand(env = process.env) {
|
|
507
|
+
try {
|
|
508
|
+
const sdkRequire = createRequire(import.meta.resolve("@openai/codex-sdk"));
|
|
509
|
+
const manifest = sdkRequire.resolve("@openai/codex/package.json");
|
|
510
|
+
const cli = join(dirname(manifest), "bin", "codex.js");
|
|
511
|
+
if (!existsSync(cli))
|
|
512
|
+
throw new Error("SDK CLI entrypoint is absent");
|
|
513
|
+
return { command: process.execPath, prefix: [cli] };
|
|
514
|
+
}
|
|
515
|
+
catch (cause) {
|
|
516
|
+
const command = pathCodex(env);
|
|
517
|
+
if (command)
|
|
518
|
+
return { command, prefix: [] };
|
|
519
|
+
throw new Error("Codex CLI unavailable: no executable codex on PATH and the SDK bundled CLI could not be resolved", { cause });
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
function pathCodex(env) {
|
|
523
|
+
for (const directory of (env.PATH ?? "").split(delimiter)) {
|
|
524
|
+
if (!directory)
|
|
525
|
+
continue;
|
|
526
|
+
const candidate = join(directory, process.platform === "win32" ? "codex.exe" : "codex");
|
|
527
|
+
try {
|
|
528
|
+
accessSync(candidate, constants.X_OK);
|
|
529
|
+
return candidate;
|
|
530
|
+
}
|
|
531
|
+
catch { /* try next */ }
|
|
532
|
+
}
|
|
533
|
+
return undefined;
|
|
534
|
+
}
|
|
535
|
+
export function resolveCodexCommand(env = process.env) {
|
|
536
|
+
const command = pathCodex(env);
|
|
537
|
+
return command ? { command, prefix: [] } : bundledCodexCommand(env);
|
|
538
|
+
}
|
|
539
|
+
function attachCodexUsage(error, input, output, cacheRead, usd, ms, model) {
|
|
540
|
+
return Object.assign(error instanceof Error ? error : new Error(String(error)), {
|
|
541
|
+
telemetry: { durationMs: ms, ...modelIdentity(model) },
|
|
542
|
+
usage: { tokens: input + output, ms, ...(usd > 0 ? { usd } : {}) },
|
|
543
|
+
split: { input, output, ...(cacheRead > 0 ? { cacheRead } : {}) },
|
|
544
|
+
...(usd > 0 ? { usdSource: "reported" } : {}),
|
|
545
|
+
});
|
|
546
|
+
}
|
|
319
547
|
//# sourceMappingURL=codex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/connectors/codex.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/connectors/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,36 +23,53 @@ export async function runAgent(options, boundaries = {}) {
|
|
|
23
23
|
throw new Error('claude runs with sandboxMode="read-only" are not supported: the Claude connector ' +
|
|
24
24
|
'cannot enforce read-only (D8). Omit sandboxMode or pass "workspace-write".');
|
|
25
25
|
}
|
|
26
|
+
options.signal?.throwIfAborted();
|
|
27
|
+
validateAgentSettings(options);
|
|
26
28
|
const cwd = options.cwd ?? process.cwd();
|
|
27
29
|
if (options.background) {
|
|
30
|
+
// Claude-only settings never reach a background codex run: startBackgroundRun's
|
|
31
|
+
// codex branch builds its argv from codexCommand() and records CodexRunMeta,
|
|
32
|
+
// neither of which carries a tool filter or a thinking block. Forwarding them
|
|
33
|
+
// here would advertise a guarantee the durable wrapper cannot keep, and
|
|
34
|
+
// validateAgentSettings has already rejected them for codex, so the spread is
|
|
35
|
+
// claude-only rather than dead (D5 / BG-WRITE-A).
|
|
28
36
|
return startBackgroundRun({
|
|
29
37
|
agent: options.agent,
|
|
30
38
|
prompt: options.prompt,
|
|
31
39
|
cwd,
|
|
32
40
|
...(options.model !== undefined ? { model: options.model } : {}),
|
|
41
|
+
...(options.effort !== undefined ? { effort: options.effort } : {}),
|
|
33
42
|
...(options.sandboxMode !== undefined ? { sandboxMode: options.sandboxMode } : {}),
|
|
34
43
|
...(options.budgeted !== undefined ? { budgeted: options.budgeted } : {}),
|
|
35
44
|
...(options.registryRoot !== undefined ? { registryRoot: options.registryRoot } : {}),
|
|
36
45
|
...(options.env !== undefined ? { env: options.env } : {}),
|
|
37
46
|
...(boundaries.backgroundCommand !== undefined ? { command: boundaries.backgroundCommand } : {}),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
...(options.
|
|
47
|
+
...(options.agent === "claude" && options.thinking !== undefined ? { thinking: options.thinking } : {}),
|
|
48
|
+
// 4b: carry tool filters through to background CLAUDE runs (D5 / BG-WRITE-A)
|
|
49
|
+
...(options.agent === "claude" && options.allowedTools !== undefined ? { allowedTools: options.allowedTools } : {}),
|
|
50
|
+
...(options.agent === "claude" && options.disallowedTools !== undefined ? { disallowedTools: options.disallowedTools } : {}),
|
|
41
51
|
});
|
|
42
52
|
}
|
|
43
53
|
if (options.agent === "codex") {
|
|
44
54
|
return new CodexConnector({
|
|
55
|
+
...(options.ownProcessGroup !== undefined ? { ownProcessGroup: options.ownProcessGroup } : {}),
|
|
45
56
|
cwd,
|
|
46
57
|
...(options.model !== undefined ? { model: options.model } : {}),
|
|
58
|
+
...(options.effort !== undefined ? { effort: options.effort } : {}),
|
|
47
59
|
...(options.sandboxMode !== undefined ? { sandboxMode: options.sandboxMode } : {}),
|
|
48
60
|
...(options.env !== undefined ? { env: options.env } : {}),
|
|
49
61
|
...(boundaries.codexSpawn !== undefined ? { spawn: boundaries.codexSpawn } : {}),
|
|
50
62
|
...(options.onEvent !== undefined ? { onEvent: options.onEvent } : {}),
|
|
63
|
+
...(options.signal !== undefined ? { signal: options.signal } : {}),
|
|
51
64
|
}).run(options.prompt);
|
|
52
65
|
}
|
|
53
66
|
return new ClaudeConnector({
|
|
54
67
|
cwd,
|
|
68
|
+
...(options.ownProcessGroup !== undefined ? { ownProcessGroup: options.ownProcessGroup } : {}),
|
|
55
69
|
...(options.model !== undefined ? { model: options.model } : {}),
|
|
70
|
+
...(options.effort !== undefined ? { effort: options.effort } : {}),
|
|
71
|
+
...(options.thinking !== undefined ? { thinking: options.thinking } : {}),
|
|
72
|
+
...(options.signal !== undefined ? { signal: options.signal } : {}),
|
|
56
73
|
...(options.allowedTools !== undefined ? { allowedTools: options.allowedTools } : {}),
|
|
57
74
|
...(options.disallowedTools !== undefined ? { disallowedTools: options.disallowedTools } : {}),
|
|
58
75
|
...(options.env !== undefined ? { env: options.env } : {}),
|
|
@@ -60,4 +77,28 @@ export async function runAgent(options, boundaries = {}) {
|
|
|
60
77
|
...(options.onEvent !== undefined ? { onEvent: options.onEvent } : {}),
|
|
61
78
|
}).run(options.prompt);
|
|
62
79
|
}
|
|
80
|
+
/** Reject settings that would otherwise silently disappear at a provider boundary. */
|
|
81
|
+
export function validateAgentSettings(options) {
|
|
82
|
+
if (options.agent === "codex") {
|
|
83
|
+
if (options.thinking !== undefined || options.allowedTools !== undefined || options.disallowedTools !== undefined) {
|
|
84
|
+
throw new Error("Codex does not support Claude thinking/tool filters; select a Codex sandboxMode instead");
|
|
85
|
+
}
|
|
86
|
+
if (options.effort !== undefined && !["minimal", "low", "medium", "high", "xhigh"].includes(options.effort)) {
|
|
87
|
+
throw new Error(`unsupported Codex reasoning effort ${JSON.stringify(options.effort)}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
if (options.effort !== undefined && !["low", "medium", "high", "xhigh", "max"].includes(options.effort)) {
|
|
92
|
+
throw new Error(`unsupported Claude effort ${JSON.stringify(options.effort)}`);
|
|
93
|
+
}
|
|
94
|
+
if (options.thinking !== undefined) {
|
|
95
|
+
const { type, budgetTokens, display, ...unknown } = options.thinking;
|
|
96
|
+
if (!["adaptive", "enabled", "disabled"].includes(String(type)) || Object.keys(unknown).length
|
|
97
|
+
|| (budgetTokens !== undefined && (type !== "enabled" || !Number.isInteger(budgetTokens) || Number(budgetTokens) <= 0))
|
|
98
|
+
|| (display !== undefined && (type === "disabled" || !["summarized", "omitted"].includes(String(display))))) {
|
|
99
|
+
throw new Error("invalid Claude thinking configuration");
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
63
104
|
//# sourceMappingURL=runner.js.map
|