oh-my-codex 0.18.9 → 0.18.11

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 (195) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +6 -6
  4. package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts +2 -0
  5. package/dist/autopilot/__tests__/deep-interview-gate.test.d.ts.map +1 -0
  6. package/dist/autopilot/__tests__/deep-interview-gate.test.js +215 -0
  7. package/dist/autopilot/__tests__/deep-interview-gate.test.js.map +1 -0
  8. package/dist/autopilot/__tests__/ralplan-gate.test.js +148 -0
  9. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
  10. package/dist/autopilot/deep-interview-gate.d.ts.map +1 -1
  11. package/dist/autopilot/deep-interview-gate.js +140 -0
  12. package/dist/autopilot/deep-interview-gate.js.map +1 -1
  13. package/dist/catalog/__tests__/schema.test.js +6 -0
  14. package/dist/catalog/__tests__/schema.test.js.map +1 -1
  15. package/dist/cli/__tests__/auth.test.js +36 -3
  16. package/dist/cli/__tests__/auth.test.js.map +1 -1
  17. package/dist/cli/__tests__/codex-feature-probe.test.d.ts +2 -0
  18. package/dist/cli/__tests__/codex-feature-probe.test.d.ts.map +1 -0
  19. package/dist/cli/__tests__/codex-feature-probe.test.js +46 -0
  20. package/dist/cli/__tests__/codex-feature-probe.test.js.map +1 -0
  21. package/dist/cli/__tests__/doctor-spark-routing.test.d.ts +2 -0
  22. package/dist/cli/__tests__/doctor-spark-routing.test.d.ts.map +1 -0
  23. package/dist/cli/__tests__/doctor-spark-routing.test.js +79 -0
  24. package/dist/cli/__tests__/doctor-spark-routing.test.js.map +1 -0
  25. package/dist/cli/__tests__/doctor-warning-copy.test.js +2 -0
  26. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  27. package/dist/cli/__tests__/explore.test.js +47 -1175
  28. package/dist/cli/__tests__/explore.test.js.map +1 -1
  29. package/dist/cli/__tests__/index.test.js +276 -6
  30. package/dist/cli/__tests__/index.test.js.map +1 -1
  31. package/dist/cli/__tests__/launch-fallback.test.js +19 -5
  32. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  33. package/dist/cli/__tests__/nested-help-routing.test.js +1 -1
  34. package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
  35. package/dist/cli/__tests__/package-bin-contract.test.js +19 -6
  36. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
  37. package/dist/cli/__tests__/setup-refresh.test.js +6 -2
  38. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  39. package/dist/cli/__tests__/sparkshell-packaging.test.js +45 -2
  40. package/dist/cli/__tests__/sparkshell-packaging.test.js.map +1 -1
  41. package/dist/cli/__tests__/team-decompose.test.js +10 -5
  42. package/dist/cli/__tests__/team-decompose.test.js.map +1 -1
  43. package/dist/cli/__tests__/team.test.js +45 -1
  44. package/dist/cli/__tests__/team.test.js.map +1 -1
  45. package/dist/cli/__tests__/ultragoal.test.js +75 -0
  46. package/dist/cli/__tests__/ultragoal.test.js.map +1 -1
  47. package/dist/cli/auth.d.ts.map +1 -1
  48. package/dist/cli/auth.js +25 -1
  49. package/dist/cli/auth.js.map +1 -1
  50. package/dist/cli/codex-feature-probe.d.ts +5 -2
  51. package/dist/cli/codex-feature-probe.d.ts.map +1 -1
  52. package/dist/cli/codex-feature-probe.js +25 -9
  53. package/dist/cli/codex-feature-probe.js.map +1 -1
  54. package/dist/cli/doctor.d.ts +17 -0
  55. package/dist/cli/doctor.d.ts.map +1 -1
  56. package/dist/cli/doctor.js +121 -0
  57. package/dist/cli/doctor.js.map +1 -1
  58. package/dist/cli/explore.d.ts +2 -21
  59. package/dist/cli/explore.d.ts.map +1 -1
  60. package/dist/cli/explore.js +25 -624
  61. package/dist/cli/explore.js.map +1 -1
  62. package/dist/cli/index.d.ts +34 -2
  63. package/dist/cli/index.d.ts.map +1 -1
  64. package/dist/cli/index.js +166 -89
  65. package/dist/cli/index.js.map +1 -1
  66. package/dist/cli/setup.d.ts.map +1 -1
  67. package/dist/cli/setup.js +9 -1
  68. package/dist/cli/setup.js.map +1 -1
  69. package/dist/cli/team.d.ts +4 -0
  70. package/dist/cli/team.d.ts.map +1 -1
  71. package/dist/cli/team.js +43 -4
  72. package/dist/cli/team.js.map +1 -1
  73. package/dist/cli/ultragoal.d.ts.map +1 -1
  74. package/dist/cli/ultragoal.js +29 -0
  75. package/dist/cli/ultragoal.js.map +1 -1
  76. package/dist/hooks/__tests__/agents-overlay.test.js +8 -10
  77. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  78. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +15 -0
  79. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
  80. package/dist/hooks/__tests__/deep-interview-contract.test.js +16 -0
  81. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  82. package/dist/hooks/__tests__/explore-routing.test.js +5 -8
  83. package/dist/hooks/__tests__/explore-routing.test.js.map +1 -1
  84. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js +6 -6
  85. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js.map +1 -1
  86. package/dist/hooks/__tests__/skill-guidance-contract.test.js +14 -5
  87. package/dist/hooks/__tests__/skill-guidance-contract.test.js.map +1 -1
  88. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  89. package/dist/hooks/agents-overlay.js +2 -1
  90. package/dist/hooks/agents-overlay.js.map +1 -1
  91. package/dist/hooks/explore-routing.d.ts +1 -1
  92. package/dist/hooks/explore-routing.d.ts.map +1 -1
  93. package/dist/hooks/explore-routing.js +3 -8
  94. package/dist/hooks/explore-routing.js.map +1 -1
  95. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js +112 -1
  96. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js.map +1 -1
  97. package/dist/hooks/extensibility/plugin-runner-stdin.d.ts +2 -0
  98. package/dist/hooks/extensibility/plugin-runner-stdin.d.ts.map +1 -0
  99. package/dist/hooks/extensibility/plugin-runner-stdin.js +16 -0
  100. package/dist/hooks/extensibility/plugin-runner-stdin.js.map +1 -0
  101. package/dist/hooks/extensibility/plugin-runner.js +2 -4
  102. package/dist/hooks/extensibility/plugin-runner.js.map +1 -1
  103. package/dist/hud/__tests__/index.test.js +23 -2
  104. package/dist/hud/__tests__/index.test.js.map +1 -1
  105. package/dist/hud/__tests__/reconcile.test.js +367 -1
  106. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  107. package/dist/hud/__tests__/tmux.test.js +118 -7
  108. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  109. package/dist/hud/constants.d.ts +10 -0
  110. package/dist/hud/constants.d.ts.map +1 -1
  111. package/dist/hud/constants.js +19 -0
  112. package/dist/hud/constants.js.map +1 -1
  113. package/dist/hud/index.d.ts +6 -1
  114. package/dist/hud/index.d.ts.map +1 -1
  115. package/dist/hud/index.js +12 -3
  116. package/dist/hud/index.js.map +1 -1
  117. package/dist/hud/reconcile.d.ts +10 -2
  118. package/dist/hud/reconcile.d.ts.map +1 -1
  119. package/dist/hud/reconcile.js +78 -30
  120. package/dist/hud/reconcile.js.map +1 -1
  121. package/dist/hud/tmux.d.ts +14 -1
  122. package/dist/hud/tmux.d.ts.map +1 -1
  123. package/dist/hud/tmux.js +129 -15
  124. package/dist/hud/tmux.js.map +1 -1
  125. package/dist/mcp/wiki-server.d.ts +3 -3
  126. package/dist/ralplan/consensus-gate.js +9 -1
  127. package/dist/ralplan/consensus-gate.js.map +1 -1
  128. package/dist/scripts/__tests__/codex-native-hook.test.js +170 -17
  129. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  130. package/dist/scripts/__tests__/run-test-files.test.js +115 -1
  131. package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
  132. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  133. package/dist/scripts/codex-native-hook.js +74 -11
  134. package/dist/scripts/codex-native-hook.js.map +1 -1
  135. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
  136. package/dist/scripts/notify-hook/team-worker-stop.js +54 -21
  137. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
  138. package/dist/scripts/run-test-files.js +218 -160
  139. package/dist/scripts/run-test-files.js.map +1 -1
  140. package/dist/state/__tests__/operations.test.js +463 -0
  141. package/dist/state/__tests__/operations.test.js.map +1 -1
  142. package/dist/team/__tests__/delivery-log.test.js +18 -0
  143. package/dist/team/__tests__/delivery-log.test.js.map +1 -1
  144. package/dist/team/__tests__/runtime.test.js +48 -0
  145. package/dist/team/__tests__/runtime.test.js.map +1 -1
  146. package/dist/team/__tests__/tmux-session.test.js +107 -0
  147. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  148. package/dist/team/__tests__/tmux-test-fixture.d.ts.map +1 -1
  149. package/dist/team/__tests__/tmux-test-fixture.js +14 -2
  150. package/dist/team/__tests__/tmux-test-fixture.js.map +1 -1
  151. package/dist/team/__tests__/tmux-test-fixture.test.js +1 -0
  152. package/dist/team/__tests__/tmux-test-fixture.test.js.map +1 -1
  153. package/dist/team/__tests__/worker-bootstrap.test.js +54 -1
  154. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  155. package/dist/team/delivery-log.d.ts +1 -1
  156. package/dist/team/delivery-log.d.ts.map +1 -1
  157. package/dist/team/delivery-log.js.map +1 -1
  158. package/dist/team/repo-aware-decomposition.d.ts +4 -0
  159. package/dist/team/repo-aware-decomposition.d.ts.map +1 -1
  160. package/dist/team/repo-aware-decomposition.js.map +1 -1
  161. package/dist/team/runtime.d.ts.map +1 -1
  162. package/dist/team/runtime.js +78 -9
  163. package/dist/team/runtime.js.map +1 -1
  164. package/dist/team/tmux-session.d.ts +1 -0
  165. package/dist/team/tmux-session.d.ts.map +1 -1
  166. package/dist/team/tmux-session.js +16 -5
  167. package/dist/team/tmux-session.js.map +1 -1
  168. package/dist/team/ultragoal-context.d.ts +12 -0
  169. package/dist/team/ultragoal-context.d.ts.map +1 -1
  170. package/dist/team/ultragoal-context.js +32 -8
  171. package/dist/team/ultragoal-context.js.map +1 -1
  172. package/dist/utils/__tests__/paths.test.js +23 -0
  173. package/dist/utils/__tests__/paths.test.js.map +1 -1
  174. package/dist/utils/paths.d.ts.map +1 -1
  175. package/dist/utils/paths.js +4 -2
  176. package/dist/utils/paths.js.map +1 -1
  177. package/dist/utils/toml.d.ts +4 -0
  178. package/dist/utils/toml.d.ts.map +1 -0
  179. package/dist/utils/toml.js +75 -0
  180. package/dist/utils/toml.js.map +1 -0
  181. package/package.json +1 -1
  182. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  183. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +3 -0
  184. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +34 -0
  185. package/plugins/oh-my-codex/skills/ultrawork/SKILL.md +32 -17
  186. package/skills/autopilot/SKILL.md +3 -0
  187. package/skills/deep-interview/SKILL.md +34 -0
  188. package/skills/ultrawork/SKILL.md +32 -17
  189. package/src/scripts/__tests__/codex-native-hook.test.ts +218 -28
  190. package/src/scripts/__tests__/run-test-files.test.ts +138 -2
  191. package/src/scripts/codex-native-hook.ts +80 -10
  192. package/src/scripts/notify-hook/team-worker-stop.ts +58 -18
  193. package/src/scripts/run-test-files.ts +229 -150
  194. package/templates/AGENTS.md +39 -199
  195. package/templates/catalog-manifest.json +7 -0
package/Cargo.lock CHANGED
@@ -32,7 +32,7 @@ checksum = "6b947ae49db0d222b1dbc6b113ce7248a3fc3a6ca21b696717bfc000ba4484d8"
32
32
 
33
33
  [[package]]
34
34
  name = "omx-api"
35
- version = "0.18.9"
35
+ version = "0.18.11"
36
36
  dependencies = [
37
37
  "serde",
38
38
  "serde_json",
@@ -40,14 +40,14 @@ dependencies = [
40
40
 
41
41
  [[package]]
42
42
  name = "omx-explore-harness"
43
- version = "0.18.9"
43
+ version = "0.18.11"
44
44
  dependencies = [
45
45
  "libc",
46
46
  ]
47
47
 
48
48
  [[package]]
49
49
  name = "omx-mux"
50
- version = "0.18.9"
50
+ version = "0.18.11"
51
51
  dependencies = [
52
52
  "serde",
53
53
  "serde_json",
@@ -55,7 +55,7 @@ dependencies = [
55
55
 
56
56
  [[package]]
57
57
  name = "omx-runtime"
58
- version = "0.18.9"
58
+ version = "0.18.11"
59
59
  dependencies = [
60
60
  "omx-mux",
61
61
  "omx-runtime-core",
@@ -64,7 +64,7 @@ dependencies = [
64
64
 
65
65
  [[package]]
66
66
  name = "omx-runtime-core"
67
- version = "0.18.9"
67
+ version = "0.18.11"
68
68
  dependencies = [
69
69
  "fs2",
70
70
  "serde",
@@ -73,7 +73,7 @@ dependencies = [
73
73
 
74
74
  [[package]]
75
75
  name = "omx-sparkshell"
76
- version = "0.18.9"
76
+ version = "0.18.11"
77
77
  dependencies = [
78
78
  "omx-mux",
79
79
  ]
package/Cargo.toml CHANGED
@@ -11,7 +11,7 @@ resolver = "2"
11
11
 
12
12
  [workspace.package]
13
13
 
14
- version = "0.18.9"
14
+ version = "0.18.11"
15
15
 
16
16
  edition = "2021"
17
17
  rust-version = "1.73"
package/README.md CHANGED
@@ -285,6 +285,10 @@ These are useful, but they are not the main onboarding path.
285
285
 
286
286
  Use the team runtime when you specifically need durable tmux/worktree coordination, not as the default way to begin using OMX. In Codex App or plain outside-tmux sessions, treat `omx team` as a tmux-runtime shell surface rather than a directly available in-app workflow; launch OMX CLI from shell first if you actually want team execution.
287
287
 
288
+ When Team runs inside an Ultragoal story, Ultragoal remains leader-owned state: workers report checkpoint-ready evidence upward instead of mutating `.omx/ultragoal` directly. Team startup tolerates stale or malformed Ultragoal artifacts for unrelated work, but explicitly Ultragoal-linked Team launches stay fail-closed. Team startup also writes `.omx/state/team/<team-name>/preflight-context.json` so large Team runs can be resumed after compaction with the original task, worker split, Ultragoal context, and verification checklist.
289
+
290
+ For very small atomic work, Team may cap implicit fanout to one worker and print an over-orchestration warning; pass an explicit worker count only when the extra coordination cost is intentional.
291
+
288
292
  ```bash
289
293
  omx team 3:executor "fix the failing tests with verification"
290
294
  omx team status <team-name>
@@ -335,19 +339,15 @@ Only use the forced team shutdown for a team you have confirmed is dead or inten
335
339
 
336
340
  If `Shift+Enter` still submits instead of inserting a newline inside an OMX-managed tmux session, see [Troubleshooting execution readiness](./docs/troubleshooting.md#shiftenter-submits-instead-of-inserting-a-newline-in-tmux-backed-omx-sessions). Current OMX already enables tmux extended-key forwarding around its own Codex launch paths, so a persistent failure is usually a tmux terminal-capability/discoverability problem rather than a net-new OMX feature gap.
337
341
 
338
- ### Explore and sparkshell
342
+ ### Sparkshell
339
343
 
340
- - `omx explore --prompt "..."` is for read-only repository lookup
341
344
  - `omx sparkshell <command>` is for shell-native inspection and bounded verification
342
- - when `omx_wiki/` exists, `omx explore` can inject wiki-first context before falling back to broader repository search
343
- - fallback boundaries are explicit: sparkshell-backend fallback is reported on stderr, and spark-model fallback emits stderr metadata plus an `## OMX Explore fallback` notice in stdout so users can see when cost/behavior may differ from the low-cost path
345
+ - for read-only repository lookups, use normal Codex repository inspection tools/subagents (the deprecated `omx explore` command has been removed)
344
346
  - sparkshell env overrides are intentionally narrow: `OMX_SPARKSHELL_BIN` selects a native sidecar path, `OMX_SPARKSHELL_MODEL` selects the primary summary model, `OMX_SPARKSHELL_FALLBACK_MODEL` selects the retry model, `OMX_SPARKSHELL_MODEL_INSTRUCTIONS_FILE` selects summary instructions, and `OMX_SPARKSHELL_SUMMARY_TIMEOUT_MS` controls the local API summary timeout
345
347
 
346
348
  Examples:
347
349
 
348
350
  ```bash
349
- # Deprecated compatibility only; prefer normal Codex repository inspection for new lookups
350
- omx explore --prompt "find where team state is written"
351
351
  omx sparkshell git status
352
352
  omx sparkshell --tmux-pane %12 --tail-lines 400
353
353
  ```
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deep-interview-gate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-interview-gate.test.d.ts","sourceRoot":"","sources":["../../../src/autopilot/__tests__/deep-interview-gate.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,215 @@
1
+ import assert from 'node:assert/strict';
2
+ import { describe, it } from 'node:test';
3
+ import { canAdvanceAutopilotDeepInterviewToRalplan } from '../deep-interview-gate.js';
4
+ function validExecutionContract(stride) {
5
+ const perStride = {
6
+ task: {
7
+ allow_task_shrink: true,
8
+ acceptance_coverage_scope: 'task',
9
+ shrink_policy: 'allowed',
10
+ completion_unit: 'One focused task',
11
+ stop_condition: 'Stop after that task is implemented and verified',
12
+ },
13
+ deliverable: {
14
+ allow_task_shrink: false,
15
+ acceptance_coverage_scope: 'deliverable',
16
+ shrink_policy: 'ask_before_shrink',
17
+ completion_unit: 'The named deliverable',
18
+ stop_condition: 'Stop after the deliverable is complete and verified',
19
+ },
20
+ milestone: {
21
+ allow_task_shrink: false,
22
+ acceptance_coverage_scope: 'milestone',
23
+ shrink_policy: 'deny_unless_blocked',
24
+ completion_unit: 'The approved milestone',
25
+ stop_condition: 'Stop after the milestone is complete unless blocked',
26
+ },
27
+ };
28
+ return {
29
+ version: 1,
30
+ execution_stride: stride,
31
+ source: 'deep-interview',
32
+ selected_by: 'user',
33
+ ...perStride[stride],
34
+ };
35
+ }
36
+ describe('autopilot deep-interview gate execution contract', () => {
37
+ it('falls back to persisted contract state when nextState is partial', async () => {
38
+ const persistedState = {
39
+ current_phase: 'deep-interview',
40
+ state: {
41
+ deep_interview_gate: {
42
+ status: 'complete',
43
+ rationale: 'Persisted gate and contract are ready for ralplan.',
44
+ },
45
+ handoff_artifacts: {
46
+ deep_interview: {
47
+ summary: 'Persisted handoff contract is canonical.',
48
+ execution_contract_required: true,
49
+ execution_contract: validExecutionContract('milestone'),
50
+ },
51
+ },
52
+ },
53
+ };
54
+ const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
55
+ cwd: process.cwd(),
56
+ currentState: persistedState,
57
+ nextState: {
58
+ active: true,
59
+ current_phase: 'ralplan',
60
+ },
61
+ });
62
+ assert.equal(decision.allowed, true);
63
+ assert.equal(decision.reason, 'record-backed deep-interview completion gate');
64
+ });
65
+ it('rejects an invalid contract explicitly supplied by nextState before persisted fallback', async () => {
66
+ const persistedState = {
67
+ current_phase: 'deep-interview',
68
+ state: {
69
+ deep_interview_gate: {
70
+ status: 'complete',
71
+ rationale: 'Persisted gate and contract are ready for ralplan.',
72
+ },
73
+ handoff_artifacts: {
74
+ deep_interview: {
75
+ summary: 'Persisted handoff contract is canonical.',
76
+ execution_contract_required: true,
77
+ execution_contract: validExecutionContract('milestone'),
78
+ },
79
+ },
80
+ },
81
+ };
82
+ const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
83
+ cwd: process.cwd(),
84
+ currentState: persistedState,
85
+ nextState: {
86
+ active: true,
87
+ current_phase: 'ralplan',
88
+ execution_contract: {
89
+ ...validExecutionContract('milestone'),
90
+ shrink_policy: 'allowed',
91
+ },
92
+ },
93
+ });
94
+ assert.equal(decision.allowed, false);
95
+ assert.match(decision.reason, /execution_contract/i);
96
+ assert.equal(decision.evidence?.execution_contract_status, 'invalid');
97
+ });
98
+ it('rejects a placeholder contract explicitly supplied by nextState before persisted fallback', async () => {
99
+ const persistedState = {
100
+ current_phase: 'deep-interview',
101
+ state: {
102
+ deep_interview_gate: {
103
+ status: 'complete',
104
+ rationale: 'Persisted gate and contract are ready for ralplan.',
105
+ },
106
+ handoff_artifacts: {
107
+ deep_interview: {
108
+ summary: 'Persisted handoff contract is canonical.',
109
+ execution_contract_required: true,
110
+ execution_contract: validExecutionContract('milestone'),
111
+ },
112
+ },
113
+ },
114
+ };
115
+ const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
116
+ cwd: process.cwd(),
117
+ currentState: persistedState,
118
+ nextState: {
119
+ active: true,
120
+ current_phase: 'ralplan',
121
+ execution_contract: {},
122
+ },
123
+ });
124
+ assert.equal(decision.allowed, false);
125
+ assert.match(decision.reason, /execution_contract/i);
126
+ assert.equal(decision.evidence?.execution_contract_status, 'invalid');
127
+ });
128
+ it('rejects a non-object contract explicitly supplied by nextState before persisted fallback', async () => {
129
+ const persistedState = {
130
+ current_phase: 'deep-interview',
131
+ state: {
132
+ deep_interview_gate: {
133
+ status: 'complete',
134
+ rationale: 'Persisted gate and contract are ready for ralplan.',
135
+ },
136
+ handoff_artifacts: {
137
+ deep_interview: {
138
+ summary: 'Persisted handoff contract is canonical.',
139
+ execution_contract_required: true,
140
+ execution_contract: validExecutionContract('milestone'),
141
+ },
142
+ },
143
+ },
144
+ };
145
+ const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
146
+ cwd: process.cwd(),
147
+ currentState: persistedState,
148
+ nextState: {
149
+ active: true,
150
+ current_phase: 'ralplan',
151
+ execution_contract: 'placeholder',
152
+ },
153
+ });
154
+ assert.equal(decision.allowed, false);
155
+ assert.match(decision.reason, /execution_contract/i);
156
+ assert.equal(decision.evidence?.execution_contract_status, 'invalid');
157
+ });
158
+ it('rejects a non-object handoff-local contract before compatibility fallback', async () => {
159
+ const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
160
+ cwd: process.cwd(),
161
+ currentState: {
162
+ current_phase: 'deep-interview',
163
+ execution_contract: validExecutionContract('deliverable'),
164
+ state: {
165
+ deep_interview_gate: {
166
+ status: 'complete',
167
+ rationale: 'Compatibility direct contract is available.',
168
+ },
169
+ handoff_artifacts: {
170
+ deep_interview: {
171
+ summary: 'Handoff-local malformed contract must fail before direct fallback.',
172
+ execution_contract_required: true,
173
+ execution_contract: [],
174
+ },
175
+ },
176
+ },
177
+ },
178
+ nextState: {
179
+ active: true,
180
+ current_phase: 'ralplan',
181
+ },
182
+ });
183
+ assert.equal(decision.allowed, false);
184
+ assert.match(decision.reason, /execution_contract/i);
185
+ assert.equal(decision.evidence?.execution_contract_status, 'invalid');
186
+ });
187
+ it('allows a direct compatibility contract to satisfy a handoff required marker', async () => {
188
+ const decision = await canAdvanceAutopilotDeepInterviewToRalplan({
189
+ cwd: process.cwd(),
190
+ currentState: {
191
+ current_phase: 'deep-interview',
192
+ execution_contract: validExecutionContract('deliverable'),
193
+ state: {
194
+ deep_interview_gate: {
195
+ status: 'complete',
196
+ rationale: 'Compatibility direct contract is available.',
197
+ },
198
+ handoff_artifacts: {
199
+ deep_interview: {
200
+ summary: 'Marker is canonical; contract came from a compatibility location.',
201
+ execution_contract_required: true,
202
+ },
203
+ },
204
+ },
205
+ },
206
+ nextState: {
207
+ active: true,
208
+ current_phase: 'ralplan',
209
+ },
210
+ });
211
+ assert.equal(decision.allowed, true);
212
+ assert.equal(decision.reason, 'record-backed deep-interview completion gate');
213
+ });
214
+ });
215
+ //# sourceMappingURL=deep-interview-gate.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-interview-gate.test.js","sourceRoot":"","sources":["../../../src/autopilot/__tests__/deep-interview-gate.test.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ describe('autopilot ralplan gate', () => {
12
12
  const trackingPath = subagentTrackingPath(cwd);
13
13
  try {
14
14
  await mkdir(join(trackingPath, '..'), { recursive: true });
15
+ await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({
16
+ session_id: sessionId,
17
+ native_session_id: 'thread-leader',
18
+ }, null, 2));
15
19
  await writeFile(trackingPath, JSON.stringify({
16
20
  schemaVersion: 1,
17
21
  sessions: {
@@ -75,5 +79,149 @@ describe('autopilot ralplan gate', () => {
75
79
  await rm(cwd, { recursive: true, force: true });
76
80
  }
77
81
  });
82
+ it('accepts fresh native review evidence when tracker leader id aliases a subagent lane', async () => {
83
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-autopilot-ralplan-fresh-subagent-alias-'));
84
+ const sessionId = 'sess-autopilot-fresh-subagent-alias';
85
+ const trackingPath = subagentTrackingPath(cwd);
86
+ try {
87
+ await mkdir(join(trackingPath, '..'), { recursive: true });
88
+ await writeFile(trackingPath, JSON.stringify({
89
+ schemaVersion: 1,
90
+ sessions: {
91
+ [sessionId]: {
92
+ session_id: sessionId,
93
+ leader_thread_id: 'thread-architect',
94
+ updated_at: '2026-05-28T18:35:10.000Z',
95
+ threads: {
96
+ 'thread-architect': {
97
+ thread_id: 'thread-architect',
98
+ kind: 'subagent',
99
+ first_seen_at: '2026-05-28T18:34:51.000Z',
100
+ last_seen_at: '2026-05-28T18:34:51.000Z',
101
+ turn_count: 1,
102
+ mode: 'architect',
103
+ },
104
+ 'thread-critic': {
105
+ thread_id: 'thread-critic',
106
+ kind: 'subagent',
107
+ first_seen_at: '2026-05-28T18:35:10.000Z',
108
+ last_seen_at: '2026-05-28T18:35:10.000Z',
109
+ turn_count: 1,
110
+ mode: 'critic',
111
+ },
112
+ },
113
+ },
114
+ },
115
+ }, null, 2));
116
+ const state = {
117
+ current_phase: 'ralplan',
118
+ handoff_artifacts: {
119
+ ralplan_consensus_gate: {
120
+ complete: true,
121
+ sequence: ['architect-review', 'critic-review'],
122
+ ralplan_architect_review: {
123
+ agent_role: 'architect',
124
+ provenance_kind: 'native_subagent',
125
+ verdict: 'approve',
126
+ session_id: sessionId,
127
+ thread_id: 'thread-architect',
128
+ artifact_path: '.omx/artifacts/architect.md',
129
+ tracker_path: '.omx/state/subagent-tracking.json',
130
+ completed_at: '2026-05-28T18:34:51.000Z',
131
+ },
132
+ ralplan_critic_review: {
133
+ agent_role: 'critic',
134
+ provenance_kind: 'native_subagent',
135
+ verdict: 'approve',
136
+ session_id: sessionId,
137
+ thread_id: 'thread-critic',
138
+ artifact_path: '.omx/artifacts/critic.md',
139
+ tracker_path: '.omx/state/subagent-tracking.json',
140
+ completed_at: '2026-05-28T18:35:10.000Z',
141
+ },
142
+ },
143
+ },
144
+ };
145
+ const decision = canAdvanceAutopilotRalplanToUltragoal({ cwd, sessionId, currentState: state });
146
+ assert.equal(decision.allowed, true);
147
+ assert.equal(decision.evidence?.blockedReason, null);
148
+ }
149
+ finally {
150
+ await rm(cwd, { recursive: true, force: true });
151
+ }
152
+ });
153
+ it('rejects native review evidence from the current native session leader', async () => {
154
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-autopilot-ralplan-native-leader-'));
155
+ const sessionId = 'sess-autopilot-native-leader';
156
+ const trackingPath = subagentTrackingPath(cwd);
157
+ try {
158
+ await mkdir(join(trackingPath, '..'), { recursive: true });
159
+ await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({
160
+ session_id: sessionId,
161
+ native_session_id: 'thread-leader',
162
+ }, null, 2));
163
+ await writeFile(trackingPath, JSON.stringify({
164
+ schemaVersion: 1,
165
+ sessions: {
166
+ [sessionId]: {
167
+ session_id: sessionId,
168
+ leader_thread_id: 'thread-leader',
169
+ updated_at: '2026-05-28T18:35:10.000Z',
170
+ threads: {
171
+ 'thread-leader': {
172
+ thread_id: 'thread-leader',
173
+ kind: 'subagent',
174
+ first_seen_at: '2026-05-28T18:34:51.000Z',
175
+ last_seen_at: '2026-05-28T18:34:51.000Z',
176
+ turn_count: 2,
177
+ },
178
+ 'thread-critic': {
179
+ thread_id: 'thread-critic',
180
+ kind: 'subagent',
181
+ first_seen_at: '2026-05-28T18:35:10.000Z',
182
+ last_seen_at: '2026-05-28T18:35:10.000Z',
183
+ turn_count: 1,
184
+ },
185
+ },
186
+ },
187
+ },
188
+ }, null, 2));
189
+ const state = {
190
+ current_phase: 'ralplan',
191
+ handoff_artifacts: {
192
+ ralplan_consensus_gate: {
193
+ complete: true,
194
+ sequence: ['architect-review', 'critic-review'],
195
+ ralplan_architect_review: {
196
+ agent_role: 'architect',
197
+ provenance_kind: 'native_subagent',
198
+ verdict: 'approve',
199
+ session_id: sessionId,
200
+ thread_id: 'thread-leader',
201
+ artifact_path: '.omx/artifacts/architect.md',
202
+ tracker_path: '.omx/state/subagent-tracking.json',
203
+ completed_at: '2026-05-28T18:34:51.000Z',
204
+ },
205
+ ralplan_critic_review: {
206
+ agent_role: 'critic',
207
+ provenance_kind: 'native_subagent',
208
+ verdict: 'approve',
209
+ session_id: sessionId,
210
+ thread_id: 'thread-critic',
211
+ artifact_path: '.omx/artifacts/critic.md',
212
+ tracker_path: '.omx/state/subagent-tracking.json',
213
+ completed_at: '2026-05-28T18:35:10.000Z',
214
+ },
215
+ },
216
+ },
217
+ };
218
+ const decision = canAdvanceAutopilotRalplanToUltragoal({ cwd, sessionId, currentState: state });
219
+ assert.equal(decision.allowed, false);
220
+ assert.match(buildAutopilotRalplanUltragoalGateError(decision), /architect tracker thread thread-leader is the session leader/);
221
+ }
222
+ finally {
223
+ await rm(cwd, { recursive: true, force: true });
224
+ }
225
+ });
78
226
  });
79
227
  //# sourceMappingURL=ralplan-gate.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ralplan-gate.test.js","sourceRoot":"","sources":["../../../src/autopilot/__tests__/ralplan-gate.test.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,uCAAuC,EACvC,qCAAqC,GACtC,MAAM,oBAAoB,CAAC;AAE5B,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,0GAA0G,EAAE,KAAK,IAAI,EAAE;QACxH,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qCAAqC,CAAC,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,6BAA6B,CAAC;QAChD,MAAM,YAAY,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;gBAC3C,aAAa,EAAE,CAAC;gBAChB,QAAQ,EAAE;oBACR,CAAC,SAAS,CAAC,EAAE;wBACX,UAAU,EAAE,SAAS;wBACrB,gBAAgB,EAAE,eAAe;wBACjC,UAAU,EAAE,0BAA0B;wBACtC,OAAO,EAAE;4BACP,eAAe,EAAE;gCACf,SAAS,EAAE,eAAe;gCAC1B,IAAI,EAAE,UAAU;gCAChB,aAAa,EAAE,0BAA0B;gCACzC,YAAY,EAAE,0BAA0B;gCACxC,UAAU,EAAE,CAAC;6BACd;4BACD,eAAe,EAAE;gCACf,SAAS,EAAE,eAAe;gCAC1B,IAAI,EAAE,UAAU;gCAChB,aAAa,EAAE,0BAA0B;gCACzC,YAAY,EAAE,0BAA0B;gCACxC,UAAU,EAAE,CAAC;6BACd;yBACF;qBACF;iBACF;aACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAEb,MAAM,KAAK,GAAG;gBACZ,aAAa,EAAE,SAAS;gBACxB,iBAAiB,EAAE;oBACjB,sBAAsB,EAAE;wBACtB,QAAQ,EAAE,IAAI;wBACd,QAAQ,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC;wBAC/C,wBAAwB,EAAE;4BACxB,UAAU,EAAE,WAAW;4BACvB,eAAe,EAAE,iBAAiB;4BAClC,OAAO,EAAE,SAAS;4BAClB,UAAU,EAAE,SAAS;4BACrB,SAAS,EAAE,eAAe;4BAC1B,aAAa,EAAE,6BAA6B;4BAC5C,YAAY,EAAE,mCAAmC;4BACjD,YAAY,EAAE,0BAA0B;yBACzC;wBACD,qBAAqB,EAAE;4BACrB,UAAU,EAAE,QAAQ;4BACpB,eAAe,EAAE,iBAAiB;4BAClC,OAAO,EAAE,SAAS;4BAClB,UAAU,EAAE,SAAS;4BACrB,SAAS,EAAE,eAAe;4BAC1B,aAAa,EAAE,0BAA0B;4BACzC,YAAY,EAAE,mCAAmC;4BACjD,YAAY,EAAE,0BAA0B;yBACzC;qBACF;iBACF;aACF,CAAC;YAEF,MAAM,QAAQ,GAAG,qCAAqC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAChG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,QAAQ,CAAC,EAAE,8DAA8D,CAAC,CAAC;QAClI,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ralplan-gate.test.js","sourceRoot":"","sources":["../../../src/autopilot/__tests__/ralplan-gate.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"deep-interview-gate.d.ts","sourceRoot":"","sources":["../../src/autopilot/deep-interview-gate.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE1C,MAAM,WAAW,sCAAsC;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,yCAAyC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AA4PD,wBAAsB,yCAAyC,CAC7D,KAAK,EAAE,sCAAsC,GAC5C,OAAO,CAAC,yCAAyC,CAAC,CAoDpD;AAED,wBAAgB,2CAA2C,CACzD,QAAQ,EAAE,yCAAyC,GAClD,MAAM,CAER"}
1
+ {"version":3,"file":"deep-interview-gate.d.ts","sourceRoot":"","sources":["../../src/autopilot/deep-interview-gate.ts"],"names":[],"mappings":"AAIA,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAI1C,MAAM,WAAW,sCAAsC;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,kBAAkB,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,yCAAyC;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,UAAU,CAAC;CACvB;AA+YD,wBAAsB,yCAAyC,CAC7D,KAAK,EAAE,sCAAsC,GAC5C,OAAO,CAAC,yCAAyC,CAAC,CA+DpD;AAED,wBAAgB,2CAA2C,CACzD,QAAQ,EAAE,yCAAyC,GAClD,MAAM,CAER"}