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
package/dist/hud/index.js CHANGED
@@ -9,6 +9,7 @@
9
9
  * omx hud --tmux Open HUD in a tmux split pane (auto-detects orientation)
10
10
  */
11
11
  import { execFileSync } from 'child_process';
12
+ import { readlinkSync, realpathSync } from 'node:fs';
12
13
  import { readAllState, readHudConfig } from './state.js';
13
14
  import { getHudRenderMaxLines, renderHud } from './render.js';
14
15
  import { HUD_TMUX_HEIGHT_LINES } from './constants.js';
@@ -17,6 +18,7 @@ import { runHudAuthorityTick } from './authority.js';
17
18
  import { resolveOmxCliEntryPath } from '../utils/paths.js';
18
19
  import { killTmuxPane, listCurrentWindowHudPaneIds, OMX_TMUX_HUD_LEADER_PANE_ENV, readActiveTmuxPaneId, registerHudResizeHook, resizeTmuxPane, } from './tmux.js';
19
20
  import { OMX_TMUX_HUD_OWNER_ENV } from './reconcile.js';
21
+ import { buildHudRuntimeEnv } from './tmux.js';
20
22
  export const HUD_USAGE = [
21
23
  'Usage:',
22
24
  ' omx hud Show current HUD state',
@@ -43,6 +45,59 @@ export async function watchRenderLoop(render, options = {}) {
43
45
  await sleepFn(Math.max(0, intervalMs - elapsedMs), signal).catch(() => { });
44
46
  }
45
47
  }
48
+ function safeCallString(fn) {
49
+ try {
50
+ const value = fn();
51
+ return typeof value === 'string' && value.trim() ? value.trim() : null;
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ function defaultProcCwd() {
58
+ if (process.platform === 'win32')
59
+ return null;
60
+ return safeCallString(() => readlinkSync('/proc/self/cwd'));
61
+ }
62
+ function isDeletedCwdMarkerText(path) {
63
+ return Boolean(path && /(?:^|\s)\(deleted\)\s*$/.test(path.trim()));
64
+ }
65
+ /**
66
+ * Resolve the cwd a long-running HUD watch should read on this frame.
67
+ *
68
+ * tmux launches HUD with both a real cwd and a shell PWD string. If that
69
+ * directory is later renamed and the original pathname is reused by a fresh
70
+ * OMX run, the old HUD process can keep reading the reused launch path and
71
+ * display the new run's state. Compare the launch path to the process' live
72
+ * cwd inode/path each tick; when they diverge, follow the live cwd instead of
73
+ * the stale launch path.
74
+ */
75
+ export function resolveHudWatchCwd(launchCwd, deps = {}) {
76
+ const getCwd = deps.getCwd ?? (() => process.cwd());
77
+ const realpath = deps.realpath ?? ((path) => realpathSync.native(path));
78
+ const readProcCwd = deps.readProcCwd ?? defaultProcCwd;
79
+ const processCwd = safeCallString(getCwd);
80
+ const launchPath = launchCwd.trim() || processCwd || launchCwd;
81
+ const livePath = safeCallString(readProcCwd) || processCwd;
82
+ if (!livePath)
83
+ return launchPath;
84
+ const liveMarkerMayBeProcDeleted = isDeletedCwdMarkerText(livePath) && !isDeletedCwdMarkerText(launchPath) && processCwd !== livePath;
85
+ if (liveMarkerMayBeProcDeleted) {
86
+ const processReal = processCwd ? safeCallString(() => realpath(processCwd)) : null;
87
+ const markerReal = safeCallString(() => realpath(livePath));
88
+ if (!processReal || !markerReal || processReal !== markerReal)
89
+ return launchPath;
90
+ }
91
+ const launchReal = safeCallString(() => realpath(launchPath));
92
+ const liveReal = safeCallString(() => realpath(livePath));
93
+ if (launchReal && liveReal && launchReal !== liveReal)
94
+ return livePath;
95
+ if (!launchReal && liveReal)
96
+ return livePath;
97
+ if (launchReal && !liveReal && livePath !== launchPath)
98
+ return livePath;
99
+ return launchPath;
100
+ }
46
101
  function reconcileRunningHudPaneHeight(desiredHeight, dependencies) {
47
102
  if (!dependencies.env.TMUX || dependencies.env[OMX_TMUX_HUD_OWNER_ENV] !== '1')
48
103
  return;
@@ -63,6 +118,7 @@ export async function runWatchMode(cwd, flags, deps = {}) {
63
118
  const dependencies = {
64
119
  isTTY: deps.isTTY ?? Boolean(process.stdout.isTTY),
65
120
  env: deps.env ?? process.env,
121
+ resolveWatchCwdFn: deps.resolveWatchCwdFn ?? ((launchCwd) => resolveHudWatchCwd(launchCwd)),
66
122
  readAllStateFn: deps.readAllStateFn ?? readAllState,
67
123
  readHudConfigFn: deps.readHudConfigFn ?? readHudConfig,
68
124
  renderHudFn: deps.renderHudFn ?? renderHud,
@@ -124,8 +180,9 @@ export async function runWatchMode(cwd, flags, deps = {}) {
124
180
  else {
125
181
  dependencies.writeStdout('\x1b[H');
126
182
  }
127
- const config = await dependencies.readHudConfigFn(cwd);
128
- const ctx = await dependencies.readAllStateFn(cwd, config);
183
+ const frameCwd = dependencies.resolveWatchCwdFn(cwd);
184
+ const config = await dependencies.readHudConfigFn(frameCwd);
185
+ const ctx = await dependencies.readAllStateFn(frameCwd, config);
129
186
  const preset = flags.preset ?? config.preset;
130
187
  const maxLines = getHudRenderMaxLines(ctx);
131
188
  if (maxLines !== lastDesiredHeight) {
@@ -137,7 +194,13 @@ export async function runWatchMode(cwd, flags, deps = {}) {
137
194
  maxLines,
138
195
  });
139
196
  dependencies.writeStdout(line + '\x1b[K\x1b[J');
140
- await dependencies.runAuthorityTickFn({ cwd });
197
+ try {
198
+ await dependencies.runAuthorityTickFn({ cwd: frameCwd });
199
+ }
200
+ catch (authorityError) {
201
+ const message = authorityError instanceof Error ? authorityError.message : String(authorityError);
202
+ dependencies.writeStderr(`HUD watch authority tick failed: ${message}\n`);
203
+ }
141
204
  }
142
205
  catch (error) {
143
206
  const message = error instanceof Error ? error.message : String(error);
@@ -231,25 +294,31 @@ export function shellEscape(s) {
231
294
  * passed as a literal argument to tmux (no shell expansion). `omxBin` is
232
295
  * shell-escaped inside the command string that tmux will execute in a shell.
233
296
  */
234
- export function buildTmuxSplitArgs(cwd, omxBin, preset, sessionId, omxRoot, leaderPaneId, heightLines) {
297
+ export function buildTmuxSplitArgs(cwd, omxBin, preset, sessionId, omxRoot, leaderPaneId, heightLines, rootEnv) {
235
298
  // Defense-in-depth: keep preset constrained even if this helper is reused.
236
299
  const safePreset = parseHudPreset(preset);
237
300
  const presetArg = safePreset ? ` --preset=${safePreset}` : '';
238
- const safeSessionId = typeof sessionId === 'string' ? sessionId.trim() : '';
239
- const safeOmxRoot = typeof omxRoot === 'string' ? omxRoot : '';
240
- const safeLeaderPaneId = typeof leaderPaneId === 'string' ? leaderPaneId.trim() : '';
241
- const envAssignments = [
242
- safeSessionId ? `OMX_SESSION_ID=${shellEscape(safeSessionId)}` : '',
243
- `${OMX_TMUX_HUD_OWNER_ENV}=1`,
244
- safeLeaderPaneId ? `${OMX_TMUX_HUD_LEADER_PANE_ENV}=${shellEscape(safeLeaderPaneId)}` : '',
245
- safeOmxRoot.trim() ? `OMX_ROOT=${shellEscape(safeOmxRoot)}` : '',
246
- ].filter(Boolean);
301
+ const envAssignments = Object.entries(buildHudRuntimeEnv({
302
+ sessionId,
303
+ leaderPaneId,
304
+ omxRoot,
305
+ ...(rootEnv ?? { rootSource: 'omx-root-env' }),
306
+ }).env).map(([key, value]) => `${key}=${key === OMX_TMUX_HUD_OWNER_ENV ? value : shellEscape(value)}`);
247
307
  const envPrefix = envAssignments.length > 0 ? `env ${envAssignments.join(' ')} ` : '';
248
308
  const cmd = `exec ${envPrefix}${shellEscape(process.execPath)} ${shellEscape(omxBin)} hud --watch${presetArg}`;
249
309
  const height = Number.isFinite(heightLines) && (heightLines ?? 0) > 0
250
310
  ? Math.floor(heightLines ?? HUD_TMUX_HEIGHT_LINES)
251
311
  : HUD_TMUX_HEIGHT_LINES;
252
- return ['split-window', '-v', '-l', String(height), '-c', cwd, cmd];
312
+ return [
313
+ 'split-window',
314
+ '-v',
315
+ '-l',
316
+ String(height),
317
+ ...(leaderPaneId ? ['-t', leaderPaneId] : []),
318
+ '-c',
319
+ cwd,
320
+ cmd,
321
+ ];
253
322
  }
254
323
  async function launchTmuxPane(cwd, flags) {
255
324
  // Check if we're inside tmux
@@ -264,29 +333,37 @@ async function launchTmuxPane(cwd, flags) {
264
333
  }
265
334
  const envPaneId = process.env.TMUX_PANE?.trim();
266
335
  const currentPaneId = envPaneId || readActiveTmuxPaneId() || undefined;
336
+ const leaderPaneId = currentPaneId;
267
337
  const sessionId = process.env.OMX_SESSION_ID?.trim() || undefined;
268
- const existingHudPaneIds = currentPaneId || sessionId
269
- ? listCurrentWindowHudPaneIds(currentPaneId, undefined, {
338
+ const existingHudPaneIds = leaderPaneId || sessionId
339
+ ? listCurrentWindowHudPaneIds(leaderPaneId, undefined, {
270
340
  sessionId,
271
- leaderPaneId: currentPaneId,
341
+ leaderPaneId,
272
342
  })
273
343
  : [];
274
- if (existingHudPaneIds.length === 1) {
344
+ if (existingHudPaneIds.length >= 1) {
345
+ const [keeperPaneId, ...duplicatePaneIds] = existingHudPaneIds;
346
+ for (const paneId of duplicatePaneIds) {
347
+ killTmuxPane(paneId);
348
+ }
275
349
  const config = await readHudConfig(cwd);
276
350
  const ctx = await readAllState(cwd, config);
277
351
  const desiredHeight = getHudRenderMaxLines(ctx);
278
- resizeTmuxPane(existingHudPaneIds[0], desiredHeight);
279
- if (currentPaneId)
280
- registerHudResizeHook(existingHudPaneIds[0], currentPaneId, desiredHeight);
281
- console.log('HUD already running in tmux pane. Reused existing HUD pane.');
352
+ resizeTmuxPane(keeperPaneId, desiredHeight);
353
+ if (leaderPaneId)
354
+ registerHudResizeHook(keeperPaneId, leaderPaneId, desiredHeight);
355
+ console.log(duplicatePaneIds.length > 0
356
+ ? 'HUD already running in tmux pane. Removed duplicate HUD panes and reused existing HUD pane.'
357
+ : 'HUD already running in tmux pane. Reused existing HUD pane.');
282
358
  return;
283
359
  }
284
- for (const paneId of existingHudPaneIds) {
285
- killTmuxPane(paneId);
286
- }
287
360
  const config = await readHudConfig(cwd);
288
361
  const ctx = await readAllState(cwd, config);
289
- const args = buildTmuxSplitArgs(cwd, omxBin, flags.preset, process.env.OMX_SESSION_ID, process.env.OMX_ROOT, currentPaneId, getHudRenderMaxLines(ctx));
362
+ const args = buildTmuxSplitArgs(cwd, omxBin, flags.preset, process.env.OMX_SESSION_ID, process.env.OMX_ROOT, currentPaneId, getHudRenderMaxLines(ctx), {
363
+ omxStateRoot: process.env.OMX_STATE_ROOT,
364
+ omxTeamStateRoot: process.env.OMX_TEAM_STATE_ROOT,
365
+ rootSource: process.env.OMX_TEAM_STATE_ROOT ? 'team-env' : process.env.OMX_ROOT ? 'omx-root-env' : process.env.OMX_STATE_ROOT ? 'omx-state-root-env' : 'cwd-default',
366
+ });
290
367
  try {
291
368
  // Split bottom pane at the shared HUD height, running omx hud --watch.
292
369
  // execFileSync bypasses the shell – cwd and omxBin cannot inject commands.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hud/index.ts"],"names":[],"mappings":"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"}
@@ -11,10 +11,10 @@ export interface ReconcileHudForPromptSubmitResult {
11
11
  export interface ReconcileHudForPromptSubmitDeps {
12
12
  env?: NodeJS.ProcessEnv;
13
13
  sessionId?: string;
14
+ sessionIds?: string[];
14
15
  listCurrentWindowPanes?: (currentPaneId?: string) => TmuxPaneSnapshot[];
15
16
  createHudWatchPane?: (cwd: string, hudCmd: string, options?: {
16
17
  heightLines?: number;
17
- fullWidth?: boolean;
18
18
  targetPaneId?: string;
19
19
  }) => string | null;
20
20
  killTmuxPane?: (paneId: string) => boolean;
@@ -22,8 +22,8 @@ export interface ReconcileHudForPromptSubmitDeps {
22
22
  readHudConfig?: typeof readHudConfig;
23
23
  readAllState?: typeof readAllState;
24
24
  resolveOmxCliEntryPath?: typeof resolveOmxCliEntryPath;
25
- registerHudResizeHook?: (hudPaneId: string, currentPaneId: string | undefined, heightLines: number) => boolean;
26
- unregisterHudResizeHook?: (currentPaneId: string | undefined) => boolean;
25
+ registerHudResizeHook?: (hudPaneId: string, leaderPaneId: string | undefined, heightLines: number) => boolean;
26
+ unregisterHudResizeHook?: (leaderPaneId: string | undefined) => boolean;
27
27
  }
28
28
  export declare function reconcileHudForPromptSubmit(cwd: string, deps?: ReconcileHudForPromptSubmitDeps): Promise<ReconcileHudForPromptSubmitResult>;
29
29
  //# sourceMappingURL=reconcile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/hud/reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,EAUL,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAM3D,MAAM,WAAW,iCAAiC;IAChD,MAAM,EACF,kBAAkB,GAClB,kBAAkB,GAClB,4BAA4B,GAC5B,uBAAuB,GACvB,SAAS,GACT,WAAW,GACX,qBAAqB,GACrB,QAAQ,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IACxE,kBAAkB,CAAC,EAAE,CACnB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KAC3E,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAClE,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACvD,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/G,uBAAuB,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;CAC1E;AAeD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,+BAAoC,GACzC,OAAO,CAAC,iCAAiC,CAAC,CAsH5C"}
1
+ {"version":3,"file":"reconcile.d.ts","sourceRoot":"","sources":["../../src/hud/reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,EAaL,KAAK,gBAAgB,EACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AA4D3D,MAAM,WAAW,iCAAiC;IAChD,MAAM,EACF,kBAAkB,GAClB,kBAAkB,GAClB,4BAA4B,GAC5B,uBAAuB,GACvB,SAAS,GACT,WAAW,GACX,qBAAqB,GACrB,QAAQ,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IACxE,kBAAkB,CAAC,EAAE,CACnB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,KACtD,MAAM,GAAG,IAAI,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAClE,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,sBAAsB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IACvD,qBAAqB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9G,uBAAuB,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;CACzE;AAmCD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,+BAAoC,GACzC,OAAO,CAAC,iCAAiC,CAAC,CAgL5C"}
@@ -1,20 +1,79 @@
1
1
  import { readAllState, readHudConfig } from './state.js';
2
2
  import { getHudRenderMaxLines } from './render.js';
3
3
  import { HUD_TMUX_HEIGHT_LINES } from './constants.js';
4
- import { buildHudWatchCommand, createHudWatchPane, findHudWatchPaneIds, isHudWatchPane, killTmuxPane, listCurrentWindowPanes, registerHudResizeHook, unregisterHudResizeHook, resizeTmuxPane, } from './tmux.js';
4
+ import { buildHudWatchCommand, createHudWatchPane, findLegacyFocusedHudWatchPaneIds, findHudWatchPaneIds, isHudWatchPane, killTmuxPane, listCurrentWindowPanes, readHudPaneOwner, registerHudResizeHook, unregisterHudResizeHook, resizeTmuxPane, } from './tmux.js';
5
5
  import { resolveOmxCliEntryPath } from '../utils/paths.js';
6
6
  export const OMX_TMUX_HUD_OWNER_ENV = 'OMX_TMUX_HUD_OWNER';
7
7
  function isExplicitOmxOwnedTmuxEnv(env) {
8
8
  return env[OMX_TMUX_HUD_OWNER_ENV] === '1';
9
9
  }
10
- function ensureHudResizeHook(hudPaneId, currentPaneId, desiredHeight, deps) {
10
+ /**
11
+ * Kill HUD watch panes that belong to the *current* session but whose owning
12
+ * leader pane is no longer alive in this window.
13
+ *
14
+ * When a leader pane is destroyed (e.g. during a `team` setup/teardown cycle that
15
+ * tears down the leader REPL pane), its owner-tagged HUD panes are left pointing at
16
+ * the dead leader id. They are matched by neither `findHudWatchPaneIds` — whose
17
+ * owner check requires the recorded leader to equal the current pane — nor
18
+ * `findLegacyFocusedHudWatchPaneIds`, which only adopts HUD panes that *lack* owner
19
+ * metadata. So the reconcile below sees "no HUD", recreates one, and repeats on
20
+ * every prompt submit until the window degenerates into a column of stacked HUD
21
+ * strips with no leader or worker panes left.
22
+ *
23
+ * The reap is intentionally scoped to the current session: HUD panes owned by other
24
+ * sessions (whose leader may legitimately live in a different tmux window we cannot
25
+ * see from this window's pane list) are never touched.
26
+ */
27
+ function reapOrphanedSessionHudPanes(panes, opts) {
28
+ const { sessionId, currentPaneId, killPane } = opts;
29
+ const sameSessionIds = new Set([sessionId, ...(opts.sessionIds ?? [])]
30
+ .map((candidate) => candidate?.trim() ?? '')
31
+ .filter((candidate) => candidate !== ''));
32
+ if (sameSessionIds.size === 0)
33
+ return [];
34
+ // A recorded leader only counts as "live" if it exists in this window AND is not
35
+ // itself a HUD watcher. Without the HUD exclusion, an orphan whose recorded leader
36
+ // is *another HUD pane* would be preserved here; that referenced HUD could be
37
+ // reaped on a later iteration, leaving a dangling orphan that still never matches
38
+ // the real current pane — so the all-HUD-strip state is only partially cleaned.
39
+ const liveNonHudPaneIds = new Set(panes.filter((pane) => !isHudWatchPane(pane)).map((pane) => pane.paneId));
40
+ const reaped = [];
41
+ for (const pane of panes) {
42
+ if (!isHudWatchPane(pane))
43
+ continue;
44
+ const owner = readHudPaneOwner(pane);
45
+ // Only reclaim HUDs that explicitly belong to this session and name a leader.
46
+ if (!owner.sessionId || !sameSessionIds.has(owner.sessionId) || !owner.leaderPaneId)
47
+ continue;
48
+ // Keep HUDs whose leader is the current pane or another live non-HUD leader pane.
49
+ if (owner.leaderPaneId === currentPaneId || liveNonHudPaneIds.has(owner.leaderPaneId))
50
+ continue;
51
+ if (killPane(pane.paneId))
52
+ reaped.push(pane.paneId);
53
+ }
54
+ return reaped;
55
+ }
56
+ function ensureHudResizeHook(hudPaneId, leaderPaneId, desiredHeight, deps) {
11
57
  try {
12
- (deps.registerHudResizeHook ?? registerHudResizeHook)(hudPaneId, currentPaneId, desiredHeight);
58
+ (deps.registerHudResizeHook ?? registerHudResizeHook)(hudPaneId, leaderPaneId, desiredHeight);
13
59
  }
14
60
  catch {
15
61
  // Non-critical — hook registration failure does not break HUD lifecycle.
16
62
  }
17
63
  }
64
+ function planOwnedHudPaneDedupe(panes, currentPaneId, owner, preferredPaneId) {
65
+ const ownedPaneIds = [
66
+ ...findHudWatchPaneIds(panes, currentPaneId, owner),
67
+ ...findLegacyFocusedHudWatchPaneIds(panes, currentPaneId),
68
+ ].filter((paneId, index, paneIds) => paneIds.indexOf(paneId) === index);
69
+ const keeperPaneId = ownedPaneIds.includes(preferredPaneId)
70
+ ? preferredPaneId
71
+ : (ownedPaneIds[0] ?? preferredPaneId);
72
+ return {
73
+ paneId: keeperPaneId,
74
+ duplicatePaneIds: ownedPaneIds.filter((paneId) => paneId !== keeperPaneId),
75
+ };
76
+ }
18
77
  export async function reconcileHudForPromptSubmit(cwd, deps = {}) {
19
78
  const env = deps.env ?? process.env;
20
79
  if (!env.TMUX) {
@@ -48,21 +107,49 @@ export async function reconcileHudForPromptSubmit(cwd, deps = {}) {
48
107
  const killPane = deps.killTmuxPane ?? ((paneId) => killTmuxPane(paneId));
49
108
  const resizePane = deps.resizeTmuxPane ?? ((paneId, lines) => resizeTmuxPane(paneId, lines));
50
109
  const currentPaneId = env.TMUX_PANE?.trim();
51
- const panes = listPanes(currentPaneId);
52
110
  const resolvedSessionId = deps.sessionId?.trim() || env.OMX_SESSION_ID?.trim() || undefined;
53
- const hudPaneIds = findHudWatchPaneIds(panes, currentPaneId, {
111
+ const equivalentSessionIds = [
112
+ resolvedSessionId,
113
+ env.OMX_SESSION_ID?.trim(),
114
+ ...(deps.sessionIds ?? []),
115
+ ]
116
+ .map((sessionId) => sessionId?.trim() ?? '')
117
+ .filter((sessionId, index, sessionIds) => sessionId !== '' && sessionIds.indexOf(sessionId) === index);
118
+ let panes = listPanes(currentPaneId);
119
+ // Reclaim orphaned HUD panes left behind by a destroyed leader before deciding
120
+ // whether a HUD already exists; otherwise dead-leader HUDs accumulate one per
121
+ // prompt submit and the window fills with stacked HUD strips.
122
+ const reapedOrphanPaneIds = reapOrphanedSessionHudPanes(panes, {
54
123
  sessionId: resolvedSessionId,
55
- leaderPaneId: currentPaneId,
124
+ sessionIds: equivalentSessionIds,
125
+ currentPaneId,
126
+ killPane,
56
127
  });
128
+ if (reapedOrphanPaneIds.length > 0) {
129
+ const reapedPaneIdSet = new Set(reapedOrphanPaneIds);
130
+ panes = panes.filter((pane) => !reapedPaneIdSet.has(pane.paneId));
131
+ }
132
+ const owner = {
133
+ sessionId: resolvedSessionId,
134
+ sessionIds: equivalentSessionIds,
135
+ leaderPaneId: currentPaneId,
136
+ };
137
+ const hudPaneIds = [
138
+ ...findHudWatchPaneIds(panes, currentPaneId, owner),
139
+ ...findLegacyFocusedHudWatchPaneIds(panes, currentPaneId),
140
+ ].filter((paneId, index, paneIds) => paneIds.indexOf(paneId) === index);
57
141
  const duplicateCount = Math.max(0, hudPaneIds.length - 1);
58
- const nonHudPaneCount = panes.filter((pane) => !isHudWatchPane(pane)).length;
59
142
  const readHudConfigFn = deps.readHudConfig ?? readHudConfig;
60
143
  const hudConfig = await readHudConfigFn(cwd).catch(() => null);
61
144
  const readAllStateFn = deps.readAllState ?? readAllState;
62
145
  const hudState = hudConfig ? await readAllStateFn(cwd, hudConfig).catch(() => null) : null;
63
146
  const desiredHeight = hudState ? getHudRenderMaxLines(hudState) : HUD_TMUX_HEIGHT_LINES;
64
147
  const preset = hudConfig?.preset;
65
- const hudCmd = buildHudWatchCommand(omxBin, preset, resolvedSessionId, env.OMX_ROOT, currentPaneId);
148
+ const hudCmd = buildHudWatchCommand(omxBin, preset, resolvedSessionId, env.OMX_ROOT, currentPaneId, {
149
+ omxStateRoot: env.OMX_STATE_ROOT,
150
+ omxTeamStateRoot: env.OMX_TEAM_STATE_ROOT,
151
+ rootSource: env.OMX_TEAM_STATE_ROOT ? 'team-env' : env.OMX_ROOT ? 'omx-root-env' : env.OMX_STATE_ROOT ? 'omx-state-root-env' : 'cwd-default',
152
+ });
66
153
  if (hudPaneIds.length === 1) {
67
154
  const resized = resizePane(hudPaneIds[0], desiredHeight);
68
155
  if (resized)
@@ -74,17 +161,24 @@ export async function reconcileHudForPromptSubmit(cwd, deps = {}) {
74
161
  duplicateCount,
75
162
  };
76
163
  }
77
- if (hudPaneIds.length > 1 && !resolvedSessionId) {
164
+ if (hudPaneIds.length > 1) {
78
165
  const [keeperPaneId, ...extraPaneIds] = hudPaneIds;
166
+ const resized = resizePane(keeperPaneId, desiredHeight);
79
167
  for (const paneId of extraPaneIds) {
80
168
  killPane(paneId);
81
169
  }
82
- const resized = resizePane(keeperPaneId, desiredHeight);
83
- if (resized)
84
- ensureHudResizeHook(keeperPaneId, currentPaneId, desiredHeight, deps);
170
+ if (!resized) {
171
+ return {
172
+ status: 'failed',
173
+ paneId: keeperPaneId,
174
+ desiredHeight,
175
+ duplicateCount,
176
+ };
177
+ }
178
+ ensureHudResizeHook(keeperPaneId, currentPaneId, desiredHeight, deps);
85
179
  return {
86
- status: resized ? 'replaced_duplicates' : 'failed',
87
- paneId: resized ? keeperPaneId : null,
180
+ status: 'replaced_duplicates',
181
+ paneId: keeperPaneId,
88
182
  desiredHeight,
89
183
  duplicateCount,
90
184
  };
@@ -104,7 +198,6 @@ export async function reconcileHudForPromptSubmit(cwd, deps = {}) {
104
198
  }
105
199
  const paneId = createPane(cwd, hudCmd, {
106
200
  heightLines: desiredHeight,
107
- fullWidth: nonHudPaneCount > 1,
108
201
  targetPaneId: currentPaneId,
109
202
  });
110
203
  if (!paneId) {
@@ -115,13 +208,29 @@ export async function reconcileHudForPromptSubmit(cwd, deps = {}) {
115
208
  duplicateCount,
116
209
  };
117
210
  }
118
- resizePane(paneId, desiredHeight);
119
- ensureHudResizeHook(paneId, currentPaneId, desiredHeight, deps);
211
+ // A launch-path restore and prompt-submit reconciliation can both observe
212
+ // "no HUD" before either split-window has materialized. Re-scan after create
213
+ // and collapse same-owner panes so the second creator cleans up the race
214
+ // instead of leaving a duplicate HUD in the user window.
215
+ const postCreate = planOwnedHudPaneDedupe(listPanes(currentPaneId), currentPaneId, owner, paneId);
216
+ const resized = resizePane(postCreate.paneId, desiredHeight);
217
+ for (const duplicatePaneId of postCreate.duplicatePaneIds) {
218
+ killPane(duplicatePaneId);
219
+ }
220
+ if (!resized) {
221
+ return {
222
+ status: 'failed',
223
+ paneId: postCreate.paneId,
224
+ desiredHeight,
225
+ duplicateCount: postCreate.duplicatePaneIds.length,
226
+ };
227
+ }
228
+ ensureHudResizeHook(postCreate.paneId, currentPaneId, desiredHeight, deps);
120
229
  return {
121
- status: hudPaneIds.length > 1 ? 'replaced_duplicates' : 'recreated',
122
- paneId,
230
+ status: postCreate.duplicatePaneIds.length > 0 || hudPaneIds.length > 1 ? 'replaced_duplicates' : 'recreated',
231
+ paneId: postCreate.paneId,
123
232
  desiredHeight,
124
- duplicateCount,
233
+ duplicateCount: postCreate.duplicatePaneIds.length,
125
234
  };
126
235
  }
127
236
  //# sourceMappingURL=reconcile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/hud/reconcile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reconcile.js","sourceRoot":"","sources":["../../src/hud/reconcile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,gCAAgC,EAChC,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,cAAc,GAGf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAE3D,SAAS,yBAAyB,CAAC,GAAsB;IACvD,OAAO,GAAG,CAAC,sBAAsB,CAAC,KAAK,GAAG,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAS,2BAA2B,CAClC,KAAyB,EACzB,IAKC;IAED,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACpD,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC3C,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAC3C,CAAC;IACF,IAAI,cAAc,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACzC,iFAAiF;IACjF,mFAAmF;IACnF,8EAA8E;IAC9E,kFAAkF;IAClF,gFAAgF;IAChF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAC/B,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CACzE,CAAC;IACF,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAAE,SAAS;QACpC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QACrC,8EAA8E;QAC9E,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;YAAE,SAAS;QAC9F,kFAAkF;QAClF,IAAI,KAAK,CAAC,YAAY,KAAK,aAAa,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC;YAAE,SAAS;QAChG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAoCD,SAAS,mBAAmB,CAC1B,SAAiB,EACjB,YAAgC,EAChC,aAAqB,EACrB,IAAqC;IAErC,IAAI,CAAC;QACH,CAAC,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;IAC3E,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAyB,EACzB,aAAiC,EACjC,KAAmB,EACnB,eAAuB;IAEvB,MAAM,YAAY,GAAG;QACnB,GAAG,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC;QACnD,GAAG,gCAAgC,CAAC,KAAK,EAAE,aAAa,CAAC;KAC1D,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC;QACzD,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,CAAC;IAEzC,OAAO;QACL,MAAM,EAAE,YAAY;QACpB,gBAAgB,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,YAAY,CAAC;KAC3E,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAW,EACX,OAAwC,EAAE;IAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACpC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACd,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,OAAO;YACL,MAAM,EAAE,4BAA4B;YACpC,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,wBAAwB,GAAG,IAAI,CAAC,sBAAsB,IAAI,sBAAsB,CAAC;IACvF,MAAM,MAAM,GAAG,wBAAwB,EAAE,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,MAAM,EAAE,kBAAkB;YAC1B,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,CAAC;SAClB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,sBAAsB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IACzG,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACzH,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;IAE7F,MAAM,aAAa,GAAG,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5C,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAC5F,MAAM,oBAAoB,GAAG;QAC3B,iBAAiB;QACjB,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE;QAC1B,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;KAC3B;SACE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC3C,MAAM,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC;IACzG,IAAI,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC;IAErC,+EAA+E;IAC/E,8EAA8E;IAC9E,8DAA8D;IAC9D,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,KAAK,EAAE;QAC7D,SAAS,EAAE,iBAAiB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,aAAa;QACb,QAAQ;KACT,CAAC,CAAC;IACH,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACrD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,KAAK,GAAG;QACZ,SAAS,EAAE,iBAAiB;QAC5B,UAAU,EAAE,oBAAoB;QAChC,YAAY,EAAE,aAAa;KAC5B,CAAC;IACF,MAAM,UAAU,GAAG;QACjB,GAAG,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,CAAC;QACnD,GAAG,gCAAgC,CAAC,KAAK,EAAE,aAAa,CAAC;KAC1D,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC;IACxE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC;IACzD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3F,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACxF,MAAM,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC;IACjC,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE;QAClG,YAAY,EAAE,GAAG,CAAC,cAAc;QAChC,gBAAgB,EAAE,GAAG,CAAC,mBAAmB;QACzC,UAAU,EAAE,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa;KAC7I,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACzD,IAAI,OAAO;YAAE,mBAAmB,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACpF,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;YACtC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;YACrB,aAAa;YACb,cAAc;SACf,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,GAAG,UAAU,CAAC;QACnD,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACxD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YAClC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,YAAY;gBACpB,aAAa;gBACb,cAAc;aACf,CAAC;QACJ,CAAC;QACD,mBAAmB,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QACtE,OAAO;YACL,MAAM,EAAE,qBAAqB;YAC7B,MAAM,EAAE,YAAY;YACpB,aAAa;YACb,cAAc;SACf,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,OAAO;YACL,MAAM,EAAE,uBAAuB;YAC/B,MAAM,EAAE,IAAI;YACZ,aAAa;YACb,cAAc;SACf,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,IAAI,uBAAuB,CAAC;IAC/E,cAAc,CAAC,aAAa,CAAC,CAAC;IAE9B,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE;QACrC,WAAW,EAAE,aAAa;QAC1B,YAAY,EAAE,aAAa;KAC5B,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,IAAI;YACZ,aAAa;YACb,cAAc;SACf,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,6EAA6E;IAC7E,yEAAyE;IACzE,yDAAyD;IACzD,MAAM,UAAU,GAAG,sBAAsB,CACvC,SAAS,CAAC,aAAa,CAAC,EACxB,aAAa,EACb,KAAK,EACL,MAAM,CACP,CAAC;IACF,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7D,KAAK,MAAM,eAAe,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAC1D,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,aAAa;YACb,cAAc,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM;SACnD,CAAC;IACJ,CAAC;IACD,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAE3E,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW;QAC7G,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,aAAa;QACb,cAAc,EAAE,UAAU,CAAC,gBAAgB,CAAC,MAAM;KACnD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/hud/render.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA4HD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,MAAM,CAErF;AAyRD,wDAAwD;AACxD,wBAAgB,SAAS,CACvB,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAkBR;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/hud/render.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAQ9D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6JD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,MAAM,CAErF;AA4RD,wDAAwD;AACxD,wBAAgB,SAAS,CACvB,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,SAAS,EACjB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAkBR;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D"}
@@ -63,10 +63,32 @@ function renderUltrawork(ctx) {
63
63
  return null;
64
64
  return cyan('ultrawork');
65
65
  }
66
+ function normalizeHudPhase(phase) {
67
+ return (phase || '').toLowerCase().replace(/_/g, '-');
68
+ }
69
+ function isLateAutopilotHudPhase(phase) {
70
+ const normalized = normalizeHudPhase(phase);
71
+ return normalized === 'code-review' || normalized === 'ultraqa';
72
+ }
73
+ function isAutopilotLateGateSource(ctx, stage) {
74
+ return normalizeHudPhase(ctx.autopilot?.current_phase) === stage;
75
+ }
76
+ function hasAutopilotLateGateReplacement(ctx, phase) {
77
+ const normalized = normalizeHudPhase(phase);
78
+ if (normalized === 'code-review') {
79
+ return ctx.codeReview?.source === 'autopilot' && isAutopilotLateGateSource(ctx, 'code-review');
80
+ }
81
+ if (normalized === 'ultraqa') {
82
+ return ctx.ultraqa?.source === 'autopilot' && isAutopilotLateGateSource(ctx, 'ultraqa');
83
+ }
84
+ return false;
85
+ }
66
86
  function renderAutopilot(ctx) {
67
87
  if (!ctx.autopilot)
68
88
  return null;
69
89
  const phase = sanitizeDynamicText(ctx.autopilot.current_phase || 'active') || 'active';
90
+ if (isLateAutopilotHudPhase(phase) && hasAutopilotLateGateReplacement(ctx, phase))
91
+ return null;
70
92
  return yellow(`autopilot:${phase}`);
71
93
  }
72
94
  function renderRalplan(ctx) {
@@ -94,9 +116,19 @@ function renderAutoresearch(ctx) {
94
116
  const phase = sanitizeDynamicText(ctx.autoresearch.current_phase || 'active') || 'active';
95
117
  return cyan(`research:${phase}`);
96
118
  }
119
+ function renderCodeReview(ctx) {
120
+ if (!ctx.codeReview)
121
+ return null;
122
+ if (ctx.codeReview.source === 'autopilot' && !isAutopilotLateGateSource(ctx, 'code-review'))
123
+ return null;
124
+ const phase = sanitizeDynamicText(ctx.codeReview.current_phase || 'active') || 'active';
125
+ return green(`code-review:${phase}`);
126
+ }
97
127
  function renderUltraqa(ctx) {
98
128
  if (!ctx.ultraqa)
99
129
  return null;
130
+ if (ctx.ultraqa.source === 'autopilot' && !isAutopilotLateGateSource(ctx, 'ultraqa'))
131
+ return null;
100
132
  const phase = sanitizeDynamicText(ctx.ultraqa.current_phase || 'active') || 'active';
101
133
  return green(`qa:${phase}`);
102
134
  }
@@ -240,6 +272,7 @@ const MINIMAL_ELEMENTS = [
240
272
  renderRalplan,
241
273
  renderDeepInterview,
242
274
  renderAutoresearch,
275
+ renderCodeReview,
243
276
  renderUltraqa,
244
277
  renderExecutionSummary,
245
278
  renderTurns,
@@ -252,6 +285,7 @@ const FOCUSED_ELEMENTS = [
252
285
  renderRalplan,
253
286
  renderDeepInterview,
254
287
  renderAutoresearch,
288
+ renderCodeReview,
255
289
  renderUltraqa,
256
290
  renderExecutionSummary,
257
291
  renderTurns,
@@ -268,6 +302,7 @@ const FULL_ELEMENTS = [
268
302
  renderRalplan,
269
303
  renderDeepInterview,
270
304
  renderAutoresearch,
305
+ renderCodeReview,
271
306
  renderUltraqa,
272
307
  renderExecutionSummary,
273
308
  renderTurns,