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,150 +0,0 @@
1
- /**
2
- * Extractable Moment Detector
3
- *
4
- * Detects patterns in conversation that indicate a skill could be extracted.
5
- */
6
- /**
7
- * Patterns that indicate a skill might be extractable.
8
- */
9
- const DETECTION_PATTERNS = [
10
- // Problem-Solution patterns
11
- {
12
- type: 'problem-solution',
13
- patterns: [
14
- /the (?:issue|problem|bug|error) was (?:caused by|due to|because)/i,
15
- /(?:fixed|resolved|solved) (?:the|this) (?:by|with|using)/i,
16
- /the (?:solution|fix|answer) (?:is|was) to/i,
17
- /(?:here's|here is) (?:how|what) (?:to|you need to)/i,
18
- ],
19
- confidence: 80,
20
- },
21
- // Technique patterns
22
- {
23
- type: 'technique',
24
- patterns: [
25
- /(?:a|the) (?:better|good|proper|correct) (?:way|approach|method) (?:is|to)/i,
26
- /(?:you should|we should|it's better to) (?:always|never|usually)/i,
27
- /(?:the trick|the key|the secret) (?:is|here is)/i,
28
- ],
29
- confidence: 70,
30
- },
31
- // Workaround patterns
32
- {
33
- type: 'workaround',
34
- patterns: [
35
- /(?:as a|for a) workaround/i,
36
- /(?:temporarily|for now|until).*(?:you can|we can)/i,
37
- /(?:hack|trick) (?:to|for|that)/i,
38
- ],
39
- confidence: 60,
40
- },
41
- // Optimization patterns
42
- {
43
- type: 'optimization',
44
- patterns: [
45
- /(?:to|for) (?:better|improved|faster) performance/i,
46
- /(?:optimize|optimizing|optimization) (?:by|with|using)/i,
47
- /(?:more efficient|efficiently) (?:by|to|if)/i,
48
- ],
49
- confidence: 65,
50
- },
51
- // Best practice patterns
52
- {
53
- type: 'best-practice',
54
- patterns: [
55
- /(?:best practice|best practices) (?:is|are|include)/i,
56
- /(?:recommended|standard|common) (?:approach|pattern|practice)/i,
57
- /(?:you should always|always make sure to)/i,
58
- ],
59
- confidence: 75,
60
- },
61
- ];
62
- /**
63
- * Keywords that often appear in extractable content.
64
- */
65
- const TRIGGER_KEYWORDS = [
66
- // Technical domains
67
- 'react', 'typescript', 'javascript', 'python', 'rust', 'go', 'node',
68
- 'api', 'database', 'sql', 'graphql', 'rest', 'authentication', 'authorization',
69
- 'testing', 'debugging', 'deployment', 'docker', 'kubernetes', 'ci/cd',
70
- 'git', 'webpack', 'vite', 'eslint', 'prettier',
71
- // Actions
72
- 'error handling', 'state management', 'performance', 'optimization',
73
- 'refactoring', 'migration', 'integration', 'configuration',
74
- // Patterns
75
- 'pattern', 'architecture', 'design', 'structure', 'convention',
76
- ];
77
- /**
78
- * Detect if a message contains an extractable skill moment.
79
- */
80
- export function detectExtractableMoment(assistantMessage, userMessage) {
81
- const combined = `${userMessage || ''} ${assistantMessage}`.toLowerCase();
82
- let bestMatch = null;
83
- // Check against detection patterns
84
- for (const patternGroup of DETECTION_PATTERNS) {
85
- for (const pattern of patternGroup.patterns) {
86
- if (pattern.test(assistantMessage)) {
87
- if (!bestMatch || patternGroup.confidence > bestMatch.confidence) {
88
- bestMatch = {
89
- type: patternGroup.type,
90
- confidence: patternGroup.confidence,
91
- reason: `Detected ${patternGroup.type} pattern`,
92
- };
93
- }
94
- }
95
- }
96
- }
97
- if (!bestMatch) {
98
- return {
99
- detected: false,
100
- confidence: 0,
101
- patternType: 'problem-solution',
102
- suggestedTriggers: [],
103
- reason: 'No extractable pattern detected',
104
- };
105
- }
106
- // Extract potential trigger keywords
107
- const suggestedTriggers = [];
108
- for (const keyword of TRIGGER_KEYWORDS) {
109
- if (combined.includes(keyword.toLowerCase())) {
110
- suggestedTriggers.push(keyword);
111
- }
112
- }
113
- // Boost confidence if multiple triggers found
114
- const triggerBoost = Math.min(suggestedTriggers.length * 5, 15);
115
- const finalConfidence = Math.min(bestMatch.confidence + triggerBoost, 100);
116
- return {
117
- detected: true,
118
- confidence: finalConfidence,
119
- patternType: bestMatch.type,
120
- suggestedTriggers: suggestedTriggers.slice(0, 5), // Max 5 triggers
121
- reason: bestMatch.reason,
122
- };
123
- }
124
- /**
125
- * Check if detection confidence meets threshold for prompting.
126
- */
127
- export function shouldPromptExtraction(detection, threshold = 60) {
128
- return detection.detected && detection.confidence >= threshold;
129
- }
130
- /**
131
- * Generate a prompt for skill extraction confirmation.
132
- */
133
- export function generateExtractionPrompt(detection) {
134
- const typeDescriptions = {
135
- 'problem-solution': 'a problem and its solution',
136
- 'technique': 'a useful technique',
137
- 'workaround': 'a workaround for a limitation',
138
- 'optimization': 'an optimization approach',
139
- 'best-practice': 'a best practice',
140
- };
141
- return `
142
- I noticed this conversation contains ${typeDescriptions[detection.patternType]} that might be worth saving as a reusable skill.
143
-
144
- **Confidence:** ${detection.confidence}%
145
- **Suggested triggers:** ${detection.suggestedTriggers.join(', ') || 'None detected'}
146
-
147
- Would you like me to extract this as a learned skill? Type \`/mnemosyne\` to save it, or continue with your current task.
148
- `.trim();
149
- }
150
- //# sourceMappingURL=detector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../../src/hooks/mnemosyne/detector.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Skill Finder
3
- *
4
- * Discovers skill files using hybrid search (user + project).
5
- * Project skills override user skills with same ID.
6
- */
7
- import type { SkillFileCandidate } from './types.js';
8
- /**
9
- * Find all skill files for a given project.
10
- * Returns project skills first (higher priority), then user skills.
11
- */
12
- export declare function findSkillFiles(projectRoot: string | null): SkillFileCandidate[];
13
- /**
14
- * Get skills directory path for a scope.
15
- */
16
- export declare function getSkillsDir(scope: 'user' | 'project', projectRoot?: string): string;
17
- /**
18
- * Ensure skills directory exists.
19
- */
20
- export declare function ensureSkillsDir(scope: 'user' | 'project', projectRoot?: string): boolean;
21
- //# sourceMappingURL=finder.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"finder.d.ts","sourceRoot":"","sources":["../../../src/hooks/mnemosyne/finder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAsCrD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,EAAE,CAwC/E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAQpF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAgBxF"}
@@ -1,117 +0,0 @@
1
- /**
2
- * Skill Finder
3
- *
4
- * Discovers skill files using hybrid search (user + project).
5
- * Project skills override user skills with same ID.
6
- */
7
- import { existsSync, readdirSync, realpathSync, mkdirSync } from 'fs';
8
- import { join } from 'path';
9
- import { USER_SKILLS_DIR, PROJECT_SKILLS_SUBDIR, SKILL_EXTENSION, DEBUG_ENABLED } from './constants.js';
10
- /**
11
- * Recursively find all skill files in a directory.
12
- */
13
- function findSkillFilesRecursive(dir, results) {
14
- if (!existsSync(dir))
15
- return;
16
- try {
17
- const entries = readdirSync(dir, { withFileTypes: true });
18
- for (const entry of entries) {
19
- const fullPath = join(dir, entry.name);
20
- if (entry.isDirectory()) {
21
- findSkillFilesRecursive(fullPath, results);
22
- }
23
- else if (entry.isFile() && entry.name.endsWith(SKILL_EXTENSION)) {
24
- results.push(fullPath);
25
- }
26
- }
27
- }
28
- catch (error) {
29
- // Permission denied or other errors - silently skip
30
- if (DEBUG_ENABLED) {
31
- console.error('[mnemosyne] Error scanning directory:', error);
32
- }
33
- }
34
- }
35
- /**
36
- * Resolve symlinks safely with fallback.
37
- */
38
- function safeRealpathSync(filePath) {
39
- try {
40
- return realpathSync(filePath);
41
- }
42
- catch {
43
- return filePath;
44
- }
45
- }
46
- /**
47
- * Find all skill files for a given project.
48
- * Returns project skills first (higher priority), then user skills.
49
- */
50
- export function findSkillFiles(projectRoot) {
51
- const candidates = [];
52
- const seenRealPaths = new Set();
53
- // 1. Search project-level skills (higher priority)
54
- if (projectRoot) {
55
- const projectSkillsDir = join(projectRoot, PROJECT_SKILLS_SUBDIR);
56
- const projectFiles = [];
57
- findSkillFilesRecursive(projectSkillsDir, projectFiles);
58
- for (const filePath of projectFiles) {
59
- const realPath = safeRealpathSync(filePath);
60
- if (seenRealPaths.has(realPath))
61
- continue;
62
- seenRealPaths.add(realPath);
63
- candidates.push({
64
- path: filePath,
65
- realPath,
66
- scope: 'project',
67
- });
68
- }
69
- }
70
- // 2. Search user-level skills (lower priority)
71
- const userFiles = [];
72
- findSkillFilesRecursive(USER_SKILLS_DIR, userFiles);
73
- for (const filePath of userFiles) {
74
- const realPath = safeRealpathSync(filePath);
75
- if (seenRealPaths.has(realPath))
76
- continue;
77
- seenRealPaths.add(realPath);
78
- candidates.push({
79
- path: filePath,
80
- realPath,
81
- scope: 'user',
82
- });
83
- }
84
- return candidates;
85
- }
86
- /**
87
- * Get skills directory path for a scope.
88
- */
89
- export function getSkillsDir(scope, projectRoot) {
90
- if (scope === 'user') {
91
- return USER_SKILLS_DIR;
92
- }
93
- if (!projectRoot) {
94
- throw new Error('Project root required for project scope');
95
- }
96
- return join(projectRoot, PROJECT_SKILLS_SUBDIR);
97
- }
98
- /**
99
- * Ensure skills directory exists.
100
- */
101
- export function ensureSkillsDir(scope, projectRoot) {
102
- const dir = getSkillsDir(scope, projectRoot);
103
- if (existsSync(dir)) {
104
- return true;
105
- }
106
- try {
107
- mkdirSync(dir, { recursive: true });
108
- return true;
109
- }
110
- catch (error) {
111
- if (DEBUG_ENABLED) {
112
- console.error('[mnemosyne] Error creating skills directory:', error);
113
- }
114
- return false;
115
- }
116
- }
117
- //# sourceMappingURL=finder.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"finder.js","sourceRoot":"","sources":["../../../src/hooks/mnemosyne/finder.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- /**
2
- * Learned Skills Hook
3
- *
4
- * Automatically injects relevant learned skills into context
5
- * based on message content triggers.
6
- */
7
- import type { LearnedSkill } from './types.js';
8
- export * from './types.js';
9
- export * from './constants.js';
10
- export * from './finder.js';
11
- export * from './parser.js';
12
- export * from './loader.js';
13
- export * from './validator.js';
14
- export * from './writer.js';
15
- export * from './detector.js';
16
- export * from './detection-hook.js';
17
- export * from './promotion.js';
18
- export * from './config.js';
19
- /**
20
- * Check if feature is enabled.
21
- */
22
- export declare function isMnemosyneEnabled(): boolean;
23
- /**
24
- * Process a user message and inject matching skills.
25
- */
26
- export declare function processMessageForSkills(message: string, sessionId: string, projectRoot: string | null): {
27
- injected: number;
28
- skills: LearnedSkill[];
29
- };
30
- /**
31
- * Clear session cache.
32
- */
33
- export declare function clearSkillSession(sessionId: string): void;
34
- /**
35
- * Get all loaded skills (for debugging/display).
36
- */
37
- export declare function getAllSkills(projectRoot: string | null): LearnedSkill[];
38
- /**
39
- * Create the learned skills hook for Claude Code.
40
- */
41
- export declare function createLearnedSkillsHook(projectRoot: string | null): {
42
- /**
43
- * Process user message for skill injection.
44
- */
45
- processMessage: (message: string, sessionId: string) => {
46
- injected: number;
47
- skills: LearnedSkill[];
48
- };
49
- /**
50
- * Clear session when done.
51
- */
52
- clearSession: (sessionId: string) => void;
53
- /**
54
- * Get all skills for display.
55
- */
56
- getAllSkills: () => LearnedSkill[];
57
- /**
58
- * Check if feature enabled.
59
- */
60
- isEnabled: typeof isMnemosyneEnabled;
61
- };
62
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/mnemosyne/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG/C,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAO5B;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAkCD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAsC9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,EAAE,CAEvE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAE9D;;OAEG;8BACuB,MAAM,aAAa,MAAM;kBA9DxC,MAAM;gBAAU,YAAY,EAAE;;IAkEzC;;OAEG;8BACuB,MAAM;IAIhC;;OAEG;;IAGH;;OAEG;;EAGN"}
@@ -1,137 +0,0 @@
1
- /**
2
- * Learned Skills Hook
3
- *
4
- * Automatically injects relevant learned skills into context
5
- * based on message content triggers.
6
- */
7
- import { contextCollector } from '../../features/context-injector/index.js';
8
- import { loadAllSkills, findMatchingSkills } from './loader.js';
9
- import { MAX_SKILLS_PER_SESSION } from './constants.js';
10
- import { loadConfig } from './config.js';
11
- // Re-export submodules
12
- export * from './types.js';
13
- export * from './constants.js';
14
- export * from './finder.js';
15
- export * from './parser.js';
16
- export * from './loader.js';
17
- export * from './validator.js';
18
- export * from './writer.js';
19
- export * from './detector.js';
20
- export * from './detection-hook.js';
21
- export * from './promotion.js';
22
- export * from './config.js';
23
- /**
24
- * Session cache for tracking injected skills.
25
- */
26
- const sessionCaches = new Map();
27
- /**
28
- * Check if feature is enabled.
29
- */
30
- export function isMnemosyneEnabled() {
31
- return loadConfig().enabled;
32
- }
33
- /**
34
- * Format skills for context injection.
35
- */
36
- function formatSkillsForContext(skills) {
37
- if (skills.length === 0)
38
- return '';
39
- const lines = [
40
- '<mnemosyne>',
41
- '',
42
- '## Relevant Learned Skills',
43
- '',
44
- 'The following skills have been learned from previous sessions and may be helpful:',
45
- '',
46
- ];
47
- for (const skill of skills) {
48
- lines.push(`### ${skill.metadata.name}`);
49
- lines.push(`**Triggers:** ${skill.metadata.triggers.join(', ')}`);
50
- if (skill.metadata.tags && skill.metadata.tags.length > 0) {
51
- lines.push(`**Tags:** ${skill.metadata.tags.join(', ')}`);
52
- }
53
- lines.push('');
54
- lines.push(skill.content);
55
- lines.push('');
56
- lines.push('---');
57
- lines.push('');
58
- }
59
- lines.push('</mnemosyne>');
60
- return lines.join('\n');
61
- }
62
- /**
63
- * Process a user message and inject matching skills.
64
- */
65
- export function processMessageForSkills(message, sessionId, projectRoot) {
66
- if (!isMnemosyneEnabled()) {
67
- return { injected: 0, skills: [] };
68
- }
69
- // Get or create session cache
70
- if (!sessionCaches.has(sessionId)) {
71
- sessionCaches.set(sessionId, new Set());
72
- }
73
- const injectedHashes = sessionCaches.get(sessionId);
74
- // Find matching skills not already injected
75
- const matchingSkills = findMatchingSkills(message, projectRoot, MAX_SKILLS_PER_SESSION);
76
- const newSkills = matchingSkills.filter(s => !injectedHashes.has(s.contentHash));
77
- if (newSkills.length === 0) {
78
- return { injected: 0, skills: [] };
79
- }
80
- // Mark as injected
81
- for (const skill of newSkills) {
82
- injectedHashes.add(skill.contentHash);
83
- }
84
- // Register with context collector
85
- const content = formatSkillsForContext(newSkills);
86
- contextCollector.register(sessionId, {
87
- id: 'mnemosyne',
88
- source: 'mnemosyne',
89
- content,
90
- priority: 'normal',
91
- metadata: {
92
- skillCount: newSkills.length,
93
- skillIds: newSkills.map(s => s.metadata.id),
94
- },
95
- });
96
- return { injected: newSkills.length, skills: newSkills };
97
- }
98
- /**
99
- * Clear session cache.
100
- */
101
- export function clearSkillSession(sessionId) {
102
- sessionCaches.delete(sessionId);
103
- }
104
- /**
105
- * Get all loaded skills (for debugging/display).
106
- */
107
- export function getAllSkills(projectRoot) {
108
- return loadAllSkills(projectRoot);
109
- }
110
- /**
111
- * Create the learned skills hook for Claude Code.
112
- */
113
- export function createLearnedSkillsHook(projectRoot) {
114
- return {
115
- /**
116
- * Process user message for skill injection.
117
- */
118
- processMessage: (message, sessionId) => {
119
- return processMessageForSkills(message, sessionId, projectRoot);
120
- },
121
- /**
122
- * Clear session when done.
123
- */
124
- clearSession: (sessionId) => {
125
- clearSkillSession(sessionId);
126
- },
127
- /**
128
- * Get all skills for display.
129
- */
130
- getAllSkills: () => getAllSkills(projectRoot),
131
- /**
132
- * Check if feature enabled.
133
- */
134
- isEnabled: isMnemosyneEnabled,
135
- };
136
- }
137
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/mnemosyne/index.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Skill Loader
3
- *
4
- * Loads and caches skills from disk.
5
- */
6
- import type { LearnedSkill } from './types.js';
7
- /**
8
- * Load all skills for a project.
9
- * Project skills override user skills with same ID.
10
- */
11
- export declare function loadAllSkills(projectRoot: string | null): LearnedSkill[];
12
- /**
13
- * Load a specific skill by ID.
14
- */
15
- export declare function loadSkillById(skillId: string, projectRoot: string | null): LearnedSkill | null;
16
- /**
17
- * Find skills matching keywords in user message.
18
- */
19
- export declare function findMatchingSkills(message: string, projectRoot: string | null, limit?: number): LearnedSkill[];
20
- //# sourceMappingURL=loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/hooks/mnemosyne/loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,YAAY,CAAC;AAS9D;;;GAGG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,EAAE,CA4CxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,CAG9F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,KAAK,GAAE,MAAU,GAChB,YAAY,EAAE,CA+ChB"}
@@ -1,113 +0,0 @@
1
- /**
2
- * Skill Loader
3
- *
4
- * Loads and caches skills from disk.
5
- */
6
- import { readFileSync } from 'fs';
7
- import { createHash } from 'crypto';
8
- import { relative } from 'path';
9
- import { findSkillFiles, getSkillsDir } from './finder.js';
10
- import { parseSkillFile } from './parser.js';
11
- import { DEBUG_ENABLED } from './constants.js';
12
- /**
13
- * Create SHA-256 hash of content.
14
- */
15
- function createContentHash(content) {
16
- return createHash('sha256').update(content).digest('hex').slice(0, 16);
17
- }
18
- /**
19
- * Load all skills for a project.
20
- * Project skills override user skills with same ID.
21
- */
22
- export function loadAllSkills(projectRoot) {
23
- const candidates = findSkillFiles(projectRoot);
24
- const seenIds = new Map();
25
- for (const candidate of candidates) {
26
- try {
27
- const rawContent = readFileSync(candidate.path, 'utf-8');
28
- const { metadata, content, valid, errors } = parseSkillFile(rawContent);
29
- if (!valid) {
30
- if (DEBUG_ENABLED) {
31
- console.warn(`Invalid skill file ${candidate.path}: ${errors.join(', ')}`);
32
- }
33
- continue;
34
- }
35
- const skillId = metadata.id;
36
- const skillsDir = getSkillsDir(candidate.scope, projectRoot || undefined);
37
- const relativePath = relative(skillsDir, candidate.path);
38
- const skill = {
39
- path: candidate.path,
40
- relativePath,
41
- scope: candidate.scope,
42
- metadata: metadata,
43
- content,
44
- contentHash: createContentHash(content),
45
- priority: candidate.scope === 'project' ? 1 : 0,
46
- };
47
- // Project skills override user skills with same ID
48
- const existing = seenIds.get(skillId);
49
- if (!existing || skill.priority > existing.priority) {
50
- seenIds.set(skillId, skill);
51
- }
52
- }
53
- catch (e) {
54
- if (DEBUG_ENABLED) {
55
- console.warn(`Error loading skill ${candidate.path}:`, e);
56
- }
57
- }
58
- }
59
- // Return skills sorted by priority (project first)
60
- return Array.from(seenIds.values()).sort((a, b) => b.priority - a.priority);
61
- }
62
- /**
63
- * Load a specific skill by ID.
64
- */
65
- export function loadSkillById(skillId, projectRoot) {
66
- const skills = loadAllSkills(projectRoot);
67
- return skills.find(s => s.metadata.id === skillId) || null;
68
- }
69
- /**
70
- * Find skills matching keywords in user message.
71
- */
72
- export function findMatchingSkills(message, projectRoot, limit = 5) {
73
- const skills = loadAllSkills(projectRoot);
74
- const messageLower = message.toLowerCase();
75
- const scored = skills.map(skill => {
76
- let score = 0;
77
- let hasMatch = false;
78
- // Check trigger matches
79
- for (const trigger of skill.metadata.triggers) {
80
- if (messageLower.includes(trigger.toLowerCase())) {
81
- score += 10;
82
- hasMatch = true;
83
- }
84
- }
85
- // Check tag matches
86
- if (skill.metadata.tags) {
87
- for (const tag of skill.metadata.tags) {
88
- if (messageLower.includes(tag.toLowerCase())) {
89
- score += 5;
90
- hasMatch = true;
91
- }
92
- }
93
- }
94
- // Only apply quality/usage boosts if there was a trigger or tag match
95
- if (hasMatch) {
96
- // Boost by quality score
97
- if (skill.metadata.quality) {
98
- score += skill.metadata.quality / 20;
99
- }
100
- // Boost by usage count
101
- if (skill.metadata.usageCount) {
102
- score += Math.min(skill.metadata.usageCount, 10);
103
- }
104
- }
105
- return { skill, score };
106
- });
107
- return scored
108
- .filter(s => s.score > 0)
109
- .sort((a, b) => b.score - a.score)
110
- .slice(0, limit)
111
- .map(s => s.skill);
112
- }
113
- //# sourceMappingURL=loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/hooks/mnemosyne/loader.ts"],"names":[],"mappings":"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"}