oh-my-codex 0.11.13 → 0.12.0

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 (369) hide show
  1. package/Cargo.lock +5 -5
  2. package/Cargo.toml +1 -1
  3. package/README.md +27 -17
  4. package/crates/omx-runtime/src/main.rs +6 -2
  5. package/dist/agents/native-config.js +1 -1
  6. package/dist/agents/native-config.js.map +1 -1
  7. package/dist/cli/__tests__/autoresearch-guided.test.js +74 -2
  8. package/dist/cli/__tests__/autoresearch-guided.test.js.map +1 -1
  9. package/dist/cli/__tests__/cleanup.test.js +22 -30
  10. package/dist/cli/__tests__/cleanup.test.js.map +1 -1
  11. package/dist/cli/__tests__/error-handling-warnings.test.js +3 -1
  12. package/dist/cli/__tests__/error-handling-warnings.test.js.map +1 -1
  13. package/dist/cli/__tests__/index.test.js +217 -4
  14. package/dist/cli/__tests__/index.test.js.map +1 -1
  15. package/dist/cli/__tests__/setup-refresh.test.js +49 -9
  16. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  17. package/dist/cli/__tests__/setup-scope.test.js +9 -0
  18. package/dist/cli/__tests__/setup-scope.test.js.map +1 -1
  19. package/dist/cli/__tests__/team.test.js +136 -11
  20. package/dist/cli/__tests__/team.test.js.map +1 -1
  21. package/dist/cli/__tests__/uninstall.test.js +10 -0
  22. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  23. package/dist/cli/__tests__/windows-popup-loop-contract.test.js +1 -0
  24. package/dist/cli/__tests__/windows-popup-loop-contract.test.js.map +1 -1
  25. package/dist/cli/autoresearch-guided.d.ts.map +1 -1
  26. package/dist/cli/autoresearch-guided.js +2 -1
  27. package/dist/cli/autoresearch-guided.js.map +1 -1
  28. package/dist/cli/autoresearch.d.ts.map +1 -1
  29. package/dist/cli/autoresearch.js +2 -1
  30. package/dist/cli/autoresearch.js.map +1 -1
  31. package/dist/cli/cleanup.d.ts.map +1 -1
  32. package/dist/cli/cleanup.js +4 -2
  33. package/dist/cli/cleanup.js.map +1 -1
  34. package/dist/cli/index.d.ts +12 -0
  35. package/dist/cli/index.d.ts.map +1 -1
  36. package/dist/cli/index.js +238 -30
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/cli/omx.js +2 -0
  39. package/dist/cli/omx.js.map +1 -1
  40. package/dist/cli/setup.d.ts +1 -0
  41. package/dist/cli/setup.d.ts.map +1 -1
  42. package/dist/cli/setup.js +41 -7
  43. package/dist/cli/setup.js.map +1 -1
  44. package/dist/cli/team.d.ts.map +1 -1
  45. package/dist/cli/team.js +16 -557
  46. package/dist/cli/team.js.map +1 -1
  47. package/dist/cli/uninstall.d.ts.map +1 -1
  48. package/dist/cli/uninstall.js +34 -9
  49. package/dist/cli/uninstall.js.map +1 -1
  50. package/dist/config/__tests__/generator-idempotent.test.js +79 -2
  51. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  52. package/dist/config/__tests__/generator-notify.test.js +2 -0
  53. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  54. package/dist/config/codex-hooks.d.ts +11 -0
  55. package/dist/config/codex-hooks.d.ts.map +1 -0
  56. package/dist/config/codex-hooks.js +50 -0
  57. package/dist/config/codex-hooks.js.map +1 -0
  58. package/dist/config/generator.d.ts +5 -3
  59. package/dist/config/generator.d.ts.map +1 -1
  60. package/dist/config/generator.js +24 -14
  61. package/dist/config/generator.js.map +1 -1
  62. package/dist/hooks/__tests__/debugger-log-recency-contract.test.d.ts +2 -0
  63. package/dist/hooks/__tests__/debugger-log-recency-contract.test.d.ts.map +1 -0
  64. package/dist/hooks/__tests__/debugger-log-recency-contract.test.js +20 -0
  65. package/dist/hooks/__tests__/debugger-log-recency-contract.test.js.map +1 -0
  66. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +236 -2
  67. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  68. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +86 -0
  69. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
  70. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +40 -0
  71. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
  72. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.d.ts +2 -0
  73. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.d.ts.map +1 -0
  74. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js +54 -0
  75. package/dist/hooks/__tests__/notify-hook-managed-tmux.test.js.map +1 -0
  76. package/dist/hooks/__tests__/notify-hook-modules.test.js +31 -0
  77. package/dist/hooks/__tests__/notify-hook-modules.test.js.map +1 -1
  78. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js +51 -0
  79. package/dist/hooks/__tests__/notify-hook-ralph-resume.test.js.map +1 -1
  80. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.d.ts +2 -0
  81. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.d.ts.map +1 -0
  82. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.js +136 -0
  83. package/dist/hooks/__tests__/notify-hook-session-idle-dedupe.test.js.map +1 -0
  84. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +120 -0
  85. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  86. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +145 -20
  87. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  88. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js +116 -0
  89. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js.map +1 -1
  90. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +86 -0
  91. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
  92. package/dist/hooks/__tests__/pre-context-gate-skills.test.js +1 -0
  93. package/dist/hooks/__tests__/pre-context-gate-skills.test.js.map +1 -1
  94. package/dist/hooks/extensibility/__tests__/runtime.test.js +49 -0
  95. package/dist/hooks/extensibility/__tests__/runtime.test.js.map +1 -1
  96. package/dist/hooks/extensibility/runtime.d.ts.map +1 -1
  97. package/dist/hooks/extensibility/runtime.js +10 -0
  98. package/dist/hooks/extensibility/runtime.js.map +1 -1
  99. package/dist/hooks/extensibility/types.d.ts +1 -1
  100. package/dist/hooks/extensibility/types.d.ts.map +1 -1
  101. package/dist/hooks/prompt-guidance-contract.d.ts.map +1 -1
  102. package/dist/hooks/prompt-guidance-contract.js +12 -8
  103. package/dist/hooks/prompt-guidance-contract.js.map +1 -1
  104. package/dist/hooks/session.d.ts +5 -1
  105. package/dist/hooks/session.d.ts.map +1 -1
  106. package/dist/hooks/session.js +10 -6
  107. package/dist/hooks/session.js.map +1 -1
  108. package/dist/hud/index.d.ts.map +1 -1
  109. package/dist/hud/index.js +6 -1
  110. package/dist/hud/index.js.map +1 -1
  111. package/dist/mcp/__tests__/bootstrap.test.js +0 -3
  112. package/dist/mcp/__tests__/bootstrap.test.js.map +1 -1
  113. package/dist/mcp/__tests__/code-intel-server.test.js +27 -1
  114. package/dist/mcp/__tests__/code-intel-server.test.js.map +1 -1
  115. package/dist/mcp/__tests__/server-lifecycle.test.js +0 -5
  116. package/dist/mcp/__tests__/server-lifecycle.test.js.map +1 -1
  117. package/dist/mcp/bootstrap.d.ts +1 -1
  118. package/dist/mcp/bootstrap.d.ts.map +1 -1
  119. package/dist/mcp/bootstrap.js +0 -1
  120. package/dist/mcp/bootstrap.js.map +1 -1
  121. package/dist/mcp/code-intel-server.d.ts +20 -0
  122. package/dist/mcp/code-intel-server.d.ts.map +1 -1
  123. package/dist/mcp/code-intel-server.js +6 -5
  124. package/dist/mcp/code-intel-server.js.map +1 -1
  125. package/dist/notifications/__tests__/idle-cooldown.test.js +24 -1
  126. package/dist/notifications/__tests__/idle-cooldown.test.js.map +1 -1
  127. package/dist/notifications/__tests__/reply-listener.test.js +20 -1
  128. package/dist/notifications/__tests__/reply-listener.test.js.map +1 -1
  129. package/dist/notifications/__tests__/tmux.test.js +41 -0
  130. package/dist/notifications/__tests__/tmux.test.js.map +1 -1
  131. package/dist/notifications/idle-cooldown.d.ts +13 -0
  132. package/dist/notifications/idle-cooldown.d.ts.map +1 -1
  133. package/dist/notifications/idle-cooldown.js +50 -16
  134. package/dist/notifications/idle-cooldown.js.map +1 -1
  135. package/dist/notifications/reply-listener.d.ts.map +1 -1
  136. package/dist/notifications/reply-listener.js +2 -0
  137. package/dist/notifications/reply-listener.js.map +1 -1
  138. package/dist/notifications/tmux.d.ts.map +1 -1
  139. package/dist/notifications/tmux.js +4 -0
  140. package/dist/notifications/tmux.js.map +1 -1
  141. package/dist/scripts/__tests__/codex-native-hook.test.d.ts +2 -0
  142. package/dist/scripts/__tests__/codex-native-hook.test.d.ts.map +1 -0
  143. package/dist/scripts/__tests__/codex-native-hook.test.js +720 -0
  144. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -0
  145. package/dist/scripts/codex-native-hook.d.ts +22 -0
  146. package/dist/scripts/codex-native-hook.d.ts.map +1 -0
  147. package/dist/scripts/codex-native-hook.js +594 -0
  148. package/dist/scripts/codex-native-hook.js.map +1 -0
  149. package/dist/scripts/codex-native-pre-post.d.ts +26 -0
  150. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -0
  151. package/dist/scripts/codex-native-pre-post.js +118 -0
  152. package/dist/scripts/codex-native-pre-post.js.map +1 -0
  153. package/dist/scripts/notify-fallback-watcher.js +262 -18
  154. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  155. package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
  156. package/dist/scripts/notify-hook/auto-nudge.js +5 -6
  157. package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
  158. package/dist/scripts/notify-hook/log.d.ts +2 -2
  159. package/dist/scripts/notify-hook/log.d.ts.map +1 -1
  160. package/dist/scripts/notify-hook/log.js +10 -2
  161. package/dist/scripts/notify-hook/log.js.map +1 -1
  162. package/dist/scripts/notify-hook/managed-tmux.d.ts.map +1 -1
  163. package/dist/scripts/notify-hook/managed-tmux.js +2 -0
  164. package/dist/scripts/notify-hook/managed-tmux.js.map +1 -1
  165. package/dist/scripts/notify-hook/orchestration-intent.d.ts +18 -0
  166. package/dist/scripts/notify-hook/orchestration-intent.d.ts.map +1 -0
  167. package/dist/scripts/notify-hook/orchestration-intent.js +72 -0
  168. package/dist/scripts/notify-hook/orchestration-intent.js.map +1 -0
  169. package/dist/scripts/notify-hook/process-runner.js.map +1 -1
  170. package/dist/scripts/notify-hook/ralph-session-resume.d.ts.map +1 -1
  171. package/dist/scripts/notify-hook/ralph-session-resume.js +7 -0
  172. package/dist/scripts/notify-hook/ralph-session-resume.js.map +1 -1
  173. package/dist/scripts/notify-hook/team-dispatch.d.ts +15 -6
  174. package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
  175. package/dist/scripts/notify-hook/team-dispatch.js +125 -6
  176. package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
  177. package/dist/scripts/notify-hook/team-leader-nudge.d.ts +3 -2
  178. package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
  179. package/dist/scripts/notify-hook/team-leader-nudge.js +165 -37
  180. package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
  181. package/dist/scripts/notify-hook/team-tmux-guard.d.ts +4 -1
  182. package/dist/scripts/notify-hook/team-tmux-guard.d.ts.map +1 -1
  183. package/dist/scripts/notify-hook/team-tmux-guard.js +33 -44
  184. package/dist/scripts/notify-hook/team-tmux-guard.js.map +1 -1
  185. package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
  186. package/dist/scripts/notify-hook/team-worker.js +68 -5
  187. package/dist/scripts/notify-hook/team-worker.js.map +1 -1
  188. package/dist/scripts/notify-hook/utils.d.ts +1 -1
  189. package/dist/scripts/notify-hook/utils.d.ts.map +1 -1
  190. package/dist/scripts/notify-hook/utils.js.map +1 -1
  191. package/dist/scripts/notify-hook.js +55 -32
  192. package/dist/scripts/notify-hook.js.map +1 -1
  193. package/dist/team/__tests__/api-interop.test.js +344 -18
  194. package/dist/team/__tests__/api-interop.test.js.map +1 -1
  195. package/dist/team/__tests__/delivery-e2e-smoke.test.d.ts +2 -0
  196. package/dist/team/__tests__/delivery-e2e-smoke.test.d.ts.map +1 -0
  197. package/dist/team/__tests__/delivery-e2e-smoke.test.js +671 -0
  198. package/dist/team/__tests__/delivery-e2e-smoke.test.js.map +1 -0
  199. package/dist/team/__tests__/mcp-comm.test.js +5 -0
  200. package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
  201. package/dist/team/__tests__/runtime.test.js +422 -12
  202. package/dist/team/__tests__/runtime.test.js.map +1 -1
  203. package/dist/team/__tests__/state.test.js +126 -8
  204. package/dist/team/__tests__/state.test.js.map +1 -1
  205. package/dist/team/__tests__/team-ops-contract.test.js +4 -0
  206. package/dist/team/__tests__/team-ops-contract.test.js.map +1 -1
  207. package/dist/team/__tests__/tmux-session.test.js +160 -0
  208. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  209. package/dist/team/__tests__/worker-bootstrap.test.js +19 -1
  210. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  211. package/dist/team/api-interop.d.ts.map +1 -1
  212. package/dist/team/api-interop.js +95 -23
  213. package/dist/team/api-interop.js.map +1 -1
  214. package/dist/team/contracts.d.ts +11 -1
  215. package/dist/team/contracts.d.ts.map +1 -1
  216. package/dist/team/contracts.js +29 -0
  217. package/dist/team/contracts.js.map +1 -1
  218. package/dist/team/delivery-log.d.ts +14 -0
  219. package/dist/team/delivery-log.d.ts.map +1 -0
  220. package/dist/team/delivery-log.js +35 -0
  221. package/dist/team/delivery-log.js.map +1 -0
  222. package/dist/team/idle-nudge.d.ts +2 -2
  223. package/dist/team/idle-nudge.js +2 -2
  224. package/dist/team/mcp-comm.d.ts +4 -0
  225. package/dist/team/mcp-comm.d.ts.map +1 -1
  226. package/dist/team/mcp-comm.js +84 -1
  227. package/dist/team/mcp-comm.js.map +1 -1
  228. package/dist/team/pane-status.d.ts +149 -0
  229. package/dist/team/pane-status.d.ts.map +1 -0
  230. package/dist/team/pane-status.js +558 -0
  231. package/dist/team/pane-status.js.map +1 -0
  232. package/dist/team/reminder-intents.d.ts +11 -0
  233. package/dist/team/reminder-intents.d.ts.map +1 -0
  234. package/dist/team/reminder-intents.js +40 -0
  235. package/dist/team/reminder-intents.js.map +1 -0
  236. package/dist/team/runtime-cli.d.ts +1 -1
  237. package/dist/team/runtime-cli.js +2 -2
  238. package/dist/team/runtime-cli.js.map +1 -1
  239. package/dist/team/runtime.d.ts +2 -1
  240. package/dist/team/runtime.d.ts.map +1 -1
  241. package/dist/team/runtime.js +407 -190
  242. package/dist/team/runtime.js.map +1 -1
  243. package/dist/team/scaling.d.ts.map +1 -1
  244. package/dist/team/scaling.js +6 -5
  245. package/dist/team/scaling.js.map +1 -1
  246. package/dist/team/state/dispatch.d.ts +4 -1
  247. package/dist/team/state/dispatch.d.ts.map +1 -1
  248. package/dist/team/state/dispatch.js +59 -18
  249. package/dist/team/state/dispatch.js.map +1 -1
  250. package/dist/team/state/mailbox.d.ts.map +1 -1
  251. package/dist/team/state/mailbox.js +39 -2
  252. package/dist/team/state/mailbox.js.map +1 -1
  253. package/dist/team/state/monitor.d.ts +2 -1
  254. package/dist/team/state/monitor.d.ts.map +1 -1
  255. package/dist/team/state/monitor.js +30 -1
  256. package/dist/team/state/monitor.js.map +1 -1
  257. package/dist/team/state/types.d.ts +5 -2
  258. package/dist/team/state/types.d.ts.map +1 -1
  259. package/dist/team/state/types.js.map +1 -1
  260. package/dist/team/state.d.ts +30 -3
  261. package/dist/team/state.d.ts.map +1 -1
  262. package/dist/team/state.js +170 -2
  263. package/dist/team/state.js.map +1 -1
  264. package/dist/team/team-ops.d.ts +5 -1
  265. package/dist/team/team-ops.d.ts.map +1 -1
  266. package/dist/team/team-ops.js +4 -0
  267. package/dist/team/team-ops.js.map +1 -1
  268. package/dist/team/tmux-session.d.ts +2 -0
  269. package/dist/team/tmux-session.d.ts.map +1 -1
  270. package/dist/team/tmux-session.js +19 -3
  271. package/dist/team/tmux-session.js.map +1 -1
  272. package/dist/team/worker-bootstrap.d.ts +4 -0
  273. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  274. package/dist/team/worker-bootstrap.js +33 -6
  275. package/dist/team/worker-bootstrap.js.map +1 -1
  276. package/dist/utils/__tests__/paths.test.js +63 -1
  277. package/dist/utils/__tests__/paths.test.js.map +1 -1
  278. package/dist/utils/__tests__/platform-command.test.js +50 -4
  279. package/dist/utils/__tests__/platform-command.test.js.map +1 -1
  280. package/dist/utils/paths.d.ts +12 -0
  281. package/dist/utils/paths.d.ts.map +1 -1
  282. package/dist/utils/paths.js +44 -2
  283. package/dist/utils/paths.js.map +1 -1
  284. package/dist/utils/platform-command.d.ts.map +1 -1
  285. package/dist/utils/platform-command.js +13 -5
  286. package/dist/utils/platform-command.js.map +1 -1
  287. package/dist/utils/sleep.d.ts.map +1 -1
  288. package/dist/utils/sleep.js +10 -1
  289. package/dist/utils/sleep.js.map +1 -1
  290. package/package.json +1 -1
  291. package/prompts/analyst.md +2 -2
  292. package/prompts/api-reviewer.md +2 -2
  293. package/prompts/architect.md +2 -2
  294. package/prompts/build-fixer.md +2 -2
  295. package/prompts/code-reviewer.md +2 -2
  296. package/prompts/code-simplifier.md +1 -1
  297. package/prompts/critic.md +2 -2
  298. package/prompts/debugger.md +3 -2
  299. package/prompts/dependency-expert.md +2 -2
  300. package/prompts/designer.md +2 -2
  301. package/prompts/executor.md +3 -2
  302. package/prompts/explore.md +2 -2
  303. package/prompts/git-master.md +2 -2
  304. package/prompts/information-architect.md +2 -2
  305. package/prompts/performance-reviewer.md +2 -2
  306. package/prompts/planner.md +3 -2
  307. package/prompts/product-analyst.md +2 -2
  308. package/prompts/product-manager.md +2 -2
  309. package/prompts/qa-tester.md +2 -2
  310. package/prompts/quality-reviewer.md +2 -2
  311. package/prompts/quality-strategist.md +2 -2
  312. package/prompts/researcher.md +2 -2
  313. package/prompts/security-reviewer.md +2 -2
  314. package/prompts/sisyphus-lite.md +2 -2
  315. package/prompts/style-reviewer.md +2 -2
  316. package/prompts/team-executor.md +2 -2
  317. package/prompts/test-engineer.md +2 -2
  318. package/prompts/ux-researcher.md +2 -2
  319. package/prompts/verifier.md +3 -2
  320. package/prompts/vision.md +2 -2
  321. package/prompts/writer.md +2 -2
  322. package/skills/team/SKILL.md +18 -33
  323. package/src/scripts/__tests__/codex-native-hook.test.ts +931 -0
  324. package/src/scripts/codex-native-hook.ts +721 -0
  325. package/src/scripts/codex-native-pre-post.ts +161 -0
  326. package/src/scripts/notify-fallback-watcher.ts +318 -26
  327. package/src/scripts/notify-hook/auto-nudge.ts +5 -10
  328. package/src/scripts/notify-hook/log.ts +18 -4
  329. package/src/scripts/notify-hook/managed-tmux.ts +1 -0
  330. package/src/scripts/notify-hook/orchestration-intent.ts +82 -0
  331. package/src/scripts/notify-hook/process-runner.ts +4 -4
  332. package/src/scripts/notify-hook/ralph-session-resume.ts +9 -0
  333. package/src/scripts/notify-hook/team-dispatch.ts +134 -6
  334. package/src/scripts/notify-hook/team-leader-nudge.ts +183 -37
  335. package/src/scripts/notify-hook/team-tmux-guard.ts +35 -43
  336. package/src/scripts/notify-hook/team-worker.ts +73 -4
  337. package/src/scripts/notify-hook/utils.ts +1 -1
  338. package/src/scripts/notify-hook.ts +64 -32
  339. package/templates/AGENTS.md +21 -11
  340. package/README.de.md +0 -263
  341. package/README.el.md +0 -223
  342. package/README.es.md +0 -263
  343. package/README.fr.md +0 -263
  344. package/README.it.md +0 -263
  345. package/README.ja.md +0 -264
  346. package/README.ko.md +0 -264
  347. package/README.pl.md +0 -216
  348. package/README.pt.md +0 -263
  349. package/README.ru.md +0 -263
  350. package/README.tr.md +0 -263
  351. package/README.vi.md +0 -223
  352. package/README.zh-TW.md +0 -293
  353. package/README.zh.md +0 -264
  354. package/dist/mcp/__tests__/team-server-cleanup.test.d.ts +0 -2
  355. package/dist/mcp/__tests__/team-server-cleanup.test.d.ts.map +0 -1
  356. package/dist/mcp/__tests__/team-server-cleanup.test.js +0 -219
  357. package/dist/mcp/__tests__/team-server-cleanup.test.js.map +0 -1
  358. package/dist/mcp/__tests__/team-server-runtime-deps.test.d.ts +0 -2
  359. package/dist/mcp/__tests__/team-server-runtime-deps.test.d.ts.map +0 -1
  360. package/dist/mcp/__tests__/team-server-runtime-deps.test.js +0 -13
  361. package/dist/mcp/__tests__/team-server-runtime-deps.test.js.map +0 -1
  362. package/dist/mcp/__tests__/team-server-wait.test.d.ts +0 -2
  363. package/dist/mcp/__tests__/team-server-wait.test.d.ts.map +0 -1
  364. package/dist/mcp/__tests__/team-server-wait.test.js +0 -155
  365. package/dist/mcp/__tests__/team-server-wait.test.js.map +0 -1
  366. package/dist/mcp/team-server.d.ts +0 -24
  367. package/dist/mcp/team-server.d.ts.map +0 -1
  368. package/dist/mcp/team-server.js +0 -482
  369. package/dist/mcp/team-server.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-native-hook.test.js","sourceRoot":"","sources":["../../../src/scripts/__tests__/codex-native-hook.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { type SkillActiveState } from "../hooks/keyword-detector.js";
2
+ type CodexHookEventName = "SessionStart" | "PreToolUse" | "PostToolUse" | "UserPromptSubmit" | "Stop";
3
+ type CodexHookPayload = Record<string, unknown>;
4
+ interface NativeHookDispatchOptions {
5
+ cwd?: string;
6
+ sessionOwnerPid?: number;
7
+ }
8
+ export interface NativeHookDispatchResult {
9
+ hookEventName: CodexHookEventName | null;
10
+ omxEventName: string | null;
11
+ skillState: SkillActiveState | null;
12
+ outputJson: Record<string, unknown> | null;
13
+ }
14
+ export declare function mapCodexHookEventToOmxEvent(hookEventName: CodexHookEventName | null): string | null;
15
+ export declare function resolveSessionOwnerPidFromAncestry(startPid: number, options?: {
16
+ readParentPid?: (pid: number) => number | null;
17
+ readProcessCommand?: (pid: number) => string;
18
+ }): number | null;
19
+ export declare function dispatchCodexNativeHook(payload: CodexHookPayload, options?: NativeHookDispatchOptions): Promise<NativeHookDispatchResult>;
20
+ export declare function runCodexNativeHookCli(): Promise<void>;
21
+ export {};
22
+ //# sourceMappingURL=codex-native-hook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codex-native-hook.d.ts","sourceRoot":"","sources":["../../src/scripts/codex-native-hook.ts"],"names":[],"mappings":"AAUA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AAiBtC,KAAK,kBAAkB,GACnB,cAAc,GACd,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,MAAM,CAAC;AAEX,KAAK,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEhD,UAAU,yBAAyB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC5C;AA0CD,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,kBAAkB,GAAG,IAAI,GACvC,MAAM,GAAG,IAAI,CAef;AA4JD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC,GACL,MAAM,GAAG,IAAI,CAuBf;AAkUD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,gBAAgB,EACzB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAyEnC;AAWD,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3D"}
@@ -0,0 +1,594 @@
1
+ import { execFileSync } from "child_process";
2
+ import { existsSync, readFileSync } from "fs";
3
+ import { mkdir, readFile, readdir, writeFile } from "fs/promises";
4
+ import { join } from "path";
5
+ import { readModeState } from "../modes/base.js";
6
+ import { getReadScopedStateDirs } from "../mcp/state-paths.js";
7
+ import { readSubagentSessionSummary } from "../subagents/tracker.js";
8
+ import { resolveCanonicalTeamStateRoot } from "../team/state-root.js";
9
+ import { readTeamManifestV2, readTeamPhase } from "../team/state.js";
10
+ import { omxNotepadPath, omxProjectMemoryPath } from "../utils/paths.js";
11
+ import { detectPrimaryKeyword, recordSkillActivation, } from "../hooks/keyword-detector.js";
12
+ import { detectStallPattern, isDeepInterviewStateActive, loadAutoNudgeConfig, } from "./notify-hook/auto-nudge.js";
13
+ import { buildNativePostToolUseOutput, buildNativePreToolUseOutput, } from "./codex-native-pre-post.js";
14
+ import { buildNativeHookEvent, } from "../hooks/extensibility/events.js";
15
+ import { dispatchHookEvent } from "../hooks/extensibility/dispatcher.js";
16
+ import { writeSessionStart } from "../hooks/session.js";
17
+ const TERMINAL_RALPH_PHASES = new Set(["complete", "failed", "cancelled"]);
18
+ const TERMINAL_MODE_PHASES = new Set(["complete", "failed", "cancelled"]);
19
+ const SKILL_STOP_BLOCKERS = new Set(["ralplan", "deep-interview"]);
20
+ function safeString(value) {
21
+ return typeof value === "string" ? value : "";
22
+ }
23
+ function safeObject(value) {
24
+ return value && typeof value === "object" ? value : {};
25
+ }
26
+ function safePositiveInteger(value) {
27
+ if (typeof value === "number" && Number.isInteger(value) && value > 0)
28
+ return value;
29
+ if (typeof value === "string" && value.trim() !== "") {
30
+ const parsed = Number.parseInt(value.trim(), 10);
31
+ if (Number.isInteger(parsed) && parsed > 0)
32
+ return parsed;
33
+ }
34
+ return null;
35
+ }
36
+ function readHookEventName(payload) {
37
+ const raw = safeString(payload.hook_event_name
38
+ ?? payload.hookEventName
39
+ ?? payload.event
40
+ ?? payload.name).trim();
41
+ if (raw === "SessionStart"
42
+ || raw === "PreToolUse"
43
+ || raw === "PostToolUse"
44
+ || raw === "UserPromptSubmit"
45
+ || raw === "Stop") {
46
+ return raw;
47
+ }
48
+ return null;
49
+ }
50
+ export function mapCodexHookEventToOmxEvent(hookEventName) {
51
+ switch (hookEventName) {
52
+ case "SessionStart":
53
+ return "session-start";
54
+ case "PreToolUse":
55
+ return "pre-tool-use";
56
+ case "PostToolUse":
57
+ return "post-tool-use";
58
+ case "UserPromptSubmit":
59
+ return "keyword-detector";
60
+ case "Stop":
61
+ return "stop";
62
+ default:
63
+ return null;
64
+ }
65
+ }
66
+ function readPromptText(payload) {
67
+ const candidates = [
68
+ payload.prompt,
69
+ payload.input,
70
+ payload.user_prompt,
71
+ payload.userPrompt,
72
+ payload.text,
73
+ ];
74
+ for (const candidate of candidates) {
75
+ const value = safeString(candidate).trim();
76
+ if (value)
77
+ return value;
78
+ }
79
+ return "";
80
+ }
81
+ function buildBaseContext(cwd, payload, hookEventName) {
82
+ return {
83
+ cwd,
84
+ project_path: cwd,
85
+ transcript_path: safeString(payload.transcript_path ?? payload.transcriptPath) || null,
86
+ source: safeString(payload.source),
87
+ payload,
88
+ ...(hookEventName === "UserPromptSubmit"
89
+ ? { prompt: readPromptText(payload) }
90
+ : {}),
91
+ };
92
+ }
93
+ async function readJsonIfExists(path) {
94
+ if (!existsSync(path))
95
+ return null;
96
+ try {
97
+ return JSON.parse(await readFile(path, "utf-8"));
98
+ }
99
+ catch {
100
+ return null;
101
+ }
102
+ }
103
+ async function readScopedJsonState(fileName, cwd, sessionId) {
104
+ const dirs = await getReadScopedStateDirs(cwd, sessionId);
105
+ for (const dir of dirs) {
106
+ const candidate = await readJsonIfExists(join(dir, fileName));
107
+ if (candidate)
108
+ return candidate;
109
+ }
110
+ return null;
111
+ }
112
+ function isNonTerminalPhase(value) {
113
+ const phase = safeString(value).trim().toLowerCase();
114
+ return phase !== "" && !TERMINAL_MODE_PHASES.has(phase);
115
+ }
116
+ function formatPhase(value, fallback = "active") {
117
+ const phase = safeString(value).trim();
118
+ return phase || fallback;
119
+ }
120
+ async function readActiveRalphState(stateDir) {
121
+ const direct = await readJsonIfExists(join(stateDir, "ralph-state.json"));
122
+ if (direct?.active === true && !TERMINAL_RALPH_PHASES.has(safeString(direct.current_phase).trim().toLowerCase())) {
123
+ return direct;
124
+ }
125
+ const sessionInfo = await readJsonIfExists(join(stateDir, "session.json"));
126
+ const currentOmxSessionId = safeString(sessionInfo?.session_id).trim();
127
+ if (!currentOmxSessionId)
128
+ return null;
129
+ const sessionScoped = await readJsonIfExists(join(stateDir, "sessions", currentOmxSessionId, "ralph-state.json"));
130
+ if (sessionScoped?.active === true
131
+ && !TERMINAL_RALPH_PHASES.has(safeString(sessionScoped.current_phase).trim().toLowerCase())) {
132
+ return sessionScoped;
133
+ }
134
+ const sessionsRoot = join(stateDir, "sessions");
135
+ if (!existsSync(sessionsRoot))
136
+ return null;
137
+ const entries = await readdir(sessionsRoot, { withFileTypes: true }).catch(() => []);
138
+ for (const entry of entries) {
139
+ if (!entry.isDirectory())
140
+ continue;
141
+ const candidate = await readJsonIfExists(join(sessionsRoot, entry.name, "ralph-state.json"));
142
+ if (candidate?.active === true
143
+ && !TERMINAL_RALPH_PHASES.has(safeString(candidate.current_phase).trim().toLowerCase())) {
144
+ return candidate;
145
+ }
146
+ }
147
+ return null;
148
+ }
149
+ function readParentPid(pid) {
150
+ try {
151
+ if (process.platform === "linux") {
152
+ const stat = readFileSync(`/proc/${pid}/stat`, "utf-8");
153
+ const commandEnd = stat.lastIndexOf(")");
154
+ if (commandEnd === -1)
155
+ return null;
156
+ const remainder = stat.slice(commandEnd + 1).trim();
157
+ const fields = remainder.split(/\s+/);
158
+ const ppid = Number(fields[1]);
159
+ return Number.isFinite(ppid) && ppid > 0 ? ppid : null;
160
+ }
161
+ const raw = execFileSync("ps", ["-o", "ppid=", "-p", String(pid)], {
162
+ encoding: "utf-8",
163
+ stdio: ["ignore", "pipe", "ignore"],
164
+ }).trim();
165
+ const ppid = Number.parseInt(raw, 10);
166
+ return Number.isFinite(ppid) && ppid > 0 ? ppid : null;
167
+ }
168
+ catch {
169
+ return null;
170
+ }
171
+ }
172
+ function readProcessCommand(pid) {
173
+ try {
174
+ if (process.platform === "linux") {
175
+ return readFileSync(`/proc/${pid}/cmdline`, "utf-8")
176
+ .replace(/\u0000+/g, " ")
177
+ .trim();
178
+ }
179
+ return execFileSync("ps", ["-o", "command=", "-p", String(pid)], {
180
+ encoding: "utf-8",
181
+ stdio: ["ignore", "pipe", "ignore"],
182
+ }).trim();
183
+ }
184
+ catch {
185
+ return "";
186
+ }
187
+ }
188
+ function looksLikeShellCommand(command) {
189
+ return /(^|[\/\s])(bash|zsh|sh|dash|fish|ksh)(\s|$)/i.test(command);
190
+ }
191
+ function looksLikeCodexCommand(command) {
192
+ if (/codex-native-hook(?:\.js)?/i.test(command))
193
+ return false;
194
+ return /\bcodex(?:\.js)?\b/i.test(command);
195
+ }
196
+ export function resolveSessionOwnerPidFromAncestry(startPid, options = {}) {
197
+ const readParent = options.readParentPid ?? readParentPid;
198
+ const readCommand = options.readProcessCommand ?? readProcessCommand;
199
+ const lineage = [];
200
+ let currentPid = startPid;
201
+ for (let i = 0; i < 6 && Number.isInteger(currentPid) && currentPid > 1; i += 1) {
202
+ const command = readCommand(currentPid);
203
+ lineage.push({ pid: currentPid, command });
204
+ const nextPid = readParent(currentPid);
205
+ if (!nextPid || nextPid === currentPid)
206
+ break;
207
+ currentPid = nextPid;
208
+ }
209
+ const codexAncestor = lineage.find((entry) => looksLikeCodexCommand(entry.command));
210
+ if (codexAncestor)
211
+ return codexAncestor.pid;
212
+ if (lineage.length >= 2 && looksLikeShellCommand(lineage[0]?.command || "")) {
213
+ return lineage[1].pid;
214
+ }
215
+ if (lineage.length >= 1)
216
+ return lineage[0].pid;
217
+ return null;
218
+ }
219
+ function resolveSessionOwnerPid(payload) {
220
+ const explicitPid = [
221
+ payload.session_pid,
222
+ payload.sessionPid,
223
+ payload.codex_pid,
224
+ payload.codexPid,
225
+ payload.parent_pid,
226
+ payload.parentPid,
227
+ ]
228
+ .map(safePositiveInteger)
229
+ .find((value) => value !== null);
230
+ if (explicitPid)
231
+ return explicitPid;
232
+ const resolved = resolveSessionOwnerPidFromAncestry(process.ppid);
233
+ if (resolved)
234
+ return resolved;
235
+ return process.pid;
236
+ }
237
+ async function ensureOmxGitignoreEntry(cwd) {
238
+ let repoRoot = "";
239
+ try {
240
+ repoRoot = execFileSync("git", ["rev-parse", "--show-toplevel"], {
241
+ cwd,
242
+ encoding: "utf-8",
243
+ stdio: ["ignore", "pipe", "ignore"],
244
+ windowsHide: true,
245
+ }).trim();
246
+ }
247
+ catch {
248
+ return { changed: false };
249
+ }
250
+ if (!repoRoot)
251
+ return { changed: false };
252
+ const gitignorePath = join(repoRoot, ".gitignore");
253
+ const existing = existsSync(gitignorePath)
254
+ ? await readFile(gitignorePath, "utf-8")
255
+ : "";
256
+ const lines = existing.split(/\r?\n/).map((line) => line.trim());
257
+ if (lines.includes(".omx/")) {
258
+ return { changed: false, gitignorePath };
259
+ }
260
+ const next = `${existing}${existing.endsWith("\n") || existing.length === 0 ? "" : "\n"}.omx/\n`;
261
+ await writeFile(gitignorePath, next);
262
+ return { changed: true, gitignorePath };
263
+ }
264
+ async function buildSessionStartContext(cwd, sessionId) {
265
+ const sections = [
266
+ "OMX native SessionStart detected. Load workspace conventions from AGENTS.md, restore relevant .omx runtime/project memory context, and continue from existing mode state before making changes.",
267
+ ];
268
+ const gitignoreResult = await ensureOmxGitignoreEntry(cwd);
269
+ if (gitignoreResult.changed) {
270
+ sections.push(`Added .omx/ to ${gitignoreResult.gitignorePath} to keep local OMX state out of source control.`);
271
+ }
272
+ const modeSummaries = [];
273
+ for (const mode of ["ralph", "autopilot", "ultrawork", "ultraqa", "ralplan", "deep-interview", "team"]) {
274
+ const state = await readModeState(mode, cwd);
275
+ if (state?.active !== true || !isNonTerminalPhase(state.current_phase))
276
+ continue;
277
+ if (mode === "team") {
278
+ const teamName = safeString(state.team_name).trim();
279
+ if (teamName) {
280
+ const phase = await readTeamPhase(teamName, cwd);
281
+ const canonicalPhase = phase?.current_phase ?? state.current_phase;
282
+ if (isNonTerminalPhase(canonicalPhase)) {
283
+ modeSummaries.push(`- team (${teamName}) phase: ${formatPhase(canonicalPhase)}`);
284
+ }
285
+ continue;
286
+ }
287
+ }
288
+ modeSummaries.push(`- ${mode} phase: ${formatPhase(state.current_phase)}`);
289
+ }
290
+ if (modeSummaries.length > 0) {
291
+ sections.push(["[Active OMX modes]", ...modeSummaries].join("\n"));
292
+ }
293
+ const projectMemory = await readJsonIfExists(omxProjectMemoryPath(cwd));
294
+ if (projectMemory) {
295
+ const directives = Array.isArray(projectMemory.directives) ? projectMemory.directives : [];
296
+ const notes = Array.isArray(projectMemory.notes) ? projectMemory.notes : [];
297
+ const techStack = safeString(projectMemory.techStack).trim();
298
+ const conventions = safeString(projectMemory.conventions).trim();
299
+ const build = safeString(projectMemory.build).trim();
300
+ const summary = [];
301
+ if (techStack)
302
+ summary.push(`- stack: ${techStack}`);
303
+ if (conventions)
304
+ summary.push(`- conventions: ${conventions}`);
305
+ if (build)
306
+ summary.push(`- build: ${build}`);
307
+ if (directives.length > 0) {
308
+ const firstDirective = directives[0];
309
+ const directive = safeString(firstDirective.directive).trim();
310
+ if (directive)
311
+ summary.push(`- directive: ${directive}`);
312
+ }
313
+ if (notes.length > 0) {
314
+ const firstNote = notes[0];
315
+ const note = safeString(firstNote.content).trim();
316
+ if (note)
317
+ summary.push(`- note: ${note}`);
318
+ }
319
+ if (summary.length > 0) {
320
+ sections.push(["[Project memory]", ...summary].join("\n"));
321
+ }
322
+ }
323
+ if (existsSync(omxNotepadPath(cwd))) {
324
+ try {
325
+ const notepad = await readFile(omxNotepadPath(cwd), "utf-8");
326
+ const compact = notepad.split(/\r?\n/).map((line) => line.trim()).filter(Boolean).slice(0, 3).join(" ");
327
+ if (compact) {
328
+ sections.push(`[Notepad]\n- ${compact.slice(0, 220)}`);
329
+ }
330
+ }
331
+ catch {
332
+ // best effort only
333
+ }
334
+ }
335
+ const subagentSummary = await readSubagentSessionSummary(cwd, sessionId).catch(() => null);
336
+ if (subagentSummary && subagentSummary.activeSubagentThreadIds.length > 0) {
337
+ sections.push(`[Subagents]\n- active subagent threads: ${subagentSummary.activeSubagentThreadIds.length}`);
338
+ }
339
+ return sections.join("\n\n");
340
+ }
341
+ function buildAdditionalContextMessage(prompt) {
342
+ if (!prompt)
343
+ return null;
344
+ const match = detectPrimaryKeyword(prompt);
345
+ if (!match)
346
+ return null;
347
+ return `OMX native UserPromptSubmit detected workflow keyword "${match.keyword}" -> ${match.skill}. Follow AGENTS.md routing and preserve ralplan/ralph execution gates.`;
348
+ }
349
+ function isStopExempt(payload) {
350
+ const candidates = [
351
+ payload.stop_reason,
352
+ payload.stopReason,
353
+ payload.reason,
354
+ payload.exit_reason,
355
+ payload.exitReason,
356
+ ]
357
+ .map((value) => safeString(value).toLowerCase())
358
+ .filter(Boolean);
359
+ return candidates.some((value) => value.includes("cancel")
360
+ || value.includes("abort")
361
+ || value.includes("context")
362
+ || value.includes("compact")
363
+ || value.includes("limit"));
364
+ }
365
+ async function buildModeBasedStopOutput(mode, cwd) {
366
+ const state = await readModeState(mode, cwd);
367
+ if (state?.active !== true || !isNonTerminalPhase(state.current_phase))
368
+ return null;
369
+ const phase = formatPhase(state.current_phase);
370
+ return {
371
+ decision: "block",
372
+ reason: `OMX ${mode} is still active (phase: ${phase}); continue the task and gather fresh verification evidence before stopping.`,
373
+ stopReason: `${mode}_${phase}`,
374
+ systemMessage: `OMX ${mode} is still active (phase: ${phase}).`,
375
+ };
376
+ }
377
+ async function buildTeamStopOutput(cwd) {
378
+ const teamState = await readModeState("team", cwd);
379
+ if (teamState?.active !== true)
380
+ return null;
381
+ const teamName = safeString(teamState.team_name).trim();
382
+ const coarsePhase = teamState.current_phase;
383
+ const canonicalPhase = teamName ? (await readTeamPhase(teamName, cwd))?.current_phase ?? coarsePhase : coarsePhase;
384
+ if (!isNonTerminalPhase(canonicalPhase))
385
+ return null;
386
+ const phase = formatPhase(canonicalPhase);
387
+ return {
388
+ decision: "block",
389
+ reason: `OMX team pipeline is still active${teamName ? ` (${teamName})` : ""} at phase ${phase}; continue coordinating until the team reaches a terminal phase.`,
390
+ stopReason: `team_${phase}`,
391
+ systemMessage: `OMX team pipeline is still active at phase ${phase}.`,
392
+ };
393
+ }
394
+ async function findCanonicalActiveTeamForSession(cwd, sessionId) {
395
+ if (!sessionId.trim())
396
+ return null;
397
+ const teamsRoot = join(resolveCanonicalTeamStateRoot(cwd), "team");
398
+ if (!existsSync(teamsRoot))
399
+ return null;
400
+ const entries = await readdir(teamsRoot, { withFileTypes: true }).catch(() => []);
401
+ for (const entry of entries) {
402
+ if (!entry.isDirectory())
403
+ continue;
404
+ const teamName = entry.name.trim();
405
+ if (!teamName)
406
+ continue;
407
+ const [manifest, phaseState] = await Promise.all([
408
+ readTeamManifestV2(teamName, cwd),
409
+ readTeamPhase(teamName, cwd),
410
+ ]);
411
+ if (!manifest || !phaseState)
412
+ continue;
413
+ const ownerSessionId = (manifest.leader?.session_id ?? "").trim();
414
+ if (ownerSessionId && ownerSessionId !== sessionId.trim())
415
+ continue;
416
+ if (!isNonTerminalPhase(phaseState.current_phase))
417
+ continue;
418
+ return {
419
+ teamName,
420
+ phase: formatPhase(phaseState.current_phase),
421
+ };
422
+ }
423
+ return null;
424
+ }
425
+ async function buildSkillStopOutput(cwd, sessionId) {
426
+ const state = await readScopedJsonState("skill-active-state.json", cwd, sessionId);
427
+ if (!state || state.active !== true)
428
+ return null;
429
+ const skill = safeString(state.skill).trim();
430
+ const phase = formatPhase(state.phase, "planning");
431
+ if (!SKILL_STOP_BLOCKERS.has(skill) || phase === "completing")
432
+ return null;
433
+ const subagentSummary = await readSubagentSessionSummary(cwd, sessionId).catch(() => null);
434
+ if (subagentSummary && subagentSummary.activeSubagentThreadIds.length > 0) {
435
+ return null;
436
+ }
437
+ return {
438
+ decision: "block",
439
+ reason: `OMX skill ${skill} is still active (phase: ${phase}); continue until the current ${skill} workflow reaches a terminal state.`,
440
+ stopReason: `skill_${skill}_${phase}`,
441
+ systemMessage: `OMX skill ${skill} is still active (phase: ${phase}).`,
442
+ };
443
+ }
444
+ async function buildStopHookOutput(payload, cwd, stateDir) {
445
+ if (isStopExempt(payload)) {
446
+ return null;
447
+ }
448
+ const sessionId = safeString(payload.session_id ?? payload.sessionId).trim();
449
+ const ralphState = await readActiveRalphState(stateDir);
450
+ const stopHookActive = payload.stop_hook_active === true || payload.stopHookActive === true;
451
+ if (!ralphState) {
452
+ const autopilotOutput = await buildModeBasedStopOutput("autopilot", cwd);
453
+ if (!stopHookActive && autopilotOutput)
454
+ return autopilotOutput;
455
+ const ultraworkOutput = await buildModeBasedStopOutput("ultrawork", cwd);
456
+ if (!stopHookActive && ultraworkOutput)
457
+ return ultraworkOutput;
458
+ const ultraqaOutput = await buildModeBasedStopOutput("ultraqa", cwd);
459
+ if (!stopHookActive && ultraqaOutput)
460
+ return ultraqaOutput;
461
+ const teamOutput = await buildTeamStopOutput(cwd);
462
+ if (!stopHookActive && teamOutput)
463
+ return teamOutput;
464
+ if (sessionId) {
465
+ const canonicalTeam = await findCanonicalActiveTeamForSession(cwd, sessionId);
466
+ if (!stopHookActive && canonicalTeam) {
467
+ return {
468
+ decision: "block",
469
+ reason: `OMX team pipeline is still active (${canonicalTeam.teamName}) at phase ${canonicalTeam.phase}; continue coordinating until the team reaches a terminal phase.`,
470
+ stopReason: `team_${canonicalTeam.phase}`,
471
+ systemMessage: `OMX team pipeline is still active at phase ${canonicalTeam.phase}.`,
472
+ };
473
+ }
474
+ const skillOutput = await buildSkillStopOutput(cwd, sessionId);
475
+ if (!stopHookActive && skillOutput)
476
+ return skillOutput;
477
+ }
478
+ const deepInterviewActive = await isDeepInterviewStateActive(stateDir);
479
+ const lastAssistantMessage = safeString(payload.last_assistant_message ?? payload.lastAssistantMessage);
480
+ const autoNudgeConfig = await loadAutoNudgeConfig();
481
+ if (!stopHookActive
482
+ && !deepInterviewActive
483
+ && autoNudgeConfig.enabled
484
+ && detectStallPattern(lastAssistantMessage, autoNudgeConfig.patterns)) {
485
+ return {
486
+ decision: "block",
487
+ reason: autoNudgeConfig.response,
488
+ stopReason: "auto_nudge",
489
+ systemMessage: "OMX native Stop detected a stall/permission-style handoff and continued the turn automatically.",
490
+ };
491
+ }
492
+ return null;
493
+ }
494
+ if (stopHookActive) {
495
+ return null;
496
+ }
497
+ const currentPhase = safeString(ralphState?.current_phase).trim() || "executing";
498
+ const stopReason = `ralph_${currentPhase}`;
499
+ const systemMessage = `OMX Ralph is still active (phase: ${currentPhase}); continue the task and gather fresh verification evidence before stopping.`;
500
+ return {
501
+ decision: "block",
502
+ reason: systemMessage,
503
+ stopReason,
504
+ systemMessage,
505
+ };
506
+ }
507
+ export async function dispatchCodexNativeHook(payload, options = {}) {
508
+ const hookEventName = readHookEventName(payload);
509
+ const cwd = options.cwd ?? (safeString(payload.cwd).trim() || process.cwd());
510
+ const stateDir = join(cwd, ".omx", "state");
511
+ await mkdir(stateDir, { recursive: true });
512
+ const omxEventName = mapCodexHookEventToOmxEvent(hookEventName);
513
+ let skillState = null;
514
+ const sessionId = safeString(payload.session_id ?? payload.sessionId).trim();
515
+ const threadId = safeString(payload.thread_id ?? payload.threadId).trim();
516
+ const turnId = safeString(payload.turn_id ?? payload.turnId).trim();
517
+ if (hookEventName === "SessionStart" && sessionId) {
518
+ await writeSessionStart(cwd, sessionId, {
519
+ pid: options.sessionOwnerPid ?? resolveSessionOwnerPid(payload),
520
+ });
521
+ }
522
+ if (hookEventName === "UserPromptSubmit") {
523
+ const prompt = readPromptText(payload);
524
+ if (prompt) {
525
+ skillState = await recordSkillActivation({
526
+ stateDir,
527
+ text: prompt,
528
+ sessionId,
529
+ threadId,
530
+ turnId,
531
+ });
532
+ }
533
+ }
534
+ if (omxEventName) {
535
+ const event = buildNativeHookEvent(omxEventName, buildBaseContext(cwd, payload, hookEventName), {
536
+ session_id: sessionId || undefined,
537
+ thread_id: threadId || undefined,
538
+ turn_id: turnId || undefined,
539
+ mode: safeString(payload.mode).trim() || undefined,
540
+ });
541
+ await dispatchHookEvent(event, { cwd });
542
+ }
543
+ let outputJson = null;
544
+ if (hookEventName === "SessionStart" || hookEventName === "UserPromptSubmit") {
545
+ const additionalContext = hookEventName === "SessionStart"
546
+ ? await buildSessionStartContext(cwd, sessionId)
547
+ : buildAdditionalContextMessage(readPromptText(payload));
548
+ if (additionalContext) {
549
+ outputJson = {
550
+ hookSpecificOutput: {
551
+ hookEventName,
552
+ additionalContext,
553
+ },
554
+ };
555
+ }
556
+ }
557
+ else if (hookEventName === "PreToolUse") {
558
+ outputJson = buildNativePreToolUseOutput(payload);
559
+ }
560
+ else if (hookEventName === "PostToolUse") {
561
+ outputJson = buildNativePostToolUseOutput(payload);
562
+ }
563
+ else if (hookEventName === "Stop") {
564
+ outputJson = await buildStopHookOutput(payload, cwd, stateDir);
565
+ }
566
+ return {
567
+ hookEventName,
568
+ omxEventName,
569
+ skillState,
570
+ outputJson,
571
+ };
572
+ }
573
+ async function readStdinJson() {
574
+ const chunks = [];
575
+ for await (const chunk of process.stdin) {
576
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
577
+ }
578
+ const raw = Buffer.concat(chunks).toString("utf-8").trim();
579
+ return raw ? safeObject(JSON.parse(raw)) : {};
580
+ }
581
+ export async function runCodexNativeHookCli() {
582
+ const payload = await readStdinJson();
583
+ const result = await dispatchCodexNativeHook(payload);
584
+ if (result.outputJson) {
585
+ process.stdout.write(`${JSON.stringify(result.outputJson)}\n`);
586
+ }
587
+ }
588
+ if (import.meta.url === `file://${process.argv[1]}`) {
589
+ runCodexNativeHookCli().catch((error) => {
590
+ process.stderr.write(`[omx] codex-native-hook failed: ${error instanceof Error ? error.message : String(error)}\n`);
591
+ process.exitCode = 1;
592
+ });
593
+ }
594
+ //# sourceMappingURL=codex-native-hook.js.map