@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.
Files changed (247) hide show
  1. package/README.md +109 -14
  2. package/dist/agent-config/catalog.d.ts +64 -0
  3. package/dist/agent-config/catalog.js +205 -0
  4. package/dist/agent-config/catalog.js.map +1 -0
  5. package/dist/agent-config/files.d.ts +46 -0
  6. package/dist/agent-config/files.js +119 -0
  7. package/dist/agent-config/files.js.map +1 -0
  8. package/dist/agent-config/seed.d.ts +7 -0
  9. package/dist/agent-config/seed.js +90 -0
  10. package/dist/agent-config/seed.js.map +1 -0
  11. package/dist/agent-config/service.d.ts +44 -0
  12. package/dist/agent-config/service.js +71 -0
  13. package/dist/agent-config/service.js.map +1 -0
  14. package/dist/agent-config/validate.d.ts +21 -0
  15. package/dist/agent-config/validate.js +76 -0
  16. package/dist/agent-config/validate.js.map +1 -0
  17. package/dist/config.d.ts +34 -4
  18. package/dist/config.js +97 -2
  19. package/dist/config.js.map +1 -1
  20. package/dist/core/agent-env.js +21 -15
  21. package/dist/core/agent-env.js.map +1 -1
  22. package/dist/core/agent-runner.d.ts +16 -6
  23. package/dist/core/agent-runner.js +15 -3
  24. package/dist/core/agent-runner.js.map +1 -1
  25. package/dist/core/ask.d.ts +184 -0
  26. package/dist/core/ask.js +97 -0
  27. package/dist/core/ask.js.map +1 -0
  28. package/dist/core/backend-detect.d.ts +5 -5
  29. package/dist/core/backend-detect.js +37 -5
  30. package/dist/core/backend-detect.js.map +1 -1
  31. package/dist/core/claude-cli-runner.d.ts +5 -1
  32. package/dist/core/claude-cli-runner.js +4 -2
  33. package/dist/core/claude-cli-runner.js.map +1 -1
  34. package/dist/core/claude-ui-mapper.d.ts +9 -0
  35. package/dist/core/claude-ui-mapper.js +34 -3
  36. package/dist/core/claude-ui-mapper.js.map +1 -1
  37. package/dist/core/codex-app-server-runner.d.ts +15 -3
  38. package/dist/core/codex-app-server-runner.js +158 -127
  39. package/dist/core/codex-app-server-runner.js.map +1 -1
  40. package/dist/core/codex-app-server-transport.d.ts +30 -0
  41. package/dist/core/codex-app-server-transport.js +136 -0
  42. package/dist/core/codex-app-server-transport.js.map +1 -0
  43. package/dist/core/codex-model-catalog.d.ts +10 -0
  44. package/dist/core/codex-model-catalog.js +110 -0
  45. package/dist/core/codex-model-catalog.js.map +1 -0
  46. package/dist/core/codex-ui-mapper.d.ts +47 -2
  47. package/dist/core/codex-ui-mapper.js +247 -29
  48. package/dist/core/codex-ui-mapper.js.map +1 -1
  49. package/dist/core/model-identity.d.ts +113 -0
  50. package/dist/core/model-identity.js +119 -0
  51. package/dist/core/model-identity.js.map +1 -0
  52. package/dist/core/model-presets.d.ts +15 -0
  53. package/dist/core/model-presets.js +43 -0
  54. package/dist/core/model-presets.js.map +1 -0
  55. package/dist/core/opencode-server-runner.d.ts +1 -1
  56. package/dist/core/opencode-server-runner.js +7 -12
  57. package/dist/core/opencode-server-runner.js.map +1 -1
  58. package/dist/core/opencode-ui-mapper.d.ts +11 -7
  59. package/dist/core/opencode-ui-mapper.js +62 -19
  60. package/dist/core/opencode-ui-mapper.js.map +1 -1
  61. package/dist/core/pi-runner.d.ts +40 -0
  62. package/dist/core/pi-runner.js +46 -0
  63. package/dist/core/pi-runner.js.map +1 -0
  64. package/dist/core/process-usage.d.ts +3 -0
  65. package/dist/core/process-usage.js +12 -0
  66. package/dist/core/process-usage.js.map +1 -1
  67. package/dist/core/runner-factory.js +3 -0
  68. package/dist/core/runner-factory.js.map +1 -1
  69. package/dist/core/runner-model-catalog.d.ts +28 -0
  70. package/dist/core/runner-model-catalog.js +62 -0
  71. package/dist/core/runner-model-catalog.js.map +1 -0
  72. package/dist/core/secret-redaction.js.map +1 -1
  73. package/dist/core/tool-display.d.ts +2 -2
  74. package/dist/core/tool-display.js +24 -6
  75. package/dist/core/tool-display.js.map +1 -1
  76. package/dist/core/ui-events.d.ts +29 -2
  77. package/dist/git-worktree.d.ts +37 -4
  78. package/dist/git-worktree.js +175 -12
  79. package/dist/git-worktree.js.map +1 -1
  80. package/dist/handoff.d.ts +2 -2
  81. package/dist/handoff.js +2 -0
  82. package/dist/handoff.js.map +1 -1
  83. package/dist/index.js +55 -5
  84. package/dist/index.js.map +1 -1
  85. package/dist/install-as-command.d.ts +1 -1
  86. package/dist/install-as-command.js.map +1 -1
  87. package/dist/paths.d.ts +32 -2
  88. package/dist/paths.js +47 -2
  89. package/dist/paths.js.map +1 -1
  90. package/dist/runs/auto-name.js.map +1 -1
  91. package/dist/runs/retention.js.map +1 -1
  92. package/dist/runs/review-gate.js.map +1 -1
  93. package/dist/runs/store.d.ts +154 -60
  94. package/dist/runs/store.js +103 -19
  95. package/dist/runs/store.js.map +1 -1
  96. package/dist/runs/task-markers.d.ts +6 -2
  97. package/dist/runs/task-markers.js +25 -4
  98. package/dist/runs/task-markers.js.map +1 -1
  99. package/dist/runs/ui-event-sink.js.map +1 -1
  100. package/dist/server/capabilities.d.ts +22 -6
  101. package/dist/server/capabilities.js +85 -8
  102. package/dist/server/capabilities.js.map +1 -1
  103. package/dist/server/checkout.d.ts +128 -0
  104. package/dist/server/checkout.js +296 -0
  105. package/dist/server/checkout.js.map +1 -0
  106. package/dist/server/forge/github.d.ts +281 -10
  107. package/dist/server/forge/github.js +539 -23
  108. package/dist/server/forge/github.js.map +1 -1
  109. package/dist/server/forge/types.d.ts +48 -1
  110. package/dist/server/fs-browse.d.ts +105 -0
  111. package/dist/server/fs-browse.js +182 -0
  112. package/dist/server/fs-browse.js.map +1 -0
  113. package/dist/server/git-changes.d.ts +12 -3
  114. package/dist/server/git-changes.js +23 -5
  115. package/dist/server/git-changes.js.map +1 -1
  116. package/dist/server/github.d.ts +1 -1
  117. package/dist/server/open-in-app.d.ts +2 -1
  118. package/dist/server/open-in-app.js +1 -0
  119. package/dist/server/open-in-app.js.map +1 -1
  120. package/dist/server/project-context.d.ts +103 -0
  121. package/dist/server/project-context.js +153 -0
  122. package/dist/server/project-context.js.map +1 -0
  123. package/dist/server/server.d.ts +110 -0
  124. package/dist/server/server.js +1557 -215
  125. package/dist/server/server.js.map +1 -1
  126. package/dist/server/wsl.js.map +1 -1
  127. package/dist/server-install/platforms/macosx-ngrok.js.map +1 -1
  128. package/dist/server-install/platforms/ubuntu-vps.js +7 -0
  129. package/dist/server-install/platforms/ubuntu-vps.js.map +1 -1
  130. package/dist/server-install/state.js.map +1 -1
  131. package/dist/server-install/steps.js +6 -2
  132. package/dist/server-install/steps.js.map +1 -1
  133. package/dist/server-install/types.d.ts +28 -28
  134. package/dist/server-install/ui.js.map +1 -1
  135. package/dist/skills-banner.js.map +1 -1
  136. package/dist/skills-remote.d.ts +10 -4
  137. package/dist/skills-remote.js +31 -14
  138. package/dist/skills-remote.js.map +1 -1
  139. package/dist/skills.d.ts +29 -0
  140. package/dist/skills.js +72 -14
  141. package/dist/skills.js.map +1 -1
  142. package/dist/todos.d.ts +9 -7
  143. package/dist/todos.js +38 -19
  144. package/dist/todos.js.map +1 -1
  145. package/dist/workflows/run.d.ts +145 -10
  146. package/dist/workflows/run.js +608 -66
  147. package/dist/workflows/run.js.map +1 -1
  148. package/dist/workflows/types.d.ts +42 -42
  149. package/dist/workflows/types.js +2 -1
  150. package/dist/workflows/types.js.map +1 -1
  151. package/dist/workspace/config.d.ts +251 -0
  152. package/dist/workspace/config.js +162 -0
  153. package/dist/workspace/config.js.map +1 -0
  154. package/dist/workspace/migrations.d.ts +45 -0
  155. package/dist/workspace/migrations.js +132 -0
  156. package/dist/workspace/migrations.js.map +1 -0
  157. package/dist/workspace/projects-cli.d.ts +23 -0
  158. package/dist/workspace/projects-cli.js +105 -0
  159. package/dist/workspace/projects-cli.js.map +1 -0
  160. package/dist/workspace/projects.d.ts +81 -0
  161. package/dist/workspace/projects.js +214 -0
  162. package/dist/workspace/projects.js.map +1 -0
  163. package/dist/workspace/semaphore.d.ts +77 -0
  164. package/dist/workspace/semaphore.js +57 -0
  165. package/dist/workspace/semaphore.js.map +1 -0
  166. package/dist/workspace/ui-state.d.ts +23 -0
  167. package/dist/workspace/ui-state.js +42 -0
  168. package/dist/workspace/ui-state.js.map +1 -0
  169. package/package.json +3 -2
  170. package/scripts/mock-claude.mjs +136 -2
  171. package/web/dist/assets/arrow-left-CnSdp92h.js +1 -0
  172. package/web/dist/assets/centered-state-NF79blq7.js +43 -0
  173. package/web/dist/assets/{chunk-BO2N2NFS-BN7h-q1E.js → chunk-BO2N2NFS-DtrdTCWa.js} +4 -4
  174. package/web/dist/assets/commit-list-CL8vSWGw.js +1 -0
  175. package/web/dist/assets/compare-variants-mI-MnhuR.js +1 -0
  176. package/web/dist/assets/diff-view-Bhfvnnn9.js +6 -0
  177. package/web/dist/assets/dist-COA_NSud.js +1 -0
  178. package/web/dist/assets/ellipsis-vertical-CNnSLn5a.js +1 -0
  179. package/web/dist/assets/{file-tuE95HNX.js → file-D4GBh1ao.js} +1 -1
  180. package/web/dist/assets/{git-pull-request-BztcgsRZ.js → git-pull-request-DnR8Xh4_.js} +1 -1
  181. package/web/dist/assets/git-toolbar-rVtFyL4t.js +1 -0
  182. package/web/dist/assets/github-_t0ceKcO.js +1 -0
  183. package/web/dist/assets/{highlighted-body-OFNGDK62-CJIHtxqW.js → highlighted-body-OFNGDK62-BuFJwunK.js} +1 -1
  184. package/web/dist/assets/{image-preview-Ca0UgThg.js → image-preview-DEhW0TFz.js} +1 -1
  185. package/web/dist/assets/index-BfXFhAGQ.js +30 -0
  186. package/web/dist/assets/index-Mov2Rrbw.css +2 -0
  187. package/web/dist/assets/lib-DPEZDBUN.js +1 -0
  188. package/web/dist/assets/mermaid-GHXKKRXX-CN2zQue0.js +1 -0
  189. package/web/dist/assets/project-router-CBzGUqvS.js +1 -0
  190. package/web/dist/assets/{refresh-cw-B4NW5q60.js → refresh-cw-BT8E96Tm.js} +1 -1
  191. package/web/dist/assets/repo-git-C3dJiX3j.js +1 -0
  192. package/web/dist/assets/{run-diff-BKpV1kGk.js → run-diff-HEZcHwRr.js} +3 -3
  193. package/web/dist/assets/run-header-DldbROhB.js +1 -0
  194. package/web/dist/assets/{search-x-C6xG26dv.js → search-x-BDjaMrzG.js} +1 -1
  195. package/web/dist/assets/skill-empty-hint-DTUSp6Vl.js +1 -0
  196. package/web/dist/assets/skills-BIg29xLt.js +1 -0
  197. package/web/dist/assets/{square-terminal-D9l_Xx7B.js → square-terminal-Ckjjn0vb.js} +1 -1
  198. package/web/dist/assets/tab-link-DTQ9FBZY.js +1 -0
  199. package/web/dist/assets/task-changes-DRhQVnFN.js +1 -0
  200. package/web/dist/assets/task-commits-5StODPII.js +1 -0
  201. package/web/dist/assets/task-files-BuylxobG.js +2 -0
  202. package/web/dist/assets/task-thread-DnHR0k7k.js +9 -0
  203. package/web/dist/assets/textarea-Bj_LCreg.js +1 -0
  204. package/web/dist/assets/toml-CcmNWLt0.js +1 -0
  205. package/web/dist/assets/{trash-2-De8Z5Y5-.js → trash-2-DAyZ0VSi.js} +1 -1
  206. package/web/dist/assets/{triangle-alert-DJUyRhTV.js → triangle-alert-Uy8rokUh.js} +1 -1
  207. package/web/dist/assets/{upload-yxUM9nk5.js → upload-CDdyPPo_.js} +1 -1
  208. package/web/dist/assets/use-desktop-TyHAXhMR.js +3 -0
  209. package/web/dist/assets/utils-B8s5qIcK.js +1 -0
  210. package/web/dist/assets/workflows-CwDYZLvG.js +11 -0
  211. package/web/dist/assets/zoomable-image-PEDOqyLQ.js +1 -0
  212. package/web/dist/index.html +10 -19
  213. package/web/dist/assets/arrow-left-bEsJ-6jp.js +0 -1
  214. package/web/dist/assets/centered-state-DzJJpXgm.js +0 -43
  215. package/web/dist/assets/command-eBgVGftz.js +0 -1
  216. package/web/dist/assets/compare-variants-DhqGJuHF.js +0 -1
  217. package/web/dist/assets/dialog-Bf1Cpc3n.js +0 -1
  218. package/web/dist/assets/diff-view-Cqc8LRkj.js +0 -4
  219. package/web/dist/assets/dist-M2QYGAcm.js +0 -1
  220. package/web/dist/assets/dist-ZAIqO3UX.js +0 -1
  221. package/web/dist/assets/folder-20ea3OVM.js +0 -1
  222. package/web/dist/assets/git-toolbar-DAlBoSP5.js +0 -1
  223. package/web/dist/assets/github--sfM4X3j.js +0 -1
  224. package/web/dist/assets/highlighter-ZVyRi_Cx.js +0 -3
  225. package/web/dist/assets/index-DlKq8gF4.css +0 -2
  226. package/web/dist/assets/index-h4gyDJyh.js +0 -11
  227. package/web/dist/assets/loader-circle-Bnw4ga19.js +0 -1
  228. package/web/dist/assets/markdown-DxmCMr30.js +0 -1
  229. package/web/dist/assets/mermaid-GHXKKRXX-DghlHZS5.js +0 -1
  230. package/web/dist/assets/prompt-templates-CsGr-FXH.js +0 -15
  231. package/web/dist/assets/repo-git-CHF2oip_.js +0 -1
  232. package/web/dist/assets/run-header-3CGn6FAM.js +0 -1
  233. package/web/dist/assets/skill-detail-DsD4-dGp.js +0 -1
  234. package/web/dist/assets/skill-empty-hint-Cl3ESoPu.js +0 -1
  235. package/web/dist/assets/skills-5kRcjM1J.js +0 -1
  236. package/web/dist/assets/skills-B13iqWAN.js +0 -1
  237. package/web/dist/assets/tab-link-DkVxOa-q.js +0 -1
  238. package/web/dist/assets/task-changes-DtMiVVwO.js +0 -1
  239. package/web/dist/assets/task-commits-VbSLn_tW.js +0 -1
  240. package/web/dist/assets/task-files-qYDBG3Mx.js +0 -2
  241. package/web/dist/assets/task-thread-BfGERKlB.js +0 -7
  242. package/web/dist/assets/tasks-table-C5fwJmZ7.js +0 -1
  243. package/web/dist/assets/use-desktop-6PwFeCW3.js +0 -3
  244. package/web/dist/assets/utils-CzkLr94M.js +0 -1
  245. package/web/dist/assets/workflows-CnTcKlfV.js +0 -11
  246. package/web/dist/assets/x-DaR4ZfE-.js +0 -1
  247. 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: { ...state, itemSeq, turnSeq, currentTurnId: null, openTools: openTools ?? state.openTools },
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: workspace-write` + `approvalPolicy:
18
- * never` — Codex has no per-tool allowlist, so `spec.allowedTools` is ignored.
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: "codex";
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, EOF_KILL_GRACE_MS, EOF_TERM_GRACE_MS, KILL_GRACE_MS, } from './claude-cli-runner.js';
4
- import { buildChildEnv } from './agent-env.js';
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: workspace-write` + `approvalPolicy:
17
- * never` — Codex has no per-tool allowlist, so `spec.allowedTools` is ignored.
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 ?? process.env.CEZ_CODEX_BIN ?? 'codex';
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
- nextId = 1;
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
- // Give the workspace-write sandbox network access so agent tools that need the network
76
- // (gh, npm, git over https) work — otherwise `gh` fails with "error connecting to
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 wrapSpawnError(err, bin);
82
+ throw codexSpawnError(err, bin);
91
83
  }
92
84
  this.child.on('error', (err) => {
93
- this.spawnFailed = wrapSpawnError(err, bin);
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
- for await (const line of readNdjson(this.child.stdout)) {
121
- if (this.timedOut)
122
- break;
123
- let msg;
124
- try {
125
- msg = JSON.parse(line);
126
- }
127
- catch {
128
- continue; // not JSON-RPC — skip
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
- this.emitUi((state) => mapCodexNotification(msg, state));
131
- this.dispatch(msg);
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
- throw err;
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 waitForExit(this.child);
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
- for (const p of this.pending.values())
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.stdin.end();
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.request('initialize', {
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
- sandbox: 'workspace-write',
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
- const res = await this.request('turn/start', { threadId: this.threadId, input });
283
- this.activeTurnId = turnIdOf(res) ?? this.activeTurnId;
284
- }
285
- request(method, params) {
286
- const id = this.nextId++;
287
- const promise = new Promise((resolve, reject) => {
288
- this.pending.set(id, { resolve, reject });
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.write({ id, method, params });
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 (typeof msg.id === 'number' && (msg.result !== undefined || msg.error !== undefined)) {
308
- const p = this.pending.get(msg.id);
309
- if (!p)
310
- return;
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.nextId++}`;
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