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
@@ -1 +1 @@
1
- {"version":3,"file":"run-test-files.js","sourceRoot":"","sources":["../../src/scripts/run-test-files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-test-files.js","sourceRoot":"","sources":["../../src/scripts/run-test-files.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,38 @@ async function withOmxRootEnv(root, run) {
65
65
  delete process.env.OMX_TEAM_STATE_ROOT;
66
66
  }
67
67
  }
68
+ function validExecutionContract(stride) {
69
+ const perStride = {
70
+ task: {
71
+ allow_task_shrink: true,
72
+ acceptance_coverage_scope: 'task',
73
+ shrink_policy: 'allowed',
74
+ completion_unit: 'One focused task',
75
+ stop_condition: 'Stop after that task is implemented and verified',
76
+ },
77
+ deliverable: {
78
+ allow_task_shrink: false,
79
+ acceptance_coverage_scope: 'deliverable',
80
+ shrink_policy: 'ask_before_shrink',
81
+ completion_unit: 'The named deliverable',
82
+ stop_condition: 'Stop after the deliverable is complete and verified',
83
+ },
84
+ milestone: {
85
+ allow_task_shrink: false,
86
+ acceptance_coverage_scope: 'milestone',
87
+ shrink_policy: 'deny_unless_blocked',
88
+ completion_unit: 'The approved milestone',
89
+ stop_condition: 'Stop after the milestone is complete unless blocked',
90
+ },
91
+ };
92
+ return {
93
+ version: 1,
94
+ execution_stride: stride,
95
+ source: 'deep-interview',
96
+ selected_by: 'user',
97
+ ...perStride[stride],
98
+ };
99
+ }
68
100
  async function writeNativeSubagentTracking(cwd, sessionId) {
69
101
  const trackingPath = subagentTrackingPath(cwd);
70
102
  const now = '2026-05-28T00:00:00.000Z';
@@ -1203,6 +1235,437 @@ describe('state operations directory initialization', () => {
1203
1235
  await rm(wd, { recursive: true, force: true });
1204
1236
  }
1205
1237
  });
1238
+ it('allows Autopilot deep-interview to ralplan handoff with required valid execution contract strides', async () => {
1239
+ for (const stride of ['task', 'deliverable', 'milestone']) {
1240
+ const wd = await mkdtemp(join(tmpdir(), `omx-state-ops-autopilot-execution-contract-${stride}-`));
1241
+ try {
1242
+ await withOmxRootEnv(wd, async () => {
1243
+ const sessionId = `sess-autopilot-execution-contract-${stride}`;
1244
+ const sessionDir = join(wd, '.omx', 'state', 'sessions', sessionId);
1245
+ await mkdir(sessionDir, { recursive: true });
1246
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
1247
+ active: true,
1248
+ mode: 'autopilot',
1249
+ current_phase: 'deep-interview',
1250
+ }, null, 2));
1251
+ const response = await executeStateOperation('state_write', {
1252
+ workingDirectory: wd,
1253
+ session_id: sessionId,
1254
+ mode: 'autopilot',
1255
+ active: true,
1256
+ current_phase: 'ralplan',
1257
+ state: {
1258
+ deep_interview_gate: {
1259
+ status: 'complete',
1260
+ rationale: `The ${stride} stride is explicitly contracted for planning.`,
1261
+ },
1262
+ handoff_artifacts: {
1263
+ deep_interview: {
1264
+ summary: `Ready for ralplan with ${stride} stride.`,
1265
+ execution_contract_required: true,
1266
+ execution_contract: validExecutionContract(stride),
1267
+ },
1268
+ },
1269
+ },
1270
+ });
1271
+ assert.equal(response.isError, undefined);
1272
+ const state = JSON.parse(await readFile(join(sessionDir, 'autopilot-state.json'), 'utf-8'));
1273
+ assert.equal(state.current_phase, 'ralplan');
1274
+ });
1275
+ }
1276
+ finally {
1277
+ await rm(wd, { recursive: true, force: true });
1278
+ }
1279
+ }
1280
+ });
1281
+ it('allows partial Autopilot ralplan handoff writes when a required execution contract is already persisted', async () => {
1282
+ const wd = await mkdtemp(join(tmpdir(), 'omx-state-ops-autopilot-execution-contract-partial-write-'));
1283
+ try {
1284
+ await withOmxRootEnv(wd, async () => {
1285
+ const sessionId = 'sess-autopilot-execution-contract-partial-write';
1286
+ const sessionDir = join(wd, '.omx', 'state', 'sessions', sessionId);
1287
+ await mkdir(sessionDir, { recursive: true });
1288
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
1289
+ active: true,
1290
+ mode: 'autopilot',
1291
+ current_phase: 'deep-interview',
1292
+ state: {
1293
+ deep_interview_gate: {
1294
+ status: 'complete',
1295
+ rationale: 'The persisted interview artifact already defines the milestone contract.',
1296
+ },
1297
+ handoff_artifacts: {
1298
+ deep_interview: {
1299
+ summary: 'Ready for ralplan with a persisted milestone execution contract.',
1300
+ execution_contract_required: true,
1301
+ execution_contract: validExecutionContract('milestone'),
1302
+ },
1303
+ },
1304
+ },
1305
+ }, null, 2));
1306
+ const response = await executeStateOperation('state_write', {
1307
+ workingDirectory: wd,
1308
+ session_id: sessionId,
1309
+ mode: 'autopilot',
1310
+ active: true,
1311
+ current_phase: 'ralplan',
1312
+ });
1313
+ assert.equal(response.isError, undefined);
1314
+ const state = JSON.parse(await readFile(join(sessionDir, 'autopilot-state.json'), 'utf-8'));
1315
+ assert.equal(state.current_phase, 'ralplan');
1316
+ assert.deepEqual(state.state.handoff_artifacts.deep_interview, {
1317
+ summary: 'Ready for ralplan with a persisted milestone execution contract.',
1318
+ execution_contract_required: true,
1319
+ execution_contract: validExecutionContract('milestone'),
1320
+ });
1321
+ });
1322
+ }
1323
+ finally {
1324
+ await rm(wd, { recursive: true, force: true });
1325
+ }
1326
+ });
1327
+ it('denies Autopilot deep-interview handoff when execution contract is required but missing or invalid', async () => {
1328
+ for (const [caseName, deepInterviewHandoff] of Object.entries({
1329
+ missing: {
1330
+ summary: 'Execution contract was required but omitted.',
1331
+ execution_contract_required: true,
1332
+ },
1333
+ wrongStrideFields: {
1334
+ summary: 'Execution contract mismatches its stride semantics.',
1335
+ execution_contract_required: true,
1336
+ execution_contract: {
1337
+ ...validExecutionContract('deliverable'),
1338
+ allow_task_shrink: true,
1339
+ },
1340
+ },
1341
+ legacyPhaseEnum: {
1342
+ summary: 'Legacy phase enum must not be accepted as an execution stride.',
1343
+ execution_contract_required: true,
1344
+ execution_contract: {
1345
+ ...validExecutionContract('milestone'),
1346
+ execution_stride: 'phase',
1347
+ },
1348
+ },
1349
+ invalidSource: {
1350
+ summary: 'Contract provenance must be deep-interview.',
1351
+ execution_contract_required: true,
1352
+ execution_contract: {
1353
+ ...validExecutionContract('task'),
1354
+ source: 'ralplan',
1355
+ },
1356
+ },
1357
+ invalidSelection: {
1358
+ summary: 'Contract selected_by must be user or default.',
1359
+ execution_contract_required: true,
1360
+ execution_contract: {
1361
+ ...validExecutionContract('task'),
1362
+ selected_by: 'inferred',
1363
+ },
1364
+ },
1365
+ })) {
1366
+ const wd = await mkdtemp(join(tmpdir(), `omx-state-ops-autopilot-execution-contract-deny-${caseName}-`));
1367
+ try {
1368
+ await withOmxRootEnv(wd, async () => {
1369
+ const sessionId = `sess-autopilot-execution-contract-deny-${caseName}`;
1370
+ const sessionDir = join(wd, '.omx', 'state', 'sessions', sessionId);
1371
+ await mkdir(sessionDir, { recursive: true });
1372
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
1373
+ active: true,
1374
+ mode: 'autopilot',
1375
+ current_phase: 'deep-interview',
1376
+ }, null, 2));
1377
+ const response = await executeStateOperation('state_write', {
1378
+ workingDirectory: wd,
1379
+ session_id: sessionId,
1380
+ mode: 'autopilot',
1381
+ active: true,
1382
+ current_phase: 'ralplan',
1383
+ state: {
1384
+ deep_interview_gate: {
1385
+ status: 'complete',
1386
+ rationale: 'The interview is complete but the required contract is not valid.',
1387
+ },
1388
+ handoff_artifacts: {
1389
+ deep_interview: deepInterviewHandoff,
1390
+ },
1391
+ },
1392
+ });
1393
+ assert.equal(response.isError, true);
1394
+ assert.match(String(response.payload.error || ''), /execution_contract/i);
1395
+ const state = JSON.parse(await readFile(join(sessionDir, 'autopilot-state.json'), 'utf-8'));
1396
+ assert.equal(state.current_phase, 'deep-interview');
1397
+ });
1398
+ }
1399
+ finally {
1400
+ await rm(wd, { recursive: true, force: true });
1401
+ }
1402
+ }
1403
+ });
1404
+ it('preserves Autopilot legacy behavior when execution contract is absent or not required', async () => {
1405
+ const wd = await mkdtemp(join(tmpdir(), 'omx-state-ops-autopilot-execution-contract-not-required-'));
1406
+ try {
1407
+ await withOmxRootEnv(wd, async () => {
1408
+ const sessionId = 'sess-autopilot-execution-contract-not-required';
1409
+ const sessionDir = join(wd, '.omx', 'state', 'sessions', sessionId);
1410
+ await mkdir(sessionDir, { recursive: true });
1411
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
1412
+ active: true,
1413
+ mode: 'autopilot',
1414
+ current_phase: 'deep-interview',
1415
+ }, null, 2));
1416
+ const response = await executeStateOperation('state_write', {
1417
+ workingDirectory: wd,
1418
+ session_id: sessionId,
1419
+ mode: 'autopilot',
1420
+ active: true,
1421
+ current_phase: 'ralplan',
1422
+ state: {
1423
+ deep_interview_gate: {
1424
+ status: 'complete',
1425
+ rationale: 'No execution contract was required for this legacy handoff.',
1426
+ },
1427
+ handoff_artifacts: {
1428
+ deep_interview: {
1429
+ summary: 'Ready for ralplan with legacy behavior.',
1430
+ execution_contract_required: false,
1431
+ execution_contract: {
1432
+ version: 1,
1433
+ execution_stride: 'phase',
1434
+ },
1435
+ },
1436
+ },
1437
+ },
1438
+ });
1439
+ assert.equal(response.isError, undefined);
1440
+ const state = JSON.parse(await readFile(join(sessionDir, 'autopilot-state.json'), 'utf-8'));
1441
+ assert.equal(state.current_phase, 'ralplan');
1442
+ });
1443
+ }
1444
+ finally {
1445
+ await rm(wd, { recursive: true, force: true });
1446
+ }
1447
+ });
1448
+ it('honors all documented execution contract required marker locations and runtime aliases', async () => {
1449
+ const aliasContract = {
1450
+ version: 1,
1451
+ executionStride: 'deliverable',
1452
+ source: 'deep-interview',
1453
+ selected_by: 'user',
1454
+ allowTaskShrink: false,
1455
+ completionUnit: 'The named deliverable',
1456
+ stopCondition: 'Stop after the deliverable is complete and verified',
1457
+ acceptanceCoverageScope: 'deliverable',
1458
+ shrinkPolicy: 'ask_before_shrink',
1459
+ };
1460
+ for (const [caseName, topLevelPatch, nestedPatch, handoffPatch] of [
1461
+ ['gate', {}, { deep_interview_gate: { execution_contract_required: true } }, {}],
1462
+ ['top-level', { execution_contract_required: true }, {}, {}],
1463
+ ['nested-state', {}, { execution_contract_required: true }, {}],
1464
+ ['handoff', {}, {}, { execution_contract_required: true }],
1465
+ ['handoff-camel', {}, {}, { executionContractRequired: true }],
1466
+ ]) {
1467
+ const wd = await mkdtemp(join(tmpdir(), `omx-state-ops-autopilot-execution-contract-marker-${caseName}-`));
1468
+ try {
1469
+ await withOmxRootEnv(wd, async () => {
1470
+ const sessionId = `sess-autopilot-execution-contract-marker-${caseName}`;
1471
+ const sessionDir = join(wd, '.omx', 'state', 'sessions', sessionId);
1472
+ await mkdir(sessionDir, { recursive: true });
1473
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
1474
+ active: true,
1475
+ mode: 'autopilot',
1476
+ current_phase: 'deep-interview',
1477
+ }, null, 2));
1478
+ const response = await executeStateOperation('state_write', {
1479
+ workingDirectory: wd,
1480
+ session_id: sessionId,
1481
+ mode: 'autopilot',
1482
+ active: true,
1483
+ current_phase: 'ralplan',
1484
+ ...topLevelPatch,
1485
+ state: {
1486
+ ...nestedPatch,
1487
+ deep_interview_gate: {
1488
+ status: 'complete',
1489
+ rationale: `The ${caseName} marker requires a valid execution contract.`,
1490
+ ...(nestedPatch.deep_interview_gate ?? {}),
1491
+ },
1492
+ handoff_artifacts: {
1493
+ deep_interview: {
1494
+ summary: `Ready for ralplan with ${caseName} required marker.`,
1495
+ execution_contract: aliasContract,
1496
+ ...handoffPatch,
1497
+ },
1498
+ },
1499
+ },
1500
+ });
1501
+ assert.equal(response.isError, undefined);
1502
+ const state = JSON.parse(await readFile(join(sessionDir, 'autopilot-state.json'), 'utf-8'));
1503
+ assert.equal(state.current_phase, 'ralplan');
1504
+ });
1505
+ }
1506
+ finally {
1507
+ await rm(wd, { recursive: true, force: true });
1508
+ }
1509
+ }
1510
+ });
1511
+ it('denies stale valid execution contracts from masking an invalid next-state contract', async () => {
1512
+ const wd = await mkdtemp(join(tmpdir(), 'omx-state-ops-autopilot-execution-contract-precedence-'));
1513
+ try {
1514
+ await withOmxRootEnv(wd, async () => {
1515
+ const sessionId = 'sess-autopilot-execution-contract-precedence';
1516
+ const sessionDir = join(wd, '.omx', 'state', 'sessions', sessionId);
1517
+ await mkdir(sessionDir, { recursive: true });
1518
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
1519
+ active: true,
1520
+ mode: 'autopilot',
1521
+ current_phase: 'deep-interview',
1522
+ state: {
1523
+ handoff_artifacts: {
1524
+ deep_interview: {
1525
+ summary: 'Stale current-state contract must not rescue nextState.',
1526
+ execution_contract_required: true,
1527
+ execution_contract: validExecutionContract('milestone'),
1528
+ },
1529
+ },
1530
+ },
1531
+ }, null, 2));
1532
+ const response = await executeStateOperation('state_write', {
1533
+ workingDirectory: wd,
1534
+ session_id: sessionId,
1535
+ mode: 'autopilot',
1536
+ active: true,
1537
+ current_phase: 'ralplan',
1538
+ state: {
1539
+ execution_contract: {
1540
+ ...validExecutionContract('milestone'),
1541
+ shrink_policy: 'allowed',
1542
+ },
1543
+ deep_interview_gate: {
1544
+ status: 'complete',
1545
+ rationale: 'Resulting next state carries an invalid higher-priority contract.',
1546
+ },
1547
+ handoff_artifacts: {
1548
+ deep_interview: {
1549
+ summary: 'Valid handoff contract must not mask invalid direct/nested contract.',
1550
+ execution_contract_required: true,
1551
+ execution_contract: validExecutionContract('milestone'),
1552
+ },
1553
+ },
1554
+ },
1555
+ });
1556
+ assert.equal(response.isError, true);
1557
+ assert.match(String(response.payload.error || ''), /execution_contract/i);
1558
+ const state = JSON.parse(await readFile(join(sessionDir, 'autopilot-state.json'), 'utf-8'));
1559
+ assert.equal(state.current_phase, 'deep-interview');
1560
+ });
1561
+ }
1562
+ finally {
1563
+ await rm(wd, { recursive: true, force: true });
1564
+ }
1565
+ });
1566
+ it('supports direct execution contract compatibility while rejecting invalid handoff contracts', async () => {
1567
+ for (const [caseName, handoffPatch, shouldAllow] of [
1568
+ ['missing-handoff-contract', {}, true],
1569
+ ['invalid-handoff-contract', { execution_contract: { ...validExecutionContract('deliverable'), source: 'ralplan' } }, false],
1570
+ ]) {
1571
+ const wd = await mkdtemp(join(tmpdir(), `omx-state-ops-autopilot-execution-contract-${caseName}-handoff-`));
1572
+ try {
1573
+ await withOmxRootEnv(wd, async () => {
1574
+ const sessionId = `sess-contract-${caseName}`;
1575
+ const sessionDir = join(wd, '.omx', 'state', 'sessions', sessionId);
1576
+ await mkdir(sessionDir, { recursive: true });
1577
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
1578
+ active: true,
1579
+ mode: 'autopilot',
1580
+ current_phase: 'deep-interview',
1581
+ }, null, 2));
1582
+ const response = await executeStateOperation('state_write', {
1583
+ workingDirectory: wd,
1584
+ session_id: sessionId,
1585
+ mode: 'autopilot',
1586
+ active: true,
1587
+ current_phase: 'ralplan',
1588
+ state: {
1589
+ execution_contract: validExecutionContract('deliverable'),
1590
+ deep_interview_gate: {
1591
+ status: 'complete',
1592
+ rationale: 'A compatibility direct contract may satisfy a marker, but invalid handoff data fails first.',
1593
+ },
1594
+ handoff_artifacts: {
1595
+ deep_interview: {
1596
+ summary: 'Handoff marker requires the handoff contract to be valid too.',
1597
+ execution_contract_required: true,
1598
+ ...handoffPatch,
1599
+ },
1600
+ },
1601
+ },
1602
+ });
1603
+ assert.equal(response.isError, shouldAllow ? undefined : true);
1604
+ if (!shouldAllow) {
1605
+ assert.match(String(response.payload.error || ''), /execution_contract/i);
1606
+ }
1607
+ const state = JSON.parse(await readFile(join(sessionDir, 'autopilot-state.json'), 'utf-8'));
1608
+ assert.equal(state.current_phase, shouldAllow ? 'ralplan' : 'deep-interview');
1609
+ });
1610
+ }
1611
+ finally {
1612
+ await rm(wd, { recursive: true, force: true });
1613
+ }
1614
+ }
1615
+ });
1616
+ it('applies required execution contract validation to explicit Autopilot deep-interview skip gates', async () => {
1617
+ for (const [caseName, deepInterviewHandoff, shouldAllow] of [
1618
+ ['missing', { summary: 'Skip is authorized, but contract is missing.', execution_contract_required: true }, false],
1619
+ ['valid', {
1620
+ summary: 'Skip is authorized and the required contract is present.',
1621
+ execution_contract_required: true,
1622
+ execution_contract: validExecutionContract('task'),
1623
+ }, true],
1624
+ ]) {
1625
+ const wd = await mkdtemp(join(tmpdir(), `omx-state-ops-autopilot-execution-contract-skip-${caseName}-`));
1626
+ try {
1627
+ await withOmxRootEnv(wd, async () => {
1628
+ const sessionId = `sess-autopilot-execution-contract-skip-${caseName}`;
1629
+ const sessionDir = join(wd, '.omx', 'state', 'sessions', sessionId);
1630
+ await mkdir(sessionDir, { recursive: true });
1631
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
1632
+ active: true,
1633
+ mode: 'autopilot',
1634
+ current_phase: 'deep-interview',
1635
+ state: {
1636
+ deep_interview_gate: {
1637
+ status: 'skipped',
1638
+ skip_authorized_by_user: true,
1639
+ skip_reason: 'User explicitly authorized skipping deep-interview for this bounded follow-up.',
1640
+ skipped_at: '2026-05-28T00:02:00.000Z',
1641
+ source: 'user',
1642
+ session_id: sessionId,
1643
+ },
1644
+ handoff_artifacts: {
1645
+ deep_interview: deepInterviewHandoff,
1646
+ },
1647
+ },
1648
+ }, null, 2));
1649
+ const response = await executeStateOperation('state_write', {
1650
+ workingDirectory: wd,
1651
+ session_id: sessionId,
1652
+ mode: 'autopilot',
1653
+ active: true,
1654
+ current_phase: 'ralplan',
1655
+ });
1656
+ assert.equal(response.isError, shouldAllow ? undefined : true);
1657
+ if (!shouldAllow) {
1658
+ assert.match(String(response.payload.error || ''), /execution_contract/i);
1659
+ }
1660
+ const state = JSON.parse(await readFile(join(sessionDir, 'autopilot-state.json'), 'utf-8'));
1661
+ assert.equal(state.current_phase, shouldAllow ? 'ralplan' : 'deep-interview');
1662
+ });
1663
+ }
1664
+ finally {
1665
+ await rm(wd, { recursive: true, force: true });
1666
+ }
1667
+ }
1668
+ });
1206
1669
  it('allows Autopilot deep-interview to ralplan self-write with explicit user-authorized skip evidence', async () => {
1207
1670
  const wd = await mkdtemp(join(tmpdir(), 'omx-state-ops-autopilot-child-phase-skip-'));
1208
1671
  try {