oh-my-codex 0.18.5 → 0.18.7

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 (297) hide show
  1. package/Cargo.lock +6 -6
  2. package/Cargo.toml +1 -1
  3. package/README.md +56 -7
  4. package/dist/agents/__tests__/definitions.test.js +11 -0
  5. package/dist/agents/__tests__/definitions.test.js.map +1 -1
  6. package/dist/agents/__tests__/native-config.test.js +14 -5
  7. package/dist/agents/__tests__/native-config.test.js.map +1 -1
  8. package/dist/agents/definitions.d.ts +2 -0
  9. package/dist/agents/definitions.d.ts.map +1 -1
  10. package/dist/agents/definitions.js +4 -1
  11. package/dist/agents/definitions.js.map +1 -1
  12. package/dist/agents/native-config.js +2 -2
  13. package/dist/agents/native-config.js.map +1 -1
  14. package/dist/autopilot/__tests__/fsm.test.d.ts +2 -0
  15. package/dist/autopilot/__tests__/fsm.test.d.ts.map +1 -0
  16. package/dist/autopilot/__tests__/fsm.test.js +75 -0
  17. package/dist/autopilot/__tests__/fsm.test.js.map +1 -0
  18. package/dist/autopilot/__tests__/ralplan-gate.test.d.ts +2 -0
  19. package/dist/autopilot/__tests__/ralplan-gate.test.d.ts.map +1 -0
  20. package/dist/autopilot/__tests__/ralplan-gate.test.js +79 -0
  21. package/dist/autopilot/__tests__/ralplan-gate.test.js.map +1 -0
  22. package/dist/autopilot/deep-interview-gate.d.ts +18 -0
  23. package/dist/autopilot/deep-interview-gate.d.ts.map +1 -0
  24. package/dist/autopilot/deep-interview-gate.js +256 -0
  25. package/dist/autopilot/deep-interview-gate.js.map +1 -0
  26. package/dist/autopilot/fsm.d.ts +13 -0
  27. package/dist/autopilot/fsm.d.ts.map +1 -0
  28. package/dist/autopilot/fsm.js +70 -0
  29. package/dist/autopilot/fsm.js.map +1 -0
  30. package/dist/autopilot/ralplan-gate.d.ts +17 -0
  31. package/dist/autopilot/ralplan-gate.d.ts.map +1 -0
  32. package/dist/autopilot/ralplan-gate.js +61 -0
  33. package/dist/autopilot/ralplan-gate.js.map +1 -0
  34. package/dist/cli/__tests__/index.test.js +24 -4
  35. package/dist/cli/__tests__/index.test.js.map +1 -1
  36. package/dist/cli/__tests__/launch-fallback.test.js +175 -6
  37. package/dist/cli/__tests__/launch-fallback.test.js.map +1 -1
  38. package/dist/cli/__tests__/question.test.js +100 -0
  39. package/dist/cli/__tests__/question.test.js.map +1 -1
  40. package/dist/cli/__tests__/setup-refresh.test.js +18 -0
  41. package/dist/cli/__tests__/setup-refresh.test.js.map +1 -1
  42. package/dist/cli/__tests__/team.test.js +2 -2
  43. package/dist/cli/__tests__/team.test.js.map +1 -1
  44. package/dist/cli/index.d.ts +3 -1
  45. package/dist/cli/index.d.ts.map +1 -1
  46. package/dist/cli/index.js +191 -36
  47. package/dist/cli/index.js.map +1 -1
  48. package/dist/cli/question.d.ts.map +1 -1
  49. package/dist/cli/question.js +36 -5
  50. package/dist/cli/question.js.map +1 -1
  51. package/dist/config/__tests__/deep-interview.test.js +7 -6
  52. package/dist/config/__tests__/deep-interview.test.js.map +1 -1
  53. package/dist/config/deep-interview.d.ts.map +1 -1
  54. package/dist/config/deep-interview.js +14 -4
  55. package/dist/config/deep-interview.js.map +1 -1
  56. package/dist/hooks/__tests__/autopilot-skill-contract.test.js +8 -0
  57. package/dist/hooks/__tests__/autopilot-skill-contract.test.js.map +1 -1
  58. package/dist/hooks/__tests__/deep-interview-contract.test.js +10 -0
  59. package/dist/hooks/__tests__/deep-interview-contract.test.js.map +1 -1
  60. package/dist/hooks/__tests__/keyword-detector.test.js +649 -11
  61. package/dist/hooks/__tests__/keyword-detector.test.js.map +1 -1
  62. package/dist/hooks/__tests__/notify-fallback-watcher.test.js +63 -0
  63. package/dist/hooks/__tests__/notify-fallback-watcher.test.js.map +1 -1
  64. package/dist/hooks/__tests__/session.test.js +25 -0
  65. package/dist/hooks/__tests__/session.test.js.map +1 -1
  66. package/dist/hooks/deep-interview-config-instruction.js +1 -1
  67. package/dist/hooks/deep-interview-config-instruction.js.map +1 -1
  68. package/dist/hooks/keyword-detector.d.ts +1 -0
  69. package/dist/hooks/keyword-detector.d.ts.map +1 -1
  70. package/dist/hooks/keyword-detector.js +171 -21
  71. package/dist/hooks/keyword-detector.js.map +1 -1
  72. package/dist/hooks/keyword-registry.d.ts.map +1 -1
  73. package/dist/hooks/keyword-registry.js +1 -0
  74. package/dist/hooks/keyword-registry.js.map +1 -1
  75. package/dist/hooks/session.d.ts +2 -0
  76. package/dist/hooks/session.d.ts.map +1 -1
  77. package/dist/hooks/session.js +13 -5
  78. package/dist/hooks/session.js.map +1 -1
  79. package/dist/hud/__tests__/authority.test.js +35 -0
  80. package/dist/hud/__tests__/authority.test.js.map +1 -1
  81. package/dist/hud/__tests__/index.test.js +320 -3
  82. package/dist/hud/__tests__/index.test.js.map +1 -1
  83. package/dist/hud/__tests__/reconcile.test.js +117 -14
  84. package/dist/hud/__tests__/reconcile.test.js.map +1 -1
  85. package/dist/hud/__tests__/render.test.js +117 -8
  86. package/dist/hud/__tests__/render.test.js.map +1 -1
  87. package/dist/hud/__tests__/state.test.js +80 -0
  88. package/dist/hud/__tests__/state.test.js.map +1 -1
  89. package/dist/hud/__tests__/tmux.test.js +134 -1
  90. package/dist/hud/__tests__/tmux.test.js.map +1 -1
  91. package/dist/hud/authority.d.ts.map +1 -1
  92. package/dist/hud/authority.js +13 -2
  93. package/dist/hud/authority.js.map +1 -1
  94. package/dist/hud/colors.d.ts +1 -0
  95. package/dist/hud/colors.d.ts.map +1 -1
  96. package/dist/hud/colors.js +4 -0
  97. package/dist/hud/colors.js.map +1 -1
  98. package/dist/hud/constants.d.ts +3 -2
  99. package/dist/hud/constants.d.ts.map +1 -1
  100. package/dist/hud/constants.js +3 -2
  101. package/dist/hud/constants.js.map +1 -1
  102. package/dist/hud/index.d.ts +20 -1
  103. package/dist/hud/index.d.ts.map +1 -1
  104. package/dist/hud/index.js +99 -18
  105. package/dist/hud/index.js.map +1 -1
  106. package/dist/hud/reconcile.d.ts +2 -1
  107. package/dist/hud/reconcile.d.ts.map +1 -1
  108. package/dist/hud/reconcile.js +6 -3
  109. package/dist/hud/reconcile.js.map +1 -1
  110. package/dist/hud/render.d.ts +1 -0
  111. package/dist/hud/render.d.ts.map +1 -1
  112. package/dist/hud/render.js +69 -17
  113. package/dist/hud/render.js.map +1 -1
  114. package/dist/hud/state.d.ts.map +1 -1
  115. package/dist/hud/state.js +16 -1
  116. package/dist/hud/state.js.map +1 -1
  117. package/dist/hud/tmux.d.ts +2 -0
  118. package/dist/hud/tmux.d.ts.map +1 -1
  119. package/dist/hud/tmux.js +39 -2
  120. package/dist/hud/tmux.js.map +1 -1
  121. package/dist/mcp/__tests__/hermes-bridge.test.js +203 -7
  122. package/dist/mcp/__tests__/hermes-bridge.test.js.map +1 -1
  123. package/dist/mcp/__tests__/state-server.test.js +13 -1
  124. package/dist/mcp/__tests__/state-server.test.js.map +1 -1
  125. package/dist/mcp/hermes-bridge.d.ts +12 -2
  126. package/dist/mcp/hermes-bridge.d.ts.map +1 -1
  127. package/dist/mcp/hermes-bridge.js +83 -9
  128. package/dist/mcp/hermes-bridge.js.map +1 -1
  129. package/dist/modes/__tests__/base-autoresearch-contract.test.js +7 -1
  130. package/dist/modes/__tests__/base-autoresearch-contract.test.js.map +1 -1
  131. package/dist/pipeline/__tests__/stages.test.js +130 -0
  132. package/dist/pipeline/__tests__/stages.test.js.map +1 -1
  133. package/dist/pipeline/orchestrator.js +1 -1
  134. package/dist/pipeline/orchestrator.js.map +1 -1
  135. package/dist/pipeline/stages/ralplan.d.ts +1 -0
  136. package/dist/pipeline/stages/ralplan.d.ts.map +1 -1
  137. package/dist/pipeline/stages/ralplan.js +14 -5
  138. package/dist/pipeline/stages/ralplan.js.map +1 -1
  139. package/dist/question/__tests__/deep-interview.test.js +160 -2
  140. package/dist/question/__tests__/deep-interview.test.js.map +1 -1
  141. package/dist/question/__tests__/policy.test.js +63 -3
  142. package/dist/question/__tests__/policy.test.js.map +1 -1
  143. package/dist/question/__tests__/renderer.test.js +191 -2
  144. package/dist/question/__tests__/renderer.test.js.map +1 -1
  145. package/dist/question/__tests__/state.test.js +94 -3
  146. package/dist/question/__tests__/state.test.js.map +1 -1
  147. package/dist/question/__tests__/ui.test.js +4 -0
  148. package/dist/question/__tests__/ui.test.js.map +1 -1
  149. package/dist/question/autopilot-wait.d.ts +12 -2
  150. package/dist/question/autopilot-wait.d.ts.map +1 -1
  151. package/dist/question/autopilot-wait.js +158 -47
  152. package/dist/question/autopilot-wait.js.map +1 -1
  153. package/dist/question/deep-interview.d.ts.map +1 -1
  154. package/dist/question/deep-interview.js +22 -6
  155. package/dist/question/deep-interview.js.map +1 -1
  156. package/dist/question/policy.d.ts.map +1 -1
  157. package/dist/question/policy.js +2 -5
  158. package/dist/question/policy.js.map +1 -1
  159. package/dist/question/renderer.d.ts +12 -0
  160. package/dist/question/renderer.d.ts.map +1 -1
  161. package/dist/question/renderer.js +87 -3
  162. package/dist/question/renderer.js.map +1 -1
  163. package/dist/question/state.d.ts +8 -1
  164. package/dist/question/state.d.ts.map +1 -1
  165. package/dist/question/state.js +54 -14
  166. package/dist/question/state.js.map +1 -1
  167. package/dist/question/types.d.ts +1 -1
  168. package/dist/question/types.d.ts.map +1 -1
  169. package/dist/question/ui.d.ts +1 -0
  170. package/dist/question/ui.d.ts.map +1 -1
  171. package/dist/question/ui.js +1 -0
  172. package/dist/question/ui.js.map +1 -1
  173. package/dist/ralplan/__tests__/runtime.test.js +191 -0
  174. package/dist/ralplan/__tests__/runtime.test.js.map +1 -1
  175. package/dist/ralplan/consensus-gate.d.ts +9 -1
  176. package/dist/ralplan/consensus-gate.d.ts.map +1 -1
  177. package/dist/ralplan/consensus-gate.js +84 -2
  178. package/dist/ralplan/consensus-gate.js.map +1 -1
  179. package/dist/ralplan/runtime.d.ts +9 -0
  180. package/dist/ralplan/runtime.d.ts.map +1 -1
  181. package/dist/ralplan/runtime.js +32 -11
  182. package/dist/ralplan/runtime.js.map +1 -1
  183. package/dist/scripts/__tests__/codex-native-hook.test.js +1487 -34
  184. package/dist/scripts/__tests__/codex-native-hook.test.js.map +1 -1
  185. package/dist/scripts/check-version-sync.js +8 -4
  186. package/dist/scripts/check-version-sync.js.map +1 -1
  187. package/dist/scripts/codex-native-hook.d.ts.map +1 -1
  188. package/dist/scripts/codex-native-hook.js +356 -38
  189. package/dist/scripts/codex-native-hook.js.map +1 -1
  190. package/dist/scripts/codex-native-pre-post.d.ts.map +1 -1
  191. package/dist/scripts/codex-native-pre-post.js +79 -1
  192. package/dist/scripts/codex-native-pre-post.js.map +1 -1
  193. package/dist/scripts/hook-payload-guard.d.ts +9 -0
  194. package/dist/scripts/hook-payload-guard.d.ts.map +1 -0
  195. package/dist/scripts/hook-payload-guard.js +111 -0
  196. package/dist/scripts/hook-payload-guard.js.map +1 -0
  197. package/dist/scripts/notify-fallback-watcher.js +8 -1
  198. package/dist/scripts/notify-fallback-watcher.js.map +1 -1
  199. package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts +2 -0
  200. package/dist/scripts/notify-hook/__tests__/payload-guard.test.d.ts.map +1 -0
  201. package/dist/scripts/notify-hook/__tests__/payload-guard.test.js +39 -0
  202. package/dist/scripts/notify-hook/__tests__/payload-guard.test.js.map +1 -0
  203. package/dist/scripts/notify-hook/team-worker-stop.d.ts.map +1 -1
  204. package/dist/scripts/notify-hook/team-worker-stop.js +234 -86
  205. package/dist/scripts/notify-hook/team-worker-stop.js.map +1 -1
  206. package/dist/scripts/notify-hook.js +11 -2
  207. package/dist/scripts/notify-hook.js.map +1 -1
  208. package/dist/state/__tests__/operations.test.js +1012 -1
  209. package/dist/state/__tests__/operations.test.js.map +1 -1
  210. package/dist/state/__tests__/skill-active.test.js +59 -1
  211. package/dist/state/__tests__/skill-active.test.js.map +1 -1
  212. package/dist/state/__tests__/workflow-transition.test.js +73 -7
  213. package/dist/state/__tests__/workflow-transition.test.js.map +1 -1
  214. package/dist/state/operations.d.ts.map +1 -1
  215. package/dist/state/operations.js +102 -0
  216. package/dist/state/operations.js.map +1 -1
  217. package/dist/state/skill-active.d.ts.map +1 -1
  218. package/dist/state/skill-active.js +33 -3
  219. package/dist/state/skill-active.js.map +1 -1
  220. package/dist/state/workflow-transition-reconcile.d.ts +6 -0
  221. package/dist/state/workflow-transition-reconcile.d.ts.map +1 -1
  222. package/dist/state/workflow-transition-reconcile.js +28 -1
  223. package/dist/state/workflow-transition-reconcile.js.map +1 -1
  224. package/dist/state/workflow-transition.d.ts.map +1 -1
  225. package/dist/state/workflow-transition.js +10 -3
  226. package/dist/state/workflow-transition.js.map +1 -1
  227. package/dist/subagents/__tests__/tracker.test.js +139 -0
  228. package/dist/subagents/__tests__/tracker.test.js.map +1 -1
  229. package/dist/subagents/tracker.d.ts +3 -0
  230. package/dist/subagents/tracker.d.ts.map +1 -1
  231. package/dist/subagents/tracker.js +41 -4
  232. package/dist/subagents/tracker.js.map +1 -1
  233. package/dist/team/__tests__/coordination-protocol.test.d.ts +2 -0
  234. package/dist/team/__tests__/coordination-protocol.test.d.ts.map +1 -0
  235. package/dist/team/__tests__/coordination-protocol.test.js +173 -0
  236. package/dist/team/__tests__/coordination-protocol.test.js.map +1 -0
  237. package/dist/team/__tests__/runtime.test.js +51 -2
  238. package/dist/team/__tests__/runtime.test.js.map +1 -1
  239. package/dist/team/__tests__/state.test.js +83 -0
  240. package/dist/team/__tests__/state.test.js.map +1 -1
  241. package/dist/team/__tests__/tmux-session.test.js +45 -0
  242. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  243. package/dist/team/__tests__/worker-bootstrap.test.js +84 -0
  244. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  245. package/dist/team/coordination-protocol.d.ts +14 -0
  246. package/dist/team/coordination-protocol.d.ts.map +1 -0
  247. package/dist/team/coordination-protocol.js +244 -0
  248. package/dist/team/coordination-protocol.js.map +1 -0
  249. package/dist/team/runtime.d.ts +1 -0
  250. package/dist/team/runtime.d.ts.map +1 -1
  251. package/dist/team/runtime.js +19 -3
  252. package/dist/team/runtime.js.map +1 -1
  253. package/dist/team/state/tasks.d.ts.map +1 -1
  254. package/dist/team/state/tasks.js +24 -0
  255. package/dist/team/state/tasks.js.map +1 -1
  256. package/dist/team/state/types.d.ts +21 -1
  257. package/dist/team/state/types.d.ts.map +1 -1
  258. package/dist/team/state/types.js.map +1 -1
  259. package/dist/team/state.d.ts +17 -1
  260. package/dist/team/state.d.ts.map +1 -1
  261. package/dist/team/state.js +12 -5
  262. package/dist/team/state.js.map +1 -1
  263. package/dist/team/team-ops.d.ts +1 -1
  264. package/dist/team/team-ops.d.ts.map +1 -1
  265. package/dist/team/team-ops.js.map +1 -1
  266. package/dist/team/tmux-session.d.ts.map +1 -1
  267. package/dist/team/tmux-session.js +19 -1
  268. package/dist/team/tmux-session.js.map +1 -1
  269. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  270. package/dist/team/worker-bootstrap.js +63 -0
  271. package/dist/team/worker-bootstrap.js.map +1 -1
  272. package/dist/utils/__tests__/agents-model-table.test.js +4 -2
  273. package/dist/utils/__tests__/agents-model-table.test.js.map +1 -1
  274. package/dist/utils/agents-model-table.d.ts.map +1 -1
  275. package/dist/utils/agents-model-table.js +3 -0
  276. package/dist/utils/agents-model-table.js.map +1 -1
  277. package/package.json +1 -1
  278. package/plugins/oh-my-codex/.codex-plugin/plugin.json +1 -1
  279. package/plugins/oh-my-codex/skills/autopilot/SKILL.md +10 -5
  280. package/plugins/oh-my-codex/skills/deep-interview/SKILL.md +9 -4
  281. package/plugins/oh-my-codex/skills/ralplan/SKILL.md +12 -0
  282. package/plugins/oh-my-codex/skills/team/SKILL.md +16 -0
  283. package/plugins/oh-my-codex/skills/worker/SKILL.md +14 -0
  284. package/skills/autopilot/SKILL.md +10 -5
  285. package/skills/deep-interview/SKILL.md +9 -4
  286. package/skills/ralplan/SKILL.md +12 -0
  287. package/skills/team/SKILL.md +16 -0
  288. package/skills/worker/SKILL.md +14 -0
  289. package/src/scripts/__tests__/codex-native-hook.test.ts +2202 -523
  290. package/src/scripts/check-version-sync.ts +8 -4
  291. package/src/scripts/codex-native-hook.ts +444 -36
  292. package/src/scripts/codex-native-pre-post.ts +80 -0
  293. package/src/scripts/hook-payload-guard.ts +113 -0
  294. package/src/scripts/notify-fallback-watcher.ts +8 -1
  295. package/src/scripts/notify-hook/__tests__/payload-guard.test.ts +41 -0
  296. package/src/scripts/notify-hook/team-worker-stop.ts +193 -52
  297. package/src/scripts/notify-hook.ts +14 -2
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAClD,eAAO,MAAM,iCAAiC,SAAU,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,CAAC,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,2BAA2B,IAAI,qBAAqB,CAKnE;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,qBAAqB,CAmEpF;AAED,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAQ3F;AAED,wBAAsB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAM3G;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,uBAAuB,GAC7B,qBAAqB,CAkDvB;AAED,wBAAsB,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAK9H;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,qBAAqB,EAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,sBAAsB,GAAG,IAAI,CA+B/B;AAED,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7D,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAExC"}
1
+ {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,15 @@ export function createSubagentTrackingState() {
13
13
  sessions: {},
14
14
  };
15
15
  }
16
+ export function isTrustedSubagentThread(session, threadId) {
17
+ const normalizedThreadId = threadId.trim();
18
+ if (!session || !normalizedThreadId)
19
+ return false;
20
+ const leaderThreadId = session.leader_thread_id?.trim();
21
+ if (leaderThreadId && leaderThreadId === normalizedThreadId)
22
+ return false;
23
+ return session.threads[normalizedThreadId]?.kind === 'subagent';
24
+ }
16
25
  export function normalizeSubagentTrackingState(input) {
17
26
  const base = createSubagentTrackingState();
18
27
  if (!input || typeof input !== 'object')
@@ -111,11 +120,39 @@ export function recordSubagentTurn(state, input) {
111
120
  updated_at: timestamp,
112
121
  threads: {},
113
122
  };
114
- const leaderThreadId = existingSession.leader_thread_id || threadId;
123
+ const requestedKind = input.kind === 'leader' || input.kind === 'subagent' ? input.kind : undefined;
124
+ const requestedLeaderThreadId = input.leaderThreadId?.trim();
115
125
  const existingThread = existingSession.threads[threadId];
126
+ const existingKind = existingThread?.kind === 'leader' || existingThread?.kind === 'subagent'
127
+ ? existingThread.kind
128
+ : undefined;
129
+ const existingLeaderThreadId = existingSession.leader_thread_id?.trim();
130
+ // `leader_thread_id` is the session's top-level leader boundary. A native
131
+ // subagent can itself be the immediate parent of a nested native role, but
132
+ // that must not reclassify known subagent evidence as the session leader.
133
+ const requestedLeaderThread = requestedLeaderThreadId
134
+ ? existingSession.threads[requestedLeaderThreadId]
135
+ : undefined;
136
+ const requestedLeaderWouldReclassifySubagent = requestedLeaderThread?.kind === 'subagent';
137
+ const requestedSessionLeaderThreadId = requestedLeaderWouldReclassifySubagent
138
+ ? undefined
139
+ : requestedLeaderThreadId;
140
+ const preserveExistingSubagent = existingKind === 'subagent' && requestedKind !== 'subagent';
141
+ const preserveKnownLeader = requestedKind === 'subagent'
142
+ && (existingKind === 'leader' || existingLeaderThreadId === threadId);
143
+ const leaderThreadId = preserveKnownLeader
144
+ ? existingLeaderThreadId || threadId
145
+ : existingLeaderThreadId
146
+ || requestedSessionLeaderThreadId
147
+ || (requestedKind === 'subagent' || preserveExistingSubagent ? undefined : threadId);
148
+ const kind = preserveKnownLeader
149
+ ? 'leader'
150
+ : requestedKind === 'leader' && existingKind === 'subagent'
151
+ ? 'subagent'
152
+ : requestedKind ?? (threadId === leaderThreadId ? 'leader' : existingKind ?? 'subagent');
116
153
  const nextThread = {
117
154
  thread_id: threadId,
118
- kind: threadId === leaderThreadId ? 'leader' : 'subagent',
155
+ kind,
119
156
  first_seen_at: existingThread?.first_seen_at ?? timestamp,
120
157
  last_seen_at: timestamp,
121
158
  turn_count: (existingThread?.turn_count ?? 0) + 1,
@@ -141,7 +178,7 @@ export function recordSubagentTurn(state, input) {
141
178
  }
142
179
  normalized.sessions[sessionId] = {
143
180
  session_id: sessionId,
144
- leader_thread_id: leaderThreadId,
181
+ ...(leaderThreadId ? { leader_thread_id: leaderThreadId } : {}),
145
182
  updated_at: timestamp,
146
183
  threads,
147
184
  };
@@ -165,7 +202,7 @@ export function summarizeSubagentSession(state, sessionId, options = {}) {
165
202
  ? options.now.getTime()
166
203
  : Date.now();
167
204
  const allThreadIds = Object.keys(session.threads).sort();
168
- const allSubagentThreadIds = allThreadIds.filter((threadId) => session.threads[threadId]?.kind === 'subagent');
205
+ const allSubagentThreadIds = allThreadIds.filter((threadId) => isTrustedSubagentThread(session, threadId));
169
206
  const activeSubagentThreadIds = allSubagentThreadIds.filter((threadId) => {
170
207
  const thread = session.threads[threadId];
171
208
  if (!thread)
@@ -1 +1 @@
1
- {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../src/subagents/tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=coordination-protocol.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordination-protocol.test.d.ts","sourceRoot":"","sources":["../../../src/team/__tests__/coordination-protocol.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,173 @@
1
+ import assert from "node:assert/strict";
2
+ import { describe, it } from "node:test";
3
+ import { normalizeTeamTaskCoordinationPlanForStorage, synthesizeCoordinationPlan, synthesizeCoordinationPlans, } from "../coordination-protocol.js";
4
+ function task(overrides) {
5
+ return {
6
+ id: "1",
7
+ subject: "subject",
8
+ description: "description",
9
+ status: "pending",
10
+ created_at: new Date(0).toISOString(),
11
+ ...overrides,
12
+ };
13
+ }
14
+ describe("team coordination protocol gating", () => {
15
+ it("keeps explicit independent fan-out lightweight", () => {
16
+ const plan = synthesizeCoordinationPlan(task({
17
+ subject: "Independent docs sweep",
18
+ description: "Fan-out read-only sweep: each worker checks one separate doc, no shared files and no dependencies.",
19
+ }));
20
+ assert.equal(plan.mode, "lightweight");
21
+ assert.ok(plan.activation_reasons.includes("explicit_independent_fanout"));
22
+ assert.equal(plan.required_mechanisms, undefined);
23
+ });
24
+ it("lets singular no-shared-file/no-dependency wording stay lightweight", () => {
25
+ const plan = synthesizeCoordinationPlan(task({
26
+ subject: "Fixture lane",
27
+ description: "No shared file/no dependency lane.",
28
+ }));
29
+ assert.equal(plan.mode, "lightweight");
30
+ assert.ok(plan.activation_reasons.includes("explicit_independent_fanout"));
31
+ });
32
+ it("lets hyphenated no-shared-file/no-dependency wording stay lightweight", () => {
33
+ const plan = synthesizeCoordinationPlan(task({
34
+ subject: "Fixture lane",
35
+ description: "No-shared-file/no-dependency lane.",
36
+ }));
37
+ assert.equal(plan.mode, "lightweight");
38
+ assert.ok(plan.activation_reasons.includes("explicit_independent_fanout"));
39
+ });
40
+ it("keeps simple narrow tasks lightweight", () => {
41
+ const plan = synthesizeCoordinationPlan(task({
42
+ subject: "Fix typo",
43
+ description: "Fix one typo in README.md",
44
+ }));
45
+ assert.equal(plan.mode, "lightweight");
46
+ assert.ok(plan.activation_reasons.includes("simple_narrow_scope"));
47
+ });
48
+ it("activates coordinated protocol for dependency and handoff work", () => {
49
+ const plan = synthesizeCoordinationPlan(task({
50
+ subject: "Integrate parser and verification lanes",
51
+ description: "Coordinate handoff across shared parser contract and e2e verification.",
52
+ depends_on: ["1"],
53
+ }));
54
+ assert.equal(plan.mode, "coordinated");
55
+ assert.ok(plan.activation_reasons.includes("task_dependencies"));
56
+ assert.ok(plan.activation_reasons.includes("cross_boundary_or_handoff_language"));
57
+ assert.deepEqual(plan.required_mechanisms, [
58
+ "shared_mental_model",
59
+ "closed_loop_communication",
60
+ "mutual_performance_monitoring",
61
+ "backup_behavior",
62
+ "adaptability_checkpoint",
63
+ "team_orientation",
64
+ ]);
65
+ });
66
+ it("activates coordinated protocol for overlapping file paths across sibling tasks", () => {
67
+ const plans = synthesizeCoordinationPlans([
68
+ task({
69
+ subject: "Update parser",
70
+ description: "Implement parser change",
71
+ filePaths: ["src/parser.ts"],
72
+ }),
73
+ task({
74
+ subject: "Update parser tests",
75
+ description: "Add tests",
76
+ filePaths: ["src/parser.ts"],
77
+ }),
78
+ task({
79
+ subject: "Independent docs",
80
+ description: "Fan-out read-only doc check",
81
+ filePaths: ["docs/usage.md"],
82
+ }),
83
+ ]);
84
+ assert.equal(plans[0]?.mode, "coordinated");
85
+ assert.equal(plans[1]?.mode, "coordinated");
86
+ assert.ok(plans[0]?.activation_reasons.includes("shared_file_scope"));
87
+ assert.ok(plans[1]?.activation_reasons.includes("shared_file_scope"));
88
+ assert.equal(plans[2]?.mode, "lightweight");
89
+ });
90
+ it("canonicalizes equivalent file paths before detecting sibling overlap", () => {
91
+ const plans = synthesizeCoordinationPlans([
92
+ task({
93
+ subject: "Update parser",
94
+ description: "Implement parser change",
95
+ filePaths: ["./src/parser.ts"],
96
+ }),
97
+ task({
98
+ subject: "Update parser tests",
99
+ description: "Add tests",
100
+ filePaths: ["src/./parser.ts"],
101
+ }),
102
+ ]);
103
+ assert.equal(plans[0]?.mode, "coordinated");
104
+ assert.equal(plans[1]?.mode, "coordinated");
105
+ assert.ok(plans[0]?.activation_reasons.includes("shared_file_scope"));
106
+ assert.ok(plans[1]?.activation_reasons.includes("shared_file_scope"));
107
+ });
108
+ it("activates coordinated protocol for overlapping domains across sibling tasks", () => {
109
+ const plans = synthesizeCoordinationPlans([
110
+ task({
111
+ subject: "Runtime lane A",
112
+ description: "Implement update",
113
+ domains: ["team-runtime"],
114
+ }),
115
+ task({
116
+ subject: "Runtime lane B",
117
+ description: "Verify update",
118
+ domains: ["team-runtime"],
119
+ }),
120
+ ]);
121
+ assert.equal(plans[0]?.mode, "coordinated");
122
+ assert.equal(plans[1]?.mode, "coordinated");
123
+ assert.ok(plans[0]?.activation_reasons.includes("shared_domain_scope"));
124
+ assert.ok(plans[1]?.activation_reasons.includes("shared_domain_scope"));
125
+ });
126
+ it("activates coordinated protocol for symbolic dependencies before DAG remapping", () => {
127
+ const plan = synthesizeCoordinationPlan(task({
128
+ subject: "Dependent verification",
129
+ description: "Run verification after implementation",
130
+ symbolic_depends_on: ["impl"],
131
+ }));
132
+ assert.equal(plan.mode, "coordinated");
133
+ assert.ok(plan.activation_reasons.includes("task_dependencies"));
134
+ });
135
+ it("treats mixed invalid coordination mechanisms as an untrusted override", () => {
136
+ const plan = normalizeTeamTaskCoordinationPlanForStorage({
137
+ mode: "coordinated",
138
+ activation_reasons: [
139
+ " cross_boundary_or_handoff_language ",
140
+ "cross_boundary_or_handoff_language",
141
+ ],
142
+ required_mechanisms: ["closed_loop_communication", "bogus-mechanism"],
143
+ });
144
+ assert.deepEqual(plan, {
145
+ mode: "coordinated",
146
+ activation_reasons: ["cross_boundary_or_handoff_language"],
147
+ required_mechanisms: [
148
+ "shared_mental_model",
149
+ "closed_loop_communication",
150
+ "mutual_performance_monitoring",
151
+ "backup_behavior",
152
+ "adaptability_checkpoint",
153
+ "team_orientation",
154
+ ],
155
+ });
156
+ });
157
+ it("falls back to the full mechanism checklist when metadata has no valid mechanisms", () => {
158
+ const plan = normalizeTeamTaskCoordinationPlanForStorage({
159
+ mode: "coordinated",
160
+ activation_reasons: ["cross_boundary_or_handoff_language"],
161
+ required_mechanisms: ["bogus-mechanism"],
162
+ });
163
+ assert.deepEqual(plan?.required_mechanisms, [
164
+ "shared_mental_model",
165
+ "closed_loop_communication",
166
+ "mutual_performance_monitoring",
167
+ "backup_behavior",
168
+ "adaptability_checkpoint",
169
+ "team_orientation",
170
+ ]);
171
+ });
172
+ });
173
+ //# sourceMappingURL=coordination-protocol.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coordination-protocol.test.js","sourceRoot":"","sources":["../../../src/team/__tests__/coordination-protocol.test.ts"],"names":[],"mappings":"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"}
@@ -5544,11 +5544,13 @@ esac
5544
5544
  await writeFakePromptWorkerBinary(fakeCodexPath, `setTimeout(() => {}, 5000);`);
5545
5545
  let runtime = null;
5546
5546
  try {
5547
- runtime = await withPromptModeCodexEnv(binDir, {}, () => withoutTeamWorkerEnv(() => startTeam('team-delegation-persist', 'delegation persistence test', 'executor', 1, [{ subject: 'Investigate runtime assignment', description: 'Search runtime and debug assignTask behavior' }], cwd)));
5547
+ runtime = await withPromptModeCodexEnv(binDir, {}, () => withoutTeamWorkerEnv(() => startTeam('team-delegation-persist', 'delegation persistence test', 'executor', 1, [{ subject: 'Investigate runtime assignment', description: 'Search runtime, debug assignTask behavior, and coordinate shared handoff boundaries' }], cwd)));
5548
5548
  const task = await readTask(runtime.teamName, '1', cwd);
5549
5549
  assert.equal(task?.delegation?.mode, 'auto');
5550
5550
  assert.equal(task?.delegation?.child_model, 'gpt-5.4-mini');
5551
5551
  assert.equal(task?.delegation?.required_parallel_probe, true);
5552
+ assert.equal(task?.coordination?.mode, 'coordinated');
5553
+ assert.ok(task?.coordination?.activation_reasons.includes('cross_boundary_or_handoff_language'));
5552
5554
  }
5553
5555
  finally {
5554
5556
  if (runtime) {
@@ -5881,12 +5883,27 @@ esac
5881
5883
  assert.ok(config);
5882
5884
  config.worker_launch_mode = 'prompt';
5883
5885
  await saveTeamConfig(config, cwd);
5884
- const task = await createTask('team-assign-delegation', { subject: 'Investigate follow-up assignment', description: 'Search repo and debug follow-up assignment behavior', status: 'pending' }, cwd);
5886
+ const task = await createTask('team-assign-delegation', {
5887
+ subject: 'Investigate follow-up assignment',
5888
+ description: 'Search repo and debug follow-up assignment behavior.',
5889
+ status: 'pending',
5890
+ filePaths: ['src/team/runtime.ts'],
5891
+ coordination: { mode: 'coordinated', activation_reasons: ['stale_snapshot_before_assignment'] },
5892
+ }, cwd);
5893
+ await createTask('team-assign-delegation', {
5894
+ subject: 'Sibling runtime verification',
5895
+ description: 'Verify the same runtime path.',
5896
+ status: 'pending',
5897
+ filePaths: ['src/team/runtime.ts'],
5898
+ }, cwd);
5885
5899
  await writeWorkerInbox('team-assign-delegation', 'worker-1', 'existing inbox', cwd);
5886
5900
  await assert.rejects(() => assignTask('team-assign-delegation', 'worker-1', task.id, cwd), /worker_notify_failed/);
5887
5901
  const reread = await readTask('team-assign-delegation', task.id, cwd);
5888
5902
  assert.equal(reread?.delegation?.mode, 'auto');
5889
5903
  assert.equal(reread?.delegation?.child_model, 'gpt-5.4-mini');
5904
+ assert.equal(reread?.coordination?.mode, 'coordinated');
5905
+ assert.ok(reread?.coordination?.activation_reasons.includes('shared_file_scope'));
5906
+ assert.equal(reread?.coordination?.activation_reasons.includes('stale_snapshot_before_assignment'), false);
5890
5907
  const inbox = await readFile(join(cwd, '.omx', 'state', 'team', 'team-assign-delegation', 'workers', 'worker-1', 'inbox.md'), 'utf-8');
5891
5908
  assert.match(inbox, /Assignment Cancelled/);
5892
5909
  assert.match(inbox, /worker_notify_failed/);
@@ -5895,6 +5912,38 @@ esac
5895
5912
  await rm(cwd, { recursive: true, force: true });
5896
5913
  }
5897
5914
  });
5915
+ it('assignTask preserves explicitly authored coordination metadata', async () => {
5916
+ const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-'));
5917
+ try {
5918
+ await initTeamState('team-assign-explicit', 'assignment explicit coordination test', 'executor', 1, cwd);
5919
+ const config = await readTeamConfig('team-assign-explicit', cwd);
5920
+ assert.ok(config);
5921
+ config.worker_launch_mode = 'prompt';
5922
+ await saveTeamConfig(config, cwd);
5923
+ const task = await createTask('team-assign-explicit', {
5924
+ subject: 'Explicit coordination lane',
5925
+ description: 'Preserve the caller-authored coordination plan.',
5926
+ status: 'pending',
5927
+ filePaths: ['src/team/runtime.ts'],
5928
+ coordination: { mode: 'coordinated', activation_reasons: ['caller_authored_boundary'], source: 'explicit' },
5929
+ }, cwd);
5930
+ await createTask('team-assign-explicit', {
5931
+ subject: 'Sibling runtime verification',
5932
+ description: 'Verify the same runtime path.',
5933
+ status: 'pending',
5934
+ filePaths: ['./src/team/runtime.ts'],
5935
+ }, cwd);
5936
+ await writeWorkerInbox('team-assign-explicit', 'worker-1', 'existing inbox', cwd);
5937
+ await assert.rejects(() => assignTask('team-assign-explicit', 'worker-1', task.id, cwd), /worker_notify_failed/);
5938
+ const reread = await readTask('team-assign-explicit', task.id, cwd);
5939
+ assert.equal(reread?.coordination?.source, 'explicit');
5940
+ assert.deepEqual(reread?.coordination?.activation_reasons, ['caller_authored_boundary']);
5941
+ assert.equal(reread?.coordination?.activation_reasons.includes('shared_file_scope'), false);
5942
+ }
5943
+ finally {
5944
+ await rm(cwd, { recursive: true, force: true });
5945
+ }
5946
+ });
5898
5947
  it('assignTask injects approved handoff context when the persisted approved binding remains ready', async () => {
5899
5948
  const cwd = await mkdtemp(join(tmpdir(), 'omx-runtime-approved-followup-'));
5900
5949
  const approvedTask = 'Execute approved issue 1320 plan';