oh-my-codex 0.18.6 → 0.18.8

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 (444) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +59 -10
  4. package/crates/omx-sparkshell/tests/execution.rs +1 -1
  5. package/dist/agents/__tests__/definitions.test.js +11 -0
  6. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  7. package/dist/agents/__tests__/native-config.test.js +56 -6
  8. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  9. package/dist/agents/definitions.d.ts +10 -0
  10. package/dist/agents/definitions.d.ts.map +1 -1
  11. package/dist/agents/definitions.js +5 -1
  12. package/dist/agents/definitions.js.map +1 -1
  13. package/dist/agents/native-config.d.ts +5 -1
  14. package/dist/agents/native-config.d.ts.map +1 -1
  15. package/dist/agents/native-config.js +19 -4
  16. package/dist/agents/native-config.js.map +1 -1
  17. package/dist/autopilot/__tests__/fsm.test.d.ts +2 -0
  18. package/dist/autopilot/__tests__/fsm.test.d.ts.map +1 -0
  19. package/dist/autopilot/__tests__/fsm.test.js +75 -0
  20. package/dist/autopilot/__tests__/fsm.test.js.map +1 -0
  21. package/dist/autopilot/__tests__/ralplan-gate.test.d.ts +2 -0
  22. package/dist/autopilot/__tests__/ralplan-gate.test.d.ts.map +1 -0
  23. package/dist/autopilot/__tests__/ralplan-gate.test.js +79 -0
  24. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -0
  25. package/dist/autopilot/deep-interview-gate.d.ts +18 -0
  26. package/dist/autopilot/deep-interview-gate.d.ts.map +1 -0
  27. package/dist/autopilot/deep-interview-gate.js +256 -0
  28. package/dist/autopilot/deep-interview-gate.js.map +1 -0
  29. package/dist/autopilot/fsm.d.ts +13 -0
  30. package/dist/autopilot/fsm.d.ts.map +1 -0
  31. package/dist/autopilot/fsm.js +70 -0
  32. package/dist/autopilot/fsm.js.map +1 -0
  33. package/dist/autopilot/ralplan-gate.d.ts +17 -0
  34. package/dist/autopilot/ralplan-gate.d.ts.map +1 -0
  35. package/dist/autopilot/ralplan-gate.js +61 -0
  36. package/dist/autopilot/ralplan-gate.js.map +1 -0
  37. package/dist/cli/__tests__/codex-plugin-layout.test.js +512 -1
  38. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
  39. package/dist/cli/__tests__/doctor-warning-copy.test.js +39 -0
  40. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  41. package/dist/cli/__tests__/index.test.js +83 -7
  42. package/dist/cli/__tests__/index.test.js.map +1 -1
  43. package/dist/cli/__tests__/launch-fallback.test.js +175 -6
  44. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  45. package/dist/cli/__tests__/package-bin-contract.test.js +8 -4
  46. package/dist/cli/__tests__/package-bin-contract.test.js.map +1 -1
  47. package/dist/cli/__tests__/question.test.js +100 -0
  48. package/dist/cli/__tests__/question.test.js.map +1 -1
  49. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +13 -0
  50. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -1
  51. package/dist/cli/__tests__/ralph.test.js +14 -0
  52. package/dist/cli/__tests__/ralph.test.js.map +1 -1
  53. package/dist/cli/__tests__/setup-install-mode.test.js +89 -0
  54. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  55. package/dist/cli/__tests__/setup-refresh.test.js +83 -0
  56. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  57. package/dist/cli/__tests__/state.test.js +21 -0
  58. package/dist/cli/__tests__/state.test.js.map +1 -1
  59. package/dist/cli/__tests__/team.test.js +2 -2
  60. package/dist/cli/__tests__/team.test.js.map +1 -1
  61. package/dist/cli/__tests__/update.test.js +110 -2
  62. package/dist/cli/__tests__/update.test.js.map +1 -1
  63. package/dist/cli/doctor.d.ts.map +1 -1
  64. package/dist/cli/doctor.js +8 -1
  65. package/dist/cli/doctor.js.map +1 -1
  66. package/dist/cli/index.d.ts +14 -3
  67. package/dist/cli/index.d.ts.map +1 -1
  68. package/dist/cli/index.js +298 -50
  69. package/dist/cli/index.js.map +1 -1
  70. package/dist/cli/plugin-marketplace.d.ts +14 -2
  71. package/dist/cli/plugin-marketplace.d.ts.map +1 -1
  72. package/dist/cli/plugin-marketplace.js +62 -15
  73. package/dist/cli/plugin-marketplace.js.map +1 -1
  74. package/dist/cli/question.d.ts.map +1 -1
  75. package/dist/cli/question.js +36 -5
  76. package/dist/cli/question.js.map +1 -1
  77. package/dist/cli/ralph.d.ts.map +1 -1
  78. package/dist/cli/ralph.js +3 -1
  79. package/dist/cli/ralph.js.map +1 -1
  80. package/dist/cli/setup-preferences.d.ts +2 -0
  81. package/dist/cli/setup-preferences.d.ts.map +1 -1
  82. package/dist/cli/setup-preferences.js +4 -0
  83. package/dist/cli/setup-preferences.js.map +1 -1
  84. package/dist/cli/setup.d.ts +3 -0
  85. package/dist/cli/setup.d.ts.map +1 -1
  86. package/dist/cli/setup.js +166 -27
  87. package/dist/cli/setup.js.map +1 -1
  88. package/dist/cli/state.d.ts.map +1 -1
  89. package/dist/cli/state.js +8 -1
  90. package/dist/cli/state.js.map +1 -1
  91. package/dist/cli/tmux-hook.d.ts.map +1 -1
  92. package/dist/cli/tmux-hook.js +16 -0
  93. package/dist/cli/tmux-hook.js.map +1 -1
  94. package/dist/cli/update.d.ts +2 -0
  95. package/dist/cli/update.d.ts.map +1 -1
  96. package/dist/cli/update.js +47 -3
  97. package/dist/cli/update.js.map +1 -1
  98. package/dist/config/__tests__/deep-interview.test.js +7 -6
  99. package/dist/config/__tests__/deep-interview.test.js.map +1 -1
  100. package/dist/config/__tests__/generator-notify.test.js +1 -0
  101. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  102. package/dist/config/deep-interview.d.ts.map +1 -1
  103. package/dist/config/deep-interview.js +14 -4
  104. package/dist/config/deep-interview.js.map +1 -1
  105. package/dist/config/generator.d.ts +2 -2
  106. package/dist/config/generator.d.ts.map +1 -1
  107. package/dist/config/generator.js +2 -2
  108. package/dist/config/generator.js.map +1 -1
  109. package/dist/config/team-mode.d.ts +12 -0
  110. package/dist/config/team-mode.d.ts.map +1 -0
  111. package/dist/config/team-mode.js +91 -0
  112. package/dist/config/team-mode.js.map +1 -0
  113. package/dist/hooks/__tests__/agents-overlay.test.js +88 -0
  114. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  115. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +8 -0
  116. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
  117. package/dist/hooks/__tests__/code-review-skill-contract.test.js +8 -0
  118. package/dist/hooks/__tests__/code-review-skill-contract.test.js.map +1 -1
  119. package/dist/hooks/__tests__/deep-interview-contract.test.js +10 -0
  120. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  121. package/dist/hooks/__tests__/keyword-detector.test.js +1072 -14
  122. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  123. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +64 -1
  124. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  125. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +189 -0
  126. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
  127. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +35 -2
  128. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  129. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +3 -3
  130. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
  131. package/dist/hooks/__tests__/session.test.js +25 -0
  132. package/dist/hooks/__tests__/session.test.js.map +1 -1
  133. package/dist/hooks/__tests__/skill-guidance-contract.test.js +21 -0
  134. package/dist/hooks/__tests__/skill-guidance-contract.test.js.map +1 -1
  135. package/dist/hooks/agents-overlay.d.ts.map +1 -1
  136. package/dist/hooks/agents-overlay.js +36 -50
  137. package/dist/hooks/agents-overlay.js.map +1 -1
  138. package/dist/hooks/deep-interview-config-instruction.js +1 -1
  139. package/dist/hooks/deep-interview-config-instruction.js.map +1 -1
  140. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js +31 -0
  141. package/dist/hooks/extensibility/__tests__/plugin-runner.test.js.map +1 -1
  142. package/dist/hooks/extensibility/plugin-runner.js +17 -21
  143. package/dist/hooks/extensibility/plugin-runner.js.map +1 -1
  144. package/dist/hooks/keyword-detector.d.ts +1 -0
  145. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  146. package/dist/hooks/keyword-detector.js +428 -32
  147. package/dist/hooks/keyword-detector.js.map +1 -1
  148. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  149. package/dist/hooks/keyword-registry.js +1 -0
  150. package/dist/hooks/keyword-registry.js.map +1 -1
  151. package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
  152. package/dist/hooks/prompt-guidance-contract.js +6 -0
  153. package/dist/hooks/prompt-guidance-contract.js.map +1 -1
  154. package/dist/hooks/session.d.ts +3 -0
  155. package/dist/hooks/session.d.ts.map +1 -1
  156. package/dist/hooks/session.js +13 -5
  157. package/dist/hooks/session.js.map +1 -1
  158. package/dist/hud/__tests__/authority.test.js +469 -31
  159. package/dist/hud/__tests__/authority.test.js.map +1 -1
  160. package/dist/hud/__tests__/hud-tmux-injection.test.js +2 -1
  161. package/dist/hud/__tests__/hud-tmux-injection.test.js.map +1 -1
  162. package/dist/hud/__tests__/index.test.js +210 -2
  163. package/dist/hud/__tests__/index.test.js.map +1 -1
  164. package/dist/hud/__tests__/reconcile.test.js +588 -28
  165. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  166. package/dist/hud/__tests__/render.test.js +61 -0
  167. package/dist/hud/__tests__/render.test.js.map +1 -1
  168. package/dist/hud/__tests__/state.test.js +208 -0
  169. package/dist/hud/__tests__/state.test.js.map +1 -1
  170. package/dist/hud/__tests__/tmux.test.js +314 -22
  171. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  172. package/dist/hud/authority.d.ts +5 -0
  173. package/dist/hud/authority.d.ts.map +1 -1
  174. package/dist/hud/authority.js +337 -30
  175. package/dist/hud/authority.js.map +1 -1
  176. package/dist/hud/index.d.ts +20 -2
  177. package/dist/hud/index.d.ts.map +1 -1
  178. package/dist/hud/index.js +103 -26
  179. package/dist/hud/index.js.map +1 -1
  180. package/dist/hud/reconcile.d.ts +3 -3
  181. package/dist/hud/reconcile.d.ts.map +1 -1
  182. package/dist/hud/reconcile.js +129 -20
  183. package/dist/hud/reconcile.js.map +1 -1
  184. package/dist/hud/render.d.ts.map +1 -1
  185. package/dist/hud/render.js +35 -0
  186. package/dist/hud/render.js.map +1 -1
  187. package/dist/hud/state.d.ts.map +1 -1
  188. package/dist/hud/state.js +64 -50
  189. package/dist/hud/state.js.map +1 -1
  190. package/dist/hud/tmux.d.ts +26 -6
  191. package/dist/hud/tmux.d.ts.map +1 -1
  192. package/dist/hud/tmux.js +173 -38
  193. package/dist/hud/tmux.js.map +1 -1
  194. package/dist/hud/types.d.ts +11 -0
  195. package/dist/hud/types.d.ts.map +1 -1
  196. package/dist/hud/types.js.map +1 -1
  197. package/dist/mcp/__tests__/hermes-bridge.test.js +203 -7
  198. package/dist/mcp/__tests__/hermes-bridge.test.js.map +1 -1
  199. package/dist/mcp/__tests__/state-paths.test.js +71 -1
  200. package/dist/mcp/__tests__/state-paths.test.js.map +1 -1
  201. package/dist/mcp/__tests__/state-server.test.js +13 -1
  202. package/dist/mcp/__tests__/state-server.test.js.map +1 -1
  203. package/dist/mcp/hermes-bridge.d.ts +12 -2
  204. package/dist/mcp/hermes-bridge.d.ts.map +1 -1
  205. package/dist/mcp/hermes-bridge.js +83 -9
  206. package/dist/mcp/hermes-bridge.js.map +1 -1
  207. package/dist/mcp/state-paths.d.ts +32 -0
  208. package/dist/mcp/state-paths.d.ts.map +1 -1
  209. package/dist/mcp/state-paths.js +113 -17
  210. package/dist/mcp/state-paths.js.map +1 -1
  211. package/dist/mcp/state-server.d.ts +4 -4
  212. package/dist/modes/__tests__/base-autoresearch-contract.test.js +7 -1
  213. package/dist/modes/__tests__/base-autoresearch-contract.test.js.map +1 -1
  214. package/dist/pipeline/__tests__/stages.test.js +130 -0
  215. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  216. package/dist/pipeline/orchestrator.js +1 -1
  217. package/dist/pipeline/orchestrator.js.map +1 -1
  218. package/dist/pipeline/stages/ralplan.d.ts +1 -0
  219. package/dist/pipeline/stages/ralplan.d.ts.map +1 -1
  220. package/dist/pipeline/stages/ralplan.js +14 -5
  221. package/dist/pipeline/stages/ralplan.js.map +1 -1
  222. package/dist/question/__tests__/deep-interview.test.js +160 -2
  223. package/dist/question/__tests__/deep-interview.test.js.map +1 -1
  224. package/dist/question/__tests__/policy.test.js +63 -3
  225. package/dist/question/__tests__/policy.test.js.map +1 -1
  226. package/dist/question/__tests__/renderer.test.js +191 -2
  227. package/dist/question/__tests__/renderer.test.js.map +1 -1
  228. package/dist/question/__tests__/state.test.js +94 -3
  229. package/dist/question/__tests__/state.test.js.map +1 -1
  230. package/dist/question/__tests__/ui.test.js +4 -0
  231. package/dist/question/__tests__/ui.test.js.map +1 -1
  232. package/dist/question/autopilot-wait.d.ts +12 -2
  233. package/dist/question/autopilot-wait.d.ts.map +1 -1
  234. package/dist/question/autopilot-wait.js +158 -47
  235. package/dist/question/autopilot-wait.js.map +1 -1
  236. package/dist/question/deep-interview.d.ts.map +1 -1
  237. package/dist/question/deep-interview.js +22 -6
  238. package/dist/question/deep-interview.js.map +1 -1
  239. package/dist/question/policy.d.ts.map +1 -1
  240. package/dist/question/policy.js +2 -5
  241. package/dist/question/policy.js.map +1 -1
  242. package/dist/question/renderer.d.ts +12 -0
  243. package/dist/question/renderer.d.ts.map +1 -1
  244. package/dist/question/renderer.js +87 -3
  245. package/dist/question/renderer.js.map +1 -1
  246. package/dist/question/state.d.ts +8 -1
  247. package/dist/question/state.d.ts.map +1 -1
  248. package/dist/question/state.js +54 -14
  249. package/dist/question/state.js.map +1 -1
  250. package/dist/question/types.d.ts +1 -1
  251. package/dist/question/types.d.ts.map +1 -1
  252. package/dist/question/ui.d.ts +1 -0
  253. package/dist/question/ui.d.ts.map +1 -1
  254. package/dist/question/ui.js +1 -0
  255. package/dist/question/ui.js.map +1 -1
  256. package/dist/ralplan/__tests__/runtime.test.js +191 -0
  257. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  258. package/dist/ralplan/consensus-gate.d.ts +9 -1
  259. package/dist/ralplan/consensus-gate.d.ts.map +1 -1
  260. package/dist/ralplan/consensus-gate.js +84 -2
  261. package/dist/ralplan/consensus-gate.js.map +1 -1
  262. package/dist/ralplan/runtime.d.ts +9 -0
  263. package/dist/ralplan/runtime.d.ts.map +1 -1
  264. package/dist/ralplan/runtime.js +32 -11
  265. package/dist/ralplan/runtime.js.map +1 -1
  266. package/dist/scripts/__tests__/codex-native-hook.test.js +2315 -280
  267. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  268. package/dist/scripts/__tests__/notify-state-io.test.js +72 -1
  269. package/dist/scripts/__tests__/notify-state-io.test.js.map +1 -1
  270. package/dist/scripts/__tests__/notify-tmux-injection.test.d.ts +2 -0
  271. package/dist/scripts/__tests__/notify-tmux-injection.test.d.ts.map +1 -0
  272. package/dist/scripts/__tests__/notify-tmux-injection.test.js +57 -0
  273. package/dist/scripts/__tests__/notify-tmux-injection.test.js.map +1 -0
  274. package/dist/scripts/__tests__/run-test-files.test.js +74 -0
  275. package/dist/scripts/__tests__/run-test-files.test.js.map +1 -1
  276. package/dist/scripts/__tests__/verify-native-agents.test.js +65 -0
  277. package/dist/scripts/__tests__/verify-native-agents.test.js.map +1 -1
  278. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  279. package/dist/scripts/codex-native-hook.js +431 -56
  280. package/dist/scripts/codex-native-hook.js.map +1 -1
  281. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  282. package/dist/scripts/codex-native-pre-post.js +79 -1
  283. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  284. package/dist/scripts/eval/eval-parity-smoke.js +1 -1
  285. package/dist/scripts/eval/eval-parity-smoke.js.map +1 -1
  286. package/dist/scripts/hook-payload-guard.d.ts +9 -0
  287. package/dist/scripts/hook-payload-guard.d.ts.map +1 -0
  288. package/dist/scripts/hook-payload-guard.js +111 -0
  289. package/dist/scripts/hook-payload-guard.js.map +1 -0
  290. package/dist/scripts/notify-fallback-watcher.js +8 -1
  291. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  292. package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts +2 -0
  293. package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts.map +1 -0
  294. package/dist/scripts/notify-hook/__tests__/payload-guard.test.js +39 -0
  295. package/dist/scripts/notify-hook/__tests__/payload-guard.test.js.map +1 -0
  296. package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
  297. package/dist/scripts/notify-hook/auto-nudge.js +3 -1
  298. package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
  299. package/dist/scripts/notify-hook/ralph-session-resume.d.ts.map +1 -1
  300. package/dist/scripts/notify-hook/ralph-session-resume.js +3 -10
  301. package/dist/scripts/notify-hook/ralph-session-resume.js.map +1 -1
  302. package/dist/scripts/notify-hook/state-io.d.ts.map +1 -1
  303. package/dist/scripts/notify-hook/state-io.js +62 -38
  304. package/dist/scripts/notify-hook/state-io.js.map +1 -1
  305. package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
  306. package/dist/scripts/notify-hook/team-leader-nudge.js +7 -0
  307. package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
  308. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
  309. package/dist/scripts/notify-hook/team-worker-stop.js +234 -86
  310. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
  311. package/dist/scripts/notify-hook/tmux-injection.d.ts +7 -0
  312. package/dist/scripts/notify-hook/tmux-injection.d.ts.map +1 -1
  313. package/dist/scripts/notify-hook/tmux-injection.js +24 -18
  314. package/dist/scripts/notify-hook/tmux-injection.js.map +1 -1
  315. package/dist/scripts/notify-hook.js +86 -13
  316. package/dist/scripts/notify-hook.js.map +1 -1
  317. package/dist/scripts/run-test-files.js +193 -22
  318. package/dist/scripts/run-test-files.js.map +1 -1
  319. package/dist/scripts/sync-plugin-mirror.d.ts.map +1 -1
  320. package/dist/scripts/sync-plugin-mirror.js +61 -3
  321. package/dist/scripts/sync-plugin-mirror.js.map +1 -1
  322. package/dist/scripts/verify-native-agents.d.ts.map +1 -1
  323. package/dist/scripts/verify-native-agents.js +58 -1
  324. package/dist/scripts/verify-native-agents.js.map +1 -1
  325. package/dist/state/__tests__/operations.test.js +1125 -1
  326. package/dist/state/__tests__/operations.test.js.map +1 -1
  327. package/dist/state/__tests__/skill-active.test.js +46 -1
  328. package/dist/state/__tests__/skill-active.test.js.map +1 -1
  329. package/dist/state/__tests__/workflow-transition.test.js +98 -7
  330. package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
  331. package/dist/state/operations.d.ts.map +1 -1
  332. package/dist/state/operations.js +159 -2
  333. package/dist/state/operations.js.map +1 -1
  334. package/dist/state/skill-active.js +6 -8
  335. package/dist/state/skill-active.js.map +1 -1
  336. package/dist/state/workflow-transition-reconcile.d.ts +6 -0
  337. package/dist/state/workflow-transition-reconcile.d.ts.map +1 -1
  338. package/dist/state/workflow-transition-reconcile.js +38 -15
  339. package/dist/state/workflow-transition-reconcile.js.map +1 -1
  340. package/dist/state/workflow-transition.d.ts.map +1 -1
  341. package/dist/state/workflow-transition.js +10 -3
  342. package/dist/state/workflow-transition.js.map +1 -1
  343. package/dist/subagents/__tests__/tracker.test.js +139 -0
  344. package/dist/subagents/__tests__/tracker.test.js.map +1 -1
  345. package/dist/subagents/tracker.d.ts +3 -0
  346. package/dist/subagents/tracker.d.ts.map +1 -1
  347. package/dist/subagents/tracker.js +41 -4
  348. package/dist/subagents/tracker.js.map +1 -1
  349. package/dist/team/__tests__/coordination-protocol.test.d.ts +2 -0
  350. package/dist/team/__tests__/coordination-protocol.test.d.ts.map +1 -0
  351. package/dist/team/__tests__/coordination-protocol.test.js +173 -0
  352. package/dist/team/__tests__/coordination-protocol.test.js.map +1 -0
  353. package/dist/team/__tests__/runtime.test.js +52 -3
  354. package/dist/team/__tests__/runtime.test.js.map +1 -1
  355. package/dist/team/__tests__/scaling.test.js +9 -4
  356. package/dist/team/__tests__/scaling.test.js.map +1 -1
  357. package/dist/team/__tests__/state.test.js +83 -0
  358. package/dist/team/__tests__/state.test.js.map +1 -1
  359. package/dist/team/__tests__/tmux-session.test.js +240 -2
  360. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  361. package/dist/team/__tests__/worker-bootstrap.test.js +84 -0
  362. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  363. package/dist/team/__tests__/worker-runtime-identity.test.js +4 -2
  364. package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
  365. package/dist/team/coordination-protocol.d.ts +14 -0
  366. package/dist/team/coordination-protocol.d.ts.map +1 -0
  367. package/dist/team/coordination-protocol.js +244 -0
  368. package/dist/team/coordination-protocol.js.map +1 -0
  369. package/dist/team/runtime.d.ts +1 -0
  370. package/dist/team/runtime.d.ts.map +1 -1
  371. package/dist/team/runtime.js +19 -3
  372. package/dist/team/runtime.js.map +1 -1
  373. package/dist/team/scaling.d.ts.map +1 -1
  374. package/dist/team/scaling.js +3 -2
  375. package/dist/team/scaling.js.map +1 -1
  376. package/dist/team/state/tasks.d.ts.map +1 -1
  377. package/dist/team/state/tasks.js +24 -0
  378. package/dist/team/state/tasks.js.map +1 -1
  379. package/dist/team/state/types.d.ts +21 -1
  380. package/dist/team/state/types.d.ts.map +1 -1
  381. package/dist/team/state/types.js.map +1 -1
  382. package/dist/team/state.d.ts +17 -1
  383. package/dist/team/state.d.ts.map +1 -1
  384. package/dist/team/state.js +12 -5
  385. package/dist/team/state.js.map +1 -1
  386. package/dist/team/team-ops.d.ts +1 -1
  387. package/dist/team/team-ops.d.ts.map +1 -1
  388. package/dist/team/team-ops.js.map +1 -1
  389. package/dist/team/tmux-session.d.ts +2 -0
  390. package/dist/team/tmux-session.d.ts.map +1 -1
  391. package/dist/team/tmux-session.js +161 -13
  392. package/dist/team/tmux-session.js.map +1 -1
  393. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  394. package/dist/team/worker-bootstrap.js +63 -0
  395. package/dist/team/worker-bootstrap.js.map +1 -1
  396. package/dist/utils/__tests__/agents-model-table.test.js +4 -2
  397. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
  398. package/dist/utils/agents-model-table.d.ts.map +1 -1
  399. package/dist/utils/agents-model-table.js +3 -0
  400. package/dist/utils/agents-model-table.js.map +1 -1
  401. package/dist/verification/__tests__/ci-rust-gates.test.js +81 -1
  402. package/dist/verification/__tests__/ci-rust-gates.test.js.map +1 -1
  403. package/package.json +8 -8
  404. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  405. package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +334 -21
  406. package/plugins/oh-my-codex/hooks/hooks.json +1 -2
  407. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +13 -6
  408. package/plugins/oh-my-codex/skills/code-review/SKILL.md +7 -7
  409. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +9 -4
  410. package/plugins/oh-my-codex/skills/ralph/SKILL.md +22 -22
  411. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +12 -0
  412. package/plugins/oh-my-codex/skills/team/SKILL.md +16 -0
  413. package/plugins/oh-my-codex/skills/ultraqa/SKILL.md +9 -0
  414. package/plugins/oh-my-codex/skills/worker/SKILL.md +14 -0
  415. package/skills/autopilot/SKILL.md +13 -6
  416. package/skills/code-review/SKILL.md +7 -7
  417. package/skills/deep-interview/SKILL.md +9 -4
  418. package/skills/ralph/SKILL.md +22 -22
  419. package/skills/ralplan/SKILL.md +12 -0
  420. package/skills/team/SKILL.md +16 -0
  421. package/skills/ultraqa/SKILL.md +9 -0
  422. package/skills/worker/SKILL.md +14 -0
  423. package/src/scripts/__tests__/codex-native-hook.test.ts +4435 -2083
  424. package/src/scripts/__tests__/notify-state-io.test.ts +95 -0
  425. package/src/scripts/__tests__/notify-tmux-injection.test.ts +82 -0
  426. package/src/scripts/__tests__/run-test-files.test.ts +102 -0
  427. package/src/scripts/__tests__/verify-native-agents.test.ts +75 -0
  428. package/src/scripts/codex-native-hook.ts +536 -51
  429. package/src/scripts/codex-native-pre-post.ts +80 -0
  430. package/src/scripts/demo-team-e2e.sh +10 -7
  431. package/src/scripts/eval/eval-parity-smoke.ts +1 -1
  432. package/src/scripts/hook-payload-guard.ts +113 -0
  433. package/src/scripts/notify-fallback-watcher.ts +8 -1
  434. package/src/scripts/notify-hook/__tests__/payload-guard.test.ts +41 -0
  435. package/src/scripts/notify-hook/auto-nudge.ts +3 -1
  436. package/src/scripts/notify-hook/ralph-session-resume.ts +2 -8
  437. package/src/scripts/notify-hook/state-io.ts +75 -37
  438. package/src/scripts/notify-hook/team-leader-nudge.ts +7 -0
  439. package/src/scripts/notify-hook/team-worker-stop.ts +193 -52
  440. package/src/scripts/notify-hook/tmux-injection.ts +35 -19
  441. package/src/scripts/notify-hook.ts +105 -6
  442. package/src/scripts/run-test-files.ts +192 -22
  443. package/src/scripts/sync-plugin-mirror.ts +98 -9
  444. package/src/scripts/verify-native-agents.ts +65 -1
@@ -1,15 +1,34 @@
1
- import { mkdir, readFile, writeFile } from 'node:fs/promises';
2
- import { dirname } from 'node:path';
1
+ import { mkdir, readFile, rm, stat, writeFile } from 'node:fs/promises';
2
+ import { dirname, join } from 'node:path';
3
+ import { deriveAutopilotChildPhase, isAutopilotSupervisingChild, normalizeAutopilotPhase, } from '../autopilot/fsm.js';
3
4
  import { getStateFilePath } from '../mcp/state-paths.js';
5
+ import { sleep } from '../utils/sleep.js';
4
6
  const AUTOPILOT_STATE_FILE = 'autopilot-state.json';
7
+ const AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_ENV = 'OMX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS';
8
+ const AUTOPILOT_QUESTION_WAIT_LOCK_STALE_MS = 30_000;
9
+ const DEFAULT_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = 10_000;
10
+ const MIN_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = 1;
11
+ const MAX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS = 120_000;
12
+ export const AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV = 'OMX_AUTOPILOT_DEEP_INTERVIEW_QUESTION_OBLIGATION_ID';
5
13
  function safeString(value) {
6
14
  return typeof value === 'string' ? value.trim() : '';
7
15
  }
8
16
  function safeObject(value) {
9
17
  return value && typeof value === 'object' ? value : {};
10
18
  }
11
- function normalizePhase(value) {
12
- return safeString(value).toLowerCase().replace(/_/g, '-');
19
+ export function resolveAutopilotQuestionWaitLockTimeoutMs(env = process.env) {
20
+ const raw = env[AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_ENV];
21
+ if (raw === undefined || raw === '')
22
+ return DEFAULT_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
23
+ const parsed = Number(raw);
24
+ if (!Number.isFinite(parsed))
25
+ return DEFAULT_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS;
26
+ return Math.max(MIN_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS, Math.min(MAX_AUTOPILOT_QUESTION_WAIT_LOCK_TIMEOUT_MS, Math.floor(parsed)));
27
+ }
28
+ function isPendingAutopilotQuestionWait(wait) {
29
+ return safeString(wait.status) === 'waiting_for_user'
30
+ && safeString(wait.source) === 'omx-question'
31
+ && safeString(wait.obligation_id).length > 0;
13
32
  }
14
33
  async function readAutopilotState(cwd, sessionId) {
15
34
  const statePath = getStateFilePath(AUTOPILOT_STATE_FILE, cwd, sessionId);
@@ -25,6 +44,66 @@ async function writeAutopilotState(cwd, sessionId, state) {
25
44
  await mkdir(dirname(statePath), { recursive: true });
26
45
  await writeFile(statePath, `${JSON.stringify(state, null, 2)}\n`);
27
46
  }
47
+ function lockOwnerToken() {
48
+ return `${process.pid}.${Date.now()}.${Math.random().toString(16).slice(2)}`;
49
+ }
50
+ async function maybeRecoverStaleAutopilotQuestionWaitLock(lockDir) {
51
+ try {
52
+ const info = await stat(lockDir);
53
+ if (Date.now() - info.mtimeMs > AUTOPILOT_QUESTION_WAIT_LOCK_STALE_MS) {
54
+ await rm(lockDir, { recursive: true, force: true });
55
+ return true;
56
+ }
57
+ }
58
+ catch {
59
+ }
60
+ return false;
61
+ }
62
+ async function withAutopilotQuestionWaitLock(cwd, sessionId, fn, onTimeout) {
63
+ const statePath = getStateFilePath(AUTOPILOT_STATE_FILE, cwd, sessionId);
64
+ const lockDir = `${statePath}.deep-interview-question.lock`;
65
+ const ownerPath = join(lockDir, 'owner');
66
+ const ownerToken = lockOwnerToken();
67
+ const timeoutMs = resolveAutopilotQuestionWaitLockTimeoutMs(process.env);
68
+ const deadline = Date.now() + timeoutMs;
69
+ await mkdir(dirname(lockDir), { recursive: true });
70
+ while (true) {
71
+ try {
72
+ await mkdir(lockDir);
73
+ try {
74
+ await writeFile(ownerPath, ownerToken, 'utf8');
75
+ }
76
+ catch (error) {
77
+ await rm(lockDir, { recursive: true, force: true });
78
+ throw error;
79
+ }
80
+ break;
81
+ }
82
+ catch (error) {
83
+ const err = error;
84
+ if (err.code !== 'EEXIST')
85
+ throw error;
86
+ if (await maybeRecoverStaleAutopilotQuestionWaitLock(lockDir))
87
+ continue;
88
+ if (Date.now() > deadline)
89
+ return await onTimeout();
90
+ await sleep(25);
91
+ }
92
+ }
93
+ try {
94
+ return await fn();
95
+ }
96
+ finally {
97
+ try {
98
+ const currentOwner = await readFile(ownerPath, 'utf8');
99
+ if (currentOwner.trim() === ownerToken) {
100
+ await rm(lockDir, { recursive: true, force: true });
101
+ }
102
+ }
103
+ catch {
104
+ }
105
+ }
106
+ }
28
107
  export async function readAutopilotDeepInterviewQuestionWaitState(cwd, sessionId) {
29
108
  const state = await readAutopilotState(cwd, sessionId);
30
109
  if (!state || safeString(state.mode) !== 'autopilot')
@@ -34,11 +113,9 @@ export async function readAutopilotDeepInterviewQuestionWaitState(cwd, sessionId
34
113
  const obligationId = safeString(wait.obligation_id);
35
114
  if (!obligationId)
36
115
  return null;
37
- if (safeString(wait.status) !== 'waiting_for_user')
116
+ if (!isPendingAutopilotQuestionWait(wait))
38
117
  return null;
39
- if (safeString(wait.source) !== 'omx-question')
40
- return null;
41
- const phase = normalizePhase(state.current_phase);
118
+ const phase = normalizeAutopilotPhase(state.current_phase);
42
119
  const runOutcome = safeString(state.run_outcome);
43
120
  const lifecycleOutcome = safeString(state.lifecycle_outcome);
44
121
  if (phase !== 'waiting-for-user')
@@ -47,54 +124,73 @@ export async function readAutopilotDeepInterviewQuestionWaitState(cwd, sessionId
47
124
  return null;
48
125
  if (lifecycleOutcome && lifecycleOutcome !== 'askuserQuestion')
49
126
  return null;
127
+ const previousPhase = deriveAutopilotChildPhase(state);
128
+ if (previousPhase !== 'deep-interview')
129
+ return null;
50
130
  return {
51
131
  obligationId,
52
- previousPhase: safeString(wait.previous_phase) || 'deep-interview',
132
+ previousPhase,
53
133
  requestedAt: safeString(wait.requested_at) || undefined,
54
134
  };
55
135
  }
56
- export async function canStartAutopilotDeepInterviewQuestion(cwd, sessionId) {
136
+ export async function canStartAutopilotDeepInterviewQuestion(cwd, sessionId, options = {}) {
57
137
  const state = await readAutopilotState(cwd, sessionId);
58
- if (!state || safeString(state.mode) !== 'autopilot' || state.active !== true)
138
+ if (!isAutopilotSupervisingChild(state, 'deep-interview'))
59
139
  return false;
60
- return normalizePhase(state.current_phase) === 'deep-interview';
140
+ const nestedState = safeObject(state?.state);
141
+ const wait = safeObject(nestedState.deep_interview_question);
142
+ if (!isPendingAutopilotQuestionWait(wait))
143
+ return true;
144
+ const ownerObligationId = safeString(options.ownerObligationId);
145
+ return ownerObligationId.length > 0
146
+ && safeString(wait.obligation_id) === ownerObligationId;
147
+ }
148
+ export async function claimAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation) {
149
+ const normalizedSessionId = safeString(sessionId);
150
+ if (!normalizedSessionId)
151
+ return 'not_applicable';
152
+ return await withAutopilotQuestionWaitLock(cwd, normalizedSessionId, async () => {
153
+ const state = await readAutopilotState(cwd, normalizedSessionId);
154
+ if (!state || safeString(state.mode) !== 'autopilot' || state.active !== true) {
155
+ return 'not_applicable';
156
+ }
157
+ if (!isAutopilotSupervisingChild(state, 'deep-interview'))
158
+ return 'not_applicable';
159
+ const currentPhase = normalizeAutopilotPhase(state.current_phase) || 'deep-interview';
160
+ const nestedState = safeObject(state.state);
161
+ if (isPendingAutopilotQuestionWait(safeObject(nestedState.deep_interview_question))) {
162
+ return 'blocked';
163
+ }
164
+ const wait = {
165
+ status: 'waiting_for_user',
166
+ source: 'omx-question',
167
+ obligation_id: obligation.obligation_id,
168
+ previous_phase: currentPhase,
169
+ previous_run_outcome: state.run_outcome ?? null,
170
+ previous_lifecycle_outcome: state.lifecycle_outcome ?? null,
171
+ requested_at: obligation.requested_at,
172
+ updated_at: new Date().toISOString(),
173
+ };
174
+ const nextState = {
175
+ ...state,
176
+ active: true,
177
+ current_phase: 'waiting-for-user',
178
+ run_outcome: 'blocked_on_user',
179
+ lifecycle_outcome: 'askuserQuestion',
180
+ updated_at: new Date().toISOString(),
181
+ state: {
182
+ ...nestedState,
183
+ deep_interview_question: wait,
184
+ },
185
+ };
186
+ await writeAutopilotState(cwd, normalizedSessionId, nextState);
187
+ return 'started';
188
+ }, () => 'blocked');
61
189
  }
62
190
  export async function markAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation) {
63
- if (!safeString(sessionId))
64
- return false;
65
- const state = await readAutopilotState(cwd, sessionId);
66
- if (!state || safeString(state.mode) !== 'autopilot' || state.active !== true)
67
- return false;
68
- const currentPhase = safeString(state.current_phase) || 'deep-interview';
69
- if (normalizePhase(currentPhase) !== 'deep-interview')
70
- return false;
71
- const nestedState = safeObject(state.state);
72
- const wait = {
73
- status: 'waiting_for_user',
74
- source: 'omx-question',
75
- obligation_id: obligation.obligation_id,
76
- previous_phase: currentPhase,
77
- previous_run_outcome: state.run_outcome ?? null,
78
- previous_lifecycle_outcome: state.lifecycle_outcome ?? null,
79
- requested_at: obligation.requested_at,
80
- updated_at: new Date().toISOString(),
81
- };
82
- const nextState = {
83
- ...state,
84
- active: true,
85
- current_phase: 'waiting-for-user',
86
- run_outcome: 'blocked_on_user',
87
- lifecycle_outcome: 'askuserQuestion',
88
- updated_at: new Date().toISOString(),
89
- state: {
90
- ...nestedState,
91
- deep_interview_question: wait,
92
- },
93
- };
94
- await writeAutopilotState(cwd, sessionId, nextState);
95
- return true;
191
+ return await claimAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation) === 'started';
96
192
  }
97
- export async function resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligationId, status) {
193
+ export async function resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligationId, status, options = {}) {
98
194
  if (!safeString(sessionId) || !safeString(obligationId))
99
195
  return false;
100
196
  const state = await readAutopilotState(cwd, sessionId);
@@ -108,6 +204,8 @@ export async function resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionI
108
204
  return false;
109
205
  const previousRunOutcome = wait.previous_run_outcome;
110
206
  const previousLifecycleOutcome = wait.previous_lifecycle_outcome;
207
+ const resolvedAt = (options.now ?? new Date()).toISOString();
208
+ const questionId = safeString(options.questionId);
111
209
  const nextState = {
112
210
  ...state,
113
211
  active: true,
@@ -118,7 +216,20 @@ export async function resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionI
118
216
  deep_interview_question: {
119
217
  ...wait,
120
218
  status,
121
- resolved_at: new Date().toISOString(),
219
+ resolved_at: resolvedAt,
220
+ ...(status === 'satisfied'
221
+ ? {
222
+ question_id: questionId || undefined,
223
+ satisfied_at: resolvedAt,
224
+ clear_reason: undefined,
225
+ cleared_at: undefined,
226
+ }
227
+ : {
228
+ clear_reason: options.clearReason ?? 'error',
229
+ cleared_at: resolvedAt,
230
+ question_id: undefined,
231
+ satisfied_at: undefined,
232
+ }),
122
233
  },
123
234
  },
124
235
  };
@@ -1 +1 @@
1
- {"version":3,"file":"autopilot-wait.js","sourceRoot":"","sources":["../../src/question/autopilot-wait.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autopilot-wait.js","sourceRoot":"","sources":["../../src/question/autopilot-wait.ts"],"names":[],"mappings":"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"}
@@ -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;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"}
1
+ {"version":3,"file":"deep-interview.d.ts","sourceRoot":"","sources":["../../src/question/deep-interview.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,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;AAU3E,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,CAmFpC"}
@@ -1,9 +1,9 @@
1
1
  import { mkdir, readFile, readdir, writeFile } from 'node:fs/promises';
2
2
  import { dirname, join } from 'node:path';
3
3
  import { getStateFilePath, readCurrentSessionId } from '../mcp/state-paths.js';
4
- import { runOmxQuestion, } from './client.js';
4
+ import { OmxQuestionError, runOmxQuestion, } from './client.js';
5
5
  import { getQuestionRecordPath, getQuestionStateDir, readQuestionRecord, } from './state.js';
6
- import { markAutopilotDeepInterviewQuestionWaiting, resolveAutopilotDeepInterviewQuestionWaiting, } from './autopilot-wait.js';
6
+ import { AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV, claimAutopilotDeepInterviewQuestionWaiting, readAutopilotDeepInterviewQuestionWaitState, resolveAutopilotDeepInterviewQuestionWaiting, } from './autopilot-wait.js';
7
7
  const DEEP_INTERVIEW_STATE_FILE = 'deep-interview-state.json';
8
8
  function safeString(value) {
9
9
  return typeof value === 'string' ? value : '';
@@ -175,25 +175,41 @@ export async function runDeepInterviewQuestion(input, options = {}) {
175
175
  const cwd = options.cwd ?? process.cwd();
176
176
  const sessionId = safeString(input.session_id).trim() || await readCurrentSessionId(cwd);
177
177
  const obligation = createDeepInterviewQuestionObligation();
178
+ const existingAutopilotWait = await readAutopilotDeepInterviewQuestionWaitState(cwd, sessionId);
179
+ if (existingAutopilotWait) {
180
+ throw new OmxQuestionError('active_execution_mode_blocked', 'Autopilot already has a pending deep-interview question.');
181
+ }
182
+ const autopilotWaitClaim = await claimAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation);
183
+ if (autopilotWaitClaim === 'blocked') {
184
+ throw new OmxQuestionError('active_execution_mode_blocked', 'Autopilot cannot start a new deep-interview question until the existing wait claim is resolved.');
185
+ }
186
+ const autopilotWaitStarted = autopilotWaitClaim === 'started';
178
187
  await updateDeepInterviewQuestionEnforcement(cwd, sessionId, () => obligation);
179
- await markAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation);
180
188
  try {
181
189
  const result = await runOmxQuestion({
182
190
  ...input,
183
191
  source: input.source ?? 'deep-interview',
184
192
  ...(sessionId ? { session_id: sessionId } : {}),
185
- }, options);
193
+ }, autopilotWaitStarted
194
+ ? {
195
+ ...options,
196
+ env: {
197
+ ...(options.env ?? process.env),
198
+ [AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV]: obligation.obligation_id,
199
+ },
200
+ }
201
+ : options);
186
202
  await updateDeepInterviewQuestionEnforcement(cwd, sessionId, (current) => (current?.obligation_id === obligation.obligation_id
187
203
  ? satisfyDeepInterviewQuestionObligation(current, result.question_id)
188
204
  : current));
189
- await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'satisfied');
205
+ await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'satisfied', { questionId: result.question_id });
190
206
  return result;
191
207
  }
192
208
  catch (error) {
193
209
  await updateDeepInterviewQuestionEnforcement(cwd, sessionId, (current) => (current?.obligation_id === obligation.obligation_id
194
210
  ? clearDeepInterviewQuestionObligation(current, 'error')
195
211
  : current));
196
- await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'cleared');
212
+ await resolveAutopilotDeepInterviewQuestionWaiting(cwd, sessionId, obligation.obligation_id, 'cleared', { clearReason: 'error' });
197
213
  throw error;
198
214
  }
199
215
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deep-interview.js","sourceRoot":"","sources":["../../src/question/deep-interview.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deep-interview.js","sourceRoot":"","sources":["../../src/question/deep-interview.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/question/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAkBvH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,GAAG,cAAc,GAAG,+BAA+B,CAAC;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,yBAAyB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAcD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,sBAAsB,CAAC,CAqFjC"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/question/policy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAkBvH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,gBAAgB,GAAG,cAAc,GAAG,+BAA+B,CAAC;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,EAAE,yBAAyB,EAAE,CAAC;CAC1C;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAcD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,sBAAsB,CAAC,CAmFjC"}
@@ -2,7 +2,7 @@ import { listNotifyCanonicalActiveTeams } from '../scripts/notify-hook/active-te
2
2
  import { readCurrentSessionId } from '../mcp/state-paths.js';
3
3
  import { listActiveSkills, readVisibleSkillActiveState } from '../state/skill-active.js';
4
4
  import { readActiveWorkflowModes } from '../state/workflow-transition.js';
5
- import { canStartAutopilotDeepInterviewQuestion, readAutopilotDeepInterviewQuestionWaitState, } from './autopilot-wait.js';
5
+ import { AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV, canStartAutopilotDeepInterviewQuestion, } from './autopilot-wait.js';
6
6
  const BLOCKED_EXECUTION_SKILLS = new Set([
7
7
  'autopilot',
8
8
  'autoresearch',
@@ -60,10 +60,7 @@ export async function evaluateQuestionPolicy(options) {
60
60
  if (blocked.length > 0) {
61
61
  const source = safeString(options.questionSource).trim();
62
62
  if (source === 'deep-interview' && onlyControlledAutopilotQuestionBlock(blocked)) {
63
- const autopilotWait = await readAutopilotDeepInterviewQuestionWaitState(options.cwd, sessionId);
64
- const canStartAutopilotQuestion = autopilotWait
65
- ? true
66
- : await canStartAutopilotDeepInterviewQuestion(options.cwd, sessionId);
63
+ const canStartAutopilotQuestion = await canStartAutopilotDeepInterviewQuestion(options.cwd, sessionId, { ownerObligationId: env[AUTOPILOT_DEEP_INTERVIEW_QUESTION_OWNER_ENV] });
67
64
  if (canStartAutopilotQuestion) {
68
65
  return {
69
66
  allowed: true,
@@ -1 +1 @@
1
- {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/question/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../src/question/policy.ts"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ export declare function isLaunchedQuestionPaneAlive(paneId: string, execTmux: Ex
27
27
  export declare function isLaunchedQuestionSessionAlive(sessionName: string, execTmux: ExecTmuxSync): boolean;
28
28
  export declare function isWindowsConsoleRendererAlive(pid: number | undefined): boolean;
29
29
  export declare function isQuestionRendererAlive(renderer: QuestionRendererState | undefined, execTmux?: ExecTmuxSync): boolean;
30
+ export declare function closeQuestionRenderer(renderer: QuestionRendererState | undefined, execTmux?: ExecTmuxSync): boolean;
30
31
  export declare function formatQuestionAnswerForInjection(answer: QuestionAnswer): string;
31
32
  export declare function formatQuestionAnswersForInjection(answers: Array<{
32
33
  question_id: string;
@@ -37,6 +38,17 @@ export declare function injectQuestionAnswersToPane(paneId: string, answers: Arr
37
38
  question_id: string;
38
39
  answer: QuestionAnswer;
39
40
  }>, execTmux?: ExecTmuxSync, sleepImpl?: SleepSync): boolean;
41
+ export interface LiveQuestionRecord {
42
+ recordPath: string;
43
+ record: QuestionRecord;
44
+ }
45
+ export declare function findLiveQuestionsForSession(cwd: string, sessionId: string | undefined, execTmux?: ExecTmuxSync, options?: {
46
+ excludeRecordPath?: string;
47
+ }): LiveQuestionRecord[];
48
+ export declare function supersedeLiveQuestionsForSession(cwd: string, sessionId: string | undefined, execTmux?: ExecTmuxSync, options?: {
49
+ excludeRecordPath?: string;
50
+ nowIso?: string;
51
+ }): LiveQuestionRecord[];
40
52
  export declare function launchQuestionRenderer(options: LaunchQuestionRendererOptions, deps?: {
41
53
  strategy?: QuestionRendererStrategy;
42
54
  execTmux?: ExecTmuxSync;
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/question/renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/question/renderer.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,13 @@
1
1
  import { execFileSync, spawn } from 'node:child_process';
2
- import { existsSync, readFileSync } from 'node:fs';
3
- import { basename } from 'node:path';
2
+ import { existsSync, readdirSync, renameSync, writeFileSync, readFileSync } from 'node:fs';
3
+ import { basename, join } from 'node:path';
4
4
  import { stdin as processStdin, stdout as processStdout } from 'node:process';
5
5
  import { parsePaneIdFromTmuxOutput } from '../hud/tmux.js';
6
6
  import { buildSendPaneArgvs } from '../notifications/tmux-detector.js';
7
7
  import { sleepSync } from '../utils/sleep.js';
8
8
  import { sanitizeReplyInput } from '../notifications/reply-listener.js';
9
9
  import { getCurrentTmuxPaneId } from '../notifications/tmux.js';
10
- import { getStatePath } from '../mcp/state-paths.js';
10
+ import { getStateDir, getStatePath } from '../mcp/state-paths.js';
11
11
  import { TRACKED_WORKFLOW_MODES } from '../state/workflow-transition.js';
12
12
  import { resolveTmuxBinaryForPlatform } from '../utils/platform-command.js';
13
13
  import { resolveOmxCliEntryPath } from '../utils/paths.js';
@@ -304,6 +304,27 @@ export function isQuestionRendererAlive(renderer, execTmux = defaultExecTmux) {
304
304
  return isWindowsConsoleRendererAlive(renderer.pid);
305
305
  return true;
306
306
  }
307
+ export function closeQuestionRenderer(renderer, execTmux = defaultExecTmux) {
308
+ if (!renderer)
309
+ return false;
310
+ try {
311
+ if (renderer.renderer === 'tmux-pane' && isPaneId(renderer.target)) {
312
+ execTmux(['kill-pane', '-t', renderer.target]);
313
+ return true;
314
+ }
315
+ if (renderer.renderer === 'tmux-session' && renderer.target !== 'test-noop-renderer' && safeString(renderer.target).trim()) {
316
+ execTmux(['kill-session', '-t', renderer.target]);
317
+ return true;
318
+ }
319
+ if (renderer.renderer === 'windows-console') {
320
+ return false;
321
+ }
322
+ }
323
+ catch {
324
+ return false;
325
+ }
326
+ return false;
327
+ }
307
328
  export function formatQuestionAnswerForInjection(answer) {
308
329
  const prefix = '[omx question answered]';
309
330
  if (answer.kind === 'other') {
@@ -359,6 +380,61 @@ export function injectQuestionAnswersToPane(paneId, answers, execTmux = defaultE
359
380
  }
360
381
  return true;
361
382
  }
383
+ function getQuestionStateDirForRenderer(cwd, sessionId) {
384
+ return join(getStateDir(cwd, sessionId), 'questions');
385
+ }
386
+ function isQuestionRecord(value) {
387
+ return Boolean(value
388
+ && typeof value === 'object'
389
+ && value.kind === 'omx.question/v1'
390
+ && typeof value.question_id === 'string');
391
+ }
392
+ function writeQuestionRecordSync(recordPath, record) {
393
+ const tempPath = `${recordPath}.${process.pid}.${Date.now()}.tmp`;
394
+ writeFileSync(tempPath, `${JSON.stringify(record, null, 2)}\n`, 'utf-8');
395
+ renameSync(tempPath, recordPath);
396
+ }
397
+ export function findLiveQuestionsForSession(cwd, sessionId, execTmux = defaultExecTmux, options = {}) {
398
+ const questionsDir = getQuestionStateDirForRenderer(cwd, sessionId);
399
+ if (!existsSync(questionsDir))
400
+ return [];
401
+ const live = [];
402
+ const excludeRecordPath = options.excludeRecordPath;
403
+ for (const entry of readdirSync(questionsDir, { withFileTypes: true })) {
404
+ if (!entry.isFile() || !entry.name.endsWith('.json'))
405
+ continue;
406
+ const recordPath = join(questionsDir, entry.name);
407
+ if (excludeRecordPath && recordPath === excludeRecordPath)
408
+ continue;
409
+ const record = readJsonFileIfExists(recordPath);
410
+ if (!isQuestionRecord(record))
411
+ continue;
412
+ if (record.status !== 'prompting')
413
+ continue;
414
+ if (!isQuestionRendererAlive(record.renderer, execTmux))
415
+ continue;
416
+ live.push({ recordPath, record });
417
+ }
418
+ return live.sort((left, right) => left.record.created_at.localeCompare(right.record.created_at));
419
+ }
420
+ export function supersedeLiveQuestionsForSession(cwd, sessionId, execTmux = defaultExecTmux, options = {}) {
421
+ const live = findLiveQuestionsForSession(cwd, sessionId, execTmux, options);
422
+ const nowIso = options.nowIso ?? new Date().toISOString();
423
+ for (const item of live) {
424
+ writeQuestionRecordSync(item.recordPath, {
425
+ ...item.record,
426
+ status: 'superseded',
427
+ updated_at: nowIso,
428
+ error: {
429
+ code: 'question_superseded',
430
+ message: 'Question was superseded by a newer omx question launch for the same session.',
431
+ at: nowIso,
432
+ },
433
+ });
434
+ closeQuestionRenderer(item.record.renderer, execTmux);
435
+ }
436
+ return live;
437
+ }
362
438
  export function launchQuestionRenderer(options, deps = {}) {
363
439
  const strategy = deps.strategy ?? resolveQuestionRendererStrategy(options.env ?? process.env, undefined, {
364
440
  cwd: options.cwd,
@@ -394,6 +470,10 @@ export function launchQuestionRenderer(options, deps = {}) {
394
470
  if (safeString(env.TMUX).trim() && !isCurrentTmuxSessionAttached(execTmux, env, attachedCheckTarget)) {
395
471
  throw new Error('omx question cannot open a visible renderer because this tmux session has no attached client. Run omx question from an attached tmux pane.');
396
472
  }
473
+ supersedeLiveQuestionsForSession(options.cwd, options.sessionId, execTmux, {
474
+ excludeRecordPath: options.recordPath,
475
+ nowIso: launchedAt,
476
+ });
397
477
  const sizingTarget = returnTarget || safeString(env.TMUX_PANE).trim() || undefined;
398
478
  const availableHeight = resolveAvailablePaneHeight(execTmux, sizingTarget);
399
479
  const requestedHeight = computeAdaptiveQuestionPaneHeight(availableHeight, estimateQuestionContentLines(readQuestionRecordForSizing(options.recordPath)));
@@ -450,6 +530,10 @@ export function launchQuestionRenderer(options, deps = {}) {
450
530
  };
451
531
  }
452
532
  if (strategy === 'detached-tmux') {
533
+ supersedeLiveQuestionsForSession(options.cwd, options.sessionId, execTmux, {
534
+ excludeRecordPath: options.recordPath,
535
+ nowIso: launchedAt,
536
+ });
453
537
  const baseName = basename(options.recordPath, '.json').replace(/[^A-Za-z0-9_-]+/g, '-').slice(0, 32) || 'question';
454
538
  const sessionName = `omx-question-${baseName}`;
455
539
  const output = execTmux([