wezard 2.5.0 → 2.6.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.
Files changed (115) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CLAUDE.md +3 -0
  3. package/README.md +43 -1
  4. package/cli/wezard.sh +9 -1
  5. package/config.example.jsonc +22 -5
  6. package/dist/cli/codex-hook.js +91 -0
  7. package/dist/cli/codex-hook.js.map +1 -0
  8. package/dist/cli/codex-sync.js +64 -0
  9. package/dist/cli/codex-sync.js.map +1 -0
  10. package/dist/cli/init.js +7 -3
  11. package/dist/cli/init.js.map +1 -1
  12. package/dist/cli/sync.js +16 -5
  13. package/dist/cli/sync.js.map +1 -1
  14. package/dist/daemon/aibot-media.js +6 -2
  15. package/dist/daemon/aibot-media.js.map +1 -1
  16. package/dist/daemon/approval.js +44 -21
  17. package/dist/daemon/approval.js.map +1 -1
  18. package/dist/daemon/bot-mux.js +157 -0
  19. package/dist/daemon/bot-mux.js.map +1 -0
  20. package/dist/daemon/cc-session.js +8 -1
  21. package/dist/daemon/cc-session.js.map +1 -1
  22. package/dist/daemon/cfg-sync.js +1 -0
  23. package/dist/daemon/cfg-sync.js.map +1 -1
  24. package/dist/daemon/claim.js +45 -1
  25. package/dist/daemon/claim.js.map +1 -1
  26. package/dist/daemon/config-api.js +59 -23
  27. package/dist/daemon/config-api.js.map +1 -1
  28. package/dist/daemon/detail.js +4 -0
  29. package/dist/daemon/detail.js.map +1 -1
  30. package/dist/daemon/http.js +9 -0
  31. package/dist/daemon/http.js.map +1 -1
  32. package/dist/daemon/inbound.js +54 -28
  33. package/dist/daemon/inbound.js.map +1 -1
  34. package/dist/daemon/index.js +181 -139
  35. package/dist/daemon/index.js.map +1 -1
  36. package/dist/daemon/jobs.js +1 -1
  37. package/dist/daemon/jobs.js.map +1 -1
  38. package/dist/daemon/last-response.js +12 -6
  39. package/dist/daemon/last-response.js.map +1 -1
  40. package/dist/daemon/mirror-bridge.js +351 -144
  41. package/dist/daemon/mirror-bridge.js.map +1 -1
  42. package/dist/daemon/peers.js +12 -16
  43. package/dist/daemon/peers.js.map +1 -1
  44. package/dist/daemon/picker-policy.js +46 -0
  45. package/dist/daemon/picker-policy.js.map +1 -0
  46. package/dist/daemon/quota.js +10 -7
  47. package/dist/daemon/quota.js.map +1 -1
  48. package/dist/daemon/reach.js +5 -1
  49. package/dist/daemon/reach.js.map +1 -1
  50. package/dist/daemon/receipts.js +1 -1
  51. package/dist/daemon/receipts.js.map +1 -1
  52. package/dist/daemon/route.js +67 -26
  53. package/dist/daemon/route.js.map +1 -1
  54. package/dist/daemon/session-scan.js +34 -10
  55. package/dist/daemon/session-scan.js.map +1 -1
  56. package/dist/daemon/spawn-tmux.js +181 -76
  57. package/dist/daemon/spawn-tmux.js.map +1 -1
  58. package/dist/daemon/steward-model.js +24 -0
  59. package/dist/daemon/steward-model.js.map +1 -0
  60. package/dist/daemon/subagent-tail.js +5 -0
  61. package/dist/daemon/subagent-tail.js.map +1 -1
  62. package/dist/daemon/task-registry.js +6 -1
  63. package/dist/daemon/task-registry.js.map +1 -1
  64. package/dist/daemon/tasks.js +1 -1
  65. package/dist/daemon/tasks.js.map +1 -1
  66. package/dist/daemon/tips.js +1 -1
  67. package/dist/daemon/tips.js.map +1 -1
  68. package/dist/daemon/wizard-memory.js +12 -6
  69. package/dist/daemon/wizard-memory.js.map +1 -1
  70. package/dist/daemon/wizard.js +7 -5
  71. package/dist/daemon/wizard.js.map +1 -1
  72. package/dist/daemon/ws.js +79 -10
  73. package/dist/daemon/ws.js.map +1 -1
  74. package/dist/mcp/server.js +19 -18
  75. package/dist/mcp/server.js.map +1 -1
  76. package/dist/shared/chat-http.js +63 -29
  77. package/dist/shared/chat-http.js.map +1 -1
  78. package/dist/shared/chat-view.js +10 -3
  79. package/dist/shared/chat-view.js.map +1 -1
  80. package/dist/shared/cli-backends.js +11 -0
  81. package/dist/shared/cli-backends.js.map +1 -1
  82. package/dist/shared/codex-approval.js +57 -0
  83. package/dist/shared/codex-approval.js.map +1 -0
  84. package/dist/shared/codex-hooks.js +134 -0
  85. package/dist/shared/codex-hooks.js.map +1 -0
  86. package/dist/shared/codex.js +125 -0
  87. package/dist/shared/codex.js.map +1 -0
  88. package/dist/shared/config.js +85 -21
  89. package/dist/shared/config.js.map +1 -1
  90. package/dist/shared/detail-render.js +24 -16
  91. package/dist/shared/detail-render.js.map +1 -1
  92. package/dist/shared/detail-store.js +11 -10
  93. package/dist/shared/detail-store.js.map +1 -1
  94. package/dist/shared/exec-path.js +12 -0
  95. package/dist/shared/exec-path.js.map +1 -1
  96. package/dist/shared/modal-pane.js +19 -1
  97. package/dist/shared/modal-pane.js.map +1 -1
  98. package/dist/shared/model-tier-migration.js +43 -0
  99. package/dist/shared/model-tier-migration.js.map +1 -0
  100. package/dist/shared/model-tiers.js +35 -0
  101. package/dist/shared/model-tiers.js.map +1 -0
  102. package/dist/shared/reminder.js +19 -4
  103. package/dist/shared/reminder.js.map +1 -1
  104. package/dist/shared/session-label.js +27 -2
  105. package/dist/shared/session-label.js.map +1 -1
  106. package/dist/shared/tool-hints.js +144 -0
  107. package/dist/shared/tool-hints.js.map +1 -0
  108. package/dist/shared/workspace-trust.js +69 -0
  109. package/dist/shared/workspace-trust.js.map +1 -0
  110. package/dist/shared/world.js +5 -4
  111. package/dist/shared/world.js.map +1 -1
  112. package/dist/svr/index.js +3 -0
  113. package/dist/svr/index.js.map +1 -1
  114. package/hooks/pre-tool-use.sh +1 -1
  115. package/package.json +6 -1
@@ -1,3 +1,5 @@
1
+ import { recordCodexPaneSession } from "../shared/codex.js";
2
+ import { codexHookLaunchArgs, codexHookCommand, prepareCodexSession, codexSandboxLaunchArgs, codexSandboxMode, codexSandboxArgConflict } from "../shared/codex-hooks.js";
1
3
  // Auto-spawn helper for mirror mode.
2
4
  //
3
5
  // Goal: from a WeCom inbound, materialize a fresh `claude` process inside a
@@ -23,32 +25,26 @@
23
25
  // tail from offset 0). The brief post-launch settle exists only to give the
24
26
  // pane's shell time to finish sourcing rc + claude TUI time to grab the pty
25
27
  // before the first paste-buffer inject hits.
28
+ import { fileURLToPath } from "node:url";
26
29
  import { spawn } from "node:child_process";
27
30
  import { randomUUID } from "node:crypto";
28
- import { existsSync, mkdirSync, readFileSync, readdirSync, statSync, unlinkSync, writeFileSync } from "node:fs";
29
- import { homedir } from "node:os";
31
+ import { existsSync, mkdirSync, readFileSync, readdirSync, realpathSync, statSync, unlinkSync, writeFileSync } from "node:fs";
32
+ import { homedir, tmpdir } from "node:os";
30
33
  import { basename, dirname, join } from "node:path";
34
+ import { loadConfig } from "../shared/config.js";
31
35
  import { expandHome } from "../shared/paths.js";
32
- import { augmentedPath } from "../shared/exec-path.js";
36
+ import { tmuxClientEnv } from "../shared/exec-path.js";
33
37
  import { sleep } from "../shared/std.js";
34
- import { activateBackend, CLI_BACKEND_DEFAULTS, primaryBackend } from "../shared/cli-backends.js";
38
+ import { activateBackend, resolveCliBackend } from "../shared/cli-backends.js";
35
39
  import { selectModel } from "./model-select.js";
36
40
  import { hasRegistry, sessionOnPane } from "./cc-session.js";
37
- // A spawn has no transcript to derive a backend from, so the caller picks one
38
- // (`cli`) and we fall back to the primary (`wrc.defaultCli`). Everything the
39
- // pane needs — binary, transcript root, project-dir encoding, trust-marker file
40
- // — comes from that single descriptor, which is what lets one daemon host
41
- // claude and codebuddy panes at the same time.
42
- const backendFor = (cfg, cli) => {
43
- const primary = primaryBackend();
44
- if (!cli || cli === primary.name)
45
- return primary;
46
- const base = CLI_BACKEND_DEFAULTS[cli];
47
- const override = cfg.wrc.cliBackends?.[cli]?.bin;
48
- // Activate before spawning: this CLI's transcript root may not exist yet, in
49
- // which case the boot-time probe skipped it and backendForPath would misread
50
- // the jsonl we are about to create as the primary's dialect.
51
- return activateBackend(override ? { ...base, bin: override } : base);
41
+ import { startupConfirmation, workspaceTrustPrompt, workspaceTrustConfig } from "../shared/workspace-trust.js";
42
+ // Every new pane uses the configured backend, including resume and fork panes.
43
+ // `cli` is retained on SpawnArgs only to identify a resumed transcript's owner.
44
+ export const backendFor = (cfg) => {
45
+ const backend = resolveCliBackend(cfg.wrc);
46
+ activateBackend(backend);
47
+ return backend;
52
48
  };
53
49
  /** Hard ceiling for ANY tmux subcommand. A wedged tmux server used to hang the
54
50
  * caller forever with zero log output: one inbound spawned a pane, then
@@ -56,6 +52,8 @@ const backendFor = (cfg, cli) => {
56
52
  * stayed locked behind a zombie job and that chat went permanently silent.
57
53
  * Normal tmux commands finish in <100ms — 10s is a generous ceiling, not a
58
54
  * latency budget. Override via WEZARD_TMUX_TIMEOUT_MS (0 disables, for debugging). */
55
+ const DETACHED_COLS = 200;
56
+ const DETACHED_ROWS = 60;
59
57
  export const TMUX_TIMEOUT_MS = (() => {
60
58
  const raw = Number(process.env.WEZARD_TMUX_TIMEOUT_MS);
61
59
  return Number.isFinite(raw) && raw >= 0 ? raw : 10_000;
@@ -74,7 +72,7 @@ export const runTmux = (args, opts = {}) => new Promise((resolve) => {
74
72
  // 于是按 tab 切的每一处 (boot 恢复的 pane 快照 / pane 漂移跟随 / pane 上限) 都认不出
75
73
  // 任何 pane, 而在带 locale 的 dev shell 里一切正常。
76
74
  const proc = spawn("tmux", ["-u", ...args], {
77
- env: { ...process.env, PATH: augmentedPath(process.env.PATH) },
75
+ env: tmuxClientEnv(process.env),
78
76
  stdio: [opts.stdin === undefined ? "ignore" : "pipe", "pipe", "pipe"],
79
77
  });
80
78
  let out = "";
@@ -151,7 +149,7 @@ const POLL_MS = 400;
151
149
  const REGISTRY_POLL_MS = 100;
152
150
  // Patterns indicating the TUI reached interactive state (input box visible).
153
151
  // Covers Claude Code, Claude Internal, and CodeBuddy TUIs across versions.
154
- const TUI_READY_RE = /for shortcuts|auto mode|Try "|>\s*$/m;
152
+ const TUI_READY_RE = /for shortcuts|auto mode|Try "|OpenAI Codex|[›>]\s*$/m;
155
153
  // Patterns indicating an interactive prompt that consumed our Enter — the
156
154
  // command is sitting unsent in the shell line.
157
155
  const BLOCKER_RE = /Would you like to update|oh-my-zsh|Do you want to update/i;
@@ -204,27 +202,51 @@ export const modelNotRecognized = (screen, wanted) => {
204
202
  // for input. On success returns true; on timeout returns false (caller decides
205
203
  // whether to treat as fatal).
206
204
  //
207
- // 判据按可信度取: 后端写注册表 (cc-session) 时, 以「这个 pane 上的会话 status=idle」
208
- // 为准 —— 进程自己报的就绪, 不读 pane。注册表行一出现就说明 claude 已接管 pty,
209
- // 之后只管等它 idle; 只有行还没出现 (shell 还在 source rc / 被交互提示卡住 /
210
- // 后端根本不写注册表) 时 pane 才是唯一的证人, 这时才 capture 去认提示框与 TUI。
205
+ // 注册表的 idle 只在读屏排除启动确认框后认下: 信任框可能先于会话注册出现,
206
+ // 也可能在已有注册记录时阻塞。未知确认框保持人工处理, 不能以 idle 或欢迎标题放行。
211
207
  //
212
208
  // 退出标记 (`cliExit`) 每次读屏都先看: CLI 一退回 shell 就不必等满预算, 而注册表
213
209
  // 里那行可能还没清掉 —— 所以注册表已认下会话时也照读屏, 只是不拿屏去判就绪。
214
- const waitForTuiReady = async (pane, cmd, backend, log) => {
210
+ export const answerWorkspaceTrust = async (pane, backend, cwd, log) => {
211
+ const capture = async () => {
212
+ const r = await runTmux(["capture-pane", "-t", pane, "-p"]);
213
+ return r.ok ? r.stdout : "";
214
+ };
215
+ const screen = await capture();
216
+ const before = workspaceTrustPrompt(screen, backend, cwd, realpathSync);
217
+ if (!before)
218
+ return false;
219
+ if (before.selected !== before.choice) {
220
+ const moved = await runTmux(["send-keys", "-t", pane, before.selected < before.choice ? "Down" : "Up"]);
221
+ if (!moved.ok)
222
+ return false;
223
+ await sleep(150);
224
+ }
225
+ // Re-read even if Yes was already selected: a local key may have changed the picker.
226
+ const after = workspaceTrustPrompt(await capture(), backend, cwd, realpathSync);
227
+ if (!after || after.selected !== after.choice || after.directory !== before.directory
228
+ || after.labels.join("\n") !== before.labels.join("\n"))
229
+ return false;
230
+ const pressed = await runTmux(["send-keys", "-t", pane, "Enter"]);
231
+ if (!pressed.ok)
232
+ return false;
233
+ log.info({ pane, backend, cwd }, "workspace trust: confirmed authorized directory");
234
+ await sleep(300);
235
+ return true;
236
+ };
237
+ const waitForTuiReady = async (pane, cmd, backend, cwd, log) => {
215
238
  const registry = hasRegistry(backend.homeDir);
216
239
  const t0 = Date.now();
217
240
  const deadline = t0 + MIN_SETTLE_MS + TUI_READY_TIMEOUT_MS;
218
- let retriedEnter = false;
219
241
  let resent = false;
220
242
  let sawSession = false;
221
243
  let lastCap = 0;
222
244
  while (Date.now() < deadline) {
223
245
  await sleep(registry ? REGISTRY_POLL_MS : POLL_MS);
246
+ let registryIdle = false;
224
247
  if (registry) {
225
248
  const s = sessionOnPane(backend.homeDir, pane);
226
- if (s?.status === "idle")
227
- return { ready: true };
249
+ registryIdle = s?.status === "idle";
228
250
  if (s)
229
251
  sawSession = true;
230
252
  }
@@ -235,10 +257,19 @@ const waitForTuiReady = async (pane, cmd, backend, log) => {
235
257
  if (Date.now() - lastCap < POLL_MS)
236
258
  continue;
237
259
  lastCap = Date.now();
238
- const cap = await capturePaneBottom(pane, 20);
260
+ const captured = await runTmux(["capture-pane", "-t", pane, "-p"]);
261
+ if (!captured.ok)
262
+ continue;
263
+ const cap = captured.ok ? captured.stdout : "";
239
264
  const exited = cliExit(cap);
240
265
  if (exited)
241
266
  return { ready: false, exited };
267
+ if (await answerWorkspaceTrust(pane, backend.name, cwd, log))
268
+ continue;
269
+ if (startupConfirmation(cap))
270
+ continue;
271
+ if (registryIdle)
272
+ return { ready: true };
242
273
  // 注册表认不到这个 pane (schema 不认识 / 后端不写) 时, pane 读屏就是唯一证人;
243
274
  // 注册表已认下 (sawSession) 则仍以它报的 idle 为准, 尾部裁决不变。
244
275
  if (sawSession)
@@ -254,25 +285,29 @@ const waitForTuiReady = async (pane, cmd, backend, log) => {
254
285
  await runTmux(["send-keys", "-t", pane, cmd, "Enter"]);
255
286
  resent = true;
256
287
  }
257
- // If after half the budget we still see nothing, maybe Enter was lost in
258
- // shell rc sourcing. Retry Enter once (safe: if claude already started, an
259
- // extra Enter on an empty input box is a no-op).
260
- if (!retriedEnter && !resent && Date.now() - t0 > MIN_SETTLE_MS + TUI_READY_TIMEOUT_MS / 2) {
261
- log.warn({ pane }, "spawn-tmux: TUI not seen at half-budget, retrying Enter");
262
- await runTmux(["send-keys", "-t", pane, "Enter"]);
263
- retriedEnter = true;
264
- }
265
288
  }
266
289
  // 注册表认得这个会话却迟迟不 idle (启动期对话框? 状态字段改了名?) —— 最后让 pane 裁决一次。
267
- const last = await capturePaneBottom(pane, 20);
290
+ const captured = await runTmux(["capture-pane", "-t", pane, "-p"]);
291
+ const last = captured.ok ? captured.stdout : "";
268
292
  const exited = cliExit(last);
269
293
  if (exited)
270
294
  return { ready: false, exited };
271
- if (sawSession && TUI_READY_RE.test(last))
295
+ if (!startupConfirmation(last) && sawSession && TUI_READY_RE.test(last))
272
296
  return { ready: true };
273
297
  log.warn({ pane, registry, sawSession }, "spawn-tmux: TUI ready timeout, proceeding anyway");
274
298
  return { ready: false };
275
299
  };
300
+ // Pre-write the "trust this folder" + onboarding markers for `cwd` into
301
+ // claude's user-config json so the TUI doesn't park on the workspace-trust /
302
+ // onboarding prompts — those would silently swallow paste-buffer injects.
303
+ //
304
+ // claude → ~/.claude.json
305
+ // claude-internal → ~/.claude-internal/.claude.json
306
+ // <other> → first existing of {~/.<bin>/.claude.json, ~/.<bin>.json};
307
+ // when neither exists we pick the dir-style path so the
308
+ // write also creates the conventional layout.
309
+ //
310
+ // Patch only this directory's trust/onboarding markers; external includes stay separate.
276
311
  const claudeConfigCandidates = (claudeBin) => {
277
312
  const home = homedir();
278
313
  const name = basename(claudeBin);
@@ -281,35 +316,23 @@ const claudeConfigCandidates = (claudeBin) => {
281
316
  return [join(home, `.${name}`, ".claude.json"), join(home, `.${name}.json`)];
282
317
  };
283
318
  export const trustWorkspace = (claudeBin, cwd, log) => {
319
+ if (basename(claudeBin) === "codex")
320
+ return; // Native Codex trust belongs to its scoped TUI.
284
321
  const candidates = claudeConfigCandidates(claudeBin);
285
322
  const target = candidates.find(existsSync) ?? candidates[0];
286
- let cfg = {};
287
- try {
288
- if (existsSync(target))
289
- cfg = JSON.parse(readFileSync(target, "utf8"));
290
- }
291
- catch (e) {
292
- log.warn({ target, err: e.message }, "trustWorkspace: parse failed; rewriting");
293
- }
294
- const projects = (cfg.projects ??= {});
295
- const proj = projects[cwd] ?? {};
296
- if (proj.hasTrustDialogAccepted && (proj.projectOnboardingSeenCount ?? 0) >= 1 && proj.hasClaudeMdExternalIncludesApproved) {
297
- return; // already trusted — no write needed
298
- }
299
- projects[cwd] = {
300
- ...proj,
301
- hasTrustDialogAccepted: true,
302
- projectOnboardingSeenCount: Math.max(proj.projectOnboardingSeenCount ?? 0, 1),
303
- hasClaudeMdExternalIncludesApproved: true,
304
- hasClaudeMdExternalIncludesWarningShown: true,
305
- };
306
323
  try {
324
+ const directory = realpathSync(cwd);
325
+ const original = existsSync(target) ? readFileSync(target, "utf8") : "{}\n";
326
+ const patched = workspaceTrustConfig(original, directory);
327
+ if (patched === original)
328
+ return;
307
329
  mkdirSync(dirname(target), { recursive: true });
308
- writeFileSync(target, JSON.stringify(cfg, null, 2));
309
- log.info({ target, cwd }, "trustWorkspace: marker written");
330
+ writeFileSync(target, patched);
331
+ log.info({ target, cwd: directory }, "trustWorkspace: marker written");
310
332
  }
311
333
  catch (e) {
312
- log.warn({ target, err: e.message }, "trustWorkspace: write failed");
334
+ // A damaged user config is not ours to replace; the scoped pane path can recover.
335
+ log.warn({ target, err: e.message }, "trustWorkspace: config unchanged");
313
336
  }
314
337
  };
315
338
  /** 一个会话一份宪章, 会话是无限多的 —— 留最近 200 份就够用 (真正在跑的 pane
@@ -353,11 +376,14 @@ const charterArg = (cfg, backend, sessionId, charter, log) => {
353
376
  }
354
377
  };
355
378
  export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, sessionId: freshSessionId, windowName, cwdOverride, cli, model, effort, systemPrompt, forkSession }) => {
356
- const backend = backendFor(cfg, cli);
379
+ const backend = backendFor(cfg);
380
+ if (resumeSessionId && cli && cli !== backend.name) {
381
+ return { ok: false, reason: `会话属于 ${cli}, 当前配置后端是 ${backend.name}, 无法跨后端恢复或克隆。请用 /new 新建会话。` };
382
+ }
357
383
  const cwd = expandHome((cwdOverride ?? "").trim() || cfg.wrc.cwd);
358
384
  const projectDir = join(expandHome(backend.projectsDir), backend.encodeProjectDir(cwd));
359
- const sessionId = resumeSessionId ?? freshSessionId ?? randomUUID();
360
- const jsonlPath = join(projectDir, `${sessionId}.jsonl`);
385
+ let sessionId = resumeSessionId ?? freshSessionId ?? randomUUID();
386
+ let jsonlPath = join(projectDir, `${sessionId}.jsonl`);
361
387
  const tmuxName = cfg.wrc.tmuxPrefix; // shared session for all chats
362
388
  const winName = safeWindowName(windowName ?? sessionId);
363
389
  // Probe tmux availability up front — clearer error than a generic spawn fail.
@@ -388,7 +414,34 @@ export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, sessionId: fr
388
414
  // this folder?" / onboarding prompts — those prompts swallow paste-buffer
389
415
  // injects and the approval card never fires. Best-effort: log + continue
390
416
  // on failure (worst case the user clicks through the prompts manually).
391
- trustWorkspace(backend.bin, cwd, log);
417
+ if (backend.name !== "codex")
418
+ trustWorkspace(backend.bin, cwd, log);
419
+ let codexApprovalArgs = [];
420
+ const sandboxDisabled = cfg.wrc.cliBackends.codex.disableSandbox;
421
+ const codexSandboxArgs = backend.name === "codex" ? codexSandboxLaunchArgs(sandboxDisabled) : [];
422
+ if (backend.name === "codex") {
423
+ const conflict = sandboxDisabled ? codexSandboxArgConflict(cfg.wrc.extraArgs) : undefined;
424
+ if (conflict)
425
+ return { ok: false, reason: `Codex extraArgs ${conflict} conflicts with wrc.cliBackends.codex.disableSandbox; remove the shortcut and use the sandbox config` };
426
+ const hookEntry = fileURLToPath(new URL("../cli/codex-hook.js", import.meta.url));
427
+ const command = codexHookCommand(loadConfig().sourcePath, `http://127.0.0.1:${cfg.daemon.port}`, hookEntry);
428
+ try {
429
+ codexApprovalArgs = await codexHookLaunchArgs(backend.bin, cwd, command, cfg.approval.hookTimeoutSec + 10, cfg.approval.enabled);
430
+ }
431
+ catch (e) {
432
+ return { ok: false, reason: `Codex approval hooks unavailable: ${e.message}` };
433
+ }
434
+ try {
435
+ const native = await prepareCodexSession(backend.bin, cwd, winName, [...codexApprovalArgs, ...codexSandboxArgs], {
436
+ resumeSessionId, forkSession, model, systemPrompt, sandboxMode: codexSandboxMode(sandboxDisabled),
437
+ });
438
+ sessionId = native.sessionId;
439
+ jsonlPath = native.jsonlPath;
440
+ }
441
+ catch (e) {
442
+ return { ok: false, reason: `Codex session preparation failed: ${e.message}` };
443
+ }
444
+ }
392
445
  // Reuse the shared session if alive; otherwise create it. Either way, end
393
446
  // up with a fresh window whose pane id we capture via `-P -F '#{pane_id}'`.
394
447
  //
@@ -401,14 +454,23 @@ export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, sessionId: fr
401
454
  // the prompt regardless of the user's zstyle config.
402
455
  const paneEnv = supportsE ? ["-e", "DISABLE_AUTO_UPDATE=true", "-e", "DISABLE_UPDATE_PROMPT=true"] : [];
403
456
  const cwdArg = supportsC ? ["-c", cwd] : [];
457
+ // With no client attached a window takes the session's default-size — tmux's
458
+ // own default is 80x24, and the codebuddy `/model` picker (30-odd unwindowed
459
+ // rows, ids truncated at 80 cols) then scrolls its title and scope tab off
460
+ // the screen: the picker reads as never opened. An attached human's terminal
461
+ // still wins; this only sizes the panes nobody is looking at. Best-effort —
462
+ // tmux < 2.9 has no default-size and keeps 80x24.
463
+ const sizeArg = ["-x", String(DETACHED_COLS), "-y", String(DETACHED_ROWS)];
404
464
  const openPane = async () => {
405
465
  const has = await runTmux(["has-session", "-t", tmuxName]);
466
+ if (has.code === 0)
467
+ await runTmux(["set-option", "-t", tmuxName, "default-size", `${DETACHED_COLS}x${DETACHED_ROWS}`]);
406
468
  const created = has.code === 0
407
469
  // `${tmuxName}:` (trailing colon) forces session-only resolution → next free
408
470
  // window index. Bare `-t wezard` is ambiguous: if a *window* is also named
409
471
  // `wezard`, tmux matches it and tries to reuse its index → "index N in use".
410
472
  ? await runTmux(["new-window", "-d", "-t", `${tmuxName}:`, "-n", winName, ...cwdArg, ...paneEnv, "-P", "-F", "#{pane_id}"])
411
- : await runTmux(["new-session", "-d", "-s", tmuxName, "-n", winName, ...cwdArg, ...paneEnv, "-P", "-F", "#{pane_id}"]);
473
+ : await runTmux(["new-session", "-d", "-s", tmuxName, "-n", winName, ...sizeArg, ...cwdArg, ...paneEnv, "-P", "-F", "#{pane_id}"]);
412
474
  if (!created.ok)
413
475
  return { reason: `tmux ${has.code === 0 ? "new-window" : "new-session"} failed: ${created.stderr.trim() || created.code}` };
414
476
  const pane = created.stdout.split("\n").map((s) => s.trim()).filter(Boolean)[0] ?? "";
@@ -426,19 +488,33 @@ export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, sessionId: fr
426
488
  "DISABLE_AUTOUPDATER=1",
427
489
  ];
428
490
  const wanted = model?.trim() ?? "";
429
- const effortArg = effort && backend.effortFlag ? effort : undefined;
491
+ const effortArg = effort && (backend.effortFlag || backend.name === "codex") ? effort : undefined;
430
492
  const charter = charterArg(cfg, backend, sessionId, systemPrompt, log);
431
493
  // A fresh session relaunched after a failed first try resumes instead if that
432
494
  // try already wrote the transcript — `--session-id` refuses an existing one.
433
- const commandFor = (flagModel, retry) => {
495
+ const commandFor = (flagModel, retry, pane) => {
434
496
  const resume = !!resumeSessionId || (retry && existsSync(jsonlPath));
435
497
  const argv = [
436
- ...(resume ? ["--resume", sessionId, ...(forkSession ? ["--fork-session"] : [])] : ["--session-id", sessionId]),
498
+ ...(backend.name === "codex"
499
+ ? ["resume", sessionId]
500
+ : (resume ? ["--resume", sessionId, ...(forkSession ? ["--fork-session"] : [])] : ["--session-id", sessionId])),
501
+ ...(backend.name === "codex" ? [
502
+ "--no-daemon",
503
+ "-c", `mcp_servers.wezard.command=${JSON.stringify(process.execPath)}`,
504
+ "-c", `mcp_servers.wezard.args=${JSON.stringify([fileURLToPath(new URL("../mcp/server.js", import.meta.url))])}`,
505
+ "-c", `mcp_servers.wezard.env.WEZARD_DAEMON_BASE=${JSON.stringify(`http://127.0.0.1:${cfg.daemon.port}`)}`,
506
+ "-c", `mcp_servers.wezard.env.TMUX_PANE=${JSON.stringify(pane)}`,
507
+ "-c", `mcp_servers.wezard.env.CODEX_THREAD_ID=${JSON.stringify(sessionId)}`,
508
+ ] : []),
509
+ ...codexApprovalArgs,
510
+ ...(backend.name === "codex" && effort ? ["-c", `model_reasoning_effort=${JSON.stringify(effort)}`] : []),
511
+ ...(backend.name === "codex" && systemPrompt ? ["-c", `developer_instructions=${JSON.stringify(systemPrompt)}`] : []),
437
512
  ...(flagModel ? [backend.modelFlag, flagModel] : []),
438
- ...(effortArg ? [backend.effortFlag, effortArg] : []),
439
- ...cfg.wrc.extraArgs,
513
+ ...(effortArg && backend.effortFlag ? [backend.effortFlag, effortArg] : []),
514
+ ...cfg.wrc.extraArgs.filter((arg) => backend.name !== "codex" || !arg.startsWith("--disallowedTools")),
515
+ ...codexSandboxArgs,
440
516
  ].map(shQuote);
441
- const cmd = [...envPrefix, backend.bin, ...argv, charter].filter(Boolean).join(" ");
517
+ const cmd = [...envPrefix, shQuote(backend.bin), ...argv, charter].filter(Boolean).join(" ");
442
518
  // Old tmux couldn't set the pane's start-dir via `-c`; cd into it first.
443
519
  return `${supportsC ? cmd : `cd ${shQuote(cwd)} && ${cmd}`}${EXIT_TAIL}`;
444
520
  };
@@ -449,9 +525,20 @@ export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, sessionId: fr
449
525
  if ("reason" in opened)
450
526
  return { ok: false, reason: opened.reason };
451
527
  const { pane } = opened;
452
- const line = commandFor(flagModel, retry);
528
+ const fullCommand = commandFor(flagModel, retry, pane);
529
+ // PTY canonical input truncates long hook/TOML arguments at ~4 KiB.
530
+ // Send only a short script invocation through the interactive shell.
531
+ const script = backend.name === "codex" ? join(tmpdir(), `wezard-codex-${randomUUID()}.sh`) : undefined;
532
+ if (script)
533
+ writeFileSync(script, `${fullCommand}\n`, { mode: 0o600, flag: "wx" });
534
+ const line = script ? `/bin/sh ${shQuote(script)}` : fullCommand;
453
535
  const sent = await runTmux(["send-keys", "-t", pane, line, "Enter"]);
454
536
  if (!sent.ok) {
537
+ if (script)
538
+ try {
539
+ unlinkSync(script);
540
+ }
541
+ catch { /* already removed */ }
455
542
  // Kill only this window/pane, never the shared session.
456
543
  await runTmux(["kill-pane", "-t", pane]);
457
544
  return { ok: false, reason: `tmux send-keys failed: ${sent.stderr.trim() || sent.code}` };
@@ -460,7 +547,17 @@ export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, sessionId: fr
460
547
  // claude does NOT create the transcript jsonl until it processes the first
461
548
  // user input, so we don't wait for the file — mirror tail tolerates a
462
549
  // missing jsonl and starts emitting once claude writes the first line.
463
- const tui = await waitForTuiReady(pane, line, backend, log);
550
+ let tui;
551
+ try {
552
+ tui = await waitForTuiReady(pane, line, backend, cwd, log);
553
+ }
554
+ finally {
555
+ if (script)
556
+ try {
557
+ unlinkSync(script);
558
+ }
559
+ catch { /* already removed */ }
560
+ }
464
561
  if (tui.exited)
465
562
  return { ok: true, pane, ready: false, failure: tui.exited };
466
563
  const unknown = !!flagModel && tui.ready && modelNotRecognized(await capturePaneBottom(pane, "-"), flagModel);
@@ -513,6 +610,14 @@ export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, sessionId: fr
513
610
  }
514
611
  if (launchFailure)
515
612
  modelWarning = `${launchFailure}; ${modelWarning ?? "已不带 --model 重起并改走 /model 选择器"}`;
613
+ if (backend.name === "codex") {
614
+ if (!landed.ready || !existsSync(jsonlPath)) {
615
+ const startupScreen = await capturePaneBottom(tmuxPane, 20);
616
+ await runTmux(["kill-pane", "-t", tmuxPane]);
617
+ return { ok: false, reason: `Codex pane did not resume its prepared session. ${startupScreen.slice(-500)}` };
618
+ }
619
+ recordCodexPaneSession({ sessionId, jsonlPath, cwd, pane: tmuxPane, startedAt: Date.now() }, cfg.daemon.stateDir);
620
+ }
516
621
  log.info({ tmuxName, tmuxPane, sessionId, jsonlPath, cwd, cli: backend.name, model: resolvedModel, viaFlag, relaunched: !!launchFailure, effort: effortArg }, "spawn-tmux: ready");
517
622
  return {
518
623
  ok: true, sessionId, jsonlPath, tmuxPane, tmuxSession: tmuxName, cwd, cli: backend.name,
@@ -1 +1 @@
1
- {"version":3,"file":"spawn-tmux.js","sourceRoot":"","sources":["../../daemon/spawn-tmux.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spawn-tmux.js","sourceRoot":"","sources":["../../daemon/spawn-tmux.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { parseEffort } from "../shared/effort.js";
2
+ import { pickTier } from "../shared/model-tiers.js";
3
+ import { stewardTierOf } from "./chat-name.js";
4
+ /** All steward paths use the same backend compatibility checks as wizard spawning. */
5
+ const stewardSpec = (cfg, target, backend) => {
6
+ const pick = pickTier(cfg, stewardTierOf(cfg, target), {}, false, backend);
7
+ if (!pick.ok)
8
+ throw new Error(pick.reason); // Schema already validates steward tiers.
9
+ return { model: pick.model, effort: pick.effort };
10
+ };
11
+ /** Fresh stewards reapply their tier; an explicit model opts out of the whole tier. */
12
+ export const newStewardSpec = (cfg, target, backend, explicit = {}, carriedEffort) => {
13
+ const tier = explicit.model?.trim() ? undefined : stewardSpec(cfg, target, backend);
14
+ return {
15
+ model: explicit.model?.trim() || tier?.model || undefined,
16
+ effort: explicit.effort ?? tier?.effort ?? parseEffort(carriedEffort),
17
+ };
18
+ };
19
+ /** Resume keeps recorded overrides, filling missing fields from the compatible steward tier. */
20
+ export const resumedStewardSpec = (cfg, target, backend, recorded) => {
21
+ const tier = stewardSpec(cfg, target, backend);
22
+ return { model: recorded.model || tier.model, effort: parseEffort(recorded.effort) ?? tier.effort };
23
+ };
24
+ //# sourceMappingURL=steward-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steward-model.js","sourceRoot":"","sources":["../../daemon/steward-model.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAI/C,sFAAsF;AACtF,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,MAAc,EAAE,OAAuB,EAAa,EAAE;IACtF,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC3E,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,0CAA0C;IACtF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACpD,CAAC,CAAC;AAEF,uFAAuF;AACvF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,GAAW,EAAE,MAAc,EAAE,OAAuB,EAAE,WAAsB,EAAE,EAAE,aAAsB,EAC3F,EAAE;IACb,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACpF,OAAO;QACL,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,KAAK,IAAI,SAAS;QACzD,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,IAAI,EAAE,MAAM,IAAI,WAAW,CAAC,aAAa,CAAC;KACtE,CAAC;AACJ,CAAC,CAAC;AAEF,gGAAgG;AAChG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,GAAW,EAAE,MAAc,EAAE,OAAuB,EAAE,QAA6C,EACxF,EAAE;IACb,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;AACtG,CAAC,CAAC"}
@@ -243,6 +243,11 @@ export const startSubagentWatch = (deps) => {
243
243
  watchedDir = dir;
244
244
  try {
245
245
  watcher = watch(dir, { persistent: false }, () => scan());
246
+ const active = watcher;
247
+ active.on("error", (err) => {
248
+ active.close();
249
+ log.warn({ err: err.message }, "subagent watch failed; relying on poll");
250
+ });
246
251
  }
247
252
  catch {
248
253
  watcher = undefined;