oh-my-codex 0.18.2 → 0.18.4

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 (233) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +1 -0
  4. package/dist/agents/__tests__/definitions.test.js +9 -0
  5. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  6. package/dist/agents/__tests__/native-config.test.js +1 -0
  7. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  8. package/dist/agents/definitions.d.ts.map +1 -1
  9. package/dist/agents/definitions.js +10 -0
  10. package/dist/agents/definitions.js.map +1 -1
  11. package/dist/auth/__tests__/config-sessions.test.d.ts +2 -0
  12. package/dist/auth/__tests__/config-sessions.test.d.ts.map +1 -0
  13. package/dist/auth/__tests__/config-sessions.test.js +48 -0
  14. package/dist/auth/__tests__/config-sessions.test.js.map +1 -0
  15. package/dist/auth/__tests__/quota-rotation.test.d.ts +2 -0
  16. package/dist/auth/__tests__/quota-rotation.test.d.ts.map +1 -0
  17. package/dist/auth/__tests__/quota-rotation.test.js +33 -0
  18. package/dist/auth/__tests__/quota-rotation.test.js.map +1 -0
  19. package/dist/auth/__tests__/redact.test.d.ts +2 -0
  20. package/dist/auth/__tests__/redact.test.d.ts.map +1 -0
  21. package/dist/auth/__tests__/redact.test.js +20 -0
  22. package/dist/auth/__tests__/redact.test.js.map +1 -0
  23. package/dist/auth/__tests__/storage.test.d.ts +2 -0
  24. package/dist/auth/__tests__/storage.test.d.ts.map +1 -0
  25. package/dist/auth/__tests__/storage.test.js +108 -0
  26. package/dist/auth/__tests__/storage.test.js.map +1 -0
  27. package/dist/auth/config.d.ts +9 -0
  28. package/dist/auth/config.d.ts.map +1 -0
  29. package/dist/auth/config.js +77 -0
  30. package/dist/auth/config.js.map +1 -0
  31. package/dist/auth/hotswap.d.ts +36 -0
  32. package/dist/auth/hotswap.d.ts.map +1 -0
  33. package/dist/auth/hotswap.js +159 -0
  34. package/dist/auth/hotswap.js.map +1 -0
  35. package/dist/auth/index.d.ts +8 -0
  36. package/dist/auth/index.d.ts.map +1 -0
  37. package/dist/auth/index.js +8 -0
  38. package/dist/auth/index.js.map +1 -0
  39. package/dist/auth/paths.d.ts +12 -0
  40. package/dist/auth/paths.d.ts.map +1 -0
  41. package/dist/auth/paths.js +78 -0
  42. package/dist/auth/paths.js.map +1 -0
  43. package/dist/auth/quota-detector.d.ts +10 -0
  44. package/dist/auth/quota-detector.d.ts.map +1 -0
  45. package/dist/auth/quota-detector.js +40 -0
  46. package/dist/auth/quota-detector.js.map +1 -0
  47. package/dist/auth/redact.d.ts +2 -0
  48. package/dist/auth/redact.d.ts.map +1 -0
  49. package/dist/auth/redact.js +26 -0
  50. package/dist/auth/redact.js.map +1 -0
  51. package/dist/auth/rotation.d.ts +9 -0
  52. package/dist/auth/rotation.d.ts.map +1 -0
  53. package/dist/auth/rotation.js +26 -0
  54. package/dist/auth/rotation.js.map +1 -0
  55. package/dist/auth/sessions.d.ts +15 -0
  56. package/dist/auth/sessions.d.ts.map +1 -0
  57. package/dist/auth/sessions.js +62 -0
  58. package/dist/auth/sessions.js.map +1 -0
  59. package/dist/auth/storage.d.ts +27 -0
  60. package/dist/auth/storage.d.ts.map +1 -0
  61. package/dist/auth/storage.js +111 -0
  62. package/dist/auth/storage.js.map +1 -0
  63. package/dist/cli/__tests__/auth.test.d.ts +2 -0
  64. package/dist/cli/__tests__/auth.test.d.ts.map +1 -0
  65. package/dist/cli/__tests__/auth.test.js +168 -0
  66. package/dist/cli/__tests__/auth.test.js.map +1 -0
  67. package/dist/cli/__tests__/doctor-warning-copy.test.js +88 -3
  68. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  69. package/dist/cli/__tests__/explore.test.js +28 -7
  70. package/dist/cli/__tests__/explore.test.js.map +1 -1
  71. package/dist/cli/__tests__/index.test.js +70 -2
  72. package/dist/cli/__tests__/index.test.js.map +1 -1
  73. package/dist/cli/__tests__/nested-help-routing.test.js +1 -0
  74. package/dist/cli/__tests__/nested-help-routing.test.js.map +1 -1
  75. package/dist/cli/__tests__/setup-agents-overwrite.test.js +30 -1
  76. package/dist/cli/__tests__/setup-agents-overwrite.test.js.map +1 -1
  77. package/dist/cli/__tests__/setup-install-mode.test.js +103 -17
  78. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  79. package/dist/cli/__tests__/setup-scope.test.js +1 -1
  80. package/dist/cli/__tests__/sparkshell-cli.test.js +2 -2
  81. package/dist/cli/__tests__/sparkshell-cli.test.js.map +1 -1
  82. package/dist/cli/auth.d.ts +4 -0
  83. package/dist/cli/auth.d.ts.map +1 -0
  84. package/dist/cli/auth.js +89 -0
  85. package/dist/cli/auth.js.map +1 -0
  86. package/dist/cli/doctor.d.ts.map +1 -1
  87. package/dist/cli/doctor.js +128 -19
  88. package/dist/cli/doctor.js.map +1 -1
  89. package/dist/cli/explore.d.ts +1 -0
  90. package/dist/cli/explore.d.ts.map +1 -1
  91. package/dist/cli/explore.js +18 -0
  92. package/dist/cli/explore.js.map +1 -1
  93. package/dist/cli/index.d.ts +20 -2
  94. package/dist/cli/index.d.ts.map +1 -1
  95. package/dist/cli/index.js +114 -10
  96. package/dist/cli/index.js.map +1 -1
  97. package/dist/cli/question.d.ts.map +1 -1
  98. package/dist/cli/question.js +5 -1
  99. package/dist/cli/question.js.map +1 -1
  100. package/dist/cli/setup.d.ts.map +1 -1
  101. package/dist/cli/setup.js +29 -57
  102. package/dist/cli/setup.js.map +1 -1
  103. package/dist/config/__tests__/deep-interview.test.d.ts +2 -0
  104. package/dist/config/__tests__/deep-interview.test.d.ts.map +1 -0
  105. package/dist/config/__tests__/deep-interview.test.js +239 -0
  106. package/dist/config/__tests__/deep-interview.test.js.map +1 -0
  107. package/dist/config/__tests__/generator-idempotent.test.js +128 -5
  108. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  109. package/dist/config/deep-interview.d.ts +22 -0
  110. package/dist/config/deep-interview.d.ts.map +1 -0
  111. package/dist/config/deep-interview.js +151 -0
  112. package/dist/config/deep-interview.js.map +1 -0
  113. package/dist/config/generator.d.ts +13 -4
  114. package/dist/config/generator.d.ts.map +1 -1
  115. package/dist/config/generator.js +154 -40
  116. package/dist/config/generator.js.map +1 -1
  117. package/dist/hooks/__tests__/agents-overlay.test.js +9 -7
  118. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  119. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +10 -1
  120. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
  121. package/dist/hooks/__tests__/consensus-execution-handoff.test.js +13 -0
  122. package/dist/hooks/__tests__/consensus-execution-handoff.test.js.map +1 -1
  123. package/dist/hooks/__tests__/explore-routing.test.js +10 -12
  124. package/dist/hooks/__tests__/explore-routing.test.js.map +1 -1
  125. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js +13 -15
  126. package/dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js.map +1 -1
  127. package/dist/hooks/__tests__/keyword-detector.test.js +301 -0
  128. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  129. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +33 -0
  130. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  131. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js +60 -0
  132. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js.map +1 -1
  133. package/dist/hooks/deep-interview-config-instruction.d.ts +3 -0
  134. package/dist/hooks/deep-interview-config-instruction.d.ts.map +1 -0
  135. package/dist/hooks/deep-interview-config-instruction.js +47 -0
  136. package/dist/hooks/deep-interview-config-instruction.js.map +1 -0
  137. package/dist/hooks/explore-routing.d.ts.map +1 -1
  138. package/dist/hooks/explore-routing.js +8 -13
  139. package/dist/hooks/explore-routing.js.map +1 -1
  140. package/dist/hooks/keyword-detector.d.ts +5 -0
  141. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  142. package/dist/hooks/keyword-detector.js +52 -8
  143. package/dist/hooks/keyword-detector.js.map +1 -1
  144. package/dist/hud/__tests__/hud-tmux-injection.test.js +19 -14
  145. package/dist/hud/__tests__/hud-tmux-injection.test.js.map +1 -1
  146. package/dist/hud/__tests__/reconcile.test.js +117 -9
  147. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  148. package/dist/hud/__tests__/tmux.test.js +103 -1
  149. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  150. package/dist/hud/index.d.ts +1 -1
  151. package/dist/hud/index.d.ts.map +1 -1
  152. package/dist/hud/index.js +24 -2
  153. package/dist/hud/index.js.map +1 -1
  154. package/dist/hud/reconcile.d.ts +1 -1
  155. package/dist/hud/reconcile.d.ts.map +1 -1
  156. package/dist/hud/reconcile.js +23 -0
  157. package/dist/hud/reconcile.js.map +1 -1
  158. package/dist/hud/tmux.d.ts +7 -0
  159. package/dist/hud/tmux.d.ts.map +1 -1
  160. package/dist/hud/tmux.js +46 -9
  161. package/dist/hud/tmux.js.map +1 -1
  162. package/dist/question/__tests__/deep-interview.test.js +80 -7
  163. package/dist/question/__tests__/deep-interview.test.js.map +1 -1
  164. package/dist/question/__tests__/policy.test.js +83 -9
  165. package/dist/question/__tests__/policy.test.js.map +1 -1
  166. package/dist/question/autopilot-wait.d.ts +10 -0
  167. package/dist/question/autopilot-wait.d.ts.map +1 -0
  168. package/dist/question/autopilot-wait.js +134 -0
  169. package/dist/question/autopilot-wait.js.map +1 -0
  170. package/dist/question/deep-interview.d.ts +2 -0
  171. package/dist/question/deep-interview.d.ts.map +1 -1
  172. package/dist/question/deep-interview.js +4 -0
  173. package/dist/question/deep-interview.js.map +1 -1
  174. package/dist/question/policy.d.ts +1 -0
  175. package/dist/question/policy.d.ts.map +1 -1
  176. package/dist/question/policy.js +19 -0
  177. package/dist/question/policy.js.map +1 -1
  178. package/dist/scripts/__tests__/codex-native-hook.test.js +718 -0
  179. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  180. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  181. package/dist/scripts/codex-native-hook.js +69 -5
  182. package/dist/scripts/codex-native-hook.js.map +1 -1
  183. package/dist/scripts/notify-hook.js +13 -0
  184. package/dist/scripts/notify-hook.js.map +1 -1
  185. package/dist/state/__tests__/planning-gate.test.d.ts +2 -0
  186. package/dist/state/__tests__/planning-gate.test.d.ts.map +1 -0
  187. package/dist/state/__tests__/planning-gate.test.js +219 -0
  188. package/dist/state/__tests__/planning-gate.test.js.map +1 -0
  189. package/dist/state/workflow-transition.d.ts +23 -0
  190. package/dist/state/workflow-transition.d.ts.map +1 -1
  191. package/dist/state/workflow-transition.js +63 -0
  192. package/dist/state/workflow-transition.js.map +1 -1
  193. package/dist/subagents/__tests__/tracker.test.js +69 -0
  194. package/dist/subagents/__tests__/tracker.test.js.map +1 -1
  195. package/dist/subagents/tracker.d.ts +5 -0
  196. package/dist/subagents/tracker.d.ts.map +1 -1
  197. package/dist/subagents/tracker.js +16 -0
  198. package/dist/subagents/tracker.js.map +1 -1
  199. package/dist/team/__tests__/tmux-session.test.js +86 -0
  200. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  201. package/dist/team/tmux-session.d.ts.map +1 -1
  202. package/dist/team/tmux-session.js +7 -0
  203. package/dist/team/tmux-session.js.map +1 -1
  204. package/dist/ultragoal/__tests__/artifacts.test.js +126 -0
  205. package/dist/ultragoal/__tests__/artifacts.test.js.map +1 -1
  206. package/dist/ultragoal/artifacts.d.ts.map +1 -1
  207. package/dist/ultragoal/artifacts.js +126 -8
  208. package/dist/ultragoal/artifacts.js.map +1 -1
  209. package/package.json +1 -1
  210. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  211. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +2 -2
  212. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +11 -1
  213. package/plugins/oh-my-codex/skills/omx-setup/SKILL.md +4 -4
  214. package/plugins/oh-my-codex/skills/plan/SKILL.md +5 -5
  215. package/plugins/oh-my-codex/skills/ralph/SKILL.md +1 -1
  216. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +10 -6
  217. package/prompts/executor.md +1 -1
  218. package/prompts/explore-harness.md +2 -2
  219. package/prompts/explore.md +1 -1
  220. package/prompts/planner.md +1 -1
  221. package/prompts/scholastic.md +11 -0
  222. package/prompts/sisyphus-lite.md +1 -1
  223. package/skills/autopilot/SKILL.md +2 -2
  224. package/skills/deep-interview/SKILL.md +11 -1
  225. package/skills/omx-setup/SKILL.md +4 -4
  226. package/skills/plan/SKILL.md +5 -5
  227. package/skills/ralph/SKILL.md +1 -1
  228. package/skills/ralplan/SKILL.md +10 -6
  229. package/src/scripts/__tests__/codex-native-hook.test.ts +853 -0
  230. package/src/scripts/codex-native-hook.ts +73 -3
  231. package/src/scripts/notify-hook.ts +15 -0
  232. package/templates/AGENTS.md +3 -3
  233. package/templates/catalog-manifest.json +5 -0
@@ -2,13 +2,20 @@ import assert from 'node:assert/strict';
2
2
  import { mkdtemp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
- import { afterEach, describe, it } from 'node:test';
5
+ import { after, describe, it } from 'node:test';
6
6
  import { OmxQuestionError } from '../client.js';
7
+ import { readAutopilotDeepInterviewQuestionWaitState } from '../autopilot-wait.js';
7
8
  import { reconcileDeepInterviewQuestionEnforcementFromAnsweredRecords, runDeepInterviewQuestion, } from '../deep-interview.js';
8
9
  const tempDirs = [];
10
+ const originalOmxRoot = process.env.OMX_ROOT;
11
+ const originalOmxStateRoot = process.env.OMX_STATE_ROOT;
12
+ const originalOmxTeamStateRoot = process.env.OMX_TEAM_STATE_ROOT;
9
13
  async function makeRepo() {
10
14
  const cwd = await mkdtemp(join(tmpdir(), 'omx-deep-interview-question-'));
11
15
  tempDirs.push(cwd);
16
+ process.env.OMX_ROOT = cwd;
17
+ delete process.env.OMX_STATE_ROOT;
18
+ delete process.env.OMX_TEAM_STATE_ROOT;
12
19
  await mkdir(join(cwd, '.omx', 'state', 'sessions', 'sess-di'), { recursive: true });
13
20
  await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({ session_id: 'sess-di' }, null, 2));
14
21
  await writeFile(join(cwd, '.omx', 'state', 'sessions', 'sess-di', 'deep-interview-state.json'), JSON.stringify({
@@ -21,11 +28,23 @@ async function makeRepo() {
21
28
  }, null, 2));
22
29
  return cwd;
23
30
  }
24
- afterEach(async () => {
31
+ after(async () => {
32
+ if (originalOmxRoot === undefined)
33
+ delete process.env.OMX_ROOT;
34
+ else
35
+ process.env.OMX_ROOT = originalOmxRoot;
36
+ if (originalOmxStateRoot === undefined)
37
+ delete process.env.OMX_STATE_ROOT;
38
+ else
39
+ process.env.OMX_STATE_ROOT = originalOmxStateRoot;
40
+ if (originalOmxTeamStateRoot === undefined)
41
+ delete process.env.OMX_TEAM_STATE_ROOT;
42
+ else
43
+ process.env.OMX_TEAM_STATE_ROOT = originalOmxTeamStateRoot;
25
44
  await Promise.all(tempDirs.splice(0).map((dir) => rm(dir, { recursive: true, force: true })));
26
45
  });
27
- describe('runDeepInterviewQuestion', () => {
28
- it('tracks a pending obligation before omx question returns and satisfies it afterward', async () => {
46
+ describe('runDeepInterviewQuestion', { concurrency: false }, () => {
47
+ it('tracks a pending obligation before omx question returns and satisfies it afterward', { concurrency: false }, async () => {
29
48
  const cwd = await makeRepo();
30
49
  const statePath = join(cwd, '.omx', 'state', 'sessions', 'sess-di', 'deep-interview-state.json');
31
50
  let inFlightQuestionStatus = '';
@@ -61,6 +80,7 @@ describe('runDeepInterviewQuestion', () => {
61
80
  };
62
81
  };
63
82
  const result = await runDeepInterviewQuestion({
83
+ session_id: 'sess-di',
64
84
  question: 'What should happen next?',
65
85
  options: [{ label: 'Launch', value: 'launch' }],
66
86
  allow_other: false,
@@ -80,10 +100,11 @@ describe('runDeepInterviewQuestion', () => {
80
100
  assert.equal(finalState.lifecycle_outcome, undefined);
81
101
  assert.equal(finalState.run_outcome, undefined);
82
102
  });
83
- it('clears the pending obligation when omx question fails after being attempted', async () => {
103
+ it('clears the pending obligation when omx question fails after being attempted', { concurrency: false }, async () => {
84
104
  const cwd = await makeRepo();
85
105
  const statePath = join(cwd, '.omx', 'state', 'sessions', 'sess-di', 'deep-interview-state.json');
86
106
  await assert.rejects(runDeepInterviewQuestion({
107
+ session_id: 'sess-di',
87
108
  question: 'What should happen next?',
88
109
  options: [{ label: 'Launch', value: 'launch' }],
89
110
  allow_other: false,
@@ -114,10 +135,11 @@ describe('runDeepInterviewQuestion', () => {
114
135
  assert.equal(finalState.lifecycle_outcome, undefined);
115
136
  assert.equal(finalState.run_outcome, undefined);
116
137
  });
117
- it('clears the pending obligation when question renderer launch fails', async () => {
138
+ it('clears the pending obligation when question renderer launch fails', { concurrency: false }, async () => {
118
139
  const cwd = await makeRepo();
119
140
  const statePath = join(cwd, '.omx', 'state', 'sessions', 'sess-di', 'deep-interview-state.json');
120
141
  await assert.rejects(runDeepInterviewQuestion({
142
+ session_id: 'sess-di',
121
143
  question: 'What should happen next?',
122
144
  options: [{ label: 'Launch', value: 'launch' }],
123
145
  allow_other: false,
@@ -148,7 +170,7 @@ describe('runDeepInterviewQuestion', () => {
148
170
  assert.equal(finalState.lifecycle_outcome, undefined);
149
171
  assert.equal(finalState.run_outcome, undefined);
150
172
  });
151
- it('reconciles a pending obligation from an already-answered same-session question record', async () => {
173
+ it('reconciles a pending obligation from an already-answered same-session question record', { concurrency: false }, async () => {
152
174
  const cwd = await makeRepo();
153
175
  const statePath = join(cwd, '.omx', 'state', 'sessions', 'sess-di', 'deep-interview-state.json');
154
176
  const questionsDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di', 'questions');
@@ -206,4 +228,55 @@ describe('runDeepInterviewQuestion', () => {
206
228
  assert.equal(finalState.run_outcome, undefined);
207
229
  });
208
230
  });
231
+ describe('runDeepInterviewQuestion autopilot wait bridge', { concurrency: false }, () => {
232
+ it('persists readable autopilot waiting-for-user state while omx question is in flight and restores it after answer', { concurrency: false }, async () => {
233
+ const cwd = await makeRepo();
234
+ const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
235
+ const autopilotPath = join(sessionDir, 'autopilot-state.json');
236
+ await writeFile(autopilotPath, JSON.stringify({
237
+ active: true,
238
+ mode: 'autopilot',
239
+ current_phase: 'deep-interview',
240
+ started_at: '2026-04-19T00:00:00.000Z',
241
+ updated_at: '2026-04-19T00:00:00.000Z',
242
+ session_id: 'sess-di',
243
+ state: { deep_interview_gate: { status: 'required' } },
244
+ }, null, 2));
245
+ let observedWait = false;
246
+ const runner = async () => {
247
+ const waitState = await readAutopilotDeepInterviewQuestionWaitState(cwd, 'sess-di');
248
+ assert.ok(waitState);
249
+ assert.equal(waitState.previousPhase, 'deep-interview');
250
+ const autopilotState = JSON.parse(await readFile(autopilotPath, 'utf-8'));
251
+ assert.equal(autopilotState.active, true);
252
+ assert.equal(autopilotState.current_phase, 'waiting-for-user');
253
+ assert.equal(autopilotState.run_outcome, 'blocked_on_user');
254
+ assert.equal(autopilotState.lifecycle_outcome, 'askuserQuestion');
255
+ assert.equal(autopilotState.state?.deep_interview_question?.status, 'waiting_for_user');
256
+ assert.ok(autopilotState.state?.deep_interview_question?.obligation_id);
257
+ observedWait = true;
258
+ return {
259
+ code: 0,
260
+ stdout: JSON.stringify({
261
+ ok: true,
262
+ question_id: 'question-autopilot-1',
263
+ session_id: 'sess-di',
264
+ questions: [{ id: 'q-1', question: 'Clarify?', options: [], allow_other: true, other_label: 'Other', type: 'single-answerable', multi_select: false, source: 'deep-interview' }],
265
+ answers: [{ question_id: 'q-1', index: 0, answer: { kind: 'freeform', value: 'answer' } }],
266
+ answer: { kind: 'freeform', value: 'answer' },
267
+ }),
268
+ stderr: '',
269
+ };
270
+ };
271
+ await runDeepInterviewQuestion({ session_id: 'sess-di', question: 'Clarify?', allow_other: true }, { cwd, argv1: '/repo/dist/cli/omx.js', runner });
272
+ assert.equal(observedWait, true);
273
+ assert.equal(await readAutopilotDeepInterviewQuestionWaitState(cwd, 'sess-di'), null);
274
+ const finalAutopilot = JSON.parse(await readFile(autopilotPath, 'utf-8'));
275
+ assert.equal(finalAutopilot.active, true);
276
+ assert.equal(finalAutopilot.current_phase, 'deep-interview');
277
+ assert.equal(finalAutopilot.run_outcome, undefined);
278
+ assert.equal(finalAutopilot.lifecycle_outcome, undefined);
279
+ assert.equal(finalAutopilot.state?.deep_interview_question?.status, 'satisfied');
280
+ });
281
+ });
209
282
  //# 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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"}
@@ -2,33 +2,51 @@ import assert from 'node:assert/strict';
2
2
  import { mkdtemp, mkdir, writeFile } from 'node:fs/promises';
3
3
  import { tmpdir } from 'node:os';
4
4
  import { join } from 'node:path';
5
- import { afterEach, describe, it } from 'node:test';
5
+ import { after, describe, it } from 'node:test';
6
6
  import { evaluateQuestionPolicy } from '../policy.js';
7
7
  const tempDirs = [];
8
+ const originalOmxRoot = process.env.OMX_ROOT;
9
+ const originalOmxStateRoot = process.env.OMX_STATE_ROOT;
10
+ const originalOmxTeamStateRoot = process.env.OMX_TEAM_STATE_ROOT;
8
11
  async function makeRepo() {
9
12
  const cwd = await mkdtemp(join(tmpdir(), 'omx-question-policy-'));
10
13
  tempDirs.push(cwd);
14
+ process.env.OMX_ROOT = cwd;
15
+ delete process.env.OMX_STATE_ROOT;
16
+ delete process.env.OMX_TEAM_STATE_ROOT;
11
17
  await mkdir(join(cwd, '.omx', 'state'), { recursive: true });
12
18
  return cwd;
13
19
  }
14
- afterEach(async () => {
20
+ after(async () => {
21
+ if (originalOmxRoot === undefined)
22
+ delete process.env.OMX_ROOT;
23
+ else
24
+ process.env.OMX_ROOT = originalOmxRoot;
25
+ if (originalOmxStateRoot === undefined)
26
+ delete process.env.OMX_STATE_ROOT;
27
+ else
28
+ process.env.OMX_STATE_ROOT = originalOmxStateRoot;
29
+ if (originalOmxTeamStateRoot === undefined)
30
+ delete process.env.OMX_TEAM_STATE_ROOT;
31
+ else
32
+ process.env.OMX_TEAM_STATE_ROOT = originalOmxTeamStateRoot;
15
33
  await Promise.all(tempDirs.splice(0).map((dir) => import('node:fs/promises').then(({ rm }) => rm(dir, { recursive: true, force: true }))));
16
34
  });
17
- describe('evaluateQuestionPolicy', () => {
18
- it('allows non-team leader sessions with no blocked modes', async () => {
35
+ describe('evaluateQuestionPolicy', { concurrency: false }, () => {
36
+ it('allows non-team leader sessions with no blocked modes', { concurrency: false }, async () => {
19
37
  const cwd = await makeRepo();
20
38
  await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({ session_id: 'sess-1' }));
21
39
  const result = await evaluateQuestionPolicy({ cwd, explicitSessionId: 'sess-1', env: { ...process.env, OMX_TEAM_WORKER: '' } });
22
40
  assert.equal(result.allowed, true);
23
41
  });
24
- it('blocks worker contexts immediately', async () => {
42
+ it('blocks worker contexts immediately', { concurrency: false }, async () => {
25
43
  const cwd = await makeRepo();
26
44
  const result = await evaluateQuestionPolicy({ cwd, explicitSessionId: 'sess-1', env: { ...process.env, OMX_TEAM_WORKER: 'demo/worker-1' } });
27
45
  assert.equal(result.allowed, false);
28
46
  assert.equal(result.code, 'worker_blocked');
29
47
  assert.equal(result.fallbackAllowed, false);
30
48
  });
31
- it('blocks canonical active team ownership for the current session', async () => {
49
+ it('blocks canonical active team ownership for the current session', { concurrency: false }, async () => {
32
50
  const cwd = await makeRepo();
33
51
  const teamRoot = join(cwd, '.omx', 'state', 'team', 'alpha');
34
52
  await mkdir(teamRoot, { recursive: true });
@@ -52,22 +70,24 @@ describe('evaluateQuestionPolicy', () => {
52
70
  resize_hook_target: null,
53
71
  }));
54
72
  await writeFile(join(teamRoot, 'phase.json'), JSON.stringify({ current_phase: 'team-exec', max_fix_attempts: 3, current_fix_attempt: 0, transitions: [], updated_at: new Date().toISOString() }));
73
+ await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({ session_id: 'sess-team' }));
55
74
  const result = await evaluateQuestionPolicy({ cwd, explicitSessionId: 'sess-team', env: { ...process.env, OMX_TEAM_WORKER: '' } });
56
75
  assert.equal(result.allowed, false);
57
76
  assert.equal(result.code, 'team_blocked');
58
77
  assert.equal(result.fallbackAllowed, false);
59
78
  });
60
- it('blocks active execution-like workflows for the current session', async () => {
79
+ it('blocks active execution-like workflows for the current session', { concurrency: false }, async () => {
61
80
  const cwd = await makeRepo();
62
81
  const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-ralph');
63
82
  await mkdir(sessionDir, { recursive: true });
64
83
  await writeFile(join(sessionDir, 'ralph-state.json'), JSON.stringify({ mode: 'ralph', active: true }));
84
+ await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({ session_id: 'sess-ralph' }));
65
85
  const result = await evaluateQuestionPolicy({ cwd, explicitSessionId: 'sess-ralph', env: { ...process.env, OMX_TEAM_WORKER: '' } });
66
86
  assert.equal(result.allowed, false);
67
87
  assert.equal(result.code, 'active_execution_mode_blocked');
68
88
  assert.equal(result.fallbackAllowed, false);
69
89
  });
70
- it('does not falsely block from another session team state', async () => {
90
+ it('does not falsely block from another session team state', { concurrency: false }, async () => {
71
91
  const cwd = await makeRepo();
72
92
  const teamRoot = join(cwd, '.omx', 'state', 'team', 'beta');
73
93
  await mkdir(teamRoot, { recursive: true });
@@ -94,7 +114,7 @@ describe('evaluateQuestionPolicy', () => {
94
114
  const result = await evaluateQuestionPolicy({ cwd, explicitSessionId: 'sess-main', env: { ...process.env, OMX_TEAM_WORKER: '' } });
95
115
  assert.equal(result.allowed, true);
96
116
  });
97
- it('allows deep-interview state when no execution-like workflow is active', async () => {
117
+ it('allows deep-interview state when no execution-like workflow is active', { concurrency: false }, async () => {
98
118
  const cwd = await makeRepo();
99
119
  const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-di');
100
120
  await mkdir(sessionDir, { recursive: true });
@@ -104,4 +124,58 @@ describe('evaluateQuestionPolicy', () => {
104
124
  assert.equal(result.fallbackAllowed, true);
105
125
  });
106
126
  });
127
+ describe('evaluateQuestionPolicy autopilot deep-interview wait', { concurrency: false }, () => {
128
+ it('allows only controlled autopilot deep-interview questions while preserving unrelated guards', { concurrency: false }, async () => {
129
+ const cwd = await makeRepo();
130
+ const sessionDir = join(cwd, '.omx', 'state', 'sessions', 'sess-auto');
131
+ await mkdir(sessionDir, { recursive: true });
132
+ await writeFile(join(sessionDir, 'autopilot-state.json'), JSON.stringify({
133
+ mode: 'autopilot',
134
+ active: true,
135
+ current_phase: 'waiting-for-user',
136
+ run_outcome: 'blocked_on_user',
137
+ lifecycle_outcome: 'askuserQuestion',
138
+ state: {
139
+ deep_interview_question: {
140
+ status: 'waiting_for_user',
141
+ source: 'omx-question',
142
+ obligation_id: 'obligation-1',
143
+ previous_phase: 'deep-interview',
144
+ },
145
+ },
146
+ }, null, 2));
147
+ await writeFile(join(sessionDir, 'skill-active-state.json'), JSON.stringify({
148
+ active: true,
149
+ skill: 'autopilot',
150
+ phase: 'deep-interview',
151
+ active_skills: [{ skill: 'autopilot', phase: 'deep-interview', active: true, session_id: 'sess-auto' }],
152
+ session_id: 'sess-auto',
153
+ }, null, 2));
154
+ await writeFile(join(cwd, '.omx', 'state', 'session.json'), JSON.stringify({ session_id: 'sess-auto' }));
155
+ const allowed = await evaluateQuestionPolicy({
156
+ cwd,
157
+ explicitSessionId: 'sess-auto',
158
+ questionSource: 'deep-interview',
159
+ env: { ...process.env, OMX_TEAM_WORKER: '' },
160
+ });
161
+ assert.equal(allowed.allowed, true);
162
+ const unrelatedSource = await evaluateQuestionPolicy({
163
+ cwd,
164
+ explicitSessionId: 'sess-auto',
165
+ questionSource: 'implementation',
166
+ env: { ...process.env, OMX_TEAM_WORKER: '' },
167
+ });
168
+ assert.equal(unrelatedSource.allowed, false);
169
+ assert.equal(unrelatedSource.code, 'active_execution_mode_blocked');
170
+ await writeFile(join(sessionDir, 'ralph-state.json'), JSON.stringify({ mode: 'ralph', active: true }));
171
+ const unrelatedMode = await evaluateQuestionPolicy({
172
+ cwd,
173
+ explicitSessionId: 'sess-auto',
174
+ questionSource: 'deep-interview',
175
+ env: { ...process.env, OMX_TEAM_WORKER: '' },
176
+ });
177
+ assert.equal(unrelatedMode.allowed, false);
178
+ assert.equal(unrelatedMode.code, 'active_execution_mode_blocked');
179
+ });
180
+ });
107
181
  //# 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":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,QAAQ,GAAa,EAAE,CAAC;AAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7C,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;AACxD,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;AAEjE,KAAK,UAAU,QAAQ;IACrB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAClE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;IAC3B,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAClC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACvC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,CAAC,KAAK,IAAI,EAAE;IACf,IAAI,eAAe,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;;QAC1D,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,eAAe,CAAC;IAC5C,IAAI,oBAAoB,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;;QACrE,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,oBAAoB,CAAC;IACvD,IAAI,wBAAwB,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;;QAC9E,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,wBAAwB,CAAC;IAChE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7I,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,wBAAwB,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;IAC9D,EAAE,CAAC,uDAAuD,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC7B,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACtG,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAChI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QAC1E,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;QAC7I,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC5C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QACtG,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;YACjE,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE;YACnF,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,8BAA8B,EAAE,uBAAuB,EAAE,IAAI,EAAE;YACjJ,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE;YACjE,iBAAiB,EAAE,SAAS;YAC5B,oBAAoB,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE;YACnF,YAAY,EAAE,SAAS;YACvB,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,IAAI;YACtB,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAClM,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACnI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAC1C,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QACtG,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACxE,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;QAC1G,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACpI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QAC9F,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;YACjE,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE;YACpF,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,8BAA8B,EAAE,uBAAuB,EAAE,IAAI,EAAE;YACjJ,UAAU,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE;YACjE,iBAAiB,EAAE,SAAS;YAC5B,oBAAoB,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,OAAO,EAAE;YACnF,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,CAAC;YACf,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACpC,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,IAAI;YACtB,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAC,CAAC;QACJ,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAE,mBAAmB,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAClM,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACnI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QAC7G,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACrE,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,2BAA2B,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACzH,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACjI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sDAAsD,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;IAC5F,EAAE,CAAC,6FAA6F,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,IAAI,EAAE;QACnI,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QACvE,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,sBAAsB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;YACvE,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,kBAAkB;YACjC,WAAW,EAAE,iBAAiB;YAC9B,iBAAiB,EAAE,iBAAiB;YACpC,KAAK,EAAE;gBACL,uBAAuB,EAAE;oBACvB,MAAM,EAAE,kBAAkB;oBAC1B,MAAM,EAAE,cAAc;oBACtB,aAAa,EAAE,cAAc;oBAC7B,cAAc,EAAE,gBAAgB;iBACjC;aACF;SACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACb,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,yBAAyB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;YAC1E,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,gBAAgB;YACvB,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;YACvG,UAAU,EAAE,WAAW;SACxB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEb,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QACzG,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;YAC3C,GAAG;YACH,iBAAiB,EAAE,WAAW;YAC9B,cAAc,EAAE,gBAAgB;YAChC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAEpC,MAAM,eAAe,GAAG,MAAM,sBAAsB,CAAC;YACnD,GAAG;YACH,iBAAiB,EAAE,WAAW;YAC9B,cAAc,EAAE,gBAAgB;YAChC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;QAEpE,MAAM,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvG,MAAM,aAAa,GAAG,MAAM,sBAAsB,CAAC;YACjD,GAAG;YACH,iBAAiB,EAAE,WAAW;YAC9B,cAAc,EAAE,gBAAgB;YAChC,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,EAAE,EAAE;SAC7C,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,+BAA+B,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { DeepInterviewQuestionEnforcementState } from './deep-interview.js';
2
+ export interface AutopilotDeepInterviewQuestionWaitState {
3
+ obligationId: string;
4
+ previousPhase: string;
5
+ requestedAt?: string;
6
+ }
7
+ export declare function readAutopilotDeepInterviewQuestionWaitState(cwd: string, sessionId?: string): Promise<AutopilotDeepInterviewQuestionWaitState | null>;
8
+ export declare function markAutopilotDeepInterviewQuestionWaiting(cwd: string, sessionId: string | undefined, obligation: DeepInterviewQuestionEnforcementState): Promise<boolean>;
9
+ export declare function resolveAutopilotDeepInterviewQuestionWaiting(cwd: string, sessionId: string | undefined, obligationId: string, status: 'satisfied' | 'cleared'): Promise<boolean>;
10
+ //# sourceMappingURL=autopilot-wait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autopilot-wait.d.ts","sourceRoot":"","sources":["../../src/question/autopilot-wait.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAIjF,MAAM,WAAW,uCAAuC;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA6BD,wBAAsB,2CAA2C,CAC/D,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,uCAAuC,GAAG,IAAI,CAAC,CAuBzD;AAED,wBAAsB,yCAAyC,CAC7D,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,UAAU,EAAE,qCAAqC,GAChD,OAAO,CAAC,OAAO,CAAC,CAmClB;AAED,wBAAsB,4CAA4C,CAChE,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,WAAW,GAAG,SAAS,GAC9B,OAAO,CAAC,OAAO,CAAC,CAyClB"}
@@ -0,0 +1,134 @@
1
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
+ import { dirname } from 'node:path';
3
+ import { getStateFilePath } from '../mcp/state-paths.js';
4
+ const AUTOPILOT_STATE_FILE = 'autopilot-state.json';
5
+ function safeString(value) {
6
+ return typeof value === 'string' ? value.trim() : '';
7
+ }
8
+ function safeObject(value) {
9
+ return value && typeof value === 'object' ? value : {};
10
+ }
11
+ function normalizePhase(value) {
12
+ return safeString(value).toLowerCase().replace(/_/g, '-');
13
+ }
14
+ async function readAutopilotState(cwd, sessionId) {
15
+ const statePath = getStateFilePath(AUTOPILOT_STATE_FILE, cwd, sessionId);
16
+ try {
17
+ return JSON.parse(await readFile(statePath, 'utf-8'));
18
+ }
19
+ catch {
20
+ return null;
21
+ }
22
+ }
23
+ async function writeAutopilotState(cwd, sessionId, state) {
24
+ const statePath = getStateFilePath(AUTOPILOT_STATE_FILE, cwd, sessionId);
25
+ await mkdir(dirname(statePath), { recursive: true });
26
+ await writeFile(statePath, `${JSON.stringify(state, null, 2)}\n`);
27
+ }
28
+ export async function readAutopilotDeepInterviewQuestionWaitState(cwd, sessionId) {
29
+ const state = await readAutopilotState(cwd, sessionId);
30
+ if (!state || safeString(state.mode) !== 'autopilot')
31
+ return null;
32
+ const nestedState = safeObject(state.state);
33
+ const wait = safeObject(nestedState.deep_interview_question);
34
+ const obligationId = safeString(wait.obligation_id);
35
+ if (!obligationId)
36
+ return null;
37
+ if (safeString(wait.status) !== 'waiting_for_user')
38
+ return null;
39
+ if (safeString(wait.source) !== 'omx-question')
40
+ return null;
41
+ const phase = normalizePhase(state.current_phase);
42
+ const runOutcome = safeString(state.run_outcome);
43
+ const lifecycleOutcome = safeString(state.lifecycle_outcome);
44
+ if (phase !== 'waiting-for-user')
45
+ return null;
46
+ if (runOutcome && runOutcome !== 'blocked_on_user')
47
+ return null;
48
+ if (lifecycleOutcome && lifecycleOutcome !== 'askuserQuestion')
49
+ return null;
50
+ return {
51
+ obligationId,
52
+ previousPhase: safeString(wait.previous_phase) || 'deep-interview',
53
+ requestedAt: safeString(wait.requested_at) || undefined,
54
+ };
55
+ }
56
+ export async function markAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation) {
57
+ if (!safeString(sessionId))
58
+ return false;
59
+ const state = await readAutopilotState(cwd, sessionId);
60
+ if (!state || safeString(state.mode) !== 'autopilot' || state.active !== true)
61
+ return false;
62
+ const currentPhase = safeString(state.current_phase) || 'deep-interview';
63
+ if (normalizePhase(currentPhase) !== 'deep-interview')
64
+ return false;
65
+ const nestedState = safeObject(state.state);
66
+ const wait = {
67
+ status: 'waiting_for_user',
68
+ source: 'omx-question',
69
+ obligation_id: obligation.obligation_id,
70
+ previous_phase: currentPhase,
71
+ previous_run_outcome: state.run_outcome ?? null,
72
+ previous_lifecycle_outcome: state.lifecycle_outcome ?? null,
73
+ requested_at: obligation.requested_at,
74
+ updated_at: new Date().toISOString(),
75
+ };
76
+ const nextState = {
77
+ ...state,
78
+ active: true,
79
+ current_phase: 'waiting-for-user',
80
+ run_outcome: 'blocked_on_user',
81
+ lifecycle_outcome: 'askuserQuestion',
82
+ updated_at: new Date().toISOString(),
83
+ state: {
84
+ ...nestedState,
85
+ deep_interview_question: wait,
86
+ },
87
+ };
88
+ await writeAutopilotState(cwd, sessionId, nextState);
89
+ return true;
90
+ }
91
+ export async function resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligationId, status) {
92
+ if (!safeString(sessionId) || !safeString(obligationId))
93
+ return false;
94
+ const state = await readAutopilotState(cwd, sessionId);
95
+ if (!state || safeString(state.mode) !== 'autopilot')
96
+ return false;
97
+ const nestedState = safeObject(state.state);
98
+ const wait = safeObject(nestedState.deep_interview_question);
99
+ if (safeString(wait.obligation_id) !== obligationId)
100
+ return false;
101
+ if (safeString(wait.status) !== 'waiting_for_user')
102
+ return false;
103
+ const previousRunOutcome = wait.previous_run_outcome;
104
+ const previousLifecycleOutcome = wait.previous_lifecycle_outcome;
105
+ const nextState = {
106
+ ...state,
107
+ active: true,
108
+ current_phase: safeString(wait.previous_phase) || 'deep-interview',
109
+ updated_at: new Date().toISOString(),
110
+ state: {
111
+ ...nestedState,
112
+ deep_interview_question: {
113
+ ...wait,
114
+ status,
115
+ resolved_at: new Date().toISOString(),
116
+ },
117
+ },
118
+ };
119
+ if (typeof previousRunOutcome === 'string' && previousRunOutcome.trim()) {
120
+ nextState.run_outcome = previousRunOutcome;
121
+ }
122
+ else {
123
+ delete nextState.run_outcome;
124
+ }
125
+ if (typeof previousLifecycleOutcome === 'string' && previousLifecycleOutcome.trim()) {
126
+ nextState.lifecycle_outcome = previousLifecycleOutcome;
127
+ }
128
+ else {
129
+ delete nextState.lifecycle_outcome;
130
+ }
131
+ await writeAutopilotState(cwd, sessionId, nextState);
132
+ return true;
133
+ }
134
+ //# sourceMappingURL=autopilot-wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autopilot-wait.js","sourceRoot":"","sources":["../../src/question/autopilot-wait.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { type OmxQuestionClientOptions, type OmxQuestionSuccessPayload } from './client.js';
2
2
  import type { TerminalLifecycleOutcome } from '../runtime/terminal-lifecycle.js';
3
3
  import type { QuestionInput } from './types.js';
4
+ import type { DownstreamAuthority } from '../state/workflow-transition.js';
4
5
  export interface DeepInterviewQuestionEnforcementState {
5
6
  obligation_id: string;
6
7
  source: 'omx-question';
@@ -16,6 +17,7 @@ interface DeepInterviewStateRecord {
16
17
  updated_at?: string;
17
18
  lifecycle_outcome?: TerminalLifecycleOutcome;
18
19
  question_enforcement?: DeepInterviewQuestionEnforcementState;
20
+ downstream_authority?: DownstreamAuthority;
19
21
  [key: string]: unknown;
20
22
  }
21
23
  export declare function createDeepInterviewQuestionObligation(now?: Date): DeepInterviewQuestionEnforcementState;
@@ -1 +1 @@
1
- {"version":3,"file":"deep-interview.d.ts","sourceRoot":"","sources":["../../src/question/deep-interview.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAC;AAIhE,MAAM,WAAW,qCAAqC;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;CAC9C;AAED,UAAU,wBAAwB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,oBAAoB,CAAC,EAAE,qCAAqC,CAAC;IAC7D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAuCD,wBAAgB,qCAAqC,CACnD,GAAG,OAAa,GACf,qCAAqC,CAQvC;AAED,wBAAgB,yCAAyC,CACvD,WAAW,EAAE,OAAO,CAAC,qCAAqC,CAAC,GAAG,IAAI,GAAG,SAAS,GAC7E,WAAW,IAAI,qCAAqC,CAGtD;AAED,wBAAgB,sCAAsC,CACpD,WAAW,EAAE,qCAAqC,EAClD,UAAU,EAAE,MAAM,EAClB,GAAG,OAAa,GACf,qCAAqC,CASvC;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,qCAAqC,GAAG,SAAS,EAC9D,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EACrC,GAAG,OAAa,GACf,qCAAqC,GAAG,SAAS,CASnD;AAmED,wBAAsB,sCAAsC,CAC1D,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,CACP,OAAO,EAAE,qCAAqC,GAAG,SAAS,KACvD,qCAAqC,GAAG,SAAS,GACrD,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAiC1C;AAED,wBAAsB,4DAA4D,CAChF,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,GAAG,OAAa,GACf,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CA2B1C;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EACpD,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,yBAAyB,CAAC,CA4CpC"}
1
+ {"version":3,"file":"deep-interview.d.ts","sourceRoot":"","sources":["../../src/question/deep-interview.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAkB,MAAM,YAAY,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAQ3E,MAAM,WAAW,qCAAqC;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;IACvB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;CAC9C;AAED,UAAU,wBAAwB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAC7C,oBAAoB,CAAC,EAAE,qCAAqC,CAAC;IAC7D,oBAAoB,CAAC,EAAE,mBAAmB,CAAC;IAC3C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAuCD,wBAAgB,qCAAqC,CACnD,GAAG,OAAa,GACf,qCAAqC,CAQvC;AAED,wBAAgB,yCAAyC,CACvD,WAAW,EAAE,OAAO,CAAC,qCAAqC,CAAC,GAAG,IAAI,GAAG,SAAS,GAC7E,WAAW,IAAI,qCAAqC,CAGtD;AAED,wBAAgB,sCAAsC,CACpD,WAAW,EAAE,qCAAqC,EAClD,UAAU,EAAE,MAAM,EAClB,GAAG,OAAa,GACf,qCAAqC,CASvC;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,qCAAqC,GAAG,SAAS,EAC9D,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EACrC,GAAG,OAAa,GACf,qCAAqC,GAAG,SAAS,CASnD;AAmED,wBAAsB,sCAAsC,CAC1D,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,CACP,OAAO,EAAE,qCAAqC,GAAG,SAAS,KACvD,qCAAqC,GAAG,SAAS,GACrD,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAiC1C;AAED,wBAAsB,4DAA4D,CAChF,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,GAAG,OAAa,GACf,OAAO,CAAC,wBAAwB,GAAG,IAAI,CAAC,CA2B1C;AAED,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EACpD,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,yBAAyB,CAAC,CAyDpC"}
@@ -3,6 +3,7 @@ import { dirname, join } from 'node:path';
3
3
  import { getStateFilePath, readCurrentSessionId } from '../mcp/state-paths.js';
4
4
  import { runOmxQuestion, } from './client.js';
5
5
  import { getQuestionRecordPath, getQuestionStateDir, readQuestionRecord, } from './state.js';
6
+ import { markAutopilotDeepInterviewQuestionWaiting, resolveAutopilotDeepInterviewQuestionWaiting, } from './autopilot-wait.js';
6
7
  const DEEP_INTERVIEW_STATE_FILE = 'deep-interview-state.json';
7
8
  function safeString(value) {
8
9
  return typeof value === 'string' ? value : '';
@@ -175,6 +176,7 @@ export async function runDeepInterviewQuestion(input, options = {}) {
175
176
  const sessionId = safeString(input.session_id).trim() || await readCurrentSessionId(cwd);
176
177
  const obligation = createDeepInterviewQuestionObligation();
177
178
  await updateDeepInterviewQuestionEnforcement(cwd, sessionId, () => obligation);
179
+ await markAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation);
178
180
  try {
179
181
  const result = await runOmxQuestion({
180
182
  ...input,
@@ -184,12 +186,14 @@ export async function runDeepInterviewQuestion(input, options = {}) {
184
186
  await updateDeepInterviewQuestionEnforcement(cwd, sessionId, (current) => (current?.obligation_id === obligation.obligation_id
185
187
  ? satisfyDeepInterviewQuestionObligation(current, result.question_id)
186
188
  : current));
189
+ await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'satisfied');
187
190
  return result;
188
191
  }
189
192
  catch (error) {
190
193
  await updateDeepInterviewQuestionEnforcement(cwd, sessionId, (current) => (current?.obligation_id === obligation.obligation_id
191
194
  ? clearDeepInterviewQuestionObligation(current, 'error')
192
195
  : current));
196
+ await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'cleared');
193
197
  throw error;
194
198
  }
195
199
  }