claudecode-omc 4.4.4 → 4.4.6

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 (842) hide show
  1. package/.mcp.json +2 -6
  2. package/README.es.md +64 -8
  3. package/README.ja.md +64 -8
  4. package/README.ko.md +64 -8
  5. package/README.pt.md +29 -0
  6. package/README.vi.md +29 -0
  7. package/README.zh.md +64 -8
  8. package/agents/architect.md +17 -7
  9. package/agents/code-reviewer.md +6 -7
  10. package/agents/critic.md +14 -1
  11. package/agents/deep-executor.md +6 -7
  12. package/agents/designer.md +6 -8
  13. package/agents/executor.md +6 -7
  14. package/agents/planner.md +21 -0
  15. package/agents/quality-reviewer.md +6 -7
  16. package/agents/security-reviewer.md +6 -7
  17. package/agents/test-engineer.md +6 -7
  18. package/bridge/mcp-server.cjs +517 -202
  19. package/bridge/runtime-cli.cjs +1547 -0
  20. package/bridge/team-bridge.cjs +348 -92
  21. package/bridge/{gemini-server.cjs → team-mcp.cjs} +10914 -10240
  22. package/dist/__tests__/auto-update.test.js +1 -1
  23. package/dist/__tests__/auto-update.test.js.map +1 -1
  24. package/dist/__tests__/cli-win32-warning.test.d.ts +2 -0
  25. package/dist/__tests__/cli-win32-warning.test.d.ts.map +1 -0
  26. package/dist/__tests__/cli-win32-warning.test.js +46 -0
  27. package/dist/__tests__/cli-win32-warning.test.js.map +1 -0
  28. package/dist/__tests__/codex-callsite-normalization.test.js +112 -0
  29. package/dist/__tests__/consensus-execution-handoff.test.d.ts +2 -0
  30. package/dist/__tests__/consensus-execution-handoff.test.d.ts.map +1 -1
  31. package/dist/__tests__/consensus-execution-handoff.test.js +48 -0
  32. package/dist/__tests__/consensus-execution-handoff.test.js.map +1 -1
  33. package/dist/__tests__/context-safety.test.d.ts +2 -0
  34. package/dist/__tests__/context-safety.test.d.ts.map +1 -0
  35. package/dist/__tests__/context-safety.test.js +59 -0
  36. package/dist/__tests__/context-safety.test.js.map +1 -0
  37. package/dist/__tests__/hooks.test.js +15 -0
  38. package/dist/__tests__/hooks.test.js.map +1 -1
  39. package/dist/__tests__/hud/call-counts.test.js +0 -3
  40. package/dist/__tests__/hud/call-counts.test.js.map +1 -1
  41. package/dist/__tests__/hud/defaults.test.js +3 -5
  42. package/dist/__tests__/hud/defaults.test.js.map +1 -1
  43. package/dist/__tests__/hud/prompt-time.test.d.ts +2 -0
  44. package/dist/__tests__/hud/prompt-time.test.d.ts.map +1 -0
  45. package/dist/__tests__/hud/prompt-time.test.js +24 -0
  46. package/dist/__tests__/hud/prompt-time.test.js.map +1 -0
  47. package/dist/__tests__/hud/render.test.js +0 -1
  48. package/dist/__tests__/hud/render.test.js.map +1 -1
  49. package/dist/__tests__/hud/version-display.test.js +1 -0
  50. package/dist/__tests__/hud/version-display.test.js.map +1 -1
  51. package/dist/__tests__/hud/windows-platform.test.js +0 -4
  52. package/dist/__tests__/hud/windows-platform.test.js.map +1 -1
  53. package/dist/__tests__/hud-windows.test.js +5 -3
  54. package/dist/__tests__/hud-windows.test.js.map +1 -1
  55. package/dist/__tests__/installer-hud-skip.test.js +12 -2
  56. package/dist/__tests__/installer-hud-skip.test.js.map +1 -1
  57. package/dist/__tests__/job-management-sqlite.test.js +0 -15
  58. package/dist/__tests__/job-management-sqlite.test.js.map +1 -1
  59. package/dist/__tests__/job-management.test.js +0 -16
  60. package/dist/__tests__/job-management.test.js.map +1 -1
  61. package/dist/__tests__/load-agent-prompt.test.js +0 -23
  62. package/dist/__tests__/load-agent-prompt.test.js.map +1 -1
  63. package/dist/__tests__/model-routing.test.js +3 -2
  64. package/dist/__tests__/model-routing.test.js.map +1 -1
  65. package/dist/__tests__/omc-tools-server-interop.test.js +1 -1
  66. package/dist/__tests__/omc-tools-server-interop.test.js.map +1 -1
  67. package/dist/__tests__/pre-tool-enforcer.test.d.ts +2 -0
  68. package/dist/__tests__/pre-tool-enforcer.test.d.ts.map +1 -0
  69. package/dist/__tests__/pre-tool-enforcer.test.js +194 -0
  70. package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -0
  71. package/dist/__tests__/prompt-injection.test.js +0 -26
  72. package/dist/__tests__/prompt-injection.test.js.map +1 -1
  73. package/dist/__tests__/purge-stale-cache.test.js +3 -2
  74. package/dist/__tests__/purge-stale-cache.test.js.map +1 -1
  75. package/dist/__tests__/run-cjs-graceful-fallback.test.d.ts +2 -0
  76. package/dist/__tests__/run-cjs-graceful-fallback.test.d.ts.map +1 -0
  77. package/dist/__tests__/run-cjs-graceful-fallback.test.js +167 -0
  78. package/dist/__tests__/run-cjs-graceful-fallback.test.js.map +1 -0
  79. package/dist/__tests__/session-start-cache-cleanup.test.d.ts +2 -0
  80. package/dist/__tests__/session-start-cache-cleanup.test.d.ts.map +1 -0
  81. package/dist/__tests__/session-start-cache-cleanup.test.js +150 -0
  82. package/dist/__tests__/session-start-cache-cleanup.test.js.map +1 -0
  83. package/dist/__tests__/skills.test.js +10 -8
  84. package/dist/__tests__/skills.test.js.map +1 -1
  85. package/dist/__tests__/team-server-validation.test.d.ts +2 -0
  86. package/dist/__tests__/team-server-validation.test.d.ts.map +1 -0
  87. package/dist/__tests__/team-server-validation.test.js +122 -0
  88. package/dist/__tests__/team-server-validation.test.js.map +1 -0
  89. package/dist/agents/index.d.ts +0 -1
  90. package/dist/agents/index.d.ts.map +1 -1
  91. package/dist/agents/index.js +0 -2
  92. package/dist/agents/index.js.map +1 -1
  93. package/dist/agents/prompt-helpers.d.ts +74 -0
  94. package/dist/agents/prompt-helpers.d.ts.map +1 -0
  95. package/dist/agents/prompt-helpers.js +187 -0
  96. package/dist/agents/prompt-helpers.js.map +1 -0
  97. package/dist/agents/utils.d.ts +1 -5
  98. package/dist/agents/utils.d.ts.map +1 -1
  99. package/dist/agents/utils.js +1 -34
  100. package/dist/agents/utils.js.map +1 -1
  101. package/dist/cli/__tests__/launch.test.d.ts +1 -2
  102. package/dist/cli/__tests__/launch.test.d.ts.map +1 -1
  103. package/dist/cli/__tests__/launch.test.js +442 -48
  104. package/dist/cli/__tests__/launch.test.js.map +1 -1
  105. package/dist/cli/__tests__/teleport-help.test.d.ts +2 -0
  106. package/dist/cli/__tests__/teleport-help.test.d.ts.map +1 -0
  107. package/dist/cli/__tests__/teleport-help.test.js +17 -0
  108. package/dist/cli/__tests__/teleport-help.test.js.map +1 -0
  109. package/dist/cli/commands/teleport.d.ts +2 -1
  110. package/dist/cli/commands/teleport.d.ts.map +1 -1
  111. package/dist/cli/commands/teleport.js +6 -3
  112. package/dist/cli/commands/teleport.js.map +1 -1
  113. package/dist/cli/index.js +40 -290
  114. package/dist/cli/index.js.map +1 -1
  115. package/dist/cli/launch.d.ts +83 -3
  116. package/dist/cli/launch.d.ts.map +1 -1
  117. package/dist/cli/launch.js +213 -48
  118. package/dist/cli/launch.js.map +1 -1
  119. package/dist/cli/win32-warning.d.ts +6 -0
  120. package/dist/cli/win32-warning.d.ts.map +1 -0
  121. package/dist/cli/win32-warning.js +15 -0
  122. package/dist/cli/win32-warning.js.map +1 -0
  123. package/dist/config/loader.d.ts +9 -1
  124. package/dist/config/loader.d.ts.map +1 -1
  125. package/dist/config/loader.js +29 -19
  126. package/dist/config/loader.js.map +1 -1
  127. package/dist/config/models.d.ts +33 -0
  128. package/dist/config/models.d.ts.map +1 -0
  129. package/dist/config/models.js +49 -0
  130. package/dist/config/models.js.map +1 -0
  131. package/dist/constants/names.d.ts +2 -0
  132. package/dist/constants/names.d.ts.map +1 -1
  133. package/dist/constants/names.js +2 -0
  134. package/dist/constants/names.js.map +1 -1
  135. package/dist/features/auto-update.d.ts.map +1 -1
  136. package/dist/features/auto-update.js +21 -11
  137. package/dist/features/auto-update.js.map +1 -1
  138. package/dist/features/background-agent/manager.d.ts.map +1 -1
  139. package/dist/features/background-agent/manager.js +1 -2
  140. package/dist/features/background-agent/manager.js.map +1 -1
  141. package/dist/features/boulder-state/storage.d.ts.map +1 -1
  142. package/dist/features/boulder-state/storage.js +9 -5
  143. package/dist/features/boulder-state/storage.js.map +1 -1
  144. package/dist/features/boulder-state/types.d.ts +4 -0
  145. package/dist/features/boulder-state/types.d.ts.map +1 -1
  146. package/dist/features/builtin-skills/skills.d.ts.map +1 -1
  147. package/dist/features/builtin-skills/skills.js +25 -78
  148. package/dist/features/builtin-skills/skills.js.map +1 -1
  149. package/dist/features/delegation-enforcer.d.ts.map +1 -1
  150. package/dist/features/delegation-enforcer.js +4 -1
  151. package/dist/features/delegation-enforcer.js.map +1 -1
  152. package/dist/features/delegation-routing/__tests__/resolver.test.js +47 -122
  153. package/dist/features/delegation-routing/__tests__/resolver.test.js.map +1 -1
  154. package/dist/features/delegation-routing/resolver.d.ts.map +1 -1
  155. package/dist/features/delegation-routing/resolver.js +24 -47
  156. package/dist/features/delegation-routing/resolver.js.map +1 -1
  157. package/dist/features/delegation-routing/types.d.ts.map +1 -1
  158. package/dist/features/delegation-routing/types.js +2 -0
  159. package/dist/features/delegation-routing/types.js.map +1 -1
  160. package/dist/features/model-routing/external-model-policy.d.ts.map +1 -1
  161. package/dist/features/model-routing/external-model-policy.js.map +1 -1
  162. package/dist/features/model-routing/router.d.ts.map +1 -1
  163. package/dist/features/model-routing/router.js +12 -2
  164. package/dist/features/model-routing/router.js.map +1 -1
  165. package/dist/features/model-routing/types.d.ts +5 -1
  166. package/dist/features/model-routing/types.d.ts.map +1 -1
  167. package/dist/features/model-routing/types.js +7 -6
  168. package/dist/features/model-routing/types.js.map +1 -1
  169. package/dist/features/rate-limit-wait/daemon.d.ts.map +1 -1
  170. package/dist/features/rate-limit-wait/daemon.js +40 -4
  171. package/dist/features/rate-limit-wait/daemon.js.map +1 -1
  172. package/dist/features/state-manager/index.js +2 -2
  173. package/dist/features/state-manager/index.js.map +1 -1
  174. package/dist/features/task-decomposer/index.js +14 -4
  175. package/dist/features/task-decomposer/index.js.map +1 -1
  176. package/dist/hooks/__tests__/bridge-openclaw.test.d.ts +2 -0
  177. package/dist/hooks/__tests__/bridge-openclaw.test.d.ts.map +1 -0
  178. package/dist/hooks/__tests__/bridge-openclaw.test.js +124 -0
  179. package/dist/hooks/__tests__/bridge-openclaw.test.js.map +1 -0
  180. package/dist/hooks/__tests__/bridge-security.test.js +1 -1
  181. package/dist/hooks/__tests__/bridge-security.test.js.map +1 -1
  182. package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
  183. package/dist/hooks/auto-slash-command/executor.js +38 -61
  184. package/dist/hooks/auto-slash-command/executor.js.map +1 -1
  185. package/dist/hooks/autopilot/prompts.js +3 -3
  186. package/dist/hooks/bridge.d.ts +11 -0
  187. package/dist/hooks/bridge.d.ts.map +1 -1
  188. package/dist/hooks/bridge.js +154 -82
  189. package/dist/hooks/bridge.js.map +1 -1
  190. package/dist/hooks/comment-checker/index.d.ts.map +1 -1
  191. package/dist/hooks/comment-checker/index.js +3 -1
  192. package/dist/hooks/comment-checker/index.js.map +1 -1
  193. package/dist/hooks/keyword-detector/__tests__/index.test.js +348 -1
  194. package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
  195. package/dist/hooks/keyword-detector/index.d.ts +29 -0
  196. package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
  197. package/dist/hooks/keyword-detector/index.js +123 -1
  198. package/dist/hooks/keyword-detector/index.js.map +1 -1
  199. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js +40 -0
  200. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js.map +1 -1
  201. package/dist/hooks/mode-registry/index.d.ts.map +1 -1
  202. package/dist/hooks/mode-registry/index.js +135 -52
  203. package/dist/hooks/mode-registry/index.js.map +1 -1
  204. package/dist/hooks/notepad/index.d.ts.map +1 -1
  205. package/dist/hooks/notepad/index.js +5 -3
  206. package/dist/hooks/notepad/index.js.map +1 -1
  207. package/dist/hooks/persistent-mode/__tests__/cancel-race.test.d.ts +2 -0
  208. package/dist/hooks/persistent-mode/__tests__/cancel-race.test.d.ts.map +1 -0
  209. package/dist/hooks/persistent-mode/__tests__/cancel-race.test.js +73 -0
  210. package/dist/hooks/persistent-mode/__tests__/cancel-race.test.js.map +1 -0
  211. package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js +89 -13
  212. package/dist/hooks/persistent-mode/__tests__/idle-cooldown.test.js.map +1 -1
  213. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.d.ts +2 -0
  214. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.d.ts.map +1 -0
  215. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js +156 -0
  216. package/dist/hooks/persistent-mode/__tests__/skill-state-stop.test.js.map +1 -0
  217. package/dist/hooks/persistent-mode/idle-cooldown.test.d.ts +2 -3
  218. package/dist/hooks/persistent-mode/idle-cooldown.test.d.ts.map +1 -1
  219. package/dist/hooks/persistent-mode/idle-cooldown.test.js +19 -4
  220. package/dist/hooks/persistent-mode/idle-cooldown.test.js.map +1 -1
  221. package/dist/hooks/persistent-mode/index.d.ts +2 -2
  222. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  223. package/dist/hooks/persistent-mode/index.js +144 -26
  224. package/dist/hooks/persistent-mode/index.js.map +1 -1
  225. package/dist/hooks/plugin-patterns/index.d.ts.map +1 -1
  226. package/dist/hooks/plugin-patterns/index.js +22 -31
  227. package/dist/hooks/plugin-patterns/index.js.map +1 -1
  228. package/dist/hooks/pre-compact/index.js +1 -1
  229. package/dist/hooks/preemptive-compaction/index.d.ts.map +1 -1
  230. package/dist/hooks/preemptive-compaction/index.js +3 -1
  231. package/dist/hooks/preemptive-compaction/index.js.map +1 -1
  232. package/dist/hooks/project-memory/index.d.ts.map +1 -1
  233. package/dist/hooks/project-memory/index.js +9 -0
  234. package/dist/hooks/project-memory/index.js.map +1 -1
  235. package/dist/hooks/project-memory/learner.d.ts.map +1 -1
  236. package/dist/hooks/project-memory/learner.js +107 -85
  237. package/dist/hooks/project-memory/learner.js.map +1 -1
  238. package/dist/hooks/project-memory/storage.d.ts.map +1 -1
  239. package/dist/hooks/project-memory/storage.js +3 -2
  240. package/dist/hooks/project-memory/storage.js.map +1 -1
  241. package/dist/hooks/recovery/context-window.d.ts +4 -0
  242. package/dist/hooks/recovery/context-window.d.ts.map +1 -1
  243. package/dist/hooks/recovery/context-window.js +22 -1
  244. package/dist/hooks/recovery/context-window.js.map +1 -1
  245. package/dist/hooks/recovery/session-recovery.js +1 -1
  246. package/dist/hooks/recovery/session-recovery.js.map +1 -1
  247. package/dist/hooks/session-end/index.d.ts.map +1 -1
  248. package/dist/hooks/session-end/index.js +13 -22
  249. package/dist/hooks/session-end/index.js.map +1 -1
  250. package/dist/hooks/setup/__tests__/windows-patch.test.d.ts +2 -0
  251. package/dist/hooks/setup/__tests__/windows-patch.test.d.ts.map +1 -0
  252. package/dist/hooks/setup/__tests__/windows-patch.test.js +110 -0
  253. package/dist/hooks/setup/__tests__/windows-patch.test.js.map +1 -0
  254. package/dist/hooks/setup/index.d.ts +18 -0
  255. package/dist/hooks/setup/index.d.ts.map +1 -1
  256. package/dist/hooks/setup/index.js +59 -1
  257. package/dist/hooks/setup/index.js.map +1 -1
  258. package/dist/hooks/skill-bridge.cjs +1 -0
  259. package/dist/hooks/skill-state/__tests__/skill-state.test.d.ts +2 -0
  260. package/dist/hooks/skill-state/__tests__/skill-state.test.d.ts.map +1 -0
  261. package/dist/hooks/skill-state/__tests__/skill-state.test.js +301 -0
  262. package/dist/hooks/skill-state/__tests__/skill-state.test.js.map +1 -0
  263. package/dist/hooks/skill-state/index.d.ts +79 -0
  264. package/dist/hooks/skill-state/index.d.ts.map +1 -0
  265. package/dist/hooks/skill-state/index.js +245 -0
  266. package/dist/hooks/skill-state/index.js.map +1 -0
  267. package/dist/hooks/team-pipeline/state.d.ts.map +1 -1
  268. package/dist/hooks/team-pipeline/state.js +5 -0
  269. package/dist/hooks/team-pipeline/state.js.map +1 -1
  270. package/dist/hooks/todo-continuation/index.d.ts +17 -0
  271. package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
  272. package/dist/hooks/todo-continuation/index.js +44 -2
  273. package/dist/hooks/todo-continuation/index.js.map +1 -1
  274. package/dist/hud/elements/call-counts.d.ts.map +1 -1
  275. package/dist/hud/elements/call-counts.js +6 -4
  276. package/dist/hud/elements/call-counts.js.map +1 -1
  277. package/dist/hud/elements/index.d.ts +1 -0
  278. package/dist/hud/elements/index.d.ts.map +1 -1
  279. package/dist/hud/elements/index.js +1 -0
  280. package/dist/hud/elements/index.js.map +1 -1
  281. package/dist/hud/elements/prompt-time.d.ts +13 -0
  282. package/dist/hud/elements/prompt-time.d.ts.map +1 -0
  283. package/dist/hud/elements/prompt-time.js +21 -0
  284. package/dist/hud/elements/prompt-time.js.map +1 -0
  285. package/dist/hud/index.d.ts +2 -1
  286. package/dist/hud/index.d.ts.map +1 -1
  287. package/dist/hud/index.js +40 -215
  288. package/dist/hud/index.js.map +1 -1
  289. package/dist/hud/render.d.ts.map +1 -1
  290. package/dist/hud/render.js +7 -108
  291. package/dist/hud/render.js.map +1 -1
  292. package/dist/hud/state.d.ts.map +1 -1
  293. package/dist/hud/state.js +4 -3
  294. package/dist/hud/state.js.map +1 -1
  295. package/dist/hud/stdin.d.ts +10 -0
  296. package/dist/hud/stdin.d.ts.map +1 -1
  297. package/dist/hud/stdin.js +43 -0
  298. package/dist/hud/stdin.js.map +1 -1
  299. package/dist/hud/types.d.ts +6 -18
  300. package/dist/hud/types.d.ts.map +1 -1
  301. package/dist/hud/types.js +6 -46
  302. package/dist/hud/types.js.map +1 -1
  303. package/dist/index.d.ts +1 -1
  304. package/dist/index.d.ts.map +1 -1
  305. package/dist/index.js +2 -11
  306. package/dist/index.js.map +1 -1
  307. package/dist/installer/hooks.d.ts +5 -0
  308. package/dist/installer/hooks.d.ts.map +1 -1
  309. package/dist/installer/hooks.js +8 -0
  310. package/dist/installer/hooks.js.map +1 -1
  311. package/dist/installer/index.d.ts.map +1 -1
  312. package/dist/installer/index.js +26 -11
  313. package/dist/installer/index.js.map +1 -1
  314. package/dist/interop/omx-team-state.d.ts.map +1 -1
  315. package/dist/interop/omx-team-state.js +38 -6
  316. package/dist/interop/omx-team-state.js.map +1 -1
  317. package/dist/interop/shared-state.d.ts.map +1 -1
  318. package/dist/interop/shared-state.js +58 -7
  319. package/dist/interop/shared-state.js.map +1 -1
  320. package/dist/lib/__tests__/worktree-paths.test.js +250 -1
  321. package/dist/lib/__tests__/worktree-paths.test.js.map +1 -1
  322. package/dist/lib/job-state-db.d.ts +150 -0
  323. package/dist/lib/job-state-db.d.ts.map +1 -0
  324. package/dist/lib/job-state-db.js +650 -0
  325. package/dist/lib/job-state-db.js.map +1 -0
  326. package/dist/lib/mode-names.d.ts +46 -0
  327. package/dist/lib/mode-names.d.ts.map +1 -0
  328. package/dist/lib/mode-names.js +73 -0
  329. package/dist/lib/mode-names.js.map +1 -0
  330. package/dist/lib/session-isolation.d.ts +32 -0
  331. package/dist/lib/session-isolation.d.ts.map +1 -0
  332. package/dist/lib/session-isolation.js +39 -0
  333. package/dist/lib/session-isolation.js.map +1 -0
  334. package/dist/lib/worktree-paths.d.ts +38 -8
  335. package/dist/lib/worktree-paths.d.ts.map +1 -1
  336. package/dist/lib/worktree-paths.js +124 -56
  337. package/dist/lib/worktree-paths.js.map +1 -1
  338. package/dist/mcp/__tests__/team-cleanup.test.d.ts +11 -0
  339. package/dist/mcp/__tests__/team-cleanup.test.d.ts.map +1 -0
  340. package/dist/mcp/__tests__/team-cleanup.test.js +228 -0
  341. package/dist/mcp/__tests__/team-cleanup.test.js.map +1 -0
  342. package/dist/mcp/cli-detection.d.ts +4 -8
  343. package/dist/mcp/cli-detection.d.ts.map +1 -1
  344. package/dist/mcp/cli-detection.js +5 -8
  345. package/dist/mcp/cli-detection.js.map +1 -1
  346. package/dist/mcp/codex-request-normalizer.js +59 -0
  347. package/dist/mcp/codex-server.js +16 -4
  348. package/dist/mcp/codex-standalone-server.js +13 -4
  349. package/dist/mcp/index.d.ts +2 -4
  350. package/dist/mcp/index.d.ts.map +1 -1
  351. package/dist/mcp/index.js +1 -5
  352. package/dist/mcp/index.js.map +1 -1
  353. package/dist/mcp/job-management.d.ts.map +1 -1
  354. package/dist/mcp/job-management.js +11 -9
  355. package/dist/mcp/job-management.js.map +1 -1
  356. package/dist/mcp/job-state-db.d.ts +1 -149
  357. package/dist/mcp/job-state-db.d.ts.map +1 -1
  358. package/dist/mcp/job-state-db.js +2 -649
  359. package/dist/mcp/job-state-db.js.map +1 -1
  360. package/dist/mcp/mcp-config.d.ts +1 -1
  361. package/dist/mcp/mcp-config.js +1 -1
  362. package/dist/mcp/prompt-injection.d.ts +14 -76
  363. package/dist/mcp/prompt-injection.d.ts.map +1 -1
  364. package/dist/mcp/prompt-injection.js +34 -175
  365. package/dist/mcp/prompt-injection.js.map +1 -1
  366. package/dist/mcp/standalone-server.js +2 -0
  367. package/dist/mcp/standalone-server.js.map +1 -1
  368. package/dist/mcp/team-server.d.ts +16 -0
  369. package/dist/mcp/team-server.d.ts.map +1 -0
  370. package/dist/mcp/team-server.js +356 -0
  371. package/dist/mcp/team-server.js.map +1 -0
  372. package/dist/notifications/__tests__/formatter.test.js +62 -0
  373. package/dist/notifications/__tests__/formatter.test.js.map +1 -1
  374. package/dist/notifications/__tests__/hook-config.test.d.ts +14 -0
  375. package/dist/notifications/__tests__/hook-config.test.d.ts.map +1 -0
  376. package/dist/notifications/__tests__/hook-config.test.js +210 -0
  377. package/dist/notifications/__tests__/hook-config.test.js.map +1 -0
  378. package/dist/notifications/__tests__/platform-gating.test.d.ts +12 -0
  379. package/dist/notifications/__tests__/platform-gating.test.d.ts.map +1 -0
  380. package/dist/notifications/__tests__/platform-gating.test.js +140 -0
  381. package/dist/notifications/__tests__/platform-gating.test.js.map +1 -0
  382. package/dist/notifications/__tests__/template-engine.test.d.ts +13 -0
  383. package/dist/notifications/__tests__/template-engine.test.d.ts.map +1 -0
  384. package/dist/notifications/__tests__/template-engine.test.js +378 -0
  385. package/dist/notifications/__tests__/template-engine.test.js.map +1 -0
  386. package/dist/notifications/config.d.ts.map +1 -1
  387. package/dist/notifications/config.js +54 -18
  388. package/dist/notifications/config.js.map +1 -1
  389. package/dist/notifications/dispatcher.d.ts +2 -2
  390. package/dist/notifications/dispatcher.d.ts.map +1 -1
  391. package/dist/notifications/dispatcher.js +10 -6
  392. package/dist/notifications/dispatcher.js.map +1 -1
  393. package/dist/notifications/formatter.d.ts.map +1 -1
  394. package/dist/notifications/formatter.js +22 -0
  395. package/dist/notifications/formatter.js.map +1 -1
  396. package/dist/notifications/hook-config-types.d.ts +44 -0
  397. package/dist/notifications/hook-config-types.d.ts.map +1 -0
  398. package/dist/notifications/hook-config-types.js +8 -0
  399. package/dist/notifications/hook-config-types.js.map +1 -0
  400. package/dist/notifications/hook-config.d.ts +36 -0
  401. package/dist/notifications/hook-config.d.ts.map +1 -0
  402. package/dist/notifications/hook-config.js +95 -0
  403. package/dist/notifications/hook-config.js.map +1 -0
  404. package/dist/notifications/index.d.ts +3 -0
  405. package/dist/notifications/index.d.ts.map +1 -1
  406. package/dist/notifications/index.js +31 -3
  407. package/dist/notifications/index.js.map +1 -1
  408. package/dist/notifications/reply-listener.d.ts.map +1 -1
  409. package/dist/notifications/reply-listener.js +1 -0
  410. package/dist/notifications/reply-listener.js.map +1 -1
  411. package/dist/notifications/session-registry.d.ts.map +1 -1
  412. package/dist/notifications/session-registry.js +13 -5
  413. package/dist/notifications/session-registry.js.map +1 -1
  414. package/dist/notifications/template-engine.d.ts +34 -0
  415. package/dist/notifications/template-engine.d.ts.map +1 -0
  416. package/dist/notifications/template-engine.js +248 -0
  417. package/dist/notifications/template-engine.js.map +1 -0
  418. package/dist/notifications/types.d.ts +0 -2
  419. package/dist/notifications/types.d.ts.map +1 -1
  420. package/dist/openclaw/__tests__/config.test.d.ts +2 -0
  421. package/dist/openclaw/__tests__/config.test.d.ts.map +1 -0
  422. package/dist/openclaw/__tests__/config.test.js +200 -0
  423. package/dist/openclaw/__tests__/config.test.js.map +1 -0
  424. package/dist/openclaw/__tests__/dispatcher.test.d.ts +2 -0
  425. package/dist/openclaw/__tests__/dispatcher.test.d.ts.map +1 -0
  426. package/dist/openclaw/__tests__/dispatcher.test.js +348 -0
  427. package/dist/openclaw/__tests__/dispatcher.test.js.map +1 -0
  428. package/dist/openclaw/__tests__/index.test.d.ts +2 -0
  429. package/dist/openclaw/__tests__/index.test.d.ts.map +1 -0
  430. package/dist/openclaw/__tests__/index.test.js +235 -0
  431. package/dist/openclaw/__tests__/index.test.js.map +1 -0
  432. package/dist/openclaw/config.d.ts +33 -0
  433. package/dist/openclaw/config.d.ts.map +1 -0
  434. package/dist/openclaw/config.js +83 -0
  435. package/dist/openclaw/config.js.map +1 -0
  436. package/dist/openclaw/dispatcher.d.ts +47 -0
  437. package/dist/openclaw/dispatcher.d.ts.map +1 -0
  438. package/dist/openclaw/dispatcher.js +138 -0
  439. package/dist/openclaw/dispatcher.js.map +1 -0
  440. package/dist/openclaw/index.d.ts +25 -0
  441. package/dist/openclaw/index.d.ts.map +1 -0
  442. package/dist/openclaw/index.js +132 -0
  443. package/dist/openclaw/index.js.map +1 -0
  444. package/dist/openclaw/types.d.ts +102 -0
  445. package/dist/openclaw/types.d.ts.map +1 -0
  446. package/dist/openclaw/types.js +8 -0
  447. package/dist/openclaw/types.js.map +1 -0
  448. package/dist/platform/index.d.ts +5 -0
  449. package/dist/platform/index.d.ts.map +1 -1
  450. package/dist/platform/index.js +17 -0
  451. package/dist/platform/index.js.map +1 -1
  452. package/dist/platform/process-utils.d.ts.map +1 -1
  453. package/dist/platform/process-utils.js +55 -9
  454. package/dist/platform/process-utils.js.map +1 -1
  455. package/dist/shared/types.d.ts +7 -5
  456. package/dist/shared/types.d.ts.map +1 -1
  457. package/dist/team/__tests__/bridge-integration.test.js +10 -8
  458. package/dist/team/__tests__/bridge-integration.test.js.map +1 -1
  459. package/dist/team/__tests__/edge-cases.test.js +40 -29
  460. package/dist/team/__tests__/edge-cases.test.js.map +1 -1
  461. package/dist/team/__tests__/idle-nudge.test.d.ts +11 -0
  462. package/dist/team/__tests__/idle-nudge.test.d.ts.map +1 -0
  463. package/dist/team/__tests__/idle-nudge.test.js +282 -0
  464. package/dist/team/__tests__/idle-nudge.test.js.map +1 -0
  465. package/dist/team/__tests__/mcp-team-bridge.spawn-args.test.js +2 -2
  466. package/dist/team/__tests__/mcp-team-bridge.spawn-args.test.js.map +1 -1
  467. package/dist/team/__tests__/mcp-team-bridge.usage.test.d.ts +2 -0
  468. package/dist/team/__tests__/mcp-team-bridge.usage.test.d.ts.map +1 -0
  469. package/dist/team/__tests__/mcp-team-bridge.usage.test.js +49 -0
  470. package/dist/team/__tests__/mcp-team-bridge.usage.test.js.map +1 -0
  471. package/dist/team/__tests__/model-contract.test.d.ts +2 -0
  472. package/dist/team/__tests__/model-contract.test.d.ts.map +1 -0
  473. package/dist/team/__tests__/model-contract.test.js +121 -0
  474. package/dist/team/__tests__/model-contract.test.js.map +1 -0
  475. package/dist/team/__tests__/phase-controller.test.d.ts +2 -0
  476. package/dist/team/__tests__/phase-controller.test.d.ts.map +1 -0
  477. package/dist/team/__tests__/phase-controller.test.js +45 -0
  478. package/dist/team/__tests__/phase-controller.test.js.map +1 -0
  479. package/dist/team/__tests__/runtime-assign.test.d.ts +2 -0
  480. package/dist/team/__tests__/runtime-assign.test.d.ts.map +1 -0
  481. package/dist/team/__tests__/runtime-assign.test.js +43 -0
  482. package/dist/team/__tests__/runtime-assign.test.js.map +1 -0
  483. package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts +2 -0
  484. package/dist/team/__tests__/runtime-gemini-prompt.test.d.ts.map +1 -0
  485. package/dist/team/__tests__/runtime-gemini-prompt.test.js +153 -0
  486. package/dist/team/__tests__/runtime-gemini-prompt.test.js.map +1 -0
  487. package/dist/team/__tests__/runtime-prompt-mode.test.d.ts +2 -0
  488. package/dist/team/__tests__/runtime-prompt-mode.test.d.ts.map +1 -0
  489. package/dist/team/__tests__/runtime-prompt-mode.test.js +162 -0
  490. package/dist/team/__tests__/runtime-prompt-mode.test.js.map +1 -0
  491. package/dist/team/__tests__/runtime.test.d.ts +2 -0
  492. package/dist/team/__tests__/runtime.test.d.ts.map +1 -0
  493. package/dist/team/__tests__/runtime.test.js +37 -0
  494. package/dist/team/__tests__/runtime.test.js.map +1 -0
  495. package/dist/team/__tests__/task-file-ops.test.js +63 -59
  496. package/dist/team/__tests__/task-file-ops.test.js.map +1 -1
  497. package/dist/team/__tests__/team-name.test.d.ts +2 -0
  498. package/dist/team/__tests__/team-name.test.d.ts.map +1 -0
  499. package/dist/team/__tests__/team-name.test.js +18 -0
  500. package/dist/team/__tests__/team-name.test.js.map +1 -0
  501. package/dist/team/__tests__/team-status.test.js +52 -6
  502. package/dist/team/__tests__/team-status.test.js.map +1 -1
  503. package/dist/team/__tests__/tmux-comm.test.d.ts +2 -0
  504. package/dist/team/__tests__/tmux-comm.test.d.ts.map +1 -0
  505. package/dist/team/__tests__/tmux-comm.test.js +26 -0
  506. package/dist/team/__tests__/tmux-comm.test.js.map +1 -0
  507. package/dist/team/__tests__/tmux-session.create-team.test.d.ts +2 -0
  508. package/dist/team/__tests__/tmux-session.create-team.test.d.ts.map +1 -0
  509. package/dist/team/__tests__/tmux-session.create-team.test.js +104 -0
  510. package/dist/team/__tests__/tmux-session.create-team.test.js.map +1 -0
  511. package/dist/team/__tests__/tmux-session.spawn.test.d.ts +2 -0
  512. package/dist/team/__tests__/tmux-session.spawn.test.d.ts.map +1 -0
  513. package/dist/team/__tests__/tmux-session.spawn.test.js +61 -0
  514. package/dist/team/__tests__/tmux-session.spawn.test.js.map +1 -0
  515. package/dist/team/__tests__/tmux-session.test.js +161 -2
  516. package/dist/team/__tests__/tmux-session.test.js.map +1 -1
  517. package/dist/team/__tests__/worker-bootstrap.test.d.ts +2 -0
  518. package/dist/team/__tests__/worker-bootstrap.test.d.ts.map +1 -0
  519. package/dist/team/__tests__/worker-bootstrap.test.js +58 -0
  520. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -0
  521. package/dist/team/bridge-entry.d.ts.map +1 -1
  522. package/dist/team/bridge-entry.js +4 -0
  523. package/dist/team/bridge-entry.js.map +1 -1
  524. package/dist/team/capabilities.d.ts.map +1 -1
  525. package/dist/team/capabilities.js +3 -0
  526. package/dist/team/capabilities.js.map +1 -1
  527. package/dist/team/cli-detection.d.ts +9 -0
  528. package/dist/team/cli-detection.d.ts.map +1 -0
  529. package/dist/team/cli-detection.js +29 -0
  530. package/dist/team/cli-detection.js.map +1 -0
  531. package/dist/team/idle-nudge.d.ts +53 -0
  532. package/dist/team/idle-nudge.d.ts.map +1 -0
  533. package/dist/team/idle-nudge.js +124 -0
  534. package/dist/team/idle-nudge.js.map +1 -0
  535. package/dist/team/inbox-outbox.d.ts.map +1 -1
  536. package/dist/team/inbox-outbox.js +7 -3
  537. package/dist/team/inbox-outbox.js.map +1 -1
  538. package/dist/team/index.d.ts +14 -1
  539. package/dist/team/index.d.ts.map +1 -1
  540. package/dist/team/index.js +12 -1
  541. package/dist/team/index.js.map +1 -1
  542. package/dist/team/mcp-team-bridge.d.ts +9 -0
  543. package/dist/team/mcp-team-bridge.d.ts.map +1 -1
  544. package/dist/team/mcp-team-bridge.js +82 -3
  545. package/dist/team/mcp-team-bridge.js.map +1 -1
  546. package/dist/team/model-contract.d.ts +37 -0
  547. package/dist/team/model-contract.d.ts.map +1 -0
  548. package/dist/team/model-contract.js +139 -0
  549. package/dist/team/model-contract.js.map +1 -0
  550. package/dist/team/phase-controller.d.ts +33 -0
  551. package/dist/team/phase-controller.d.ts.map +1 -0
  552. package/dist/team/phase-controller.js +79 -0
  553. package/dist/team/phase-controller.js.map +1 -0
  554. package/dist/team/runtime-cli.d.ts +9 -0
  555. package/dist/team/runtime-cli.d.ts.map +1 -0
  556. package/dist/team/runtime-cli.js +188 -0
  557. package/dist/team/runtime-cli.js.map +1 -0
  558. package/dist/team/runtime.d.ts +95 -0
  559. package/dist/team/runtime.d.ts.map +1 -0
  560. package/dist/team/runtime.js +692 -0
  561. package/dist/team/runtime.js.map +1 -0
  562. package/dist/team/state-paths.d.ts +72 -0
  563. package/dist/team/state-paths.d.ts.map +1 -0
  564. package/dist/team/state-paths.js +87 -0
  565. package/dist/team/state-paths.js.map +1 -0
  566. package/dist/team/task-file-ops.d.ts +27 -7
  567. package/dist/team/task-file-ops.d.ts.map +1 -1
  568. package/dist/team/task-file-ops.js +116 -55
  569. package/dist/team/task-file-ops.js.map +1 -1
  570. package/dist/team/team-name.d.ts +2 -0
  571. package/dist/team/team-name.d.ts.map +1 -0
  572. package/dist/team/team-name.js +8 -0
  573. package/dist/team/team-name.js.map +1 -0
  574. package/dist/team/team-registration.d.ts +1 -1
  575. package/dist/team/team-registration.d.ts.map +1 -1
  576. package/dist/team/team-registration.js.map +1 -1
  577. package/dist/team/team-status.d.ts +11 -1
  578. package/dist/team/team-status.d.ts.map +1 -1
  579. package/dist/team/team-status.js +32 -3
  580. package/dist/team/team-status.js.map +1 -1
  581. package/dist/team/tmux-comm.d.ts +36 -0
  582. package/dist/team/tmux-comm.d.ts.map +1 -0
  583. package/dist/team/tmux-comm.js +115 -0
  584. package/dist/team/tmux-comm.js.map +1 -0
  585. package/dist/team/tmux-session.d.ts +92 -0
  586. package/dist/team/tmux-session.d.ts.map +1 -1
  587. package/dist/team/tmux-session.js +533 -2
  588. package/dist/team/tmux-session.js.map +1 -1
  589. package/dist/team/types.d.ts +10 -3
  590. package/dist/team/types.d.ts.map +1 -1
  591. package/dist/team/unified-team.d.ts.map +1 -1
  592. package/dist/team/unified-team.js +13 -3
  593. package/dist/team/unified-team.js.map +1 -1
  594. package/dist/team/worker-bootstrap.d.ts +39 -0
  595. package/dist/team/worker-bootstrap.d.ts.map +1 -0
  596. package/dist/team/worker-bootstrap.js +117 -0
  597. package/dist/team/worker-bootstrap.js.map +1 -0
  598. package/dist/team/worker-health.d.ts.map +1 -1
  599. package/dist/team/worker-health.js +15 -3
  600. package/dist/team/worker-health.js.map +1 -1
  601. package/dist/tools/ast-tools.js +1 -1
  602. package/dist/tools/ast-tools.js.map +1 -1
  603. package/dist/tools/diagnostics/lsp-aggregator.d.ts.map +1 -1
  604. package/dist/tools/diagnostics/lsp-aggregator.js +4 -2
  605. package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
  606. package/dist/tools/lsp/__tests__/client-handle-data.test.d.ts +2 -0
  607. package/dist/tools/lsp/__tests__/client-handle-data.test.d.ts.map +1 -0
  608. package/dist/tools/lsp/__tests__/client-handle-data.test.js +138 -0
  609. package/dist/tools/lsp/__tests__/client-handle-data.test.js.map +1 -0
  610. package/dist/tools/lsp/client.d.ts +13 -0
  611. package/dist/tools/lsp/client.d.ts.map +1 -1
  612. package/dist/tools/lsp/client.js +64 -8
  613. package/dist/tools/lsp/client.js.map +1 -1
  614. package/dist/tools/lsp/servers.d.ts.map +1 -1
  615. package/dist/tools/lsp/servers.js +4 -9
  616. package/dist/tools/lsp/servers.js.map +1 -1
  617. package/dist/tools/lsp-tools.d.ts.map +1 -1
  618. package/dist/tools/lsp-tools.js +4 -0
  619. package/dist/tools/lsp-tools.js.map +1 -1
  620. package/dist/tools/python-repl/bridge-manager.d.ts.map +1 -1
  621. package/dist/tools/python-repl/bridge-manager.js +15 -1
  622. package/dist/tools/python-repl/bridge-manager.js.map +1 -1
  623. package/dist/tools/python-repl/session-lock.d.ts.map +1 -1
  624. package/dist/tools/python-repl/session-lock.js +35 -15
  625. package/dist/tools/python-repl/session-lock.js.map +1 -1
  626. package/dist/tools/state-tools.d.ts.map +1 -1
  627. package/dist/tools/state-tools.js +10 -0
  628. package/dist/tools/state-tools.js.map +1 -1
  629. package/dist/utils/__tests__/frontmatter.test.d.ts +2 -0
  630. package/dist/utils/__tests__/frontmatter.test.d.ts.map +1 -0
  631. package/dist/utils/__tests__/frontmatter.test.js +147 -0
  632. package/dist/utils/__tests__/frontmatter.test.js.map +1 -0
  633. package/dist/utils/frontmatter.d.ts +24 -0
  634. package/dist/utils/frontmatter.d.ts.map +1 -0
  635. package/dist/utils/frontmatter.js +62 -0
  636. package/dist/utils/frontmatter.js.map +1 -0
  637. package/dist/utils/paths.d.ts.map +1 -1
  638. package/dist/utils/paths.js +4 -2
  639. package/dist/utils/paths.js.map +1 -1
  640. package/dist/utils/string-width.d.ts.map +1 -1
  641. package/dist/utils/string-width.js +15 -4
  642. package/dist/utils/string-width.js.map +1 -1
  643. package/dist/verification/tier-selector.js +1 -1
  644. package/dist/verification/tier-selector.js.map +1 -1
  645. package/docs/AGENTS.md +4 -2
  646. package/docs/CLAUDE.md +8 -48
  647. package/docs/MIGRATION.md +114 -0
  648. package/docs/REFERENCE.md +35 -102
  649. package/hooks/hooks.json +23 -23
  650. package/package.json +8 -8
  651. package/scripts/build-runtime-cli.mjs +24 -0
  652. package/scripts/build-team-server.mjs +28 -0
  653. package/scripts/cleanup-orphans.mjs +22 -5
  654. package/scripts/context-safety.mjs +5 -1
  655. package/scripts/demo-team.mjs +26 -0
  656. package/scripts/keyword-detector.mjs +6 -76
  657. package/scripts/openclaw-gateway-demo.mjs +168 -0
  658. package/scripts/persistent-mode.cjs +30 -4
  659. package/scripts/persistent-mode.mjs +48 -3
  660. package/scripts/plugin-setup.mjs +66 -3
  661. package/scripts/post-tool-use-failure.mjs +20 -2
  662. package/scripts/post-tool-verifier.mjs +57 -6
  663. package/scripts/pre-tool-enforcer.mjs +125 -5
  664. package/scripts/run.cjs +114 -0
  665. package/scripts/session-start.mjs +56 -7
  666. package/scripts/status.mjs +144 -0
  667. package/scripts/test-codex-gemini-team.mjs +78 -0
  668. package/skills/AGENTS.md +5 -2
  669. package/skills/analyze/SKILL.md +5 -11
  670. package/skills/autopilot/SKILL.md +16 -25
  671. package/skills/ccg/SKILL.md +88 -99
  672. package/skills/configure-notifications/SKILL.md +177 -0
  673. package/skills/configure-openclaw/SKILL.md +320 -0
  674. package/skills/external-context/SKILL.md +7 -83
  675. package/skills/hud/SKILL.md +68 -46
  676. package/skills/omc-setup/SKILL.md +58 -19
  677. package/skills/omc-teams/SKILL.md +178 -0
  678. package/skills/pipeline/SKILL.md +4 -4
  679. package/skills/plan/SKILL.md +28 -16
  680. package/skills/ralph/SKILL.md +3 -4
  681. package/skills/ralph-init/SKILL.md +3 -1
  682. package/skills/ralplan/SKILL.md +93 -8
  683. package/skills/security-review/SKILL.md +5 -6
  684. package/skills/tdd/SKILL.md +5 -6
  685. package/skills/team/SKILL.md +35 -34
  686. package/templates/hooks/keyword-detector.mjs +11 -82
  687. package/templates/hooks/persistent-mode.mjs +120 -3
  688. package/templates/hooks/post-tool-use-failure.mjs +20 -2
  689. package/templates/hooks/session-start.mjs +2 -16
  690. package/dist/__tests__/analytics/backfill-dedup.test.d.ts +0 -2
  691. package/dist/__tests__/analytics/backfill-dedup.test.d.ts.map +0 -1
  692. package/dist/__tests__/analytics/backfill-dedup.test.js +0 -179
  693. package/dist/__tests__/analytics/backfill-dedup.test.js.map +0 -1
  694. package/dist/__tests__/analytics/backfill-engine.test.d.ts +0 -2
  695. package/dist/__tests__/analytics/backfill-engine.test.d.ts.map +0 -1
  696. package/dist/__tests__/analytics/backfill-engine.test.js +0 -362
  697. package/dist/__tests__/analytics/backfill-engine.test.js.map +0 -1
  698. package/dist/__tests__/analytics/output-estimator.test.d.ts +0 -2
  699. package/dist/__tests__/analytics/output-estimator.test.d.ts.map +0 -1
  700. package/dist/__tests__/analytics/output-estimator.test.js +0 -124
  701. package/dist/__tests__/analytics/output-estimator.test.js.map +0 -1
  702. package/dist/__tests__/analytics/token-extractor.test.d.ts +0 -2
  703. package/dist/__tests__/analytics/token-extractor.test.d.ts.map +0 -1
  704. package/dist/__tests__/analytics/token-extractor.test.js +0 -165
  705. package/dist/__tests__/analytics/token-extractor.test.js.map +0 -1
  706. package/dist/__tests__/analytics/token-tracker.test.d.ts +0 -2
  707. package/dist/__tests__/analytics/token-tracker.test.d.ts.map +0 -1
  708. package/dist/__tests__/analytics/token-tracker.test.js +0 -189
  709. package/dist/__tests__/analytics/token-tracker.test.js.map +0 -1
  710. package/dist/__tests__/analytics/tokscale-adapter.test.d.ts +0 -2
  711. package/dist/__tests__/analytics/tokscale-adapter.test.d.ts.map +0 -1
  712. package/dist/__tests__/analytics/tokscale-adapter.test.js +0 -79
  713. package/dist/__tests__/analytics/tokscale-adapter.test.js.map +0 -1
  714. package/dist/__tests__/analytics/transcript-parser.test.d.ts +0 -2
  715. package/dist/__tests__/analytics/transcript-parser.test.d.ts.map +0 -1
  716. package/dist/__tests__/analytics/transcript-parser.test.js +0 -285
  717. package/dist/__tests__/analytics/transcript-parser.test.js.map +0 -1
  718. package/dist/__tests__/analytics/transcript-scanner.test.d.ts +0 -2
  719. package/dist/__tests__/analytics/transcript-scanner.test.d.ts.map +0 -1
  720. package/dist/__tests__/analytics/transcript-scanner.test.js +0 -443
  721. package/dist/__tests__/analytics/transcript-scanner.test.js.map +0 -1
  722. package/dist/__tests__/analytics/transcript-token-extractor.test.d.ts +0 -2
  723. package/dist/__tests__/analytics/transcript-token-extractor.test.d.ts.map +0 -1
  724. package/dist/__tests__/analytics/transcript-token-extractor.test.js +0 -177
  725. package/dist/__tests__/analytics/transcript-token-extractor.test.js.map +0 -1
  726. package/dist/analytics/analytics-summary.d.ts +0 -47
  727. package/dist/analytics/analytics-summary.d.ts.map +0 -1
  728. package/dist/analytics/analytics-summary.js +0 -171
  729. package/dist/analytics/analytics-summary.js.map +0 -1
  730. package/dist/analytics/backfill-dedup.d.ts +0 -49
  731. package/dist/analytics/backfill-dedup.d.ts.map +0 -1
  732. package/dist/analytics/backfill-dedup.js +0 -115
  733. package/dist/analytics/backfill-dedup.js.map +0 -1
  734. package/dist/analytics/backfill-engine.d.ts +0 -59
  735. package/dist/analytics/backfill-engine.d.ts.map +0 -1
  736. package/dist/analytics/backfill-engine.js +0 -172
  737. package/dist/analytics/backfill-engine.js.map +0 -1
  738. package/dist/analytics/cost-estimator.d.ts +0 -29
  739. package/dist/analytics/cost-estimator.d.ts.map +0 -1
  740. package/dist/analytics/cost-estimator.js +0 -135
  741. package/dist/analytics/cost-estimator.js.map +0 -1
  742. package/dist/analytics/export.d.ts +0 -7
  743. package/dist/analytics/export.d.ts.map +0 -1
  744. package/dist/analytics/export.js +0 -93
  745. package/dist/analytics/export.js.map +0 -1
  746. package/dist/analytics/index.d.ts +0 -24
  747. package/dist/analytics/index.d.ts.map +0 -1
  748. package/dist/analytics/index.js +0 -30
  749. package/dist/analytics/index.js.map +0 -1
  750. package/dist/analytics/metrics-collector.d.ts +0 -30
  751. package/dist/analytics/metrics-collector.d.ts.map +0 -1
  752. package/dist/analytics/metrics-collector.js +0 -96
  753. package/dist/analytics/metrics-collector.js.map +0 -1
  754. package/dist/analytics/output-estimator.d.ts +0 -26
  755. package/dist/analytics/output-estimator.d.ts.map +0 -1
  756. package/dist/analytics/output-estimator.js +0 -65
  757. package/dist/analytics/output-estimator.js.map +0 -1
  758. package/dist/analytics/query-engine.d.ts +0 -35
  759. package/dist/analytics/query-engine.d.ts.map +0 -1
  760. package/dist/analytics/query-engine.js +0 -239
  761. package/dist/analytics/query-engine.js.map +0 -1
  762. package/dist/analytics/session-catalog.d.ts +0 -45
  763. package/dist/analytics/session-catalog.d.ts.map +0 -1
  764. package/dist/analytics/session-catalog.js +0 -153
  765. package/dist/analytics/session-catalog.js.map +0 -1
  766. package/dist/analytics/session-manager.d.ts +0 -58
  767. package/dist/analytics/session-manager.d.ts.map +0 -1
  768. package/dist/analytics/session-manager.js +0 -396
  769. package/dist/analytics/session-manager.js.map +0 -1
  770. package/dist/analytics/session-types.d.ts +0 -37
  771. package/dist/analytics/session-types.d.ts.map +0 -1
  772. package/dist/analytics/session-types.js +0 -2
  773. package/dist/analytics/session-types.js.map +0 -1
  774. package/dist/analytics/token-extractor.d.ts +0 -31
  775. package/dist/analytics/token-extractor.d.ts.map +0 -1
  776. package/dist/analytics/token-extractor.js +0 -57
  777. package/dist/analytics/token-extractor.js.map +0 -1
  778. package/dist/analytics/token-tracker.d.ts +0 -33
  779. package/dist/analytics/token-tracker.d.ts.map +0 -1
  780. package/dist/analytics/token-tracker.js +0 -443
  781. package/dist/analytics/token-tracker.js.map +0 -1
  782. package/dist/analytics/tokscale-adapter.d.ts +0 -71
  783. package/dist/analytics/tokscale-adapter.d.ts.map +0 -1
  784. package/dist/analytics/tokscale-adapter.js +0 -223
  785. package/dist/analytics/tokscale-adapter.js.map +0 -1
  786. package/dist/analytics/transcript-parser.d.ts +0 -42
  787. package/dist/analytics/transcript-parser.d.ts.map +0 -1
  788. package/dist/analytics/transcript-parser.js +0 -90
  789. package/dist/analytics/transcript-parser.js.map +0 -1
  790. package/dist/analytics/transcript-scanner.d.ts +0 -51
  791. package/dist/analytics/transcript-scanner.d.ts.map +0 -1
  792. package/dist/analytics/transcript-scanner.js +0 -279
  793. package/dist/analytics/transcript-scanner.js.map +0 -1
  794. package/dist/analytics/transcript-token-extractor.d.ts +0 -35
  795. package/dist/analytics/transcript-token-extractor.d.ts.map +0 -1
  796. package/dist/analytics/transcript-token-extractor.js +0 -136
  797. package/dist/analytics/transcript-token-extractor.js.map +0 -1
  798. package/dist/analytics/types.d.ts +0 -119
  799. package/dist/analytics/types.d.ts.map +0 -1
  800. package/dist/analytics/types.js +0 -32
  801. package/dist/analytics/types.js.map +0 -1
  802. package/dist/cli/analytics.d.ts +0 -3
  803. package/dist/cli/analytics.d.ts.map +0 -1
  804. package/dist/cli/analytics.js +0 -105
  805. package/dist/cli/analytics.js.map +0 -1
  806. package/dist/cli/commands/agents.d.ts +0 -5
  807. package/dist/cli/commands/agents.d.ts.map +0 -1
  808. package/dist/cli/commands/agents.js +0 -31
  809. package/dist/cli/commands/agents.js.map +0 -1
  810. package/dist/cli/commands/backfill.d.ts +0 -15
  811. package/dist/cli/commands/backfill.d.ts.map +0 -1
  812. package/dist/cli/commands/backfill.js +0 -146
  813. package/dist/cli/commands/backfill.js.map +0 -1
  814. package/dist/cli/commands/cleanup.d.ts +0 -4
  815. package/dist/cli/commands/cleanup.d.ts.map +0 -1
  816. package/dist/cli/commands/cleanup.js +0 -31
  817. package/dist/cli/commands/cleanup.js.map +0 -1
  818. package/dist/cli/commands/cost.d.ts +0 -4
  819. package/dist/cli/commands/cost.d.ts.map +0 -1
  820. package/dist/cli/commands/cost.js +0 -53
  821. package/dist/cli/commands/cost.js.map +0 -1
  822. package/dist/cli/commands/export.d.ts +0 -5
  823. package/dist/cli/commands/export.d.ts.map +0 -1
  824. package/dist/cli/commands/export.js +0 -30
  825. package/dist/cli/commands/export.js.map +0 -1
  826. package/dist/cli/commands/sessions.d.ts +0 -5
  827. package/dist/cli/commands/sessions.d.ts.map +0 -1
  828. package/dist/cli/commands/sessions.js +0 -89
  829. package/dist/cli/commands/sessions.js.map +0 -1
  830. package/dist/cli/commands/stats.d.ts +0 -5
  831. package/dist/cli/commands/stats.d.ts.map +0 -1
  832. package/dist/cli/commands/stats.js +0 -84
  833. package/dist/cli/commands/stats.js.map +0 -1
  834. package/dist/cli/utils/tokscale-launcher.d.ts +0 -25
  835. package/dist/cli/utils/tokscale-launcher.d.ts.map +0 -1
  836. package/dist/cli/utils/tokscale-launcher.js +0 -70
  837. package/dist/cli/utils/tokscale-launcher.js.map +0 -1
  838. package/dist/hud/analytics-display.d.ts +0 -63
  839. package/dist/hud/analytics-display.d.ts.map +0 -1
  840. package/dist/hud/analytics-display.js +0 -190
  841. package/dist/hud/analytics-display.js.map +0 -1
  842. package/scripts/build-codex-server.mjs +0 -95
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Live test: spawn a 2-worker tmux team with Codex + Gemini CLI workers.
4
+ * Must be run inside tmux. Panes will appear in the current window.
5
+ * Usage: node scripts/test-codex-gemini-team.mjs
6
+ */
7
+ import { startTeam, monitorTeam, shutdownTeam } from '../dist/team/runtime.js';
8
+
9
+ const CWD = process.cwd();
10
+
11
+ const config = {
12
+ teamName: 'cgtest',
13
+ workerCount: 2,
14
+ agentTypes: ['codex', 'gemini'],
15
+ tasks: [
16
+ {
17
+ subject: 'Write a haiku about tmux split panes',
18
+ description: [
19
+ 'Write a haiku (3 lines, 5-7-5 syllables) about tmux split panes.',
20
+ 'Save the haiku to the file: ' + CWD + '/done.json',
21
+ 'The file should be valid JSON: {"taskId":"1","status":"completed","summary":"<your haiku here>","completedAt":"' + new Date().toISOString() + '"}',
22
+ 'Write the file and exit.',
23
+ ].join(' '),
24
+ },
25
+ {
26
+ subject: 'Write a haiku about AI collaboration',
27
+ description: [
28
+ 'Write a haiku (3 lines, 5-7-5 syllables) about AI models collaborating.',
29
+ 'Save the haiku to the file: ' + CWD + '/farewell.txt',
30
+ 'The file should contain just the haiku text.',
31
+ 'Write the file and exit.',
32
+ ].join(' '),
33
+ },
34
+ ],
35
+ cwd: CWD,
36
+ };
37
+
38
+ console.log('\n🚀 Starting tmux team "cgtest" with Codex + Gemini workers...\n');
39
+
40
+ const runtime = await startTeam(config);
41
+
42
+ console.log('✅ Team started!');
43
+ console.log(` tmux target : ${runtime.sessionName}`);
44
+ console.log(` workers : ${runtime.workerNames.join(', ')}`);
45
+ console.log(` pane IDs : ${runtime.workerPaneIds.join(', ')}`);
46
+ console.log('\n⏳ Monitoring... (polling every 5s, timeout 120s)\n');
47
+
48
+ const deadline = Date.now() + 120_000;
49
+ let done = false;
50
+
51
+ while (Date.now() < deadline && !done) {
52
+ await new Promise(r => setTimeout(r, 5000));
53
+ const snap = await monitorTeam(runtime.teamName, runtime.cwd, runtime.workerPaneIds);
54
+ const { pending, inProgress, completed, failed } = snap.taskCounts;
55
+ console.log(` [${new Date().toLocaleTimeString()}] phase=${snap.phase} pending=${pending} inProgress=${inProgress} completed=${completed} failed=${failed}`);
56
+ snap.deadWorkers.forEach(w => console.log(` ⚠️ dead worker: ${w}`));
57
+ if (snap.phase === 'completed' || snap.phase === 'failed') {
58
+ done = true;
59
+ }
60
+ }
61
+
62
+ if (!done) {
63
+ console.log('\n⚠️ Timeout — shutting down anyway\n');
64
+ }
65
+
66
+ console.log('\n🛑 Shutting down team...');
67
+ await shutdownTeam(runtime.teamName, runtime.sessionName, runtime.cwd, 15_000, runtime.workerPaneIds, runtime.leaderPaneId);
68
+ console.log('✅ Team shut down cleanly.\n');
69
+
70
+ // Show results
71
+ import { readFileSync, existsSync } from 'fs';
72
+ if (existsSync(CWD + '/done.json')) {
73
+ const d = JSON.parse(readFileSync(CWD + '/done.json', 'utf-8'));
74
+ console.log('📄 Codex result (done.json):', d.summary || d);
75
+ }
76
+ if (existsSync(CWD + '/farewell.txt')) {
77
+ console.log('📄 Gemini result (farewell.txt):\n' + readFileSync(CWD + '/farewell.txt', 'utf-8'));
78
+ }
package/skills/AGENTS.md CHANGED
@@ -31,7 +31,7 @@ Skills are reusable workflow templates that can be invoked via `/oh-my-claudecod
31
31
  | File | Skill | Purpose |
32
32
  |-----------|-------|---------|
33
33
  | `plan/SKILL.md` | plan | Strategic planning with interview workflow |
34
- | `ralplan/SKILL.md` | ralplan | Iterative planning (Planner+Architect+Critic) |
34
+ | `ralplan/SKILL.md` | ralplan | Iterative planning (Planner+Architect+Critic) with RALPLAN-DR structured deliberation (`--deliberate` for high-risk) |
35
35
  | `review/SKILL.md` | review | Review plan with Critic |
36
36
  | `analyze/SKILL.md` | analyze | Deep analysis and investigation |
37
37
  | `ralph-init/SKILL.md` | ralph-init | Initialize PRD for structured ralph |
@@ -197,4 +197,7 @@ Some skills activate automatically based on context:
197
197
  | git-master | Git operations detected |
198
198
  | cancel | "stop", "cancel", "abort" |
199
199
 
200
- <!-- MANUAL: -->
200
+ <!-- MANUAL:
201
+ - Team runtime wait semantics: `omc_run_team_wait.timeout_ms` only limits the wait call and does not stop workers.
202
+ - `timeoutSeconds` is removed from `omc_run_team_start`; use explicit `omc_run_team_cleanup` for intentional worker pane termination.
203
+ -->
@@ -4,7 +4,7 @@ description: Deep analysis and investigation
4
4
  ---
5
5
 
6
6
  <Purpose>
7
- Analyze performs deep investigation of architecture, bugs, performance issues, and dependencies. It routes to the architect agent or Codex MCP for thorough analysis and returns structured findings with evidence.
7
+ Analyze performs deep investigation of architecture, bugs, performance issues, and dependencies. It routes to the architect Claude agent for thorough analysis and returns structured findings with evidence.
8
8
  </Purpose>
9
9
 
10
10
  <Use_When>
@@ -27,26 +27,20 @@ Deep investigation requires a different approach than quick lookups or code chan
27
27
  </Why_This_Exists>
28
28
 
29
29
  <Execution_Policy>
30
- - Prefer Codex MCP for analysis when available (faster, lower cost)
31
- - Fall back to architect Claude agent when Codex is unavailable
32
- - Always provide context files to the analysis tool for grounded reasoning
30
+ - Route analysis to the architect Claude agent for thorough investigation
31
+ - Always gather context files before spawning the architect agent for grounded reasoning
33
32
  - Return structured findings, not just raw observations
34
33
  </Execution_Policy>
35
34
 
36
35
  <Steps>
37
36
  1. **Identify the analysis type**: Architecture, bug investigation, performance, or dependency analysis
38
37
  2. **Gather relevant context**: Read or identify the key files involved
39
- 3. **Route to analyzer**:
40
- - Preferred: `ask_codex` with `agent_role: "architect"` and relevant `context_files`
41
- - Fallback: `Task(subagent_type="oh-my-claudecode:architect", model="opus", prompt="Analyze: ...")`
38
+ 3. **Route to analyzer**: `Task(subagent_type="oh-my-claudecode:architect", model="opus", prompt="Analyze: ...")`
42
39
  4. **Return structured findings**: Present the analysis with evidence, file references, and actionable recommendations
43
40
  </Steps>
44
41
 
45
42
  <Tool_Usage>
46
- - Before first MCP tool use, run the 3-step discovery: (1) `ToolSearch("mcp")`, (2) select the full name from results (e.g., `mcp__x__ask_codex`), (3) fall back to the equivalent Claude agent only if step 1 returns empty. Never use `ToolSearch("ask_codex")` as the primary search -- it can return false negatives even when MCP tools are present.
47
- - Use `ask_codex` with `agent_role: "architect"` as the preferred analysis route
48
- - Pass `context_files` with all relevant source files for grounded analysis
49
- - Use `Task(subagent_type="oh-my-claudecode:architect", model="opus", ...)` as fallback when ToolSearch finds no MCP tools or Codex is unavailable
43
+ - Use `Task(subagent_type="oh-my-claudecode:architect", model="opus", ...)` as the primary analysis route
50
44
  - For broad analysis, use `explore` agent first to identify relevant files before routing to architect
51
45
  </Tool_Usage>
52
46
 
@@ -46,9 +46,8 @@ Most non-trivial software tasks require coordinated phases: understanding requir
46
46
  - Output: `.omc/plans/autopilot-impl.md`
47
47
 
48
48
  3. **Phase 2 - Execution**: Implement the plan using Ralph + Ultrawork
49
- - Executor-low (Haiku): Simple tasks
50
- - Executor (Sonnet): Standard tasks
51
- - Executor-high (Opus): Complex tasks
49
+ - Executor (Sonnet): Standard implementation tasks
50
+ - Deep-executor (Opus): Complex autonomous tasks
52
51
  - Run independent tasks in parallel
53
52
 
54
53
  4. **Phase 3 - QA**: Cycle until all tests pass (UltraQA mode)
@@ -62,18 +61,14 @@ Most non-trivial software tasks require coordinated phases: understanding requir
62
61
  - Code-reviewer: Quality review
63
62
  - All must approve; fix and re-validate on rejection
64
63
 
65
- 6. **Phase 5 - Cleanup**: Delete all state files on successful completion
66
- - Remove `.omc/state/autopilot-state.json`, `ralph-state.json`, `ultrawork-state.json`, `ultraqa-state.json`
67
- - Run `/oh-my-claudecode:cancel` for clean exit
68
64
  </Steps>
69
65
 
70
66
  <Tool_Usage>
71
- - Before first MCP tool use, call `ToolSearch("mcp")` to discover deferred MCP tools
72
- - Use `ask_codex` with `agent_role: "architect"` for Phase 4 architecture validation
73
- - Use `ask_codex` with `agent_role: "security-reviewer"` for Phase 4 security review
74
- - Use `ask_codex` with `agent_role: "code-reviewer"` for Phase 4 quality review
75
- - Agents form their own analysis first, then consult Codex for cross-validation
76
- - If ToolSearch finds no MCP tools or Codex is unavailable, proceed without it -- never block on external tools
67
+ - Use `Task(subagent_type="oh-my-claudecode:architect", ...)` for Phase 4 architecture validation
68
+ - Use `Task(subagent_type="oh-my-claudecode:security-reviewer", ...)` for Phase 4 security review
69
+ - Use `Task(subagent_type="oh-my-claudecode:code-reviewer", ...)` for Phase 4 quality review
70
+ - Agents form their own analysis first, then spawn Claude Task agents for cross-validation
71
+ - Never block on external tools; proceed with available agents if delegation fails
77
72
  </Tool_Usage>
78
73
 
79
74
  <Examples>
@@ -117,21 +112,17 @@ Why bad: This is an exploration/brainstorming request. Respond conversationally
117
112
  <Advanced>
118
113
  ## Configuration
119
114
 
120
- Optional settings in `.claude/settings.json`:
115
+ Default values used internally (passed programmatically via the `config` parameter to `initAutopilot`):
121
116
 
122
117
  ```json
123
118
  {
124
- "omc": {
125
- "autopilot": {
126
- "maxIterations": 10,
127
- "maxQaCycles": 5,
128
- "maxValidationRounds": 3,
129
- "pauseAfterExpansion": false,
130
- "pauseAfterPlanning": false,
131
- "skipQa": false,
132
- "skipValidation": false
133
- }
134
- }
119
+ "maxIterations": 10,
120
+ "maxQaCycles": 5,
121
+ "maxValidationRounds": 3,
122
+ "pauseAfterExpansion": false,
123
+ "pauseAfterPlanning": false,
124
+ "skipQa": false,
125
+ "skipValidation": false
135
126
  }
136
127
  ```
137
128
 
@@ -148,7 +139,7 @@ If autopilot was cancelled or failed, run `/oh-my-claudecode:autopilot` again to
148
139
 
149
140
  ## Troubleshooting
150
141
 
151
- **Stuck in a phase?** Check TODO list for blocked tasks, review `.omc/autopilot-state.json`, or cancel and resume.
142
+ **Stuck in a phase?** Check TODO list for blocked tasks, review `.omc/state/autopilot-state.json`, or cancel and resume.
152
143
 
153
144
  **QA cycles exhausted?** The same error 3 times indicates a fundamental issue. Review the error pattern; manual intervention may be needed.
154
145
 
@@ -3,136 +3,125 @@ name: ccg
3
3
  description: Claude-Codex-Gemini tri-model orchestration - fans out backend tasks to Codex and frontend/UI tasks to Gemini in parallel, then Claude synthesizes results
4
4
  ---
5
5
 
6
- # CCG (Claude-Codex-Gemini) Orchestration
6
+ # CCG - Claude-Codex-Gemini Tri-Model Orchestration
7
7
 
8
- ## Overview
8
+ CCG spawns a tmux team with Codex and Gemini CLI workers running in parallel panes, then Claude synthesizes the results. Use this for tasks that benefit from multiple AI perspectives simultaneously.
9
9
 
10
- CCG is a tri-model orchestration pattern:
10
+ ## When to Use
11
11
 
12
- - **Claude** Orchestrator/conductor: decomposes requests, fans out work, synthesizes results
13
- - **Codex** (OpenAI) Backend/code engine: architecture, APIs, security, code analysis
14
- - **Gemini** (Google) Frontend/design processor: UI components, styling, visual design, large-context tasks
12
+ - Backend/analysis + frontend/UI work that can run truly in parallel
13
+ - Code review from multiple perspectives (architecture + style simultaneously)
14
+ - Research tasks where different models have complementary strengths
15
+ - Any task you want to split across Codex (analytical) and Gemini (design/creative) workers
15
16
 
16
- Claude fans Codex and Gemini out **in parallel**, then synthesizes their outputs into a unified solution.
17
+ ## Requirements
17
18
 
18
- ## Trigger
19
+ - **Codex CLI**: `npm install -g @openai/codex` (or `@openai/codex`)
20
+ - **Gemini CLI**: `npm install -g @google/gemini-cli`
21
+ - **tmux**: Must be running inside a tmux session
22
+ - If either CLI is unavailable, CCG falls back to Claude-only execution
19
23
 
20
- Activated when the user says `ccg` or `claude-codex-gemini` in their prompt.
24
+ ## How It Works
21
25
 
22
- ## Execution Protocol
23
-
24
- **ANNOUNCE immediately**: `"CCG MODE ENABLED — Orchestrating Claude + Codex + Gemini"`
25
-
26
- ### Phase 1: Decompose
26
+ ```
27
+ 1. Claude decomposes the request into:
28
+ - Backend/analytical tasks Codex worker
29
+ - Frontend/UI/design tasks → Gemini worker
27
30
 
28
- Analyze the request and split into:
29
- - **Backend tasks** → Codex (APIs, data models, business logic, tests, security)
30
- - **Frontend tasks** → Gemini (UI components, styling, layout, responsive design)
31
- - **Synthesis tasks** Claude (integration, cross-cutting concerns, final wiring)
31
+ 2. mcp__team__omc_run_team_start creates a tmux session with 2 workers:
32
+ omc-team-{name}
33
+ ├── Leader pane (Claude orchestrates)
34
+ ├── Worker pane 1: codex CLI (analytical tasks)
35
+ └── Worker pane 2: gemini CLI (design tasks)
32
36
 
33
- ### Phase 2: Fan-Out (Parallel)
37
+ 3. Workers read tasks from inbox files and write done.json on completion
34
38
 
35
- Run Codex and Gemini **simultaneously** using background mode.
39
+ 4. mcp__team__omc_run_team_wait blocks until all workers finish
36
40
 
37
- **Codex backend**:
38
- 1. Write prompt to `.omc/prompts/codex-{purpose}-{timestamp}.md`
39
- 2. Call `ask_codex` MCP tool:
40
- - `agent_role`: pick from `architect`, `executor`, `code-reviewer`, `security-reviewer`, `planner`, `critic`
41
- - `prompt_file`: the file you just wrote
42
- - `output_file`: `.omc/prompts/codex-{purpose}-{timestamp}-output.md`
43
- - `context_files`: relevant source files
44
- - `background: true` for non-blocking execution
41
+ 5. Claude reads taskResults and synthesizes into final output
42
+ ```
45
43
 
46
- **Gemini frontend**:
47
- 1. Write prompt to `.omc/prompts/gemini-{purpose}-{timestamp}.md`
48
- 2. Call `ask_gemini` MCP tool:
49
- - `agent_role`: pick from `designer`, `writer`, `vision`
50
- - `prompt_file`: the file you just wrote
51
- - `output_file`: `.omc/prompts/gemini-{purpose}-{timestamp}-output.md`
52
- - `files`: relevant source files
53
- - `background: true` for non-blocking execution
44
+ ## Execution Protocol
54
45
 
55
- ### Phase 3: Await Results
46
+ When invoked, Claude MUST follow this workflow:
56
47
 
57
- Use `wait_for_job` (or poll with `check_job_status`) for both jobs. Wait for both to complete before synthesizing.
48
+ ### 1. Decompose Request
49
+ Split the user's request into:
50
+ - **Codex tasks**: code analysis, architecture review, backend logic, security review, test strategy
51
+ - **Gemini tasks**: UI/UX design, documentation, visual analysis, large-context file review
52
+ - **Synthesis task**: Claude combines results (always done by Claude, not delegated)
58
53
 
59
- ### Phase 4: Synthesize
54
+ Choose a short `teamName` slug (e.g., `ccg-auth-review`).
60
55
 
61
- Claude reads both output files and:
62
- 1. Reconciles any conflicts (e.g., API shape vs component props)
63
- 2. Integrates backend + frontend solutions into a cohesive whole
64
- 3. Applies cross-cutting concerns (error handling, typing, auth)
65
- 4. Implements any remaining integration glue code
56
+ ### 2. Start the team (non-blocking)
66
57
 
67
- ## MCP Tool Selection Guide
58
+ Call `mcp__team__omc_run_team_start` spawns workers in the background and returns a `jobId` immediately:
68
59
 
69
- ### Use Codex (`ask_codex`) for:
70
- - REST/GraphQL API design and implementation
71
- - Database schema, migrations, data models
72
- - Backend business logic and services
73
- - Security audit and vulnerability analysis
74
- - Architecture review and refactoring
75
- - Test strategy, TDD, unit/integration tests
76
- - Build errors and TypeScript issues
60
+ ```
61
+ mcp__team__omc_run_team_start({
62
+ "teamName": "ccg-{slug}",
63
+ "agentTypes": ["codex", "gemini"],
64
+ "tasks": [
65
+ {"subject": "Codex task: ...", "description": "Full description of analytical work..."},
66
+ {"subject": "Gemini task: ...", "description": "Full description of design/UI work..."}
67
+ ],
68
+ "cwd": "{cwd}"
69
+ })
70
+ ```
77
71
 
78
- **Roles**: `architect`, `code-reviewer`, `security-reviewer`, `executor`, `planner`, `critic`, `test-engineer`
72
+ Returns: `{ "jobId": "omc-...", "pid": 12345, "message": "Team started in background..." }`
79
73
 
80
- ### Use Gemini (`ask_gemini`) for:
81
- - React/Vue/Svelte component implementation
82
- - CSS, Tailwind, styled-components
83
- - Responsive layouts and visual design
84
- - UI/UX review and heuristic audits
85
- - Large-scale documentation (1M token context)
86
- - Image/screenshot/diagram analysis
74
+ ### 3. Wait for completion
87
75
 
88
- **Roles**: `designer`, `writer`, `vision`
76
+ Call `mcp__team__omc_run_team_wait` — blocks internally until done:
89
77
 
90
- ## Fallback
78
+ ```
79
+ mcp__team__omc_run_team_wait({
80
+ "job_id": "{jobId}",
81
+ "timeout_ms": 60000
82
+ })
83
+ ```
91
84
 
92
- If **Codex MCP unavailable** use `Task(subagent_type="oh-my-claudecode:executor", model="sonnet")` for backend tasks.
85
+ > **Timeout guidance:** `timeout_ms` is optional; the default wait timeout is fine.
86
+ > If wait times out, workers/panes keep running. Call `omc_run_team_wait` again to keep
87
+ > waiting. Use `omc_run_team_cleanup` only for explicit cancel intent.
88
+
89
+ Returns when done:
90
+ ```json
91
+ {
92
+ "status": "completed|failed",
93
+ "result": {
94
+ "taskResults": [
95
+ {"taskId": "1", "status": "completed", "summary": "..."},
96
+ {"taskId": "2", "status": "completed", "summary": "..."}
97
+ ]
98
+ }
99
+ }
100
+ ```
93
101
 
94
- If **Gemini MCP unavailable** → use `Task(subagent_type="oh-my-claudecode:designer", model="sonnet")` for frontend tasks.
102
+ ### 4. Synthesize Results
95
103
 
96
- If **both unavailable** use Claude directly with the standard agent catalog.
104
+ Parse `result.taskResults` and synthesize Codex + Gemini outputs into a unified response for the user.
97
105
 
98
- ## Example
106
+ ## Fallback (CLIs Not Available)
99
107
 
100
- **User**: `ccg Add a user profile page with a REST API endpoint and React frontend`
108
+ CLI availability is checked by the MCP runtime automatically. If a CLI is not installed, the worker exits with `command not found`. In that case, fall back to Claude Task agents:
101
109
 
102
110
  ```
103
- CCG MODE ENABLED Orchestrating Claude + Codex + Gemini
104
-
105
- Decomposition:
106
- Backend → Codex: /api/users/:id endpoint, Prisma user model, auth middleware
107
- Frontend → Gemini: React UserProfile component, avatar, form, responsive layout
108
-
109
- Fan-out (parallel):
110
- [Codex] Implementing REST endpoint + data layer...
111
- [Gemini] Designing UserProfile component + styling...
112
-
113
- [Both complete]
114
-
115
- Synthesis:
116
- - Align API response type with React component props
117
- - Wire fetch hook to /api/users/:id endpoint
118
- - Add error boundary and loading state across layers
119
- - Export unified UserProfilePage with data fetching
111
+ [CCG] Codex/Gemini CLI not found. Falling back to Claude-only execution.
120
112
  ```
121
113
 
122
- ## Integration with Other Skills
123
-
124
- CCG composes with other OMC modes:
125
-
126
- | Combination | Effect |
127
- |-------------|--------|
128
- | `ccg ralph` | CCG loop with ralph persistence until verified complete |
129
- | `ccg ultrawork` | CCG with max parallelism within each model |
130
- | `ccg team` | CCG orchestration within a multi-agent team |
114
+ Use standard Claude Task agents instead:
115
+ - `Task(subagent_type="oh-my-claudecode:executor", model="sonnet", ...)` for analytical tasks
116
+ - `Task(subagent_type="oh-my-claudecode:designer", model="sonnet", ...)` for design tasks
131
117
 
132
- ## Cancellation
118
+ ## Invocation
133
119
 
134
- Stop active CCG work: say `cancelomc` or run `/oh-my-claudecode:cancel`.
135
-
136
- ## State
120
+ ```
121
+ /oh-my-claudecode:ccg [task description]
122
+ ```
137
123
 
138
- CCG does not maintain persistent state files. Each invocation is stateless — Claude manages the workflow inline. MCP job IDs are tracked in-context during the session.
124
+ Example:
125
+ ```
126
+ /oh-my-claudecode:ccg Review this PR - check architecture and code quality (Codex) and UI components (Gemini)
127
+ ```
@@ -758,3 +758,180 @@ Env vars are auto-detected by the notification system without needing `.omc-conf
758
758
  | Here | `<!here>` | `<!here>` |
759
759
  | Everyone | `<!everyone>` | `<!everyone>` |
760
760
  | User Group | `<!subteam^GROUP_ID>` | `<!subteam^S1234567890>` |
761
+
762
+ ---
763
+
764
+ ## Platform Activation Flags
765
+
766
+ All notification platforms require activation via CLI flags per session:
767
+
768
+ - `omc --telegram` — Activates Telegram notifications (sets `OMC_TELEGRAM=1`)
769
+ - `omc --discord` — Activates Discord notifications (sets `OMC_DISCORD=1`)
770
+ - `omc --slack` — Activates Slack notifications (sets `OMC_SLACK=1`)
771
+ - `omc --webhook` — Activates webhook notifications (sets `OMC_WEBHOOK=1`)
772
+ - `omc --openclaw` — Activates OpenClaw gateway integration (sets `OMC_OPENCLAW=1`)
773
+
774
+ Without these flags, configured platforms remain dormant. This prevents unwanted notifications during development while keeping configuration persistent.
775
+
776
+ **Examples:**
777
+ - `omc --telegram --discord` — Telegram + Discord active
778
+ - `omc --telegram --slack --webhook` — Telegram + Slack + Webhook active
779
+ - `omc --telegram --openclaw` — Telegram + OpenClaw active
780
+ - `omc` — No notifications sent (all platforms require explicit activation)
781
+
782
+ ---
783
+
784
+ ## Hook Event Templates
785
+
786
+ Customize notification messages per event and per platform using `omc_config.hook.json`.
787
+
788
+ ### Routing
789
+
790
+ If the trigger or argument contains "hook", "template", or "customize messages" → follow this section.
791
+
792
+ ### Step 1: Detect Existing Hook Config
793
+
794
+ Check if `~/.claude/omc_config.hook.json` exists. If it does, show the current configuration. If not, explain what it does.
795
+
796
+ ```
797
+ Hook event templates let you customize the notification messages sent to each platform.
798
+ You can set different messages for Discord vs Telegram vs Slack, and control which
799
+ events fire on which platform.
800
+
801
+ Config file: ~/.claude/omc_config.hook.json
802
+ ```
803
+
804
+ ### Step 2: Choose Event to Configure
805
+
806
+ Use AskUserQuestion:
807
+
808
+ **Question:** "Which event would you like to configure templates for?"
809
+
810
+ **Options:**
811
+ 1. **session-end** - When a Claude session finishes (most common)
812
+ 2. **ask-user-question** - When Claude is waiting for input
813
+ 3. **session-idle** - When Claude finishes and waits for input
814
+ 4. **session-start** - When a new session begins
815
+
816
+ ### Step 3: Show Available Variables
817
+
818
+ Display the template variables available for the chosen event:
819
+
820
+ ```
821
+ Available template variables:
822
+
823
+ RAW FIELDS:
824
+ {{sessionId}} - Session identifier
825
+ {{timestamp}} - ISO timestamp
826
+ {{tmuxSession}} - tmux session name
827
+ {{projectPath}} - Full project directory path
828
+ {{projectName}} - Project directory basename
829
+ {{reason}} - Stop/end reason
830
+ {{activeMode}} - Active OMC mode name
831
+ {{question}} - Question text (ask-user-question only)
832
+ {{agentName}} - Agent name (agent-call only)
833
+ {{agentType}} - Agent type (agent-call only)
834
+
835
+ COMPUTED (smart formatting):
836
+ {{duration}} - Human-readable duration (e.g., "5m 23s")
837
+ {{time}} - Locale time string
838
+ {{modesDisplay}} - Comma-separated modes or empty
839
+ {{iterationDisplay}} - "3/10" format or empty
840
+ {{agentDisplay}} - "2/5 completed" or empty
841
+ {{projectDisplay}} - Project name with fallbacks
842
+ {{footer}} - tmux + project info line
843
+ {{tmuxTailBlock}} - Recent output in code fence or empty
844
+ {{reasonDisplay}} - Reason with "unknown" fallback
845
+
846
+ CONDITIONALS:
847
+ {{#if variableName}}content shown when truthy{{/if}}
848
+ ```
849
+
850
+ ### Step 4: Collect Template
851
+
852
+ Use AskUserQuestion:
853
+
854
+ **Question:** "Enter the message template for this event (use {{variables}} for dynamic content)"
855
+
856
+ **Options:**
857
+ 1. **Use default template** - Keep the built-in message format
858
+ 2. **Simple summary** - Short one-line format
859
+ 3. **Custom** - Enter your own template
860
+
861
+ If "Simple summary", use a pre-built compact template:
862
+ - session-end: `{{projectDisplay}} session ended ({{duration}}) — {{reasonDisplay}}`
863
+ - ask-user-question: `Input needed on {{projectDisplay}}: {{question}}`
864
+ - session-idle: `{{projectDisplay}} is idle. {{#if reason}}Reason: {{reason}}{{/if}}`
865
+ - session-start: `Session started: {{projectDisplay}} at {{time}}`
866
+
867
+ ### Step 5: Per-Platform Overrides
868
+
869
+ Use AskUserQuestion:
870
+
871
+ **Question:** "Do you want different messages for specific platforms?"
872
+
873
+ **Options:**
874
+ 1. **No, same for all (Recommended)** - Use the same template everywhere
875
+ 2. **Yes, customize per platform** - Set different templates for Discord, Telegram, Slack
876
+
877
+ If per-platform: ask for each enabled platform's template separately.
878
+
879
+ ### Step 6: Write Configuration
880
+
881
+ Read or create `~/.claude/omc_config.hook.json` and merge the new settings:
882
+
883
+ ```json
884
+ {
885
+ "version": 1,
886
+ "enabled": true,
887
+ "events": {
888
+ "<event-name>": {
889
+ "enabled": true,
890
+ "template": "<user-provided-template>",
891
+ "platforms": {
892
+ "discord": { "template": "<discord-specific>" },
893
+ "telegram": { "template": "<telegram-specific>" }
894
+ }
895
+ }
896
+ }
897
+ }
898
+ ```
899
+
900
+ ### Step 7: Validate and Test
901
+
902
+ Validate the template using `validateTemplate()` to check for unknown variables. If any are found, warn the user and offer to correct.
903
+
904
+ Offer to send a test notification with the new template.
905
+
906
+ ### Example Config
907
+
908
+ ```json
909
+ {
910
+ "version": 1,
911
+ "enabled": true,
912
+ "events": {
913
+ "session-end": {
914
+ "enabled": true,
915
+ "template": "Session {{sessionId}} ended after {{duration}}. Reason: {{reasonDisplay}}",
916
+ "platforms": {
917
+ "discord": {
918
+ "template": "**Session Complete** | `{{projectDisplay}}` | {{duration}} | {{reasonDisplay}}"
919
+ },
920
+ "telegram": {
921
+ "template": "Done: {{projectDisplay}} ({{duration}})\n{{#if contextSummary}}Summary: {{contextSummary}}{{/if}}"
922
+ }
923
+ }
924
+ },
925
+ "ask-user-question": {
926
+ "enabled": true,
927
+ "template": "{{#if question}}{{question}}{{/if}}\nWaiting for input on {{projectDisplay}}"
928
+ }
929
+ }
930
+ }
931
+ ```
932
+
933
+ ---
934
+
935
+ ## Related
936
+
937
+ - `/oh-my-claudecode:configure-openclaw` — Configure OpenClaw gateway integration