oh-my-copilot 4.13.1 → 4.13.21

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 (507) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +3 -3
  4. package/bridge/cli.cjs +4709 -1961
  5. package/bridge/mcp-server.cjs +112 -11
  6. package/bridge/runtime-cli.cjs +4917 -2645
  7. package/bridge/team-bridge.cjs +6 -4
  8. package/bridge/team-mcp.cjs +19607 -0
  9. package/bridge/team.js +4895 -2215
  10. package/dist/__tests__/auto-slash-aliases.test.js +91 -0
  11. package/dist/__tests__/auto-slash-aliases.test.js.map +1 -1
  12. package/dist/__tests__/hooks/learner/bridge.test.js +25 -0
  13. package/dist/__tests__/hooks/learner/bridge.test.js.map +1 -1
  14. package/dist/__tests__/hooks/learner/parser.test.js +30 -0
  15. package/dist/__tests__/hooks/learner/parser.test.js.map +1 -1
  16. package/dist/__tests__/hud/extra-usage.test.js +42 -0
  17. package/dist/__tests__/hud/extra-usage.test.js.map +1 -1
  18. package/dist/__tests__/hud/labels.test.d.ts +2 -0
  19. package/dist/__tests__/hud/labels.test.d.ts.map +1 -0
  20. package/dist/__tests__/hud/labels.test.js +158 -0
  21. package/dist/__tests__/hud/labels.test.js.map +1 -0
  22. package/dist/__tests__/hud/render-enterprise.test.d.ts +5 -0
  23. package/dist/__tests__/hud/render-enterprise.test.d.ts.map +1 -0
  24. package/dist/__tests__/hud/render-enterprise.test.js +232 -0
  25. package/dist/__tests__/hud/render-enterprise.test.js.map +1 -0
  26. package/dist/__tests__/hud/render-rate-limits-priority.test.js +185 -0
  27. package/dist/__tests__/hud/render-rate-limits-priority.test.js.map +1 -1
  28. package/dist/__tests__/hud/stdin-session-scope.test.d.ts +2 -0
  29. package/dist/__tests__/hud/stdin-session-scope.test.d.ts.map +1 -0
  30. package/dist/__tests__/hud/stdin-session-scope.test.js +169 -0
  31. package/dist/__tests__/hud/stdin-session-scope.test.js.map +1 -0
  32. package/dist/__tests__/hud/usage-api.test.js +111 -1
  33. package/dist/__tests__/hud/usage-api.test.js.map +1 -1
  34. package/dist/__tests__/hud-marketplace-resolution.test.js +34 -0
  35. package/dist/__tests__/hud-marketplace-resolution.test.js.map +1 -1
  36. package/dist/__tests__/installer-hud-skip.test.js +6 -0
  37. package/dist/__tests__/installer-hud-skip.test.js.map +1 -1
  38. package/dist/__tests__/installer-omc-reference.test.js +1 -1
  39. package/dist/__tests__/installer-omc-reference.test.js.map +1 -1
  40. package/dist/__tests__/keyword-detector-echo-guard.test.d.ts +2 -0
  41. package/dist/__tests__/keyword-detector-echo-guard.test.d.ts.map +1 -0
  42. package/dist/__tests__/keyword-detector-echo-guard.test.js +218 -0
  43. package/dist/__tests__/keyword-detector-echo-guard.test.js.map +1 -0
  44. package/dist/__tests__/mnemosyne/detector.test.js +2 -0
  45. package/dist/__tests__/mnemosyne/detector.test.js.map +1 -1
  46. package/dist/__tests__/notepad.test.js +2 -2
  47. package/dist/__tests__/notepad.test.js.map +1 -1
  48. package/dist/__tests__/pre-tool-enforcer.test.js +84 -1
  49. package/dist/__tests__/pre-tool-enforcer.test.js.map +1 -1
  50. package/dist/__tests__/preemptive-compaction-hook.test.js +63 -0
  51. package/dist/__tests__/preemptive-compaction-hook.test.js.map +1 -1
  52. package/dist/__tests__/ralph-prd-mandatory.test.js +11 -1
  53. package/dist/__tests__/ralph-prd-mandatory.test.js.map +1 -1
  54. package/dist/__tests__/ralph-prd.test.js +40 -2
  55. package/dist/__tests__/ralph-prd.test.js.map +1 -1
  56. package/dist/__tests__/skills.test.js +363 -4
  57. package/dist/__tests__/skills.test.js.map +1 -1
  58. package/dist/__tests__/state-root-resolution.test.js +120 -6
  59. package/dist/__tests__/state-root-resolution.test.js.map +1 -1
  60. package/dist/autoresearch/__tests__/runtime.test.js +225 -28
  61. package/dist/autoresearch/__tests__/runtime.test.js.map +1 -1
  62. package/dist/autoresearch/runtime.d.ts.map +1 -1
  63. package/dist/autoresearch/runtime.js +9 -5
  64. package/dist/autoresearch/runtime.js.map +1 -1
  65. package/dist/cli/__tests__/team-status-worktree.test.d.ts +2 -0
  66. package/dist/cli/__tests__/team-status-worktree.test.d.ts.map +1 -0
  67. package/dist/cli/__tests__/team-status-worktree.test.js +96 -0
  68. package/dist/cli/__tests__/team-status-worktree.test.js.map +1 -0
  69. package/dist/cli/__tests__/team.test.js +164 -0
  70. package/dist/cli/__tests__/team.test.js.map +1 -1
  71. package/dist/cli/autoresearch.d.ts +1 -1
  72. package/dist/cli/autoresearch.d.ts.map +1 -1
  73. package/dist/cli/autoresearch.js +4 -4
  74. package/dist/cli/commands/team.d.ts +1 -0
  75. package/dist/cli/commands/team.d.ts.map +1 -1
  76. package/dist/cli/commands/team.js +15 -3
  77. package/dist/cli/commands/team.js.map +1 -1
  78. package/dist/cli/index.js +3 -0
  79. package/dist/cli/index.js.map +1 -1
  80. package/dist/cli/team.d.ts +6 -0
  81. package/dist/cli/team.d.ts.map +1 -1
  82. package/dist/cli/team.js +126 -5
  83. package/dist/cli/team.js.map +1 -1
  84. package/dist/cli/utils/formatting.d.ts +0 -10
  85. package/dist/cli/utils/formatting.d.ts.map +1 -1
  86. package/dist/cli/utils/formatting.js +0 -52
  87. package/dist/cli/utils/formatting.js.map +1 -1
  88. package/dist/config/__tests__/loader.test.js.map +1 -1
  89. package/dist/features/boulder-state/constants.d.ts +1 -1
  90. package/dist/features/boulder-state/constants.d.ts.map +1 -1
  91. package/dist/features/builtin-skills/skills.d.ts.map +1 -1
  92. package/dist/features/builtin-skills/skills.js +11 -3
  93. package/dist/features/builtin-skills/skills.js.map +1 -1
  94. package/dist/features/builtin-skills/types.d.ts +7 -0
  95. package/dist/features/builtin-skills/types.d.ts.map +1 -1
  96. package/dist/features/delegation-enforcer.d.ts +2 -0
  97. package/dist/features/delegation-enforcer.d.ts.map +1 -1
  98. package/dist/features/delegation-enforcer.js +10 -0
  99. package/dist/features/delegation-enforcer.js.map +1 -1
  100. package/dist/features/magic-keywords.d.ts.map +1 -1
  101. package/dist/features/magic-keywords.js +30 -1
  102. package/dist/features/magic-keywords.js.map +1 -1
  103. package/dist/features/rate-limit-wait/tmux-detector.d.ts +4 -4
  104. package/dist/features/rate-limit-wait/tmux-detector.js +9 -9
  105. package/dist/features/rate-limit-wait/tmux-detector.js.map +1 -1
  106. package/dist/hooks/__tests__/bridge-routing.test.js +156 -0
  107. package/dist/hooks/__tests__/bridge-routing.test.js.map +1 -1
  108. package/dist/hooks/auto-slash-command/constants.d.ts.map +1 -1
  109. package/dist/hooks/auto-slash-command/constants.js +1 -0
  110. package/dist/hooks/auto-slash-command/constants.js.map +1 -1
  111. package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -1
  112. package/dist/hooks/auto-slash-command/executor.js +29 -0
  113. package/dist/hooks/auto-slash-command/executor.js.map +1 -1
  114. package/dist/hooks/bridge.d.ts.map +1 -1
  115. package/dist/hooks/bridge.js +184 -1
  116. package/dist/hooks/bridge.js.map +1 -1
  117. package/dist/hooks/learner/bridge.d.ts.map +1 -1
  118. package/dist/hooks/learner/bridge.js +4 -109
  119. package/dist/hooks/learner/bridge.js.map +1 -1
  120. package/dist/hooks/learner/detector.js +1 -1
  121. package/dist/hooks/learner/parser.d.ts +9 -0
  122. package/dist/hooks/learner/parser.d.ts.map +1 -1
  123. package/dist/hooks/learner/parser.js +18 -5
  124. package/dist/hooks/learner/parser.js.map +1 -1
  125. package/dist/hooks/learner/types.d.ts +6 -0
  126. package/dist/hooks/learner/types.d.ts.map +1 -1
  127. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js +16 -0
  128. package/dist/hooks/mode-registry/__tests__/session-isolation.test.js.map +1 -1
  129. package/dist/hooks/notepad/index.d.ts +4 -1
  130. package/dist/hooks/notepad/index.d.ts.map +1 -1
  131. package/dist/hooks/notepad/index.js +7 -4
  132. package/dist/hooks/notepad/index.js.map +1 -1
  133. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js +70 -3
  134. package/dist/hooks/persistent-mode/__tests__/ralph-verification-flow.test.js.map +1 -1
  135. package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
  136. package/dist/hooks/persistent-mode/index.js +17 -13
  137. package/dist/hooks/persistent-mode/index.js.map +1 -1
  138. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js +175 -3
  139. package/dist/hooks/persistent-mode/stop-hook-blocking.test.js.map +1 -1
  140. package/dist/hooks/project-memory/__tests__/integration.test.js +117 -3
  141. package/dist/hooks/project-memory/__tests__/integration.test.js.map +1 -1
  142. package/dist/hooks/project-memory/__tests__/storage.test.js +11 -11
  143. package/dist/hooks/project-memory/__tests__/storage.test.js.map +1 -1
  144. package/dist/hooks/project-memory/index.d.ts.map +1 -1
  145. package/dist/hooks/project-memory/index.js +24 -12
  146. package/dist/hooks/project-memory/index.js.map +1 -1
  147. package/dist/hooks/ralph/index.d.ts +1 -1
  148. package/dist/hooks/ralph/index.d.ts.map +1 -1
  149. package/dist/hooks/ralph/index.js +1 -1
  150. package/dist/hooks/ralph/index.js.map +1 -1
  151. package/dist/hooks/ralph/loop.d.ts +6 -6
  152. package/dist/hooks/ralph/loop.d.ts.map +1 -1
  153. package/dist/hooks/ralph/loop.js +18 -18
  154. package/dist/hooks/ralph/loop.js.map +1 -1
  155. package/dist/hooks/ralph/prd.d.ts +23 -12
  156. package/dist/hooks/ralph/prd.d.ts.map +1 -1
  157. package/dist/hooks/ralph/prd.js +88 -42
  158. package/dist/hooks/ralph/prd.js.map +1 -1
  159. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js +20 -0
  160. package/dist/hooks/session-end/__tests__/mode-state-cleanup.test.js.map +1 -1
  161. package/dist/hooks/session-end/index.d.ts +9 -0
  162. package/dist/hooks/session-end/index.d.ts.map +1 -1
  163. package/dist/hooks/session-end/index.js +110 -0
  164. package/dist/hooks/session-end/index.js.map +1 -1
  165. package/dist/hooks/skill-bridge.cjs +114 -92
  166. package/dist/hooks/skill-state/index.d.ts.map +1 -1
  167. package/dist/hooks/skill-state/index.js +1 -0
  168. package/dist/hooks/skill-state/index.js.map +1 -1
  169. package/dist/hud/__tests__/enterprise-cost.test.d.ts +5 -0
  170. package/dist/hud/__tests__/enterprise-cost.test.d.ts.map +1 -0
  171. package/dist/hud/__tests__/enterprise-cost.test.js +151 -0
  172. package/dist/hud/__tests__/enterprise-cost.test.js.map +1 -0
  173. package/dist/hud/__tests__/git-status.test.js +18 -0
  174. package/dist/hud/__tests__/git-status.test.js.map +1 -1
  175. package/dist/hud/__tests__/usage-api-enterprise.test.d.ts +5 -0
  176. package/dist/hud/__tests__/usage-api-enterprise.test.d.ts.map +1 -0
  177. package/dist/hud/__tests__/usage-api-enterprise.test.js +249 -0
  178. package/dist/hud/__tests__/usage-api-enterprise.test.js.map +1 -0
  179. package/dist/hud/elements/background.d.ts +3 -3
  180. package/dist/hud/elements/background.d.ts.map +1 -1
  181. package/dist/hud/elements/background.js +5 -4
  182. package/dist/hud/elements/background.js.map +1 -1
  183. package/dist/hud/elements/call-counts.d.ts +2 -2
  184. package/dist/hud/elements/call-counts.d.ts.map +1 -1
  185. package/dist/hud/elements/call-counts.js +7 -6
  186. package/dist/hud/elements/call-counts.js.map +1 -1
  187. package/dist/hud/elements/context.d.ts +3 -3
  188. package/dist/hud/elements/context.d.ts.map +1 -1
  189. package/dist/hud/elements/context.js +5 -4
  190. package/dist/hud/elements/context.js.map +1 -1
  191. package/dist/hud/elements/enterprise-cost.d.ts +16 -0
  192. package/dist/hud/elements/enterprise-cost.d.ts.map +1 -0
  193. package/dist/hud/elements/enterprise-cost.js +63 -0
  194. package/dist/hud/elements/enterprise-cost.js.map +1 -0
  195. package/dist/hud/elements/git.d.ts +2 -1
  196. package/dist/hud/elements/git.d.ts.map +1 -1
  197. package/dist/hud/elements/git.js +7 -6
  198. package/dist/hud/elements/git.js.map +1 -1
  199. package/dist/hud/elements/permission.d.ts.map +1 -1
  200. package/dist/hud/elements/permission.js +2 -5
  201. package/dist/hud/elements/permission.js.map +1 -1
  202. package/dist/hud/elements/ralph.d.ts +2 -2
  203. package/dist/hud/elements/ralph.d.ts.map +1 -1
  204. package/dist/hud/elements/ralph.js +3 -2
  205. package/dist/hud/elements/ralph.js.map +1 -1
  206. package/dist/hud/elements/session.d.ts.map +1 -1
  207. package/dist/hud/elements/session.js +5 -9
  208. package/dist/hud/elements/session.js.map +1 -1
  209. package/dist/hud/elements/thinking.d.ts +2 -2
  210. package/dist/hud/elements/thinking.d.ts.map +1 -1
  211. package/dist/hud/elements/thinking.js +3 -2
  212. package/dist/hud/elements/thinking.js.map +1 -1
  213. package/dist/hud/elements/token-usage.d.ts +2 -2
  214. package/dist/hud/elements/token-usage.d.ts.map +1 -1
  215. package/dist/hud/elements/token-usage.js +3 -2
  216. package/dist/hud/elements/token-usage.js.map +1 -1
  217. package/dist/hud/index.d.ts.map +1 -1
  218. package/dist/hud/index.js +5 -1
  219. package/dist/hud/index.js.map +1 -1
  220. package/dist/hud/render.d.ts.map +1 -1
  221. package/dist/hud/render.js +43 -10
  222. package/dist/hud/render.js.map +1 -1
  223. package/dist/hud/state.d.ts.map +1 -1
  224. package/dist/hud/state.js +18 -1
  225. package/dist/hud/state.js.map +1 -1
  226. package/dist/hud/stdin.d.ts.map +1 -1
  227. package/dist/hud/stdin.js +49 -5
  228. package/dist/hud/stdin.js.map +1 -1
  229. package/dist/hud/types.d.ts +42 -0
  230. package/dist/hud/types.d.ts.map +1 -1
  231. package/dist/hud/types.js +59 -1
  232. package/dist/hud/types.js.map +1 -1
  233. package/dist/hud/usage-api.d.ts +19 -1
  234. package/dist/hud/usage-api.d.ts.map +1 -1
  235. package/dist/hud/usage-api.js +101 -18
  236. package/dist/hud/usage-api.js.map +1 -1
  237. package/dist/installer/__tests__/hud-cache-wrapper.test.d.ts +2 -0
  238. package/dist/installer/__tests__/hud-cache-wrapper.test.d.ts.map +1 -0
  239. package/dist/installer/__tests__/hud-cache-wrapper.test.js +235 -0
  240. package/dist/installer/__tests__/hud-cache-wrapper.test.js.map +1 -0
  241. package/dist/installer/__tests__/standalone-hook-reconcile.test.js +2 -0
  242. package/dist/installer/__tests__/standalone-hook-reconcile.test.js.map +1 -1
  243. package/dist/installer/index.d.ts +1 -0
  244. package/dist/installer/index.d.ts.map +1 -1
  245. package/dist/installer/index.js +83 -31
  246. package/dist/installer/index.js.map +1 -1
  247. package/dist/lib/__tests__/worktree-paths.test.js +162 -39
  248. package/dist/lib/__tests__/worktree-paths.test.js.map +1 -1
  249. package/dist/lib/worktree-paths.d.ts +87 -9
  250. package/dist/lib/worktree-paths.d.ts.map +1 -1
  251. package/dist/lib/worktree-paths.js +209 -27
  252. package/dist/lib/worktree-paths.js.map +1 -1
  253. package/dist/mcp/__tests__/team-server-artifact-convergence.test.js +156 -4
  254. package/dist/mcp/__tests__/team-server-artifact-convergence.test.js.map +1 -1
  255. package/dist/mcp/omc-tools-server.d.ts +11 -17
  256. package/dist/mcp/omc-tools-server.d.ts.map +1 -1
  257. package/dist/mcp/omc-tools-server.js +22 -32
  258. package/dist/mcp/omc-tools-server.js.map +1 -1
  259. package/dist/mcp/team-job-convergence.d.ts +9 -2
  260. package/dist/mcp/team-job-convergence.d.ts.map +1 -1
  261. package/dist/mcp/team-job-convergence.js +35 -14
  262. package/dist/mcp/team-job-convergence.js.map +1 -1
  263. package/dist/mcp/team-server.d.ts.map +1 -1
  264. package/dist/mcp/team-server.js +93 -13
  265. package/dist/mcp/team-server.js.map +1 -1
  266. package/dist/ralphthon/prd.d.ts.map +1 -1
  267. package/dist/ralphthon/prd.js +13 -17
  268. package/dist/ralphthon/prd.js.map +1 -1
  269. package/dist/shared/types.d.ts +2 -0
  270. package/dist/shared/types.d.ts.map +1 -1
  271. package/dist/team/__tests__/api-interop.cleanup.test.d.ts +2 -0
  272. package/dist/team/__tests__/api-interop.cleanup.test.d.ts.map +1 -0
  273. package/dist/team/__tests__/api-interop.cleanup.test.js +234 -0
  274. package/dist/team/__tests__/api-interop.cleanup.test.js.map +1 -0
  275. package/dist/team/__tests__/api-interop.dispatch.test.js +2 -1
  276. package/dist/team/__tests__/api-interop.dispatch.test.js.map +1 -1
  277. package/dist/team/__tests__/auto-merge-restart.test.d.ts +2 -0
  278. package/dist/team/__tests__/auto-merge-restart.test.d.ts.map +1 -0
  279. package/dist/team/__tests__/auto-merge-restart.test.js +128 -0
  280. package/dist/team/__tests__/auto-merge-restart.test.js.map +1 -0
  281. package/dist/team/__tests__/auto-merge.perf.test.d.ts +2 -0
  282. package/dist/team/__tests__/auto-merge.perf.test.d.ts.map +1 -0
  283. package/dist/team/__tests__/auto-merge.perf.test.js +85 -0
  284. package/dist/team/__tests__/auto-merge.perf.test.js.map +1 -0
  285. package/dist/team/__tests__/conflict-mailbox.test.d.ts +2 -0
  286. package/dist/team/__tests__/conflict-mailbox.test.d.ts.map +1 -0
  287. package/dist/team/__tests__/conflict-mailbox.test.js +238 -0
  288. package/dist/team/__tests__/conflict-mailbox.test.js.map +1 -0
  289. package/dist/team/__tests__/git-worktree.test.js +164 -3
  290. package/dist/team/__tests__/git-worktree.test.js.map +1 -1
  291. package/dist/team/__tests__/helpers/git-fixture.d.ts +72 -0
  292. package/dist/team/__tests__/helpers/git-fixture.d.ts.map +1 -0
  293. package/dist/team/__tests__/helpers/git-fixture.js +252 -0
  294. package/dist/team/__tests__/helpers/git-fixture.js.map +1 -0
  295. package/dist/team/__tests__/leader-inbox.test.d.ts +2 -0
  296. package/dist/team/__tests__/leader-inbox.test.d.ts.map +1 -0
  297. package/dist/team/__tests__/leader-inbox.test.js +152 -0
  298. package/dist/team/__tests__/leader-inbox.test.js.map +1 -0
  299. package/dist/team/__tests__/merge-orchestrator.test.d.ts +2 -0
  300. package/dist/team/__tests__/merge-orchestrator.test.d.ts.map +1 -0
  301. package/dist/team/__tests__/merge-orchestrator.test.js +779 -0
  302. package/dist/team/__tests__/merge-orchestrator.test.js.map +1 -0
  303. package/dist/team/__tests__/model-contract.test.js +35 -21
  304. package/dist/team/__tests__/model-contract.test.js.map +1 -1
  305. package/dist/team/__tests__/rebase-smoke.test.d.ts +2 -0
  306. package/dist/team/__tests__/rebase-smoke.test.d.ts.map +1 -0
  307. package/dist/team/__tests__/rebase-smoke.test.js +272 -0
  308. package/dist/team/__tests__/rebase-smoke.test.js.map +1 -0
  309. package/dist/team/__tests__/runtime-cli.test.js +11 -3
  310. package/dist/team/__tests__/runtime-cli.test.js.map +1 -1
  311. package/dist/team/__tests__/runtime-prompt-mode.test.js +14 -16
  312. package/dist/team/__tests__/runtime-prompt-mode.test.js.map +1 -1
  313. package/dist/team/__tests__/runtime-v2-role-routing.test.js +7 -1
  314. package/dist/team/__tests__/runtime-v2-role-routing.test.js.map +1 -1
  315. package/dist/team/__tests__/runtime-v2.dispatch.test.js +293 -15
  316. package/dist/team/__tests__/runtime-v2.dispatch.test.js.map +1 -1
  317. package/dist/team/__tests__/runtime-v2.monitor.test.d.ts +2 -0
  318. package/dist/team/__tests__/runtime-v2.monitor.test.d.ts.map +1 -0
  319. package/dist/team/__tests__/runtime-v2.monitor.test.js +219 -0
  320. package/dist/team/__tests__/runtime-v2.monitor.test.js.map +1 -0
  321. package/dist/team/__tests__/runtime-v2.shutdown.test.d.ts +2 -0
  322. package/dist/team/__tests__/runtime-v2.shutdown.test.d.ts.map +1 -0
  323. package/dist/team/__tests__/runtime-v2.shutdown.test.js +292 -0
  324. package/dist/team/__tests__/runtime-v2.shutdown.test.js.map +1 -0
  325. package/dist/team/__tests__/scaling-launch-config.test.js +203 -3
  326. package/dist/team/__tests__/scaling-launch-config.test.js.map +1 -1
  327. package/dist/team/__tests__/team-summary-worktree.test.d.ts +2 -0
  328. package/dist/team/__tests__/team-summary-worktree.test.d.ts.map +1 -0
  329. package/dist/team/__tests__/team-summary-worktree.test.js +85 -0
  330. package/dist/team/__tests__/team-summary-worktree.test.js.map +1 -0
  331. package/dist/team/__tests__/teardown-invariant.test.d.ts +2 -0
  332. package/dist/team/__tests__/teardown-invariant.test.d.ts.map +1 -0
  333. package/dist/team/__tests__/teardown-invariant.test.js +176 -0
  334. package/dist/team/__tests__/teardown-invariant.test.js.map +1 -0
  335. package/dist/team/__tests__/tmux-session-liveness.test.d.ts +2 -0
  336. package/dist/team/__tests__/tmux-session-liveness.test.d.ts.map +1 -0
  337. package/dist/team/__tests__/tmux-session-liveness.test.js +37 -0
  338. package/dist/team/__tests__/tmux-session-liveness.test.js.map +1 -0
  339. package/dist/team/__tests__/worker-bootstrap.test.js +47 -1
  340. package/dist/team/__tests__/worker-bootstrap.test.js.map +1 -1
  341. package/dist/team/__tests__/worker-commit-cadence.test.d.ts +2 -0
  342. package/dist/team/__tests__/worker-commit-cadence.test.d.ts.map +1 -0
  343. package/dist/team/__tests__/worker-commit-cadence.test.js +315 -0
  344. package/dist/team/__tests__/worker-commit-cadence.test.js.map +1 -0
  345. package/dist/team/__tests__/worktree-contract-fields.test.d.ts +2 -0
  346. package/dist/team/__tests__/worktree-contract-fields.test.d.ts.map +1 -0
  347. package/dist/team/__tests__/worktree-contract-fields.test.js +157 -0
  348. package/dist/team/__tests__/worktree-contract-fields.test.js.map +1 -0
  349. package/dist/team/__tests__/worktree-runtime-e2e.test.d.ts +2 -0
  350. package/dist/team/__tests__/worktree-runtime-e2e.test.d.ts.map +1 -0
  351. package/dist/team/__tests__/worktree-runtime-e2e.test.js +182 -0
  352. package/dist/team/__tests__/worktree-runtime-e2e.test.js.map +1 -0
  353. package/dist/team/api-interop.d.ts +2 -1
  354. package/dist/team/api-interop.d.ts.map +1 -1
  355. package/dist/team/api-interop.js +121 -14
  356. package/dist/team/api-interop.js.map +1 -1
  357. package/dist/team/capabilities.d.ts.map +1 -1
  358. package/dist/team/capabilities.js +2 -0
  359. package/dist/team/capabilities.js.map +1 -1
  360. package/dist/team/cli-worker-contract.d.ts +7 -6
  361. package/dist/team/cli-worker-contract.d.ts.map +1 -1
  362. package/dist/team/cli-worker-contract.js +7 -6
  363. package/dist/team/cli-worker-contract.js.map +1 -1
  364. package/dist/team/conflict-mailbox.d.ts +49 -0
  365. package/dist/team/conflict-mailbox.d.ts.map +1 -0
  366. package/dist/team/conflict-mailbox.js +98 -0
  367. package/dist/team/conflict-mailbox.js.map +1 -0
  368. package/dist/team/events.d.ts +3 -0
  369. package/dist/team/events.d.ts.map +1 -1
  370. package/dist/team/events.js +2 -1
  371. package/dist/team/events.js.map +1 -1
  372. package/dist/team/git-worktree.d.ts +78 -10
  373. package/dist/team/git-worktree.d.ts.map +1 -1
  374. package/dist/team/git-worktree.js +453 -97
  375. package/dist/team/git-worktree.js.map +1 -1
  376. package/dist/team/governance.d.ts +3 -2
  377. package/dist/team/governance.d.ts.map +1 -1
  378. package/dist/team/governance.js.map +1 -1
  379. package/dist/team/leader-inbox.d.ts +28 -0
  380. package/dist/team/leader-inbox.d.ts.map +1 -0
  381. package/dist/team/leader-inbox.js +68 -0
  382. package/dist/team/leader-inbox.js.map +1 -0
  383. package/dist/team/merge-coordinator.d.ts +6 -0
  384. package/dist/team/merge-coordinator.d.ts.map +1 -1
  385. package/dist/team/merge-coordinator.js +6 -2
  386. package/dist/team/merge-coordinator.js.map +1 -1
  387. package/dist/team/merge-orchestrator.d.ts +41 -0
  388. package/dist/team/merge-orchestrator.d.ts.map +1 -0
  389. package/dist/team/merge-orchestrator.js +736 -0
  390. package/dist/team/merge-orchestrator.js.map +1 -0
  391. package/dist/team/model-contract.d.ts +18 -2
  392. package/dist/team/model-contract.d.ts.map +1 -1
  393. package/dist/team/model-contract.js +55 -28
  394. package/dist/team/model-contract.js.map +1 -1
  395. package/dist/team/monitor.d.ts.map +1 -1
  396. package/dist/team/monitor.js +47 -3
  397. package/dist/team/monitor.js.map +1 -1
  398. package/dist/team/runtime-cli.d.ts +1 -0
  399. package/dist/team/runtime-cli.d.ts.map +1 -1
  400. package/dist/team/runtime-cli.js +15 -2
  401. package/dist/team/runtime-cli.js.map +1 -1
  402. package/dist/team/runtime-flags.d.ts +5 -0
  403. package/dist/team/runtime-flags.d.ts.map +1 -0
  404. package/dist/team/runtime-flags.js +12 -0
  405. package/dist/team/runtime-flags.js.map +1 -0
  406. package/dist/team/runtime-v2.d.ts +16 -1
  407. package/dist/team/runtime-v2.d.ts.map +1 -1
  408. package/dist/team/runtime-v2.js +531 -127
  409. package/dist/team/runtime-v2.js.map +1 -1
  410. package/dist/team/runtime.d.ts.map +1 -1
  411. package/dist/team/runtime.js +4 -1
  412. package/dist/team/runtime.js.map +1 -1
  413. package/dist/team/scaling.d.ts.map +1 -1
  414. package/dist/team/scaling.js +110 -13
  415. package/dist/team/scaling.js.map +1 -1
  416. package/dist/team/state/tasks.d.ts.map +1 -1
  417. package/dist/team/state/tasks.js +1 -0
  418. package/dist/team/state/tasks.js.map +1 -1
  419. package/dist/team/team-ops.d.ts.map +1 -1
  420. package/dist/team/team-ops.js +112 -16
  421. package/dist/team/team-ops.js.map +1 -1
  422. package/dist/team/tmux-session.d.ts +17 -29
  423. package/dist/team/tmux-session.d.ts.map +1 -1
  424. package/dist/team/tmux-session.js +117 -108
  425. package/dist/team/tmux-session.js.map +1 -1
  426. package/dist/team/types.d.ts +31 -17
  427. package/dist/team/types.d.ts.map +1 -1
  428. package/dist/team/types.js.map +1 -1
  429. package/dist/team/worker-bootstrap.d.ts +11 -0
  430. package/dist/team/worker-bootstrap.d.ts.map +1 -1
  431. package/dist/team/worker-bootstrap.js +37 -14
  432. package/dist/team/worker-bootstrap.js.map +1 -1
  433. package/dist/team/worker-canonicalization.d.ts.map +1 -1
  434. package/dist/team/worker-canonicalization.js +2 -0
  435. package/dist/team/worker-canonicalization.js.map +1 -1
  436. package/dist/team/worker-commit-cadence.d.ts +70 -0
  437. package/dist/team/worker-commit-cadence.d.ts.map +1 -0
  438. package/dist/team/worker-commit-cadence.js +271 -0
  439. package/dist/team/worker-commit-cadence.js.map +1 -0
  440. package/dist/tools/__tests__/memory-tools.test.js +4 -4
  441. package/dist/tools/__tests__/memory-tools.test.js.map +1 -1
  442. package/dist/tools/__tests__/state-tools.test.js +13 -1
  443. package/dist/tools/__tests__/state-tools.test.js.map +1 -1
  444. package/dist/utils/frontmatter.d.ts.map +1 -1
  445. package/dist/utils/frontmatter.js +1 -16
  446. package/dist/utils/frontmatter.js.map +1 -1
  447. package/dist/utils/resolve-node.d.ts.map +1 -1
  448. package/dist/utils/resolve-node.js +22 -28
  449. package/dist/utils/resolve-node.js.map +1 -1
  450. package/docs/GETTING-STARTED.md +415 -0
  451. package/docs/MIGRATION.md +1003 -0
  452. package/docs/REFERENCE.md +21 -4
  453. package/docs/TEAM-WORKTREE-MODE.md +86 -0
  454. package/docs/company-context-interface.md +5 -16
  455. package/docs/copilot-instructions.md +1 -1
  456. package/package.json +1 -1
  457. package/scripts/keyword-detector.mjs +168 -20
  458. package/scripts/lib/hud-cache-wrapper.sh +122 -0
  459. package/scripts/persistent-mode.cjs +28 -2
  460. package/scripts/persistent-mode.mjs +28 -2
  461. package/scripts/plugin-setup.mjs +10 -1
  462. package/scripts/post-tool-verifier.mjs +153 -3
  463. package/scripts/pre-tool-enforcer.mjs +54 -6
  464. package/scripts/session-start.mjs +194 -2
  465. package/skills/AGENTS.md +22 -91
  466. package/skills/ai-slop-cleaner/SKILL.md +118 -120
  467. package/skills/ask/SKILL.md +6 -8
  468. package/skills/autopilot/SKILL.md +1 -28
  469. package/skills/autoresearch/SKILL.md +5 -5
  470. package/skills/cancel/SKILL.md +13 -13
  471. package/skills/cccg/SKILL.md +1 -0
  472. package/skills/configure-notifications/SKILL.md +80 -215
  473. package/skills/debug/SKILL.md +3 -2
  474. package/skills/deep-dive/SKILL.md +20 -9
  475. package/skills/deep-interview/SKILL.md +32 -4
  476. package/skills/deepinit/SKILL.md +1 -0
  477. package/skills/external-context/SKILL.md +2 -1
  478. package/skills/hud/SKILL.md +22 -52
  479. package/skills/learner/SKILL.md +90 -57
  480. package/skills/mcp-setup/SKILL.md +45 -60
  481. package/skills/omc-doctor/SKILL.md +1 -1
  482. package/skills/omc-reference/SKILL.md +6 -6
  483. package/skills/omc-setup/SKILL.md +30 -74
  484. package/skills/omc-setup/phases/01-install-claude-md.md +97 -0
  485. package/skills/omc-setup/phases/02-configure.md +25 -40
  486. package/skills/omc-setup/phases/03-integrations.md +100 -69
  487. package/skills/omc-setup/phases/04-welcome.md +102 -44
  488. package/skills/omc-teams/SKILL.md +63 -26
  489. package/skills/plan/SKILL.md +11 -9
  490. package/skills/ralph/SKILL.md +42 -41
  491. package/skills/ralplan/SKILL.md +3 -10
  492. package/skills/release/SKILL.md +168 -57
  493. package/skills/remember/SKILL.md +2 -1
  494. package/skills/sciomc/SKILL.md +12 -11
  495. package/skills/self-improve/SKILL.md +4 -4
  496. package/skills/setup/SKILL.md +1 -0
  497. package/skills/skill/SKILL.md +21 -20
  498. package/skills/skillify/SKILL.md +34 -3
  499. package/skills/team/SKILL.md +62 -44
  500. package/skills/ultraqa/SKILL.md +1 -2
  501. package/skills/ultrawork/SKILL.md +28 -21
  502. package/skills/verify/SKILL.md +2 -1
  503. package/skills/writer-memory/SKILL.md +2 -1
  504. package/templates/hooks/keyword-detector.mjs +129 -11
  505. package/templates/hooks/persistent-mode.mjs +28 -2
  506. package/templates/hooks/pre-tool-use.mjs +144 -45
  507. package/templates/hooks/session-start.mjs +25 -1
@@ -39,7 +39,7 @@ Or say: "cancelomc", "stopomc"
39
39
  ## Critical: Deferred Tool Handling
40
40
 
41
41
  The state management tools (`state_clear`, `state_read`, `state_write`, `state_list_active`,
42
- `state_get_status`) may be registered as **deferred tools** by Copilot CLI. Before calling
42
+ `state_get_status`) may be registered as **deferred tools** by Claude Code. Before calling
43
43
  any state tool, you MUST first load all of them via `ToolSearch`:
44
44
 
45
45
  ```
@@ -115,10 +115,10 @@ Active modes are still cancelled in dependency order:
115
115
  5. Swarm (standalone)
116
116
  6. Ultrapilot (standalone)
117
117
  7. Pipeline (standalone)
118
- 8. Team (Copilot CLI native)
118
+ 8. Team (Claude Code native)
119
119
  9. OMC Teams (tmux CLI workers)
120
120
  10. Plan Consensus (standalone)
121
- 11. Self-Improve (standalone — clear state, clean orphaned worktrees, preserve iteration_state for resume, set status: "user_stopped" in the resolved `<self-improve-root>/state/agent-settings.json`; new runs use `.omc/self-improve/topics/<topic-slug>/`, with flat `.omc/self-improve/` retained only for legacy single-track resumes)
121
+ 11. Self-Improve (standalone — clear state, clean orphaned worktrees, preserve iteration_state for resume, set status: "user_stopped" in the resolved `<self-improve-root>/state/agent-settings.json`; new runs use `.omcp/self-improve/topics/<topic-slug>/`, with flat `.omcp/self-improve/` retained only for legacy single-track resumes)
122
122
 
123
123
  ## Force Clear All
124
124
 
@@ -136,7 +136,7 @@ Steps under the hood:
136
136
  1. `state_list_active` enumerates `.omcp/state/sessions/{sessionId}/…` to find every known session.
137
137
  2. `state_clear` runs once per session to drop that session’s files.
138
138
  3. A global `state_clear` without `session_id` removes legacy files under `.omcp/state/*.json`, `.omcp/state/swarm*.db`, and compatibility artifacts (see list).
139
- 4. Team artifacts (`~/.copilot/teams/*/`, `~/.copilot/tasks/*/`, `.omcp/state/team-state.json`) are best-effort cleared as part of the legacy fallback.
139
+ 4. Team artifacts (`~/.claude/teams/*/`, `~/.claude/tasks/*/`, `.omcp/state/team-state.json`) are best-effort cleared as part of the legacy fallback.
140
140
  - Cancel for native team does NOT affect omc-teams state, and vice versa.
141
141
 
142
142
  Every `state_clear` command honors the `session_id` argument, so even force mode still uses the session-aware paths first before deleting legacy files.
@@ -196,7 +196,7 @@ Use force mode to clear every session plus legacy artifacts via `state_clear`. D
196
196
 
197
197
  ### 3B. Smart Cancellation (default)
198
198
 
199
- #### If Team Active (Copilot CLI native)
199
+ #### If Team Active (Claude Code native)
200
200
 
201
201
  Teams are detected by checking for config files in `${COPILOT_CONFIG_DIR:-~/.copilot}/teams/`:
202
202
 
@@ -233,7 +233,7 @@ After graceful pass:
233
233
 
234
234
  **TeamDelete + Cleanup:**
235
235
  ```
236
- 1. Call TeamDelete() — removes ~/.copilot/teams/{name}/ and ~/.copilot/tasks/{name}/
236
+ 1. Call TeamDelete() — removes ~/.claude/teams/{name}/ and ~/.claude/tasks/{name}/
237
237
  2. Clear team state: state_clear(mode="team")
238
238
  3. Check for linked ralph: state_read(mode="ralph") — if linked_team is true:
239
239
  a. Clear ralph state: state_clear(mode="ralph")
@@ -246,7 +246,7 @@ After graceful pass:
246
246
 
247
247
  After TeamDelete, verify no agent processes remain:
248
248
  ```bash
249
- node "${PLUGIN_ROOT}/scripts/cleanup-orphans.mjs" --team-name "{team_name}"
249
+ node "${CLAUDE_PLUGIN_ROOT}/scripts/cleanup-orphans.mjs" --team-name "{team_name}"
250
250
  ```
251
251
 
252
252
  The orphan scanner:
@@ -264,7 +264,7 @@ Team "{team_name}" cancelled:
264
264
  - Unresponsive: K (list names if any)
265
265
  - TeamDelete: success/failed
266
266
  - Manual cleanup needed: yes/no
267
- Path: ~/.copilot/teams/{name}/ and ~/.copilot/tasks/{name}/
267
+ Path: ~/.claude/teams/{name}/ and ~/.claude/tasks/{name}/
268
268
  ```
269
269
 
270
270
  **Implementation note:** The cancel skill is executed by the LLM, not as a bash script. When you detect an active team:
@@ -318,7 +318,7 @@ The cancel skill runs as follows:
318
318
  2. Use `state_list_active` to enumerate known session ids and `state_get_status` to learn the active mode (`autopilot`, `ralph`, `ultrawork`, etc.) for each session.
319
319
  3. When operating in default mode, call `state_clear` with that session_id to remove only the session’s files, then run mode-specific cleanup (autopilot → ralph → …) based on the state tool signals.
320
320
  4. In force mode, iterate every active session, call `state_clear` per session, then run a global `state_clear` without `session_id` to drop legacy files (`.omcp/state/*.json`, compatibility artifacts) and report success. Swarm remains a shared SQLite/marker mode outside session scoping.
321
- 5. Team artifacts (`~/.copilot/teams/*/`, `~/.copilot/tasks/*/`, `.omcp/state/team-state.json`) remain best-effort cleanup items invoked during the legacy/global pass.
321
+ 5. Team artifacts (`~/.claude/teams/*/`, `~/.claude/tasks/*/`, `.omcp/state/team-state.json`) remain best-effort cleanup items invoked during the legacy/global pass.
322
322
  6. **Always** clear skill-active state as the final step, regardless of which mode was active or whether `--force` was used:
323
323
  ```
324
324
  state_clear(mode="skill-active", session_id)
@@ -364,7 +364,7 @@ Mode-specific subsections below describe what extra cleanup each handler perform
364
364
  - **Safe**: Only clears linked Ultrawork, preserves standalone Ultrawork
365
365
  - **Local-only**: Clears state files in `.omcp/state/` directory
366
366
  - **Resume-friendly**: Autopilot state is preserved for seamless resume
367
- - **Team-aware**: Detects native Copilot CLI teams and performs graceful shutdown
367
+ - **Team-aware**: Detects native Claude Code teams and performs graceful shutdown
368
368
 
369
369
  ## MCP Worker Cleanup
370
370
 
@@ -372,7 +372,7 @@ When cancelling modes that may have spawned MCP workers (team bridge daemons), t
372
372
 
373
373
  1. **Check for active MCP workers**: Look for heartbeat files at `.omcp/state/team-bridge/{team}/*.heartbeat.json`
374
374
  2. **Send shutdown signals**: Write shutdown signal files for each active worker
375
- 3. **Kill tmux sessions**: Run `tmux kill-session -t omcp-team-{team}-{worker}` for each worker
375
+ 3. **Kill tmux sessions**: Run `tmux kill-session -t omc-team-{team}-{worker}` for each worker
376
376
  4. **Clean up heartbeat files**: Remove all heartbeat files for the team
377
377
  5. **Clean up shadow registry**: Remove `.omcp/state/team-mcp-workers.json`
378
378
 
@@ -382,6 +382,6 @@ When `--force` is used, also clean up:
382
382
  ```bash
383
383
  rm -rf .omcp/state/team-bridge/ # Heartbeat files
384
384
  rm -f .omcp/state/team-mcp-workers.json # Shadow registry
385
- # Kill all omcp-team-* tmux sessions
386
- tmux list-sessions -F '#{session_name}' 2>/dev/null | grep '^omcp-team-' | while read s; do tmux kill-session -t "$s" 2>/dev/null; done
385
+ # Kill all omc-team-* tmux sessions
386
+ tmux list-sessions -F '#{session_name}' 2>/dev/null | grep '^omc-team-' | while read s; do tmux kill-session -t "$s" 2>/dev/null; done
387
387
  ```
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: cccg
3
3
  description: Quadri-model orchestration — Copilot, Claude, Codex, and Gemini each provide independent analysis, then Copilot synthesizes
4
+ level: 5
4
5
  ---
5
6
 
6
7
  # CCCG - Copilot-Claude-Codex-Gemini Orchestration
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: configure-notifications
3
- description: Configure notification integrations (Telegram, Discord, Slack, Teams) via natural language
3
+ description: Configure notification integrations (Telegram, Discord, Slack) via natural language
4
4
  triggers:
5
5
  - "configure notifications"
6
6
  - "setup notifications"
@@ -13,9 +13,7 @@ triggers:
13
13
  - "configure slack"
14
14
  - "setup slack"
15
15
  - "slack webhook"
16
- - "configure teams"
17
- - "setup teams"
18
- - "teams webhook"
16
+ level: 2
19
17
  ---
20
18
 
21
19
  # Configure Notifications
@@ -28,7 +26,6 @@ Detect which provider the user wants based on their request or argument:
28
26
  - If the trigger or argument contains "telegram" → follow the **Telegram** section
29
27
  - If the trigger or argument contains "discord" → follow the **Discord** section
30
28
  - If the trigger or argument contains "slack" → follow the **Slack** section
31
- - If the trigger or argument contains "teams" → follow the **Microsoft Teams** section
32
29
  - If no provider is specified, use AskUserQuestion:
33
30
 
34
31
  **Question:** "Which notification service would you like to configure?"
@@ -37,7 +34,6 @@ Detect which provider the user wants based on their request or argument:
37
34
  1. **Telegram** - Bot token + chat ID. Works on mobile and desktop.
38
35
  2. **Discord** - Webhook or bot token + channel ID.
39
36
  3. **Slack** - Incoming webhook URL.
40
- 4. **Microsoft Teams** - Incoming webhook (Power Automate Workflows).
41
37
 
42
38
  ---
43
39
 
@@ -143,8 +139,8 @@ Use AskUserQuestion with multiSelect:
143
139
  **Question:** "Which events should trigger Telegram notifications?"
144
140
 
145
141
  **Options (multiSelect: true):**
146
- 1. **Session end (Recommended)** - When a Copilot session finishes
147
- 2. **Input needed** - When Copilot is waiting for your response (great for long-running tasks)
142
+ 1. **Session end (Recommended)** - When a Claude session finishes
143
+ 2. **Input needed** - When Claude is waiting for your response (great for long-running tasks)
148
144
  3. **Session start** - When a new session begins
149
145
  4. **Session continuing** - When a persistent mode keeps the session alive
150
146
 
@@ -243,7 +239,7 @@ Telegram Notifications Configured!
243
239
  Format: Markdown
244
240
  Events: session-end, ask-user-question
245
241
 
246
- Config saved to: ~/.copilot/.omc-config.json
242
+ Config saved to: ~/.copilot/.omcp-config.json
247
243
 
248
244
  You can also set these via environment variables:
249
245
  OMC_TELEGRAM_BOT_TOKEN=123456789:ABCdefGHI...
@@ -252,7 +248,6 @@ You can also set these via environment variables:
252
248
  To reconfigure: /oh-my-copilot:configure-notifications telegram
253
249
  To configure Discord: /oh-my-copilot:configure-notifications discord
254
250
  To configure Slack: /oh-my-copilot:configure-notifications slack
255
- To configure Teams: /oh-my-copilot:configure-notifications teams
256
251
  ```
257
252
 
258
253
  ### Environment Variable Alternative
@@ -367,8 +362,8 @@ Use AskUserQuestion with multiSelect:
367
362
  **Question:** "Which events should trigger Discord notifications?"
368
363
 
369
364
  **Options (multiSelect: true):**
370
- 1. **Session end (Recommended)** - When a Copilot session finishes
371
- 2. **Input needed** - When Copilot is waiting for your response (great for long-running tasks)
365
+ 1. **Session end (Recommended)** - When a Claude session finishes
366
+ 2. **Input needed** - When Claude is waiting for your response (great for long-running tasks)
372
367
  3. **Session start** - When a new session begins
373
368
  4. **Session continuing** - When a persistent mode keeps the session alive
374
369
 
@@ -382,7 +377,7 @@ Use AskUserQuestion:
382
377
 
383
378
  **Options:**
384
379
  1. **OMC (default)** - Display as "OMC"
385
- 2. **Copilot CLI** - Display as "Copilot CLI"
380
+ 2. **Claude Code** - Display as "Claude Code"
386
381
  3. **Custom** - Enter a custom name
387
382
 
388
383
  ### Step 7: Write Configuration
@@ -486,7 +481,7 @@ Discord Notifications Configured!
486
481
  Events: session-end, ask-user-question
487
482
  Username: OMC
488
483
 
489
- Config saved to: ~/.copilot/.omc-config.json
484
+ Config saved to: ~/.copilot/.omcp-config.json
490
485
 
491
486
  You can also set these via environment variables:
492
487
  OMC_DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...
@@ -495,7 +490,6 @@ You can also set these via environment variables:
495
490
  To reconfigure: /oh-my-copilot:configure-notifications discord
496
491
  To configure Telegram: /oh-my-copilot:configure-notifications telegram
497
492
  To configure Slack: /oh-my-copilot:configure-notifications slack
498
- To configure Teams: /oh-my-copilot:configure-notifications teams
499
493
  ```
500
494
 
501
495
  ### Environment Variable Alternative
@@ -616,8 +610,8 @@ Use AskUserQuestion with multiSelect:
616
610
  **Question:** "Which events should trigger Slack notifications?"
617
611
 
618
612
  **Options (multiSelect: true):**
619
- 1. **Session end (Recommended)** - When a Copilot session finishes
620
- 2. **Input needed** - When Copilot is waiting for your response (great for long-running tasks)
613
+ 1. **Session end (Recommended)** - When a Claude session finishes
614
+ 2. **Input needed** - When Claude is waiting for your response (great for long-running tasks)
621
615
  3. **Session start** - When a new session begins
622
616
  4. **Session continuing** - When a persistent mode keeps the session alive
623
617
 
@@ -643,7 +637,7 @@ Use AskUserQuestion:
643
637
 
644
638
  **Options:**
645
639
  1. **OMC (default)** - Display as "OMC"
646
- 2. **Copilot CLI** - Display as "Copilot CLI"
640
+ 2. **Claude Code** - Display as "Claude Code"
647
641
  3. **Custom** - Enter a custom name
648
642
 
649
643
  ### Step 8: Write Configuration
@@ -734,7 +728,7 @@ Slack Notifications Configured!
734
728
  Events: session-end, ask-user-question
735
729
  Username: OMC
736
730
 
737
- Config saved to: ~/.copilot/.omc-config.json
731
+ Config saved to: ~/.copilot/.omcp-config.json
738
732
 
739
733
  You can also set these via environment variables:
740
734
  OMC_SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
@@ -743,7 +737,6 @@ You can also set these via environment variables:
743
737
  To reconfigure: /oh-my-copilot:configure-notifications slack
744
738
  To configure Discord: /oh-my-copilot:configure-notifications discord
745
739
  To configure Telegram: /oh-my-copilot:configure-notifications telegram
746
- To configure Teams: /oh-my-copilot:configure-notifications teams
747
740
  ```
748
741
 
749
742
  ### Environment Variable Alternative
@@ -769,181 +762,6 @@ Env vars are auto-detected by the notification system without needing `.omc-conf
769
762
 
770
763
  ---
771
764
 
772
- ## Microsoft Teams Setup
773
-
774
- Set up Microsoft Teams notifications so OMC can message you when sessions end, need input, or complete background tasks.
775
-
776
- ### How This Skill Works
777
-
778
- This is an interactive, natural-language configuration skill. Walk the user through setup by asking questions with AskUserQuestion. Write the result to `${COPILOT_CONFIG_DIR:-~/.copilot}/.omc-config.json`.
779
-
780
- ### Step 1: Detect Existing Configuration
781
-
782
- ```bash
783
- CONFIG_FILE="${COPILOT_CONFIG_DIR:-$HOME/.copilot}/.omc-config.json"
784
-
785
- if [ -f "$CONFIG_FILE" ]; then
786
- HAS_TEAMS=$(jq -r '.notifications.teams.enabled // false' "$CONFIG_FILE" 2>/dev/null)
787
- WEBHOOK_URL=$(jq -r '.notifications.teams.webhookUrl // empty' "$CONFIG_FILE" 2>/dev/null)
788
-
789
- if [ "$HAS_TEAMS" = "true" ]; then
790
- echo "EXISTING_CONFIG=true"
791
- [ -n "$WEBHOOK_URL" ] && echo "WEBHOOK_URL=$WEBHOOK_URL"
792
- else
793
- echo "EXISTING_CONFIG=false"
794
- fi
795
- else
796
- echo "NO_CONFIG_FILE"
797
- fi
798
- ```
799
-
800
- If existing config is found, show the user what's currently configured and ask if they want to update or reconfigure.
801
-
802
- ### Step 2: Create a Teams Incoming Webhook
803
-
804
- Guide the user through creating a webhook:
805
-
806
- ```
807
- To set up Teams notifications, you need a Teams incoming webhook URL.
808
- Microsoft is migrating from O365 Connectors to Power Automate Workflows.
809
-
810
- CREATE A WEBHOOK (Power Automate Workflows — recommended):
811
- 1. In Teams, go to the channel where you want notifications
812
- 2. Click the "+" tab > "Workflows"
813
- 3. Search for "Post to a channel when a webhook request is received"
814
- 4. Name your flow (e.g., "OMC Notifier")
815
- 5. Select the team and channel
816
- 6. Copy the webhook URL
817
-
818
- LEGACY METHOD (O365 Connectors — being deprecated):
819
- 1. In Teams, right-click the channel > "Connectors"
820
- 2. Find "Incoming Webhook" and click "Configure"
821
- 3. Name your webhook (e.g., "OMC Notifier")
822
- 4. Copy the webhook URL
823
- ```
824
-
825
- ### Step 3: Collect Webhook URL
826
-
827
- Use AskUserQuestion:
828
-
829
- **Question:** "Paste your Teams webhook URL"
830
-
831
- The user will type their webhook URL in the "Other" field.
832
-
833
- **Validate** the URL:
834
- - Must be HTTPS
835
- - Should match one of: `*.logic.azure.com`, `*.webhook.office.com`, `outlook.office.com`, `outlook.office365.com`
836
- - If invalid, explain the format and ask again
837
-
838
- ### Step 4: Configure Events
839
-
840
- Use AskUserQuestion with multiSelect:
841
-
842
- **Question:** "Which events should trigger Teams notifications?"
843
-
844
- **Options (multiSelect: true):**
845
- 1. **Session end (Recommended)** - When a Copilot session finishes
846
- 2. **Input needed** - When Copilot is waiting for your response (great for long-running tasks)
847
- 3. **Session start** - When a new session begins
848
- 4. **Session continuing** - When a persistent mode keeps the session alive
849
-
850
- Default selection: session-end + ask-user-question.
851
-
852
- ### Step 5: Write Configuration
853
-
854
- Read the existing config, merge the new Teams settings, and write back:
855
-
856
- ```bash
857
- CONFIG_FILE="${COPILOT_CONFIG_DIR:-$HOME/.copilot}/.omc-config.json"
858
- mkdir -p "$(dirname "$CONFIG_FILE")"
859
-
860
- if [ -f "$CONFIG_FILE" ]; then
861
- EXISTING=$(cat "$CONFIG_FILE")
862
- else
863
- EXISTING='{}'
864
- fi
865
-
866
- # WEBHOOK_URL is collected from user
867
- echo "$EXISTING" | jq \
868
- --arg url "$WEBHOOK_URL" \
869
- '.notifications = (.notifications // {enabled: true}) |
870
- .notifications.enabled = true |
871
- .notifications.teams = {
872
- enabled: true,
873
- webhookUrl: $url
874
- }' > "$CONFIG_FILE"
875
- ```
876
-
877
- #### Add event-specific config if user didn't select all events:
878
-
879
- For each event NOT selected, disable it:
880
-
881
- ```bash
882
- # Example: disable session-start if not selected
883
- echo "$(cat "$CONFIG_FILE")" | jq \
884
- '.notifications.events = (.notifications.events // {}) |
885
- .notifications.events["session-start"] = {enabled: false}' > "$CONFIG_FILE"
886
- ```
887
-
888
- ### Step 6: Test the Configuration
889
-
890
- After writing config, offer to send a test notification:
891
-
892
- Use AskUserQuestion:
893
-
894
- **Question:** "Send a test notification to verify the setup?"
895
-
896
- **Options:**
897
- 1. **Yes, test now (Recommended)** - Send a test Adaptive Card to your Teams channel
898
- 2. **No, I'll test later** - Skip testing
899
-
900
- #### If testing:
901
-
902
- ```bash
903
- curl -s -o /dev/null -w "%{http_code}" \
904
- -H "Content-Type: application/json" \
905
- -d '{"type":"message","attachments":[{"contentType":"application/vnd.microsoft.card.adaptive","contentUrl":null,"content":{"$schema":"http://adaptivecards.io/schemas/adaptive-card.json","type":"AdaptiveCard","version":"1.4","body":[{"type":"TextBlock","size":"Medium","weight":"Bolder","text":"OMC Test Notification"},{"type":"TextBlock","text":"Teams notifications are configured!","wrap":true}]}}]}' \
906
- "$WEBHOOK_URL"
907
- ```
908
-
909
- Report success or failure. Common issues:
910
- - **400 Bad Request**: Webhook URL is invalid or malformed Adaptive Card
911
- - **404 Not Found**: Webhook URL is incorrect or expired
912
- - **Network error**: Check connectivity
913
-
914
- ### Step 7: Confirm
915
-
916
- Display the final configuration summary:
917
-
918
- ```
919
- Microsoft Teams Notifications Configured!
920
-
921
- Webhook: https://...logic.azure.com/...
922
- Events: session-end, ask-user-question
923
-
924
- Config saved to: ~/.copilot/.omc-config.json
925
-
926
- You can also set these via environment variables:
927
- OMC_MICROSOFT_TEAMS_WEBHOOK_URL=https://...
928
-
929
- To reconfigure: /oh-my-copilot:configure-notifications teams
930
- To configure Discord: /oh-my-copilot:configure-notifications discord
931
- To configure Telegram: /oh-my-copilot:configure-notifications telegram
932
- To configure Slack: /oh-my-copilot:configure-notifications slack
933
- ```
934
-
935
- ### Environment Variable Alternative
936
-
937
- Users can skip this wizard entirely by setting env vars in their shell profile:
938
-
939
- ```bash
940
- export OMC_MICROSOFT_TEAMS_WEBHOOK_URL="https://prod-xx.westus.logic.azure.com/workflows/..."
941
- ```
942
-
943
- Env vars are auto-detected by the notification system without needing `.omc-config.json`.
944
-
945
- ---
946
-
947
765
  ## Platform Activation Flags
948
766
 
949
767
  All notification platforms require activation via CLI flags per session:
@@ -951,14 +769,15 @@ All notification platforms require activation via CLI flags per session:
951
769
  - `omc --telegram` — Activates Telegram notifications (sets `OMC_TELEGRAM=1`)
952
770
  - `omc --discord` — Activates Discord notifications (sets `OMC_DISCORD=1`)
953
771
  - `omc --slack` — Activates Slack notifications (sets `OMC_SLACK=1`)
954
- - `omc --teams` — Activates Teams notifications (sets `OMC_MICROSOFT_TEAMS=1`)
955
772
  - `omc --webhook` — Activates webhook notifications (sets `OMC_WEBHOOK=1`)
773
+ - `omc --openclaw` — Activates OpenClaw gateway integration (sets `OMC_OPENCLAW=1`)
774
+
956
775
  Without these flags, configured platforms remain dormant. This prevents unwanted notifications during development while keeping configuration persistent.
957
776
 
958
777
  **Examples:**
959
778
  - `omc --telegram --discord` — Telegram + Discord active
960
779
  - `omc --telegram --slack --webhook` — Telegram + Slack + Webhook active
961
- - `omc --telegram --teams` — Telegram + Teams active
780
+ - `omc --telegram --openclaw` — Telegram + OpenClaw active
962
781
  - `omc` — No notifications sent (all platforms require explicit activation)
963
782
 
964
783
  ---
@@ -980,7 +799,7 @@ Hook event templates let you customize the notification messages sent to each pl
980
799
  You can set different messages for Discord vs Telegram vs Slack, and control which
981
800
  events fire on which platform.
982
801
 
983
- Config file: ${COPILOT_CONFIG_DIR:-~/.copilot}/omc_config.hook.json
802
+ Config file: ~/.copilot/omcp_config.hook.json
984
803
  ```
985
804
 
986
805
  ### Step 2: Choose Event to Configure
@@ -990,9 +809,9 @@ Use AskUserQuestion:
990
809
  **Question:** "Which event would you like to configure templates for?"
991
810
 
992
811
  **Options:**
993
- 1. **session-end** - When a Copilot session finishes (most common)
994
- 2. **ask-user-question** - When Copilot is waiting for input
995
- 3. **session-idle** - When Copilot finishes and waits for input
812
+ 1. **session-end** - When a Claude session finishes (most common)
813
+ 2. **ask-user-question** - When Claude is waiting for input
814
+ 3. **session-idle** - When Claude finishes and waits for input
996
815
  4. **session-start** - When a new session begins
997
816
 
998
817
  ### Step 3: Show Available Variables
@@ -1114,13 +933,56 @@ Offer to send a test notification with the new template.
1114
933
 
1115
934
  ---
1116
935
 
1117
- ## Custom Integration (n8n, CLI, etc.)
936
+ ## Related
937
+
938
+ - `/oh-my-copilot:configure-openclaw` — Configure OpenClaw gateway integration
939
+
940
+ ---
941
+
942
+ ## Custom Integration (OpenClaw, n8n, CLI, etc.)
1118
943
 
1119
944
  Configure custom webhooks and CLI commands for services beyond the native Discord/Telegram/Slack integrations.
1120
945
 
1121
946
  ### Routing
1122
947
 
1123
- If the user says "custom integration", "n8n", "webhook", "cli command", or similar → follow this section.
948
+ If the user says "custom integration", "openclaw", "n8n", "webhook", "cli command", or similar → follow this section.
949
+
950
+ ### Migration from OpenClaw
951
+
952
+ If `~/.copilot/omcp_config.openclaw.json` exists, detect and offer migration:
953
+
954
+ **Step 1: Detect Legacy Config**
955
+ ```bash
956
+ LEGACY_CONFIG="${COPILOT_CONFIG_DIR:-$HOME/.copilot}/omc_config.openclaw.json"
957
+ if [ -f "$LEGACY_CONFIG" ]; then
958
+ echo "LEGACY_FOUND=true"
959
+ # Check if already migrated
960
+ if jq -e '.customIntegrations.integrations[] | select(.preset == "openclaw")' "$CONFIG_FILE" >/dev/null 2>&1; then
961
+ echo "ALREADY_MIGRATED=true"
962
+ else
963
+ echo "ALREADY_MIGRATED=false"
964
+ fi
965
+ else
966
+ echo "LEGACY_FOUND=false"
967
+ fi
968
+ ```
969
+
970
+ **Step 2: Offer Migration**
971
+ If legacy found and not migrated:
972
+
973
+ **Question:** "Existing OpenClaw configuration detected. Would you like to migrate it to the new format?"
974
+
975
+ **Options:**
976
+ 1. **Yes, migrate now** - Convert legacy config to custom integration
977
+ 2. **No, configure fresh** - Skip migration and start new
978
+ 3. **Show me the legacy config first** - Display current OpenClaw settings
979
+
980
+ If migrate:
981
+ - Read `omc_config.openclaw.json`
982
+ - Transform to custom integration format
983
+ - Save to `.omc-config.json`
984
+ - Backup legacy to `omc_config.openclaw.json.bak`
985
+ - Show success message
1124
986
 
1125
987
  ### Custom Integration Wizard
1126
988
 
@@ -1129,12 +991,13 @@ If the user says "custom integration", "n8n", "webhook", "cli command", or simil
1129
991
  **Question:** "Which type of custom integration would you like to configure?"
1130
992
 
1131
993
  **Options:**
1132
- 1. **n8n Webhook** - Trigger n8n workflows
1133
- 2. **ClawdBot** - Send notifications to ClawdBot
1134
- 3. **Generic Webhook** - Custom HTTPS webhook
1135
- 4. **Generic CLI Command** - Execute shell command on events
994
+ 1. **OpenClaw Gateway** - Wake external automations and AI agents
995
+ 2. **n8n Webhook** - Trigger n8n workflows
996
+ 3. **ClawdBot** - Send notifications to ClawdBot
997
+ 4. **Generic Webhook** - Custom HTTPS webhook
998
+ 5. **Generic CLI Command** - Execute shell command on events
1136
999
 
1137
- ### n8n/ClawdBot Preset Flow
1000
+ ### OpenClaw/n8n/ClawdBot Preset Flow
1138
1001
 
1139
1002
  **Step 2: Gateway URL**
1140
1003
 
@@ -1169,6 +1032,7 @@ Use AskUserQuestion with multiSelect:
1169
1032
  - session-idle
1170
1033
  - ask-user-question
1171
1034
 
1035
+ Default for OpenClaw: session-start, session-end, stop
1172
1036
  Default for n8n: session-end, ask-user-question
1173
1037
 
1174
1038
  **Step 5: Test**
@@ -1202,20 +1066,21 @@ Merge into `.omc-config.json`:
1202
1066
  "enabled": true,
1203
1067
  "integrations": [
1204
1068
  {
1205
- "id": "my-n8n",
1069
+ "id": "my-openclaw",
1206
1070
  "type": "webhook",
1207
- "preset": "n8n",
1071
+ "preset": "openclaw",
1208
1072
  "enabled": true,
1209
1073
  "config": {
1210
- "url": "https://my-n8n.example.com/webhook/abc123",
1074
+ "url": "https://my-gateway.example.com/wake",
1211
1075
  "method": "POST",
1212
1076
  "headers": {
1213
- "Content-Type": "application/json"
1077
+ "Content-Type": "application/json",
1078
+ "Authorization": "Bearer ..."
1214
1079
  },
1215
- "bodyTemplate": "{\\"event\\":\\"{{event}}\\",\\"sessionId\\":\\"{{sessionId}}\\",\\"timestamp\\":\\"{{timestamp}}\\"}",
1080
+ "bodyTemplate": "{\\"event\\":\\"{{event}}\\",\\"instruction\\":\\"Session {{sessionId}} {{event}}\\",\\"timestamp\\":\\"{{timestamp}}\\"}",
1216
1081
  "timeout": 10000
1217
1082
  },
1218
- "events": ["session-end", "ask-user-question"]
1083
+ "events": ["session-start", "session-end"]
1219
1084
  }
1220
1085
  ]
1221
1086
  }
@@ -1332,7 +1197,7 @@ All custom integrations support these template variables:
1332
1197
  | `{{duration}}` | Human-readable duration | `45s` |
1333
1198
  | `{{durationMs}}` | Duration in milliseconds | `45000` |
1334
1199
  | `{{reason}}` | Stop/end reason | `completed` |
1335
- | `{{tmuxSession}}` | tmux session name | `copilot:my-project` |
1200
+ | `{{tmuxSession}}` | tmux session name | `claude:my-project` |
1336
1201
 
1337
1202
  Session-end only:
1338
1203
  - `{{agentsSpawned}}`, `{{agentsCompleted}}`, `{{modesUsed}}`, `{{contextSummary}}`
@@ -5,13 +5,13 @@ description: Diagnose the current OMC session or repo state using logs, traces,
5
5
 
6
6
  # Debug
7
7
 
8
- Use this skill when the user wants help diagnosing a current OMC/Copilot CLI session problem, workflow breakage, or confusing runtime behavior.
8
+ Use this skill when the user wants help diagnosing a current OMC/Claude-Code session problem, workflow breakage, or confusing runtime behavior.
9
9
 
10
10
  ## Goal
11
11
  Find the real failure signal quickly and explain the next corrective step.
12
12
 
13
13
  ## Workflow
14
- 1. Read the user's issue description carefully.
14
+ 1. Read the user’s issue description carefully.
15
15
  2. Inspect the most relevant local evidence first:
16
16
  - trace tools
17
17
  - state tools
@@ -32,3 +32,4 @@ Find the real failure signal quickly and explain the next corrective step.
32
32
  - Root-cause hypothesis
33
33
  - Evidence for that hypothesis
34
34
  - Smallest next action
35
+