oh-my-claude-sisyphus 3.8.9 → 3.8.11

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 (456) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +1 -1
  4. package/agents/architect.md +78 -0
  5. package/agents/explore.md +15 -0
  6. package/agents/qa-tester.md +159 -1
  7. package/agents/writer.md +20 -0
  8. package/commands/help.md +1 -1
  9. package/commands/omc-setup.md +1 -1
  10. package/dist/__tests__/agent-registry.test.d.ts +2 -0
  11. package/dist/__tests__/agent-registry.test.d.ts.map +1 -0
  12. package/dist/__tests__/agent-registry.test.js +39 -0
  13. package/dist/__tests__/agent-registry.test.js.map +1 -0
  14. package/dist/__tests__/load-agent-prompt.test.d.ts +2 -0
  15. package/dist/__tests__/load-agent-prompt.test.d.ts.map +1 -0
  16. package/dist/__tests__/load-agent-prompt.test.js +68 -0
  17. package/dist/__tests__/load-agent-prompt.test.js.map +1 -0
  18. package/dist/__tests__/model-routing.test.js +5 -34
  19. package/dist/__tests__/model-routing.test.js.map +1 -1
  20. package/dist/agents/analyst.d.ts.map +1 -1
  21. package/dist/agents/analyst.js +2 -77
  22. package/dist/agents/analyst.js.map +1 -1
  23. package/dist/agents/architect.d.ts.map +1 -1
  24. package/dist/agents/architect.js +3 -148
  25. package/dist/agents/architect.js.map +1 -1
  26. package/dist/agents/coordinator-deprecated.d.ts +18 -0
  27. package/dist/agents/coordinator-deprecated.d.ts.map +1 -0
  28. package/dist/agents/coordinator-deprecated.js +34 -0
  29. package/dist/agents/coordinator-deprecated.js.map +1 -0
  30. package/dist/agents/critic.d.ts.map +1 -1
  31. package/dist/agents/critic.js +2 -90
  32. package/dist/agents/critic.js.map +1 -1
  33. package/dist/agents/definitions.d.ts +2 -0
  34. package/dist/agents/definitions.d.ts.map +1 -1
  35. package/dist/agents/definitions.js +3 -32
  36. package/dist/agents/definitions.js.map +1 -1
  37. package/dist/agents/designer.d.ts.map +1 -1
  38. package/dist/agents/designer.js +2 -73
  39. package/dist/agents/designer.js.map +1 -1
  40. package/dist/agents/executor.d.ts +1 -0
  41. package/dist/agents/executor.d.ts.map +1 -1
  42. package/dist/agents/executor.js +3 -56
  43. package/dist/agents/executor.js.map +1 -1
  44. package/dist/agents/explore.d.ts.map +1 -1
  45. package/dist/agents/explore.js +2 -64
  46. package/dist/agents/explore.js.map +1 -1
  47. package/dist/agents/index.d.ts +4 -3
  48. package/dist/agents/index.d.ts.map +1 -1
  49. package/dist/agents/index.js +6 -3
  50. package/dist/agents/index.js.map +1 -1
  51. package/dist/agents/planner.d.ts.map +1 -1
  52. package/dist/agents/planner.js +2 -157
  53. package/dist/agents/planner.js.map +1 -1
  54. package/dist/agents/qa-tester.d.ts.map +1 -1
  55. package/dist/agents/qa-tester.js +2 -324
  56. package/dist/agents/qa-tester.js.map +1 -1
  57. package/dist/agents/researcher.d.ts.map +1 -1
  58. package/dist/agents/researcher.js +2 -65
  59. package/dist/agents/researcher.js.map +1 -1
  60. package/dist/agents/scientist.d.ts.map +1 -1
  61. package/dist/agents/scientist.js +2 -293
  62. package/dist/agents/scientist.js.map +1 -1
  63. package/dist/agents/utils.d.ts +7 -0
  64. package/dist/agents/utils.d.ts.map +1 -1
  65. package/dist/agents/utils.js +50 -0
  66. package/dist/agents/utils.js.map +1 -1
  67. package/dist/agents/vision.d.ts.map +1 -1
  68. package/dist/agents/vision.js +2 -32
  69. package/dist/agents/vision.js.map +1 -1
  70. package/dist/agents/writer.d.ts.map +1 -1
  71. package/dist/agents/writer.js +2 -171
  72. package/dist/agents/writer.js.map +1 -1
  73. package/dist/cli/analytics.js +0 -0
  74. package/dist/cli/index.js +0 -0
  75. package/dist/features/model-routing/index.d.ts +1 -1
  76. package/dist/features/model-routing/index.d.ts.map +1 -1
  77. package/dist/features/model-routing/index.js +1 -1
  78. package/dist/features/model-routing/index.js.map +1 -1
  79. package/dist/features/model-routing/router.d.ts +1 -15
  80. package/dist/features/model-routing/router.d.ts.map +1 -1
  81. package/dist/features/model-routing/router.js +2 -33
  82. package/dist/features/model-routing/router.js.map +1 -1
  83. package/dist/features/model-routing/rules.d.ts.map +1 -1
  84. package/dist/features/model-routing/rules.js +0 -8
  85. package/dist/features/model-routing/rules.js.map +1 -1
  86. package/dist/features/model-routing/types.d.ts +1 -2
  87. package/dist/features/model-routing/types.d.ts.map +1 -1
  88. package/dist/features/model-routing/types.js +2 -6
  89. package/dist/features/model-routing/types.js.map +1 -1
  90. package/dist/features/task-decomposer/index.d.ts +1 -1
  91. package/dist/features/task-decomposer/index.d.ts.map +1 -1
  92. package/dist/features/task-decomposer/index.js +5 -8
  93. package/dist/features/task-decomposer/index.js.map +1 -1
  94. package/dist/features/task-decomposer/types.d.ts +4 -4
  95. package/dist/features/task-decomposer/types.d.ts.map +1 -1
  96. package/dist/hooks/bridge.d.ts.map +1 -1
  97. package/dist/hooks/bridge.js +56 -49
  98. package/dist/hooks/bridge.js.map +1 -1
  99. package/dist/hooks/keyword-detector/__tests__/index.test.js +89 -1
  100. package/dist/hooks/keyword-detector/__tests__/index.test.js.map +1 -1
  101. package/dist/hooks/keyword-detector/index.d.ts +5 -1
  102. package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
  103. package/dist/hooks/keyword-detector/index.js +32 -11
  104. package/dist/hooks/keyword-detector/index.js.map +1 -1
  105. package/dist/hooks/ultrapilot/decomposer.d.ts +1 -1
  106. package/dist/hooks/ultrapilot/decomposer.js +2 -2
  107. package/dist/index.d.ts +1 -1
  108. package/dist/index.d.ts.map +1 -1
  109. package/dist/index.js +4 -2
  110. package/dist/index.js.map +1 -1
  111. package/docs/CLAUDE.md +44 -4
  112. package/docs/FEATURES.md +1 -1
  113. package/docs/MIGRATION.md +5 -5
  114. package/docs/REFERENCE.md +6 -2
  115. package/package.json +1 -1
  116. package/scripts/keyword-detector.mjs +140 -59
  117. package/skills/help/SKILL.md +1 -1
  118. package/skills/omc-setup/SKILL.md +1 -1
  119. package/templates/hooks/keyword-detector.mjs +280 -118
  120. package/dist/__tests__/analytics/analytics-summary.test.d.ts +0 -2
  121. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +0 -1
  122. package/dist/__tests__/analytics/analytics-summary.test.js +0 -267
  123. package/dist/__tests__/analytics/analytics-summary.test.js.map +0 -1
  124. package/dist/__tests__/analytics/cost-estimator.test.d.ts +0 -2
  125. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +0 -1
  126. package/dist/__tests__/analytics/cost-estimator.test.js +0 -212
  127. package/dist/__tests__/analytics/cost-estimator.test.js.map +0 -1
  128. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +0 -7
  129. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +0 -1
  130. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +0 -374
  131. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +0 -1
  132. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +0 -2
  133. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +0 -1
  134. package/dist/__tests__/hud/auto-tracking.integration.test.js +0 -12
  135. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +0 -1
  136. package/dist/__tests__/learned-skills/config.test.d.ts +0 -2
  137. package/dist/__tests__/learned-skills/config.test.d.ts.map +0 -1
  138. package/dist/__tests__/learned-skills/config.test.js +0 -37
  139. package/dist/__tests__/learned-skills/config.test.js.map +0 -1
  140. package/dist/__tests__/learned-skills/detector.test.d.ts +0 -2
  141. package/dist/__tests__/learned-skills/detector.test.d.ts.map +0 -1
  142. package/dist/__tests__/learned-skills/detector.test.js +0 -99
  143. package/dist/__tests__/learned-skills/detector.test.js.map +0 -1
  144. package/dist/__tests__/learned-skills/finder.test.d.ts +0 -2
  145. package/dist/__tests__/learned-skills/finder.test.d.ts.map +0 -1
  146. package/dist/__tests__/learned-skills/finder.test.js +0 -59
  147. package/dist/__tests__/learned-skills/finder.test.js.map +0 -1
  148. package/dist/__tests__/learned-skills/loader.test.d.ts +0 -2
  149. package/dist/__tests__/learned-skills/loader.test.d.ts.map +0 -1
  150. package/dist/__tests__/learned-skills/loader.test.js +0 -69
  151. package/dist/__tests__/learned-skills/loader.test.js.map +0 -1
  152. package/dist/__tests__/learned-skills/parser.test.d.ts +0 -2
  153. package/dist/__tests__/learned-skills/parser.test.d.ts.map +0 -1
  154. package/dist/__tests__/learned-skills/parser.test.js +0 -81
  155. package/dist/__tests__/learned-skills/parser.test.js.map +0 -1
  156. package/dist/__tests__/learned-skills/validator.test.d.ts +0 -2
  157. package/dist/__tests__/learned-skills/validator.test.d.ts.map +0 -1
  158. package/dist/__tests__/learned-skills/validator.test.js +0 -85
  159. package/dist/__tests__/learned-skills/validator.test.js.map +0 -1
  160. package/dist/agents/codex-agents.d.ts +0 -20
  161. package/dist/agents/codex-agents.d.ts.map +0 -1
  162. package/dist/agents/codex-agents.js +0 -36
  163. package/dist/agents/codex-agents.js.map +0 -1
  164. package/dist/agents/coordinator.d.ts +0 -11
  165. package/dist/agents/coordinator.d.ts.map +0 -1
  166. package/dist/agents/coordinator.js +0 -115
  167. package/dist/agents/coordinator.js.map +0 -1
  168. package/dist/agents/document-writer.d.ts +0 -11
  169. package/dist/agents/document-writer.d.ts.map +0 -1
  170. package/dist/agents/document-writer.js +0 -209
  171. package/dist/agents/document-writer.js.map +0 -1
  172. package/dist/agents/frontend-engineer.d.ts +0 -11
  173. package/dist/agents/frontend-engineer.d.ts.map +0 -1
  174. package/dist/agents/frontend-engineer.js +0 -115
  175. package/dist/agents/frontend-engineer.js.map +0 -1
  176. package/dist/agents/librarian.d.ts +0 -12
  177. package/dist/agents/librarian.d.ts.map +0 -1
  178. package/dist/agents/librarian.js +0 -103
  179. package/dist/agents/librarian.js.map +0 -1
  180. package/dist/agents/metis.d.ts +0 -12
  181. package/dist/agents/metis.d.ts.map +0 -1
  182. package/dist/agents/metis.js +0 -117
  183. package/dist/agents/metis.js.map +0 -1
  184. package/dist/agents/momus.d.ts +0 -12
  185. package/dist/agents/momus.d.ts.map +0 -1
  186. package/dist/agents/momus.js +0 -128
  187. package/dist/agents/momus.js.map +0 -1
  188. package/dist/agents/multimodal-looker.d.ts +0 -11
  189. package/dist/agents/multimodal-looker.d.ts.map +0 -1
  190. package/dist/agents/multimodal-looker.js +0 -70
  191. package/dist/agents/multimodal-looker.js.map +0 -1
  192. package/dist/agents/oracle.d.ts +0 -13
  193. package/dist/agents/oracle.d.ts.map +0 -1
  194. package/dist/agents/oracle.js +0 -191
  195. package/dist/agents/oracle.js.map +0 -1
  196. package/dist/agents/orchestrator-sisyphus.d.ts +0 -11
  197. package/dist/agents/orchestrator-sisyphus.d.ts.map +0 -1
  198. package/dist/agents/orchestrator-sisyphus.js +0 -115
  199. package/dist/agents/orchestrator-sisyphus.js.map +0 -1
  200. package/dist/agents/prometheus.d.ts +0 -12
  201. package/dist/agents/prometheus.d.ts.map +0 -1
  202. package/dist/agents/prometheus.js +0 -195
  203. package/dist/agents/prometheus.js.map +0 -1
  204. package/dist/agents/sisyphus-junior.d.ts +0 -12
  205. package/dist/agents/sisyphus-junior.d.ts.map +0 -1
  206. package/dist/agents/sisyphus-junior.js +0 -93
  207. package/dist/agents/sisyphus-junior.js.map +0 -1
  208. package/dist/cli/components/CostDashboard.d.ts +0 -15
  209. package/dist/cli/components/CostDashboard.d.ts.map +0 -1
  210. package/dist/cli/components/CostDashboard.js +0 -15
  211. package/dist/cli/components/CostDashboard.js.map +0 -1
  212. package/dist/cli/components/LiveStats.d.ts +0 -16
  213. package/dist/cli/components/LiveStats.d.ts.map +0 -1
  214. package/dist/cli/components/LiveStats.js +0 -16
  215. package/dist/cli/components/LiveStats.js.map +0 -1
  216. package/dist/cli/components/SessionBrowser.d.ts +0 -14
  217. package/dist/cli/components/SessionBrowser.d.ts.map +0 -1
  218. package/dist/cli/components/SessionBrowser.js +0 -14
  219. package/dist/cli/components/SessionBrowser.js.map +0 -1
  220. package/dist/cli/tui.d.ts +0 -21
  221. package/dist/cli/tui.d.ts.map +0 -1
  222. package/dist/cli/tui.js +0 -21
  223. package/dist/cli/tui.js.map +0 -1
  224. package/dist/hooks/autopilot/signals.d.ts +0 -20
  225. package/dist/hooks/autopilot/signals.d.ts.map +0 -1
  226. package/dist/hooks/autopilot/signals.js +0 -75
  227. package/dist/hooks/autopilot/signals.js.map +0 -1
  228. package/dist/hooks/autopilot/summary.d.ts +0 -27
  229. package/dist/hooks/autopilot/summary.d.ts.map +0 -1
  230. package/dist/hooks/autopilot/summary.js +0 -160
  231. package/dist/hooks/autopilot/summary.js.map +0 -1
  232. package/dist/hooks/autopilot/transition.d.ts +0 -39
  233. package/dist/hooks/autopilot/transition.d.ts.map +0 -1
  234. package/dist/hooks/autopilot/transition.js +0 -216
  235. package/dist/hooks/autopilot/transition.js.map +0 -1
  236. package/dist/hooks/context-window-limit-recovery/constants.d.ts +0 -28
  237. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +0 -1
  238. package/dist/hooks/context-window-limit-recovery/constants.js +0 -85
  239. package/dist/hooks/context-window-limit-recovery/constants.js.map +0 -1
  240. package/dist/hooks/context-window-limit-recovery/index.d.ts +0 -62
  241. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +0 -1
  242. package/dist/hooks/context-window-limit-recovery/index.js +0 -201
  243. package/dist/hooks/context-window-limit-recovery/index.js.map +0 -1
  244. package/dist/hooks/context-window-limit-recovery/parser.d.ts +0 -31
  245. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +0 -1
  246. package/dist/hooks/context-window-limit-recovery/parser.js +0 -241
  247. package/dist/hooks/context-window-limit-recovery/parser.js.map +0 -1
  248. package/dist/hooks/context-window-limit-recovery/types.d.ts +0 -84
  249. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +0 -1
  250. package/dist/hooks/context-window-limit-recovery/types.js +0 -34
  251. package/dist/hooks/context-window-limit-recovery/types.js.map +0 -1
  252. package/dist/hooks/edit-error-recovery/index.d.ts +0 -62
  253. package/dist/hooks/edit-error-recovery/index.d.ts.map +0 -1
  254. package/dist/hooks/edit-error-recovery/index.js +0 -89
  255. package/dist/hooks/edit-error-recovery/index.js.map +0 -1
  256. package/dist/hooks/github-auto-responder/classifier.d.ts +0 -43
  257. package/dist/hooks/github-auto-responder/classifier.d.ts.map +0 -1
  258. package/dist/hooks/github-auto-responder/classifier.js +0 -150
  259. package/dist/hooks/github-auto-responder/classifier.js.map +0 -1
  260. package/dist/hooks/github-auto-responder/config.d.ts +0 -109
  261. package/dist/hooks/github-auto-responder/config.d.ts.map +0 -1
  262. package/dist/hooks/github-auto-responder/config.js +0 -69
  263. package/dist/hooks/github-auto-responder/config.js.map +0 -1
  264. package/dist/hooks/github-auto-responder/constants.d.ts +0 -45
  265. package/dist/hooks/github-auto-responder/constants.d.ts.map +0 -1
  266. package/dist/hooks/github-auto-responder/constants.js +0 -60
  267. package/dist/hooks/github-auto-responder/constants.js.map +0 -1
  268. package/dist/hooks/github-auto-responder/filters.d.ts +0 -95
  269. package/dist/hooks/github-auto-responder/filters.d.ts.map +0 -1
  270. package/dist/hooks/github-auto-responder/filters.js +0 -174
  271. package/dist/hooks/github-auto-responder/filters.js.map +0 -1
  272. package/dist/hooks/github-auto-responder/github-client.d.ts +0 -65
  273. package/dist/hooks/github-auto-responder/github-client.d.ts.map +0 -1
  274. package/dist/hooks/github-auto-responder/github-client.js +0 -128
  275. package/dist/hooks/github-auto-responder/github-client.js.map +0 -1
  276. package/dist/hooks/github-auto-responder/idempotency.d.ts +0 -68
  277. package/dist/hooks/github-auto-responder/idempotency.d.ts.map +0 -1
  278. package/dist/hooks/github-auto-responder/idempotency.js +0 -147
  279. package/dist/hooks/github-auto-responder/idempotency.js.map +0 -1
  280. package/dist/hooks/github-auto-responder/index.d.ts +0 -140
  281. package/dist/hooks/github-auto-responder/index.d.ts.map +0 -1
  282. package/dist/hooks/github-auto-responder/index.js +0 -145
  283. package/dist/hooks/github-auto-responder/index.js.map +0 -1
  284. package/dist/hooks/github-auto-responder/persona.d.ts +0 -40
  285. package/dist/hooks/github-auto-responder/persona.d.ts.map +0 -1
  286. package/dist/hooks/github-auto-responder/persona.js +0 -99
  287. package/dist/hooks/github-auto-responder/persona.js.map +0 -1
  288. package/dist/hooks/github-auto-responder/responder.d.ts +0 -122
  289. package/dist/hooks/github-auto-responder/responder.d.ts.map +0 -1
  290. package/dist/hooks/github-auto-responder/responder.js +0 -264
  291. package/dist/hooks/github-auto-responder/responder.js.map +0 -1
  292. package/dist/hooks/github-auto-responder/server.d.ts +0 -140
  293. package/dist/hooks/github-auto-responder/server.d.ts.map +0 -1
  294. package/dist/hooks/github-auto-responder/server.js +0 -301
  295. package/dist/hooks/github-auto-responder/server.js.map +0 -1
  296. package/dist/hooks/github-auto-responder/signature.d.ts +0 -34
  297. package/dist/hooks/github-auto-responder/signature.d.ts.map +0 -1
  298. package/dist/hooks/github-auto-responder/signature.js +0 -79
  299. package/dist/hooks/github-auto-responder/signature.js.map +0 -1
  300. package/dist/hooks/github-auto-responder/templates.d.ts +0 -16
  301. package/dist/hooks/github-auto-responder/templates.d.ts.map +0 -1
  302. package/dist/hooks/github-auto-responder/templates.js +0 -93
  303. package/dist/hooks/github-auto-responder/templates.js.map +0 -1
  304. package/dist/hooks/github-auto-responder/types.d.ts +0 -246
  305. package/dist/hooks/github-auto-responder/types.d.ts.map +0 -1
  306. package/dist/hooks/github-auto-responder/types.js +0 -7
  307. package/dist/hooks/github-auto-responder/types.js.map +0 -1
  308. package/dist/hooks/learned-skills/config.d.ts +0 -53
  309. package/dist/hooks/learned-skills/config.d.ts.map +0 -1
  310. package/dist/hooks/learned-skills/config.js +0 -103
  311. package/dist/hooks/learned-skills/config.js.map +0 -1
  312. package/dist/hooks/learned-skills/constants.d.ts +0 -24
  313. package/dist/hooks/learned-skills/constants.d.ts.map +0 -1
  314. package/dist/hooks/learned-skills/constants.js +0 -26
  315. package/dist/hooks/learned-skills/constants.js.map +0 -1
  316. package/dist/hooks/learned-skills/detection-hook.d.ts +0 -39
  317. package/dist/hooks/learned-skills/detection-hook.d.ts.map +0 -1
  318. package/dist/hooks/learned-skills/detection-hook.js +0 -83
  319. package/dist/hooks/learned-skills/detection-hook.js.map +0 -1
  320. package/dist/hooks/learned-skills/detector.d.ts +0 -30
  321. package/dist/hooks/learned-skills/detector.d.ts.map +0 -1
  322. package/dist/hooks/learned-skills/detector.js +0 -150
  323. package/dist/hooks/learned-skills/detector.js.map +0 -1
  324. package/dist/hooks/learned-skills/finder.d.ts +0 -21
  325. package/dist/hooks/learned-skills/finder.d.ts.map +0 -1
  326. package/dist/hooks/learned-skills/finder.js +0 -117
  327. package/dist/hooks/learned-skills/finder.js.map +0 -1
  328. package/dist/hooks/learned-skills/index.d.ts +0 -62
  329. package/dist/hooks/learned-skills/index.d.ts.map +0 -1
  330. package/dist/hooks/learned-skills/index.js +0 -137
  331. package/dist/hooks/learned-skills/index.js.map +0 -1
  332. package/dist/hooks/learned-skills/loader.d.ts +0 -20
  333. package/dist/hooks/learned-skills/loader.d.ts.map +0 -1
  334. package/dist/hooks/learned-skills/loader.js +0 -107
  335. package/dist/hooks/learned-skills/loader.js.map +0 -1
  336. package/dist/hooks/learned-skills/parser.d.ts +0 -21
  337. package/dist/hooks/learned-skills/parser.d.ts.map +0 -1
  338. package/dist/hooks/learned-skills/parser.js +0 -190
  339. package/dist/hooks/learned-skills/parser.js.map +0 -1
  340. package/dist/hooks/learned-skills/promotion.d.ts +0 -29
  341. package/dist/hooks/learned-skills/promotion.d.ts.map +0 -1
  342. package/dist/hooks/learned-skills/promotion.js +0 -87
  343. package/dist/hooks/learned-skills/promotion.js.map +0 -1
  344. package/dist/hooks/learned-skills/types.d.ts +0 -109
  345. package/dist/hooks/learned-skills/types.d.ts.map +0 -1
  346. package/dist/hooks/learned-skills/types.js +0 -8
  347. package/dist/hooks/learned-skills/types.js.map +0 -1
  348. package/dist/hooks/learned-skills/validator.d.ts +0 -15
  349. package/dist/hooks/learned-skills/validator.d.ts.map +0 -1
  350. package/dist/hooks/learned-skills/validator.js +0 -87
  351. package/dist/hooks/learned-skills/validator.js.map +0 -1
  352. package/dist/hooks/learned-skills/writer.d.ts +0 -27
  353. package/dist/hooks/learned-skills/writer.d.ts.map +0 -1
  354. package/dist/hooks/learned-skills/writer.js +0 -126
  355. package/dist/hooks/learned-skills/writer.js.map +0 -1
  356. package/dist/hooks/mnemosyne/config.d.ts +0 -53
  357. package/dist/hooks/mnemosyne/config.d.ts.map +0 -1
  358. package/dist/hooks/mnemosyne/config.js +0 -103
  359. package/dist/hooks/mnemosyne/config.js.map +0 -1
  360. package/dist/hooks/mnemosyne/constants.d.ts +0 -24
  361. package/dist/hooks/mnemosyne/constants.d.ts.map +0 -1
  362. package/dist/hooks/mnemosyne/constants.js +0 -26
  363. package/dist/hooks/mnemosyne/constants.js.map +0 -1
  364. package/dist/hooks/mnemosyne/detection-hook.d.ts +0 -39
  365. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +0 -1
  366. package/dist/hooks/mnemosyne/detection-hook.js +0 -83
  367. package/dist/hooks/mnemosyne/detection-hook.js.map +0 -1
  368. package/dist/hooks/mnemosyne/detector.d.ts +0 -30
  369. package/dist/hooks/mnemosyne/detector.d.ts.map +0 -1
  370. package/dist/hooks/mnemosyne/detector.js +0 -150
  371. package/dist/hooks/mnemosyne/detector.js.map +0 -1
  372. package/dist/hooks/mnemosyne/finder.d.ts +0 -21
  373. package/dist/hooks/mnemosyne/finder.d.ts.map +0 -1
  374. package/dist/hooks/mnemosyne/finder.js +0 -117
  375. package/dist/hooks/mnemosyne/finder.js.map +0 -1
  376. package/dist/hooks/mnemosyne/index.d.ts +0 -62
  377. package/dist/hooks/mnemosyne/index.d.ts.map +0 -1
  378. package/dist/hooks/mnemosyne/index.js +0 -137
  379. package/dist/hooks/mnemosyne/index.js.map +0 -1
  380. package/dist/hooks/mnemosyne/loader.d.ts +0 -20
  381. package/dist/hooks/mnemosyne/loader.d.ts.map +0 -1
  382. package/dist/hooks/mnemosyne/loader.js +0 -113
  383. package/dist/hooks/mnemosyne/loader.js.map +0 -1
  384. package/dist/hooks/mnemosyne/parser.d.ts +0 -21
  385. package/dist/hooks/mnemosyne/parser.d.ts.map +0 -1
  386. package/dist/hooks/mnemosyne/parser.js +0 -190
  387. package/dist/hooks/mnemosyne/parser.js.map +0 -1
  388. package/dist/hooks/mnemosyne/promotion.d.ts +0 -29
  389. package/dist/hooks/mnemosyne/promotion.d.ts.map +0 -1
  390. package/dist/hooks/mnemosyne/promotion.js +0 -87
  391. package/dist/hooks/mnemosyne/promotion.js.map +0 -1
  392. package/dist/hooks/mnemosyne/types.d.ts +0 -109
  393. package/dist/hooks/mnemosyne/types.d.ts.map +0 -1
  394. package/dist/hooks/mnemosyne/types.js +0 -8
  395. package/dist/hooks/mnemosyne/types.js.map +0 -1
  396. package/dist/hooks/mnemosyne/validator.d.ts +0 -15
  397. package/dist/hooks/mnemosyne/validator.d.ts.map +0 -1
  398. package/dist/hooks/mnemosyne/validator.js +0 -87
  399. package/dist/hooks/mnemosyne/validator.js.map +0 -1
  400. package/dist/hooks/mnemosyne/writer.d.ts +0 -27
  401. package/dist/hooks/mnemosyne/writer.d.ts.map +0 -1
  402. package/dist/hooks/mnemosyne/writer.js +0 -126
  403. package/dist/hooks/mnemosyne/writer.js.map +0 -1
  404. package/dist/hooks/ralph-loop/index.d.ts +0 -116
  405. package/dist/hooks/ralph-loop/index.d.ts.map +0 -1
  406. package/dist/hooks/ralph-loop/index.js +0 -322
  407. package/dist/hooks/ralph-loop/index.js.map +0 -1
  408. package/dist/hooks/ralph-prd/index.d.ts +0 -130
  409. package/dist/hooks/ralph-prd/index.d.ts.map +0 -1
  410. package/dist/hooks/ralph-prd/index.js +0 -310
  411. package/dist/hooks/ralph-prd/index.js.map +0 -1
  412. package/dist/hooks/ralph-progress/index.d.ts +0 -102
  413. package/dist/hooks/ralph-progress/index.d.ts.map +0 -1
  414. package/dist/hooks/ralph-progress/index.js +0 -408
  415. package/dist/hooks/ralph-progress/index.js.map +0 -1
  416. package/dist/hooks/ralph-verifier/index.d.ts +0 -72
  417. package/dist/hooks/ralph-verifier/index.d.ts.map +0 -1
  418. package/dist/hooks/ralph-verifier/index.js +0 -223
  419. package/dist/hooks/ralph-verifier/index.js.map +0 -1
  420. package/dist/hooks/session-recovery/constants.d.ts +0 -56
  421. package/dist/hooks/session-recovery/constants.d.ts.map +0 -1
  422. package/dist/hooks/session-recovery/constants.js +0 -78
  423. package/dist/hooks/session-recovery/constants.js.map +0 -1
  424. package/dist/hooks/session-recovery/index.d.ts +0 -53
  425. package/dist/hooks/session-recovery/index.d.ts.map +0 -1
  426. package/dist/hooks/session-recovery/index.js +0 -321
  427. package/dist/hooks/session-recovery/index.js.map +0 -1
  428. package/dist/hooks/session-recovery/storage.d.ts +0 -76
  429. package/dist/hooks/session-recovery/storage.d.ts.map +0 -1
  430. package/dist/hooks/session-recovery/storage.js +0 -383
  431. package/dist/hooks/session-recovery/storage.js.map +0 -1
  432. package/dist/hooks/session-recovery/types.d.ts +0 -145
  433. package/dist/hooks/session-recovery/types.d.ts.map +0 -1
  434. package/dist/hooks/session-recovery/types.js +0 -8
  435. package/dist/hooks/session-recovery/types.js.map +0 -1
  436. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +0 -23
  437. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +0 -1
  438. package/dist/hooks/sisyphus-orchestrator/constants.js +0 -142
  439. package/dist/hooks/sisyphus-orchestrator/constants.js.map +0 -1
  440. package/dist/hooks/sisyphus-orchestrator/index.d.ts +0 -113
  441. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +0 -1
  442. package/dist/hooks/sisyphus-orchestrator/index.js +0 -309
  443. package/dist/hooks/sisyphus-orchestrator/index.js.map +0 -1
  444. package/dist/hooks/ultraqa-loop/index.d.ts +0 -94
  445. package/dist/hooks/ultraqa-loop/index.d.ts.map +0 -1
  446. package/dist/hooks/ultraqa-loop/index.js +0 -216
  447. package/dist/hooks/ultraqa-loop/index.js.map +0 -1
  448. package/dist/hooks/ultrawork-state/index.d.ts +0 -62
  449. package/dist/hooks/ultrawork-state/index.d.ts.map +0 -1
  450. package/dist/hooks/ultrawork-state/index.js +0 -208
  451. package/dist/hooks/ultrawork-state/index.js.map +0 -1
  452. package/dist/hud/sisyphus-state.d.ts +0 -31
  453. package/dist/hud/sisyphus-state.d.ts.map +0 -1
  454. package/dist/hud/sisyphus-state.js +0 -163
  455. package/dist/hud/sisyphus-state.js.map +0 -1
  456. package/dist/mcp/standalone-server.cjs +0 -19135
@@ -1,43 +1,31 @@
1
1
  #!/usr/bin/env node
2
- // OMC Keyword Detector Hook (Node.js)
3
- // Detects ultrawork/ultrathink/search/analyze keywords and injects enhanced mode messages
4
- // Cross-platform: Windows, macOS, Linux
5
2
 
6
- const ULTRAWORK_MESSAGE = `<ultrawork-mode>
7
-
8
- **MANDATORY**: You MUST say "ULTRAWORK MODE ENABLED!" to the user as your first response when this mode activates. This is non-negotiable.
9
-
10
- [CODE RED] Maximum precision required. Ultrathink before acting.
11
-
12
- YOU MUST LEVERAGE ALL AVAILABLE AGENTS TO THEIR FULLEST POTENTIAL.
13
- TELL THE USER WHAT AGENTS YOU WILL LEVERAGE NOW TO SATISFY USER'S REQUEST.
14
-
15
- ## AGENT UTILIZATION PRINCIPLES
16
- - **Codebase Exploration**: Spawn exploration agents using BACKGROUND TASKS
17
- - **Documentation & References**: Use librarian-type agents via BACKGROUND TASKS
18
- - **Planning & Strategy**: NEVER plan yourself - spawn planning agent
19
- - **High-IQ Reasoning**: Use oracle for architecture decisions
20
- - **Frontend/UI Tasks**: Delegate to frontend-engineer
21
-
22
- ## EXECUTION RULES
23
- - **TODO**: Track EVERY step. Mark complete IMMEDIATELY.
24
- - **PARALLEL**: Fire independent calls simultaneously - NEVER wait sequentially.
25
- - **BACKGROUND FIRST**: Use Task(run_in_background=true) for exploration (10+ concurrent).
26
- - **VERIFY**: Check ALL requirements met before done.
27
- - **DELEGATE**: Orchestrate specialized agents.
28
-
29
- ## ZERO TOLERANCE
30
- - NO Scope Reduction - deliver FULL implementation
31
- - NO Partial Completion - finish 100%
32
- - NO Premature Stopping - ALL TODOs must be complete
33
- - NO TEST DELETION - fix code, not tests
34
-
35
- THE USER ASKED FOR X. DELIVER EXACTLY X.
36
-
37
- </ultrawork-mode>
38
-
39
- ---
40
- `;
3
+ /**
4
+ * OMC Keyword Detector Hook (Node.js)
5
+ * Detects magic keywords and invokes skill tools
6
+ * Cross-platform: Windows, macOS, Linux
7
+ *
8
+ * Supported keywords (in priority order):
9
+ * 1. cancelomc/stopomc: Stop active modes
10
+ * 2. ralph: Persistence mode until task completion
11
+ * 3. autopilot: Full autonomous execution
12
+ * 4. ultrapilot: Parallel autopilot
13
+ * 5. ultrawork/ulw: Maximum parallel execution
14
+ * 6. ecomode/eco: Token-efficient execution
15
+ * 7. swarm: N coordinated agents
16
+ * 8. pipeline: Sequential agent chaining
17
+ * 9. ralplan: Iterative planning with consensus
18
+ * 10. plan: Planning interview mode
19
+ * 11. tdd: Test-driven development
20
+ * 12. research: Research orchestration
21
+ * 13. ultrathink/think: Extended reasoning
22
+ * 14. deepsearch: Codebase search (restricted patterns)
23
+ * 15. analyze: Analysis mode (restricted patterns)
24
+ */
25
+
26
+ import { writeFileSync, mkdirSync, existsSync, unlinkSync } from 'fs';
27
+ import { join } from 'path';
28
+ import { homedir } from 'os';
41
29
 
42
30
  const ULTRATHINK_MESSAGE = `<think-mode>
43
31
 
@@ -56,34 +44,6 @@ Use your extended thinking capabilities to provide the most thorough and well-re
56
44
  ---
57
45
  `;
58
46
 
59
- const SEARCH_MESSAGE = `<search-mode>
60
- MAXIMIZE SEARCH EFFORT. Launch multiple background agents IN PARALLEL:
61
- - explore agents (codebase patterns, file structures)
62
- - librarian agents (remote repos, official docs, GitHub examples)
63
- Plus direct tools: Grep, Glob
64
- NEVER stop at first result - be exhaustive.
65
- </search-mode>
66
-
67
- ---
68
- `;
69
-
70
- const ANALYZE_MESSAGE = `<analyze-mode>
71
- ANALYSIS MODE. Gather context before diving deep:
72
-
73
- CONTEXT GATHERING (parallel):
74
- - 1-2 explore agents (codebase patterns, implementations)
75
- - 1-2 librarian agents (if external library involved)
76
- - Direct tools: Grep, Glob, LSP for targeted searches
77
-
78
- IF COMPLEX (architecture, multi-system, debugging after 2+ failures):
79
- - Consult oracle agent for strategic guidance
80
-
81
- SYNTHESIZE findings before proceeding.
82
- </analyze-mode>
83
-
84
- ---
85
- `;
86
-
87
47
  // Read all stdin
88
48
  async function readStdin() {
89
49
  const chunks = [];
@@ -120,12 +80,8 @@ function removeCodeBlocks(text) {
120
80
  .replace(/`[^`]+`/g, '');
121
81
  }
122
82
 
123
- import { writeFileSync, mkdirSync, existsSync } from 'fs';
124
- import { join } from 'path';
125
- import { homedir } from 'os';
126
-
127
- // Create ultrawork state file
128
- function activateUltraworkState(directory, prompt) {
83
+ // Create state file for a mode
84
+ function activateState(directory, prompt, stateName) {
129
85
  const state = {
130
86
  active: true,
131
87
  started_at: new Date().toISOString(),
@@ -133,12 +89,121 @@ function activateUltraworkState(directory, prompt) {
133
89
  reinforcement_count: 0,
134
90
  last_checked_at: new Date().toISOString()
135
91
  };
136
- const localDir = join(directory, '.omc');
137
- if (!existsSync(localDir)) { try { mkdirSync(localDir, { recursive: true }); } catch {} }
138
- try { writeFileSync(join(localDir, 'ultrawork-state.json'), JSON.stringify(state, null, 2)); } catch {}
139
- const globalDir = join(homedir(), '.claude');
140
- if (!existsSync(globalDir)) { try { mkdirSync(globalDir, { recursive: true }); } catch {} }
141
- try { writeFileSync(join(globalDir, 'ultrawork-state.json'), JSON.stringify(state, null, 2)); } catch {}
92
+
93
+ // Write to local .omc/state directory
94
+ const localDir = join(directory, '.omc', 'state');
95
+ if (!existsSync(localDir)) {
96
+ try { mkdirSync(localDir, { recursive: true }); } catch {}
97
+ }
98
+ try { writeFileSync(join(localDir, `${stateName}-state.json`), JSON.stringify(state, null, 2)); } catch {}
99
+
100
+ // Write to global .omc/state directory
101
+ const globalDir = join(homedir(), '.omc', 'state');
102
+ if (!existsSync(globalDir)) {
103
+ try { mkdirSync(globalDir, { recursive: true }); } catch {}
104
+ }
105
+ try { writeFileSync(join(globalDir, `${stateName}-state.json`), JSON.stringify(state, null, 2)); } catch {}
106
+ }
107
+
108
+ /**
109
+ * Clear state files for cancel operation
110
+ */
111
+ function clearStateFiles(directory, modeNames) {
112
+ for (const name of modeNames) {
113
+ const localPath = join(directory, '.omc', 'state', `${name}-state.json`);
114
+ const globalPath = join(homedir(), '.omc', 'state', `${name}-state.json`);
115
+ try { if (existsSync(localPath)) unlinkSync(localPath); } catch {}
116
+ try { if (existsSync(globalPath)) unlinkSync(globalPath); } catch {}
117
+ }
118
+ }
119
+
120
+ /**
121
+ * Create a skill invocation message that tells Claude to use the Skill tool
122
+ */
123
+ function createSkillInvocation(skillName, originalPrompt, args = '') {
124
+ const argsSection = args ? `\nArguments: ${args}` : '';
125
+ return `[MAGIC KEYWORD: ${skillName.toUpperCase()}]
126
+
127
+ You MUST invoke the skill using the Skill tool:
128
+
129
+ Skill: oh-my-claudecode:${skillName}${argsSection}
130
+
131
+ User request:
132
+ ${originalPrompt}
133
+
134
+ IMPORTANT: Invoke the skill IMMEDIATELY. Do not proceed without loading the skill instructions.`;
135
+ }
136
+
137
+ /**
138
+ * Create multi-skill invocation message for combined keywords
139
+ */
140
+ function createMultiSkillInvocation(skills, originalPrompt) {
141
+ if (skills.length === 0) return '';
142
+ if (skills.length === 1) {
143
+ return createSkillInvocation(skills[0].name, originalPrompt, skills[0].args);
144
+ }
145
+
146
+ const skillBlocks = skills.map((s, i) => {
147
+ const argsSection = s.args ? `\nArguments: ${s.args}` : '';
148
+ return `### Skill ${i + 1}: ${s.name.toUpperCase()}
149
+ Skill: oh-my-claudecode:${s.name}${argsSection}`;
150
+ }).join('\n\n');
151
+
152
+ return `[MAGIC KEYWORDS DETECTED: ${skills.map(s => s.name.toUpperCase()).join(', ')}]
153
+
154
+ You MUST invoke ALL of the following skills using the Skill tool, in order:
155
+
156
+ ${skillBlocks}
157
+
158
+ User request:
159
+ ${originalPrompt}
160
+
161
+ IMPORTANT: Invoke ALL skills listed above. Start with the first skill IMMEDIATELY. After it completes, invoke the next skill in order. Do not skip any skill.`;
162
+ }
163
+
164
+ /**
165
+ * Resolve conflicts between detected keywords
166
+ */
167
+ function resolveConflicts(matches) {
168
+ const names = matches.map(m => m.name);
169
+
170
+ // Cancel is exclusive
171
+ if (names.includes('cancel')) {
172
+ return [matches.find(m => m.name === 'cancel')];
173
+ }
174
+
175
+ let resolved = [...matches];
176
+
177
+ // Ecomode beats ultrawork
178
+ if (names.includes('ecomode') && names.includes('ultrawork')) {
179
+ resolved = resolved.filter(m => m.name !== 'ultrawork');
180
+ }
181
+
182
+ // Ultrapilot beats autopilot
183
+ if (names.includes('ultrapilot') && names.includes('autopilot')) {
184
+ resolved = resolved.filter(m => m.name !== 'autopilot');
185
+ }
186
+
187
+ // Sort by priority order
188
+ const priorityOrder = ['cancel','ralph','autopilot','ultrapilot','ultrawork','ecomode',
189
+ 'swarm','pipeline','ralplan','plan','tdd','research','ultrathink','deepsearch','analyze'];
190
+ resolved.sort((a, b) => priorityOrder.indexOf(a.name) - priorityOrder.indexOf(b.name));
191
+
192
+ return resolved;
193
+ }
194
+
195
+ /**
196
+ * Create proper hook output with additionalContext (Claude Code hooks API)
197
+ * The 'message' field is NOT a valid hook output - use hookSpecificOutput.additionalContext
198
+ */
199
+ function createHookOutput(additionalContext) {
200
+ return {
201
+ continue: true,
202
+ hookSpecificOutput: {
203
+ hookEventName: 'UserPromptSubmit',
204
+ additionalContext
205
+ }
206
+ };
142
207
  }
143
208
 
144
209
  // Main
@@ -162,57 +227,154 @@ async function main() {
162
227
 
163
228
  const cleanPrompt = removeCodeBlocks(prompt).toLowerCase();
164
229
 
165
- // Check for ultrawork keywords (highest priority)
166
- if (/\b(ultrawork|ulw|uw)\b/.test(cleanPrompt)) {
167
- activateUltraworkState(directory, prompt);
168
- console.log(JSON.stringify({
169
- continue: true,
170
- hookSpecificOutput: {
171
- hookEventName: 'UserPromptSubmit',
172
- additionalContext: ULTRAWORK_MESSAGE
173
- }
174
- }));
175
- return;
230
+ // Collect all matching keywords
231
+ const matches = [];
232
+
233
+ // Cancel keywords
234
+ if (/\b(cancelomc|stopomc)\b/i.test(cleanPrompt)) {
235
+ matches.push({ name: 'cancel', args: '' });
236
+ }
237
+
238
+ // Ralph keywords
239
+ if (/\b(ralph|don't stop|must complete|until done)\b/i.test(cleanPrompt)) {
240
+ matches.push({ name: 'ralph', args: '' });
241
+ }
242
+
243
+ // Autopilot keywords
244
+ if (/\b(autopilot|auto pilot|auto-pilot|autonomous|full auto|fullsend)\b/i.test(cleanPrompt) ||
245
+ /\bbuild\s+me\s+/i.test(cleanPrompt) ||
246
+ /\bcreate\s+me\s+/i.test(cleanPrompt) ||
247
+ /\bmake\s+me\s+/i.test(cleanPrompt) ||
248
+ /\bi\s+want\s+a\s+/i.test(cleanPrompt) ||
249
+ /\bi\s+want\s+an\s+/i.test(cleanPrompt) ||
250
+ /\bhandle\s+it\s+all\b/i.test(cleanPrompt) ||
251
+ /\bend\s+to\s+end\b/i.test(cleanPrompt) ||
252
+ /\be2e\s+this\b/i.test(cleanPrompt)) {
253
+ matches.push({ name: 'autopilot', args: '' });
254
+ }
255
+
256
+ // Ultrapilot keywords
257
+ if (/\b(ultrapilot|ultra-pilot)\b/i.test(cleanPrompt) ||
258
+ /\bparallel\s+build\b/i.test(cleanPrompt) ||
259
+ /\bswarm\s+build\b/i.test(cleanPrompt)) {
260
+ matches.push({ name: 'ultrapilot', args: '' });
261
+ }
262
+
263
+ // Ultrawork keywords
264
+ if (/\b(ultrawork|ulw|uw)\b/i.test(cleanPrompt)) {
265
+ matches.push({ name: 'ultrawork', args: '' });
266
+ }
267
+
268
+ // Ecomode keywords
269
+ if (/\b(eco|ecomode|eco-mode|efficient|save-tokens|budget)\b/i.test(cleanPrompt)) {
270
+ matches.push({ name: 'ecomode', args: '' });
176
271
  }
177
272
 
178
- // Check for ultrathink/think keywords
179
- if (/\b(ultrathink|think)\b/.test(cleanPrompt)) {
180
- console.log(JSON.stringify({
181
- continue: true,
182
- hookSpecificOutput: {
183
- hookEventName: 'UserPromptSubmit',
184
- additionalContext: ULTRATHINK_MESSAGE
185
- }
186
- }));
273
+ // Swarm - parse N from "swarm N agents"
274
+ const swarmMatch = cleanPrompt.match(/\bswarm\s+(\d+)\s+agents?\b/i);
275
+ if (swarmMatch || /\bcoordinated\s+agents\b/i.test(cleanPrompt)) {
276
+ const agentCount = swarmMatch ? swarmMatch[1] : '3';
277
+ matches.push({ name: 'swarm', args: agentCount });
278
+ }
279
+
280
+ // Pipeline keywords
281
+ if (/\b(pipeline)\b/i.test(cleanPrompt) || /\bchain\s+agents\b/i.test(cleanPrompt)) {
282
+ matches.push({ name: 'pipeline', args: '' });
283
+ }
284
+
285
+ // Ralplan keyword
286
+ if (/\b(ralplan)\b/i.test(cleanPrompt)) {
287
+ matches.push({ name: 'ralplan', args: '' });
288
+ }
289
+
290
+ // Plan keywords
291
+ if (/\b(plan this|plan the)\b/i.test(cleanPrompt)) {
292
+ matches.push({ name: 'plan', args: '' });
293
+ }
294
+
295
+ // TDD keywords
296
+ if (/\b(tdd)\b/i.test(cleanPrompt) ||
297
+ /\btest\s+first\b/i.test(cleanPrompt) ||
298
+ /\bred\s+green\b/i.test(cleanPrompt)) {
299
+ matches.push({ name: 'tdd', args: '' });
300
+ }
301
+
302
+ // Research keywords
303
+ if (/\b(research)\b/i.test(cleanPrompt) ||
304
+ /\banalyze\s+data\b/i.test(cleanPrompt) ||
305
+ /\bstatistics\b/i.test(cleanPrompt)) {
306
+ matches.push({ name: 'research', args: '' });
307
+ }
308
+
309
+ // Ultrathink keywords
310
+ if (/\b(ultrathink|think hard|think deeply)\b/i.test(cleanPrompt)) {
311
+ matches.push({ name: 'ultrathink', args: '' });
312
+ }
313
+
314
+ // Deepsearch keywords
315
+ if (/\b(deepsearch)\b/i.test(cleanPrompt) ||
316
+ /\bsearch\s+(the\s+)?(codebase|code|files?|project)\b/i.test(cleanPrompt) ||
317
+ /\bfind\s+(in\s+)?(codebase|code|all\s+files?)\b/i.test(cleanPrompt)) {
318
+ matches.push({ name: 'deepsearch', args: '' });
319
+ }
320
+
321
+ // Analyze keywords
322
+ if (/\b(deep\s*analyze)\b/i.test(cleanPrompt) ||
323
+ /\binvestigate\s+(the|this|why)\b/i.test(cleanPrompt) ||
324
+ /\bdebug\s+(the|this|why)\b/i.test(cleanPrompt)) {
325
+ matches.push({ name: 'analyze', args: '' });
326
+ }
327
+
328
+ // No matches - pass through
329
+ if (matches.length === 0) {
330
+ console.log(JSON.stringify({ continue: true }));
187
331
  return;
188
332
  }
189
333
 
190
- // Check for search keywords
191
- if (/\b(search|find|locate|lookup|explore|discover|scan|grep|query|browse|detect|trace|seek|track|pinpoint|hunt)\b|where\s+is|show\s+me|list\s+all/.test(cleanPrompt)) {
192
- console.log(JSON.stringify({
193
- continue: true,
194
- hookSpecificOutput: {
195
- hookEventName: 'UserPromptSubmit',
196
- additionalContext: SEARCH_MESSAGE
197
- }
198
- }));
334
+ // Resolve conflicts
335
+ const resolved = resolveConflicts(matches);
336
+
337
+ // Handle cancel specially - clear states and emit
338
+ if (resolved.length > 0 && resolved[0].name === 'cancel') {
339
+ clearStateFiles(directory, ['ralph', 'autopilot', 'ultrapilot', 'ultrawork', 'ecomode', 'swarm', 'pipeline']);
340
+ console.log(JSON.stringify(createHookOutput(createSkillInvocation('cancel', prompt))));
199
341
  return;
200
342
  }
201
343
 
202
- // Check for analyze keywords
203
- if (/\b(analyze|analyse|investigate|examine|research|study|deep.?dive|inspect|audit|evaluate|assess|review|diagnose|scrutinize|dissect|debug|comprehend|interpret|breakdown|understand)\b|why\s+is|how\s+does|how\s+to/.test(cleanPrompt)) {
204
- console.log(JSON.stringify({
205
- continue: true,
206
- hookSpecificOutput: {
207
- hookEventName: 'UserPromptSubmit',
208
- additionalContext: ANALYZE_MESSAGE
209
- }
210
- }));
344
+ // Activate states for modes that need them
345
+ const stateModes = resolved.filter(m => ['ralph', 'autopilot', 'ultrapilot', 'ultrawork', 'ecomode'].includes(m.name));
346
+ for (const mode of stateModes) {
347
+ activateState(directory, prompt, mode.name);
348
+ }
349
+
350
+ // Special: Ralph with ultrawork (only if ecomode NOT present)
351
+ const hasRalph = resolved.some(m => m.name === 'ralph');
352
+ const hasEcomode = resolved.some(m => m.name === 'ecomode');
353
+ const hasUltrawork = resolved.some(m => m.name === 'ultrawork');
354
+ if (hasRalph && !hasEcomode && !hasUltrawork) {
355
+ activateState(directory, prompt, 'ultrawork');
356
+ }
357
+
358
+ // Handle ultrathink specially - prepend message instead of skill invocation
359
+ const ultrathinkIndex = resolved.findIndex(m => m.name === 'ultrathink');
360
+ if (ultrathinkIndex !== -1) {
361
+ // Remove ultrathink from skill list
362
+ resolved.splice(ultrathinkIndex, 1);
363
+
364
+ // If ultrathink was the only match, emit message
365
+ if (resolved.length === 0) {
366
+ console.log(JSON.stringify(createHookOutput(ULTRATHINK_MESSAGE)));
367
+ return;
368
+ }
369
+
370
+ // Otherwise, prepend ultrathink message to skill invocation
371
+ const skillMessage = createMultiSkillInvocation(resolved, prompt);
372
+ console.log(JSON.stringify(createHookOutput(ULTRATHINK_MESSAGE + skillMessage)));
211
373
  return;
212
374
  }
213
375
 
214
- // No keywords detected
215
- console.log(JSON.stringify({ continue: true }));
376
+ // Emit skill invocation(s)
377
+ console.log(JSON.stringify(createHookOutput(createMultiSkillInvocation(resolved, prompt))));
216
378
  } catch (error) {
217
379
  // On any error, allow continuation
218
380
  console.log(JSON.stringify({ continue: true }));
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=analytics-summary.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analytics-summary.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/analytics/analytics-summary.test.ts"],"names":[],"mappings":""}