claudecode-omc 4.8.3 → 4.9.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 (1672) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +3 -3
  3. package/README.de.md +26 -0
  4. package/README.es.md +26 -0
  5. package/README.fr.md +26 -0
  6. package/README.it.md +26 -0
  7. package/README.ja.md +26 -0
  8. package/README.ko.md +26 -0
  9. package/README.md +80 -133
  10. package/README.pt.md +26 -0
  11. package/README.ru.md +26 -0
  12. package/README.tr.md +26 -0
  13. package/README.vi.md +26 -0
  14. package/README.zh.md +26 -0
  15. package/agents/analyst.md +1 -0
  16. package/agents/architect.md +1 -0
  17. package/agents/code-reviewer.md +1 -0
  18. package/agents/code-simplifier.md +1 -0
  19. package/agents/critic.md +1 -0
  20. package/agents/debugger.md +1 -0
  21. package/agents/designer.md +1 -0
  22. package/agents/document-specialist.md +1 -0
  23. package/agents/executor.md +1 -0
  24. package/agents/explore.md +21 -19
  25. package/agents/git-master.md +1 -0
  26. package/agents/planner.md +1 -0
  27. package/agents/qa-tester.md +1 -0
  28. package/agents/scientist.md +1 -0
  29. package/agents/security-reviewer.md +1 -0
  30. package/agents/test-engineer.md +1 -0
  31. package/agents/tracer.md +161 -0
  32. package/agents/verifier.md +21 -13
  33. package/agents/writer.md +1 -0
  34. package/bridge/cli.cjs +37704 -25194
  35. package/bridge/gyoshu_bridge.py +60 -15
  36. package/bridge/mcp-server.cjs +1323 -503
  37. package/bridge/runtime-cli.cjs +1220 -328
  38. package/bridge/team-bridge.cjs +140 -112
  39. package/bridge/team-mcp.cjs +325 -107
  40. package/bridge/team.js +2572 -1462
  41. package/dist/__tests__/agent-registry.test.js +5 -3
  42. package/dist/__tests__/agent-registry.test.js.map +1 -1
  43. package/dist/__tests__/auto-slash-aliases.test.js +149 -68
  44. package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
  45. package/dist/__tests__/auto-update.test.js +502 -3
  46. package/dist/__tests__/auto-update.test.js.map +1 -1
  47. package/dist/__tests__/background-cleanup-directory.test.d.ts +2 -0
  48. package/dist/__tests__/background-cleanup-directory.test.d.ts.map +1 -0
  49. package/dist/__tests__/background-cleanup-directory.test.js +57 -0
  50. package/dist/__tests__/background-cleanup-directory.test.js.map +1 -0
  51. package/dist/__tests__/bedrock-lm-suffix-hook.test.d.ts +24 -0
  52. package/dist/__tests__/bedrock-lm-suffix-hook.test.d.ts.map +1 -0
  53. package/dist/__tests__/bedrock-lm-suffix-hook.test.js +210 -0
  54. package/dist/__tests__/bedrock-lm-suffix-hook.test.js.map +1 -0
  55. package/dist/__tests__/cleanup-validation.test.js +5 -3
  56. package/dist/__tests__/cleanup-validation.test.js.map +1 -1
  57. package/dist/__tests__/consolidation-contracts.test.js +1 -2
  58. package/dist/__tests__/consolidation-contracts.test.js.map +1 -1
  59. package/dist/__tests__/context-guard-stop.test.js +20 -0
  60. package/dist/__tests__/context-guard-stop.test.js.map +1 -1
  61. package/dist/__tests__/context-safety.test.js +51 -22
  62. package/dist/__tests__/context-safety.test.js.map +1 -1
  63. package/dist/__tests__/deep-interview-provider-options.test.d.ts +2 -0
  64. package/dist/__tests__/deep-interview-provider-options.test.d.ts.map +1 -0
  65. package/dist/__tests__/deep-interview-provider-options.test.js +79 -0
  66. package/dist/__tests__/deep-interview-provider-options.test.js.map +1 -0
  67. package/dist/__tests__/delegation-enforcement-levels.test.js +4 -0
  68. package/dist/__tests__/delegation-enforcement-levels.test.js.map +1 -1
  69. package/dist/__tests__/delegation-enforcer.test.js +12 -0
  70. package/dist/__tests__/delegation-enforcer.test.js.map +1 -1
  71. package/dist/__tests__/doctor-conflicts.test.js +111 -24
  72. package/dist/__tests__/doctor-conflicts.test.js.map +1 -1
  73. package/dist/__tests__/featured-contributors-generator.test.d.ts +2 -0
  74. package/dist/__tests__/featured-contributors-generator.test.d.ts.map +1 -0
  75. package/dist/__tests__/featured-contributors-generator.test.js +118 -0
  76. package/dist/__tests__/featured-contributors-generator.test.js.map +1 -0
  77. package/dist/__tests__/hooks/learner/bridge.test.js +27 -1
  78. package/dist/__tests__/hooks/learner/bridge.test.js.map +1 -1
  79. package/dist/__tests__/hooks/learner/transliteration-map.test.d.ts +8 -0
  80. package/dist/__tests__/hooks/learner/transliteration-map.test.d.ts.map +1 -0
  81. package/dist/__tests__/hooks/learner/transliteration-map.test.js +183 -0
  82. package/dist/__tests__/hooks/learner/transliteration-map.test.js.map +1 -0
  83. package/dist/__tests__/hooks-command-escaping.test.d.ts +2 -0
  84. package/dist/__tests__/hooks-command-escaping.test.d.ts.map +1 -0
  85. package/dist/__tests__/hooks-command-escaping.test.js +41 -0
  86. package/dist/__tests__/hooks-command-escaping.test.js.map +1 -0
  87. package/dist/__tests__/hooks.test.js +13 -9
  88. package/dist/__tests__/hooks.test.js.map +1 -1
  89. package/dist/__tests__/hud/background-tasks.test.d.ts +2 -0
  90. package/dist/__tests__/hud/background-tasks.test.d.ts.map +1 -0
  91. package/dist/__tests__/hud/background-tasks.test.js +90 -0
  92. package/dist/__tests__/hud/background-tasks.test.js.map +1 -0
  93. package/dist/__tests__/hud/context.test.d.ts +2 -0
  94. package/dist/__tests__/hud/context.test.d.ts.map +1 -0
  95. package/dist/__tests__/hud/context.test.js +47 -0
  96. package/dist/__tests__/hud/context.test.js.map +1 -0
  97. package/dist/__tests__/hud/defaults.test.js +11 -0
  98. package/dist/__tests__/hud/defaults.test.js.map +1 -1
  99. package/dist/__tests__/hud/git.test.js +2 -1
  100. package/dist/__tests__/hud/git.test.js.map +1 -1
  101. package/dist/__tests__/hud/mission-board-state.test.js +32 -0
  102. package/dist/__tests__/hud/mission-board-state.test.js.map +1 -1
  103. package/dist/__tests__/hud/mission-board.test.js +1 -0
  104. package/dist/__tests__/hud/mission-board.test.js.map +1 -1
  105. package/dist/__tests__/hud/omc-state.test.d.ts +2 -0
  106. package/dist/__tests__/hud/omc-state.test.d.ts.map +1 -0
  107. package/dist/__tests__/hud/omc-state.test.js +123 -0
  108. package/dist/__tests__/hud/omc-state.test.js.map +1 -0
  109. package/dist/__tests__/hud/render-rate-limits-priority.test.js +1 -0
  110. package/dist/__tests__/hud/render-rate-limits-priority.test.js.map +1 -1
  111. package/dist/__tests__/hud/render.test.js +125 -0
  112. package/dist/__tests__/hud/render.test.js.map +1 -1
  113. package/dist/__tests__/hud/state.test.js +104 -47
  114. package/dist/__tests__/hud/state.test.js.map +1 -1
  115. package/dist/__tests__/hud/stdin.test.d.ts +2 -0
  116. package/dist/__tests__/hud/stdin.test.d.ts.map +1 -0
  117. package/dist/__tests__/hud/stdin.test.js +108 -0
  118. package/dist/__tests__/hud/stdin.test.js.map +1 -0
  119. package/dist/__tests__/hud/token-usage.test.d.ts +2 -0
  120. package/dist/__tests__/hud/token-usage.test.d.ts.map +1 -0
  121. package/dist/__tests__/hud/token-usage.test.js +143 -0
  122. package/dist/__tests__/hud/token-usage.test.js.map +1 -0
  123. package/dist/__tests__/hud/usage-api-lock.test.js +6 -3
  124. package/dist/__tests__/hud/usage-api-lock.test.js.map +1 -1
  125. package/dist/__tests__/hud/usage-api-stale.test.js +4 -2
  126. package/dist/__tests__/hud/usage-api-stale.test.js.map +1 -1
  127. package/dist/__tests__/hud/usage-api.test.js +128 -1
  128. package/dist/__tests__/hud/usage-api.test.js.map +1 -1
  129. package/dist/__tests__/hud/version-display.test.js +1 -0
  130. package/dist/__tests__/hud/version-display.test.js.map +1 -1
  131. package/dist/__tests__/hud/watch-mode-init.test.js +25 -3
  132. package/dist/__tests__/hud/watch-mode-init.test.js.map +1 -1
  133. package/dist/__tests__/hud-marketplace-resolution.test.js +25 -0
  134. package/dist/__tests__/hud-marketplace-resolution.test.js.map +1 -1
  135. package/dist/__tests__/hud-windows.test.js +11 -0
  136. package/dist/__tests__/hud-windows.test.js.map +1 -1
  137. package/dist/__tests__/installer-mcp-config.test.d.ts +2 -0
  138. package/dist/__tests__/installer-mcp-config.test.d.ts.map +1 -0
  139. package/dist/__tests__/installer-mcp-config.test.js +119 -0
  140. package/dist/__tests__/installer-mcp-config.test.js.map +1 -0
  141. package/dist/__tests__/installer-omc-reference.test.d.ts +2 -0
  142. package/dist/__tests__/installer-omc-reference.test.d.ts.map +1 -0
  143. package/dist/__tests__/installer-omc-reference.test.js +85 -0
  144. package/dist/__tests__/installer-omc-reference.test.js.map +1 -0
  145. package/dist/__tests__/job-management-sqlite.test.js +1 -1
  146. package/dist/__tests__/job-state-db.test.js +1 -1
  147. package/dist/__tests__/jobid-collision-safety.test.d.ts +10 -0
  148. package/dist/__tests__/jobid-collision-safety.test.d.ts.map +1 -0
  149. package/dist/__tests__/jobid-collision-safety.test.js +51 -0
  150. package/dist/__tests__/jobid-collision-safety.test.js.map +1 -0
  151. package/dist/__tests__/live-data.test.js +21 -0
  152. package/dist/__tests__/live-data.test.js.map +1 -1
  153. package/dist/__tests__/load-agent-prompt.test.js +10 -0
  154. package/dist/__tests__/load-agent-prompt.test.js.map +1 -1
  155. package/dist/__tests__/lsp-servers.test.js +14 -2
  156. package/dist/__tests__/lsp-servers.test.js.map +1 -1
  157. package/dist/__tests__/marketplace-metadata.test.d.ts +2 -0
  158. package/dist/__tests__/marketplace-metadata.test.d.ts.map +1 -0
  159. package/dist/__tests__/marketplace-metadata.test.js +20 -0
  160. package/dist/__tests__/marketplace-metadata.test.js.map +1 -0
  161. package/dist/__tests__/mcp-comm-inbox-dedup.test.d.ts +2 -0
  162. package/dist/__tests__/mcp-comm-inbox-dedup.test.d.ts.map +1 -0
  163. package/dist/__tests__/mcp-comm-inbox-dedup.test.js +105 -0
  164. package/dist/__tests__/mcp-comm-inbox-dedup.test.js.map +1 -0
  165. package/dist/__tests__/mnemosyne/finder.test.js +10 -0
  166. package/dist/__tests__/mnemosyne/finder.test.js.map +1 -1
  167. package/dist/__tests__/mode-names-ralplan.test.d.ts +2 -0
  168. package/dist/__tests__/mode-names-ralplan.test.d.ts.map +1 -0
  169. package/dist/__tests__/mode-names-ralplan.test.js +31 -0
  170. package/dist/__tests__/mode-names-ralplan.test.js.map +1 -0
  171. package/dist/__tests__/model-routing-esm.test.d.ts +2 -0
  172. package/dist/__tests__/model-routing-esm.test.d.ts.map +1 -0
  173. package/dist/__tests__/model-routing-esm.test.js +26 -0
  174. package/dist/__tests__/model-routing-esm.test.js.map +1 -0
  175. package/dist/__tests__/notepad.test.js +20 -0
  176. package/dist/__tests__/notepad.test.js.map +1 -1
  177. package/dist/__tests__/omc-cli-rendering.test.d.ts +2 -0
  178. package/dist/__tests__/omc-cli-rendering.test.d.ts.map +1 -0
  179. package/dist/__tests__/omc-cli-rendering.test.js +33 -0
  180. package/dist/__tests__/omc-cli-rendering.test.js.map +1 -0
  181. package/dist/__tests__/omc-tools-server.test.js +5 -5
  182. package/dist/__tests__/outbox-reader-partial-lines.test.d.ts +2 -0
  183. package/dist/__tests__/outbox-reader-partial-lines.test.d.ts.map +1 -0
  184. package/dist/__tests__/outbox-reader-partial-lines.test.js +49 -0
  185. package/dist/__tests__/outbox-reader-partial-lines.test.js.map +1 -0
  186. package/dist/__tests__/package-dir-resolution-regression.test.js +30 -0
  187. package/dist/__tests__/package-dir-resolution-regression.test.js.map +1 -1
  188. package/dist/__tests__/pipeline-signal-regex-escape.test.d.ts +2 -0
  189. package/dist/__tests__/pipeline-signal-regex-escape.test.d.ts.map +1 -0
  190. package/dist/__tests__/pipeline-signal-regex-escape.test.js +32 -0
  191. package/dist/__tests__/pipeline-signal-regex-escape.test.js.map +1 -0
  192. package/dist/__tests__/plugin-setup-devpaths.test.d.ts +2 -0
  193. package/dist/__tests__/plugin-setup-devpaths.test.d.ts.map +1 -0
  194. package/dist/__tests__/plugin-setup-devpaths.test.js +47 -0
  195. package/dist/__tests__/plugin-setup-devpaths.test.js.map +1 -0
  196. package/dist/__tests__/pre-compact-cwd.test.js +1 -1
  197. package/dist/__tests__/pre-tool-enforcer.test.js +101 -2
  198. package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -1
  199. package/dist/__tests__/project-memory-merge.test.js +17 -0
  200. package/dist/__tests__/project-memory-merge.test.js.map +1 -1
  201. package/dist/__tests__/providers/bitbucket.test.js +70 -56
  202. package/dist/__tests__/providers/bitbucket.test.js.map +1 -1
  203. package/dist/__tests__/providers/gitea.test.js +36 -0
  204. package/dist/__tests__/providers/gitea.test.js.map +1 -1
  205. package/dist/__tests__/purge-stale-cache.test.js +17 -2
  206. package/dist/__tests__/purge-stale-cache.test.js.map +1 -1
  207. package/dist/__tests__/rate-limit-wait/daemon-bootstrap.test.js +7 -3
  208. package/dist/__tests__/rate-limit-wait/daemon-bootstrap.test.js.map +1 -1
  209. package/dist/__tests__/rate-limit-wait/integration.test.js +9 -5
  210. package/dist/__tests__/rate-limit-wait/integration.test.js.map +1 -1
  211. package/dist/__tests__/rate-limit-wait/tmux-detector.test.js +11 -11
  212. package/dist/__tests__/rate-limit-wait/tmux-detector.test.js.map +1 -1
  213. package/dist/__tests__/repo-slug-dots.test.d.ts +2 -0
  214. package/dist/__tests__/repo-slug-dots.test.d.ts.map +1 -0
  215. package/dist/__tests__/repo-slug-dots.test.js +24 -0
  216. package/dist/__tests__/repo-slug-dots.test.js.map +1 -0
  217. package/dist/__tests__/routing-force-inherit.test.js +31 -0
  218. package/dist/__tests__/routing-force-inherit.test.js.map +1 -1
  219. package/dist/__tests__/runtime-task-orphan.test.d.ts +2 -0
  220. package/dist/__tests__/runtime-task-orphan.test.d.ts.map +1 -0
  221. package/dist/__tests__/runtime-task-orphan.test.js +103 -0
  222. package/dist/__tests__/runtime-task-orphan.test.js.map +1 -0
  223. package/dist/__tests__/session-start-script-context.test.js +85 -0
  224. package/dist/__tests__/session-start-script-context.test.js.map +1 -1
  225. package/dist/__tests__/session-start-timeout-cleanup.test.d.ts +2 -0
  226. package/dist/__tests__/session-start-timeout-cleanup.test.d.ts.map +1 -0
  227. package/dist/__tests__/session-start-timeout-cleanup.test.js +26 -0
  228. package/dist/__tests__/session-start-timeout-cleanup.test.js.map +1 -0
  229. package/dist/__tests__/session-summary-pid-tracking.test.d.ts +2 -0
  230. package/dist/__tests__/session-summary-pid-tracking.test.d.ts.map +1 -0
  231. package/dist/__tests__/session-summary-pid-tracking.test.js +107 -0
  232. package/dist/__tests__/session-summary-pid-tracking.test.js.map +1 -0
  233. package/dist/__tests__/setup-claude-md-script.test.d.ts +2 -0
  234. package/dist/__tests__/setup-claude-md-script.test.d.ts.map +1 -0
  235. package/dist/__tests__/setup-claude-md-script.test.js +292 -0
  236. package/dist/__tests__/setup-claude-md-script.test.js.map +1 -0
  237. package/dist/__tests__/shared-state-locking.test.d.ts +10 -0
  238. package/dist/__tests__/shared-state-locking.test.d.ts.map +1 -0
  239. package/dist/__tests__/shared-state-locking.test.js +61 -0
  240. package/dist/__tests__/shared-state-locking.test.js.map +1 -0
  241. package/dist/__tests__/skills.test.js +135 -7
  242. package/dist/__tests__/skills.test.js.map +1 -1
  243. package/dist/__tests__/slack-fallback-removal.test.d.ts +2 -0
  244. package/dist/__tests__/slack-fallback-removal.test.d.ts.map +1 -0
  245. package/dist/__tests__/slack-fallback-removal.test.js +16 -0
  246. package/dist/__tests__/slack-fallback-removal.test.js.map +1 -0
  247. package/dist/__tests__/ssrf-guard.test.js +12 -0
  248. package/dist/__tests__/ssrf-guard.test.js.map +1 -1
  249. package/dist/__tests__/team-ops-task-locking.test.d.ts +2 -0
  250. package/dist/__tests__/team-ops-task-locking.test.d.ts.map +1 -0
  251. package/dist/__tests__/team-ops-task-locking.test.js +66 -0
  252. package/dist/__tests__/team-ops-task-locking.test.js.map +1 -0
  253. package/dist/__tests__/team-server-validation.test.js +6 -5
  254. package/dist/__tests__/team-server-validation.test.js.map +1 -1
  255. package/dist/__tests__/team-status-failed-count.test.d.ts +2 -0
  256. package/dist/__tests__/team-status-failed-count.test.d.ts.map +1 -0
  257. package/dist/__tests__/team-status-failed-count.test.js +91 -0
  258. package/dist/__tests__/team-status-failed-count.test.js.map +1 -0
  259. package/dist/__tests__/team-status-tmux-provider.test.d.ts +2 -0
  260. package/dist/__tests__/team-status-tmux-provider.test.d.ts.map +1 -0
  261. package/dist/__tests__/team-status-tmux-provider.test.js +39 -0
  262. package/dist/__tests__/team-status-tmux-provider.test.js.map +1 -0
  263. package/dist/__tests__/tier0-docs-consistency.test.js +42 -0
  264. package/dist/__tests__/tier0-docs-consistency.test.js.map +1 -1
  265. package/dist/__tests__/tools/ast-tools.test.d.ts +2 -0
  266. package/dist/__tests__/tools/ast-tools.test.d.ts.map +1 -0
  267. package/dist/__tests__/tools/ast-tools.test.js +74 -0
  268. package/dist/__tests__/tools/ast-tools.test.js.map +1 -0
  269. package/dist/__tests__/visual-verdict-skill.test.d.ts +2 -0
  270. package/dist/__tests__/visual-verdict-skill.test.d.ts.map +1 -0
  271. package/dist/__tests__/visual-verdict-skill.test.js +26 -0
  272. package/dist/__tests__/visual-verdict-skill.test.js.map +1 -0
  273. package/dist/__tests__/webhook-timeout-cleanup.test.d.ts +2 -0
  274. package/dist/__tests__/webhook-timeout-cleanup.test.d.ts.map +1 -0
  275. package/dist/__tests__/webhook-timeout-cleanup.test.js +18 -0
  276. package/dist/__tests__/webhook-timeout-cleanup.test.js.map +1 -0
  277. package/dist/__tests__/worktree-metadata-locking.test.d.ts +2 -0
  278. package/dist/__tests__/worktree-metadata-locking.test.d.ts.map +1 -0
  279. package/dist/__tests__/worktree-metadata-locking.test.js +51 -0
  280. package/dist/__tests__/worktree-metadata-locking.test.js.map +1 -0
  281. package/dist/agents/definitions.d.ts +2 -1
  282. package/dist/agents/definitions.d.ts.map +1 -1
  283. package/dist/agents/definitions.js +6 -1
  284. package/dist/agents/definitions.js.map +1 -1
  285. package/dist/agents/index.d.ts +1 -0
  286. package/dist/agents/index.d.ts.map +1 -1
  287. package/dist/agents/index.js +1 -0
  288. package/dist/agents/index.js.map +1 -1
  289. package/dist/agents/tracer.d.ts +11 -0
  290. package/dist/agents/tracer.d.ts.map +1 -0
  291. package/dist/agents/tracer.js +40 -0
  292. package/dist/agents/tracer.js.map +1 -0
  293. package/dist/agents/utils.d.ts.map +1 -1
  294. package/dist/agents/utils.js +2 -0
  295. package/dist/agents/utils.js.map +1 -1
  296. package/dist/autoresearch/__tests__/contracts.test.d.ts +2 -0
  297. package/dist/autoresearch/__tests__/contracts.test.d.ts.map +1 -0
  298. package/dist/autoresearch/__tests__/contracts.test.js +90 -0
  299. package/dist/autoresearch/__tests__/contracts.test.js.map +1 -0
  300. package/dist/autoresearch/__tests__/runtime-parity-extra.test.d.ts +2 -0
  301. package/dist/autoresearch/__tests__/runtime-parity-extra.test.d.ts.map +1 -0
  302. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js +352 -0
  303. package/dist/autoresearch/__tests__/runtime-parity-extra.test.js.map +1 -0
  304. package/dist/autoresearch/__tests__/runtime.test.d.ts +2 -0
  305. package/dist/autoresearch/__tests__/runtime.test.d.ts.map +1 -0
  306. package/dist/autoresearch/__tests__/runtime.test.js +210 -0
  307. package/dist/autoresearch/__tests__/runtime.test.js.map +1 -0
  308. package/dist/autoresearch/__tests__/setup-contract.test.d.ts +2 -0
  309. package/dist/autoresearch/__tests__/setup-contract.test.d.ts.map +1 -0
  310. package/dist/autoresearch/__tests__/setup-contract.test.js +57 -0
  311. package/dist/autoresearch/__tests__/setup-contract.test.js.map +1 -0
  312. package/dist/autoresearch/contracts.d.ts +31 -0
  313. package/dist/autoresearch/contracts.d.ts.map +1 -0
  314. package/dist/autoresearch/contracts.js +189 -0
  315. package/dist/autoresearch/contracts.js.map +1 -0
  316. package/dist/autoresearch/runtime.d.ts +137 -0
  317. package/dist/autoresearch/runtime.d.ts.map +1 -0
  318. package/dist/autoresearch/runtime.js +1103 -0
  319. package/dist/autoresearch/runtime.js.map +1 -0
  320. package/dist/autoresearch/setup-contract.d.ts +18 -0
  321. package/dist/autoresearch/setup-contract.d.ts.map +1 -0
  322. package/dist/autoresearch/setup-contract.js +96 -0
  323. package/dist/autoresearch/setup-contract.js.map +1 -0
  324. package/dist/cli/__tests__/ask.test.js +32 -130
  325. package/dist/cli/__tests__/ask.test.js.map +1 -1
  326. package/dist/cli/__tests__/autoresearch-guided.test.d.ts +2 -0
  327. package/dist/cli/__tests__/autoresearch-guided.test.d.ts.map +1 -0
  328. package/dist/cli/__tests__/autoresearch-guided.test.js +389 -0
  329. package/dist/cli/__tests__/autoresearch-guided.test.js.map +1 -0
  330. package/dist/cli/__tests__/autoresearch-intake.test.d.ts +2 -0
  331. package/dist/cli/__tests__/autoresearch-intake.test.d.ts.map +1 -0
  332. package/dist/cli/__tests__/autoresearch-intake.test.js +131 -0
  333. package/dist/cli/__tests__/autoresearch-intake.test.js.map +1 -0
  334. package/dist/cli/__tests__/autoresearch-setup-session.test.d.ts +2 -0
  335. package/dist/cli/__tests__/autoresearch-setup-session.test.d.ts.map +1 -0
  336. package/dist/cli/__tests__/autoresearch-setup-session.test.js +73 -0
  337. package/dist/cli/__tests__/autoresearch-setup-session.test.js.map +1 -0
  338. package/dist/cli/__tests__/autoresearch.test.d.ts +2 -0
  339. package/dist/cli/__tests__/autoresearch.test.d.ts.map +1 -0
  340. package/dist/cli/__tests__/autoresearch.test.js +148 -0
  341. package/dist/cli/__tests__/autoresearch.test.js.map +1 -0
  342. package/dist/cli/__tests__/hud-watch.test.d.ts +2 -0
  343. package/dist/cli/__tests__/hud-watch.test.d.ts.map +1 -0
  344. package/dist/cli/__tests__/hud-watch.test.js +56 -0
  345. package/dist/cli/__tests__/hud-watch.test.js.map +1 -0
  346. package/dist/cli/__tests__/launch.test.js +82 -5
  347. package/dist/cli/__tests__/launch.test.js.map +1 -1
  348. package/dist/cli/__tests__/team.test.js +44 -2
  349. package/dist/cli/__tests__/team.test.js.map +1 -1
  350. package/dist/cli/__tests__/tmux-utils.test.js +41 -1
  351. package/dist/cli/__tests__/tmux-utils.test.js.map +1 -1
  352. package/dist/cli/autoresearch-guided.d.ts +37 -0
  353. package/dist/cli/autoresearch-guided.d.ts.map +1 -0
  354. package/dist/cli/autoresearch-guided.js +312 -0
  355. package/dist/cli/autoresearch-guided.js.map +1 -0
  356. package/dist/cli/autoresearch-intake.d.ts +60 -0
  357. package/dist/cli/autoresearch-intake.d.ts.map +1 -0
  358. package/dist/cli/autoresearch-intake.js +325 -0
  359. package/dist/cli/autoresearch-intake.js.map +1 -0
  360. package/dist/cli/autoresearch-setup-session.d.ts +15 -0
  361. package/dist/cli/autoresearch-setup-session.d.ts.map +1 -0
  362. package/dist/cli/autoresearch-setup-session.js +133 -0
  363. package/dist/cli/autoresearch-setup-session.js.map +1 -0
  364. package/dist/cli/autoresearch.d.ts +19 -0
  365. package/dist/cli/autoresearch.d.ts.map +1 -0
  366. package/dist/cli/autoresearch.js +330 -0
  367. package/dist/cli/autoresearch.js.map +1 -0
  368. package/dist/cli/commands/__tests__/team.test.js +88 -1
  369. package/dist/cli/commands/__tests__/team.test.js.map +1 -1
  370. package/dist/cli/commands/doctor-conflicts.d.ts +2 -0
  371. package/dist/cli/commands/doctor-conflicts.d.ts.map +1 -1
  372. package/dist/cli/commands/doctor-conflicts.js +44 -1
  373. package/dist/cli/commands/doctor-conflicts.js.map +1 -1
  374. package/dist/cli/commands/ralphthon.d.ts +30 -0
  375. package/dist/cli/commands/ralphthon.d.ts.map +1 -0
  376. package/dist/cli/commands/ralphthon.js +361 -0
  377. package/dist/cli/commands/ralphthon.js.map +1 -0
  378. package/dist/cli/commands/team.d.ts +39 -0
  379. package/dist/cli/commands/team.d.ts.map +1 -1
  380. package/dist/cli/commands/team.js +178 -19
  381. package/dist/cli/commands/team.js.map +1 -1
  382. package/dist/cli/commands/teleport.js +5 -5
  383. package/dist/cli/commands/teleport.js.map +1 -1
  384. package/dist/cli/hud-watch.d.ts +15 -0
  385. package/dist/cli/hud-watch.d.ts.map +1 -0
  386. package/dist/cli/hud-watch.js +37 -0
  387. package/dist/cli/hud-watch.js.map +1 -0
  388. package/dist/cli/index.d.ts +0 -1
  389. package/dist/cli/index.d.ts.map +1 -1
  390. package/dist/cli/index.js +39 -180
  391. package/dist/cli/index.js.map +1 -1
  392. package/dist/cli/launch.d.ts +9 -1
  393. package/dist/cli/launch.d.ts.map +1 -1
  394. package/dist/cli/launch.js +25 -4
  395. package/dist/cli/launch.js.map +1 -1
  396. package/dist/cli/team.d.ts +1 -0
  397. package/dist/cli/team.d.ts.map +1 -1
  398. package/dist/cli/team.js +42 -54
  399. package/dist/cli/team.js.map +1 -1
  400. package/dist/cli/tmux-utils.d.ts +3 -2
  401. package/dist/cli/tmux-utils.d.ts.map +1 -1
  402. package/dist/cli/tmux-utils.js +16 -3
  403. package/dist/cli/tmux-utils.js.map +1 -1
  404. package/dist/config/__tests__/loader.test.js +121 -67
  405. package/dist/config/__tests__/loader.test.js.map +1 -1
  406. package/dist/config/__tests__/models.test.js +114 -1
  407. package/dist/config/__tests__/models.test.js.map +1 -1
  408. package/dist/config/__tests__/plan-output.test.d.ts +2 -0
  409. package/dist/config/__tests__/plan-output.test.d.ts.map +1 -0
  410. package/dist/config/__tests__/plan-output.test.js +41 -0
  411. package/dist/config/__tests__/plan-output.test.js.map +1 -0
  412. package/dist/config/index.d.ts +2 -1
  413. package/dist/config/index.d.ts.map +1 -1
  414. package/dist/config/index.js +2 -1
  415. package/dist/config/index.js.map +1 -1
  416. package/dist/config/loader.d.ts +1 -1
  417. package/dist/config/loader.d.ts.map +1 -1
  418. package/dist/config/loader.js +280 -215
  419. package/dist/config/loader.js.map +1 -1
  420. package/dist/config/models.d.ts +33 -0
  421. package/dist/config/models.d.ts.map +1 -1
  422. package/dist/config/models.js +57 -0
  423. package/dist/config/models.js.map +1 -1
  424. package/dist/config/plan-output.d.ts +12 -0
  425. package/dist/config/plan-output.d.ts.map +1 -0
  426. package/dist/config/plan-output.js +67 -0
  427. package/dist/config/plan-output.js.map +1 -0
  428. package/dist/constants/names.d.ts +1 -5
  429. package/dist/constants/names.d.ts.map +1 -1
  430. package/dist/constants/names.js +1 -6
  431. package/dist/constants/names.js.map +1 -1
  432. package/dist/features/auto-update.d.ts +8 -0
  433. package/dist/features/auto-update.d.ts.map +1 -1
  434. package/dist/features/auto-update.js +218 -24
  435. package/dist/features/auto-update.js.map +1 -1
  436. package/dist/features/boulder-state/storage.d.ts.map +1 -1
  437. package/dist/features/boulder-state/storage.js +15 -10
  438. package/dist/features/boulder-state/storage.js.map +1 -1
  439. package/dist/features/builtin-skills/runtime-guidance.d.ts +9 -0
  440. package/dist/features/builtin-skills/runtime-guidance.d.ts.map +1 -0
  441. package/dist/features/builtin-skills/runtime-guidance.js +35 -0
  442. package/dist/features/builtin-skills/runtime-guidance.js.map +1 -0
  443. package/dist/features/builtin-skills/skills.d.ts.map +1 -1
  444. package/dist/features/builtin-skills/skills.js +32 -7
  445. package/dist/features/builtin-skills/skills.js.map +1 -1
  446. package/dist/features/continuation-enforcement.d.ts.map +1 -1
  447. package/dist/features/continuation-enforcement.js +3 -2
  448. package/dist/features/continuation-enforcement.js.map +1 -1
  449. package/dist/features/delegation-categories/__tests__/index.test.d.ts.map +1 -0
  450. package/dist/features/delegation-categories/__tests__/index.test.js +19 -0
  451. package/dist/features/delegation-categories/__tests__/index.test.js.map +1 -0
  452. package/dist/features/delegation-enforcer.d.ts.map +1 -1
  453. package/dist/features/delegation-enforcer.js +62 -3
  454. package/dist/features/delegation-enforcer.js.map +1 -1
  455. package/dist/features/magic-keywords.d.ts +1 -1
  456. package/dist/features/magic-keywords.d.ts.map +1 -1
  457. package/dist/features/magic-keywords.js +42 -12
  458. package/dist/features/magic-keywords.js.map +1 -1
  459. package/dist/features/model-routing/__tests__/index.test.d.ts +2 -0
  460. package/dist/features/model-routing/__tests__/index.test.d.ts.map +1 -0
  461. package/dist/features/model-routing/__tests__/index.test.js +21 -0
  462. package/dist/features/model-routing/__tests__/index.test.js.map +1 -0
  463. package/dist/features/model-routing/index.d.ts.map +1 -1
  464. package/dist/features/model-routing/index.js +3 -2
  465. package/dist/features/model-routing/index.js.map +1 -1
  466. package/dist/features/model-routing/signals.js +1 -1
  467. package/dist/features/model-routing/signals.js.map +1 -1
  468. package/dist/features/model-routing/types.d.ts +1 -1
  469. package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
  470. package/dist/features/rate-limit-wait/daemon.js +11 -22
  471. package/dist/features/rate-limit-wait/daemon.js.map +1 -1
  472. package/dist/features/rate-limit-wait/tmux-detector.js +6 -6
  473. package/dist/features/rate-limit-wait/tmux-detector.js.map +1 -1
  474. package/dist/features/rate-limit-wait/types.d.ts +3 -3
  475. package/dist/features/rate-limit-wait/types.d.ts.map +1 -1
  476. package/dist/features/state-manager/index.d.ts +2 -2
  477. package/dist/features/state-manager/index.d.ts.map +1 -1
  478. package/dist/features/state-manager/index.js +12 -8
  479. package/dist/features/state-manager/index.js.map +1 -1
  480. package/dist/features/state-manager/types.d.ts +2 -2
  481. package/dist/features/state-manager/types.d.ts.map +1 -1
  482. package/dist/features/state-manager/types.js +2 -2
  483. package/dist/features/state-manager/types.js.map +1 -1
  484. package/dist/features/task-decomposer/index.js +3 -1
  485. package/dist/features/task-decomposer/index.js.map +1 -1
  486. package/dist/features/verification/index.d.ts.map +1 -1
  487. package/dist/features/verification/index.js +4 -2
  488. package/dist/features/verification/index.js.map +1 -1
  489. package/dist/hooks/__tests__/background-process-guard.test.js +151 -3
  490. package/dist/hooks/__tests__/background-process-guard.test.js.map +1 -1
  491. package/dist/hooks/__tests__/bridge-openclaw.test.js +15 -0
  492. package/dist/hooks/__tests__/bridge-openclaw.test.js.map +1 -1
  493. package/dist/hooks/__tests__/bridge-routing.test.js +130 -0
  494. package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
  495. package/dist/hooks/__tests__/bridge-team-worker-guard.test.js +1 -1
  496. package/dist/hooks/__tests__/bridge-team-worker-guard.test.js.map +1 -1
  497. package/dist/hooks/__tests__/bridge.test.js +101 -0
  498. package/dist/hooks/__tests__/bridge.test.js.map +1 -1
  499. package/dist/hooks/__tests__/team-worker-heartbeat.test.d.ts +10 -0
  500. package/dist/hooks/__tests__/team-worker-heartbeat.test.d.ts.map +1 -0
  501. package/dist/hooks/__tests__/team-worker-heartbeat.test.js +87 -0
  502. package/dist/hooks/__tests__/team-worker-heartbeat.test.js.map +1 -0
  503. package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
  504. package/dist/hooks/auto-slash-command/executor.js +134 -70
  505. package/dist/hooks/auto-slash-command/executor.js.map +1 -1
  506. package/dist/hooks/auto-slash-command/live-data.d.ts.map +1 -1
  507. package/dist/hooks/auto-slash-command/live-data.js +12 -0
  508. package/dist/hooks/auto-slash-command/live-data.js.map +1 -1
  509. package/dist/hooks/autopilot/__tests__/prompts.test.js +61 -52
  510. package/dist/hooks/autopilot/__tests__/prompts.test.js.map +1 -1
  511. package/dist/hooks/autopilot/__tests__/state.test.js +34 -34
  512. package/dist/hooks/autopilot/adapters/execution-adapter.d.ts +1 -1
  513. package/dist/hooks/autopilot/adapters/execution-adapter.d.ts.map +1 -1
  514. package/dist/hooks/autopilot/adapters/execution-adapter.js +6 -5
  515. package/dist/hooks/autopilot/adapters/execution-adapter.js.map +1 -1
  516. package/dist/hooks/autopilot/adapters/ralplan-adapter.d.ts +1 -1
  517. package/dist/hooks/autopilot/adapters/ralplan-adapter.d.ts.map +1 -1
  518. package/dist/hooks/autopilot/adapters/ralplan-adapter.js +8 -7
  519. package/dist/hooks/autopilot/adapters/ralplan-adapter.js.map +1 -1
  520. package/dist/hooks/autopilot/enforcement.d.ts +2 -2
  521. package/dist/hooks/autopilot/enforcement.d.ts.map +1 -1
  522. package/dist/hooks/autopilot/enforcement.js +98 -70
  523. package/dist/hooks/autopilot/enforcement.js.map +1 -1
  524. package/dist/hooks/autopilot/pipeline-types.d.ts +8 -6
  525. package/dist/hooks/autopilot/pipeline-types.d.ts.map +1 -1
  526. package/dist/hooks/autopilot/pipeline-types.js +9 -9
  527. package/dist/hooks/autopilot/pipeline-types.js.map +1 -1
  528. package/dist/hooks/autopilot/pipeline.d.ts +3 -3
  529. package/dist/hooks/autopilot/pipeline.d.ts.map +1 -1
  530. package/dist/hooks/autopilot/pipeline.js +51 -36
  531. package/dist/hooks/autopilot/pipeline.js.map +1 -1
  532. package/dist/hooks/autopilot/prompts.d.ts +4 -2
  533. package/dist/hooks/autopilot/prompts.d.ts.map +1 -1
  534. package/dist/hooks/autopilot/prompts.js +31 -24
  535. package/dist/hooks/autopilot/prompts.js.map +1 -1
  536. package/dist/hooks/autopilot/state.d.ts.map +1 -1
  537. package/dist/hooks/autopilot/state.js +21 -14
  538. package/dist/hooks/autopilot/state.js.map +1 -1
  539. package/dist/hooks/bridge.d.ts.map +1 -1
  540. package/dist/hooks/bridge.js +329 -71
  541. package/dist/hooks/bridge.js.map +1 -1
  542. package/dist/hooks/code-simplifier/index.d.ts +3 -2
  543. package/dist/hooks/code-simplifier/index.d.ts.map +1 -1
  544. package/dist/hooks/code-simplifier/index.js +15 -12
  545. package/dist/hooks/code-simplifier/index.js.map +1 -1
  546. package/dist/hooks/comment-checker/index.d.ts.map +1 -1
  547. package/dist/hooks/comment-checker/index.js +0 -17
  548. package/dist/hooks/comment-checker/index.js.map +1 -1
  549. package/dist/hooks/index.d.ts +0 -1
  550. package/dist/hooks/index.d.ts.map +1 -1
  551. package/dist/hooks/index.js +0 -8
  552. package/dist/hooks/index.js.map +1 -1
  553. package/dist/hooks/keyword-detector/__tests__/index.test.js +304 -0
  554. package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
  555. package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
  556. package/dist/hooks/keyword-detector/index.js +46 -16
  557. package/dist/hooks/keyword-detector/index.js.map +1 -1
  558. package/dist/hooks/learner/bridge.d.ts +1 -0
  559. package/dist/hooks/learner/bridge.d.ts.map +1 -1
  560. package/dist/hooks/learner/bridge.js +30 -19
  561. package/dist/hooks/learner/bridge.js.map +1 -1
  562. package/dist/hooks/learner/constants.d.ts +2 -0
  563. package/dist/hooks/learner/constants.d.ts.map +1 -1
  564. package/dist/hooks/learner/constants.js +2 -0
  565. package/dist/hooks/learner/constants.js.map +1 -1
  566. package/dist/hooks/learner/finder.d.ts.map +1 -1
  567. package/dist/hooks/learner/finder.js +25 -20
  568. package/dist/hooks/learner/finder.js.map +1 -1
  569. package/dist/hooks/learner/transliteration-map.d.ts +30 -0
  570. package/dist/hooks/learner/transliteration-map.d.ts.map +1 -0
  571. package/dist/hooks/learner/transliteration-map.js +51 -0
  572. package/dist/hooks/learner/transliteration-map.js.map +1 -0
  573. package/dist/hooks/non-interactive-env/index.d.ts.map +1 -1
  574. package/dist/hooks/non-interactive-env/index.js +5 -5
  575. package/dist/hooks/non-interactive-env/index.js.map +1 -1
  576. package/dist/hooks/non-interactive-env/index.test.d.ts +2 -0
  577. package/dist/hooks/non-interactive-env/index.test.d.ts.map +1 -0
  578. package/dist/hooks/non-interactive-env/index.test.js +30 -0
  579. package/dist/hooks/non-interactive-env/index.test.js.map +1 -0
  580. package/dist/hooks/notepad/index.d.ts.map +1 -1
  581. package/dist/hooks/notepad/index.js +20 -6
  582. package/dist/hooks/notepad/index.js.map +1 -1
  583. package/dist/hooks/omc-orchestrator/index.d.ts.map +1 -1
  584. package/dist/hooks/omc-orchestrator/index.js +6 -2
  585. package/dist/hooks/omc-orchestrator/index.js.map +1 -1
  586. package/dist/hooks/permission-handler/__tests__/index.test.js +9 -1
  587. package/dist/hooks/permission-handler/__tests__/index.test.js.map +1 -1
  588. package/dist/hooks/permission-handler/index.d.ts +2 -0
  589. package/dist/hooks/permission-handler/index.d.ts.map +1 -1
  590. package/dist/hooks/permission-handler/index.js +67 -7
  591. package/dist/hooks/permission-handler/index.js.map +1 -1
  592. package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js +79 -15
  593. package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js.map +1 -1
  594. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js +1 -1
  595. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js.map +1 -1
  596. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js +36 -1
  597. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js.map +1 -1
  598. package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.js +113 -2
  599. package/dist/hooks/persistent-mode/__tests__/team-ralplan-stop.test.js.map +1 -1
  600. package/dist/hooks/persistent-mode/index.d.ts +1 -1
  601. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  602. package/dist/hooks/persistent-mode/index.js +50 -14
  603. package/dist/hooks/persistent-mode/index.js.map +1 -1
  604. package/dist/hooks/persistent-mode/session-isolation.test.js +20 -14
  605. package/dist/hooks/persistent-mode/session-isolation.test.js.map +1 -1
  606. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +173 -5
  607. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -1
  608. package/dist/hooks/project-memory/__tests__/formatter.test.js +244 -191
  609. package/dist/hooks/project-memory/__tests__/formatter.test.js.map +1 -1
  610. package/dist/hooks/project-memory/__tests__/integration.test.js +185 -101
  611. package/dist/hooks/project-memory/__tests__/integration.test.js.map +1 -1
  612. package/dist/hooks/project-memory/__tests__/pre-compact.test.d.ts +5 -0
  613. package/dist/hooks/project-memory/__tests__/pre-compact.test.d.ts.map +1 -0
  614. package/dist/hooks/project-memory/__tests__/pre-compact.test.js +121 -0
  615. package/dist/hooks/project-memory/__tests__/pre-compact.test.js.map +1 -0
  616. package/dist/hooks/project-memory/formatter.d.ts +2 -2
  617. package/dist/hooks/project-memory/formatter.d.ts.map +1 -1
  618. package/dist/hooks/project-memory/formatter.js +167 -92
  619. package/dist/hooks/project-memory/formatter.js.map +1 -1
  620. package/dist/hooks/project-memory/hot-path-tracker.d.ts +3 -3
  621. package/dist/hooks/project-memory/hot-path-tracker.d.ts.map +1 -1
  622. package/dist/hooks/project-memory/hot-path-tracker.js +71 -27
  623. package/dist/hooks/project-memory/hot-path-tracker.js.map +1 -1
  624. package/dist/hooks/project-memory/index.d.ts +0 -20
  625. package/dist/hooks/project-memory/index.d.ts.map +1 -1
  626. package/dist/hooks/project-memory/index.js +37 -39
  627. package/dist/hooks/project-memory/index.js.map +1 -1
  628. package/dist/hooks/project-memory/pre-compact.d.ts.map +1 -1
  629. package/dist/hooks/project-memory/pre-compact.js +2 -1
  630. package/dist/hooks/project-memory/pre-compact.js.map +1 -1
  631. package/dist/hooks/project-memory/types.d.ts +11 -6
  632. package/dist/hooks/project-memory/types.d.ts.map +1 -1
  633. package/dist/hooks/ralph/verifier.d.ts.map +1 -1
  634. package/dist/hooks/ralph/verifier.js +2 -1
  635. package/dist/hooks/ralph/verifier.js.map +1 -1
  636. package/dist/hooks/recovery/session-recovery.d.ts.map +1 -1
  637. package/dist/hooks/recovery/session-recovery.js +7 -4
  638. package/dist/hooks/recovery/session-recovery.js.map +1 -1
  639. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js +28 -0
  640. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js.map +1 -1
  641. package/dist/hooks/session-end/__tests__/session-end-timeout.test.d.ts +2 -0
  642. package/dist/hooks/session-end/__tests__/session-end-timeout.test.d.ts.map +1 -0
  643. package/dist/hooks/session-end/__tests__/session-end-timeout.test.js +91 -0
  644. package/dist/hooks/session-end/__tests__/session-end-timeout.test.js.map +1 -0
  645. package/dist/hooks/session-end/__tests__/team-cleanup.test.d.ts +2 -0
  646. package/dist/hooks/session-end/__tests__/team-cleanup.test.d.ts.map +1 -0
  647. package/dist/hooks/session-end/__tests__/team-cleanup.test.js +150 -0
  648. package/dist/hooks/session-end/__tests__/team-cleanup.test.js.map +1 -0
  649. package/dist/hooks/session-end/index.d.ts +9 -0
  650. package/dist/hooks/session-end/index.d.ts.map +1 -1
  651. package/dist/hooks/session-end/index.js +178 -30
  652. package/dist/hooks/session-end/index.js.map +1 -1
  653. package/dist/hooks/setup/__tests__/windows-patch.test.js +8 -7
  654. package/dist/hooks/setup/__tests__/windows-patch.test.js.map +1 -1
  655. package/dist/hooks/setup/index.d.ts +1 -1
  656. package/dist/hooks/setup/index.js +3 -3
  657. package/dist/hooks/setup/index.js.map +1 -1
  658. package/dist/hooks/skill-bridge.cjs +48 -16
  659. package/dist/hooks/skill-state/__tests__/skill-state.test.js +74 -8
  660. package/dist/hooks/skill-state/__tests__/skill-state.test.js.map +1 -1
  661. package/dist/hooks/skill-state/index.d.ts +18 -4
  662. package/dist/hooks/skill-state/index.d.ts.map +1 -1
  663. package/dist/hooks/skill-state/index.js +43 -7
  664. package/dist/hooks/skill-state/index.js.map +1 -1
  665. package/dist/hooks/subagent-tracker/__tests__/index.test.js +42 -1
  666. package/dist/hooks/subagent-tracker/__tests__/index.test.js.map +1 -1
  667. package/dist/hooks/subagent-tracker/index.d.ts +5 -0
  668. package/dist/hooks/subagent-tracker/index.d.ts.map +1 -1
  669. package/dist/hooks/subagent-tracker/index.js +62 -49
  670. package/dist/hooks/subagent-tracker/index.js.map +1 -1
  671. package/dist/hooks/team-dispatch-hook.d.ts.map +1 -1
  672. package/dist/hooks/team-dispatch-hook.js +4 -2
  673. package/dist/hooks/team-dispatch-hook.js.map +1 -1
  674. package/dist/hooks/team-leader-nudge-hook.d.ts +6 -0
  675. package/dist/hooks/team-leader-nudge-hook.d.ts.map +1 -1
  676. package/dist/hooks/team-leader-nudge-hook.js +113 -15
  677. package/dist/hooks/team-leader-nudge-hook.js.map +1 -1
  678. package/dist/hooks/team-worker-hook.d.ts.map +1 -1
  679. package/dist/hooks/team-worker-hook.js +6 -3
  680. package/dist/hooks/team-worker-hook.js.map +1 -1
  681. package/dist/hud/background-cleanup.d.ts +3 -3
  682. package/dist/hud/background-cleanup.d.ts.map +1 -1
  683. package/dist/hud/background-cleanup.js +9 -9
  684. package/dist/hud/background-cleanup.js.map +1 -1
  685. package/dist/hud/background-tasks.d.ts +7 -0
  686. package/dist/hud/background-tasks.d.ts.map +1 -1
  687. package/dist/hud/background-tasks.js +83 -0
  688. package/dist/hud/background-tasks.js.map +1 -1
  689. package/dist/hud/elements/context.d.ts +12 -2
  690. package/dist/hud/elements/context.d.ts.map +1 -1
  691. package/dist/hud/elements/context.js +86 -35
  692. package/dist/hud/elements/context.js.map +1 -1
  693. package/dist/hud/elements/git.d.ts +4 -0
  694. package/dist/hud/elements/git.d.ts.map +1 -1
  695. package/dist/hud/elements/git.js +39 -9
  696. package/dist/hud/elements/git.js.map +1 -1
  697. package/dist/hud/elements/index.d.ts +1 -0
  698. package/dist/hud/elements/index.d.ts.map +1 -1
  699. package/dist/hud/elements/index.js +1 -0
  700. package/dist/hud/elements/index.js.map +1 -1
  701. package/dist/hud/elements/session-summary.d.ts +23 -0
  702. package/dist/hud/elements/session-summary.d.ts.map +1 -0
  703. package/dist/hud/elements/session-summary.js +23 -0
  704. package/dist/hud/elements/session-summary.js.map +1 -0
  705. package/dist/hud/elements/token-usage.d.ts +8 -0
  706. package/dist/hud/elements/token-usage.d.ts.map +1 -0
  707. package/dist/hud/elements/token-usage.js +24 -0
  708. package/dist/hud/elements/token-usage.js.map +1 -0
  709. package/dist/hud/index.d.ts +4 -0
  710. package/dist/hud/index.d.ts.map +1 -1
  711. package/dist/hud/index.js +165 -32
  712. package/dist/hud/index.js.map +1 -1
  713. package/dist/hud/mission-board.d.ts.map +1 -1
  714. package/dist/hud/mission-board.js +8 -2
  715. package/dist/hud/mission-board.js.map +1 -1
  716. package/dist/hud/omc-state.d.ts +5 -5
  717. package/dist/hud/omc-state.d.ts.map +1 -1
  718. package/dist/hud/omc-state.js +20 -16
  719. package/dist/hud/omc-state.js.map +1 -1
  720. package/dist/hud/render.d.ts +1 -1
  721. package/dist/hud/render.d.ts.map +1 -1
  722. package/dist/hud/render.js +69 -54
  723. package/dist/hud/render.js.map +1 -1
  724. package/dist/hud/state.d.ts +3 -3
  725. package/dist/hud/state.d.ts.map +1 -1
  726. package/dist/hud/state.js +110 -57
  727. package/dist/hud/state.js.map +1 -1
  728. package/dist/hud/stdin.d.ts +8 -1
  729. package/dist/hud/stdin.d.ts.map +1 -1
  730. package/dist/hud/stdin.js +60 -13
  731. package/dist/hud/stdin.js.map +1 -1
  732. package/dist/hud/transcript.d.ts.map +1 -1
  733. package/dist/hud/transcript.js +148 -35
  734. package/dist/hud/transcript.js.map +1 -1
  735. package/dist/hud/types.d.ts +30 -13
  736. package/dist/hud/types.d.ts.map +1 -1
  737. package/dist/hud/types.js +24 -0
  738. package/dist/hud/types.js.map +1 -1
  739. package/dist/hud/usage-api.d.ts.map +1 -1
  740. package/dist/hud/usage-api.js +53 -24
  741. package/dist/hud/usage-api.js.map +1 -1
  742. package/dist/index.d.ts +1 -1
  743. package/dist/index.d.ts.map +1 -1
  744. package/dist/index.js +1 -1
  745. package/dist/index.js.map +1 -1
  746. package/dist/installer/__tests__/claude-md-merge.test.js +23 -0
  747. package/dist/installer/__tests__/claude-md-merge.test.js.map +1 -1
  748. package/dist/installer/__tests__/hook-templates.test.js +50 -5
  749. package/dist/installer/__tests__/hook-templates.test.js.map +1 -1
  750. package/dist/installer/__tests__/mcp-registry.test.d.ts +2 -0
  751. package/dist/installer/__tests__/mcp-registry.test.d.ts.map +1 -0
  752. package/dist/installer/__tests__/mcp-registry.test.js +316 -0
  753. package/dist/installer/__tests__/mcp-registry.test.js.map +1 -0
  754. package/dist/installer/__tests__/session-start-template.test.d.ts +2 -0
  755. package/dist/installer/__tests__/session-start-template.test.d.ts.map +1 -0
  756. package/dist/installer/__tests__/session-start-template.test.js +95 -0
  757. package/dist/installer/__tests__/session-start-template.test.js.map +1 -0
  758. package/dist/installer/hooks.d.ts +0 -14
  759. package/dist/installer/hooks.d.ts.map +1 -1
  760. package/dist/installer/hooks.js +0 -33
  761. package/dist/installer/hooks.js.map +1 -1
  762. package/dist/installer/index.d.ts +2 -0
  763. package/dist/installer/index.d.ts.map +1 -1
  764. package/dist/installer/index.js +71 -7
  765. package/dist/installer/index.js.map +1 -1
  766. package/dist/installer/mcp-registry.d.ts +48 -0
  767. package/dist/installer/mcp-registry.d.ts.map +1 -0
  768. package/dist/installer/mcp-registry.js +453 -0
  769. package/dist/installer/mcp-registry.js.map +1 -0
  770. package/dist/interop/omx-team-state.d.ts +2 -0
  771. package/dist/interop/omx-team-state.d.ts.map +1 -1
  772. package/dist/interop/omx-team-state.js.map +1 -1
  773. package/dist/interop/shared-state.d.ts.map +1 -1
  774. package/dist/interop/shared-state.js +21 -18
  775. package/dist/interop/shared-state.js.map +1 -1
  776. package/dist/lib/__tests__/mode-state-io.test.js +58 -8
  777. package/dist/lib/__tests__/mode-state-io.test.js.map +1 -1
  778. package/dist/lib/__tests__/swallowed-error.test.d.ts +2 -0
  779. package/dist/lib/__tests__/swallowed-error.test.d.ts.map +1 -0
  780. package/dist/lib/__tests__/swallowed-error.test.js +19 -0
  781. package/dist/lib/__tests__/swallowed-error.test.js.map +1 -0
  782. package/dist/lib/featured-contributors.d.ts +54 -0
  783. package/dist/lib/featured-contributors.d.ts.map +1 -0
  784. package/dist/lib/featured-contributors.js +290 -0
  785. package/dist/lib/featured-contributors.js.map +1 -0
  786. package/dist/lib/file-lock.d.ts.map +1 -1
  787. package/dist/lib/file-lock.js +49 -51
  788. package/dist/lib/file-lock.js.map +1 -1
  789. package/dist/lib/mode-names.d.ts +1 -0
  790. package/dist/lib/mode-names.d.ts.map +1 -1
  791. package/dist/lib/mode-names.js +5 -0
  792. package/dist/lib/mode-names.js.map +1 -1
  793. package/dist/lib/mode-state-io.d.ts +2 -0
  794. package/dist/lib/mode-state-io.d.ts.map +1 -1
  795. package/dist/lib/mode-state-io.js +57 -11
  796. package/dist/lib/mode-state-io.js.map +1 -1
  797. package/dist/lib/project-memory-merge.d.ts.map +1 -1
  798. package/dist/lib/project-memory-merge.js +2 -0
  799. package/dist/lib/project-memory-merge.js.map +1 -1
  800. package/dist/lib/shared-memory.d.ts.map +1 -1
  801. package/dist/lib/shared-memory.js +40 -21
  802. package/dist/lib/shared-memory.js.map +1 -1
  803. package/dist/lib/swallowed-error.d.ts +4 -0
  804. package/dist/lib/swallowed-error.d.ts.map +1 -0
  805. package/dist/lib/swallowed-error.js +26 -0
  806. package/dist/lib/swallowed-error.js.map +1 -0
  807. package/dist/lib/worktree-paths.d.ts +1 -0
  808. package/dist/lib/worktree-paths.d.ts.map +1 -1
  809. package/dist/lib/worktree-paths.js +1 -0
  810. package/dist/lib/worktree-paths.js.map +1 -1
  811. package/dist/mcp/__tests__/prompt-injection.test.js +15 -0
  812. package/dist/mcp/__tests__/prompt-injection.test.js.map +1 -1
  813. package/dist/mcp/__tests__/standalone-shutdown.test.d.ts +2 -0
  814. package/dist/mcp/__tests__/standalone-shutdown.test.d.ts.map +1 -0
  815. package/dist/mcp/__tests__/standalone-shutdown.test.js +57 -0
  816. package/dist/mcp/__tests__/standalone-shutdown.test.js.map +1 -0
  817. package/dist/mcp/__tests__/team-cleanup.test.js +5 -5
  818. package/dist/mcp/job-management.d.ts +4 -0
  819. package/dist/mcp/job-management.d.ts.map +1 -1
  820. package/dist/mcp/job-management.js +30 -10
  821. package/dist/mcp/job-management.js.map +1 -1
  822. package/dist/mcp/omc-tools-server.d.ts +2 -0
  823. package/dist/mcp/omc-tools-server.d.ts.map +1 -1
  824. package/dist/mcp/omc-tools-server.js +10 -2
  825. package/dist/mcp/omc-tools-server.js.map +1 -1
  826. package/dist/mcp/prompt-injection.d.ts.map +1 -1
  827. package/dist/mcp/prompt-injection.js +25 -4
  828. package/dist/mcp/prompt-injection.js.map +1 -1
  829. package/dist/mcp/prompt-persistence.js +1 -1
  830. package/dist/mcp/prompt-persistence.js.map +1 -1
  831. package/dist/mcp/standalone-server.js +15 -4
  832. package/dist/mcp/standalone-server.js.map +1 -1
  833. package/dist/mcp/standalone-shutdown.d.ts +25 -0
  834. package/dist/mcp/standalone-shutdown.d.ts.map +1 -0
  835. package/dist/mcp/standalone-shutdown.js +68 -0
  836. package/dist/mcp/standalone-shutdown.js.map +1 -0
  837. package/dist/mcp/team-job-convergence.d.ts +0 -1
  838. package/dist/mcp/team-job-convergence.d.ts.map +1 -1
  839. package/dist/mcp/team-job-convergence.js +0 -9
  840. package/dist/mcp/team-job-convergence.js.map +1 -1
  841. package/dist/mcp/team-server.d.ts.map +1 -1
  842. package/dist/mcp/team-server.js +18 -11
  843. package/dist/mcp/team-server.js.map +1 -1
  844. package/dist/notifications/__tests__/reply-listener.test.js +57 -1
  845. package/dist/notifications/__tests__/reply-listener.test.js.map +1 -1
  846. package/dist/notifications/config.d.ts.map +1 -1
  847. package/dist/notifications/config.js +36 -3
  848. package/dist/notifications/config.js.map +1 -1
  849. package/dist/notifications/dispatcher.d.ts.map +1 -1
  850. package/dist/notifications/dispatcher.js +18 -14
  851. package/dist/notifications/dispatcher.js.map +1 -1
  852. package/dist/notifications/redact.d.ts.map +1 -1
  853. package/dist/notifications/redact.js +10 -1
  854. package/dist/notifications/redact.js.map +1 -1
  855. package/dist/notifications/reply-listener.d.ts +2 -0
  856. package/dist/notifications/reply-listener.d.ts.map +1 -1
  857. package/dist/notifications/reply-listener.js +17 -24
  858. package/dist/notifications/reply-listener.js.map +1 -1
  859. package/dist/notifications/session-registry.d.ts +1 -1
  860. package/dist/notifications/session-registry.d.ts.map +1 -1
  861. package/dist/notifications/session-registry.js +37 -43
  862. package/dist/notifications/session-registry.js.map +1 -1
  863. package/dist/notifications/types.d.ts +2 -0
  864. package/dist/notifications/types.d.ts.map +1 -1
  865. package/dist/planning/__tests__/artifacts.test.d.ts +2 -0
  866. package/dist/planning/__tests__/artifacts.test.d.ts.map +1 -0
  867. package/dist/planning/__tests__/artifacts.test.js +303 -0
  868. package/dist/planning/__tests__/artifacts.test.js.map +1 -0
  869. package/dist/planning/artifacts.d.ts +29 -0
  870. package/dist/planning/artifacts.d.ts.map +1 -0
  871. package/dist/planning/artifacts.js +144 -0
  872. package/dist/planning/artifacts.js.map +1 -0
  873. package/dist/platform/process-utils.d.ts +1 -0
  874. package/dist/platform/process-utils.d.ts.map +1 -1
  875. package/dist/platform/process-utils.js +7 -3
  876. package/dist/platform/process-utils.js.map +1 -1
  877. package/dist/providers/bitbucket.d.ts +2 -2
  878. package/dist/providers/bitbucket.d.ts.map +1 -1
  879. package/dist/providers/bitbucket.js +11 -12
  880. package/dist/providers/bitbucket.js.map +1 -1
  881. package/dist/providers/gitea.d.ts.map +1 -1
  882. package/dist/providers/gitea.js +8 -2
  883. package/dist/providers/gitea.js.map +1 -1
  884. package/dist/providers/index.d.ts +4 -0
  885. package/dist/providers/index.d.ts.map +1 -1
  886. package/dist/providers/index.js +49 -26
  887. package/dist/providers/index.js.map +1 -1
  888. package/dist/providers/types.d.ts +2 -2
  889. package/dist/providers/types.d.ts.map +1 -1
  890. package/dist/ralphthon/__tests__/cli.test.d.ts +5 -0
  891. package/dist/ralphthon/__tests__/cli.test.d.ts.map +1 -0
  892. package/dist/ralphthon/__tests__/cli.test.js +103 -0
  893. package/dist/ralphthon/__tests__/cli.test.js.map +1 -0
  894. package/dist/ralphthon/__tests__/orchestrator.test.d.ts +5 -0
  895. package/dist/ralphthon/__tests__/orchestrator.test.d.ts.map +1 -0
  896. package/dist/ralphthon/__tests__/orchestrator.test.js +393 -0
  897. package/dist/ralphthon/__tests__/orchestrator.test.js.map +1 -0
  898. package/dist/ralphthon/__tests__/prd.test.d.ts +5 -0
  899. package/dist/ralphthon/__tests__/prd.test.d.ts.map +1 -0
  900. package/dist/ralphthon/__tests__/prd.test.js +454 -0
  901. package/dist/ralphthon/__tests__/prd.test.js.map +1 -0
  902. package/dist/ralphthon/deep-interview-prompt.d.ts +2 -0
  903. package/dist/ralphthon/deep-interview-prompt.d.ts.map +1 -0
  904. package/dist/ralphthon/deep-interview-prompt.js +20 -0
  905. package/dist/ralphthon/deep-interview-prompt.js.map +1 -0
  906. package/dist/ralphthon/index.d.ts +13 -0
  907. package/dist/ralphthon/index.d.ts.map +1 -0
  908. package/dist/ralphthon/index.js +14 -0
  909. package/dist/ralphthon/index.js.map +1 -0
  910. package/dist/ralphthon/orchestrator.d.ts +112 -0
  911. package/dist/ralphthon/orchestrator.d.ts.map +1 -0
  912. package/dist/ralphthon/orchestrator.js +453 -0
  913. package/dist/ralphthon/orchestrator.js.map +1 -0
  914. package/dist/ralphthon/prd.d.ts +111 -0
  915. package/dist/ralphthon/prd.d.ts.map +1 -0
  916. package/dist/ralphthon/prd.js +345 -0
  917. package/dist/ralphthon/prd.js.map +1 -0
  918. package/dist/ralphthon/types.d.ts +213 -0
  919. package/dist/ralphthon/types.d.ts.map +1 -0
  920. package/dist/ralphthon/types.js +21 -0
  921. package/dist/ralphthon/types.js.map +1 -0
  922. package/dist/shared/types.d.ts +25 -16
  923. package/dist/shared/types.d.ts.map +1 -1
  924. package/dist/skills/__tests__/mingw-escape.test.js +15 -0
  925. package/dist/skills/__tests__/mingw-escape.test.js.map +1 -1
  926. package/dist/team/__tests__/allocation-policy.test.d.ts +2 -0
  927. package/dist/team/__tests__/allocation-policy.test.d.ts.map +1 -0
  928. package/dist/team/__tests__/allocation-policy.test.js +125 -0
  929. package/dist/team/__tests__/allocation-policy.test.js.map +1 -0
  930. package/dist/team/__tests__/api-interop.cleanup.test.d.ts +2 -0
  931. package/dist/team/__tests__/api-interop.cleanup.test.d.ts.map +1 -0
  932. package/dist/team/__tests__/api-interop.cleanup.test.js +129 -0
  933. package/dist/team/__tests__/api-interop.cleanup.test.js.map +1 -0
  934. package/dist/team/__tests__/api-interop.cwd-resolution.test.js +22 -0
  935. package/dist/team/__tests__/api-interop.cwd-resolution.test.js.map +1 -1
  936. package/dist/team/__tests__/api-interop.dispatch.test.js +59 -0
  937. package/dist/team/__tests__/api-interop.dispatch.test.js.map +1 -1
  938. package/dist/team/__tests__/audit-log.test.js +0 -1
  939. package/dist/team/__tests__/audit-log.test.js.map +1 -1
  940. package/dist/team/__tests__/bridge-integration.test.js.map +1 -1
  941. package/dist/team/__tests__/events.swallowed-error.test.d.ts +2 -0
  942. package/dist/team/__tests__/events.swallowed-error.test.d.ts.map +1 -0
  943. package/dist/team/__tests__/events.swallowed-error.test.js +33 -0
  944. package/dist/team/__tests__/events.swallowed-error.test.js.map +1 -0
  945. package/dist/team/__tests__/followup-planner.test.d.ts +2 -0
  946. package/dist/team/__tests__/followup-planner.test.d.ts.map +1 -0
  947. package/dist/team/__tests__/followup-planner.test.js +197 -0
  948. package/dist/team/__tests__/followup-planner.test.js.map +1 -0
  949. package/dist/team/__tests__/governance-enforcement.test.d.ts +2 -0
  950. package/dist/team/__tests__/governance-enforcement.test.d.ts.map +1 -0
  951. package/dist/team/__tests__/governance-enforcement.test.js +138 -0
  952. package/dist/team/__tests__/governance-enforcement.test.js.map +1 -0
  953. package/dist/team/__tests__/governance.test.d.ts +2 -0
  954. package/dist/team/__tests__/governance.test.d.ts.map +1 -0
  955. package/dist/team/__tests__/governance.test.js +38 -0
  956. package/dist/team/__tests__/governance.test.js.map +1 -0
  957. package/dist/team/__tests__/idle-nudge.test.js +9 -0
  958. package/dist/team/__tests__/idle-nudge.test.js.map +1 -1
  959. package/dist/team/__tests__/leader-nudge-guidance.test.d.ts +2 -0
  960. package/dist/team/__tests__/leader-nudge-guidance.test.d.ts.map +1 -0
  961. package/dist/team/__tests__/leader-nudge-guidance.test.js +37 -0
  962. package/dist/team/__tests__/leader-nudge-guidance.test.js.map +1 -0
  963. package/dist/team/__tests__/lifecycle-profile.test.d.ts +2 -0
  964. package/dist/team/__tests__/lifecycle-profile.test.d.ts.map +1 -0
  965. package/dist/team/__tests__/lifecycle-profile.test.js +46 -0
  966. package/dist/team/__tests__/lifecycle-profile.test.js.map +1 -0
  967. package/dist/team/__tests__/model-contract.test.js +84 -3
  968. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  969. package/dist/team/__tests__/phase1-foundation.test.d.ts +2 -0
  970. package/dist/team/__tests__/phase1-foundation.test.d.ts.map +1 -0
  971. package/dist/team/__tests__/phase1-foundation.test.js +151 -0
  972. package/dist/team/__tests__/phase1-foundation.test.js.map +1 -0
  973. package/dist/team/__tests__/role-router.test.d.ts +2 -0
  974. package/dist/team/__tests__/role-router.test.d.ts.map +1 -0
  975. package/dist/team/__tests__/role-router.test.js +122 -0
  976. package/dist/team/__tests__/role-router.test.js.map +1 -0
  977. package/dist/team/__tests__/runtime-prompt-mode.test.js +4 -1
  978. package/dist/team/__tests__/runtime-prompt-mode.test.js.map +1 -1
  979. package/dist/team/__tests__/runtime-v2.dispatch.test.js +114 -6
  980. package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -1
  981. package/dist/team/__tests__/runtime-v2.monitor.test.js +45 -0
  982. package/dist/team/__tests__/runtime-v2.monitor.test.js.map +1 -1
  983. package/dist/team/__tests__/runtime-v2.shutdown-pane-cleanup.test.d.ts +2 -0
  984. package/dist/team/__tests__/runtime-v2.shutdown-pane-cleanup.test.d.ts.map +1 -0
  985. package/dist/team/__tests__/runtime-v2.shutdown-pane-cleanup.test.js +110 -0
  986. package/dist/team/__tests__/runtime-v2.shutdown-pane-cleanup.test.js.map +1 -0
  987. package/dist/team/__tests__/scaling.test.d.ts +2 -0
  988. package/dist/team/__tests__/scaling.test.d.ts.map +1 -0
  989. package/dist/team/__tests__/scaling.test.js +44 -0
  990. package/dist/team/__tests__/scaling.test.js.map +1 -0
  991. package/dist/team/__tests__/shell-affinity.test.d.ts +2 -0
  992. package/dist/team/__tests__/shell-affinity.test.d.ts.map +1 -0
  993. package/dist/team/__tests__/shell-affinity.test.js +98 -0
  994. package/dist/team/__tests__/shell-affinity.test.js.map +1 -0
  995. package/dist/team/__tests__/state-paths.test.js +4 -1
  996. package/dist/team/__tests__/state-paths.test.js.map +1 -1
  997. package/dist/team/__tests__/task-file-ops.test.js +6 -4
  998. package/dist/team/__tests__/task-file-ops.test.js.map +1 -1
  999. package/dist/team/__tests__/team-leader-nudge-hook.logging.test.d.ts +2 -0
  1000. package/dist/team/__tests__/team-leader-nudge-hook.logging.test.d.ts.map +1 -0
  1001. package/dist/team/__tests__/team-leader-nudge-hook.logging.test.js +63 -0
  1002. package/dist/team/__tests__/team-leader-nudge-hook.logging.test.js.map +1 -0
  1003. package/dist/team/__tests__/team-leader-nudge-hook.test.d.ts +2 -0
  1004. package/dist/team/__tests__/team-leader-nudge-hook.test.d.ts.map +1 -0
  1005. package/dist/team/__tests__/team-leader-nudge-hook.test.js +90 -0
  1006. package/dist/team/__tests__/team-leader-nudge-hook.test.js.map +1 -0
  1007. package/dist/team/__tests__/tmux-comm.test.js +5 -4
  1008. package/dist/team/__tests__/tmux-comm.test.js.map +1 -1
  1009. package/dist/team/__tests__/tmux-session.create-team.test.js +46 -2
  1010. package/dist/team/__tests__/tmux-session.create-team.test.js.map +1 -1
  1011. package/dist/team/__tests__/tmux-session.kill-team-session.test.js +45 -13
  1012. package/dist/team/__tests__/tmux-session.kill-team-session.test.js.map +1 -1
  1013. package/dist/team/__tests__/tmux-session.test.js +50 -58
  1014. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  1015. package/dist/team/__tests__/unified-team.test.js.map +1 -1
  1016. package/dist/team/__tests__/worker-bootstrap.test.js +50 -5
  1017. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  1018. package/dist/team/__tests__/worker-canonicalization.test.d.ts +2 -0
  1019. package/dist/team/__tests__/worker-canonicalization.test.d.ts.map +1 -0
  1020. package/dist/team/__tests__/worker-canonicalization.test.js +35 -0
  1021. package/dist/team/__tests__/worker-canonicalization.test.js.map +1 -0
  1022. package/dist/team/__tests__/worker-health.test.js.map +1 -1
  1023. package/dist/team/__tests__/worker-restart.test.js +3 -1
  1024. package/dist/team/__tests__/worker-restart.test.js.map +1 -1
  1025. package/dist/team/allocation-policy.d.ts +34 -0
  1026. package/dist/team/allocation-policy.d.ts.map +1 -0
  1027. package/dist/team/allocation-policy.js +92 -0
  1028. package/dist/team/allocation-policy.js.map +1 -0
  1029. package/dist/team/api-interop.d.ts +1 -1
  1030. package/dist/team/api-interop.d.ts.map +1 -1
  1031. package/dist/team/api-interop.js +51 -6
  1032. package/dist/team/api-interop.js.map +1 -1
  1033. package/dist/team/audit-log.d.ts.map +1 -1
  1034. package/dist/team/audit-log.js +3 -2
  1035. package/dist/team/audit-log.js.map +1 -1
  1036. package/dist/team/events.d.ts.map +1 -1
  1037. package/dist/team/events.js +6 -4
  1038. package/dist/team/events.js.map +1 -1
  1039. package/dist/team/followup-planner.d.ts +32 -0
  1040. package/dist/team/followup-planner.d.ts.map +1 -0
  1041. package/dist/team/followup-planner.js +82 -0
  1042. package/dist/team/followup-planner.js.map +1 -0
  1043. package/dist/team/git-worktree.d.ts.map +1 -1
  1044. package/dist/team/git-worktree.js +20 -10
  1045. package/dist/team/git-worktree.js.map +1 -1
  1046. package/dist/team/governance.d.ts +18 -0
  1047. package/dist/team/governance.d.ts.map +1 -0
  1048. package/dist/team/governance.js +68 -0
  1049. package/dist/team/governance.js.map +1 -0
  1050. package/dist/team/index.d.ts +2 -1
  1051. package/dist/team/index.d.ts.map +1 -1
  1052. package/dist/team/index.js +1 -0
  1053. package/dist/team/index.js.map +1 -1
  1054. package/dist/team/leader-nudge-guidance.d.ts +23 -0
  1055. package/dist/team/leader-nudge-guidance.d.ts.map +1 -0
  1056. package/dist/team/leader-nudge-guidance.js +44 -0
  1057. package/dist/team/leader-nudge-guidance.js.map +1 -0
  1058. package/dist/team/mcp-comm.d.ts.map +1 -1
  1059. package/dist/team/mcp-comm.js +17 -3
  1060. package/dist/team/mcp-comm.js.map +1 -1
  1061. package/dist/team/mcp-team-bridge.d.ts.map +1 -1
  1062. package/dist/team/mcp-team-bridge.js +11 -48
  1063. package/dist/team/mcp-team-bridge.js.map +1 -1
  1064. package/dist/team/merge-coordinator.d.ts +3 -1
  1065. package/dist/team/merge-coordinator.d.ts.map +1 -1
  1066. package/dist/team/merge-coordinator.js +27 -5
  1067. package/dist/team/merge-coordinator.js.map +1 -1
  1068. package/dist/team/model-contract.d.ts +17 -0
  1069. package/dist/team/model-contract.d.ts.map +1 -1
  1070. package/dist/team/model-contract.js +49 -2
  1071. package/dist/team/model-contract.js.map +1 -1
  1072. package/dist/team/monitor.d.ts.map +1 -1
  1073. package/dist/team/monitor.js +69 -2
  1074. package/dist/team/monitor.js.map +1 -1
  1075. package/dist/team/outbox-reader.d.ts.map +1 -1
  1076. package/dist/team/outbox-reader.js +13 -10
  1077. package/dist/team/outbox-reader.js.map +1 -1
  1078. package/dist/team/phase-controller.js +2 -2
  1079. package/dist/team/phase-controller.js.map +1 -1
  1080. package/dist/team/role-router.d.ts +36 -0
  1081. package/dist/team/role-router.d.ts.map +1 -0
  1082. package/dist/team/role-router.js +215 -0
  1083. package/dist/team/role-router.js.map +1 -0
  1084. package/dist/team/runtime-cli.d.ts.map +1 -1
  1085. package/dist/team/runtime-cli.js +35 -0
  1086. package/dist/team/runtime-cli.js.map +1 -1
  1087. package/dist/team/runtime-v2.d.ts +1 -0
  1088. package/dist/team/runtime-v2.d.ts.map +1 -1
  1089. package/dist/team/runtime-v2.js +164 -49
  1090. package/dist/team/runtime-v2.js.map +1 -1
  1091. package/dist/team/runtime.d.ts.map +1 -1
  1092. package/dist/team/runtime.js +29 -15
  1093. package/dist/team/runtime.js.map +1 -1
  1094. package/dist/team/scaling.d.ts.map +1 -1
  1095. package/dist/team/scaling.js +12 -3
  1096. package/dist/team/scaling.js.map +1 -1
  1097. package/dist/team/state/tasks.js +1 -1
  1098. package/dist/team/state/tasks.js.map +1 -1
  1099. package/dist/team/state-paths.js +2 -2
  1100. package/dist/team/state-paths.js.map +1 -1
  1101. package/dist/team/task-file-ops.d.ts.map +1 -1
  1102. package/dist/team/task-file-ops.js +3 -43
  1103. package/dist/team/task-file-ops.js.map +1 -1
  1104. package/dist/team/task-router.d.ts.map +1 -1
  1105. package/dist/team/task-router.js +31 -1
  1106. package/dist/team/task-router.js.map +1 -1
  1107. package/dist/team/team-ops.d.ts.map +1 -1
  1108. package/dist/team/team-ops.js +93 -49
  1109. package/dist/team/team-ops.js.map +1 -1
  1110. package/dist/team/team-registration.d.ts.map +1 -1
  1111. package/dist/team/team-registration.js +18 -14
  1112. package/dist/team/team-registration.js.map +1 -1
  1113. package/dist/team/team-status.d.ts +1 -1
  1114. package/dist/team/team-status.d.ts.map +1 -1
  1115. package/dist/team/team-status.js +8 -5
  1116. package/dist/team/team-status.js.map +1 -1
  1117. package/dist/team/tmux-comm.d.ts.map +1 -1
  1118. package/dist/team/tmux-comm.js +5 -2
  1119. package/dist/team/tmux-comm.js.map +1 -1
  1120. package/dist/team/tmux-session.d.ts +32 -5
  1121. package/dist/team/tmux-session.d.ts.map +1 -1
  1122. package/dist/team/tmux-session.js +179 -50
  1123. package/dist/team/tmux-session.js.map +1 -1
  1124. package/dist/team/types.d.ts +16 -3
  1125. package/dist/team/types.d.ts.map +1 -1
  1126. package/dist/team/types.js.map +1 -1
  1127. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  1128. package/dist/team/worker-bootstrap.js +36 -23
  1129. package/dist/team/worker-bootstrap.js.map +1 -1
  1130. package/dist/team/worker-canonicalization.d.ts +8 -0
  1131. package/dist/team/worker-canonicalization.d.ts.map +1 -0
  1132. package/dist/team/worker-canonicalization.js +98 -0
  1133. package/dist/team/worker-canonicalization.js.map +1 -0
  1134. package/dist/tools/__tests__/cancel-integration.test.js +57 -2
  1135. package/dist/tools/__tests__/cancel-integration.test.js.map +1 -1
  1136. package/dist/tools/__tests__/deepinit-manifest.test.d.ts +7 -0
  1137. package/dist/tools/__tests__/deepinit-manifest.test.d.ts.map +1 -0
  1138. package/dist/tools/__tests__/deepinit-manifest.test.js +559 -0
  1139. package/dist/tools/__tests__/deepinit-manifest.test.js.map +1 -0
  1140. package/dist/tools/__tests__/state-tools.test.js +16 -0
  1141. package/dist/tools/__tests__/state-tools.test.js.map +1 -1
  1142. package/dist/tools/ast-tools.d.ts.map +1 -1
  1143. package/dist/tools/ast-tools.js +11 -2
  1144. package/dist/tools/ast-tools.js.map +1 -1
  1145. package/dist/tools/deepinit-manifest.d.ts +88 -0
  1146. package/dist/tools/deepinit-manifest.d.ts.map +1 -0
  1147. package/dist/tools/deepinit-manifest.js +373 -0
  1148. package/dist/tools/deepinit-manifest.js.map +1 -0
  1149. package/dist/tools/diagnostics/tsc-runner.js +2 -2
  1150. package/dist/tools/diagnostics/tsc-runner.js.map +1 -1
  1151. package/dist/tools/lsp/__tests__/client-devcontainer.test.d.ts +2 -0
  1152. package/dist/tools/lsp/__tests__/client-devcontainer.test.d.ts.map +1 -0
  1153. package/dist/tools/lsp/__tests__/client-devcontainer.test.js +185 -0
  1154. package/dist/tools/lsp/__tests__/client-devcontainer.test.js.map +1 -0
  1155. package/dist/tools/lsp/__tests__/client-singleton.test.d.ts +2 -0
  1156. package/dist/tools/lsp/__tests__/client-singleton.test.d.ts.map +1 -0
  1157. package/dist/tools/lsp/__tests__/client-singleton.test.js +17 -0
  1158. package/dist/tools/lsp/__tests__/client-singleton.test.js.map +1 -0
  1159. package/dist/tools/lsp/__tests__/client-timeout-env.test.js +18 -2
  1160. package/dist/tools/lsp/__tests__/client-timeout-env.test.js.map +1 -1
  1161. package/dist/tools/lsp/__tests__/devcontainer.test.d.ts +2 -0
  1162. package/dist/tools/lsp/__tests__/devcontainer.test.d.ts.map +1 -0
  1163. package/dist/tools/lsp/__tests__/devcontainer.test.js +311 -0
  1164. package/dist/tools/lsp/__tests__/devcontainer.test.js.map +1 -0
  1165. package/dist/tools/lsp/client.d.ts +17 -3
  1166. package/dist/tools/lsp/client.d.ts.map +1 -1
  1167. package/dist/tools/lsp/client.js +228 -77
  1168. package/dist/tools/lsp/client.js.map +1 -1
  1169. package/dist/tools/lsp/devcontainer.d.ts +12 -0
  1170. package/dist/tools/lsp/devcontainer.d.ts.map +1 -0
  1171. package/dist/tools/lsp/devcontainer.js +276 -0
  1172. package/dist/tools/lsp/devcontainer.js.map +1 -0
  1173. package/dist/tools/lsp/index.d.ts +2 -0
  1174. package/dist/tools/lsp/index.d.ts.map +1 -1
  1175. package/dist/tools/lsp/index.js +1 -0
  1176. package/dist/tools/lsp/index.js.map +1 -1
  1177. package/dist/tools/lsp/servers.d.ts +1 -0
  1178. package/dist/tools/lsp/servers.d.ts.map +1 -1
  1179. package/dist/tools/lsp/servers.js +20 -5
  1180. package/dist/tools/lsp/servers.js.map +1 -1
  1181. package/dist/tools/lsp/utils.d.ts.map +1 -1
  1182. package/dist/tools/lsp/utils.js +7 -1
  1183. package/dist/tools/lsp/utils.js.map +1 -1
  1184. package/dist/tools/python-repl/__tests__/bridge-manager-cleanup.test.js +34 -1
  1185. package/dist/tools/python-repl/__tests__/bridge-manager-cleanup.test.js.map +1 -1
  1186. package/dist/tools/python-repl/bridge-manager.d.ts +2 -0
  1187. package/dist/tools/python-repl/bridge-manager.d.ts.map +1 -1
  1188. package/dist/tools/python-repl/bridge-manager.js +38 -2
  1189. package/dist/tools/python-repl/bridge-manager.js.map +1 -1
  1190. package/dist/tools/python-repl/socket-client.d.ts.map +1 -1
  1191. package/dist/tools/python-repl/socket-client.js +37 -7
  1192. package/dist/tools/python-repl/socket-client.js.map +1 -1
  1193. package/dist/tools/python-repl/tool.d.ts.map +1 -1
  1194. package/dist/tools/python-repl/tool.js +1 -5
  1195. package/dist/tools/python-repl/tool.js.map +1 -1
  1196. package/dist/tools/state-tools.d.ts.map +1 -1
  1197. package/dist/tools/state-tools.js +193 -57
  1198. package/dist/tools/state-tools.js.map +1 -1
  1199. package/dist/tools/trace-tools.d.ts.map +1 -1
  1200. package/dist/tools/trace-tools.js +7 -5
  1201. package/dist/tools/trace-tools.js.map +1 -1
  1202. package/dist/tools/types.d.ts +16 -0
  1203. package/dist/tools/types.d.ts.map +1 -1
  1204. package/dist/utils/__tests__/paths.test.js +86 -1
  1205. package/dist/utils/__tests__/paths.test.js.map +1 -1
  1206. package/dist/utils/jsonc.d.ts.map +1 -1
  1207. package/dist/utils/jsonc.js +6 -2
  1208. package/dist/utils/jsonc.js.map +1 -1
  1209. package/dist/utils/omc-cli-rendering.d.ts +8 -0
  1210. package/dist/utils/omc-cli-rendering.d.ts.map +1 -0
  1211. package/dist/utils/omc-cli-rendering.js +37 -0
  1212. package/dist/utils/omc-cli-rendering.js.map +1 -0
  1213. package/dist/utils/paths.d.ts +32 -1
  1214. package/dist/utils/paths.d.ts.map +1 -1
  1215. package/dist/utils/paths.js +103 -8
  1216. package/dist/utils/paths.js.map +1 -1
  1217. package/dist/utils/skill-resources.d.ts +7 -0
  1218. package/dist/utils/skill-resources.d.ts.map +1 -0
  1219. package/dist/utils/skill-resources.js +53 -0
  1220. package/dist/utils/skill-resources.js.map +1 -0
  1221. package/dist/utils/ssrf-guard.d.ts.map +1 -1
  1222. package/dist/utils/ssrf-guard.js +22 -0
  1223. package/dist/utils/ssrf-guard.js.map +1 -1
  1224. package/docs/ARCHITECTURE.md +468 -37
  1225. package/docs/CLAUDE.md +1 -1
  1226. package/docs/COMPATIBILITY.md +18 -1
  1227. package/docs/LOCAL_PLUGIN_INSTALL.md +17 -3
  1228. package/docs/MIGRATION.md +8 -46
  1229. package/docs/PERFORMANCE-MONITORING.md +2 -2
  1230. package/docs/REFERENCE.md +99 -58
  1231. package/docs/design/SKILLS_2_0_ADAPTATION.md +115 -0
  1232. package/docs/ko/ARCHITECTURE.md +1 -1
  1233. package/docs/ko/MIGRATION.md +7 -47
  1234. package/docs/ko/REFERENCE.md +1 -15
  1235. package/docs/partials/features.md +1 -32
  1236. package/docs/partials/mode-hierarchy.md +7 -22
  1237. package/docs/partials/verification-tiers.md +1 -1
  1238. package/docs/plans/2026-02-26-skill-optimization-design.md +3 -3
  1239. package/docs/shared/features.md +1 -32
  1240. package/docs/shared/mode-hierarchy.md +7 -22
  1241. package/docs/shared/verification-tiers.md +1 -1
  1242. package/hooks/hooks.json +21 -31
  1243. package/package.json +1 -1
  1244. package/scripts/cleanup-orphans.mjs +12 -9
  1245. package/scripts/context-guard-stop.mjs +13 -5
  1246. package/scripts/context-safety.mjs +12 -149
  1247. package/scripts/eval-autoresearch-json.mjs +49 -0
  1248. package/scripts/eval-autoresearch-timed-json.mjs +62 -0
  1249. package/scripts/generate-featured-contributors.ts +43 -0
  1250. package/scripts/keyword-detector.mjs +136 -36
  1251. package/scripts/persistent-mode.cjs +87 -25
  1252. package/scripts/persistent-mode.mjs +37 -17
  1253. package/scripts/plugin-setup.mjs +19 -16
  1254. package/scripts/post-tool-verifier.mjs +25 -20
  1255. package/scripts/pre-tool-enforcer.mjs +184 -6
  1256. package/scripts/project-memory-session.mjs +5 -1
  1257. package/scripts/release.ts +511 -0
  1258. package/scripts/run-provider-advisor.js +10 -4
  1259. package/scripts/session-end.mjs +3 -2
  1260. package/scripts/session-start.mjs +118 -4
  1261. package/scripts/session-summary.mjs +241 -0
  1262. package/scripts/setup-claude-md.sh +140 -3
  1263. package/scripts/skill-injector.mjs +2 -1
  1264. package/scripts/sync-metadata.ts +41 -7
  1265. package/scripts/sync-version.sh +42 -0
  1266. package/skills/AGENTS.md +108 -74
  1267. package/skills/ai-slop-cleaner/SKILL.md +120 -117
  1268. package/skills/analyze/SKILL.md +42 -0
  1269. package/skills/ask/SKILL.md +4 -2
  1270. package/skills/autopilot/SKILL.md +1 -0
  1271. package/skills/bdd-generator/SKILL.md +60 -0
  1272. package/skills/cancel/SKILL.md +62 -0
  1273. package/skills/ccg/SKILL.md +7 -13
  1274. package/skills/configure-notifications/SKILL.md +1 -0
  1275. package/skills/deep-dive/SKILL.md +476 -0
  1276. package/skills/deep-interview/SKILL.md +109 -14
  1277. package/skills/deepinit/SKILL.md +1 -0
  1278. package/skills/e2e/SKILL.md +55 -0
  1279. package/skills/electron-driver/SKILL.md +51 -0
  1280. package/skills/electron-driver/scripts/driver-template.js +46 -0
  1281. package/skills/external-context/SKILL.md +1 -0
  1282. package/skills/hud/SKILL.md +6 -5
  1283. package/skills/learner/SKILL.md +63 -57
  1284. package/skills/mcp-setup/SKILL.md +1 -0
  1285. package/skills/multi-model-research/SKILL.md +51 -0
  1286. package/skills/omc-doctor/SKILL.md +6 -5
  1287. package/skills/omc-reference/SKILL.md +141 -0
  1288. package/skills/omc-setup/SKILL.md +11 -2
  1289. package/skills/omc-setup/phases/01-install-claude-md.md +11 -1
  1290. package/skills/omc-setup/phases/02-configure.md +3 -1
  1291. package/skills/omc-teams/SKILL.md +9 -5
  1292. package/skills/plan/SKILL.md +23 -7
  1293. package/skills/planning-with-files/SKILL.md +49 -0
  1294. package/skills/planning-with-files/examples.md +17 -0
  1295. package/skills/planning-with-files/reference.md +21 -0
  1296. package/skills/planning-with-files/scripts/check-complete.ps1 +28 -0
  1297. package/skills/planning-with-files/scripts/check-complete.sh +31 -0
  1298. package/skills/planning-with-files/scripts/init-session.ps1 +31 -0
  1299. package/skills/planning-with-files/scripts/init-session.sh +36 -0
  1300. package/skills/planning-with-files/scripts/session-catchup.py +66 -0
  1301. package/skills/planning-with-files/templates/findings.md +24 -0
  1302. package/skills/planning-with-files/templates/progress.md +38 -0
  1303. package/skills/planning-with-files/templates/task_plan.md +53 -0
  1304. package/skills/project-session-manager/SKILL.md +3 -2
  1305. package/skills/ralph/SKILL.md +17 -1
  1306. package/skills/ralplan/SKILL.md +4 -1
  1307. package/skills/release/SKILL.md +1 -0
  1308. package/skills/sciomc/SKILL.md +1 -0
  1309. package/skills/setup/SKILL.md +9 -8
  1310. package/skills/skill-creator/SKILL.md +311 -0
  1311. package/skills/skill-creator/references/upstream-anthropic-skill-creator.md +485 -0
  1312. package/skills/skill-debugger/README.md +52 -0
  1313. package/skills/skill-debugger/SKILL.md +146 -270
  1314. package/skills/skill-quality-analyzer/HOW_TO_USE.md +92 -185
  1315. package/skills/skill-quality-analyzer/README.md +39 -35
  1316. package/skills/skill-quality-analyzer/SKILL.md +105 -196
  1317. package/skills/skill-tester/README.md +31 -23
  1318. package/skills/skill-tester/SKILL.md +116 -266
  1319. package/skills/start-dev/SKILL.md +45 -0
  1320. package/skills/tdd-generator/SKILL.md +51 -0
  1321. package/skills/team/SKILL.md +1 -0
  1322. package/skills/test-coverage/SKILL.md +40 -0
  1323. package/skills/test-gen/SKILL.md +70 -0
  1324. package/skills/trace/SKILL.md +262 -0
  1325. package/skills/ultraqa/SKILL.md +1 -0
  1326. package/skills/ultrawork/SKILL.md +1 -0
  1327. package/skills/visual-verdict/SKILL.md +77 -0
  1328. package/skills/writer-memory/SKILL.md +1 -0
  1329. package/templates/hooks/keyword-detector.mjs +89 -25
  1330. package/templates/hooks/persistent-mode.mjs +33 -9
  1331. package/templates/hooks/post-tool-use-failure.mjs +2 -5
  1332. package/templates/hooks/pre-tool-use.mjs +47 -1
  1333. package/templates/hooks/session-start.mjs +105 -14
  1334. package/templates/hooks/stop-continuation.mjs +7 -1
  1335. package/dist/__tests__/codex-backoff.test.d.ts +0 -2
  1336. package/dist/__tests__/codex-backoff.test.d.ts.map +0 -1
  1337. package/dist/__tests__/codex-backoff.test.js +0 -143
  1338. package/dist/__tests__/codex-backoff.test.js.map +0 -1
  1339. package/dist/__tests__/codex-callsite-normalization.test.js +0 -112
  1340. package/dist/__tests__/compatibility-security.test.d.ts +0 -13
  1341. package/dist/__tests__/compatibility-security.test.d.ts.map +0 -1
  1342. package/dist/__tests__/compatibility-security.test.js +0 -403
  1343. package/dist/__tests__/compatibility-security.test.js.map +0 -1
  1344. package/dist/__tests__/compatibility.test.d.ts +0 -7
  1345. package/dist/__tests__/compatibility.test.d.ts.map +0 -1
  1346. package/dist/__tests__/compatibility.test.js +0 -484
  1347. package/dist/__tests__/compatibility.test.js.map +0 -1
  1348. package/dist/__tests__/example.test.d.ts +0 -2
  1349. package/dist/__tests__/example.test.d.ts.map +0 -1
  1350. package/dist/__tests__/example.test.js +0 -20
  1351. package/dist/__tests__/example.test.js.map +0 -1
  1352. package/dist/__tests__/hud/analytics-display.test.d.ts +0 -2
  1353. package/dist/__tests__/hud/analytics-display.test.d.ts.map +0 -1
  1354. package/dist/__tests__/hud/analytics-display.test.js +0 -236
  1355. package/dist/__tests__/hud/analytics-display.test.js.map +0 -1
  1356. package/dist/__tests__/hud/top-agents.test.d.ts +0 -8
  1357. package/dist/__tests__/hud/top-agents.test.d.ts.map +0 -1
  1358. package/dist/__tests__/hud/top-agents.test.js +0 -158
  1359. package/dist/__tests__/hud/top-agents.test.js.map +0 -1
  1360. package/dist/__tests__/inline-prompt-integration.test.d.ts +0 -2
  1361. package/dist/__tests__/inline-prompt-integration.test.d.ts.map +0 -1
  1362. package/dist/__tests__/inline-prompt-integration.test.js +0 -411
  1363. package/dist/__tests__/inline-prompt-integration.test.js.map +0 -1
  1364. package/dist/__tests__/inline-success-shape.test.d.ts +0 -2
  1365. package/dist/__tests__/inline-success-shape.test.d.ts.map +0 -1
  1366. package/dist/__tests__/inline-success-shape.test.js +0 -130
  1367. package/dist/__tests__/inline-success-shape.test.js.map +0 -1
  1368. package/dist/__tests__/mcp-fallback-429.test.d.ts +0 -2
  1369. package/dist/__tests__/mcp-fallback-429.test.d.ts.map +0 -1
  1370. package/dist/__tests__/mcp-fallback-429.test.js +0 -193
  1371. package/dist/__tests__/mcp-fallback-429.test.js.map +0 -1
  1372. package/dist/__tests__/mcp-server-workflows.test.d.ts +0 -2
  1373. package/dist/__tests__/mcp-server-workflows.test.d.ts.map +0 -1
  1374. package/dist/__tests__/mcp-server-workflows.test.js +0 -301
  1375. package/dist/__tests__/mcp-server-workflows.test.js.map +0 -1
  1376. package/dist/__tests__/multi-model-mcp-integration.test.d.ts +0 -2
  1377. package/dist/__tests__/multi-model-mcp-integration.test.d.ts.map +0 -1
  1378. package/dist/__tests__/multi-model-mcp-integration.test.js +0 -69
  1379. package/dist/__tests__/multi-model-mcp-integration.test.js.map +0 -1
  1380. package/dist/__tests__/multi-model-mcp.test.d.ts +0 -2
  1381. package/dist/__tests__/multi-model-mcp.test.d.ts.map +0 -1
  1382. package/dist/__tests__/multi-model-mcp.test.js +0 -145
  1383. package/dist/__tests__/multi-model-mcp.test.js.map +0 -1
  1384. package/dist/__tests__/omc-shorthand.test.d.ts +0 -2
  1385. package/dist/__tests__/omc-shorthand.test.d.ts.map +0 -1
  1386. package/dist/__tests__/omc-shorthand.test.js +0 -73
  1387. package/dist/__tests__/omc-shorthand.test.js.map +0 -1
  1388. package/dist/__tests__/prompt-file-only.test.d.ts +0 -2
  1389. package/dist/__tests__/prompt-file-only.test.d.ts.map +0 -1
  1390. package/dist/__tests__/prompt-file-only.test.js +0 -263
  1391. package/dist/__tests__/prompt-file-only.test.js.map +0 -1
  1392. package/dist/__tests__/session-catalog.test.d.ts +0 -2
  1393. package/dist/__tests__/session-catalog.test.d.ts.map +0 -1
  1394. package/dist/__tests__/session-catalog.test.js +0 -195
  1395. package/dist/__tests__/session-catalog.test.js.map +0 -1
  1396. package/dist/__tests__/session-migration.test.d.ts +0 -2
  1397. package/dist/__tests__/session-migration.test.d.ts.map +0 -1
  1398. package/dist/__tests__/session-migration.test.js +0 -155
  1399. package/dist/__tests__/session-migration.test.js.map +0 -1
  1400. package/dist/__tests__/shell-path.test.d.ts +0 -5
  1401. package/dist/__tests__/shell-path.test.d.ts.map +0 -1
  1402. package/dist/__tests__/shell-path.test.js +0 -70
  1403. package/dist/__tests__/shell-path.test.js.map +0 -1
  1404. package/dist/__tests__/smoke-functional.test.d.ts +0 -8
  1405. package/dist/__tests__/smoke-functional.test.d.ts.map +0 -1
  1406. package/dist/__tests__/smoke-functional.test.js +0 -450
  1407. package/dist/__tests__/smoke-functional.test.js.map +0 -1
  1408. package/dist/__tests__/smoke-team-worker.test.d.ts +0 -15
  1409. package/dist/__tests__/smoke-team-worker.test.d.ts.map +0 -1
  1410. package/dist/__tests__/smoke-team-worker.test.js +0 -483
  1411. package/dist/__tests__/smoke-team-worker.test.js.map +0 -1
  1412. package/dist/__tests__/validate-and-read-file.test.d.ts +0 -2
  1413. package/dist/__tests__/validate-and-read-file.test.d.ts.map +0 -1
  1414. package/dist/__tests__/validate-and-read-file.test.js +0 -84
  1415. package/dist/__tests__/validate-and-read-file.test.js.map +0 -1
  1416. package/dist/__tests__/worker-adapter.test.d.ts +0 -5
  1417. package/dist/__tests__/worker-adapter.test.d.ts.map +0 -1
  1418. package/dist/__tests__/worker-adapter.test.js +0 -211
  1419. package/dist/__tests__/worker-adapter.test.js.map +0 -1
  1420. package/dist/agents/coordinator-deprecated.d.ts +0 -18
  1421. package/dist/agents/coordinator-deprecated.d.ts.map +0 -1
  1422. package/dist/agents/coordinator-deprecated.js +0 -38
  1423. package/dist/agents/coordinator-deprecated.js.map +0 -1
  1424. package/dist/agents/deep-executor.d.ts +0 -15
  1425. package/dist/agents/deep-executor.d.ts.map +0 -1
  1426. package/dist/agents/deep-executor.js +0 -45
  1427. package/dist/agents/deep-executor.js.map +0 -1
  1428. package/dist/agents/delegation-validator.d.ts +0 -31
  1429. package/dist/agents/delegation-validator.d.ts.map +0 -1
  1430. package/dist/agents/delegation-validator.js +0 -75
  1431. package/dist/agents/delegation-validator.js.map +0 -1
  1432. package/dist/agents/harsh-critic.d.ts +0 -14
  1433. package/dist/agents/harsh-critic.d.ts.map +0 -1
  1434. package/dist/agents/harsh-critic.js +0 -42
  1435. package/dist/agents/harsh-critic.js.map +0 -1
  1436. package/dist/agents/preamble.d.ts +0 -38
  1437. package/dist/agents/preamble.d.ts.map +0 -1
  1438. package/dist/agents/preamble.js +0 -122
  1439. package/dist/agents/preamble.js.map +0 -1
  1440. package/dist/agents/prompt-generator.d.ts +0 -96
  1441. package/dist/agents/prompt-generator.d.ts.map +0 -1
  1442. package/dist/agents/prompt-generator.js +0 -141
  1443. package/dist/agents/prompt-generator.js.map +0 -1
  1444. package/dist/agents/researcher.d.ts +0 -12
  1445. package/dist/agents/researcher.d.ts.map +0 -1
  1446. package/dist/agents/researcher.js +0 -40
  1447. package/dist/agents/researcher.js.map +0 -1
  1448. package/dist/agents/vision.d.ts +0 -11
  1449. package/dist/agents/vision.d.ts.map +0 -1
  1450. package/dist/agents/vision.js +0 -40
  1451. package/dist/agents/vision.js.map +0 -1
  1452. package/dist/cli/commands/__tests__/cleanup.test.d.ts +0 -2
  1453. package/dist/cli/commands/__tests__/cleanup.test.d.ts.map +0 -1
  1454. package/dist/cli/commands/__tests__/cleanup.test.js +0 -37
  1455. package/dist/cli/commands/__tests__/cleanup.test.js.map +0 -1
  1456. package/dist/compatibility/discovery.d.ts +0 -58
  1457. package/dist/compatibility/discovery.d.ts.map +0 -1
  1458. package/dist/compatibility/discovery.js +0 -620
  1459. package/dist/compatibility/discovery.js.map +0 -1
  1460. package/dist/compatibility/index.d.ts +0 -51
  1461. package/dist/compatibility/index.d.ts.map +0 -1
  1462. package/dist/compatibility/index.js +0 -72
  1463. package/dist/compatibility/index.js.map +0 -1
  1464. package/dist/compatibility/mcp-bridge.d.ts +0 -143
  1465. package/dist/compatibility/mcp-bridge.d.ts.map +0 -1
  1466. package/dist/compatibility/mcp-bridge.js +0 -540
  1467. package/dist/compatibility/mcp-bridge.js.map +0 -1
  1468. package/dist/compatibility/permission-adapter.d.ts +0 -79
  1469. package/dist/compatibility/permission-adapter.d.ts.map +0 -1
  1470. package/dist/compatibility/permission-adapter.js +0 -369
  1471. package/dist/compatibility/permission-adapter.js.map +0 -1
  1472. package/dist/compatibility/registry.d.ts +0 -161
  1473. package/dist/compatibility/registry.d.ts.map +0 -1
  1474. package/dist/compatibility/registry.js +0 -389
  1475. package/dist/compatibility/registry.js.map +0 -1
  1476. package/dist/compatibility/types.d.ts +0 -249
  1477. package/dist/compatibility/types.d.ts.map +0 -1
  1478. package/dist/compatibility/types.js +0 -8
  1479. package/dist/compatibility/types.js.map +0 -1
  1480. package/dist/features/model-routing/__tests__/external-model-policy.test.d.ts +0 -2
  1481. package/dist/features/model-routing/__tests__/external-model-policy.test.d.ts.map +0 -1
  1482. package/dist/features/model-routing/__tests__/external-model-policy.test.js +0 -476
  1483. package/dist/features/model-routing/__tests__/external-model-policy.test.js.map +0 -1
  1484. package/dist/features/model-routing/external-model-policy.d.ts +0 -27
  1485. package/dist/features/model-routing/external-model-policy.d.ts.map +0 -1
  1486. package/dist/features/model-routing/external-model-policy.js +0 -145
  1487. package/dist/features/model-routing/external-model-policy.js.map +0 -1
  1488. package/dist/features/verification/example.d.ts +0 -49
  1489. package/dist/features/verification/example.d.ts.map +0 -1
  1490. package/dist/features/verification/example.js +0 -237
  1491. package/dist/features/verification/example.js.map +0 -1
  1492. package/dist/hooks/setup/__tests__/github-star.test.d.ts +0 -8
  1493. package/dist/hooks/setup/__tests__/github-star.test.d.ts.map +0 -1
  1494. package/dist/hooks/setup/__tests__/github-star.test.js +0 -208
  1495. package/dist/hooks/setup/__tests__/github-star.test.js.map +0 -1
  1496. package/dist/hooks/setup/github-star.d.ts +0 -37
  1497. package/dist/hooks/setup/github-star.d.ts.map +0 -1
  1498. package/dist/hooks/setup/github-star.js +0 -123
  1499. package/dist/hooks/setup/github-star.js.map +0 -1
  1500. package/dist/hooks/swarm/__tests__/addMoreTasks.test.d.ts +0 -2
  1501. package/dist/hooks/swarm/__tests__/addMoreTasks.test.d.ts.map +0 -1
  1502. package/dist/hooks/swarm/__tests__/addMoreTasks.test.js +0 -203
  1503. package/dist/hooks/swarm/__tests__/addMoreTasks.test.js.map +0 -1
  1504. package/dist/hooks/swarm/__tests__/aggressive-swarm.integration.test.d.ts +0 -2
  1505. package/dist/hooks/swarm/__tests__/aggressive-swarm.integration.test.d.ts.map +0 -1
  1506. package/dist/hooks/swarm/__tests__/aggressive-swarm.integration.test.js +0 -273
  1507. package/dist/hooks/swarm/__tests__/aggressive-swarm.integration.test.js.map +0 -1
  1508. package/dist/hooks/swarm/__tests__/claiming.test.d.ts +0 -2
  1509. package/dist/hooks/swarm/__tests__/claiming.test.d.ts.map +0 -1
  1510. package/dist/hooks/swarm/__tests__/claiming.test.js +0 -170
  1511. package/dist/hooks/swarm/__tests__/claiming.test.js.map +0 -1
  1512. package/dist/hooks/swarm/__tests__/index.test.d.ts.map +0 -1
  1513. package/dist/hooks/swarm/__tests__/index.test.js +0 -157
  1514. package/dist/hooks/swarm/__tests__/index.test.js.map +0 -1
  1515. package/dist/hooks/swarm/__tests__/migration.test.d.ts +0 -2
  1516. package/dist/hooks/swarm/__tests__/migration.test.d.ts.map +0 -1
  1517. package/dist/hooks/swarm/__tests__/migration.test.js +0 -140
  1518. package/dist/hooks/swarm/__tests__/migration.test.js.map +0 -1
  1519. package/dist/hooks/swarm/__tests__/mode-registry.test.d.ts +0 -2
  1520. package/dist/hooks/swarm/__tests__/mode-registry.test.d.ts.map +0 -1
  1521. package/dist/hooks/swarm/__tests__/mode-registry.test.js +0 -177
  1522. package/dist/hooks/swarm/__tests__/mode-registry.test.js.map +0 -1
  1523. package/dist/hooks/swarm/__tests__/priority-claiming.test.d.ts +0 -2
  1524. package/dist/hooks/swarm/__tests__/priority-claiming.test.d.ts.map +0 -1
  1525. package/dist/hooks/swarm/__tests__/priority-claiming.test.js +0 -122
  1526. package/dist/hooks/swarm/__tests__/priority-claiming.test.js.map +0 -1
  1527. package/dist/hooks/swarm/__tests__/types.test.d.ts +0 -2
  1528. package/dist/hooks/swarm/__tests__/types.test.d.ts.map +0 -1
  1529. package/dist/hooks/swarm/__tests__/types.test.js +0 -73
  1530. package/dist/hooks/swarm/__tests__/types.test.js.map +0 -1
  1531. package/dist/hooks/swarm/claiming.d.ts +0 -123
  1532. package/dist/hooks/swarm/claiming.d.ts.map +0 -1
  1533. package/dist/hooks/swarm/claiming.js +0 -639
  1534. package/dist/hooks/swarm/claiming.js.map +0 -1
  1535. package/dist/hooks/swarm/index.d.ts +0 -261
  1536. package/dist/hooks/swarm/index.d.ts.map +0 -1
  1537. package/dist/hooks/swarm/index.js +0 -485
  1538. package/dist/hooks/swarm/index.js.map +0 -1
  1539. package/dist/hooks/swarm/state.d.ts +0 -131
  1540. package/dist/hooks/swarm/state.d.ts.map +0 -1
  1541. package/dist/hooks/swarm/state.js +0 -690
  1542. package/dist/hooks/swarm/state.js.map +0 -1
  1543. package/dist/hooks/swarm/types.d.ts +0 -138
  1544. package/dist/hooks/swarm/types.d.ts.map +0 -1
  1545. package/dist/hooks/swarm/types.js +0 -22
  1546. package/dist/hooks/swarm/types.js.map +0 -1
  1547. package/dist/hooks/ultrapilot/decomposer.d.ts +0 -141
  1548. package/dist/hooks/ultrapilot/decomposer.d.ts.map +0 -1
  1549. package/dist/hooks/ultrapilot/decomposer.js +0 -379
  1550. package/dist/hooks/ultrapilot/decomposer.js.map +0 -1
  1551. package/dist/hooks/ultrapilot/index.d.ts +0 -121
  1552. package/dist/hooks/ultrapilot/index.d.ts.map +0 -1
  1553. package/dist/hooks/ultrapilot/index.js +0 -353
  1554. package/dist/hooks/ultrapilot/index.js.map +0 -1
  1555. package/dist/hooks/ultrapilot/state.d.ts +0 -72
  1556. package/dist/hooks/ultrapilot/state.d.ts.map +0 -1
  1557. package/dist/hooks/ultrapilot/state.js +0 -275
  1558. package/dist/hooks/ultrapilot/state.js.map +0 -1
  1559. package/dist/hooks/ultrapilot/types.d.ts +0 -115
  1560. package/dist/hooks/ultrapilot/types.d.ts.map +0 -1
  1561. package/dist/hooks/ultrapilot/types.js +0 -36
  1562. package/dist/hooks/ultrapilot/types.js.map +0 -1
  1563. package/dist/interop/__tests__/worker-adapter-integration.test.d.ts +0 -2
  1564. package/dist/interop/__tests__/worker-adapter-integration.test.d.ts.map +0 -1
  1565. package/dist/interop/__tests__/worker-adapter-integration.test.js +0 -219
  1566. package/dist/interop/__tests__/worker-adapter-integration.test.js.map +0 -1
  1567. package/dist/interop/__tests__/worker-adapter.test.d.ts +0 -2
  1568. package/dist/interop/__tests__/worker-adapter.test.d.ts.map +0 -1
  1569. package/dist/interop/__tests__/worker-adapter.test.js +0 -408
  1570. package/dist/interop/__tests__/worker-adapter.test.js.map +0 -1
  1571. package/dist/interop/adapter-types.d.ts +0 -39
  1572. package/dist/interop/adapter-types.d.ts.map +0 -1
  1573. package/dist/interop/adapter-types.js +0 -9
  1574. package/dist/interop/adapter-types.js.map +0 -1
  1575. package/dist/interop/worker-adapter.d.ts +0 -116
  1576. package/dist/interop/worker-adapter.d.ts.map +0 -1
  1577. package/dist/interop/worker-adapter.js +0 -324
  1578. package/dist/interop/worker-adapter.js.map +0 -1
  1579. package/dist/mcp/__tests__/codex-reasoning-effort.test.d.ts +0 -2
  1580. package/dist/mcp/__tests__/codex-reasoning-effort.test.d.ts.map +0 -1
  1581. package/dist/mcp/__tests__/codex-reasoning-effort.test.js +0 -175
  1582. package/dist/mcp/__tests__/codex-reasoning-effort.test.js.map +0 -1
  1583. package/dist/mcp/__tests__/job-state-db-deprecation.test.d.ts +0 -2
  1584. package/dist/mcp/__tests__/job-state-db-deprecation.test.d.ts.map +0 -1
  1585. package/dist/mcp/__tests__/job-state-db-deprecation.test.js +0 -119
  1586. package/dist/mcp/__tests__/job-state-db-deprecation.test.js.map +0 -1
  1587. package/dist/mcp/__tests__/shared-exec.test.d.ts +0 -2
  1588. package/dist/mcp/__tests__/shared-exec.test.d.ts.map +0 -1
  1589. package/dist/mcp/__tests__/shared-exec.test.js +0 -151
  1590. package/dist/mcp/__tests__/shared-exec.test.js.map +0 -1
  1591. package/dist/mcp/__tests__/team-server-deprecation.test.d.ts +0 -2
  1592. package/dist/mcp/__tests__/team-server-deprecation.test.d.ts.map +0 -1
  1593. package/dist/mcp/__tests__/team-server-deprecation.test.js +0 -56
  1594. package/dist/mcp/__tests__/team-server-deprecation.test.js.map +0 -1
  1595. package/dist/mcp/cli-detection.d.ts +0 -22
  1596. package/dist/mcp/cli-detection.d.ts.map +0 -1
  1597. package/dist/mcp/cli-detection.js +0 -77
  1598. package/dist/mcp/cli-detection.js.map +0 -1
  1599. package/dist/mcp/codex-core.d.ts +0 -119
  1600. package/dist/mcp/codex-core.d.ts.map +0 -1
  1601. package/dist/mcp/codex-core.js +0 -942
  1602. package/dist/mcp/codex-core.js.map +0 -1
  1603. package/dist/mcp/codex-request-normalizer.js +0 -59
  1604. package/dist/mcp/codex-server.d.ts +0 -20
  1605. package/dist/mcp/codex-server.d.ts.map +0 -1
  1606. package/dist/mcp/codex-server.js +0 -81
  1607. package/dist/mcp/codex-server.js.map +0 -1
  1608. package/dist/mcp/codex-standalone-server.d.ts +0 -8
  1609. package/dist/mcp/codex-standalone-server.d.ts.map +0 -1
  1610. package/dist/mcp/codex-standalone-server.js +0 -81
  1611. package/dist/mcp/codex-standalone-server.js.map +0 -1
  1612. package/dist/mcp/gemini-core.d.ts +0 -75
  1613. package/dist/mcp/gemini-core.d.ts.map +0 -1
  1614. package/dist/mcp/gemini-core.js +0 -674
  1615. package/dist/mcp/gemini-core.js.map +0 -1
  1616. package/dist/mcp/gemini-server.d.ts +0 -20
  1617. package/dist/mcp/gemini-server.d.ts.map +0 -1
  1618. package/dist/mcp/gemini-server.js +0 -69
  1619. package/dist/mcp/gemini-server.js.map +0 -1
  1620. package/dist/mcp/gemini-standalone-server.d.ts +0 -8
  1621. package/dist/mcp/gemini-standalone-server.d.ts.map +0 -1
  1622. package/dist/mcp/gemini-standalone-server.js +0 -72
  1623. package/dist/mcp/gemini-standalone-server.js.map +0 -1
  1624. package/dist/mcp/job-state-db.d.ts +0 -2
  1625. package/dist/mcp/job-state-db.d.ts.map +0 -1
  1626. package/dist/mcp/job-state-db.js +0 -3
  1627. package/dist/mcp/job-state-db.js.map +0 -1
  1628. package/dist/mcp/shared-exec.d.ts +0 -50
  1629. package/dist/mcp/shared-exec.d.ts.map +0 -1
  1630. package/dist/mcp/shared-exec.js +0 -182
  1631. package/dist/mcp/shared-exec.js.map +0 -1
  1632. package/dist/team/__tests__/cli-path-resolution.test.d.ts +0 -2
  1633. package/dist/team/__tests__/cli-path-resolution.test.d.ts.map +0 -1
  1634. package/dist/team/__tests__/cli-path-resolution.test.js +0 -281
  1635. package/dist/team/__tests__/cli-path-resolution.test.js.map +0 -1
  1636. package/dist/team/__tests__/layout-stabilizer.test.d.ts +0 -2
  1637. package/dist/team/__tests__/layout-stabilizer.test.d.ts.map +0 -1
  1638. package/dist/team/__tests__/layout-stabilizer.test.js +0 -217
  1639. package/dist/team/__tests__/layout-stabilizer.test.js.map +0 -1
  1640. package/dist/team/__tests__/pane-readiness.test.d.ts +0 -2
  1641. package/dist/team/__tests__/pane-readiness.test.d.ts.map +0 -1
  1642. package/dist/team/__tests__/pane-readiness.test.js +0 -185
  1643. package/dist/team/__tests__/pane-readiness.test.js.map +0 -1
  1644. package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts +0 -2
  1645. package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts.map +0 -1
  1646. package/dist/team/__tests__/runtime-gemini-prompt.test.js +0 -153
  1647. package/dist/team/__tests__/runtime-gemini-prompt.test.js.map +0 -1
  1648. package/dist/team/__tests__/runtime-interop-spawn-regression.test.d.ts +0 -2
  1649. package/dist/team/__tests__/runtime-interop-spawn-regression.test.d.ts.map +0 -1
  1650. package/dist/team/__tests__/runtime-interop-spawn-regression.test.js +0 -139
  1651. package/dist/team/__tests__/runtime-interop-spawn-regression.test.js.map +0 -1
  1652. package/dist/team/__tests__/shell-path.test.d.ts +0 -2
  1653. package/dist/team/__tests__/shell-path.test.d.ts.map +0 -1
  1654. package/dist/team/__tests__/shell-path.test.js +0 -193
  1655. package/dist/team/__tests__/shell-path.test.js.map +0 -1
  1656. package/dist/team/__tests__/wait-for-shell-ready.test.d.ts +0 -2
  1657. package/dist/team/__tests__/wait-for-shell-ready.test.d.ts.map +0 -1
  1658. package/dist/team/__tests__/wait-for-shell-ready.test.js +0 -242
  1659. package/dist/team/__tests__/wait-for-shell-ready.test.js.map +0 -1
  1660. package/dist/team/shell-path.d.ts +0 -21
  1661. package/dist/team/shell-path.d.ts.map +0 -1
  1662. package/dist/team/shell-path.js +0 -73
  1663. package/dist/team/shell-path.js.map +0 -1
  1664. package/scripts/ask-codex.sh +0 -24
  1665. package/scripts/ask-gemini.sh +0 -24
  1666. package/scripts/build-gemini-server.mjs +0 -74
  1667. package/scripts/test-codex-gemini-team.mjs +0 -78
  1668. package/skills/skill-development/SKILL.md +0 -218
  1669. package/skills/skill-development/references/description-patterns.md +0 -160
  1670. package/skills/skill-development/references/format-guide.md +0 -203
  1671. package/skills/test-gen/skill.md +0 -531
  1672. /package/dist/{hooks/swarm → features/delegation-categories}/__tests__/index.test.d.ts +0 -0
@@ -1,942 +0,0 @@
1
- /**
2
- * Codex MCP Core - Shared business logic for Codex CLI integration
3
- *
4
- * This module contains all the business logic for the Codex MCP integration.
5
- * It is imported by both the in-process SDK server (codex-server.ts) and the
6
- * standalone stdio server to eliminate code duplication.
7
- *
8
- * This module is SDK-agnostic and contains no dependencies on @anthropic-ai/claude-agent-sdk.
9
- */
10
- import { spawn } from 'child_process';
11
- import { appendFileSync, existsSync, mkdirSync, readFileSync, realpathSync, unlinkSync, writeFileSync } from 'fs';
12
- import { resolve, relative, sep, isAbsolute, join } from 'path';
13
- import { createStdoutCollector, safeWriteOutputFile } from './shared-exec.js';
14
- import { detectCodexCli } from './cli-detection.js';
15
- import { getWorktreeRoot } from '../lib/worktree-paths.js';
16
- import { isExternalPromptAllowed } from './mcp-config.js';
17
- import { resolveSystemPrompt, buildPromptWithSystemContext, wrapUntrustedCliResponse, isValidAgentRoleName, VALID_AGENT_ROLES, singleErrorBlock, inlineSuccessBlocks, validateContextFilePaths } from './prompt-injection.js';
18
- import { persistPrompt, persistResponse, getExpectedResponsePath, getPromptsDir, slugify, generatePromptId } from './prompt-persistence.js';
19
- import { writeJobStatus, getStatusFilePath, readJobStatus } from './prompt-persistence.js';
20
- import { resolveExternalModel, buildFallbackChain, CODEX_MODEL_FALLBACKS, } from '../features/model-routing/external-model-policy.js';
21
- import { loadConfig } from '../config/loader.js';
22
- // Module-scoped PID registry - tracks PIDs spawned by this process
23
- const spawnedPids = new Set();
24
- export function isSpawnedPid(pid) {
25
- return spawnedPids.has(pid);
26
- }
27
- export function clearSpawnedPids() {
28
- spawnedPids.clear();
29
- }
30
- // Model name validation: alphanumeric start, then alphanumeric/dots/hyphens/underscores, max 64 chars
31
- const MODEL_NAME_REGEX = /^[a-z0-9][a-z0-9._-]{0,63}$/i;
32
- function validateModelName(model) {
33
- if (!MODEL_NAME_REGEX.test(model)) {
34
- throw new Error(`Invalid model name: "${model}". Model names must match pattern: alphanumeric start, followed by alphanumeric, dots, hyphens, or underscores (max 64 chars).`);
35
- }
36
- }
37
- // Default model can be overridden via environment variable
38
- export const CODEX_DEFAULT_MODEL = process.env.OMC_CODEX_DEFAULT_MODEL || 'gpt-5.3-codex';
39
- export const CODEX_TIMEOUT = Math.min(Math.max(5000, parseInt(process.env.OMC_CODEX_TIMEOUT || '3600000', 10) || 3600000), 3600000);
40
- // Rate limit backoff configuration (configurable via environment variables)
41
- export const RATE_LIMIT_RETRY_COUNT = Math.min(10, Math.max(1, parseInt(process.env.OMC_CODEX_RATE_LIMIT_RETRY_COUNT || '3', 10) || 3));
42
- export const RATE_LIMIT_INITIAL_DELAY = Math.max(1000, parseInt(process.env.OMC_CODEX_RATE_LIMIT_INITIAL_DELAY || '5000', 10) || 5000);
43
- export const RATE_LIMIT_MAX_DELAY = Math.max(5000, parseInt(process.env.OMC_CODEX_RATE_LIMIT_MAX_DELAY || '60000', 10) || 60000);
44
- // Re-export CODEX_MODEL_FALLBACKS for backward compatibility
45
- export { CODEX_MODEL_FALLBACKS };
46
- // Codex is best for analytical/planning tasks (recommended, not enforced)
47
- export const CODEX_RECOMMENDED_ROLES = ['architect', 'planner', 'critic', 'analyst', 'code-reviewer', 'security-reviewer', 'test-engineer'];
48
- // Valid reasoning effort levels for Codex CLI (via -c model_reasoning_effort=<value>)
49
- // Default (when omitted): inherits from ~/.codex/config.toml (Codex CLI default is "medium")
50
- export const VALID_REASONING_EFFORTS = ['minimal', 'low', 'medium', 'high', 'xhigh'];
51
- export const MAX_FILE_SIZE = 5 * 1024 * 1024; // 5MB per file
52
- export const MAX_STDOUT_BYTES = 10 * 1024 * 1024; // 10MB stdout cap
53
- const RATE_LIMIT_OR_DISCONNECT_REGEX = /429|rate.?limit|too many requests|quota.?exceeded|resource.?exhausted|stream disconnected|transport closed|econnreset|epipe/i;
54
- const RETRYABLE_MODEL_OR_RATE_LIMIT_OR_DISCONNECT_REGEX = /model error|model_not_found|model is not supported|429|rate.?limit|too many requests|quota.?exceeded|resource.?exhausted|stream disconnected|transport closed|econnreset|epipe/i;
55
- /**
56
- * Compute exponential backoff delay with jitter for rate limit retries.
57
- * Returns delay in ms: min(initialDelay * 2^attempt, maxDelay) * random(0.5, 1.0)
58
- */
59
- export function computeBackoffDelay(attempt, initialDelay = RATE_LIMIT_INITIAL_DELAY, maxDelay = RATE_LIMIT_MAX_DELAY) {
60
- const exponential = initialDelay * Math.pow(2, attempt);
61
- const capped = Math.min(exponential, maxDelay);
62
- const jitter = capped * (0.5 + Math.random() * 0.5);
63
- return Math.round(jitter);
64
- }
65
- /**
66
- * Sleep for the specified duration. Exported for test mockability.
67
- */
68
- export function sleep(ms) {
69
- return new Promise(resolve => setTimeout(resolve, ms));
70
- }
71
- /**
72
- * Check if Codex JSONL output contains a model-not-found error
73
- */
74
- export function isModelError(output) {
75
- const lines = output.trim().split('\n').filter(l => l.trim());
76
- for (const line of lines) {
77
- try {
78
- const event = JSON.parse(line);
79
- if (event.type === 'error' || event.type === 'turn.failed') {
80
- const msg = typeof event.message === 'string' ? event.message :
81
- typeof event.error?.message === 'string' ? event.error.message : '';
82
- if (/model_not_found|model is not supported/i.test(msg)) {
83
- return { isError: true, message: msg };
84
- }
85
- }
86
- }
87
- catch { /* skip non-JSON lines */ }
88
- }
89
- return { isError: false, message: '' };
90
- }
91
- /**
92
- * Check if an error message or output indicates a rate-limit (429) error
93
- * that should trigger a fallback to the next model in the chain.
94
- */
95
- export function isRateLimitError(output, stderr = '') {
96
- const combined = `${output}\n${stderr}`;
97
- // Check for 429/rate-limit and transport disconnect signatures in stdout/stderr
98
- if (RATE_LIMIT_OR_DISCONNECT_REGEX.test(combined)) {
99
- // Extract a meaningful message
100
- const lines = combined.split('\n').filter(l => l.trim());
101
- for (const line of lines) {
102
- try {
103
- const event = JSON.parse(line);
104
- const msg = typeof event.message === 'string' ? event.message :
105
- typeof event.error?.message === 'string' ? event.error.message : '';
106
- if (RATE_LIMIT_OR_DISCONNECT_REGEX.test(msg)) {
107
- return { isError: true, message: msg };
108
- }
109
- }
110
- catch { /* check raw line */ }
111
- if (RATE_LIMIT_OR_DISCONNECT_REGEX.test(line)) {
112
- return { isError: true, message: line.trim() };
113
- }
114
- }
115
- return { isError: true, message: 'Retryable rate-limit/transport error detected' };
116
- }
117
- return { isError: false, message: '' };
118
- }
119
- /**
120
- * Check if an error is retryable (model error OR rate limit error)
121
- */
122
- export function isRetryableError(output, stderr = '') {
123
- const modelErr = isModelError(output);
124
- if (modelErr.isError) {
125
- return { isError: true, message: modelErr.message, type: 'model' };
126
- }
127
- const rateErr = isRateLimitError(output, stderr);
128
- if (rateErr.isError) {
129
- return { isError: true, message: rateErr.message, type: 'rate_limit' };
130
- }
131
- return { isError: false, message: '', type: 'none' };
132
- }
133
- /**
134
- * Parse Codex JSONL output to extract the final text response
135
- *
136
- * Codex CLI (--json mode) emits JSONL events. We extract text from:
137
- * - item.completed with item.type === "agent_message" (final response text)
138
- * - message events with content (string or array of {type: "text", text})
139
- * - output_text events with text
140
- *
141
- * Note: Codex may also write to the output_file directly via shell commands.
142
- * If it does, callers should prefer the file content over parsed stdout.
143
- */
144
- export function parseCodexOutput(output) {
145
- const lines = output.trim().split('\n').filter(l => l.trim());
146
- const messages = [];
147
- for (const line of lines) {
148
- try {
149
- const event = JSON.parse(line);
150
- // Handle item.completed events (primary format from current Codex CLI)
151
- if (event.type === 'item.completed' && event.item) {
152
- const item = event.item;
153
- // agent_message contains the final response text
154
- if (item.type === 'agent_message' && item.text) {
155
- messages.push(item.text);
156
- }
157
- }
158
- // Handle message events with text content (older/alternative format)
159
- if (event.type === 'message' && event.content) {
160
- if (typeof event.content === 'string') {
161
- messages.push(event.content);
162
- }
163
- else if (Array.isArray(event.content)) {
164
- for (const part of event.content) {
165
- if (part.type === 'text' && part.text) {
166
- messages.push(part.text);
167
- }
168
- }
169
- }
170
- }
171
- // Handle output_text events
172
- if (event.type === 'output_text' && event.text) {
173
- messages.push(event.text);
174
- }
175
- }
176
- catch {
177
- // Skip non-JSON lines (progress indicators, etc.)
178
- }
179
- }
180
- return messages.join('\n') || output; // Fallback to raw output
181
- }
182
- /**
183
- * Execute Codex CLI command and return the response
184
- */
185
- export function executeCodex(prompt, model, cwd, reasoningEffort) {
186
- return new Promise((resolve, reject) => {
187
- validateModelName(model);
188
- let settled = false;
189
- const args = ['exec', '-m', model, '--json', '--full-auto', '--skip-git-repo-check'];
190
- // Per-call reasoning effort override via Codex CLI -c flag
191
- if (reasoningEffort && VALID_REASONING_EFFORTS.includes(reasoningEffort)) {
192
- args.push('-c', `model_reasoning_effort="${reasoningEffort}"`);
193
- }
194
- const child = spawn('codex', args, {
195
- stdio: ['pipe', 'pipe', 'pipe'],
196
- ...(cwd ? { cwd } : {}),
197
- // shell: true needed on Windows for .cmd/.bat executables.
198
- // Safe: args are array-based and model names are regex-validated.
199
- ...(process.platform === 'win32' ? { shell: true } : {})
200
- });
201
- // Manual timeout handling to ensure proper cleanup
202
- const timeoutHandle = setTimeout(() => {
203
- if (!settled) {
204
- settled = true;
205
- child.kill('SIGTERM');
206
- reject(new Error(`Codex timed out after ${CODEX_TIMEOUT}ms`));
207
- }
208
- }, CODEX_TIMEOUT);
209
- const collector = createStdoutCollector(MAX_STDOUT_BYTES);
210
- let stderr = '';
211
- child.stdout.on('data', (data) => {
212
- collector.append(data.toString());
213
- });
214
- child.stderr.on('data', (data) => {
215
- stderr += data.toString();
216
- });
217
- child.on('close', (code) => {
218
- if (!settled) {
219
- settled = true;
220
- clearTimeout(timeoutHandle);
221
- const stdout = collector.toString();
222
- if (code === 0 || stdout.trim()) {
223
- const retryable = isRetryableError(stdout, stderr);
224
- if (retryable.isError) {
225
- reject(new Error(`Codex ${retryable.type === 'rate_limit' ? 'rate limit' : 'model'} error: ${retryable.message}`));
226
- }
227
- else {
228
- resolve(parseCodexOutput(stdout));
229
- }
230
- }
231
- else {
232
- // Check stderr for rate limit errors before generic failure
233
- const retryableExit = isRateLimitError(stderr, stdout);
234
- if (retryableExit.isError) {
235
- reject(new Error(`Codex rate limit error: ${retryableExit.message}`));
236
- }
237
- else {
238
- reject(new Error(`Codex exited with code ${code}: ${stderr || 'No output'}`));
239
- }
240
- }
241
- }
242
- });
243
- child.on('error', (err) => {
244
- if (!settled) {
245
- settled = true;
246
- clearTimeout(timeoutHandle);
247
- child.kill('SIGTERM');
248
- reject(new Error(`Failed to spawn Codex CLI: ${err.message}`));
249
- }
250
- });
251
- // Pipe prompt via stdin with error handling
252
- child.stdin.on('error', (err) => {
253
- if (!settled) {
254
- settled = true;
255
- clearTimeout(timeoutHandle);
256
- child.kill('SIGTERM');
257
- reject(new Error(`Stdin write error: ${err.message}`));
258
- }
259
- });
260
- child.stdin.write(prompt);
261
- child.stdin.end();
262
- });
263
- }
264
- /**
265
- * Execute Codex CLI with model fallback chain and exponential backoff on rate limits.
266
- * Falls back on model_not_found or rate limit errors when model was not explicitly provided.
267
- * When model IS explicit, retries the same model with backoff on rate limit.
268
- */
269
- export async function executeCodexWithFallback(prompt, model, cwd, fallbackChain,
270
- /** @internal Testing overrides */
271
- overrides, reasoningEffort) {
272
- const exec = overrides?.executor ?? executeCodex;
273
- const sleepFn = overrides?.sleepFn ?? sleep;
274
- const modelExplicit = model !== undefined && model !== null && model !== '';
275
- const effectiveModel = model || CODEX_DEFAULT_MODEL;
276
- // If model was explicitly provided, retry with backoff on rate limit (no fallback chain)
277
- if (modelExplicit) {
278
- let lastError = null;
279
- for (let attempt = 0; attempt <= RATE_LIMIT_RETRY_COUNT; attempt++) {
280
- try {
281
- const response = await exec(prompt, effectiveModel, cwd, reasoningEffort);
282
- return { response, usedFallback: false, actualModel: effectiveModel };
283
- }
284
- catch (err) {
285
- lastError = err;
286
- if (!RATE_LIMIT_OR_DISCONNECT_REGEX.test(lastError.message)) {
287
- throw lastError; // Non-rate-limit error, throw immediately
288
- }
289
- if (attempt < RATE_LIMIT_RETRY_COUNT) {
290
- const delay = computeBackoffDelay(attempt, RATE_LIMIT_INITIAL_DELAY, RATE_LIMIT_MAX_DELAY);
291
- await sleepFn(delay);
292
- }
293
- }
294
- }
295
- throw lastError || new Error('Codex rate limit: all retries exhausted');
296
- }
297
- // Use provided fallback chain or build from defaults
298
- const chain = fallbackChain || CODEX_MODEL_FALLBACKS;
299
- const modelsToTry = chain.includes(effectiveModel)
300
- ? chain.slice(chain.indexOf(effectiveModel))
301
- : [effectiveModel, ...chain];
302
- let lastError = null;
303
- let rateLimitAttempt = 0;
304
- for (const tryModel of modelsToTry) {
305
- try {
306
- const response = await exec(prompt, tryModel, cwd, reasoningEffort);
307
- return {
308
- response,
309
- usedFallback: tryModel !== effectiveModel,
310
- actualModel: tryModel,
311
- };
312
- }
313
- catch (err) {
314
- lastError = err;
315
- // Retry on model errors and rate limit errors
316
- if (!RETRYABLE_MODEL_OR_RATE_LIMIT_OR_DISCONNECT_REGEX.test(lastError.message)) {
317
- throw lastError; // Non-retryable error, don't retry
318
- }
319
- // Add backoff delay for rate limit errors before trying next model
320
- if (RATE_LIMIT_OR_DISCONNECT_REGEX.test(lastError.message)) {
321
- const delay = computeBackoffDelay(rateLimitAttempt, RATE_LIMIT_INITIAL_DELAY, RATE_LIMIT_MAX_DELAY);
322
- await sleepFn(delay);
323
- rateLimitAttempt++;
324
- }
325
- // Continue to next model in chain (no delay for model errors)
326
- }
327
- }
328
- throw lastError || new Error('All Codex models in fallback chain failed');
329
- }
330
- /**
331
- * Execute Codex CLI in background with fallback chain, writing status and response files upon completion
332
- */
333
- export function executeCodexBackground(fullPrompt, modelInput, jobMeta, workingDirectory, reasoningEffort) {
334
- try {
335
- const modelExplicit = modelInput !== undefined && modelInput !== null && modelInput !== '';
336
- const effectiveModel = modelInput || CODEX_DEFAULT_MODEL;
337
- // Build fallback chain
338
- const modelsToTry = modelExplicit
339
- ? [effectiveModel] // No fallback if model explicitly provided
340
- : (CODEX_MODEL_FALLBACKS.includes(effectiveModel)
341
- ? CODEX_MODEL_FALLBACKS.slice(CODEX_MODEL_FALLBACKS.indexOf(effectiveModel))
342
- : [effectiveModel, ...CODEX_MODEL_FALLBACKS]);
343
- // Helper to try spawning with a specific model
344
- const trySpawnWithModel = (tryModel, remainingModels, rateLimitAttempt = 0) => {
345
- validateModelName(tryModel);
346
- const args = ['exec', '-m', tryModel, '--json', '--full-auto', '--skip-git-repo-check'];
347
- // Per-call reasoning effort override for background execution
348
- if (reasoningEffort && VALID_REASONING_EFFORTS.includes(reasoningEffort)) {
349
- args.push('-c', `model_reasoning_effort="${reasoningEffort}"`);
350
- }
351
- const child = spawn('codex', args, {
352
- detached: process.platform !== 'win32',
353
- stdio: ['pipe', 'pipe', 'pipe'],
354
- ...(workingDirectory ? { cwd: workingDirectory } : {}),
355
- // shell: true needed on Windows for .cmd/.bat executables.
356
- // Safe: args are array-based and model names are regex-validated.
357
- ...(process.platform === 'win32' ? { shell: true } : {})
358
- });
359
- if (!child.pid) {
360
- return { error: 'Failed to get process ID' };
361
- }
362
- const pid = child.pid;
363
- spawnedPids.add(pid);
364
- child.unref();
365
- // Write initial spawned status
366
- const initialStatus = {
367
- provider: 'codex',
368
- jobId: jobMeta.jobId,
369
- slug: jobMeta.slug,
370
- status: 'spawned',
371
- pid,
372
- promptFile: jobMeta.promptFile,
373
- responseFile: jobMeta.responseFile,
374
- model: tryModel,
375
- agentRole: jobMeta.agentRole,
376
- spawnedAt: new Date().toISOString(),
377
- };
378
- writeJobStatus(initialStatus, workingDirectory);
379
- const collector = createStdoutCollector(MAX_STDOUT_BYTES);
380
- const partialFile = jobMeta.responseFile + '.partial';
381
- let stderr = '';
382
- let settled = false;
383
- const cleanupPartial = () => {
384
- try {
385
- if (existsSync(partialFile))
386
- unlinkSync(partialFile);
387
- }
388
- catch { /* ignore */ }
389
- };
390
- const timeoutHandle = setTimeout(() => {
391
- if (!settled) {
392
- settled = true;
393
- spawnedPids.delete(pid);
394
- try {
395
- // Detached children are process-group leaders on POSIX.
396
- if (process.platform !== 'win32')
397
- process.kill(-pid, 'SIGTERM');
398
- else
399
- child.kill('SIGTERM');
400
- }
401
- catch {
402
- // ignore
403
- }
404
- cleanupPartial();
405
- writeJobStatus({
406
- ...initialStatus,
407
- status: 'timeout',
408
- completedAt: new Date().toISOString(),
409
- error: `Codex timed out after ${CODEX_TIMEOUT}ms`,
410
- }, workingDirectory);
411
- }
412
- }, CODEX_TIMEOUT);
413
- child.stdout?.on('data', (data) => {
414
- collector.append(data.toString());
415
- try {
416
- appendFileSync(partialFile, data);
417
- }
418
- catch { /* ignore */ }
419
- });
420
- child.stderr?.on('data', (data) => { stderr += data.toString(); });
421
- // Update to running after stdin write
422
- child.stdin?.on('error', (err) => {
423
- if (settled)
424
- return;
425
- settled = true;
426
- clearTimeout(timeoutHandle);
427
- cleanupPartial();
428
- writeJobStatus({
429
- ...initialStatus,
430
- status: 'failed',
431
- completedAt: new Date().toISOString(),
432
- error: `Stdin write error: ${err.message}`,
433
- }, workingDirectory);
434
- });
435
- child.stdin?.write(fullPrompt);
436
- child.stdin?.end();
437
- writeJobStatus({ ...initialStatus, status: 'running' }, workingDirectory);
438
- child.on('close', (code) => {
439
- if (settled)
440
- return;
441
- settled = true;
442
- clearTimeout(timeoutHandle);
443
- spawnedPids.delete(pid);
444
- cleanupPartial();
445
- const stdout = collector.toString();
446
- // Check if user killed this job - if so, don't overwrite the killed status
447
- const currentStatus = readJobStatus('codex', jobMeta.slug, jobMeta.jobId, workingDirectory);
448
- if (currentStatus?.killedByUser) {
449
- return; // Status already set by kill_job, don't overwrite
450
- }
451
- if (code === 0 || stdout.trim()) {
452
- // Check for retryable errors (model errors + rate limit/429 errors)
453
- const retryableErr = isRetryableError(stdout, stderr);
454
- if (retryableErr.isError) {
455
- const isRateLimit = retryableErr.type === 'rate_limit';
456
- // Rate limit with explicit model: retry same model with backoff
457
- if (isRateLimit && modelExplicit && rateLimitAttempt < RATE_LIMIT_RETRY_COUNT) {
458
- const delay = computeBackoffDelay(rateLimitAttempt, RATE_LIMIT_INITIAL_DELAY, RATE_LIMIT_MAX_DELAY);
459
- setTimeout(() => {
460
- const retryResult = trySpawnWithModel(tryModel, remainingModels, rateLimitAttempt + 1);
461
- if ('error' in retryResult) {
462
- writeJobStatus({
463
- ...initialStatus,
464
- status: 'failed',
465
- completedAt: new Date().toISOString(),
466
- error: `Rate limit retry failed for model ${tryModel}: ${retryResult.error}`,
467
- }, workingDirectory);
468
- }
469
- }, delay);
470
- return;
471
- }
472
- // Fallback chain: try next model (with backoff for rate limit, immediate for model errors)
473
- if (remainingModels.length > 0) {
474
- const nextModel = remainingModels[0];
475
- const newRemainingModels = remainingModels.slice(1);
476
- if (isRateLimit) {
477
- const delay = computeBackoffDelay(rateLimitAttempt, RATE_LIMIT_INITIAL_DELAY, RATE_LIMIT_MAX_DELAY);
478
- setTimeout(() => {
479
- const retryResult = trySpawnWithModel(nextModel, newRemainingModels, rateLimitAttempt + 1);
480
- if ('error' in retryResult) {
481
- writeJobStatus({
482
- ...initialStatus,
483
- status: 'failed',
484
- completedAt: new Date().toISOString(),
485
- error: `Fallback spawn failed for model ${nextModel}: ${retryResult.error}`,
486
- }, workingDirectory);
487
- }
488
- }, delay);
489
- }
490
- else {
491
- const retryResult = trySpawnWithModel(nextModel, newRemainingModels, rateLimitAttempt);
492
- if ('error' in retryResult) {
493
- writeJobStatus({
494
- ...initialStatus,
495
- status: 'failed',
496
- completedAt: new Date().toISOString(),
497
- error: `Fallback spawn failed for model ${nextModel}: ${retryResult.error}`,
498
- }, workingDirectory);
499
- }
500
- }
501
- return;
502
- }
503
- // No remaining models and no retries left
504
- writeJobStatus({
505
- ...initialStatus,
506
- status: 'failed',
507
- completedAt: new Date().toISOString(),
508
- error: `All models in fallback chain failed. Last error (${retryableErr.type}): ${retryableErr.message}`,
509
- }, workingDirectory);
510
- return;
511
- }
512
- const response = parseCodexOutput(stdout);
513
- const usedFallback = tryModel !== effectiveModel;
514
- persistResponse({
515
- provider: 'codex',
516
- agentRole: jobMeta.agentRole,
517
- model: tryModel,
518
- promptId: jobMeta.jobId,
519
- slug: jobMeta.slug,
520
- response,
521
- workingDirectory,
522
- usedFallback,
523
- fallbackModel: usedFallback ? tryModel : undefined,
524
- });
525
- writeJobStatus({
526
- ...initialStatus,
527
- model: tryModel,
528
- status: 'completed',
529
- completedAt: new Date().toISOString(),
530
- usedFallback: usedFallback || undefined,
531
- fallbackModel: usedFallback ? tryModel : undefined,
532
- }, workingDirectory);
533
- }
534
- else {
535
- // Check if the failure is a retryable error (429/rate limit) before giving up
536
- const retryableExit = isRetryableError(stderr, stdout);
537
- if (retryableExit.isError) {
538
- const isRateLimit = retryableExit.type === 'rate_limit';
539
- // Rate limit with explicit model: retry same model with backoff
540
- if (isRateLimit && modelExplicit && rateLimitAttempt < RATE_LIMIT_RETRY_COUNT) {
541
- const delay = computeBackoffDelay(rateLimitAttempt, RATE_LIMIT_INITIAL_DELAY, RATE_LIMIT_MAX_DELAY);
542
- setTimeout(() => {
543
- const retryResult = trySpawnWithModel(tryModel, remainingModels, rateLimitAttempt + 1);
544
- if ('error' in retryResult) {
545
- writeJobStatus({
546
- ...initialStatus,
547
- status: 'failed',
548
- completedAt: new Date().toISOString(),
549
- error: `Rate limit retry failed for model ${tryModel}: ${retryResult.error}`,
550
- }, workingDirectory);
551
- }
552
- }, delay);
553
- return;
554
- }
555
- // Fallback chain: try next model (with backoff for rate limit, immediate for model errors)
556
- if (remainingModels.length > 0) {
557
- const nextModel = remainingModels[0];
558
- const newRemainingModels = remainingModels.slice(1);
559
- if (isRateLimit) {
560
- const delay = computeBackoffDelay(rateLimitAttempt, RATE_LIMIT_INITIAL_DELAY, RATE_LIMIT_MAX_DELAY);
561
- setTimeout(() => {
562
- const retryResult = trySpawnWithModel(nextModel, newRemainingModels, rateLimitAttempt + 1);
563
- if ('error' in retryResult) {
564
- writeJobStatus({
565
- ...initialStatus,
566
- status: 'failed',
567
- completedAt: new Date().toISOString(),
568
- error: `Fallback spawn failed for model ${nextModel}: ${retryResult.error}`,
569
- }, workingDirectory);
570
- }
571
- }, delay);
572
- }
573
- else {
574
- const retryResult = trySpawnWithModel(nextModel, newRemainingModels, rateLimitAttempt);
575
- if ('error' in retryResult) {
576
- writeJobStatus({
577
- ...initialStatus,
578
- status: 'failed',
579
- completedAt: new Date().toISOString(),
580
- error: `Fallback spawn failed for model ${nextModel}: ${retryResult.error}`,
581
- }, workingDirectory);
582
- }
583
- }
584
- return;
585
- }
586
- }
587
- writeJobStatus({
588
- ...initialStatus,
589
- status: 'failed',
590
- completedAt: new Date().toISOString(),
591
- error: `Codex exited with code ${code}: ${stderr || 'No output'}`,
592
- }, workingDirectory);
593
- }
594
- });
595
- child.on('error', (err) => {
596
- if (settled)
597
- return;
598
- settled = true;
599
- clearTimeout(timeoutHandle);
600
- cleanupPartial();
601
- writeJobStatus({
602
- ...initialStatus,
603
- status: 'failed',
604
- completedAt: new Date().toISOString(),
605
- error: `Failed to spawn Codex CLI: ${err.message}`,
606
- }, workingDirectory);
607
- });
608
- return { pid };
609
- };
610
- // Start execution with the first model in the chain
611
- return trySpawnWithModel(modelsToTry[0], modelsToTry.slice(1));
612
- }
613
- catch (err) {
614
- return { error: `Failed to start background execution: ${err.message}` };
615
- }
616
- }
617
- /**
618
- * Handle ask_codex tool invocation with all business logic
619
- *
620
- * This function contains ALL the tool handler logic and can be used by both
621
- * the SDK server and the standalone stdio server.
622
- */
623
- export async function handleAskCodex(args) {
624
- if (!args || typeof args !== 'object' || Array.isArray(args)) {
625
- return singleErrorBlock('Invalid request: args must be an object.');
626
- }
627
- const { agent_role, context_files } = args;
628
- // Resolve reasoning effort: explicit parameter takes precedence, otherwise omit (use CLI default)
629
- const resolvedEffort = typeof args.reasoning_effort === 'string' && VALID_REASONING_EFFORTS.includes(args.reasoning_effort)
630
- ? args.reasoning_effort
631
- : undefined;
632
- // Resolve model based on configuration and agent role
633
- const config = loadConfig();
634
- const resolved = resolveExternalModel(config.externalModels, {
635
- agentRole: args.agent_role,
636
- explicitProvider: 'codex',
637
- explicitModel: args.model, // user explicitly passed model
638
- });
639
- // Build fallback chain with resolved model as first candidate
640
- const fallbackChain = buildFallbackChain('codex', resolved.model, config.externalModels);
641
- // Use resolved model (with env var fallback for backward compatibility)
642
- const model = resolved.model || CODEX_DEFAULT_MODEL;
643
- // Derive baseDir from working_directory if provided
644
- let baseDir = args.working_directory || process.cwd();
645
- let baseDirReal;
646
- const pathPolicy = process.env.OMC_ALLOW_EXTERNAL_WORKDIR === '1' ? 'permissive' : 'strict';
647
- try {
648
- baseDirReal = realpathSync(baseDir);
649
- baseDir = baseDirReal;
650
- }
651
- catch (err) {
652
- const errorToken = 'E_WORKDIR_INVALID';
653
- return singleErrorBlock(`${errorToken}: working_directory '${args.working_directory}' does not exist or is not accessible.
654
- Error: ${err.message}
655
- Resolved working directory: ${baseDir}
656
- Path policy: ${pathPolicy}
657
- Suggested: ensure the working directory exists and is accessible`);
658
- }
659
- // Security: validate working_directory is within worktree (unless bypass enabled)
660
- if (pathPolicy === 'strict') {
661
- const worktreeRoot = getWorktreeRoot(baseDirReal);
662
- if (worktreeRoot) {
663
- let worktreeReal;
664
- try {
665
- worktreeReal = realpathSync(worktreeRoot);
666
- }
667
- catch {
668
- // If worktree root can't be resolved, skip boundary check rather than break
669
- worktreeReal = '';
670
- }
671
- if (worktreeReal) {
672
- const relToWorktree = relative(worktreeReal, baseDirReal);
673
- if (relToWorktree.startsWith('..') || isAbsolute(relToWorktree)) {
674
- const errorToken = 'E_WORKDIR_INVALID';
675
- return singleErrorBlock(`${errorToken}: working_directory '${args.working_directory}' is outside the project worktree (${worktreeRoot}).
676
- Requested: ${args.working_directory}
677
- Resolved working directory: ${baseDirReal}
678
- Worktree root: ${worktreeRoot}
679
- Path policy: ${pathPolicy}
680
- Suggested: use a working_directory within the project worktree, or set OMC_ALLOW_EXTERNAL_WORKDIR=1 to bypass`);
681
- }
682
- }
683
- }
684
- }
685
- // Validate agent_role - must be non-empty and pass character validation
686
- if (typeof agent_role !== 'string' || !agent_role.trim()) {
687
- return singleErrorBlock('agent_role is required and must be a non-empty string.');
688
- }
689
- if (!isValidAgentRoleName(agent_role)) {
690
- return singleErrorBlock(`Invalid agent_role: "${agent_role}". Role names must contain only lowercase letters, numbers, and hyphens. Recommended for Codex: ${CODEX_RECOMMENDED_ROLES.join(', ')}`);
691
- }
692
- // Validate agent_role exists in discovered roles (allowlist enforcement)
693
- if (!VALID_AGENT_ROLES.includes(agent_role)) {
694
- return singleErrorBlock(`Unknown agent_role: "${agent_role}". Available roles: ${VALID_AGENT_ROLES.join(', ')}. Recommended for Codex: ${CODEX_RECOMMENDED_ROLES.join(', ')}`);
695
- }
696
- // Determine inline intent: caller provided `prompt` field without a defined `prompt_file` field.
697
- // Defined-value precedence: if `prompt_file` key exists with a non-undefined value, file mode wins.
698
- // This handles JSON-RPC serializers that emit `prompt_file: undefined` as "not provided".
699
- // Separate intent detection (field presence) from content validation (non-empty).
700
- const inlinePrompt = typeof args.prompt === 'string' ? args.prompt : undefined;
701
- const hasPromptFileField = Object.prototype.hasOwnProperty.call(args, 'prompt_file') && args.prompt_file !== undefined;
702
- const promptFileInput = hasPromptFileField && typeof args.prompt_file === 'string' ? args.prompt_file.trim() || undefined : undefined;
703
- let resolvedPromptFile = promptFileInput;
704
- let resolvedOutputFile = typeof args.output_file === 'string' ? args.output_file : undefined;
705
- const hasInlineIntent = inlinePrompt !== undefined && !hasPromptFileField;
706
- const isInlineMode = hasInlineIntent && inlinePrompt.trim().length > 0;
707
- // Reject empty/whitespace inline prompt with explicit error BEFORE any side effects
708
- if (hasInlineIntent && !inlinePrompt?.trim()) {
709
- return singleErrorBlock('Inline prompt is empty. Provide a non-empty prompt string.');
710
- }
711
- // Reject oversized inline prompts before any persistence
712
- const MAX_INLINE_PROMPT_BYTES = 256 * 1024; // 256 KB
713
- if (isInlineMode && Buffer.byteLength(inlinePrompt, 'utf-8') > MAX_INLINE_PROMPT_BYTES) {
714
- return singleErrorBlock(`Inline prompt exceeds maximum size (${MAX_INLINE_PROMPT_BYTES} bytes). Use prompt_file for large prompts.`);
715
- }
716
- // Inline mode is foreground only - check BEFORE any file persistence to avoid leaks
717
- if (isInlineMode && args.background) {
718
- return singleErrorBlock('Inline prompt mode is foreground only. Use prompt_file for background execution.');
719
- }
720
- // Explicit type error for non-string prompt_file (e.g., null, number, object)
721
- if (hasPromptFileField && !promptFileInput) {
722
- return singleErrorBlock('prompt_file must be a non-empty string when provided. Received non-string or empty value.');
723
- }
724
- let inlineRequestId;
725
- // Handle inline prompt: auto-persist to file for audit trail
726
- if (isInlineMode) {
727
- inlineRequestId = generatePromptId();
728
- try {
729
- const promptsDir = getPromptsDir(baseDir);
730
- mkdirSync(promptsDir, { recursive: true });
731
- const slug = slugify(inlinePrompt);
732
- const inlinePromptFile = join(promptsDir, `codex-inline-${slug}-${inlineRequestId}.md`);
733
- writeFileSync(inlinePromptFile, inlinePrompt, { encoding: 'utf-8', mode: 0o600 });
734
- const resolvedPromptFileLocal = inlinePromptFile;
735
- const resolvedOutputFileLocal = (!resolvedOutputFile || !resolvedOutputFile.trim())
736
- ? join(promptsDir, `codex-inline-response-${slug}-${inlineRequestId}.md`)
737
- : resolvedOutputFile;
738
- resolvedPromptFile = resolvedPromptFileLocal;
739
- resolvedOutputFile = resolvedOutputFileLocal;
740
- }
741
- catch (err) {
742
- const reason = err instanceof Error ? err.message : 'unknown error';
743
- return singleErrorBlock(`Failed to persist inline prompt (${reason}). Check working directory permissions and disk space.`);
744
- }
745
- }
746
- // Validate that at least one prompt source is provided.
747
- // Use type-guarded promptFileInput to avoid .trim() TypeError on non-string values.
748
- const effectivePromptFile = resolvedPromptFile;
749
- if (!effectivePromptFile || !effectivePromptFile.trim()) {
750
- return singleErrorBlock("Either 'prompt' (inline) or 'prompt_file' (file path) is required.");
751
- }
752
- // output_file is required in file mode.
753
- // Use typeof guard to avoid .trim() TypeError on non-string values.
754
- const effectiveOutputFile = resolvedOutputFile;
755
- if (!effectiveOutputFile || !effectiveOutputFile.trim()) {
756
- return singleErrorBlock('output_file is required. Specify a path where the response should be written.');
757
- }
758
- // Resolve prompt from prompt_file (validated non-empty above)
759
- let resolvedPrompt;
760
- const promptFile = effectivePromptFile;
761
- const resolvedPath = resolve(baseDir, promptFile);
762
- const cwdReal = realpathSync(baseDir);
763
- const relPath = relative(cwdReal, resolvedPath);
764
- if (!isExternalPromptAllowed() && (relPath === '..' || relPath.startsWith('..' + sep) || isAbsolute(relPath))) {
765
- const errorToken = 'E_PATH_OUTSIDE_WORKDIR_PROMPT';
766
- return singleErrorBlock(`${errorToken}: prompt_file '${promptFile}' resolves outside working_directory '${baseDirReal}'.
767
- Requested: ${promptFile}
768
- Working directory: ${baseDirReal}
769
- Resolved working directory: ${baseDirReal}
770
- Path policy: ${pathPolicy}
771
- Suggested: place the prompt file within the working directory or set working_directory to a common ancestor`);
772
- }
773
- // BEFORE reading, resolve symlinks and validate boundary
774
- let resolvedReal;
775
- try {
776
- resolvedReal = realpathSync(resolvedPath);
777
- }
778
- catch (err) {
779
- const errorToken = 'E_PATH_RESOLUTION_FAILED';
780
- return singleErrorBlock(`${errorToken}: Failed to resolve prompt_file '${promptFile}'.
781
- Error: ${err.message}
782
- Resolved working directory: ${baseDirReal}
783
- Path policy: ${pathPolicy}
784
- Suggested: ensure the prompt file exists and is accessible`);
785
- }
786
- const relReal = relative(cwdReal, resolvedReal);
787
- if (!isExternalPromptAllowed() && (relReal === '..' || relReal.startsWith('..' + sep) || isAbsolute(relReal))) {
788
- const errorToken = 'E_PATH_OUTSIDE_WORKDIR_PROMPT';
789
- return singleErrorBlock(`${errorToken}: prompt_file '${promptFile}' resolves to a path outside working_directory '${baseDirReal}'.
790
- Requested: ${promptFile}
791
- Resolved path: ${resolvedReal}
792
- Working directory: ${baseDirReal}
793
- Resolved working directory: ${baseDirReal}
794
- Path policy: ${pathPolicy}
795
- Suggested: place the prompt file within the working directory or set working_directory to a common ancestor`);
796
- }
797
- // Now safe to read from the validated real path
798
- try {
799
- resolvedPrompt = readFileSync(resolvedReal, 'utf-8');
800
- }
801
- catch (err) {
802
- return singleErrorBlock(`Failed to read prompt_file '${promptFile}': ${err.message}`);
803
- }
804
- // Check for empty prompt
805
- if (!resolvedPrompt.trim()) {
806
- return singleErrorBlock(`prompt_file '${promptFile}' is empty.`);
807
- }
808
- // Add headless execution context so Codex produces comprehensive output
809
- const userPrompt = `[HEADLESS SESSION] You are running non-interactively in a headless pipeline. Produce your FULL, comprehensive analysis directly in your response. Do NOT ask for clarification or confirmation - work thoroughly with all provided context. Do NOT write brief acknowledgments - your response IS the deliverable.
810
-
811
- ${resolvedPrompt}`;
812
- // Check CLI availability
813
- const detection = detectCodexCli();
814
- if (!detection.available) {
815
- return singleErrorBlock(`Codex CLI is not available: ${detection.error}\n\n${detection.installHint}`);
816
- }
817
- // Resolve system prompt from agent role
818
- const resolvedSystemPrompt = resolveSystemPrompt(undefined, agent_role, 'codex');
819
- // Build file context — validate paths first to prevent path traversal and prompt injection
820
- let fileContext;
821
- if (context_files && context_files.length > 0) {
822
- const { validPaths, errors } = validateContextFilePaths(context_files, baseDirReal, isExternalPromptAllowed());
823
- if (errors.length > 0) {
824
- console.warn('[codex-core] context_files validation rejected paths:', errors.join('; '));
825
- }
826
- if (validPaths.length > 0) {
827
- fileContext = `The following files are available for reference. Use your file tools to read them as needed:\n${validPaths.map(f => `- ${f}`).join('\n')}`;
828
- }
829
- }
830
- // Combine: system prompt > file context > user prompt
831
- const fullPrompt = buildPromptWithSystemContext(userPrompt, fileContext, resolvedSystemPrompt);
832
- // Persist prompt for audit trail
833
- const promptResult = persistPrompt({
834
- provider: 'codex',
835
- agentRole: agent_role,
836
- model,
837
- files: context_files,
838
- prompt: resolvedPrompt,
839
- fullPrompt,
840
- workingDirectory: baseDir,
841
- });
842
- // Compute expected response path for immediate return
843
- const expectedResponsePath = promptResult
844
- ? getExpectedResponsePath('codex', promptResult.slug, promptResult.id, baseDir)
845
- : undefined;
846
- // Background mode: return immediately with job metadata
847
- if (args.background) {
848
- if (!promptResult) {
849
- return singleErrorBlock('Failed to persist prompt for background execution');
850
- }
851
- const statusFilePath = getStatusFilePath('codex', promptResult.slug, promptResult.id, baseDir);
852
- const result = executeCodexBackground(fullPrompt, args.model, {
853
- provider: 'codex',
854
- jobId: promptResult.id,
855
- slug: promptResult.slug,
856
- agentRole: agent_role,
857
- model: model, // This is the effective model for metadata
858
- promptFile: promptResult.filePath,
859
- responseFile: expectedResponsePath,
860
- }, baseDir, resolvedEffort);
861
- if ('error' in result) {
862
- return singleErrorBlock(`Failed to spawn background job: ${result.error}`);
863
- }
864
- return {
865
- content: [{
866
- type: 'text',
867
- text: [
868
- `**Mode:** Background (non-blocking)`,
869
- `**Job ID:** ${promptResult.id}`,
870
- `**Agent Role:** ${agent_role}`,
871
- `**Model:** ${model}`,
872
- `**PID:** ${result.pid}`,
873
- `**Prompt File:** ${promptResult.filePath}`,
874
- `**Response File:** ${expectedResponsePath}`,
875
- `**Partial Output:** ${expectedResponsePath}.partial (tail -f to stream live)`,
876
- `**Status File:** ${statusFilePath}`,
877
- ``,
878
- `Job dispatched. Check response file existence or read status file for completion.`,
879
- ].join('\n')
880
- }]
881
- };
882
- }
883
- // Build parameter visibility block
884
- const paramLines = [
885
- `**Agent Role:** ${agent_role}`,
886
- resolvedEffort ? `**Reasoning Effort:** ${resolvedEffort}` : null,
887
- context_files?.length ? `**Files:** ${context_files.join(', ')}` : null,
888
- promptResult ? `**Prompt File:** ${promptResult.filePath}` : null,
889
- expectedResponsePath ? `**Response File:** ${expectedResponsePath}` : null,
890
- `**Resolved Working Directory:** ${baseDirReal}`,
891
- `**Path Policy:** ${pathPolicy}`,
892
- ].filter(Boolean).join('\n');
893
- try {
894
- const { response, usedFallback, actualModel } = await executeCodexWithFallback(fullPrompt, args.model, baseDir, fallbackChain, undefined, resolvedEffort);
895
- // Persist response to disk (audit trail)
896
- if (promptResult) {
897
- persistResponse({
898
- provider: 'codex',
899
- agentRole: agent_role,
900
- model: actualModel,
901
- promptId: promptResult.id,
902
- slug: promptResult.slug,
903
- response,
904
- workingDirectory: baseDir,
905
- usedFallback,
906
- fallbackModel: usedFallback ? actualModel : undefined,
907
- });
908
- }
909
- // Always write parsed JSONL response to output_file.
910
- // We no longer use -o (--output-last-message) because it only captures the
911
- // last agent message, which may be a brief acknowledgment. The JSONL-parsed
912
- // stdout contains ALL agent messages and is always more comprehensive.
913
- if (effectiveOutputFile) {
914
- const writeResult = safeWriteOutputFile(effectiveOutputFile, response, baseDirReal, '[codex-core]');
915
- if (!writeResult.success) {
916
- return singleErrorBlock(`${paramLines}\n\n---\n\n${writeResult.errorMessage}\n\nresolved_working_directory: ${baseDirReal}\npath_policy: ${pathPolicy}`);
917
- }
918
- }
919
- const responseLines = [paramLines];
920
- const fallbackLine = usedFallback ? `Fallback: used model ${actualModel}` : undefined;
921
- if (fallbackLine) {
922
- responseLines.push(fallbackLine);
923
- }
924
- // In inline mode, return metadata + raw response as separate content blocks
925
- if (isInlineMode) {
926
- responseLines.push(`**Request ID:** ${inlineRequestId}`);
927
- const metadataText = responseLines.join('\n');
928
- const wrappedResponse = wrapUntrustedCliResponse(response, { source: 'inline-cli-response', tool: 'ask_codex' });
929
- return inlineSuccessBlocks(metadataText, wrappedResponse);
930
- }
931
- return {
932
- content: [{
933
- type: 'text',
934
- text: responseLines.join('\n')
935
- }]
936
- };
937
- }
938
- catch (err) {
939
- return singleErrorBlock(`${paramLines}\n\n---\n\nCodex CLI error: ${err.message}`);
940
- }
941
- }
942
- //# sourceMappingURL=codex-core.js.map