oh-my-codex 0.20.2 → 0.20.3

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 (367) hide show
  1. package/Cargo.lock +7 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +26 -0
  4. package/crates/omx-runtime/Cargo.toml +1 -0
  5. package/crates/omx-runtime/src/main.rs +25 -2
  6. package/crates/omx-runtime/tests/execution.rs +219 -0
  7. package/crates/omx-runtime-core/src/dispatch.rs +96 -10
  8. package/crates/omx-runtime-core/src/engine.rs +839 -29
  9. package/crates/omx-runtime-core/src/lib.rs +8 -0
  10. package/dist/agents/__tests__/definitions.test.js +81 -0
  11. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  12. package/dist/agents/__tests__/native-config.test.js +25 -0
  13. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  14. package/dist/agents/native-config.d.ts +2 -1
  15. package/dist/agents/native-config.d.ts.map +1 -1
  16. package/dist/agents/native-config.js.map +1 -1
  17. package/dist/auth/hotswap.d.ts +6 -0
  18. package/dist/auth/hotswap.d.ts.map +1 -1
  19. package/dist/auth/hotswap.js +85 -15
  20. package/dist/auth/hotswap.js.map +1 -1
  21. package/dist/autopilot/__tests__/ralplan-gate.test.js +1 -1
  22. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -1
  23. package/dist/cli/__tests__/auth.test.js +60 -6
  24. package/dist/cli/__tests__/auth.test.js.map +1 -1
  25. package/dist/cli/__tests__/codex-plugin-layout.test.js +80 -0
  26. package/dist/cli/__tests__/codex-plugin-layout.test.js.map +1 -1
  27. package/dist/cli/__tests__/doctor-warning-copy.test.js +103 -1
  28. package/dist/cli/__tests__/doctor-warning-copy.test.js.map +1 -1
  29. package/dist/cli/__tests__/exec.test.js +136 -0
  30. package/dist/cli/__tests__/exec.test.js.map +1 -1
  31. package/dist/cli/__tests__/index.test.js +258 -4
  32. package/dist/cli/__tests__/index.test.js.map +1 -1
  33. package/dist/cli/__tests__/launch-fallback.test.js +287 -1
  34. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  35. package/dist/cli/__tests__/mcp-parity.test.js +4 -1
  36. package/dist/cli/__tests__/mcp-parity.test.js.map +1 -1
  37. package/dist/cli/__tests__/native-hook-claim-journal.test.js +84 -6
  38. package/dist/cli/__tests__/native-hook-claim-journal.test.js.map +1 -1
  39. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js +3 -3
  40. package/dist/cli/__tests__/ralph-goal-mode-contract.test.js.map +1 -1
  41. package/dist/cli/__tests__/ralph.test.js +3 -3
  42. package/dist/cli/__tests__/ralph.test.js.map +1 -1
  43. package/dist/cli/__tests__/ralplan-bootstrap-3181.test.js +56 -171
  44. package/dist/cli/__tests__/ralplan-bootstrap-3181.test.js.map +1 -1
  45. package/dist/cli/__tests__/ralplan.test.js +37 -111
  46. package/dist/cli/__tests__/ralplan.test.js.map +1 -1
  47. package/dist/cli/__tests__/resume.test.js +11 -10
  48. package/dist/cli/__tests__/resume.test.js.map +1 -1
  49. package/dist/cli/__tests__/session-search-help.test.js +25 -1
  50. package/dist/cli/__tests__/session-search-help.test.js.map +1 -1
  51. package/dist/cli/__tests__/setup-install-mode.test.js +42 -4
  52. package/dist/cli/__tests__/setup-install-mode.test.js.map +1 -1
  53. package/dist/cli/__tests__/team.test.js +105 -7
  54. package/dist/cli/__tests__/team.test.js.map +1 -1
  55. package/dist/cli/__tests__/uninstall.test.js +46 -0
  56. package/dist/cli/__tests__/uninstall.test.js.map +1 -1
  57. package/dist/cli/__tests__/windows-popup-loop-contract.test.js +2 -1
  58. package/dist/cli/__tests__/windows-popup-loop-contract.test.js.map +1 -1
  59. package/dist/cli/doctor.d.ts +3 -0
  60. package/dist/cli/doctor.d.ts.map +1 -1
  61. package/dist/cli/doctor.js +15 -2
  62. package/dist/cli/doctor.js.map +1 -1
  63. package/dist/cli/index.d.ts +4 -1
  64. package/dist/cli/index.d.ts.map +1 -1
  65. package/dist/cli/index.js +138 -38
  66. package/dist/cli/index.js.map +1 -1
  67. package/dist/cli/mcp-parity.js +2 -2
  68. package/dist/cli/mcp-parity.js.map +1 -1
  69. package/dist/cli/native-hook-claim-journal.d.ts +16 -5
  70. package/dist/cli/native-hook-claim-journal.d.ts.map +1 -1
  71. package/dist/cli/native-hook-claim-journal.js +42 -29
  72. package/dist/cli/native-hook-claim-journal.js.map +1 -1
  73. package/dist/cli/ralph.js +2 -2
  74. package/dist/cli/ralph.js.map +1 -1
  75. package/dist/cli/ralplan.d.ts +4 -8
  76. package/dist/cli/ralplan.d.ts.map +1 -1
  77. package/dist/cli/ralplan.js +19 -112
  78. package/dist/cli/ralplan.js.map +1 -1
  79. package/dist/cli/session-search.d.ts +5 -0
  80. package/dist/cli/session-search.d.ts.map +1 -1
  81. package/dist/cli/session-search.js +87 -0
  82. package/dist/cli/session-search.js.map +1 -1
  83. package/dist/cli/setup.d.ts +5 -0
  84. package/dist/cli/setup.d.ts.map +1 -1
  85. package/dist/cli/setup.js +80 -31
  86. package/dist/cli/setup.js.map +1 -1
  87. package/dist/cli/uninstall.d.ts +9 -0
  88. package/dist/cli/uninstall.d.ts.map +1 -1
  89. package/dist/cli/uninstall.js +61 -19
  90. package/dist/cli/uninstall.js.map +1 -1
  91. package/dist/compat/__tests__/rust-runtime-compat.test.js +1 -1
  92. package/dist/config/__tests__/generator-idempotent.test.js +330 -1
  93. package/dist/config/__tests__/generator-idempotent.test.js.map +1 -1
  94. package/dist/config/__tests__/generator-notify.test.js +2 -2
  95. package/dist/config/__tests__/generator-notify.test.js.map +1 -1
  96. package/dist/config/__tests__/models.test.js +67 -3
  97. package/dist/config/__tests__/models.test.js.map +1 -1
  98. package/dist/config/generator.d.ts +4 -20
  99. package/dist/config/generator.d.ts.map +1 -1
  100. package/dist/config/generator.js +499 -119
  101. package/dist/config/generator.js.map +1 -1
  102. package/dist/config/models.d.ts +12 -2
  103. package/dist/config/models.d.ts.map +1 -1
  104. package/dist/config/models.js +15 -1
  105. package/dist/config/models.js.map +1 -1
  106. package/dist/hooks/__tests__/agents-overlay.test.js +2 -2
  107. package/dist/hooks/__tests__/agents-overlay.test.js.map +1 -1
  108. package/dist/hooks/__tests__/keyword-detector.test.js +4 -4
  109. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  110. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +238 -543
  111. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  112. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js +38 -4
  113. package/dist/hooks/__tests__/notify-hook-all-workers-idle.test.js.map +1 -1
  114. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js +96 -9
  115. package/dist/hooks/__tests__/notify-hook-auto-nudge.test.js.map +1 -1
  116. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js +531 -12
  117. package/dist/hooks/__tests__/notify-hook-team-dispatch.test.js.map +1 -1
  118. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js +155 -23
  119. package/dist/hooks/__tests__/notify-hook-team-leader-nudge.test.js.map +1 -1
  120. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js +482 -32
  121. package/dist/hooks/__tests__/notify-hook-team-tmux-guard.test.js.map +1 -1
  122. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js +68 -1
  123. package/dist/hooks/__tests__/notify-hook-tmux-heal.test.js.map +1 -1
  124. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js +7 -1
  125. package/dist/hooks/__tests__/notify-hook-tmux-scrollback.test.js.map +1 -1
  126. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js +43 -4
  127. package/dist/hooks/__tests__/notify-hook-worker-idle.test.js.map +1 -1
  128. package/dist/hooks/__tests__/session.test.js +348 -2
  129. package/dist/hooks/__tests__/session.test.js.map +1 -1
  130. package/dist/hooks/agents-overlay.js +1 -1
  131. package/dist/hooks/session.d.ts +26 -2
  132. package/dist/hooks/session.d.ts.map +1 -1
  133. package/dist/hooks/session.js +169 -13
  134. package/dist/hooks/session.js.map +1 -1
  135. package/dist/leader/__tests__/contract.test.js +57 -7
  136. package/dist/leader/__tests__/contract.test.js.map +1 -1
  137. package/dist/leader/contract.d.ts +16 -0
  138. package/dist/leader/contract.d.ts.map +1 -1
  139. package/dist/leader/contract.js +79 -4
  140. package/dist/leader/contract.js.map +1 -1
  141. package/dist/mcp/__tests__/code-intel-server.test.js +31 -3
  142. package/dist/mcp/__tests__/code-intel-server.test.js.map +1 -1
  143. package/dist/mcp/__tests__/wiki-server.test.js +18 -0
  144. package/dist/mcp/__tests__/wiki-server.test.js.map +1 -1
  145. package/dist/mcp/code-intel-server.d.ts.map +1 -1
  146. package/dist/mcp/code-intel-server.js +13 -3
  147. package/dist/mcp/code-intel-server.js.map +1 -1
  148. package/dist/mcp/wiki-server.d.ts +11 -0
  149. package/dist/mcp/wiki-server.d.ts.map +1 -1
  150. package/dist/mcp/wiki-server.js +9 -2
  151. package/dist/mcp/wiki-server.js.map +1 -1
  152. package/dist/modes/__tests__/base-tmux-pane.test.js +4 -4
  153. package/dist/modes/__tests__/base-tmux-pane.test.js.map +1 -1
  154. package/dist/notifications/temp-contract.d.ts.map +1 -1
  155. package/dist/notifications/temp-contract.js +4 -0
  156. package/dist/notifications/temp-contract.js.map +1 -1
  157. package/dist/pipeline/__tests__/orchestrator.test.js +4 -4
  158. package/dist/pipeline/__tests__/orchestrator.test.js.map +1 -1
  159. package/dist/pipeline/__tests__/stages.test.js +8 -8
  160. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  161. package/dist/ralplan/__tests__/consensus-gate.test.js +134 -10
  162. package/dist/ralplan/__tests__/consensus-gate.test.js.map +1 -1
  163. package/dist/ralplan/__tests__/documented-leader-preflight.test.d.ts +2 -0
  164. package/dist/ralplan/__tests__/documented-leader-preflight.test.d.ts.map +1 -0
  165. package/dist/ralplan/__tests__/documented-leader-preflight.test.js +46 -0
  166. package/dist/ralplan/__tests__/documented-leader-preflight.test.js.map +1 -0
  167. package/dist/ralplan/__tests__/runtime.test.js +8 -4
  168. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  169. package/dist/ralplan/consensus-gate.d.ts.map +1 -1
  170. package/dist/ralplan/consensus-gate.js +58 -50
  171. package/dist/ralplan/consensus-gate.js.map +1 -1
  172. package/dist/ralplan/documented-leader-preflight.d.ts +34 -0
  173. package/dist/ralplan/documented-leader-preflight.d.ts.map +1 -0
  174. package/dist/ralplan/documented-leader-preflight.js +58 -0
  175. package/dist/ralplan/documented-leader-preflight.js.map +1 -0
  176. package/dist/ralplan/runtime.d.ts +1 -0
  177. package/dist/ralplan/runtime.d.ts.map +1 -1
  178. package/dist/ralplan/runtime.js +11 -7
  179. package/dist/ralplan/runtime.js.map +1 -1
  180. package/dist/runtime/__tests__/bridge.test.js +42 -1
  181. package/dist/runtime/__tests__/bridge.test.js.map +1 -1
  182. package/dist/runtime/bridge.d.ts +12 -0
  183. package/dist/runtime/bridge.d.ts.map +1 -1
  184. package/dist/runtime/bridge.js +52 -1
  185. package/dist/runtime/bridge.js.map +1 -1
  186. package/dist/scripts/__tests__/codex-native-hook.test.js +2620 -487
  187. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  188. package/dist/scripts/__tests__/reasoning-artifact-contract.test.d.ts +2 -0
  189. package/dist/scripts/__tests__/reasoning-artifact-contract.test.d.ts.map +1 -0
  190. package/dist/scripts/__tests__/reasoning-artifact-contract.test.js +108 -0
  191. package/dist/scripts/__tests__/reasoning-artifact-contract.test.js.map +1 -0
  192. package/dist/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.js +46 -173
  193. package/dist/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.js.map +1 -1
  194. package/dist/scripts/__tests__/role-intent-durable-recovery-3181.test.js +39 -159
  195. package/dist/scripts/__tests__/role-intent-durable-recovery-3181.test.js.map +1 -1
  196. package/dist/scripts/__tests__/smoke-packed-install.test.js +254 -2
  197. package/dist/scripts/__tests__/smoke-packed-install.test.js.map +1 -1
  198. package/dist/scripts/codex-native-hook.d.ts +4 -1
  199. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  200. package/dist/scripts/codex-native-hook.js +11013 -1153
  201. package/dist/scripts/codex-native-hook.js.map +1 -1
  202. package/dist/scripts/notify-fallback-watcher.js +82 -108
  203. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  204. package/dist/scripts/notify-hook/auto-nudge.d.ts.map +1 -1
  205. package/dist/scripts/notify-hook/auto-nudge.js +74 -3
  206. package/dist/scripts/notify-hook/auto-nudge.js.map +1 -1
  207. package/dist/scripts/notify-hook/team-dispatch.d.ts +9 -0
  208. package/dist/scripts/notify-hook/team-dispatch.d.ts.map +1 -1
  209. package/dist/scripts/notify-hook/team-dispatch.js +234 -79
  210. package/dist/scripts/notify-hook/team-dispatch.js.map +1 -1
  211. package/dist/scripts/notify-hook/team-leader-nudge.d.ts.map +1 -1
  212. package/dist/scripts/notify-hook/team-leader-nudge.js +39 -13
  213. package/dist/scripts/notify-hook/team-leader-nudge.js.map +1 -1
  214. package/dist/scripts/notify-hook/team-tmux-guard.d.ts +12 -4
  215. package/dist/scripts/notify-hook/team-tmux-guard.d.ts.map +1 -1
  216. package/dist/scripts/notify-hook/team-tmux-guard.js +365 -44
  217. package/dist/scripts/notify-hook/team-tmux-guard.js.map +1 -1
  218. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
  219. package/dist/scripts/notify-hook/team-worker-stop.js +19 -18
  220. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
  221. package/dist/scripts/notify-hook/team-worker.d.ts +3 -0
  222. package/dist/scripts/notify-hook/team-worker.d.ts.map +1 -1
  223. package/dist/scripts/notify-hook/team-worker.js +37 -28
  224. package/dist/scripts/notify-hook/team-worker.js.map +1 -1
  225. package/dist/scripts/notify-hook/tmux-injection.d.ts.map +1 -1
  226. package/dist/scripts/notify-hook/tmux-injection.js +28 -2
  227. package/dist/scripts/notify-hook/tmux-injection.js.map +1 -1
  228. package/dist/scripts/notify-hook.js +1 -0
  229. package/dist/scripts/notify-hook.js.map +1 -1
  230. package/dist/scripts/smoke-packed-install.d.ts +48 -3
  231. package/dist/scripts/smoke-packed-install.d.ts.map +1 -1
  232. package/dist/scripts/smoke-packed-install.js +2796 -13
  233. package/dist/scripts/smoke-packed-install.js.map +1 -1
  234. package/dist/state/__tests__/mode-state-context.test.js +54 -0
  235. package/dist/state/__tests__/mode-state-context.test.js.map +1 -1
  236. package/dist/state/__tests__/operations.test.js +2 -0
  237. package/dist/state/__tests__/operations.test.js.map +1 -1
  238. package/dist/state/mode-state-context.d.ts +5 -0
  239. package/dist/state/mode-state-context.d.ts.map +1 -1
  240. package/dist/state/mode-state-context.js +59 -0
  241. package/dist/state/mode-state-context.js.map +1 -1
  242. package/dist/subagents/__tests__/leader-bootstrap-3181.test.js +24 -245
  243. package/dist/subagents/__tests__/leader-bootstrap-3181.test.js.map +1 -1
  244. package/dist/subagents/tracker.d.ts +1 -82
  245. package/dist/subagents/tracker.d.ts.map +1 -1
  246. package/dist/subagents/tracker.js +3 -275
  247. package/dist/subagents/tracker.js.map +1 -1
  248. package/dist/team/__tests__/api-interop.test.js +91 -1
  249. package/dist/team/__tests__/api-interop.test.js.map +1 -1
  250. package/dist/team/__tests__/delivery-e2e-smoke.test.js +52 -10
  251. package/dist/team/__tests__/delivery-e2e-smoke.test.js.map +1 -1
  252. package/dist/team/__tests__/idle-nudge.test.js +45 -15
  253. package/dist/team/__tests__/idle-nudge.test.js.map +1 -1
  254. package/dist/team/__tests__/mcp-comm.test.js +93 -27
  255. package/dist/team/__tests__/mcp-comm.test.js.map +1 -1
  256. package/dist/team/__tests__/model-contract.test.js +110 -3
  257. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  258. package/dist/team/__tests__/runtime-cli.test.js +9 -0
  259. package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
  260. package/dist/team/__tests__/runtime.test.js +3204 -335
  261. package/dist/team/__tests__/runtime.test.js.map +1 -1
  262. package/dist/team/__tests__/scaling.test.js +2359 -142
  263. package/dist/team/__tests__/scaling.test.js.map +1 -1
  264. package/dist/team/__tests__/state.test.js +804 -36
  265. package/dist/team/__tests__/state.test.js.map +1 -1
  266. package/dist/team/__tests__/team-ops-contract.test.js +6 -0
  267. package/dist/team/__tests__/team-ops-contract.test.js.map +1 -1
  268. package/dist/team/__tests__/tmux-session.test.js +3049 -784
  269. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  270. package/dist/team/__tests__/worker-runtime-identity.test.js +38 -2
  271. package/dist/team/__tests__/worker-runtime-identity.test.js.map +1 -1
  272. package/dist/team/__tests__/worktree.test.js +6 -0
  273. package/dist/team/__tests__/worktree.test.js.map +1 -1
  274. package/dist/team/api-interop.d.ts.map +1 -1
  275. package/dist/team/api-interop.js +15 -9
  276. package/dist/team/api-interop.js.map +1 -1
  277. package/dist/team/exact-pane.d.ts +23 -0
  278. package/dist/team/exact-pane.d.ts.map +1 -0
  279. package/dist/team/exact-pane.js +133 -0
  280. package/dist/team/exact-pane.js.map +1 -0
  281. package/dist/team/idle-nudge.d.ts +12 -1
  282. package/dist/team/idle-nudge.d.ts.map +1 -1
  283. package/dist/team/idle-nudge.js +41 -14
  284. package/dist/team/idle-nudge.js.map +1 -1
  285. package/dist/team/model-contract.d.ts +2 -5
  286. package/dist/team/model-contract.d.ts.map +1 -1
  287. package/dist/team/model-contract.js +59 -17
  288. package/dist/team/model-contract.js.map +1 -1
  289. package/dist/team/runtime.d.ts +1 -0
  290. package/dist/team/runtime.d.ts.map +1 -1
  291. package/dist/team/runtime.js +1244 -180
  292. package/dist/team/runtime.js.map +1 -1
  293. package/dist/team/scaling.d.ts +13 -1
  294. package/dist/team/scaling.d.ts.map +1 -1
  295. package/dist/team/scaling.js +1430 -384
  296. package/dist/team/scaling.js.map +1 -1
  297. package/dist/team/state/dispatch.d.ts.map +1 -1
  298. package/dist/team/state/dispatch.js +26 -8
  299. package/dist/team/state/dispatch.js.map +1 -1
  300. package/dist/team/state/locks.d.ts.map +1 -1
  301. package/dist/team/state/locks.js +61 -13
  302. package/dist/team/state/locks.js.map +1 -1
  303. package/dist/team/state/tasks.d.ts.map +1 -1
  304. package/dist/team/state/tasks.js +4 -3
  305. package/dist/team/state/tasks.js.map +1 -1
  306. package/dist/team/state.d.ts +67 -1
  307. package/dist/team/state.d.ts.map +1 -1
  308. package/dist/team/state.js +636 -129
  309. package/dist/team/state.js.map +1 -1
  310. package/dist/team/team-ops.d.ts +5 -0
  311. package/dist/team/team-ops.d.ts.map +1 -1
  312. package/dist/team/team-ops.js +4 -0
  313. package/dist/team/team-ops.js.map +1 -1
  314. package/dist/team/tmux-session.d.ts +123 -23
  315. package/dist/team/tmux-session.d.ts.map +1 -1
  316. package/dist/team/tmux-session.js +1250 -291
  317. package/dist/team/tmux-session.js.map +1 -1
  318. package/dist/team/worktree.d.ts.map +1 -1
  319. package/dist/team/worktree.js +4 -0
  320. package/dist/team/worktree.js.map +1 -1
  321. package/dist/utils/__tests__/file-durability.test.d.ts +2 -0
  322. package/dist/utils/__tests__/file-durability.test.d.ts.map +1 -0
  323. package/dist/utils/__tests__/file-durability.test.js +57 -0
  324. package/dist/utils/__tests__/file-durability.test.js.map +1 -0
  325. package/dist/utils/file-durability.d.ts +15 -0
  326. package/dist/utils/file-durability.d.ts.map +1 -0
  327. package/dist/utils/file-durability.js +37 -0
  328. package/dist/utils/file-durability.js.map +1 -0
  329. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js +3 -0
  330. package/dist/verification/__tests__/dev-merge-issue-close-workflow.test.js.map +1 -1
  331. package/dist/wiki/lint.d.ts +4 -1
  332. package/dist/wiki/lint.d.ts.map +1 -1
  333. package/dist/wiki/lint.js +3 -2
  334. package/dist/wiki/lint.js.map +1 -1
  335. package/package.json +1 -1
  336. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  337. package/plugins/oh-my-codex/hooks/codex-native-hook.mjs +24 -0
  338. package/plugins/oh-my-codex/skills/ralph/SKILL.md +6 -4
  339. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +3 -2
  340. package/plugins/oh-my-codex/skills/team/SKILL.md +13 -9
  341. package/skills/ralph/SKILL.md +6 -4
  342. package/skills/ralplan/SKILL.md +3 -2
  343. package/skills/team/SKILL.md +13 -9
  344. package/src/scripts/__tests__/codex-native-hook.test.ts +2826 -497
  345. package/src/scripts/__tests__/reasoning-artifact-contract.test.ts +129 -0
  346. package/src/scripts/__tests__/role-intent-bootstrap-e2e-3181.test.ts +48 -185
  347. package/src/scripts/__tests__/role-intent-durable-recovery-3181.test.ts +44 -177
  348. package/src/scripts/__tests__/smoke-packed-install.test.ts +320 -2
  349. package/src/scripts/codex-native-hook.ts +10715 -1069
  350. package/src/scripts/notify-fallback-watcher.ts +84 -115
  351. package/src/scripts/notify-hook/auto-nudge.ts +71 -3
  352. package/src/scripts/notify-hook/team-dispatch.ts +242 -75
  353. package/src/scripts/notify-hook/team-leader-nudge.ts +40 -18
  354. package/src/scripts/notify-hook/team-tmux-guard.ts +366 -39
  355. package/src/scripts/notify-hook/team-worker-stop.ts +20 -16
  356. package/src/scripts/notify-hook/team-worker.ts +39 -26
  357. package/src/scripts/notify-hook/tmux-injection.ts +28 -2
  358. package/src/scripts/notify-hook.ts +1 -0
  359. package/src/scripts/smoke-packed-install.ts +3196 -14
  360. package/dist/subagents/__tests__/adapted-role-binding.test.d.ts +0 -2
  361. package/dist/subagents/__tests__/adapted-role-binding.test.d.ts.map +0 -1
  362. package/dist/subagents/__tests__/adapted-role-binding.test.js +0 -988
  363. package/dist/subagents/__tests__/adapted-role-binding.test.js.map +0 -1
  364. package/dist/subagents/adapted-role-binding.d.ts +0 -17
  365. package/dist/subagents/adapted-role-binding.d.ts.map +0 -1
  366. package/dist/subagents/adapted-role-binding.js +0 -75
  367. package/dist/subagents/adapted-role-binding.js.map +0 -1
@@ -1,12 +1,17 @@
1
1
  export interface ModeStateContextLike {
2
2
  active?: unknown;
3
+ mode?: unknown;
3
4
  tmux_pane_id?: unknown;
5
+ tmux_pane_pid?: unknown;
6
+ tmux_pane_owner_id?: unknown;
4
7
  tmux_pane_set_at?: unknown;
8
+ tmux_session_name?: unknown;
5
9
  tmux_window_id?: unknown;
6
10
  [key: string]: unknown;
7
11
  }
8
12
  export declare function captureTmuxPaneFromEnv(env?: NodeJS.ProcessEnv): string | null;
9
13
  export declare function captureTmuxWindowForPane(pane: string, env?: NodeJS.ProcessEnv): string | null;
14
+ export declare const OMX_RALPH_PANE_OWNER_OPTION = "@omx_ralph_pane_owner_id";
10
15
  export declare function withModeRuntimeContext<T extends ModeStateContextLike>(existing: ModeStateContextLike, next: T, options?: {
11
16
  env?: NodeJS.ProcessEnv;
12
17
  nowIso?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mode-state-context.d.ts","sourceRoot":"","sources":["../../src/state/mode-state-context.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAK1F;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAc1G;AAMD,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,oBAAoB,EACnE,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,CAAC,CAoBH"}
1
+ {"version":3,"file":"mode-state-context.d.ts","sourceRoot":"","sources":["../../src/state/mode-state-context.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAK1F;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAc1G;AAMD,eAAO,MAAM,2BAA2B,6BAA6B,CAAC;AA6DtE,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,oBAAoB,EACnE,QAAQ,EAAE,oBAAoB,EAC9B,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACrD,CAAC,CAoCH"}
@@ -1,3 +1,6 @@
1
+ import { randomUUID } from 'crypto';
2
+ import { readExactPaneProofSync } from '../team/exact-pane.js';
3
+ import { spawnPlatformCommandSync } from '../utils/platform-command.js';
1
4
  import { execFileSync } from 'child_process';
2
5
  export function captureTmuxPaneFromEnv(env = process.env) {
3
6
  const value = env.TMUX_PANE;
@@ -26,11 +29,54 @@ export function captureTmuxWindowForPane(pane, env = process.env) {
26
29
  function hasNonEmptyString(value) {
27
30
  return typeof value === 'string' && value.trim() !== '';
28
31
  }
32
+ export const OMX_RALPH_PANE_OWNER_OPTION = '@omx_ralph_pane_owner_id';
33
+ function clearRalphPaneBinding(state) {
34
+ delete state.tmux_pane_id;
35
+ delete state.tmux_pane_pid;
36
+ delete state.tmux_pane_owner_id;
37
+ delete state.tmux_session_name;
38
+ delete state.tmux_pane_set_at;
39
+ delete state.tmux_window_id;
40
+ }
41
+ function captureRalphPaneBinding(paneId) {
42
+ const initialProof = readExactPaneProofSync(paneId);
43
+ if (initialProof.status !== 'live')
44
+ return null;
45
+ const paneOwnerId = `ralph:${randomUUID()}`;
46
+ const effectProof = readExactPaneProofSync(initialProof.paneId);
47
+ if (effectProof.status !== 'live' || effectProof.pid !== initialProof.pid)
48
+ return null;
49
+ const tagged = spawnPlatformCommandSync('tmux', ['set-option', '-p', '-t', effectProof.paneId, OMX_RALPH_PANE_OWNER_OPTION, paneOwnerId], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'pipe'] }).result;
50
+ if (tagged.error || tagged.status !== 0)
51
+ return null;
52
+ const owner = spawnPlatformCommandSync('tmux', ['show-option', '-qv', '-p', '-t', initialProof.paneId, OMX_RALPH_PANE_OWNER_OPTION], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'pipe'] }).result;
53
+ if (owner.error || owner.status !== 0 || typeof owner.stdout !== 'string' || owner.stdout.trim() !== paneOwnerId) {
54
+ return null;
55
+ }
56
+ const finalProof = readExactPaneProofSync(initialProof.paneId);
57
+ if (finalProof.status !== 'live' || finalProof.pid !== initialProof.pid)
58
+ return null;
59
+ const session = spawnPlatformCommandSync('tmux', ['display-message', '-p', '-t', finalProof.paneId, '#{session_name}'], { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'pipe'] }).result;
60
+ if (session.error || session.status !== 0 || typeof session.stdout !== 'string')
61
+ return null;
62
+ const sessionName = session.stdout.trim();
63
+ if (sessionName === '')
64
+ return null;
65
+ return {
66
+ paneId: finalProof.paneId,
67
+ panePid: finalProof.pid,
68
+ sessionName,
69
+ paneOwnerId,
70
+ };
71
+ }
29
72
  export function withModeRuntimeContext(existing, next, options) {
30
73
  const env = options?.env ?? process.env;
31
74
  const nowIso = options?.nowIso ?? new Date().toISOString();
32
75
  const wasActive = existing.active === true;
33
76
  const isActive = next.active === true;
77
+ const isRalphActivation = !wasActive && isActive && next.mode === 'ralph';
78
+ if (isRalphActivation)
79
+ clearRalphPaneBinding(next);
34
80
  const hasPane = hasNonEmptyString(next.tmux_pane_id);
35
81
  if (isActive && (!wasActive || !hasPane)) {
36
82
  const pane = captureTmuxPaneFromEnv(env);
@@ -44,6 +90,19 @@ export function withModeRuntimeContext(existing, next, options) {
44
90
  }
45
91
  }
46
92
  }
93
+ const ralphPaneId = typeof next.tmux_pane_id === 'string' ? next.tmux_pane_id.trim() : '';
94
+ if (isRalphActivation && ralphPaneId) {
95
+ const binding = captureRalphPaneBinding(ralphPaneId);
96
+ if (binding) {
97
+ next.tmux_pane_id = binding.paneId;
98
+ next.tmux_pane_pid = binding.panePid;
99
+ next.tmux_session_name = binding.sessionName;
100
+ next.tmux_pane_owner_id = binding.paneOwnerId;
101
+ }
102
+ else {
103
+ clearRalphPaneBinding(next);
104
+ }
105
+ }
47
106
  return next;
48
107
  }
49
108
  //# sourceMappingURL=mode-state-context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mode-state-context.js","sourceRoot":"","sources":["../../src/state/mode-state-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAU7C,MAAM,UAAU,sBAAsB,CAAC,GAAG,GAAsB,OAAO,CAAC,GAAG;IACzE,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,GAAG,GAAsB,OAAO,CAAC,GAAG;IACzF,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,kBAAkB,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC;IACtE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC;QACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE;YACzF,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,IAAI;YACb,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,QAA8B,EAC9B,IAAO,EACP,OAAsD;IAEtD,MAAM,GAAG,GAAG,OAAO,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACxC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3D,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IACtC,MAAM,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAErD,IAAI,QAAQ,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YACrD,IAAI,QAAQ;gBAAE,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;YAC7C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC9C,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"mode-state-context.js","sourceRoot":"","sources":["../../src/state/mode-state-context.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,11 @@
1
1
  import assert from 'node:assert/strict';
2
2
  import { mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
3
3
  import { tmpdir } from 'node:os';
4
- import { join } from 'node:path';
4
+ import { dirname, join } from 'node:path';
5
5
  import { describe, it } from 'node:test';
6
- import { attestLeaderThread, ensureLeaderAndRecordIntent, readSubagentTrackingState, recordNativeLeaderIntent, recordSubagentTurnForSession, subagentTrackingPath, } from '../tracker.js';
7
- // 32 lowercase-hex chars: the canonical correlation-token shape the CLI generates via
8
- // randomUUID().replace(/-/g, '').
9
- const TOKEN = 'abcdef0123456789abcdef0123456789';
10
- const TOKEN2 = '00112233445566778899aabbccddeeff';
6
+ import { createSubagentTrackingState, isTrustedSubagentThread, readSubagentTrackingState, readSubagentTrackingStateStrict, recordSubagentTurn, recordSubagentTurnForSession, subagentTrackingPath, } from '../tracker.js';
11
7
  async function withCwd(fn) {
12
- const cwd = await mkdtemp(join(tmpdir(), 'omx-3181-bootstrap-'));
8
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-3194-'));
13
9
  try {
14
10
  await fn(cwd);
15
11
  }
@@ -17,256 +13,39 @@ async function withCwd(fn) {
17
13
  await rm(cwd, { recursive: true, force: true });
18
14
  }
19
15
  }
20
- describe('#3181 leader bootstrap tracker carrier', () => {
21
- it('attests a leader and then records the adapted intent via self-heal', async () => {
16
+ describe('#3194 ordinary tracker behavior', () => {
17
+ it('excludes a child thread across all sessions without promoting legacy thread identity to leader authority', async () => {
22
18
  await withCwd(async (cwd) => {
23
- const attest = attestLeaderThread(cwd, {
24
- sessionId: 'sess-a',
25
- leaderThreadId: 'leader-thread-a',
26
- source: 'native-pretooluse',
27
- });
28
- assert.deepEqual(attest, { ok: true, alreadyAttested: false });
29
- const result = ensureLeaderAndRecordIntent(cwd, {
30
- role: 'architect',
31
- sessionId: 'sess-a',
32
- parentThreadId: 'leader-thread-a',
33
- correlationToken: TOKEN,
34
- });
35
- assert.equal(result.ok, true);
36
- if (!result.ok)
37
- return;
38
- assert.equal(result.reused, false);
39
- assert.equal(result.intent.role, 'architect');
40
- assert.equal(result.intent.session_id, 'sess-a');
41
- assert.equal(result.intent.parent_thread_id, 'leader-thread-a');
42
- assert.equal(result.intent.correlation_token, TOKEN);
43
- const state = await readSubagentTrackingState(cwd);
44
- const session = state.sessions['sess-a'];
45
- assert.equal(session?.leader_thread_id, 'leader-thread-a');
46
- assert.ok(session?.leader_attested_at);
47
- assert.equal(session?.leader_attest_source, 'native-pretooluse');
48
- assert.equal(session?.threads['leader-thread-a']?.kind, 'leader');
49
- assert.equal(state.pending_role_intents.length, 1);
50
- });
51
- });
52
- it('fails closed with native_anchor_unavailable when no attestation exists', async () => {
53
- await withCwd(async (cwd) => {
54
- const result = ensureLeaderAndRecordIntent(cwd, {
55
- role: 'architect',
56
- sessionId: 'sess-fresh',
57
- parentThreadId: 'codex-thread-fresh-turn',
58
- correlationToken: TOKEN,
59
- });
60
- assert.deepEqual(result, { ok: false, reason: 'native_anchor_unavailable' });
61
- const state = await readSubagentTrackingState(cwd);
62
- assert.equal(state.pending_role_intents.length, 0);
63
- assert.equal(state.sessions['sess-fresh'], undefined);
64
- });
65
- });
66
- it('fails closed with native_anchor_mismatch when parent-thread != attested leader', async () => {
67
- await withCwd(async (cwd) => {
68
- attestLeaderThread(cwd, { sessionId: 'sess-a', leaderThreadId: 'leader-thread-a', source: 'native-pretooluse' });
69
- const result = ensureLeaderAndRecordIntent(cwd, {
70
- role: 'architect',
71
- sessionId: 'sess-a',
72
- parentThreadId: 'attacker-thread',
73
- correlationToken: TOKEN,
74
- });
75
- assert.deepEqual(result, { ok: false, reason: 'native_anchor_mismatch' });
76
- const state = await readSubagentTrackingState(cwd);
77
- assert.equal(state.pending_role_intents.length, 0);
78
- });
79
- });
80
- it('never overwrites a different existing leader (fail-closed attestation)', async () => {
81
- await withCwd(async (cwd) => {
82
- attestLeaderThread(cwd, { sessionId: 'sess-a', leaderThreadId: 'leader-thread-a', source: 'native-pretooluse' });
83
- const second = attestLeaderThread(cwd, { sessionId: 'sess-a', leaderThreadId: 'foreign-leader', source: 'native-pretooluse' });
84
- assert.deepEqual(second, { ok: false, reason: 'native_anchor_mismatch' });
85
- const state = await readSubagentTrackingState(cwd);
86
- assert.equal(state.sessions['sess-a']?.leader_thread_id, 'leader-thread-a');
87
- });
88
- });
89
- it('is idempotent: duplicate same-identity intent reuses the original receipt', async () => {
90
- await withCwd(async (cwd) => {
91
- attestLeaderThread(cwd, { sessionId: 'sess-a', leaderThreadId: 'leader-thread-a', source: 'native-pretooluse' });
92
- const first = ensureLeaderAndRecordIntent(cwd, {
93
- role: 'architect', sessionId: 'sess-a', parentThreadId: 'leader-thread-a', correlationToken: TOKEN,
94
- });
95
- const second = ensureLeaderAndRecordIntent(cwd, {
96
- role: 'architect', sessionId: 'sess-a', parentThreadId: 'leader-thread-a', correlationToken: TOKEN2,
97
- });
98
- assert.equal(first.ok, true);
99
- assert.equal(second.ok, true);
100
- if (!first.ok || !second.ok)
101
- return;
102
- assert.equal(second.reused, true);
103
- assert.equal(second.intent.correlation_token, first.intent.correlation_token);
104
- const state = await readSubagentTrackingState(cwd);
105
- assert.equal(state.pending_role_intents.length, 1);
106
- });
107
- });
108
- it('preserves single-flight: a different-role second live intent returns single_flight_conflict', async () => {
109
- await withCwd(async (cwd) => {
110
- attestLeaderThread(cwd, { sessionId: 'sess-a', leaderThreadId: 'leader-thread-a', source: 'native-pretooluse' });
111
- const architect = ensureLeaderAndRecordIntent(cwd, {
112
- role: 'architect', sessionId: 'sess-a', parentThreadId: 'leader-thread-a', correlationToken: TOKEN,
113
- });
114
- const critic = ensureLeaderAndRecordIntent(cwd, {
115
- role: 'critic', sessionId: 'sess-a', parentThreadId: 'leader-thread-a', correlationToken: TOKEN2,
116
- });
117
- assert.equal(architect.ok, true);
118
- assert.deepEqual(critic, { ok: false, reason: 'single_flight_conflict' });
119
- const state = await readSubagentTrackingState(cwd);
120
- assert.equal(state.pending_role_intents.length, 1);
121
- assert.equal(state.pending_role_intents[0]?.role, 'architect');
122
- });
123
- });
124
- it('atomically refuses to attest a thread already tracked as a subagent (native_anchor_mismatch)', async () => {
125
- await withCwd(async (cwd) => {
126
- await recordSubagentTurnForSession(cwd, {
127
- sessionId: 'leader-session',
128
- threadId: 'child-thread',
129
- kind: 'subagent',
130
- leaderThreadId: 'leader-session',
131
- timestamp: new Date().toISOString(),
132
- });
133
- const result = attestLeaderThread(cwd, { sessionId: 'child-thread', leaderThreadId: 'child-thread', source: 'native-pretooluse' });
134
- assert.deepEqual(result, { ok: false, reason: 'native_anchor_mismatch' });
135
- const state = await readSubagentTrackingState(cwd);
136
- assert.equal(state.sessions['child-thread'], undefined);
137
- });
138
- });
139
- it('fails closed (native_anchor_unavailable) when the tracker file exists but is corrupt', async () => {
140
- await withCwd(async (cwd) => {
141
- const path = subagentTrackingPath(cwd);
142
- await mkdir(join(cwd, '.omx', 'state'), { recursive: true });
143
- await writeFile(path, '{ this is not valid json');
144
- const result = attestLeaderThread(cwd, { sessionId: 'sess-a', leaderThreadId: 'leader-thread-a', source: 'native-pretooluse' });
145
- assert.deepEqual(result, { ok: false, reason: 'native_anchor_unavailable' });
146
- });
147
- });
148
- it('fails closed (native_anchor_unavailable) when the tracker exists but is unreadable (non-ENOENT)', async () => {
149
- await withCwd(async (cwd) => {
150
- // Make the tracker path a directory so a read throws EISDIR (not ENOENT); an existing
151
- // but unreadable tracker must deny attestation, not be treated as clean empty state.
152
- await mkdir(subagentTrackingPath(cwd), { recursive: true });
153
- const result = attestLeaderThread(cwd, { sessionId: 'sess-a', leaderThreadId: 'leader-thread-a', source: 'native-pretooluse' });
154
- assert.deepEqual(result, { ok: false, reason: 'native_anchor_unavailable' });
155
- });
156
- });
157
- it('symmetric exclusion: a leader also tracked as a subagent in a DIFFERENT session cannot record an intent', async () => {
158
- await withCwd(async (cwd) => {
159
- // Attestation wins first for session A.
160
- const attest = attestLeaderThread(cwd, { sessionId: 'sess-A', leaderThreadId: 'thread-x', source: 'native-pretooluse' });
161
- assert.equal(attest.ok, true);
162
- // A cross-session child record then classifies thread-x as a subagent under session B.
163
19
  await recordSubagentTurnForSession(cwd, {
164
- sessionId: 'sess-B',
165
- threadId: 'thread-x',
166
- kind: 'subagent',
167
- leaderThreadId: 'sess-B',
168
- timestamp: new Date().toISOString(),
169
- });
170
- // ensureLeaderAndRecordIntent must re-scan all sessions and refuse.
171
- const result = ensureLeaderAndRecordIntent(cwd, {
172
- role: 'architect', sessionId: 'sess-A', parentThreadId: 'thread-x', correlationToken: TOKEN,
20
+ sessionId: 'synthetic-session-a', threadId: 'synthetic-thread', kind: 'leader', leaderThreadId: 'synthetic-thread', timestamp: new Date(0).toISOString(),
173
21
  });
174
- assert.deepEqual(result, { ok: false, reason: 'native_anchor_mismatch' });
175
- assert.deepEqual((await readSubagentTrackingState(cwd)).pending_role_intents, []);
176
- });
177
- });
178
- it('preserves the leader attestation across an ordinary child turn write (no legacy downgrade)', async () => {
179
- await withCwd(async (cwd) => {
180
- attestLeaderThread(cwd, { sessionId: 'sess-A', leaderThreadId: 'leader-L', source: 'native-sessionstart' });
181
- const first = ensureLeaderAndRecordIntent(cwd, { role: 'architect', sessionId: 'sess-A', parentThreadId: 'leader-L', correlationToken: TOKEN });
182
- assert.equal(first.ok, true);
183
- // An ordinary child turn under the same session must NOT erase the attestation.
184
22
  await recordSubagentTurnForSession(cwd, {
185
- sessionId: 'sess-A',
186
- threadId: 'child-thread',
187
- kind: 'subagent',
188
- leaderThreadId: 'leader-L',
189
- timestamp: new Date().toISOString(),
23
+ sessionId: 'synthetic-session-b', threadId: 'synthetic-thread', kind: 'subagent', leaderThreadId: 'synthetic-other-leader', timestamp: new Date(0).toISOString(),
190
24
  });
191
25
  const state = await readSubagentTrackingState(cwd);
192
- assert.ok(state.sessions['sess-A']?.leader_attested_at, 'attestation must survive a child turn write');
193
- assert.equal(state.sessions['sess-A']?.leader_attest_source, 'native-sessionstart');
194
- assert.equal(state.sessions['sess-A']?.leader_thread_id, 'leader-L', 'a child turn must not replace the attested leader');
195
- // The next role-intent write still uses the attested path (idempotent receipt reuse),
196
- // proving no downgrade to the legacy non-atomic path.
197
- const retry = ensureLeaderAndRecordIntent(cwd, { role: 'architect', sessionId: 'sess-A', parentThreadId: 'leader-L', correlationToken: TOKEN2 });
198
- assert.equal(retry.ok, true);
199
- if (!retry.ok || !first.ok)
200
- return;
201
- assert.equal(retry.reused, true);
202
- assert.equal(retry.intent.correlation_token, first.intent.correlation_token);
26
+ assert.equal(isTrustedSubagentThread(state.sessions['synthetic-session-a'], 'synthetic-thread'), false);
27
+ assert.equal(isTrustedSubagentThread(state.sessions['synthetic-session-b'], 'synthetic-thread'), true);
28
+ assert.equal(state.sessions['synthetic-session-a']?.leader_thread_id, 'synthetic-thread');
203
29
  });
204
30
  });
205
- it('recordNativeLeaderIntent records under a positively-provenanced tracker leader and is role-agnostic single-flight', async () => {
206
- await withCwd(async (cwd) => {
207
- // A real recorded leader turn establishes the positive tracker leader anchor.
208
- await recordSubagentTurnForSession(cwd, { sessionId: 'sess-A', threadId: 'native-L', kind: 'leader', leaderThreadId: 'native-L', timestamp: new Date().toISOString() });
209
- const ok = recordNativeLeaderIntent(cwd, {
210
- role: 'architect', sessionId: 'sess-A', parentThreadId: 'native-L', allowTrackerLeader: true, correlationToken: TOKEN,
211
- });
212
- assert.equal(ok.ok, true);
213
- if (!ok.ok)
214
- return;
215
- assert.equal(ok.intent.role, 'architect');
216
- // Same identity reuses; different role conflicts.
217
- const reuse = recordNativeLeaderIntent(cwd, { role: 'architect', sessionId: 'sess-A', parentThreadId: 'native-L', allowTrackerLeader: true, correlationToken: TOKEN2 });
218
- assert.equal(reuse.ok, true);
219
- if (reuse.ok)
220
- assert.equal(reuse.reused, true);
221
- const conflict = recordNativeLeaderIntent(cwd, { role: 'critic', sessionId: 'sess-A', parentThreadId: 'native-L', allowTrackerLeader: true, correlationToken: TOKEN2 });
222
- assert.deepEqual(conflict, { ok: false, reason: 'single_flight_conflict' });
223
- assert.equal((await readSubagentTrackingState(cwd)).pending_role_intents.length, 1);
224
- });
225
- });
226
- it('recordNativeLeaderIntent fails closed when there is no positive tracker leader anchor (session.json alone never authorizes)', async () => {
227
- await withCwd(async (cwd) => {
228
- // No recorded leader turn / attestation: the bare native-session pointer is NOT trusted.
229
- const res = recordNativeLeaderIntent(cwd, {
230
- role: 'architect', sessionId: 'sess-A', parentThreadId: 'native-L', allowTrackerLeader: true, correlationToken: TOKEN,
231
- });
232
- assert.deepEqual(res, { ok: false, reason: 'parent_not_active_leader' });
233
- assert.deepEqual((await readSubagentTrackingState(cwd)).pending_role_intents, []);
234
- });
235
- });
236
- it('recordNativeLeaderIntent rejects a parent that is not the tracker leader (parent_not_active_leader), no mutation', async () => {
237
- await withCwd(async (cwd) => {
238
- await recordSubagentTurnForSession(cwd, { sessionId: 'sess-A', threadId: 'native-L', kind: 'leader', leaderThreadId: 'native-L', timestamp: new Date().toISOString() });
239
- const res = recordNativeLeaderIntent(cwd, {
240
- role: 'architect', sessionId: 'sess-A', parentThreadId: 'attacker', allowTrackerLeader: true, correlationToken: TOKEN,
241
- });
242
- assert.deepEqual(res, { ok: false, reason: 'parent_not_active_leader' });
243
- assert.deepEqual((await readSubagentTrackingState(cwd)).pending_role_intents, []);
31
+ it('preserves ordinary Architect then Critic turn ordering', () => {
32
+ const architect = recordSubagentTurn(createSubagentTrackingState(), {
33
+ sessionId: 'synthetic-session', threadId: 'synthetic-architect', kind: 'subagent', role: 'architect', timestamp: new Date(0).toISOString(),
244
34
  });
245
- });
246
- it('recordNativeLeaderIntent atomically rejects a tracker leader also tracked as a subagent (race: child record wins)', async () => {
247
- await withCwd(async (cwd) => {
248
- await recordSubagentTurnForSession(cwd, { sessionId: 'sess-A', threadId: 'native-L', kind: 'leader', leaderThreadId: 'native-L', timestamp: new Date().toISOString() });
249
- // The child record wins the race: the same thread is recorded as a subagent in a
250
- // different session before the legacy fallback runs.
251
- await recordSubagentTurnForSession(cwd, {
252
- sessionId: 'sess-B', threadId: 'native-L', kind: 'subagent', leaderThreadId: 'sess-B', timestamp: new Date().toISOString(),
253
- });
254
- const res = recordNativeLeaderIntent(cwd, {
255
- role: 'architect', sessionId: 'sess-A', parentThreadId: 'native-L', allowTrackerLeader: true, correlationToken: TOKEN,
256
- });
257
- assert.deepEqual(res, { ok: false, reason: 'native_anchor_mismatch' });
258
- assert.deepEqual((await readSubagentTrackingState(cwd)).pending_role_intents, []);
35
+ const critic = recordSubagentTurn(architect, {
36
+ sessionId: 'synthetic-session', threadId: 'synthetic-critic', kind: 'subagent', role: 'critic', timestamp: new Date(1).toISOString(),
259
37
  });
38
+ assert.equal(critic.sessions['synthetic-session']?.threads['synthetic-architect']?.role, 'architect');
39
+ assert.equal(critic.sessions['synthetic-session']?.threads['synthetic-critic']?.role, 'critic');
260
40
  });
261
- it('recordNativeLeaderIntent fails closed on a corrupt tracker (native_anchor_unavailable, no overwrite)', async () => {
41
+ it('strictly rejects corrupt tracker data without overwriting it', async () => {
262
42
  await withCwd(async (cwd) => {
263
- await mkdir(subagentTrackingPath(cwd).replace(/\/[^/]+$/, ''), { recursive: true });
264
- await writeFile(subagentTrackingPath(cwd), '{ corrupt not json');
265
- const res = recordNativeLeaderIntent(cwd, {
266
- role: 'architect', sessionId: 'sess-A', parentThreadId: 'native-L', allowTrackerLeader: true, correlationToken: TOKEN,
267
- });
268
- assert.deepEqual(res, { ok: false, reason: 'native_anchor_unavailable' });
269
- assert.equal(await readFile(subagentTrackingPath(cwd), 'utf-8'), '{ corrupt not json');
43
+ const path = subagentTrackingPath(cwd);
44
+ const corrupt = '{ synthetic corrupt tracker';
45
+ await mkdir(dirname(path), { recursive: true });
46
+ await writeFile(path, corrupt);
47
+ assert.deepEqual(await readSubagentTrackingStateStrict(cwd), { ok: false });
48
+ assert.equal(await readFile(path, 'utf8'), corrupt);
270
49
  });
271
50
  });
272
51
  });
@@ -1 +1 @@
1
- {"version":3,"file":"leader-bootstrap-3181.test.js","sourceRoot":"","sources":["../../../src/subagents/__tests__/leader-bootstrap-3181.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"leader-bootstrap-3181.test.js","sourceRoot":"","sources":["../../../src/subagents/__tests__/leader-bootstrap-3181.test.ts"],"names":[],"mappings":"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"}
@@ -29,8 +29,6 @@ export interface TrackedSubagentThread {
29
29
  export interface TrackedSubagentSession {
30
30
  session_id: string;
31
31
  leader_thread_id?: string;
32
- leader_attested_at?: string;
33
- leader_attest_source?: string;
34
32
  updated_at: string;
35
33
  threads: Record<string, TrackedSubagentThread>;
36
34
  }
@@ -107,7 +105,7 @@ export interface SubagentResumeLedger extends SubagentSessionSummary {
107
105
  unavailableSubagents: SubagentLedgerEntry[];
108
106
  }
109
107
  export declare function subagentTrackingPath(cwd: string): string;
110
- export declare function resolveInstalledRoleName(role: string, codexHomeOverride?: string): string | null;
108
+ export declare function resolveInstalledRoleName(role: string, codexHomeOverride?: string, projectRootOverride?: string): string | null;
111
109
  export declare function createSubagentTrackingState(): SubagentTrackingState;
112
110
  export declare function isTrustedSubagentThread(session: TrackedSubagentSession | null | undefined, threadId: string): boolean;
113
111
  export declare function normalizeSubagentTrackingState(input: unknown): SubagentTrackingState;
@@ -155,85 +153,6 @@ export declare function recordPendingRoleIntent(cwd: string, input: {
155
153
  ok: false;
156
154
  reason: 'unknown_role' | 'invalid_correlation_token' | 'invalid_origin' | 'single_flight_conflict';
157
155
  };
158
- export type LeaderBootstrapFailureReason = 'unknown_role' | 'invalid_correlation_token' | 'invalid_origin' | 'single_flight_conflict' | 'native_anchor_unavailable' | 'native_anchor_mismatch';
159
- /**
160
- * #3181 Phase 1 carrier write. Durably attest the authenticated leader thread for a
161
- * session from native-hook-reconciled metadata. Idempotent and fail-closed: it seeds
162
- * `leader_thread_id` + `leader_attested_at` + `leader_attest_source` only when the
163
- * session has no conflicting leader already. A different existing leader is NEVER
164
- * overwritten (returns `native_anchor_mismatch`) so a stale/foreign leader cannot be
165
- * replaced from a later turn. Authority for `leaderThreadId` is the caller's native
166
- * payload thread; it must never be derived from a native session id.
167
- */
168
- export declare function attestLeaderThread(cwd: string, input: {
169
- sessionId: string;
170
- leaderThreadId: string;
171
- source: string;
172
- nowMs?: number;
173
- }): {
174
- ok: true;
175
- alreadyAttested: boolean;
176
- } | {
177
- ok: false;
178
- reason: 'native_anchor_unavailable' | 'native_anchor_mismatch';
179
- };
180
- /**
181
- * #3181 Phase 2. Single tracker-locked publish that self-heals the leader thread record
182
- * from a durable native attestation and records the pending role intent in the same
183
- * operation, closing the previous verify-then-record TOCTOU window. Fail-closed:
184
- * requires a durable attested leader for the session (`native_anchor_unavailable`
185
- * otherwise) and requires `parentThreadId` to equal the attested `leader_thread_id`
186
- * (`native_anchor_mismatch` otherwise). `leaderThreadId` is never inferred from a
187
- * native session id. Duplicate same-identity intents reuse the original receipt
188
- * (idempotent), never a second leader or a second intent.
189
- */
190
- export declare function ensureLeaderAndRecordIntent(cwd: string, input: {
191
- role: string;
192
- sessionId: string;
193
- parentThreadId: string;
194
- correlationToken: string;
195
- ttlMs?: number;
196
- nowMs?: number;
197
- }): {
198
- ok: true;
199
- intent: PendingRoleIntent;
200
- reused: boolean;
201
- } | {
202
- ok: false;
203
- reason: LeaderBootstrapFailureReason;
204
- };
205
- export type NativeLeaderIntentFailureReason = LeaderBootstrapFailureReason | 'parent_not_active_leader';
206
- /**
207
- * #3181 legacy/native fallback, made atomic and positive-provenance-only. When no durable
208
- * attestation exists, an in-turn role intent may still be authorized ONLY against the
209
- * tracker leader_thread_id — the positively-provenanced leader thread set by a real
210
- * recorded leader turn (notify) or by PreToolUse attestation (gated when the caller has a
211
- * usable current pointer). It deliberately does NOT trust the reconciled session.json
212
- * native_session_id, which an ambiguous/malformed-child SessionStart can set. This is the
213
- * strict tracker-locked replacement for the former CLI "activeLeaderThreadIds +
214
- * recordPendingRoleIntent" fallback: it validates the leader anchor AND rejects any
215
- * all-session subagent counter-evidence under the same lock as the intent write, so a
216
- * subagent record landing after a pre-check (or a PreToolUse attestation that lost its
217
- * race) can never be downgraded into an unvalidated legacy authorization. Fail-closed:
218
- * unreadable/corrupt tracker → native_anchor_unavailable; parent not the tracker leader →
219
- * parent_not_active_leader; parent tracked as a subagent anywhere → native_anchor_mismatch.
220
- */
221
- export declare function recordNativeLeaderIntent(cwd: string, input: {
222
- role: string;
223
- sessionId: string;
224
- parentThreadId: string;
225
- allowTrackerLeader: boolean;
226
- correlationToken: string;
227
- ttlMs?: number;
228
- nowMs?: number;
229
- }): {
230
- ok: true;
231
- intent: PendingRoleIntent;
232
- reused: boolean;
233
- } | {
234
- ok: false;
235
- reason: NativeLeaderIntentFailureReason;
236
- };
237
156
  export declare function bindPendingRoleIntentUnderLock(cwd: string, input: {
238
157
  sessionId: string;
239
158
  parentThreadId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"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"}