oh-my-codex 0.18.6 → 0.18.7

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 (278) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +56 -7
  4. package/dist/agents/__tests__/definitions.test.js +11 -0
  5. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  6. package/dist/agents/__tests__/native-config.test.js +14 -5
  7. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  8. package/dist/agents/definitions.d.ts +2 -0
  9. package/dist/agents/definitions.d.ts.map +1 -1
  10. package/dist/agents/definitions.js +4 -1
  11. package/dist/agents/definitions.js.map +1 -1
  12. package/dist/agents/native-config.js +2 -2
  13. package/dist/agents/native-config.js.map +1 -1
  14. package/dist/autopilot/__tests__/fsm.test.d.ts +2 -0
  15. package/dist/autopilot/__tests__/fsm.test.d.ts.map +1 -0
  16. package/dist/autopilot/__tests__/fsm.test.js +75 -0
  17. package/dist/autopilot/__tests__/fsm.test.js.map +1 -0
  18. package/dist/autopilot/__tests__/ralplan-gate.test.d.ts +2 -0
  19. package/dist/autopilot/__tests__/ralplan-gate.test.d.ts.map +1 -0
  20. package/dist/autopilot/__tests__/ralplan-gate.test.js +79 -0
  21. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -0
  22. package/dist/autopilot/deep-interview-gate.d.ts +18 -0
  23. package/dist/autopilot/deep-interview-gate.d.ts.map +1 -0
  24. package/dist/autopilot/deep-interview-gate.js +256 -0
  25. package/dist/autopilot/deep-interview-gate.js.map +1 -0
  26. package/dist/autopilot/fsm.d.ts +13 -0
  27. package/dist/autopilot/fsm.d.ts.map +1 -0
  28. package/dist/autopilot/fsm.js +70 -0
  29. package/dist/autopilot/fsm.js.map +1 -0
  30. package/dist/autopilot/ralplan-gate.d.ts +17 -0
  31. package/dist/autopilot/ralplan-gate.d.ts.map +1 -0
  32. package/dist/autopilot/ralplan-gate.js +61 -0
  33. package/dist/autopilot/ralplan-gate.js.map +1 -0
  34. package/dist/cli/__tests__/index.test.js +24 -4
  35. package/dist/cli/__tests__/index.test.js.map +1 -1
  36. package/dist/cli/__tests__/launch-fallback.test.js +175 -6
  37. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  38. package/dist/cli/__tests__/question.test.js +100 -0
  39. package/dist/cli/__tests__/question.test.js.map +1 -1
  40. package/dist/cli/__tests__/setup-refresh.test.js +18 -0
  41. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  42. package/dist/cli/__tests__/team.test.js +2 -2
  43. package/dist/cli/__tests__/team.test.js.map +1 -1
  44. package/dist/cli/index.d.ts +3 -1
  45. package/dist/cli/index.d.ts.map +1 -1
  46. package/dist/cli/index.js +191 -36
  47. package/dist/cli/index.js.map +1 -1
  48. package/dist/cli/question.d.ts.map +1 -1
  49. package/dist/cli/question.js +36 -5
  50. package/dist/cli/question.js.map +1 -1
  51. package/dist/config/__tests__/deep-interview.test.js +7 -6
  52. package/dist/config/__tests__/deep-interview.test.js.map +1 -1
  53. package/dist/config/deep-interview.d.ts.map +1 -1
  54. package/dist/config/deep-interview.js +14 -4
  55. package/dist/config/deep-interview.js.map +1 -1
  56. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +8 -0
  57. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
  58. package/dist/hooks/__tests__/deep-interview-contract.test.js +10 -0
  59. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  60. package/dist/hooks/__tests__/keyword-detector.test.js +649 -11
  61. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  62. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +63 -0
  63. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  64. package/dist/hooks/__tests__/session.test.js +25 -0
  65. package/dist/hooks/__tests__/session.test.js.map +1 -1
  66. package/dist/hooks/deep-interview-config-instruction.js +1 -1
  67. package/dist/hooks/deep-interview-config-instruction.js.map +1 -1
  68. package/dist/hooks/keyword-detector.d.ts +1 -0
  69. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  70. package/dist/hooks/keyword-detector.js +171 -21
  71. package/dist/hooks/keyword-detector.js.map +1 -1
  72. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  73. package/dist/hooks/keyword-registry.js +1 -0
  74. package/dist/hooks/keyword-registry.js.map +1 -1
  75. package/dist/hooks/session.d.ts +2 -0
  76. package/dist/hooks/session.d.ts.map +1 -1
  77. package/dist/hooks/session.js +13 -5
  78. package/dist/hooks/session.js.map +1 -1
  79. package/dist/hud/__tests__/authority.test.js +35 -0
  80. package/dist/hud/__tests__/authority.test.js.map +1 -1
  81. package/dist/hud/__tests__/index.test.js +168 -2
  82. package/dist/hud/__tests__/index.test.js.map +1 -1
  83. package/dist/hud/__tests__/reconcile.test.js +67 -13
  84. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  85. package/dist/hud/__tests__/state.test.js +80 -0
  86. package/dist/hud/__tests__/state.test.js.map +1 -1
  87. package/dist/hud/__tests__/tmux.test.js +134 -1
  88. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  89. package/dist/hud/authority.d.ts.map +1 -1
  90. package/dist/hud/authority.js +13 -2
  91. package/dist/hud/authority.js.map +1 -1
  92. package/dist/hud/index.d.ts +17 -0
  93. package/dist/hud/index.d.ts.map +1 -1
  94. package/dist/hud/index.js +64 -10
  95. package/dist/hud/index.js.map +1 -1
  96. package/dist/hud/reconcile.js +1 -1
  97. package/dist/hud/reconcile.js.map +1 -1
  98. package/dist/hud/state.d.ts.map +1 -1
  99. package/dist/hud/state.js +16 -1
  100. package/dist/hud/state.js.map +1 -1
  101. package/dist/hud/tmux.d.ts +2 -0
  102. package/dist/hud/tmux.d.ts.map +1 -1
  103. package/dist/hud/tmux.js +39 -2
  104. package/dist/hud/tmux.js.map +1 -1
  105. package/dist/mcp/__tests__/hermes-bridge.test.js +203 -7
  106. package/dist/mcp/__tests__/hermes-bridge.test.js.map +1 -1
  107. package/dist/mcp/__tests__/state-server.test.js +13 -1
  108. package/dist/mcp/__tests__/state-server.test.js.map +1 -1
  109. package/dist/mcp/hermes-bridge.d.ts +12 -2
  110. package/dist/mcp/hermes-bridge.d.ts.map +1 -1
  111. package/dist/mcp/hermes-bridge.js +83 -9
  112. package/dist/mcp/hermes-bridge.js.map +1 -1
  113. package/dist/modes/__tests__/base-autoresearch-contract.test.js +7 -1
  114. package/dist/modes/__tests__/base-autoresearch-contract.test.js.map +1 -1
  115. package/dist/pipeline/__tests__/stages.test.js +130 -0
  116. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  117. package/dist/pipeline/orchestrator.js +1 -1
  118. package/dist/pipeline/orchestrator.js.map +1 -1
  119. package/dist/pipeline/stages/ralplan.d.ts +1 -0
  120. package/dist/pipeline/stages/ralplan.d.ts.map +1 -1
  121. package/dist/pipeline/stages/ralplan.js +14 -5
  122. package/dist/pipeline/stages/ralplan.js.map +1 -1
  123. package/dist/question/__tests__/deep-interview.test.js +160 -2
  124. package/dist/question/__tests__/deep-interview.test.js.map +1 -1
  125. package/dist/question/__tests__/policy.test.js +63 -3
  126. package/dist/question/__tests__/policy.test.js.map +1 -1
  127. package/dist/question/__tests__/renderer.test.js +191 -2
  128. package/dist/question/__tests__/renderer.test.js.map +1 -1
  129. package/dist/question/__tests__/state.test.js +94 -3
  130. package/dist/question/__tests__/state.test.js.map +1 -1
  131. package/dist/question/__tests__/ui.test.js +4 -0
  132. package/dist/question/__tests__/ui.test.js.map +1 -1
  133. package/dist/question/autopilot-wait.d.ts +12 -2
  134. package/dist/question/autopilot-wait.d.ts.map +1 -1
  135. package/dist/question/autopilot-wait.js +158 -47
  136. package/dist/question/autopilot-wait.js.map +1 -1
  137. package/dist/question/deep-interview.d.ts.map +1 -1
  138. package/dist/question/deep-interview.js +22 -6
  139. package/dist/question/deep-interview.js.map +1 -1
  140. package/dist/question/policy.d.ts.map +1 -1
  141. package/dist/question/policy.js +2 -5
  142. package/dist/question/policy.js.map +1 -1
  143. package/dist/question/renderer.d.ts +12 -0
  144. package/dist/question/renderer.d.ts.map +1 -1
  145. package/dist/question/renderer.js +87 -3
  146. package/dist/question/renderer.js.map +1 -1
  147. package/dist/question/state.d.ts +8 -1
  148. package/dist/question/state.d.ts.map +1 -1
  149. package/dist/question/state.js +54 -14
  150. package/dist/question/state.js.map +1 -1
  151. package/dist/question/types.d.ts +1 -1
  152. package/dist/question/types.d.ts.map +1 -1
  153. package/dist/question/ui.d.ts +1 -0
  154. package/dist/question/ui.d.ts.map +1 -1
  155. package/dist/question/ui.js +1 -0
  156. package/dist/question/ui.js.map +1 -1
  157. package/dist/ralplan/__tests__/runtime.test.js +191 -0
  158. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  159. package/dist/ralplan/consensus-gate.d.ts +9 -1
  160. package/dist/ralplan/consensus-gate.d.ts.map +1 -1
  161. package/dist/ralplan/consensus-gate.js +84 -2
  162. package/dist/ralplan/consensus-gate.js.map +1 -1
  163. package/dist/ralplan/runtime.d.ts +9 -0
  164. package/dist/ralplan/runtime.d.ts.map +1 -1
  165. package/dist/ralplan/runtime.js +32 -11
  166. package/dist/ralplan/runtime.js.map +1 -1
  167. package/dist/scripts/__tests__/codex-native-hook.test.js +1487 -34
  168. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  169. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  170. package/dist/scripts/codex-native-hook.js +356 -38
  171. package/dist/scripts/codex-native-hook.js.map +1 -1
  172. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  173. package/dist/scripts/codex-native-pre-post.js +79 -1
  174. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  175. package/dist/scripts/hook-payload-guard.d.ts +9 -0
  176. package/dist/scripts/hook-payload-guard.d.ts.map +1 -0
  177. package/dist/scripts/hook-payload-guard.js +111 -0
  178. package/dist/scripts/hook-payload-guard.js.map +1 -0
  179. package/dist/scripts/notify-fallback-watcher.js +8 -1
  180. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  181. package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts +2 -0
  182. package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts.map +1 -0
  183. package/dist/scripts/notify-hook/__tests__/payload-guard.test.js +39 -0
  184. package/dist/scripts/notify-hook/__tests__/payload-guard.test.js.map +1 -0
  185. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
  186. package/dist/scripts/notify-hook/team-worker-stop.js +234 -86
  187. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
  188. package/dist/scripts/notify-hook.js +11 -2
  189. package/dist/scripts/notify-hook.js.map +1 -1
  190. package/dist/state/__tests__/operations.test.js +1012 -1
  191. package/dist/state/__tests__/operations.test.js.map +1 -1
  192. package/dist/state/__tests__/skill-active.test.js +59 -1
  193. package/dist/state/__tests__/skill-active.test.js.map +1 -1
  194. package/dist/state/__tests__/workflow-transition.test.js +73 -7
  195. package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
  196. package/dist/state/operations.d.ts.map +1 -1
  197. package/dist/state/operations.js +102 -0
  198. package/dist/state/operations.js.map +1 -1
  199. package/dist/state/skill-active.d.ts.map +1 -1
  200. package/dist/state/skill-active.js +33 -3
  201. package/dist/state/skill-active.js.map +1 -1
  202. package/dist/state/workflow-transition-reconcile.d.ts +6 -0
  203. package/dist/state/workflow-transition-reconcile.d.ts.map +1 -1
  204. package/dist/state/workflow-transition-reconcile.js +28 -1
  205. package/dist/state/workflow-transition-reconcile.js.map +1 -1
  206. package/dist/state/workflow-transition.d.ts.map +1 -1
  207. package/dist/state/workflow-transition.js +10 -3
  208. package/dist/state/workflow-transition.js.map +1 -1
  209. package/dist/subagents/__tests__/tracker.test.js +139 -0
  210. package/dist/subagents/__tests__/tracker.test.js.map +1 -1
  211. package/dist/subagents/tracker.d.ts +3 -0
  212. package/dist/subagents/tracker.d.ts.map +1 -1
  213. package/dist/subagents/tracker.js +41 -4
  214. package/dist/subagents/tracker.js.map +1 -1
  215. package/dist/team/__tests__/coordination-protocol.test.d.ts +2 -0
  216. package/dist/team/__tests__/coordination-protocol.test.d.ts.map +1 -0
  217. package/dist/team/__tests__/coordination-protocol.test.js +173 -0
  218. package/dist/team/__tests__/coordination-protocol.test.js.map +1 -0
  219. package/dist/team/__tests__/runtime.test.js +51 -2
  220. package/dist/team/__tests__/runtime.test.js.map +1 -1
  221. package/dist/team/__tests__/state.test.js +83 -0
  222. package/dist/team/__tests__/state.test.js.map +1 -1
  223. package/dist/team/__tests__/tmux-session.test.js +45 -0
  224. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  225. package/dist/team/__tests__/worker-bootstrap.test.js +84 -0
  226. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  227. package/dist/team/coordination-protocol.d.ts +14 -0
  228. package/dist/team/coordination-protocol.d.ts.map +1 -0
  229. package/dist/team/coordination-protocol.js +244 -0
  230. package/dist/team/coordination-protocol.js.map +1 -0
  231. package/dist/team/runtime.d.ts +1 -0
  232. package/dist/team/runtime.d.ts.map +1 -1
  233. package/dist/team/runtime.js +19 -3
  234. package/dist/team/runtime.js.map +1 -1
  235. package/dist/team/state/tasks.d.ts.map +1 -1
  236. package/dist/team/state/tasks.js +24 -0
  237. package/dist/team/state/tasks.js.map +1 -1
  238. package/dist/team/state/types.d.ts +21 -1
  239. package/dist/team/state/types.d.ts.map +1 -1
  240. package/dist/team/state/types.js.map +1 -1
  241. package/dist/team/state.d.ts +17 -1
  242. package/dist/team/state.d.ts.map +1 -1
  243. package/dist/team/state.js +12 -5
  244. package/dist/team/state.js.map +1 -1
  245. package/dist/team/team-ops.d.ts +1 -1
  246. package/dist/team/team-ops.d.ts.map +1 -1
  247. package/dist/team/team-ops.js.map +1 -1
  248. package/dist/team/tmux-session.d.ts.map +1 -1
  249. package/dist/team/tmux-session.js +19 -1
  250. package/dist/team/tmux-session.js.map +1 -1
  251. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  252. package/dist/team/worker-bootstrap.js +63 -0
  253. package/dist/team/worker-bootstrap.js.map +1 -1
  254. package/dist/utils/__tests__/agents-model-table.test.js +4 -2
  255. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
  256. package/dist/utils/agents-model-table.d.ts.map +1 -1
  257. package/dist/utils/agents-model-table.js +3 -0
  258. package/dist/utils/agents-model-table.js.map +1 -1
  259. package/package.json +1 -1
  260. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  261. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +10 -5
  262. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +9 -4
  263. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +12 -0
  264. package/plugins/oh-my-codex/skills/team/SKILL.md +16 -0
  265. package/plugins/oh-my-codex/skills/worker/SKILL.md +14 -0
  266. package/skills/autopilot/SKILL.md +10 -5
  267. package/skills/deep-interview/SKILL.md +9 -4
  268. package/skills/ralplan/SKILL.md +12 -0
  269. package/skills/team/SKILL.md +16 -0
  270. package/skills/worker/SKILL.md +14 -0
  271. package/src/scripts/__tests__/codex-native-hook.test.ts +2202 -523
  272. package/src/scripts/codex-native-hook.ts +444 -36
  273. package/src/scripts/codex-native-pre-post.ts +80 -0
  274. package/src/scripts/hook-payload-guard.ts +113 -0
  275. package/src/scripts/notify-fallback-watcher.ts +8 -1
  276. package/src/scripts/notify-hook/__tests__/payload-guard.test.ts +41 -0
  277. package/src/scripts/notify-hook/team-worker-stop.ts +193 -52
  278. package/src/scripts/notify-hook.ts +14 -2
@@ -4,12 +4,13 @@ import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  import { after, describe, it } from 'node:test';
6
6
  import { OmxQuestionError } from '../client.js';
7
- import { readAutopilotDeepInterviewQuestionWaitState } from '../autopilot-wait.js';
7
+ import { AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV, markAutopilotDeepInterviewQuestionWaiting, readAutopilotDeepInterviewQuestionWaitState, } from '../autopilot-wait.js';
8
8
  import { reconcileDeepInterviewQuestionEnforcementFromAnsweredRecords, runDeepInterviewQuestion, } from '../deep-interview.js';
9
9
  const tempDirs = [];
10
10
  const originalOmxRoot = process.env.OMX_ROOT;
11
11
  const originalOmxStateRoot = process.env.OMX_STATE_ROOT;
12
12
  const originalOmxTeamStateRoot = process.env.OMX_TEAM_STATE_ROOT;
13
+ const originalQuestionWaitLockTimeout = process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
13
14
  async function makeRepo() {
14
15
  const cwd = await mkdtemp(join(tmpdir(), 'omx-deep-interview-question-'));
15
16
  tempDirs.push(cwd);
@@ -41,6 +42,10 @@ after(async () => {
41
42
  delete process.env.OMX_TEAM_STATE_ROOT;
42
43
  else
43
44
  process.env.OMX_TEAM_STATE_ROOT = originalOmxTeamStateRoot;
45
+ if (originalQuestionWaitLockTimeout === undefined)
46
+ delete process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
47
+ else
48
+ process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = originalQuestionWaitLockTimeout;
44
49
  await Promise.all(tempDirs.splice(0).map((dir) => rm(dir, { recursive: true, force: true })));
45
50
  });
46
51
  describe('runDeepInterviewQuestion', { concurrency: false }, () => {
@@ -229,6 +234,156 @@ describe('runDeepInterviewQuestion', { concurrency: false }, () => {
229
234
  });
230
235
  });
231
236
  describe('runDeepInterviewQuestion autopilot wait bridge', { concurrency: false }, () => {
237
+ it('does not overwrite an already pending Autopilot deep-interview question', { concurrency: false }, async () => {
238
+ const cwd = await makeRepo();
239
+ const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
240
+ const autopilotPath = join(sessionDir, 'autopilot-state.json');
241
+ await writeFile(autopilotPath, JSON.stringify({
242
+ active: true,
243
+ mode: 'autopilot',
244
+ current_phase: 'waiting-for-user',
245
+ run_outcome: 'blocked_on_user',
246
+ lifecycle_outcome: 'askuserQuestion',
247
+ session_id: 'sess-di',
248
+ state: {
249
+ deep_interview_question: {
250
+ status: 'waiting_for_user',
251
+ source: 'omx-question',
252
+ obligation_id: 'obligation-original',
253
+ previous_phase: 'deep-interview',
254
+ requested_at: '2026-04-19T00:00:00.000Z',
255
+ },
256
+ },
257
+ }, null, 2));
258
+ const started = await markAutopilotDeepInterviewQuestionWaiting(cwd, 'sess-di', {
259
+ obligation_id: 'obligation-new',
260
+ source: 'omx-question',
261
+ status: 'pending',
262
+ lifecycle_outcome: 'askuserQuestion',
263
+ requested_at: '2026-04-19T00:01:00.000Z',
264
+ });
265
+ assert.equal(started, false);
266
+ const autopilotState = JSON.parse(await readFile(autopilotPath, 'utf-8'));
267
+ assert.equal(autopilotState.state?.deep_interview_question?.obligation_id, 'obligation-original');
268
+ assert.equal(autopilotState.state?.deep_interview_question?.requested_at, '2026-04-19T00:00:00.000Z');
269
+ });
270
+ it('serializes concurrent Autopilot deep-interview question ownership claims', { concurrency: false }, async () => {
271
+ const cwd = await makeRepo();
272
+ const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
273
+ const autopilotPath = join(sessionDir, 'autopilot-state.json');
274
+ await writeFile(autopilotPath, JSON.stringify({
275
+ active: true,
276
+ mode: 'autopilot',
277
+ current_phase: 'deep-interview',
278
+ session_id: 'sess-di',
279
+ state: { deep_interview_gate: { status: 'required' } },
280
+ }, null, 2));
281
+ const obligations = Array.from({ length: 24 }, (_, index) => ({
282
+ obligation_id: `obligation-${index}`,
283
+ source: 'omx-question',
284
+ status: 'pending',
285
+ lifecycle_outcome: 'askuserQuestion',
286
+ requested_at: `2026-04-19T00:00:${String(index).padStart(2, '0')}.000Z`,
287
+ }));
288
+ const results = await Promise.all(obligations.map((obligation) => markAutopilotDeepInterviewQuestionWaiting(cwd, 'sess-di', obligation)));
289
+ assert.equal(results.filter(Boolean).length, 1);
290
+ const winningObligationIds = obligations
291
+ .filter((_, index) => results[index])
292
+ .map((obligation) => obligation.obligation_id);
293
+ assert.equal(winningObligationIds.length, 1);
294
+ const autopilotState = JSON.parse(await readFile(autopilotPath, 'utf-8'));
295
+ assert.equal(autopilotState.current_phase, 'waiting-for-user');
296
+ assert.equal(autopilotState.run_outcome, 'blocked_on_user');
297
+ assert.equal(autopilotState.lifecycle_outcome, 'askuserQuestion');
298
+ assert.equal(autopilotState.state?.deep_interview_question?.status, 'waiting_for_user');
299
+ assert.equal(autopilotState.state?.deep_interview_question?.obligation_id, winningObligationIds[0]);
300
+ });
301
+ it('blocks instead of prompting when the Autopilot wait claim cannot acquire its lock', { concurrency: false }, async () => {
302
+ const previousTimeout = process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
303
+ process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = '1';
304
+ try {
305
+ const cwd = await makeRepo();
306
+ const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
307
+ const autopilotPath = join(sessionDir, 'autopilot-state.json');
308
+ await writeFile(autopilotPath, JSON.stringify({
309
+ active: true,
310
+ mode: 'autopilot',
311
+ current_phase: 'deep-interview',
312
+ session_id: 'sess-di',
313
+ state: { deep_interview_gate: { status: 'required' } },
314
+ }, null, 2));
315
+ await mkdir(`${autopilotPath}.deep-interview-question.lock`);
316
+ let runnerCalled = false;
317
+ await assert.rejects(runDeepInterviewQuestion({ session_id: 'sess-di', question: 'Clarify?', allow_other: true }, {
318
+ cwd,
319
+ argv1: '/repo/dist/cli/omx.js',
320
+ runner: async () => {
321
+ runnerCalled = true;
322
+ return { code: 1, stdout: '', stderr: '' };
323
+ },
324
+ }), (error) => error instanceof OmxQuestionError
325
+ && error.code === 'active_execution_mode_blocked');
326
+ assert.equal(runnerCalled, false);
327
+ assert.equal(await readAutopilotDeepInterviewQuestionWaitState(cwd, 'sess-di'), null);
328
+ const deepInterviewState = JSON.parse(await readFile(join(sessionDir, 'deep-interview-state.json'), 'utf-8'));
329
+ assert.equal(deepInterviewState.question_enforcement, undefined);
330
+ }
331
+ finally {
332
+ if (previousTimeout === undefined)
333
+ delete process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
334
+ else
335
+ process.env.OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = previousTimeout;
336
+ }
337
+ });
338
+ it('fails terminally instead of replacing another pending Autopilot question owner', { concurrency: false }, async () => {
339
+ const cwd = await makeRepo();
340
+ const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
341
+ const autopilotPath = join(sessionDir, 'autopilot-state.json');
342
+ const deepInterviewPath = join(sessionDir, 'deep-interview-state.json');
343
+ await writeFile(autopilotPath, JSON.stringify({
344
+ active: true,
345
+ mode: 'autopilot',
346
+ current_phase: 'waiting-for-user',
347
+ run_outcome: 'blocked_on_user',
348
+ lifecycle_outcome: 'askuserQuestion',
349
+ session_id: 'sess-di',
350
+ state: {
351
+ deep_interview_question: {
352
+ status: 'waiting_for_user',
353
+ source: 'omx-question',
354
+ obligation_id: 'obligation-original',
355
+ previous_phase: 'deep-interview',
356
+ requested_at: '2026-04-19T00:00:00.000Z',
357
+ },
358
+ },
359
+ }, null, 2));
360
+ await writeFile(deepInterviewPath, JSON.stringify({
361
+ active: false,
362
+ mode: 'deep-interview',
363
+ session_id: 'sess-di',
364
+ question_enforcement: {
365
+ obligation_id: 'obligation-original',
366
+ source: 'omx-question',
367
+ status: 'pending',
368
+ lifecycle_outcome: 'askuserQuestion',
369
+ requested_at: '2026-04-19T00:00:00.000Z',
370
+ },
371
+ }, null, 2));
372
+ let runnerCalled = false;
373
+ await assert.rejects(runDeepInterviewQuestion({ session_id: 'sess-di', question: 'Clarify?', allow_other: true }, {
374
+ cwd,
375
+ argv1: '/repo/dist/cli/omx.js',
376
+ runner: async () => {
377
+ runnerCalled = true;
378
+ return { code: 1, stdout: '', stderr: '' };
379
+ },
380
+ }), (error) => error instanceof OmxQuestionError
381
+ && error.code === 'active_execution_mode_blocked');
382
+ assert.equal(runnerCalled, false);
383
+ const deepInterviewState = JSON.parse(await readFile(deepInterviewPath, 'utf-8'));
384
+ assert.equal(deepInterviewState.question_enforcement?.obligation_id, 'obligation-original');
385
+ assert.equal(deepInterviewState.question_enforcement?.status, 'pending');
386
+ });
232
387
  it('persists readable autopilot waiting-for-user state while omx question is in flight and restores it after answer', { concurrency: false }, async () => {
233
388
  const cwd = await makeRepo();
234
389
  const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
@@ -243,10 +398,11 @@ describe('runDeepInterviewQuestion autopilot wait bridge', { concurrency: false
243
398
  state: { deep_interview_gate: { status: 'required' } },
244
399
  }, null, 2));
245
400
  let observedWait = false;
246
- const runner = async () => {
401
+ const runner = async (_command, _args, runnerOptions) => {
247
402
  const waitState = await readAutopilotDeepInterviewQuestionWaitState(cwd, 'sess-di');
248
403
  assert.ok(waitState);
249
404
  assert.equal(waitState.previousPhase, 'deep-interview');
405
+ assert.equal(runnerOptions.env[AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV], waitState.obligationId);
250
406
  const autopilotState = JSON.parse(await readFile(autopilotPath, 'utf-8'));
251
407
  assert.equal(autopilotState.active, true);
252
408
  assert.equal(autopilotState.current_phase, 'waiting-for-user');
@@ -277,6 +433,8 @@ describe('runDeepInterviewQuestion autopilot wait bridge', { concurrency: false
277
433
  assert.equal(finalAutopilot.run_outcome, undefined);
278
434
  assert.equal(finalAutopilot.lifecycle_outcome, undefined);
279
435
  assert.equal(finalAutopilot.state?.deep_interview_question?.status, 'satisfied');
436
+ assert.equal(finalAutopilot.state?.deep_interview_question?.question_id, 'question-autopilot-1');
437
+ assert.ok(finalAutopilot.state?.deep_interview_question?.satisfied_at);
280
438
  });
281
439
  });
282
440
  //# sourceMappingURL=deep-interview.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"deep-interview.test.js","sourceRoot":"","sources":["../../../src/question/__tests__/deep-interview.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deep-interview.test.js","sourceRoot":"","sources":["../../../src/question/__tests__/deep-interview.test.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { mkdtemp, mkdir, writeFile } from 'node:fs/promises';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  import { after, describe, it } from 'node:test';
6
+ import { AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV } from '../autopilot-wait.js';
6
7
  import { evaluateQuestionPolicy } from '../policy.js';
7
8
  const tempDirs = [];
8
9
  const originalOmxRoot = process.env.OMX_ROOT;
@@ -157,7 +158,7 @@ describe('evaluateQuestionPolicy autopilot deep-interview wait', { concurrency:
157
158
  assert.equal(unrelatedSource.allowed, false);
158
159
  assert.equal(unrelatedSource.code, 'active_execution_mode_blocked');
159
160
  });
160
- it('allows only controlled autopilot deep-interview questions while preserving unrelated guards', { concurrency: false }, async () => {
161
+ it('blocks duplicate deep-interview questions while autopilot is already waiting', { concurrency: false }, async () => {
161
162
  const cwd = await makeRepo();
162
163
  const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-auto');
163
164
  await mkdir(sessionDir, { recursive: true });
@@ -184,13 +185,37 @@ describe('evaluateQuestionPolicy autopilot deep-interview wait', { concurrency:
184
185
  session_id: 'sess-auto',
185
186
  }, null, 2));
186
187
  await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({ session_id: 'sess-auto' }));
187
- const allowed = await evaluateQuestionPolicy({
188
+ const duplicateQuestion = await evaluateQuestionPolicy({
188
189
  cwd,
189
190
  explicitSessionId: 'sess-auto',
190
191
  questionSource: 'deep-interview',
191
192
  env: { ...process.env, OMX_TEAM_WORKER: '' },
192
193
  });
193
- assert.equal(allowed.allowed, true);
194
+ assert.equal(duplicateQuestion.allowed, false);
195
+ assert.equal(duplicateQuestion.code, 'active_execution_mode_blocked');
196
+ const owningQuestion = await evaluateQuestionPolicy({
197
+ cwd,
198
+ explicitSessionId: 'sess-auto',
199
+ questionSource: 'deep-interview',
200
+ env: {
201
+ ...process.env,
202
+ OMX_TEAM_WORKER: '',
203
+ [AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV]: 'obligation-1',
204
+ },
205
+ });
206
+ assert.equal(owningQuestion.allowed, true);
207
+ const wrongOwnerQuestion = await evaluateQuestionPolicy({
208
+ cwd,
209
+ explicitSessionId: 'sess-auto',
210
+ questionSource: 'deep-interview',
211
+ env: {
212
+ ...process.env,
213
+ OMX_TEAM_WORKER: '',
214
+ [AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV]: 'obligation-other',
215
+ },
216
+ });
217
+ assert.equal(wrongOwnerQuestion.allowed, false);
218
+ assert.equal(wrongOwnerQuestion.code, 'active_execution_mode_blocked');
194
219
  const unrelatedSource = await evaluateQuestionPolicy({
195
220
  cwd,
196
221
  explicitSessionId: 'sess-auto',
@@ -209,5 +234,40 @@ describe('evaluateQuestionPolicy autopilot deep-interview wait', { concurrency:
209
234
  assert.equal(unrelatedMode.allowed, false);
210
235
  assert.equal(unrelatedMode.code, 'active_execution_mode_blocked');
211
236
  });
237
+ it('rejects malformed autopilot waits that are not for the deep-interview child phase', { concurrency: false }, async () => {
238
+ const cwd = await makeRepo();
239
+ const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-auto-ralplan-wait');
240
+ await mkdir(sessionDir, { recursive: true });
241
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
242
+ mode: 'autopilot',
243
+ active: true,
244
+ current_phase: 'waiting-for-user',
245
+ run_outcome: 'blocked_on_user',
246
+ lifecycle_outcome: 'askuserQuestion',
247
+ state: {
248
+ deep_interview_question: {
249
+ status: 'waiting_for_user',
250
+ source: 'omx-question',
251
+ obligation_id: 'obligation-ralplan',
252
+ previous_phase: 'ralplan',
253
+ },
254
+ },
255
+ }, null, 2));
256
+ await writeFile(join(sessionDir, 'skill-active-state.json'), JSON.stringify({
257
+ active: true,
258
+ skill: 'autopilot',
259
+ phase: 'ralplan',
260
+ active_skills: [{ skill: 'autopilot', phase: 'ralplan', active: true, session_id: 'sess-auto-ralplan-wait' }],
261
+ session_id: 'sess-auto-ralplan-wait',
262
+ }, null, 2));
263
+ const result = await evaluateQuestionPolicy({
264
+ cwd,
265
+ explicitSessionId: 'sess-auto-ralplan-wait',
266
+ questionSource: 'deep-interview',
267
+ env: { ...process.env, OMX_TEAM_WORKER: '' },
268
+ });
269
+ assert.equal(result.allowed, false);
270
+ assert.equal(result.code, 'active_execution_mode_blocked');
271
+ });
212
272
  });
213
273
  //# sourceMappingURL=policy.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy.test.js","sourceRoot":"","sources":["../../../src/question/__tests__/policy.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.test.js","sourceRoot":"","sources":["../../../src/question/__tests__/policy.test.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import assert from 'node:assert/strict';
2
- import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
2
+ import { mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
5
  import { describe, it } from 'node:test';
6
- import { computeAdaptiveQuestionPaneHeight, formatQuestionAnswerForInjection, formatQuestionAnswersForInjection, injectQuestionAnswerToPane, injectQuestionAnswersToPane, launchQuestionRenderer, resolveQuestionRendererStrategy, } from '../renderer.js';
6
+ import { closeQuestionRenderer, computeAdaptiveQuestionPaneHeight, formatQuestionAnswerForInjection, formatQuestionAnswersForInjection, injectQuestionAnswerToPane, findLiveQuestionsForSession, injectQuestionAnswersToPane, launchQuestionRenderer, resolveQuestionRendererStrategy, supersedeLiveQuestionsForSession, } from '../renderer.js';
7
7
  import { buildSendPaneArgvs } from '../../notifications/tmux-detector.js';
8
8
  describe('resolveQuestionRendererStrategy', () => {
9
9
  it('prefers inside-tmux when TMUX is present', () => {
@@ -50,6 +50,37 @@ describe('resolveQuestionRendererStrategy', () => {
50
50
  assert.equal(resolveQuestionRendererStrategy({}, undefined), 'unsupported');
51
51
  });
52
52
  });
53
+ describe('question renderer cleanup', () => {
54
+ it('kills tmux pane renderers by target pane id', () => {
55
+ const calls = [];
56
+ const closed = closeQuestionRenderer({
57
+ renderer: 'tmux-pane',
58
+ target: '%42',
59
+ launched_at: '2026-05-11T00:00:00.000Z',
60
+ }, (args) => {
61
+ calls.push(args);
62
+ return '';
63
+ });
64
+ assert.equal(closed, true);
65
+ assert.deepEqual(calls, [['kill-pane', '-t', '%42']]);
66
+ });
67
+ it('ignores invalid, noop, and Windows process renderers during cleanup', () => {
68
+ const calls = [];
69
+ assert.equal(closeQuestionRenderer(undefined, (args) => { calls.push(args); return ''; }), false);
70
+ assert.equal(closeQuestionRenderer({
71
+ renderer: 'tmux-session',
72
+ target: 'test-noop-renderer',
73
+ launched_at: '2026-05-11T00:00:00.000Z',
74
+ }, (args) => { calls.push(args); return ''; }), false);
75
+ assert.equal(closeQuestionRenderer({
76
+ renderer: 'windows-console',
77
+ target: 'pid:1234',
78
+ pid: 1234,
79
+ launched_at: '2026-05-11T00:00:00.000Z',
80
+ }, (args) => { calls.push(args); return ''; }), false);
81
+ assert.deepEqual(calls, []);
82
+ });
83
+ });
53
84
  describe('adaptive question pane sizing', () => {
54
85
  it('computes large adaptive heights with caps and fallback-sized terminals', () => {
55
86
  assert.equal(computeAdaptiveQuestionPaneHeight(50, 10), 30);
@@ -704,4 +735,162 @@ describe('question answer injection', () => {
704
735
  assert.deepEqual(sleeps, [120, 100]);
705
736
  });
706
737
  });
738
+ describe('question renderer in-flight dedupe', () => {
739
+ function writeQuestionRecord(path, overrides) {
740
+ writeFileSync(path, JSON.stringify({
741
+ kind: 'omx.question/v1',
742
+ question_id: 'question-default',
743
+ session_id: 'sess-dedupe',
744
+ created_at: '2026-05-27T00:00:00.000Z',
745
+ updated_at: '2026-05-27T00:00:00.000Z',
746
+ status: 'prompting',
747
+ question: 'Pick one',
748
+ options: [{ label: 'A', value: 'a' }],
749
+ allow_other: false,
750
+ other_label: 'Other',
751
+ multi_select: false,
752
+ type: 'single-answerable',
753
+ questions: [{
754
+ id: 'q-1',
755
+ question: 'Pick one',
756
+ options: [{ label: 'A', value: 'a' }],
757
+ allow_other: false,
758
+ other_label: 'Other',
759
+ multi_select: false,
760
+ type: 'single-answerable',
761
+ }],
762
+ renderer: {
763
+ renderer: 'tmux-pane',
764
+ target: '%41',
765
+ launched_at: '2026-05-27T00:00:00.000Z',
766
+ },
767
+ ...overrides,
768
+ }, null, 2));
769
+ }
770
+ it('finds only live prompting question renderers for the same session', () => {
771
+ const cwd = mkdtempSync(join(tmpdir(), 'omx-question-dedupe-find-'));
772
+ try {
773
+ const dir = join(cwd, '.omx', 'state', 'sessions', 'sess-dedupe', 'questions');
774
+ mkdirSync(dir, { recursive: true });
775
+ writeQuestionRecord(join(dir, 'question-live.json'), {
776
+ question_id: 'question-live',
777
+ created_at: '2026-05-27T00:00:01.000Z',
778
+ renderer: { renderer: 'tmux-pane', target: '%41', launched_at: '2026-05-27T00:00:01.000Z' },
779
+ });
780
+ writeQuestionRecord(join(dir, 'question-dead.json'), {
781
+ question_id: 'question-dead',
782
+ created_at: '2026-05-27T00:00:02.000Z',
783
+ renderer: { renderer: 'tmux-pane', target: '%42', launched_at: '2026-05-27T00:00:02.000Z' },
784
+ });
785
+ writeQuestionRecord(join(dir, 'question-answered.json'), {
786
+ question_id: 'question-answered',
787
+ status: 'answered',
788
+ created_at: '2026-05-27T00:00:03.000Z',
789
+ renderer: { renderer: 'tmux-pane', target: '%43', launched_at: '2026-05-27T00:00:03.000Z' },
790
+ });
791
+ const live = findLiveQuestionsForSession(cwd, 'sess-dedupe', (args) => {
792
+ if (args[0] === 'list-panes' && args[2] === '%41')
793
+ return '0\t%41\n';
794
+ if (args[0] === 'list-panes' && args[2] === '%42')
795
+ throw new Error('missing pane');
796
+ if (args[0] === 'list-panes' && args[2] === '%43')
797
+ return '0\t%43\n';
798
+ return '';
799
+ });
800
+ assert.deepEqual(live.map((item) => item.record.question_id), ['question-live']);
801
+ }
802
+ finally {
803
+ rmSync(cwd, { recursive: true, force: true });
804
+ }
805
+ });
806
+ it('marks prior live prompting panes superseded and kills them before a new tmux split', () => {
807
+ const cwd = mkdtempSync(join(tmpdir(), 'omx-question-dedupe-launch-'));
808
+ try {
809
+ const dir = join(cwd, '.omx', 'state', 'sessions', 'sess-dedupe', 'questions');
810
+ mkdirSync(dir, { recursive: true });
811
+ const priorPath = join(dir, 'question-prior.json');
812
+ const nextPath = join(dir, 'question-next.json');
813
+ writeQuestionRecord(priorPath, {
814
+ question_id: 'question-prior',
815
+ renderer: {
816
+ renderer: 'tmux-pane',
817
+ target: '%41',
818
+ launched_at: '2026-05-27T00:00:00.000Z',
819
+ },
820
+ });
821
+ writeQuestionRecord(nextPath, {
822
+ question_id: 'question-next',
823
+ status: 'pending',
824
+ renderer: undefined,
825
+ });
826
+ const calls = [];
827
+ const result = launchQuestionRenderer({
828
+ cwd,
829
+ recordPath: nextPath,
830
+ sessionId: 'sess-dedupe',
831
+ nowIso: '2026-05-27T00:01:00.000Z',
832
+ env: { TMUX: '/tmp/tmux-demo', TMUX_PANE: '%11' },
833
+ }, {
834
+ strategy: 'inside-tmux',
835
+ execTmux: (args) => {
836
+ calls.push(args);
837
+ if (args[0] === 'display-message' && args.includes('#{session_attached}'))
838
+ return '1\n';
839
+ if (args[0] === 'display-message' && args.includes('#{pane_height}'))
840
+ return '40\n';
841
+ if (args[0] === 'list-panes' && args[2] === '%41')
842
+ return '0\t%41\n';
843
+ if (args[0] === 'kill-pane')
844
+ return '';
845
+ if (args[0] === 'split-window')
846
+ return '%44\n';
847
+ if (args[0] === 'list-panes' && args[2] === '%44')
848
+ return '0\t%44\n';
849
+ return '';
850
+ },
851
+ sleepSync: () => { },
852
+ });
853
+ assert.equal(result.target, '%44');
854
+ const prior = JSON.parse(readFileSync(priorPath, 'utf-8'));
855
+ assert.equal(prior.status, 'superseded');
856
+ assert.equal(prior.error?.code, 'question_superseded');
857
+ assert.equal(prior.updated_at, '2026-05-27T00:01:00.000Z');
858
+ const killIndex = calls.findIndex((call) => call.join(' ') === 'kill-pane -t %41');
859
+ const splitIndex = calls.findIndex((call) => call[0] === 'split-window');
860
+ assert.ok(killIndex >= 0);
861
+ assert.ok(splitIndex > killIndex);
862
+ }
863
+ finally {
864
+ rmSync(cwd, { recursive: true, force: true });
865
+ }
866
+ });
867
+ it('does not supersede answered records when launching a replacement renderer', () => {
868
+ const cwd = mkdtempSync(join(tmpdir(), 'omx-question-dedupe-answered-'));
869
+ try {
870
+ const dir = join(cwd, '.omx', 'state', 'sessions', 'sess-dedupe', 'questions');
871
+ mkdirSync(dir, { recursive: true });
872
+ const answeredPath = join(dir, 'question-answered.json');
873
+ writeQuestionRecord(answeredPath, {
874
+ question_id: 'question-answered',
875
+ status: 'answered',
876
+ renderer: {
877
+ renderer: 'tmux-pane',
878
+ target: '%41',
879
+ launched_at: '2026-05-27T00:00:00.000Z',
880
+ },
881
+ });
882
+ const superseded = supersedeLiveQuestionsForSession(cwd, 'sess-dedupe', (args) => {
883
+ if (args[0] === 'list-panes')
884
+ return '0\t%41\n';
885
+ throw new Error(`unexpected tmux call: ${args.join(' ')}`);
886
+ });
887
+ assert.deepEqual(superseded, []);
888
+ const answered = JSON.parse(readFileSync(answeredPath, 'utf-8'));
889
+ assert.equal(answered.status, 'answered');
890
+ }
891
+ finally {
892
+ rmSync(cwd, { recursive: true, force: true });
893
+ }
894
+ });
895
+ });
707
896
  //# sourceMappingURL=renderer.test.js.map