oh-my-codex 0.12.0 → 0.12.2

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 (89) hide show
  1. package/Cargo.lock +5 -5
  2. package/Cargo.toml +1 -1
  3. package/README.md +7 -0
  4. package/dist/cli/__tests__/cleanup.test.js +15 -0
  5. package/dist/cli/__tests__/cleanup.test.js.map +1 -1
  6. package/dist/cli/__tests__/index.test.js +147 -2
  7. package/dist/cli/__tests__/index.test.js.map +1 -1
  8. package/dist/cli/__tests__/launch-fallback.test.js +95 -1
  9. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  10. package/dist/cli/cleanup.d.ts.map +1 -1
  11. package/dist/cli/cleanup.js +6 -3
  12. package/dist/cli/cleanup.js.map +1 -1
  13. package/dist/cli/index.d.ts +18 -1
  14. package/dist/cli/index.d.ts.map +1 -1
  15. package/dist/cli/index.js +178 -23
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/hooks/__tests__/agents-overlay.test.js +18 -0
  18. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  19. package/dist/hooks/__tests__/keyword-detector.test.js +156 -1
  20. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  21. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +56 -2
  22. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  23. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  24. package/dist/hooks/agents-overlay.js +25 -3
  25. package/dist/hooks/agents-overlay.js.map +1 -1
  26. package/dist/hooks/keyword-detector.d.ts +5 -1
  27. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  28. package/dist/hooks/keyword-detector.js +104 -6
  29. package/dist/hooks/keyword-detector.js.map +1 -1
  30. package/dist/hud/__tests__/render.test.js +6 -0
  31. package/dist/hud/__tests__/render.test.js.map +1 -1
  32. package/dist/hud/__tests__/state.test.js +55 -1
  33. package/dist/hud/__tests__/state.test.js.map +1 -1
  34. package/dist/hud/render.d.ts.map +1 -1
  35. package/dist/hud/render.js +8 -3
  36. package/dist/hud/render.js.map +1 -1
  37. package/dist/hud/state.d.ts.map +1 -1
  38. package/dist/hud/state.js +71 -9
  39. package/dist/hud/state.js.map +1 -1
  40. package/dist/hud/types.d.ts +2 -2
  41. package/dist/hud/types.d.ts.map +1 -1
  42. package/dist/mcp/__tests__/state-server.test.js +82 -0
  43. package/dist/mcp/__tests__/state-server.test.js.map +1 -1
  44. package/dist/mcp/state-server.d.ts +4 -4
  45. package/dist/mcp/state-server.d.ts.map +1 -1
  46. package/dist/mcp/state-server.js +35 -0
  47. package/dist/mcp/state-server.js.map +1 -1
  48. package/dist/scripts/__tests__/codex-native-hook.test.js +336 -6
  49. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  50. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  51. package/dist/scripts/codex-native-hook.js +221 -23
  52. package/dist/scripts/codex-native-hook.js.map +1 -1
  53. package/dist/scripts/notify-fallback-watcher.js +60 -3
  54. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  55. package/dist/state/__tests__/skill-active.test.d.ts +2 -0
  56. package/dist/state/__tests__/skill-active.test.d.ts.map +1 -0
  57. package/dist/state/__tests__/skill-active.test.js +84 -0
  58. package/dist/state/__tests__/skill-active.test.js.map +1 -0
  59. package/dist/state/skill-active.d.ts +55 -0
  60. package/dist/state/skill-active.d.ts.map +1 -0
  61. package/dist/state/skill-active.js +179 -0
  62. package/dist/state/skill-active.js.map +1 -0
  63. package/dist/team/__tests__/runtime-cli.test.js +85 -0
  64. package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
  65. package/dist/team/__tests__/runtime.test.js +241 -7
  66. package/dist/team/__tests__/runtime.test.js.map +1 -1
  67. package/dist/team/__tests__/state.test.js +7 -0
  68. package/dist/team/__tests__/state.test.js.map +1 -1
  69. package/dist/team/__tests__/tmux-session.test.js +143 -0
  70. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  71. package/dist/team/runtime-cli.d.ts +15 -0
  72. package/dist/team/runtime-cli.d.ts.map +1 -1
  73. package/dist/team/runtime-cli.js +37 -20
  74. package/dist/team/runtime-cli.js.map +1 -1
  75. package/dist/team/runtime.d.ts +1 -0
  76. package/dist/team/runtime.d.ts.map +1 -1
  77. package/dist/team/runtime.js +16 -8
  78. package/dist/team/runtime.js.map +1 -1
  79. package/dist/team/state/mailbox.d.ts.map +1 -1
  80. package/dist/team/state/mailbox.js +6 -0
  81. package/dist/team/state/mailbox.js.map +1 -1
  82. package/dist/team/tmux-session.d.ts.map +1 -1
  83. package/dist/team/tmux-session.js +32 -4
  84. package/dist/team/tmux-session.js.map +1 -1
  85. package/package.json +1 -1
  86. package/prompts/information-architect.md +15 -102
  87. package/src/scripts/__tests__/codex-native-hook.test.ts +421 -6
  88. package/src/scripts/codex-native-hook.ts +287 -25
  89. package/src/scripts/notify-fallback-watcher.ts +62 -5
@@ -10,6 +10,7 @@ import { existsSync } from "fs";
10
10
  import { join } from "path";
11
11
  import { getAllScopedStatePaths, getReadScopedStateDirs, getReadScopedStatePaths, resolveStateScope, getStateDir, getStatePath, resolveWorkingDirectoryForState, validateSessionId, } from "./state-paths.js";
12
12
  import { withModeRuntimeContext } from "../state/mode-state-context.js";
13
+ import { SKILL_ACTIVE_STATE_MODE, readSkillActiveState, syncCanonicalSkillStateForMode, writeSkillActiveStateCopies, } from "../state/skill-active.js";
13
14
  import { RALPH_PHASES, validateAndNormalizeRalphState, } from "../ralph/contract.js";
14
15
  import { ensureCanonicalRalphArtifacts } from "../ralph/persistence.js";
15
16
  import { autoStartStdioMcpServer } from "./bootstrap.js";
@@ -22,6 +23,7 @@ const SUPPORTED_MODES = [
22
23
  "ultraqa",
23
24
  "ralplan",
24
25
  "deep-interview",
26
+ "skill-active",
25
27
  ];
26
28
  const STATE_TOOL_NAMES = new Set([
27
29
  "state_read",
@@ -314,6 +316,22 @@ export async function handleStateToolCall(request) {
314
316
  isError: true,
315
317
  };
316
318
  }
319
+ if (mode === SKILL_ACTIVE_STATE_MODE) {
320
+ const state = await readSkillActiveState(path);
321
+ if (state) {
322
+ await writeSkillActiveStateCopies(cwd, state, effectiveSessionId);
323
+ }
324
+ }
325
+ else {
326
+ const data = JSON.parse(await readFile(path, "utf-8"));
327
+ await syncCanonicalSkillStateForMode({
328
+ cwd,
329
+ mode,
330
+ active: data.active === true,
331
+ currentPhase: typeof data.current_phase === "string" ? data.current_phase : undefined,
332
+ sessionId: effectiveSessionId,
333
+ });
334
+ }
317
335
  return {
318
336
  content: [
319
337
  {
@@ -331,6 +349,14 @@ export async function handleStateToolCall(request) {
331
349
  if (existsSync(path)) {
332
350
  await unlink(path);
333
351
  }
352
+ if (mode !== SKILL_ACTIVE_STATE_MODE) {
353
+ await syncCanonicalSkillStateForMode({
354
+ cwd,
355
+ mode,
356
+ active: false,
357
+ sessionId: effectiveSessionId,
358
+ });
359
+ }
334
360
  return {
335
361
  content: [
336
362
  {
@@ -348,6 +374,13 @@ export async function handleStateToolCall(request) {
348
374
  await unlink(path);
349
375
  removedPaths.push(path);
350
376
  }
377
+ if (mode !== SKILL_ACTIVE_STATE_MODE) {
378
+ await syncCanonicalSkillStateForMode({
379
+ cwd,
380
+ mode,
381
+ active: false,
382
+ });
383
+ }
351
384
  return {
352
385
  content: [
353
386
  {
@@ -376,6 +409,8 @@ export async function handleStateToolCall(request) {
376
409
  if (!f.endsWith("-state.json"))
377
410
  continue;
378
411
  const mode = f.replace("-state.json", "");
412
+ if (mode === SKILL_ACTIVE_STATE_MODE)
413
+ continue;
379
414
  if (seenModes.has(mode))
380
415
  continue;
381
416
  seenModes.add(mode);
@@ -1 +1 @@
1
- {"version":3,"file":"state-server.js","sourceRoot":"","sources":["../../src/mcp/state-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state-server.js","sourceRoot":"","sources":["../../src/mcp/state-server.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ async function writeJson(path, value) {
12
12
  await mkdir(dirname(path), { recursive: true }).catch(() => { });
13
13
  await writeFile(path, JSON.stringify(value, null, 2));
14
14
  }
15
+ const TEAM_STOP_COMMIT_GUIDANCE = " If system-generated worker auto-checkpoint commits exist, rewrite them into Lore-format final commits before merge/finalization.";
15
16
  describe("codex native hook config", () => {
16
17
  it("builds the expected managed hooks.json shape", () => {
17
18
  const config = buildManagedCodexHooksConfig("/tmp/omx");
@@ -144,11 +145,14 @@ describe("codex native hook dispatch", () => {
144
145
  assert.equal(result.omxEventName, "keyword-detector");
145
146
  assert.equal(result.skillState?.skill, "ralplan");
146
147
  assert.ok(result.outputJson, "UserPromptSubmit should emit developer context");
148
+ assert.match(JSON.stringify(result.outputJson), /skill: ralplan activated and initial state initialized at \.omx\/state\/sessions\/sess-1\/ralplan-state\.json; write subsequent updates via omx_state MCP\./);
147
149
  const statePath = join(cwd, ".omx", "state", "skill-active-state.json");
148
150
  assert.equal(existsSync(statePath), true);
149
151
  const state = JSON.parse(await readFile(statePath, "utf-8"));
150
152
  assert.equal(state.skill, "ralplan");
151
153
  assert.equal(state.active, true);
154
+ assert.equal(state.initialized_mode, "ralplan");
155
+ assert.equal(existsSync(join(cwd, ".omx", "state", "sessions", "sess-1", "ralplan-state.json")), true);
152
156
  }
153
157
  finally {
154
158
  await rm(cwd, { recursive: true, force: true });
@@ -379,7 +383,7 @@ describe("codex native hook dispatch", () => {
379
383
  assert.equal(result.omxEventName, "stop");
380
384
  assert.deepEqual(result.outputJson, {
381
385
  decision: "block",
382
- reason: "OMX team pipeline is still active (review-team) at phase team-verify; continue coordinating until the team reaches a terminal phase.",
386
+ reason: `OMX team pipeline is still active (review-team) at phase team-verify; continue coordinating until the team reaches a terminal phase.${TEAM_STOP_COMMIT_GUIDANCE}`,
383
387
  stopReason: "team_team-verify",
384
388
  systemMessage: "OMX team pipeline is still active at phase team-verify.",
385
389
  });
@@ -388,6 +392,99 @@ describe("codex native hook dispatch", () => {
388
392
  await rm(cwd, { recursive: true, force: true });
389
393
  }
390
394
  });
395
+ it("blocks Stop for a team worker with a non-terminal assigned task via native worker context", async () => {
396
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-stop-team-worker-"));
397
+ const prevTeamWorker = process.env.OMX_TEAM_WORKER;
398
+ const prevTeamStateRoot = process.env.OMX_TEAM_STATE_ROOT;
399
+ const prevLeaderCwd = process.env.OMX_TEAM_LEADER_CWD;
400
+ try {
401
+ await initTeamState("worker-stop-team", "worker stop fallback", "executor", 1, cwd, undefined, { ...process.env, OMX_SESSION_ID: "sess-stop-team-worker" });
402
+ const workerDir = join(cwd, ".omx", "state", "team", "worker-stop-team", "workers", "worker-1");
403
+ await writeJson(join(workerDir, "status.json"), {
404
+ state: "idle",
405
+ current_task_id: "1",
406
+ updated_at: new Date().toISOString(),
407
+ });
408
+ await writeJson(join(cwd, ".omx", "state", "team", "worker-stop-team", "tasks", "task-1.json"), {
409
+ id: "1",
410
+ subject: "hook task",
411
+ description: "finish hook task",
412
+ status: "in_progress",
413
+ owner: "worker-1",
414
+ created_at: new Date().toISOString(),
415
+ });
416
+ process.env.OMX_TEAM_WORKER = "worker-stop-team/worker-1";
417
+ process.env.OMX_TEAM_STATE_ROOT = join(cwd, ".omx", "state");
418
+ process.env.OMX_TEAM_LEADER_CWD = cwd;
419
+ const result = await dispatchCodexNativeHook({
420
+ hook_event_name: "Stop",
421
+ cwd: join(cwd, ".omx", "team", "worker-stop-team", "worktrees", "worker-1"),
422
+ session_id: "sess-stop-team-worker",
423
+ }, { cwd: join(cwd, ".omx", "team", "worker-stop-team", "worktrees", "worker-1") });
424
+ assert.deepEqual(result.outputJson, {
425
+ decision: "block",
426
+ reason: "OMX team worker worker-1 is still assigned non-terminal task 1 (in_progress); continue the current assigned task or report a concrete blocker before stopping.",
427
+ stopReason: "team_worker_worker-1_1_in_progress",
428
+ systemMessage: "OMX team worker worker-1 is still assigned task 1 (in_progress).",
429
+ });
430
+ }
431
+ finally {
432
+ if (typeof prevTeamWorker === "string")
433
+ process.env.OMX_TEAM_WORKER = prevTeamWorker;
434
+ else
435
+ delete process.env.OMX_TEAM_WORKER;
436
+ if (typeof prevTeamStateRoot === "string")
437
+ process.env.OMX_TEAM_STATE_ROOT = prevTeamStateRoot;
438
+ else
439
+ delete process.env.OMX_TEAM_STATE_ROOT;
440
+ if (typeof prevLeaderCwd === "string")
441
+ process.env.OMX_TEAM_LEADER_CWD = prevLeaderCwd;
442
+ else
443
+ delete process.env.OMX_TEAM_LEADER_CWD;
444
+ await rm(cwd, { recursive: true, force: true });
445
+ }
446
+ });
447
+ it("does not block Stop for a team worker when assigned task is terminal", async () => {
448
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-stop-team-worker-terminal-"));
449
+ const prevTeamWorker = process.env.OMX_TEAM_WORKER;
450
+ const prevTeamStateRoot = process.env.OMX_TEAM_STATE_ROOT;
451
+ try {
452
+ await initTeamState("worker-stop-team-terminal", "worker stop terminal fallback", "executor", 1, cwd, undefined, { ...process.env, OMX_SESSION_ID: "sess-stop-team-worker-terminal" });
453
+ const workerDir = join(cwd, ".omx", "state", "team", "worker-stop-team-terminal", "workers", "worker-1");
454
+ await writeJson(join(workerDir, "status.json"), {
455
+ state: "done",
456
+ current_task_id: "1",
457
+ updated_at: new Date().toISOString(),
458
+ });
459
+ await writeJson(join(cwd, ".omx", "state", "team", "worker-stop-team-terminal", "tasks", "task-1.json"), {
460
+ id: "1",
461
+ subject: "hook task",
462
+ description: "finish hook task",
463
+ status: "completed",
464
+ owner: "worker-1",
465
+ created_at: new Date().toISOString(),
466
+ });
467
+ process.env.OMX_TEAM_WORKER = "worker-stop-team-terminal/worker-1";
468
+ process.env.OMX_TEAM_STATE_ROOT = join(cwd, ".omx", "state");
469
+ const result = await dispatchCodexNativeHook({
470
+ hook_event_name: "Stop",
471
+ cwd,
472
+ session_id: "sess-stop-team-worker-terminal",
473
+ }, { cwd });
474
+ assert.equal(result.outputJson, null);
475
+ }
476
+ finally {
477
+ if (typeof prevTeamWorker === "string")
478
+ process.env.OMX_TEAM_WORKER = prevTeamWorker;
479
+ else
480
+ delete process.env.OMX_TEAM_WORKER;
481
+ if (typeof prevTeamStateRoot === "string")
482
+ process.env.OMX_TEAM_STATE_ROOT = prevTeamStateRoot;
483
+ else
484
+ delete process.env.OMX_TEAM_STATE_ROOT;
485
+ await rm(cwd, { recursive: true, force: true });
486
+ }
487
+ });
391
488
  it("returns Stop continuation output from canonical team state when coarse mode state is missing", async () => {
392
489
  const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-stop-team-canonical-"));
393
490
  try {
@@ -400,7 +497,38 @@ describe("codex native hook dispatch", () => {
400
497
  assert.equal(result.omxEventName, "stop");
401
498
  assert.deepEqual(result.outputJson, {
402
499
  decision: "block",
403
- reason: "OMX team pipeline is still active (canonical-team) at phase team-exec; continue coordinating until the team reaches a terminal phase.",
500
+ reason: `OMX team pipeline is still active (canonical-team) at phase team-exec; continue coordinating until the team reaches a terminal phase.${TEAM_STOP_COMMIT_GUIDANCE}`,
501
+ stopReason: "team_team-exec",
502
+ systemMessage: "OMX team pipeline is still active at phase team-exec.",
503
+ });
504
+ }
505
+ finally {
506
+ await rm(cwd, { recursive: true, force: true });
507
+ }
508
+ });
509
+ it("re-fires canonical-team Stop output for a later fresh Stop reply when coarse mode state is missing", async () => {
510
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-stop-team-canonical-refire-"));
511
+ try {
512
+ await initTeamState("canonical-team-refire", "canonical stop fallback refire", "executor", 1, cwd, undefined, { ...process.env, OMX_SESSION_ID: "sess-stop-team-canonical-refire" });
513
+ await dispatchCodexNativeHook({
514
+ hook_event_name: "Stop",
515
+ cwd,
516
+ session_id: "sess-stop-team-canonical-refire",
517
+ thread_id: "thread-stop-team-canonical-refire",
518
+ turn_id: "turn-stop-team-canonical-refire-1",
519
+ }, { cwd });
520
+ const result = await dispatchCodexNativeHook({
521
+ hook_event_name: "Stop",
522
+ cwd,
523
+ session_id: "sess-stop-team-canonical-refire",
524
+ thread_id: "thread-stop-team-canonical-refire",
525
+ turn_id: "turn-stop-team-canonical-refire-2",
526
+ stop_hook_active: true,
527
+ }, { cwd });
528
+ assert.equal(result.omxEventName, "stop");
529
+ assert.deepEqual(result.outputJson, {
530
+ decision: "block",
531
+ reason: `OMX team pipeline is still active (canonical-team-refire) at phase team-exec; continue coordinating until the team reaches a terminal phase.${TEAM_STOP_COMMIT_GUIDANCE}`,
404
532
  stopReason: "team_team-exec",
405
533
  systemMessage: "OMX team pipeline is still active at phase team-exec.",
406
534
  });
@@ -453,7 +581,7 @@ describe("codex native hook dispatch", () => {
453
581
  assert.equal(result.omxEventName, "stop");
454
582
  assert.deepEqual(result.outputJson, {
455
583
  decision: "block",
456
- reason: "OMX team pipeline is still active (legacy-team) at phase team-exec; continue coordinating until the team reaches a terminal phase.",
584
+ reason: `OMX team pipeline is still active (legacy-team) at phase team-exec; continue coordinating until the team reaches a terminal phase.${TEAM_STOP_COMMIT_GUIDANCE}`,
457
585
  stopReason: "team_team-exec",
458
586
  systemMessage: "OMX team pipeline is still active at phase team-exec.",
459
587
  });
@@ -477,7 +605,7 @@ describe("codex native hook dispatch", () => {
477
605
  assert.equal(result.omxEventName, "stop");
478
606
  assert.deepEqual(result.outputJson, {
479
607
  decision: "block",
480
- reason: "OMX team pipeline is still active (canonical-root-team) at phase team-exec; continue coordinating until the team reaches a terminal phase.",
608
+ reason: `OMX team pipeline is still active (canonical-root-team) at phase team-exec; continue coordinating until the team reaches a terminal phase.${TEAM_STOP_COMMIT_GUIDANCE}`,
481
609
  stopReason: "team_team-exec",
482
610
  systemMessage: "OMX team pipeline is still active at phase team-exec.",
483
611
  });
@@ -509,7 +637,7 @@ describe("codex native hook dispatch", () => {
509
637
  assert.equal(result.omxEventName, "stop");
510
638
  assert.deepEqual(result.outputJson, {
511
639
  decision: "block",
512
- reason: "OMX team pipeline is still active (env-root-team) at phase team-exec; continue coordinating until the team reaches a terminal phase.",
640
+ reason: `OMX team pipeline is still active (env-root-team) at phase team-exec; continue coordinating until the team reaches a terminal phase.${TEAM_STOP_COMMIT_GUIDANCE}`,
513
641
  stopReason: "team_team-exec",
514
642
  systemMessage: "OMX team pipeline is still active at phase team-exec.",
515
643
  });
@@ -626,6 +754,30 @@ describe("codex native hook dispatch", () => {
626
754
  await rm(cwd, { recursive: true, force: true });
627
755
  }
628
756
  });
757
+ it("ignores root skill-active fallback from a different thread when evaluating Stop", async () => {
758
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-stop-foreign-thread-"));
759
+ try {
760
+ const stateDir = join(cwd, ".omx", "state");
761
+ await mkdir(stateDir, { recursive: true });
762
+ await writeJson(join(stateDir, "skill-active-state.json"), {
763
+ active: true,
764
+ skill: "deep-interview",
765
+ phase: "planning",
766
+ session_id: "",
767
+ thread_id: "other-thread",
768
+ });
769
+ const result = await dispatchCodexNativeHook({
770
+ hook_event_name: "Stop",
771
+ cwd,
772
+ session_id: "sess-stop-main",
773
+ thread_id: "main-thread",
774
+ }, { cwd });
775
+ assert.equal(result.outputJson, null);
776
+ }
777
+ finally {
778
+ await rm(cwd, { recursive: true, force: true });
779
+ }
780
+ });
629
781
  it("returns Stop continuation output while Ralph is active", async () => {
630
782
  const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-stop-"));
631
783
  try {
@@ -697,15 +849,25 @@ describe("codex native hook dispatch", () => {
697
849
  await rm(cwd, { recursive: true, force: true });
698
850
  }
699
851
  });
700
- it("does not auto-nudge again when Stop already continued once", async () => {
852
+ it("suppresses duplicate native auto-nudge replays for the same Stop reply", async () => {
701
853
  const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-auto-nudge-once-"));
702
854
  try {
703
855
  const stateDir = join(cwd, ".omx", "state");
704
856
  await mkdir(stateDir, { recursive: true });
857
+ await dispatchCodexNativeHook({
858
+ hook_event_name: "Stop",
859
+ cwd,
860
+ session_id: "sess-stop-auto-once",
861
+ thread_id: "thread-stop-auto",
862
+ turn_id: "turn-stop-auto-1",
863
+ last_assistant_message: "Would you like me to continue?",
864
+ }, { cwd });
705
865
  const result = await dispatchCodexNativeHook({
706
866
  hook_event_name: "Stop",
707
867
  cwd,
708
868
  session_id: "sess-stop-auto-once",
869
+ thread_id: "thread-stop-auto",
870
+ turn_id: "turn-stop-auto-1",
709
871
  stop_hook_active: true,
710
872
  last_assistant_message: "Would you like me to continue?",
711
873
  }, { cwd });
@@ -716,5 +878,173 @@ describe("codex native hook dispatch", () => {
716
878
  await rm(cwd, { recursive: true, force: true });
717
879
  }
718
880
  });
881
+ it("re-fires native auto-nudge for a later fresh Stop reply even when stop_hook_active is true", async () => {
882
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-auto-nudge-refire-"));
883
+ try {
884
+ const stateDir = join(cwd, ".omx", "state");
885
+ await mkdir(stateDir, { recursive: true });
886
+ await dispatchCodexNativeHook({
887
+ hook_event_name: "Stop",
888
+ cwd,
889
+ session_id: "sess-stop-auto-refire",
890
+ thread_id: "thread-stop-auto-refire",
891
+ turn_id: "turn-stop-auto-refire-1",
892
+ last_assistant_message: "Would you like me to continue?",
893
+ }, { cwd });
894
+ const result = await dispatchCodexNativeHook({
895
+ hook_event_name: "Stop",
896
+ cwd,
897
+ session_id: "sess-stop-auto-refire",
898
+ thread_id: "thread-stop-auto-refire",
899
+ turn_id: "turn-stop-auto-refire-2",
900
+ stop_hook_active: true,
901
+ last_assistant_message: "If you want, I can keep going and finish the cleanup.",
902
+ }, { cwd });
903
+ assert.equal(result.omxEventName, "stop");
904
+ assert.deepEqual(result.outputJson, {
905
+ decision: "block",
906
+ reason: "yes, proceed",
907
+ stopReason: "auto_nudge",
908
+ systemMessage: "OMX native Stop detected a stall/permission-style handoff and continued the turn automatically.",
909
+ });
910
+ }
911
+ finally {
912
+ await rm(cwd, { recursive: true, force: true });
913
+ }
914
+ });
915
+ it("suppresses native auto-nudge when only the deep-interview input lock is active", async () => {
916
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-auto-nudge-deep-interview-lock-"));
917
+ try {
918
+ const stateDir = join(cwd, ".omx", "state");
919
+ await mkdir(join(stateDir, "sessions", "sess-stop-auto-lock"), { recursive: true });
920
+ await writeJson(join(stateDir, "session.json"), { session_id: "sess-stop-auto-lock" });
921
+ await writeJson(join(stateDir, "sessions", "sess-stop-auto-lock", "skill-active-state.json"), {
922
+ version: 1,
923
+ active: true,
924
+ skill: "deep-interview",
925
+ phase: "planning",
926
+ input_lock: {
927
+ active: true,
928
+ scope: "deep-interview-auto-approval",
929
+ blocked_inputs: ["yes", "proceed"],
930
+ message: "Deep interview is active; auto-approval shortcuts are blocked until the interview finishes.",
931
+ },
932
+ });
933
+ const result = await dispatchCodexNativeHook({
934
+ hook_event_name: "Stop",
935
+ cwd,
936
+ session_id: "sess-stop-auto-lock",
937
+ thread_id: "thread-stop-auto-lock",
938
+ turn_id: "turn-stop-auto-lock-1",
939
+ last_assistant_message: "Would you like me to continue with the next step?",
940
+ }, { cwd });
941
+ assert.equal(result.omxEventName, "stop");
942
+ assert.deepEqual(result.outputJson, {
943
+ decision: "block",
944
+ reason: "OMX skill deep-interview is still active (phase: planning); continue until the current deep-interview workflow reaches a terminal state.",
945
+ stopReason: "skill_deep-interview_planning",
946
+ systemMessage: "OMX skill deep-interview is still active (phase: planning).",
947
+ });
948
+ }
949
+ finally {
950
+ await rm(cwd, { recursive: true, force: true });
951
+ }
952
+ });
953
+ it("suppresses native auto-nudge re-fire while session-scoped deep-interview state is still active", async () => {
954
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-auto-nudge-deep-interview-state-"));
955
+ try {
956
+ const stateDir = join(cwd, ".omx", "state");
957
+ await mkdir(join(stateDir, "sessions", "sess-stop-auto-interview"), { recursive: true });
958
+ await writeJson(join(stateDir, "session.json"), { session_id: "sess-stop-auto-interview" });
959
+ await writeJson(join(stateDir, "sessions", "sess-stop-auto-interview", "deep-interview-state.json"), {
960
+ active: true,
961
+ mode: "deep-interview",
962
+ current_phase: "intent-first",
963
+ });
964
+ const result = await dispatchCodexNativeHook({
965
+ hook_event_name: "Stop",
966
+ cwd,
967
+ session_id: "sess-stop-auto-interview",
968
+ thread_id: "thread-stop-auto-interview",
969
+ turn_id: "turn-stop-auto-interview-2",
970
+ stop_hook_active: true,
971
+ last_assistant_message: "If you want, I can keep going from here.",
972
+ }, { cwd });
973
+ assert.equal(result.omxEventName, "stop");
974
+ assert.equal(result.outputJson, null);
975
+ }
976
+ finally {
977
+ await rm(cwd, { recursive: true, force: true });
978
+ }
979
+ });
980
+ it("suppresses native auto-nudge when deep-interview mode state is active without a scoped skill state", async () => {
981
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-auto-nudge-deep-interview-mode-"));
982
+ try {
983
+ const stateDir = join(cwd, ".omx", "state");
984
+ await mkdir(stateDir, { recursive: true });
985
+ await writeJson(join(stateDir, "deep-interview-state.json"), {
986
+ active: true,
987
+ mode: "deep-interview",
988
+ current_phase: "intent-first",
989
+ });
990
+ const result = await dispatchCodexNativeHook({
991
+ hook_event_name: "Stop",
992
+ cwd,
993
+ session_id: "sess-stop-auto-mode",
994
+ thread_id: "thread-stop-auto-mode",
995
+ turn_id: "turn-stop-auto-mode-1",
996
+ last_assistant_message: "Would you like me to continue with the next step?",
997
+ }, { cwd });
998
+ assert.equal(result.omxEventName, "stop");
999
+ assert.equal(result.outputJson, null);
1000
+ }
1001
+ finally {
1002
+ await rm(cwd, { recursive: true, force: true });
1003
+ }
1004
+ });
1005
+ it("re-fires team Stop output for a later fresh Stop reply while the team is still active", async () => {
1006
+ const cwd = await mkdtemp(join(tmpdir(), "omx-native-hook-stop-team-refire-"));
1007
+ try {
1008
+ const stateDir = join(cwd, ".omx", "state");
1009
+ await mkdir(stateDir, { recursive: true });
1010
+ await writeJson(join(stateDir, "team-state.json"), {
1011
+ active: true,
1012
+ current_phase: "team-exec",
1013
+ team_name: "review-team",
1014
+ });
1015
+ await writeJson(join(stateDir, "team", "review-team", "phase.json"), {
1016
+ current_phase: "team-verify",
1017
+ max_fix_attempts: 3,
1018
+ current_fix_attempt: 0,
1019
+ transitions: [],
1020
+ updated_at: new Date().toISOString(),
1021
+ });
1022
+ await dispatchCodexNativeHook({
1023
+ hook_event_name: "Stop",
1024
+ cwd,
1025
+ session_id: "sess-stop-team-refire",
1026
+ thread_id: "thread-stop-team-refire",
1027
+ turn_id: "turn-stop-team-refire-1",
1028
+ }, { cwd });
1029
+ const result = await dispatchCodexNativeHook({
1030
+ hook_event_name: "Stop",
1031
+ cwd,
1032
+ session_id: "sess-stop-team-refire",
1033
+ thread_id: "thread-stop-team-refire",
1034
+ turn_id: "turn-stop-team-refire-2",
1035
+ stop_hook_active: true,
1036
+ }, { cwd });
1037
+ assert.equal(result.omxEventName, "stop");
1038
+ assert.deepEqual(result.outputJson, {
1039
+ decision: "block",
1040
+ reason: `OMX team pipeline is still active (review-team) at phase team-verify; continue coordinating until the team reaches a terminal phase.${TEAM_STOP_COMMIT_GUIDANCE}`,
1041
+ stopReason: "team_team-verify",
1042
+ systemMessage: "OMX team pipeline is still active at phase team-verify.",
1043
+ });
1044
+ }
1045
+ finally {
1046
+ await rm(cwd, { recursive: true, force: true });
1047
+ }
1048
+ });
719
1049
  });
720
1050
  //# sourceMappingURL=codex-native-hook.test.js.map