@open-mercato/cezar 0.8.0 → 0.9.0-pr470.649
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/README.md +109 -14
- package/dist/agent-config/catalog.d.ts +64 -0
- package/dist/agent-config/catalog.js +205 -0
- package/dist/agent-config/catalog.js.map +1 -0
- package/dist/agent-config/files.d.ts +46 -0
- package/dist/agent-config/files.js +119 -0
- package/dist/agent-config/files.js.map +1 -0
- package/dist/agent-config/seed.d.ts +7 -0
- package/dist/agent-config/seed.js +90 -0
- package/dist/agent-config/seed.js.map +1 -0
- package/dist/agent-config/service.d.ts +44 -0
- package/dist/agent-config/service.js +71 -0
- package/dist/agent-config/service.js.map +1 -0
- package/dist/agent-config/validate.d.ts +21 -0
- package/dist/agent-config/validate.js +76 -0
- package/dist/agent-config/validate.js.map +1 -0
- package/dist/config.d.ts +34 -4
- package/dist/config.js +97 -2
- package/dist/config.js.map +1 -1
- package/dist/core/agent-env.js +21 -15
- package/dist/core/agent-env.js.map +1 -1
- package/dist/core/agent-runner.d.ts +16 -6
- package/dist/core/agent-runner.js +15 -3
- package/dist/core/agent-runner.js.map +1 -1
- package/dist/core/ask.d.ts +184 -0
- package/dist/core/ask.js +97 -0
- package/dist/core/ask.js.map +1 -0
- package/dist/core/backend-detect.d.ts +5 -5
- package/dist/core/backend-detect.js +37 -5
- package/dist/core/backend-detect.js.map +1 -1
- package/dist/core/claude-cli-runner.d.ts +5 -1
- package/dist/core/claude-cli-runner.js +4 -2
- package/dist/core/claude-cli-runner.js.map +1 -1
- package/dist/core/claude-ui-mapper.d.ts +9 -0
- package/dist/core/claude-ui-mapper.js +34 -3
- package/dist/core/claude-ui-mapper.js.map +1 -1
- package/dist/core/codex-app-server-runner.d.ts +15 -3
- package/dist/core/codex-app-server-runner.js +158 -127
- package/dist/core/codex-app-server-runner.js.map +1 -1
- package/dist/core/codex-app-server-transport.d.ts +30 -0
- package/dist/core/codex-app-server-transport.js +136 -0
- package/dist/core/codex-app-server-transport.js.map +1 -0
- package/dist/core/codex-model-catalog.d.ts +10 -0
- package/dist/core/codex-model-catalog.js +110 -0
- package/dist/core/codex-model-catalog.js.map +1 -0
- package/dist/core/codex-ui-mapper.d.ts +47 -2
- package/dist/core/codex-ui-mapper.js +247 -29
- package/dist/core/codex-ui-mapper.js.map +1 -1
- package/dist/core/model-identity.d.ts +113 -0
- package/dist/core/model-identity.js +119 -0
- package/dist/core/model-identity.js.map +1 -0
- package/dist/core/model-presets.d.ts +15 -0
- package/dist/core/model-presets.js +43 -0
- package/dist/core/model-presets.js.map +1 -0
- package/dist/core/opencode-server-runner.d.ts +1 -1
- package/dist/core/opencode-server-runner.js +7 -12
- package/dist/core/opencode-server-runner.js.map +1 -1
- package/dist/core/opencode-ui-mapper.d.ts +11 -7
- package/dist/core/opencode-ui-mapper.js +62 -19
- package/dist/core/opencode-ui-mapper.js.map +1 -1
- package/dist/core/pi-runner.d.ts +40 -0
- package/dist/core/pi-runner.js +46 -0
- package/dist/core/pi-runner.js.map +1 -0
- package/dist/core/process-usage.d.ts +3 -0
- package/dist/core/process-usage.js +12 -0
- package/dist/core/process-usage.js.map +1 -1
- package/dist/core/runner-factory.js +3 -0
- package/dist/core/runner-factory.js.map +1 -1
- package/dist/core/runner-model-catalog.d.ts +28 -0
- package/dist/core/runner-model-catalog.js +62 -0
- package/dist/core/runner-model-catalog.js.map +1 -0
- package/dist/core/secret-redaction.js.map +1 -1
- package/dist/core/tool-display.d.ts +2 -2
- package/dist/core/tool-display.js +24 -6
- package/dist/core/tool-display.js.map +1 -1
- package/dist/core/ui-events.d.ts +29 -2
- package/dist/git-worktree.d.ts +37 -4
- package/dist/git-worktree.js +175 -12
- package/dist/git-worktree.js.map +1 -1
- package/dist/handoff.d.ts +2 -2
- package/dist/handoff.js +2 -0
- package/dist/handoff.js.map +1 -1
- package/dist/index.js +55 -5
- package/dist/index.js.map +1 -1
- package/dist/install-as-command.d.ts +1 -1
- package/dist/install-as-command.js.map +1 -1
- package/dist/paths.d.ts +32 -2
- package/dist/paths.js +47 -2
- package/dist/paths.js.map +1 -1
- package/dist/runs/auto-name.js.map +1 -1
- package/dist/runs/retention.js.map +1 -1
- package/dist/runs/review-gate.js.map +1 -1
- package/dist/runs/store.d.ts +154 -60
- package/dist/runs/store.js +103 -19
- package/dist/runs/store.js.map +1 -1
- package/dist/runs/task-markers.d.ts +6 -2
- package/dist/runs/task-markers.js +25 -4
- package/dist/runs/task-markers.js.map +1 -1
- package/dist/runs/ui-event-sink.js.map +1 -1
- package/dist/server/capabilities.d.ts +22 -6
- package/dist/server/capabilities.js +85 -8
- package/dist/server/capabilities.js.map +1 -1
- package/dist/server/checkout.d.ts +128 -0
- package/dist/server/checkout.js +296 -0
- package/dist/server/checkout.js.map +1 -0
- package/dist/server/forge/github.d.ts +281 -10
- package/dist/server/forge/github.js +539 -23
- package/dist/server/forge/github.js.map +1 -1
- package/dist/server/forge/types.d.ts +48 -1
- package/dist/server/fs-browse.d.ts +105 -0
- package/dist/server/fs-browse.js +182 -0
- package/dist/server/fs-browse.js.map +1 -0
- package/dist/server/git-changes.d.ts +12 -3
- package/dist/server/git-changes.js +23 -5
- package/dist/server/git-changes.js.map +1 -1
- package/dist/server/github.d.ts +1 -1
- package/dist/server/open-in-app.d.ts +2 -1
- package/dist/server/open-in-app.js +1 -0
- package/dist/server/open-in-app.js.map +1 -1
- package/dist/server/project-context.d.ts +103 -0
- package/dist/server/project-context.js +153 -0
- package/dist/server/project-context.js.map +1 -0
- package/dist/server/server.d.ts +110 -0
- package/dist/server/server.js +1557 -215
- package/dist/server/server.js.map +1 -1
- package/dist/server/wsl.js.map +1 -1
- package/dist/server-install/platforms/macosx-ngrok.js.map +1 -1
- package/dist/server-install/platforms/ubuntu-vps.js +7 -0
- package/dist/server-install/platforms/ubuntu-vps.js.map +1 -1
- package/dist/server-install/state.js.map +1 -1
- package/dist/server-install/steps.js +6 -2
- package/dist/server-install/steps.js.map +1 -1
- package/dist/server-install/types.d.ts +28 -28
- package/dist/server-install/ui.js.map +1 -1
- package/dist/skills-banner.js.map +1 -1
- package/dist/skills-remote.d.ts +10 -4
- package/dist/skills-remote.js +31 -14
- package/dist/skills-remote.js.map +1 -1
- package/dist/skills.d.ts +29 -0
- package/dist/skills.js +72 -14
- package/dist/skills.js.map +1 -1
- package/dist/todos.d.ts +9 -7
- package/dist/todos.js +38 -19
- package/dist/todos.js.map +1 -1
- package/dist/workflows/run.d.ts +145 -10
- package/dist/workflows/run.js +608 -66
- package/dist/workflows/run.js.map +1 -1
- package/dist/workflows/types.d.ts +42 -42
- package/dist/workflows/types.js +2 -1
- package/dist/workflows/types.js.map +1 -1
- package/dist/workspace/config.d.ts +251 -0
- package/dist/workspace/config.js +162 -0
- package/dist/workspace/config.js.map +1 -0
- package/dist/workspace/migrations.d.ts +45 -0
- package/dist/workspace/migrations.js +132 -0
- package/dist/workspace/migrations.js.map +1 -0
- package/dist/workspace/projects-cli.d.ts +23 -0
- package/dist/workspace/projects-cli.js +105 -0
- package/dist/workspace/projects-cli.js.map +1 -0
- package/dist/workspace/projects.d.ts +81 -0
- package/dist/workspace/projects.js +214 -0
- package/dist/workspace/projects.js.map +1 -0
- package/dist/workspace/semaphore.d.ts +77 -0
- package/dist/workspace/semaphore.js +57 -0
- package/dist/workspace/semaphore.js.map +1 -0
- package/dist/workspace/ui-state.d.ts +23 -0
- package/dist/workspace/ui-state.js +42 -0
- package/dist/workspace/ui-state.js.map +1 -0
- package/package.json +3 -2
- package/scripts/mock-claude.mjs +136 -2
- package/web/dist/assets/arrow-left-CnSdp92h.js +1 -0
- package/web/dist/assets/centered-state-NF79blq7.js +43 -0
- package/web/dist/assets/{chunk-BO2N2NFS-BN7h-q1E.js → chunk-BO2N2NFS-DtrdTCWa.js} +4 -4
- package/web/dist/assets/commit-list-CL8vSWGw.js +1 -0
- package/web/dist/assets/compare-variants-mI-MnhuR.js +1 -0
- package/web/dist/assets/diff-view-Bhfvnnn9.js +6 -0
- package/web/dist/assets/dist-COA_NSud.js +1 -0
- package/web/dist/assets/ellipsis-vertical-CNnSLn5a.js +1 -0
- package/web/dist/assets/{file-tuE95HNX.js → file-D4GBh1ao.js} +1 -1
- package/web/dist/assets/{git-pull-request-BztcgsRZ.js → git-pull-request-DnR8Xh4_.js} +1 -1
- package/web/dist/assets/git-toolbar-rVtFyL4t.js +1 -0
- package/web/dist/assets/github-_t0ceKcO.js +1 -0
- package/web/dist/assets/{highlighted-body-OFNGDK62-CJIHtxqW.js → highlighted-body-OFNGDK62-BuFJwunK.js} +1 -1
- package/web/dist/assets/{image-preview-Ca0UgThg.js → image-preview-DEhW0TFz.js} +1 -1
- package/web/dist/assets/index-BfXFhAGQ.js +30 -0
- package/web/dist/assets/index-Mov2Rrbw.css +2 -0
- package/web/dist/assets/lib-DPEZDBUN.js +1 -0
- package/web/dist/assets/mermaid-GHXKKRXX-CN2zQue0.js +1 -0
- package/web/dist/assets/project-router-CBzGUqvS.js +1 -0
- package/web/dist/assets/{refresh-cw-B4NW5q60.js → refresh-cw-BT8E96Tm.js} +1 -1
- package/web/dist/assets/repo-git-C3dJiX3j.js +1 -0
- package/web/dist/assets/{run-diff-BKpV1kGk.js → run-diff-HEZcHwRr.js} +3 -3
- package/web/dist/assets/run-header-DldbROhB.js +1 -0
- package/web/dist/assets/{search-x-C6xG26dv.js → search-x-BDjaMrzG.js} +1 -1
- package/web/dist/assets/skill-empty-hint-DTUSp6Vl.js +1 -0
- package/web/dist/assets/skills-BIg29xLt.js +1 -0
- package/web/dist/assets/{square-terminal-D9l_Xx7B.js → square-terminal-Ckjjn0vb.js} +1 -1
- package/web/dist/assets/tab-link-DTQ9FBZY.js +1 -0
- package/web/dist/assets/task-changes-DRhQVnFN.js +1 -0
- package/web/dist/assets/task-commits-5StODPII.js +1 -0
- package/web/dist/assets/task-files-BuylxobG.js +2 -0
- package/web/dist/assets/task-thread-DnHR0k7k.js +9 -0
- package/web/dist/assets/textarea-Bj_LCreg.js +1 -0
- package/web/dist/assets/toml-CcmNWLt0.js +1 -0
- package/web/dist/assets/{trash-2-De8Z5Y5-.js → trash-2-DAyZ0VSi.js} +1 -1
- package/web/dist/assets/{triangle-alert-DJUyRhTV.js → triangle-alert-Uy8rokUh.js} +1 -1
- package/web/dist/assets/{upload-yxUM9nk5.js → upload-CDdyPPo_.js} +1 -1
- package/web/dist/assets/use-desktop-TyHAXhMR.js +3 -0
- package/web/dist/assets/utils-B8s5qIcK.js +1 -0
- package/web/dist/assets/workflows-CwDYZLvG.js +11 -0
- package/web/dist/assets/zoomable-image-PEDOqyLQ.js +1 -0
- package/web/dist/index.html +10 -19
- package/web/dist/assets/arrow-left-bEsJ-6jp.js +0 -1
- package/web/dist/assets/centered-state-DzJJpXgm.js +0 -43
- package/web/dist/assets/command-eBgVGftz.js +0 -1
- package/web/dist/assets/compare-variants-DhqGJuHF.js +0 -1
- package/web/dist/assets/dialog-Bf1Cpc3n.js +0 -1
- package/web/dist/assets/diff-view-Cqc8LRkj.js +0 -4
- package/web/dist/assets/dist-M2QYGAcm.js +0 -1
- package/web/dist/assets/dist-ZAIqO3UX.js +0 -1
- package/web/dist/assets/folder-20ea3OVM.js +0 -1
- package/web/dist/assets/git-toolbar-DAlBoSP5.js +0 -1
- package/web/dist/assets/github--sfM4X3j.js +0 -1
- package/web/dist/assets/highlighter-ZVyRi_Cx.js +0 -3
- package/web/dist/assets/index-DlKq8gF4.css +0 -2
- package/web/dist/assets/index-h4gyDJyh.js +0 -11
- package/web/dist/assets/loader-circle-Bnw4ga19.js +0 -1
- package/web/dist/assets/markdown-DxmCMr30.js +0 -1
- package/web/dist/assets/mermaid-GHXKKRXX-DghlHZS5.js +0 -1
- package/web/dist/assets/prompt-templates-CsGr-FXH.js +0 -15
- package/web/dist/assets/repo-git-CHF2oip_.js +0 -1
- package/web/dist/assets/run-header-3CGn6FAM.js +0 -1
- package/web/dist/assets/skill-detail-DsD4-dGp.js +0 -1
- package/web/dist/assets/skill-empty-hint-Cl3ESoPu.js +0 -1
- package/web/dist/assets/skills-5kRcjM1J.js +0 -1
- package/web/dist/assets/skills-B13iqWAN.js +0 -1
- package/web/dist/assets/tab-link-DkVxOa-q.js +0 -1
- package/web/dist/assets/task-changes-DtMiVVwO.js +0 -1
- package/web/dist/assets/task-commits-VbSLn_tW.js +0 -1
- package/web/dist/assets/task-files-qYDBG3Mx.js +0 -2
- package/web/dist/assets/task-thread-BfGERKlB.js +0 -7
- package/web/dist/assets/tasks-table-C5fwJmZ7.js +0 -1
- package/web/dist/assets/use-desktop-6PwFeCW3.js +0 -3
- package/web/dist/assets/utils-CzkLr94M.js +0 -1
- package/web/dist/assets/workflows-CnTcKlfV.js +0 -11
- package/web/dist/assets/x-DaR4ZfE-.js +0 -1
- package/web/dist/assets/zoomable-image-B-76XMUw.js +0 -1
|
@@ -32,6 +32,7 @@ export function createClaudeUiState(opts = {}) {
|
|
|
32
32
|
turnSeq: 0,
|
|
33
33
|
currentTurnId: null,
|
|
34
34
|
itemSeq: 0,
|
|
35
|
+
sawAssistantText: false,
|
|
35
36
|
openTools: new Map(),
|
|
36
37
|
tasks: new Map(),
|
|
37
38
|
pendingTaskCreates: new Map(),
|
|
@@ -100,18 +101,25 @@ function mapAssistant(msg, state) {
|
|
|
100
101
|
let openTools = null;
|
|
101
102
|
let tasks = state.tasks;
|
|
102
103
|
let pendingTaskCreates = state.pendingTaskCreates;
|
|
104
|
+
let sawAssistantText = state.sawAssistantText;
|
|
103
105
|
for (const raw of content) {
|
|
104
106
|
if (!isRecord(raw))
|
|
105
107
|
continue;
|
|
106
108
|
if (raw.type === 'text' && typeof raw.text === 'string') {
|
|
107
109
|
// Whole blocks per API round-trip — claude sends no deltas in this
|
|
108
110
|
// mode, so we never fake `item.delta`s: started + completed.
|
|
111
|
+
// Counted against the result fallback exactly as the runner counts it:
|
|
112
|
+
// every text block, sub-agent ones included (`ctx.textChunks.push` runs
|
|
113
|
+
// regardless of `parent_tool_use_id`).
|
|
114
|
+
sawAssistantText = true;
|
|
109
115
|
const item = { kind: 'message', id: `item_${++itemSeq}`, role: 'assistant', text: raw.text };
|
|
110
116
|
if (parentItemId !== undefined)
|
|
111
117
|
item.parentItemId = parentItemId;
|
|
112
118
|
events.push({ type: 'item.started', item }, { type: 'item.completed', item });
|
|
113
119
|
}
|
|
114
|
-
else if (raw.type === 'thinking' && typeof raw.thinking === 'string') {
|
|
120
|
+
else if (raw.type === 'thinking' && typeof raw.thinking === 'string' && raw.thinking.trim() !== '') {
|
|
121
|
+
// Blank `thinking` is skipped: it carries no information and would only
|
|
122
|
+
// mint a dead "Thinking —" row in the session view (#528).
|
|
115
123
|
const item = { kind: 'reasoning', id: `item_${++itemSeq}`, text: raw.thinking };
|
|
116
124
|
if (parentItemId !== undefined)
|
|
117
125
|
item.parentItemId = parentItemId;
|
|
@@ -175,7 +183,7 @@ function mapAssistant(msg, state) {
|
|
|
175
183
|
return { events, state };
|
|
176
184
|
return {
|
|
177
185
|
events,
|
|
178
|
-
state: { ...state, itemSeq, openTools: openTools ?? state.openTools, tasks, pendingTaskCreates },
|
|
186
|
+
state: { ...state, itemSeq, openTools: openTools ?? state.openTools, tasks, pendingTaskCreates, sawAssistantText },
|
|
179
187
|
};
|
|
180
188
|
}
|
|
181
189
|
/** claude `Edit`/`Write` inputs carry the diff inline (§7.1). */
|
|
@@ -451,6 +459,22 @@ function mapResult(msg, state) {
|
|
|
451
459
|
events.push({ type: 'item.completed', item });
|
|
452
460
|
}
|
|
453
461
|
}
|
|
462
|
+
// The result fallback, mirroring claude-cli-runner.ts's `textChunks.length === 0`
|
|
463
|
+
// branch: a session that streamed no assistant text block carries its whole
|
|
464
|
+
// reply on `msg.result`. The runner emits a v1 `text` for it; without the v2
|
|
465
|
+
// twin below, the cockpit's per-turn "v2 wins" dedup drops that line and the
|
|
466
|
+
// turn renders tool cards with no prose at all.
|
|
467
|
+
let sawAssistantText = state.sawAssistantText;
|
|
468
|
+
if (!sawAssistantText && typeof msg.result === 'string' && msg.result !== '') {
|
|
469
|
+
sawAssistantText = true;
|
|
470
|
+
const item = {
|
|
471
|
+
kind: 'message',
|
|
472
|
+
id: `item_${++itemSeq}`,
|
|
473
|
+
role: 'assistant',
|
|
474
|
+
text: msg.result,
|
|
475
|
+
};
|
|
476
|
+
events.push({ type: 'item.started', item }, { type: 'item.completed', item });
|
|
477
|
+
}
|
|
454
478
|
const turnId = state.currentTurnId ?? `turn_${++turnSeq}`;
|
|
455
479
|
const usage = rawTokenUsage(msg.usage);
|
|
456
480
|
const costUsd = typeof msg.total_cost_usd === 'number' && Number.isFinite(msg.total_cost_usd)
|
|
@@ -470,7 +494,14 @@ function mapResult(msg, state) {
|
|
|
470
494
|
}
|
|
471
495
|
return {
|
|
472
496
|
events,
|
|
473
|
-
state: {
|
|
497
|
+
state: {
|
|
498
|
+
...state,
|
|
499
|
+
itemSeq,
|
|
500
|
+
turnSeq,
|
|
501
|
+
currentTurnId: null,
|
|
502
|
+
openTools: openTools ?? state.openTools,
|
|
503
|
+
sawAssistantText,
|
|
504
|
+
},
|
|
474
505
|
};
|
|
475
506
|
}
|
|
476
507
|
/** §7.1: success→end_turn, error_max_turns→max_tokens,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-ui-mapper.js","sourceRoot":"","sources":["../../src/core/claude-ui-mapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-ui-mapper.js","sourceRoot":"","sources":["../../src/core/claude-ui-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,11 +14,14 @@ export interface CodexRunnerOptions {
|
|
|
14
14
|
* `thread/resume` to reopen a stored thread for "Continue".
|
|
15
15
|
*
|
|
16
16
|
* Auth = the host's logged-in ChatGPT/Codex session (or CODEX_API_KEY). The
|
|
17
|
-
* agent runs autonomously via `sandbox:
|
|
18
|
-
*
|
|
17
|
+
* agent runs autonomously via `sandbox: danger-full-access` +
|
|
18
|
+
* `approvalPolicy: never`, matching cezar's default auto permission mode
|
|
19
|
+
* (spec 2026-07-17-permission-modes). Codex has no per-tool allowlist, so
|
|
20
|
+
* `spec.allowedTools` is ignored. `CEZ_CODEX_NETWORK=0` retains the previous
|
|
21
|
+
* network-blocked `workspace-write` sandbox as an explicit restriction.
|
|
19
22
|
*/
|
|
20
23
|
export declare class CodexAppServerRunner implements AgentRunner {
|
|
21
|
-
readonly backend:
|
|
24
|
+
readonly backend: 'codex';
|
|
22
25
|
private readonly bin;
|
|
23
26
|
private readonly timeoutMs;
|
|
24
27
|
private lastSession;
|
|
@@ -27,3 +30,12 @@ export declare class CodexAppServerRunner implements AgentRunner {
|
|
|
27
30
|
interrupt(): Promise<void>;
|
|
28
31
|
startSession(spec: AgentRunSpec, onEvent?: (event: AgentEvent) => void, opts?: SessionOptions): AgentSession;
|
|
29
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* The reasoning-summary override sent on `turn/start` (TurnStartParams.summary).
|
|
35
|
+
* Defaults to `auto` so reasoning is visible out of the box — without it the
|
|
36
|
+
* app-server runs with its own default (no summary) and the reasoning thread
|
|
37
|
+
* stays empty even when the model reasons. `CEZ_CODEX_REASONING` overrides the
|
|
38
|
+
* default (`auto`/`concise`/`detailed`, or `none` to opt out); an unrecognized
|
|
39
|
+
* value falls back to `auto`.
|
|
40
|
+
*/
|
|
41
|
+
export declare function reasoningSummary(env?: NodeJS.ProcessEnv): string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { spawn as nodeSpawn } from 'node:child_process';
|
|
2
1
|
import { prependSystemPrompt } from './agent-runner.js';
|
|
3
|
-
import { AUTO_END_DELAY_MS, DEFAULT_RUN_TIMEOUT_MS,
|
|
4
|
-
import {
|
|
2
|
+
import { AUTO_END_DELAY_MS, DEFAULT_RUN_TIMEOUT_MS, KILL_GRACE_MS, } from './claude-cli-runner.js';
|
|
3
|
+
import { parseAskRequest } from './ask.js';
|
|
5
4
|
import { readNdjson } from './ndjson.js';
|
|
5
|
+
import { CodexAppServerRpc, codexSpawnError, endCodexAppServer, resolveCodexExecutable, spawnCodexAppServer, waitForCodexAppServerExit, } from './codex-app-server-transport.js';
|
|
6
6
|
import { codexSessionStarted, createCodexUiState, mapCodexNotification, } from './codex-ui-mapper.js';
|
|
7
7
|
/**
|
|
8
8
|
* `AgentRunner` over `codex app-server` — the same JSONL transport the VS Code
|
|
@@ -13,8 +13,11 @@ import { codexSessionStarted, createCodexUiState, mapCodexNotification, } from '
|
|
|
13
13
|
* `thread/resume` to reopen a stored thread for "Continue".
|
|
14
14
|
*
|
|
15
15
|
* Auth = the host's logged-in ChatGPT/Codex session (or CODEX_API_KEY). The
|
|
16
|
-
* agent runs autonomously via `sandbox:
|
|
17
|
-
*
|
|
16
|
+
* agent runs autonomously via `sandbox: danger-full-access` +
|
|
17
|
+
* `approvalPolicy: never`, matching cezar's default auto permission mode
|
|
18
|
+
* (spec 2026-07-17-permission-modes). Codex has no per-tool allowlist, so
|
|
19
|
+
* `spec.allowedTools` is ignored. `CEZ_CODEX_NETWORK=0` retains the previous
|
|
20
|
+
* network-blocked `workspace-write` sandbox as an explicit restriction.
|
|
18
21
|
*/
|
|
19
22
|
export class CodexAppServerRunner {
|
|
20
23
|
backend = 'codex';
|
|
@@ -22,7 +25,7 @@ export class CodexAppServerRunner {
|
|
|
22
25
|
timeoutMs;
|
|
23
26
|
lastSession = null;
|
|
24
27
|
constructor(opts = {}) {
|
|
25
|
-
this.bin = opts.bin
|
|
28
|
+
this.bin = resolveCodexExecutable(opts.bin);
|
|
26
29
|
this.timeoutMs = opts.timeoutMs ?? DEFAULT_RUN_TIMEOUT_MS;
|
|
27
30
|
}
|
|
28
31
|
run(spec, onEvent) {
|
|
@@ -45,11 +48,11 @@ class CodexSession {
|
|
|
45
48
|
opts;
|
|
46
49
|
result;
|
|
47
50
|
child;
|
|
51
|
+
rpc;
|
|
48
52
|
stdinOpen = true;
|
|
49
53
|
threadId;
|
|
50
54
|
activeTurnId;
|
|
51
|
-
|
|
52
|
-
pending = new Map();
|
|
55
|
+
pendingUserInput;
|
|
53
56
|
toolCalls = [];
|
|
54
57
|
textChunks = [];
|
|
55
58
|
/** agentMessage item ids that streamed deltas — so `item/completed` for the
|
|
@@ -72,25 +75,14 @@ class CodexSession {
|
|
|
72
75
|
this.onEvent = onEvent;
|
|
73
76
|
this.opts = opts;
|
|
74
77
|
try {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
// api.github.com" under codex while the same tool works under claude (#codex-network).
|
|
78
|
-
// `-c` is codex's documented config override (dotted key, TOML value); opt out with
|
|
79
|
-
// CEZ_CODEX_NETWORK=0.
|
|
80
|
-
const args = ['app-server'];
|
|
81
|
-
if (process.env.CEZ_CODEX_NETWORK !== '0') {
|
|
82
|
-
args.push('-c', 'sandbox_workspace_write.network_access=true');
|
|
83
|
-
}
|
|
84
|
-
this.child = nodeSpawn(bin, args, {
|
|
85
|
-
cwd: spec.cwd,
|
|
86
|
-
env: buildChildEnv({ backend: 'codex', extraEnv: spec.env }),
|
|
87
|
-
});
|
|
78
|
+
this.child = spawnCodexAppServer(bin, spec.cwd, spec.env);
|
|
79
|
+
this.rpc = new CodexAppServerRpc(this.child);
|
|
88
80
|
}
|
|
89
81
|
catch (err) {
|
|
90
|
-
throw
|
|
82
|
+
throw codexSpawnError(err, bin);
|
|
91
83
|
}
|
|
92
84
|
this.child.on('error', (err) => {
|
|
93
|
-
this.spawnFailed =
|
|
85
|
+
this.spawnFailed = codexSpawnError(err, bin);
|
|
94
86
|
});
|
|
95
87
|
const stderrChunks = [];
|
|
96
88
|
this.child.stderr.setEncoding('utf8');
|
|
@@ -116,24 +108,36 @@ class CodexSession {
|
|
|
116
108
|
// loop below (which resolves the request() promises this awaits).
|
|
117
109
|
this.ready = this.bootstrap();
|
|
118
110
|
this.result = (async () => {
|
|
111
|
+
let sessionError;
|
|
119
112
|
try {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
113
|
+
const readLoop = async () => {
|
|
114
|
+
for await (const line of readNdjson(this.child.stdout)) {
|
|
115
|
+
if (this.timedOut)
|
|
116
|
+
break;
|
|
117
|
+
let msg;
|
|
118
|
+
try {
|
|
119
|
+
msg = JSON.parse(line);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
continue; // not JSON-RPC — skip
|
|
123
|
+
}
|
|
124
|
+
this.emitUi((state) => mapCodexNotification(msg, state));
|
|
125
|
+
this.dispatch(msg);
|
|
129
126
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
127
|
+
};
|
|
128
|
+
// Start consuming stdout before awaiting bootstrap: JSON-RPC responses
|
|
129
|
+
// read here settle the initialize/thread/turn requests. Owning both
|
|
130
|
+
// promises makes every bootstrap rejection part of session.result.
|
|
131
|
+
await Promise.all([this.ready, readLoop()]);
|
|
133
132
|
}
|
|
134
133
|
catch (err) {
|
|
135
|
-
if (!this.timedOut)
|
|
136
|
-
|
|
134
|
+
if (!this.timedOut) {
|
|
135
|
+
sessionError = err;
|
|
136
|
+
// Bootstrap failed before a usable turn exists. Closing stdin lets
|
|
137
|
+
// app-server exit normally; end() also owns the TERM/KILL watchdog
|
|
138
|
+
// if a broken child ignores EOF.
|
|
139
|
+
this.end();
|
|
140
|
+
}
|
|
137
141
|
}
|
|
138
142
|
finally {
|
|
139
143
|
if (deadline)
|
|
@@ -144,16 +148,16 @@ class CodexSession {
|
|
|
144
148
|
clearTimeout(this.autoEndTimer);
|
|
145
149
|
this.stdinOpen = false;
|
|
146
150
|
}
|
|
147
|
-
const exitCode = await
|
|
151
|
+
const exitCode = await waitForCodexAppServerExit(this.child);
|
|
148
152
|
if (this.eofTermTimer)
|
|
149
153
|
clearTimeout(this.eofTermTimer);
|
|
150
154
|
if (this.eofKillTimer)
|
|
151
155
|
clearTimeout(this.eofKillTimer);
|
|
152
|
-
|
|
153
|
-
p.reject(new Error('codex app-server exited'));
|
|
154
|
-
this.pending.clear();
|
|
156
|
+
this.rpc.rejectPending();
|
|
155
157
|
if (this.spawnFailed)
|
|
156
158
|
throw this.spawnFailed;
|
|
159
|
+
if (sessionError)
|
|
160
|
+
throw sessionError;
|
|
157
161
|
const text = this.textChunks.join('\n').trim();
|
|
158
162
|
const base = {
|
|
159
163
|
text,
|
|
@@ -194,6 +198,12 @@ class CodexSession {
|
|
|
194
198
|
const text = textOf(content);
|
|
195
199
|
if (!text)
|
|
196
200
|
return true;
|
|
201
|
+
if (this.pendingUserInput) {
|
|
202
|
+
const pending = this.pendingUserInput;
|
|
203
|
+
this.pendingUserInput = undefined;
|
|
204
|
+
this.rpc.respond({ id: pending.rpcId, result: { answers: userInputAnswers(pending.questions, text) } });
|
|
205
|
+
return true;
|
|
206
|
+
}
|
|
197
207
|
// Wait for the thread to exist, then steer the live turn or start a new one.
|
|
198
208
|
void this.ready
|
|
199
209
|
.then(() => this.startOrSteerTurn(text))
|
|
@@ -206,52 +216,46 @@ class CodexSession {
|
|
|
206
216
|
end() {
|
|
207
217
|
if (!this.stdinOpen)
|
|
208
218
|
return;
|
|
219
|
+
this.rejectPendingUserInput('session ended');
|
|
209
220
|
this.stdinOpen = false;
|
|
210
221
|
try {
|
|
211
|
-
this.child
|
|
222
|
+
endCodexAppServer(this.child, (term, kill) => {
|
|
223
|
+
this.eofTermTimer = term;
|
|
224
|
+
this.eofKillTimer = kill;
|
|
225
|
+
});
|
|
212
226
|
}
|
|
213
227
|
catch {
|
|
214
228
|
// already gone
|
|
215
229
|
}
|
|
216
|
-
this.eofTermTimer = setTimeout(() => {
|
|
217
|
-
if (this.child.exitCode == null && !this.child.killed)
|
|
218
|
-
this.child.kill('SIGTERM');
|
|
219
|
-
this.eofKillTimer = setTimeout(() => {
|
|
220
|
-
if (this.child.exitCode == null && !this.child.killed)
|
|
221
|
-
this.child.kill('SIGKILL');
|
|
222
|
-
}, EOF_KILL_GRACE_MS);
|
|
223
|
-
this.eofKillTimer.unref?.();
|
|
224
|
-
}, EOF_TERM_GRACE_MS);
|
|
225
|
-
this.eofTermTimer.unref?.();
|
|
226
230
|
}
|
|
227
231
|
interrupt() {
|
|
228
232
|
this.stdinOpen = false;
|
|
233
|
+
this.rejectPendingUserInput('turn interrupted');
|
|
229
234
|
// Best-effort graceful cancel of the in-flight turn, then hard stop.
|
|
230
235
|
if (this.threadId && this.activeTurnId) {
|
|
231
|
-
void this.request('turn/interrupt', { threadId: this.threadId, turnId: this.activeTurnId }).catch(() => undefined);
|
|
236
|
+
void this.rpc.request('turn/interrupt', { threadId: this.threadId, turnId: this.activeTurnId }).catch(() => undefined);
|
|
232
237
|
}
|
|
233
238
|
if (!this.child.killed)
|
|
234
239
|
this.child.kill('SIGTERM');
|
|
235
240
|
}
|
|
236
241
|
// ---- protocol -----------------------------------------------------------
|
|
237
242
|
async bootstrap() {
|
|
238
|
-
await this.
|
|
239
|
-
clientInfo: { name: 'cezar', title: 'cezar', version: '0.1.0' },
|
|
240
|
-
capabilities: { experimentalApi: true },
|
|
241
|
-
});
|
|
242
|
-
this.notify('initialized', {});
|
|
243
|
+
await this.rpc.initialize();
|
|
243
244
|
const overrides = {
|
|
244
245
|
model: this.spec.model,
|
|
245
246
|
cwd: this.spec.cwd,
|
|
246
|
-
|
|
247
|
+
// Full access is the `auto` preset shared by all backends. Besides avoiding prompts, this
|
|
248
|
+
// keeps container installs working when bubblewrap cannot create a UID map (#563).
|
|
249
|
+
// CEZ_CODEX_NETWORK=0 remains the backwards-compatible explicit sandbox opt-out.
|
|
250
|
+
sandbox: process.env.CEZ_CODEX_NETWORK === '0' ? 'workspace-write' : 'danger-full-access',
|
|
247
251
|
approvalPolicy: 'never',
|
|
248
252
|
};
|
|
249
253
|
if (this.spec.resume && this.spec.sessionId) {
|
|
250
|
-
await this.request('thread/resume', { threadId: this.spec.sessionId, ...clean(overrides) });
|
|
254
|
+
await this.rpc.request('thread/resume', { threadId: this.spec.sessionId, ...clean(overrides) });
|
|
251
255
|
this.threadId = this.spec.sessionId;
|
|
252
256
|
}
|
|
253
257
|
else {
|
|
254
|
-
const res = await this.request('thread/start', clean(overrides));
|
|
258
|
+
const res = await this.rpc.request('thread/start', clean(overrides));
|
|
255
259
|
this.threadId = threadIdOf(res) ?? this.spec.sessionId;
|
|
256
260
|
}
|
|
257
261
|
if (this.threadId) {
|
|
@@ -272,52 +276,52 @@ class CodexSession {
|
|
|
272
276
|
return;
|
|
273
277
|
const input = [{ type: 'text', text, text_elements: [] }];
|
|
274
278
|
if (this.activeTurnId) {
|
|
275
|
-
await this.request('turn/steer', {
|
|
279
|
+
await this.rpc.request('turn/steer', {
|
|
276
280
|
threadId: this.threadId,
|
|
277
281
|
input,
|
|
278
282
|
expectedTurnId: this.activeTurnId,
|
|
279
283
|
});
|
|
280
284
|
return;
|
|
281
285
|
}
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
const
|
|
287
|
-
|
|
288
|
-
|
|
286
|
+
// Ask the app-server for reasoning summaries; without this the model runs
|
|
287
|
+
// with its default (no summary), so the reasoning thread stays empty even
|
|
288
|
+
// though the mapper and UI can render it. The override persists for this
|
|
289
|
+
// turn and every subsequent turn, so seeding it on turn/start is enough.
|
|
290
|
+
const res = await this.rpc.request('turn/start', {
|
|
291
|
+
threadId: this.threadId,
|
|
292
|
+
input,
|
|
293
|
+
summary: reasoningSummary(),
|
|
289
294
|
});
|
|
290
|
-
this.
|
|
291
|
-
return promise;
|
|
292
|
-
}
|
|
293
|
-
notify(method, params) {
|
|
294
|
-
this.write({ method, params });
|
|
295
|
-
}
|
|
296
|
-
write(obj) {
|
|
297
|
-
if (this.child.stdin.destroyed)
|
|
298
|
-
return;
|
|
299
|
-
try {
|
|
300
|
-
this.child.stdin.write(`${JSON.stringify(obj)}\n`);
|
|
301
|
-
}
|
|
302
|
-
catch {
|
|
303
|
-
// stdin gone — the read loop will settle the session
|
|
304
|
-
}
|
|
295
|
+
this.activeTurnId = turnIdOf(res) ?? this.activeTurnId;
|
|
305
296
|
}
|
|
306
297
|
dispatch(msg) {
|
|
307
|
-
if (
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
this.pending.delete(msg.id);
|
|
312
|
-
if (msg.error)
|
|
313
|
-
p.reject(new Error(errorText(msg.error)));
|
|
314
|
-
else
|
|
315
|
-
p.resolve(msg.result ?? {});
|
|
298
|
+
if (this.rpc.dispatchResponse(msg))
|
|
299
|
+
return;
|
|
300
|
+
if (msg.method === 'item/tool/requestUserInput' && (typeof msg.id === 'number' || typeof msg.id === 'string')) {
|
|
301
|
+
this.handleUserInputRequest(msg.id, msg.params ?? {});
|
|
316
302
|
return;
|
|
317
303
|
}
|
|
318
304
|
if (typeof msg.method === 'string')
|
|
319
305
|
this.handleNotification(msg.method, msg.params ?? {});
|
|
320
306
|
}
|
|
307
|
+
handleUserInputRequest(rpcId, params) {
|
|
308
|
+
const questions = codexAskQuestions(params.questions);
|
|
309
|
+
if (!questions) {
|
|
310
|
+
this.rpc.respond({ id: rpcId, error: { code: -32602, message: 'unsupported or malformed requestUserInput payload' } });
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
if (this.pendingUserInput)
|
|
314
|
+
this.rejectPendingUserInput('superseded by a newer requestUserInput');
|
|
315
|
+
this.pendingUserInput = { rpcId, questions };
|
|
316
|
+
this.opts.onUiEvent?.({ type: 'ask.requested', requestId: `codex-${String(rpcId)}`, questions });
|
|
317
|
+
}
|
|
318
|
+
rejectPendingUserInput(message) {
|
|
319
|
+
const pending = this.pendingUserInput;
|
|
320
|
+
if (!pending)
|
|
321
|
+
return;
|
|
322
|
+
this.pendingUserInput = undefined;
|
|
323
|
+
this.rpc.respond({ id: pending.rpcId, error: { code: -32000, message } });
|
|
324
|
+
}
|
|
321
325
|
handleNotification(method, params) {
|
|
322
326
|
switch (method) {
|
|
323
327
|
case 'turn/started': {
|
|
@@ -340,7 +344,7 @@ class CodexSession {
|
|
|
340
344
|
const type = stringField(item, 'type');
|
|
341
345
|
// Only tool-like items become tool events; message/reasoning stream as text.
|
|
342
346
|
if (type && !NON_TOOL_ITEMS.has(type)) {
|
|
343
|
-
const id = stringField(item, 'id') ?? `item-${this.
|
|
347
|
+
const id = stringField(item, 'id') ?? `item-${this.rpc.allocateId()}`;
|
|
344
348
|
this.toolCalls.push({ id, name: type, input: item });
|
|
345
349
|
this.emit({ type: 'tool-call', id, tool: type, input: item });
|
|
346
350
|
}
|
|
@@ -378,7 +382,9 @@ class CodexSession {
|
|
|
378
382
|
}
|
|
379
383
|
break;
|
|
380
384
|
}
|
|
381
|
-
case 'turn/completed':
|
|
385
|
+
case 'turn/completed':
|
|
386
|
+
case 'turn/failed': {
|
|
387
|
+
this.pendingUserInput = undefined;
|
|
382
388
|
this.activeTurnId = undefined;
|
|
383
389
|
this.emit({ type: 'turn-end' });
|
|
384
390
|
if (this.opts.autoEndAfterFirstTurn && this.stdinOpen && !this.autoEndTimer) {
|
|
@@ -410,8 +416,65 @@ class CodexSession {
|
|
|
410
416
|
}
|
|
411
417
|
}
|
|
412
418
|
}
|
|
419
|
+
// ---- helpers --------------------------------------------------------------
|
|
420
|
+
function codexAskQuestions(value) {
|
|
421
|
+
if (!Array.isArray(value) || value.length < 1 || value.length > 4)
|
|
422
|
+
return null;
|
|
423
|
+
const questions = [];
|
|
424
|
+
for (const raw of value) {
|
|
425
|
+
if (!raw || typeof raw !== 'object' || Array.isArray(raw))
|
|
426
|
+
return null;
|
|
427
|
+
const question = raw;
|
|
428
|
+
if (question.isSecret === true)
|
|
429
|
+
return null;
|
|
430
|
+
const id = stringField(question, 'id');
|
|
431
|
+
const header = stringField(question, 'header');
|
|
432
|
+
const prompt = stringField(question, 'question');
|
|
433
|
+
if (!id || !header || !prompt || !Array.isArray(question.options))
|
|
434
|
+
return null;
|
|
435
|
+
const options = question.options.map((option) => {
|
|
436
|
+
if (!option || typeof option !== 'object' || Array.isArray(option))
|
|
437
|
+
return null;
|
|
438
|
+
const record = option;
|
|
439
|
+
const label = stringField(record, 'label');
|
|
440
|
+
const description = stringField(record, 'description');
|
|
441
|
+
return label ? { label, ...(description ? { description } : {}) } : null;
|
|
442
|
+
}).filter((option) => option !== null);
|
|
443
|
+
questions.push({ id, header, question: prompt, options, multiSelect: false });
|
|
444
|
+
}
|
|
445
|
+
return parseAskRequest({ questions })?.questions ?? null;
|
|
446
|
+
}
|
|
447
|
+
function userInputAnswers(questions, text) {
|
|
448
|
+
const lines = text.split(/\r?\n/);
|
|
449
|
+
const hasStructuredAnswer = questions.some((question) => lines.some((line) => line.startsWith(`${question.header}:`)));
|
|
450
|
+
const answers = {};
|
|
451
|
+
for (const [index, question] of questions.entries()) {
|
|
452
|
+
const prefix = `${question.header}:`;
|
|
453
|
+
const matching = lines.find((line) => line.startsWith(prefix));
|
|
454
|
+
const raw = matching?.slice(prefix.length).trim() ?? (!hasStructuredAnswer && index === 0 ? text.trim() : '');
|
|
455
|
+
answers[question.id ?? String(index)] = {
|
|
456
|
+
answers: raw === '' ? [] : raw.split(',').map((answer) => answer.trim()).filter(Boolean),
|
|
457
|
+
};
|
|
458
|
+
}
|
|
459
|
+
return answers;
|
|
460
|
+
}
|
|
413
461
|
/** ThreadItem `type`s that are conversation text, not tool activity. */
|
|
414
462
|
const NON_TOOL_ITEMS = new Set(['agentMessage', 'userMessage', 'reasoning', 'plan']);
|
|
463
|
+
const REASONING_SUMMARIES = new Set(['auto', 'concise', 'detailed', 'none']);
|
|
464
|
+
/**
|
|
465
|
+
* The reasoning-summary override sent on `turn/start` (TurnStartParams.summary).
|
|
466
|
+
* Defaults to `auto` so reasoning is visible out of the box — without it the
|
|
467
|
+
* app-server runs with its own default (no summary) and the reasoning thread
|
|
468
|
+
* stays empty even when the model reasons. `CEZ_CODEX_REASONING` overrides the
|
|
469
|
+
* default (`auto`/`concise`/`detailed`, or `none` to opt out); an unrecognized
|
|
470
|
+
* value falls back to `auto`.
|
|
471
|
+
*/
|
|
472
|
+
export function reasoningSummary(env = process.env) {
|
|
473
|
+
const raw = env.CEZ_CODEX_REASONING?.trim().toLowerCase();
|
|
474
|
+
if (!raw)
|
|
475
|
+
return 'auto';
|
|
476
|
+
return REASONING_SUMMARIES.has(raw) ? raw : 'auto';
|
|
477
|
+
}
|
|
415
478
|
function textOf(content) {
|
|
416
479
|
return content
|
|
417
480
|
.filter((b) => b.type === 'text')
|
|
@@ -447,12 +510,6 @@ function tokenTotal(params) {
|
|
|
447
510
|
const total = usage?.total?.totalTokens;
|
|
448
511
|
return typeof total === 'number' ? total : 0;
|
|
449
512
|
}
|
|
450
|
-
function errorText(error) {
|
|
451
|
-
if (error && typeof error === 'object' && 'message' in error) {
|
|
452
|
-
return String(error.message);
|
|
453
|
-
}
|
|
454
|
-
return typeof error === 'string' ? error : JSON.stringify(error);
|
|
455
|
-
}
|
|
456
513
|
function safeStringify(value) {
|
|
457
514
|
try {
|
|
458
515
|
return JSON.stringify(value);
|
|
@@ -461,30 +518,4 @@ function safeStringify(value) {
|
|
|
461
518
|
return String(value);
|
|
462
519
|
}
|
|
463
520
|
}
|
|
464
|
-
function waitForExit(child) {
|
|
465
|
-
if (child.exitCode != null)
|
|
466
|
-
return Promise.resolve(child.exitCode);
|
|
467
|
-
return new Promise((resolve) => {
|
|
468
|
-
let done = false;
|
|
469
|
-
const fin = (code) => {
|
|
470
|
-
if (done)
|
|
471
|
-
return;
|
|
472
|
-
done = true;
|
|
473
|
-
clearTimeout(safety);
|
|
474
|
-
resolve(code);
|
|
475
|
-
};
|
|
476
|
-
child.once('close', (code) => fin(code));
|
|
477
|
-
child.once('exit', (code) => fin(code));
|
|
478
|
-
child.once('error', () => fin(child.exitCode ?? null));
|
|
479
|
-
const safety = setTimeout(() => fin(child.exitCode ?? null), EOF_TERM_GRACE_MS + EOF_KILL_GRACE_MS + KILL_GRACE_MS + 5_000);
|
|
480
|
-
safety.unref?.();
|
|
481
|
-
});
|
|
482
|
-
}
|
|
483
|
-
function wrapSpawnError(err, bin) {
|
|
484
|
-
const code = err?.code;
|
|
485
|
-
if (code === 'ENOENT') {
|
|
486
|
-
return new Error(`\`${bin}\` not found on PATH — install the Codex CLI (npm i -g @openai/codex) and run \`codex\` once to log in`);
|
|
487
|
-
}
|
|
488
|
-
return err instanceof Error ? err : new Error(String(err));
|
|
489
|
-
}
|
|
490
521
|
//# sourceMappingURL=codex-app-server-runner.js.map
|