oh-my-claude-sisyphus 3.7.6 → 3.7.8

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 (421) hide show
  1. package/agents/AGENTS.md +144 -0
  2. package/dist/__tests__/analytics/analytics-summary.test.d.ts +2 -0
  3. package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +1 -0
  4. package/dist/__tests__/analytics/analytics-summary.test.js +267 -0
  5. package/dist/__tests__/analytics/analytics-summary.test.js.map +1 -0
  6. package/dist/__tests__/analytics/cost-estimator.test.d.ts +2 -0
  7. package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +1 -0
  8. package/dist/__tests__/analytics/cost-estimator.test.js +212 -0
  9. package/dist/__tests__/analytics/cost-estimator.test.js.map +1 -0
  10. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +7 -0
  11. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +1 -0
  12. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +374 -0
  13. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +1 -0
  14. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +2 -0
  15. package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +1 -0
  16. package/dist/__tests__/hud/auto-tracking.integration.test.js +12 -0
  17. package/dist/__tests__/hud/auto-tracking.integration.test.js.map +1 -0
  18. package/dist/__tests__/learned-skills/config.test.d.ts +2 -0
  19. package/dist/__tests__/learned-skills/config.test.d.ts.map +1 -0
  20. package/dist/__tests__/learned-skills/config.test.js +37 -0
  21. package/dist/__tests__/learned-skills/config.test.js.map +1 -0
  22. package/dist/__tests__/learned-skills/detector.test.d.ts +2 -0
  23. package/dist/__tests__/learned-skills/detector.test.d.ts.map +1 -0
  24. package/dist/__tests__/learned-skills/detector.test.js +99 -0
  25. package/dist/__tests__/learned-skills/detector.test.js.map +1 -0
  26. package/dist/__tests__/learned-skills/finder.test.d.ts +2 -0
  27. package/dist/__tests__/learned-skills/finder.test.d.ts.map +1 -0
  28. package/dist/__tests__/learned-skills/finder.test.js +59 -0
  29. package/dist/__tests__/learned-skills/finder.test.js.map +1 -0
  30. package/dist/__tests__/learned-skills/loader.test.d.ts +2 -0
  31. package/dist/__tests__/learned-skills/loader.test.d.ts.map +1 -0
  32. package/dist/__tests__/learned-skills/loader.test.js +69 -0
  33. package/dist/__tests__/learned-skills/loader.test.js.map +1 -0
  34. package/dist/__tests__/learned-skills/parser.test.d.ts +2 -0
  35. package/dist/__tests__/learned-skills/parser.test.d.ts.map +1 -0
  36. package/dist/__tests__/learned-skills/parser.test.js +81 -0
  37. package/dist/__tests__/learned-skills/parser.test.js.map +1 -0
  38. package/dist/__tests__/learned-skills/validator.test.d.ts +2 -0
  39. package/dist/__tests__/learned-skills/validator.test.d.ts.map +1 -0
  40. package/dist/__tests__/learned-skills/validator.test.js +85 -0
  41. package/dist/__tests__/learned-skills/validator.test.js.map +1 -0
  42. package/dist/__tests__/omc-tools-server.test.d.ts +2 -0
  43. package/dist/__tests__/omc-tools-server.test.d.ts.map +1 -0
  44. package/dist/__tests__/omc-tools-server.test.js +52 -0
  45. package/dist/__tests__/omc-tools-server.test.js.map +1 -0
  46. package/dist/agents/architect.js +1 -1
  47. package/dist/agents/architect.js.map +1 -1
  48. package/dist/agents/codex-agents.d.ts +20 -0
  49. package/dist/agents/codex-agents.d.ts.map +1 -0
  50. package/dist/agents/codex-agents.js +36 -0
  51. package/dist/agents/codex-agents.js.map +1 -0
  52. package/dist/agents/definitions.js +13 -13
  53. package/dist/agents/definitions.js.map +1 -1
  54. package/dist/agents/document-writer.d.ts +11 -0
  55. package/dist/agents/document-writer.d.ts.map +1 -0
  56. package/dist/agents/document-writer.js +209 -0
  57. package/dist/agents/document-writer.js.map +1 -0
  58. package/dist/agents/executor.js +1 -1
  59. package/dist/agents/executor.js.map +1 -1
  60. package/dist/agents/explore.js +1 -1
  61. package/dist/agents/explore.js.map +1 -1
  62. package/dist/agents/frontend-engineer.d.ts +11 -0
  63. package/dist/agents/frontend-engineer.d.ts.map +1 -0
  64. package/dist/agents/frontend-engineer.js +115 -0
  65. package/dist/agents/frontend-engineer.js.map +1 -0
  66. package/dist/agents/librarian.d.ts +12 -0
  67. package/dist/agents/librarian.d.ts.map +1 -0
  68. package/dist/agents/librarian.js +103 -0
  69. package/dist/agents/librarian.js.map +1 -0
  70. package/dist/agents/metis.d.ts +12 -0
  71. package/dist/agents/metis.d.ts.map +1 -0
  72. package/dist/agents/metis.js +117 -0
  73. package/dist/agents/metis.js.map +1 -0
  74. package/dist/agents/momus.d.ts +12 -0
  75. package/dist/agents/momus.d.ts.map +1 -0
  76. package/dist/agents/momus.js +128 -0
  77. package/dist/agents/momus.js.map +1 -0
  78. package/dist/agents/multimodal-looker.d.ts +11 -0
  79. package/dist/agents/multimodal-looker.d.ts.map +1 -0
  80. package/dist/agents/multimodal-looker.js +70 -0
  81. package/dist/agents/multimodal-looker.js.map +1 -0
  82. package/dist/agents/oracle.d.ts +13 -0
  83. package/dist/agents/oracle.d.ts.map +1 -0
  84. package/dist/agents/oracle.js +191 -0
  85. package/dist/agents/oracle.js.map +1 -0
  86. package/dist/agents/orchestrator-sisyphus.d.ts +11 -0
  87. package/dist/agents/orchestrator-sisyphus.d.ts.map +1 -0
  88. package/dist/agents/orchestrator-sisyphus.js +115 -0
  89. package/dist/agents/orchestrator-sisyphus.js.map +1 -0
  90. package/dist/agents/prometheus.d.ts +12 -0
  91. package/dist/agents/prometheus.d.ts.map +1 -0
  92. package/dist/agents/prometheus.js +195 -0
  93. package/dist/agents/prometheus.js.map +1 -0
  94. package/dist/agents/qa-tester.js +1 -1
  95. package/dist/agents/qa-tester.js.map +1 -1
  96. package/dist/agents/sisyphus-junior.d.ts +12 -0
  97. package/dist/agents/sisyphus-junior.d.ts.map +1 -0
  98. package/dist/agents/sisyphus-junior.js +93 -0
  99. package/dist/agents/sisyphus-junior.js.map +1 -0
  100. package/dist/cli/analytics.js +0 -0
  101. package/dist/cli/components/CostDashboard.d.ts +15 -0
  102. package/dist/cli/components/CostDashboard.d.ts.map +1 -0
  103. package/dist/cli/components/CostDashboard.js +15 -0
  104. package/dist/cli/components/CostDashboard.js.map +1 -0
  105. package/dist/cli/components/LiveStats.d.ts +16 -0
  106. package/dist/cli/components/LiveStats.d.ts.map +1 -0
  107. package/dist/cli/components/LiveStats.js +16 -0
  108. package/dist/cli/components/LiveStats.js.map +1 -0
  109. package/dist/cli/components/SessionBrowser.d.ts +14 -0
  110. package/dist/cli/components/SessionBrowser.d.ts.map +1 -0
  111. package/dist/cli/components/SessionBrowser.js +14 -0
  112. package/dist/cli/components/SessionBrowser.js.map +1 -0
  113. package/dist/cli/index.js +0 -0
  114. package/dist/cli/tui.d.ts +21 -0
  115. package/dist/cli/tui.d.ts.map +1 -0
  116. package/dist/cli/tui.js +21 -0
  117. package/dist/cli/tui.js.map +1 -0
  118. package/dist/hooks/autopilot/signals.d.ts +20 -0
  119. package/dist/hooks/autopilot/signals.d.ts.map +1 -0
  120. package/dist/hooks/autopilot/signals.js +75 -0
  121. package/dist/hooks/autopilot/signals.js.map +1 -0
  122. package/dist/hooks/autopilot/summary.d.ts +27 -0
  123. package/dist/hooks/autopilot/summary.d.ts.map +1 -0
  124. package/dist/hooks/autopilot/summary.js +160 -0
  125. package/dist/hooks/autopilot/summary.js.map +1 -0
  126. package/dist/hooks/autopilot/transition.d.ts +39 -0
  127. package/dist/hooks/autopilot/transition.d.ts.map +1 -0
  128. package/dist/hooks/autopilot/transition.js +216 -0
  129. package/dist/hooks/autopilot/transition.js.map +1 -0
  130. package/dist/hooks/context-window-limit-recovery/constants.d.ts +28 -0
  131. package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +1 -0
  132. package/dist/hooks/context-window-limit-recovery/constants.js +85 -0
  133. package/dist/hooks/context-window-limit-recovery/constants.js.map +1 -0
  134. package/dist/hooks/context-window-limit-recovery/index.d.ts +62 -0
  135. package/dist/hooks/context-window-limit-recovery/index.d.ts.map +1 -0
  136. package/dist/hooks/context-window-limit-recovery/index.js +201 -0
  137. package/dist/hooks/context-window-limit-recovery/index.js.map +1 -0
  138. package/dist/hooks/context-window-limit-recovery/parser.d.ts +31 -0
  139. package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +1 -0
  140. package/dist/hooks/context-window-limit-recovery/parser.js +241 -0
  141. package/dist/hooks/context-window-limit-recovery/parser.js.map +1 -0
  142. package/dist/hooks/context-window-limit-recovery/types.d.ts +84 -0
  143. package/dist/hooks/context-window-limit-recovery/types.d.ts.map +1 -0
  144. package/dist/hooks/context-window-limit-recovery/types.js +34 -0
  145. package/dist/hooks/context-window-limit-recovery/types.js.map +1 -0
  146. package/dist/hooks/edit-error-recovery/index.d.ts +62 -0
  147. package/dist/hooks/edit-error-recovery/index.d.ts.map +1 -0
  148. package/dist/hooks/edit-error-recovery/index.js +89 -0
  149. package/dist/hooks/edit-error-recovery/index.js.map +1 -0
  150. package/dist/hooks/github-auto-responder/classifier.d.ts +43 -0
  151. package/dist/hooks/github-auto-responder/classifier.d.ts.map +1 -0
  152. package/dist/hooks/github-auto-responder/classifier.js +150 -0
  153. package/dist/hooks/github-auto-responder/classifier.js.map +1 -0
  154. package/dist/hooks/github-auto-responder/config.d.ts +109 -0
  155. package/dist/hooks/github-auto-responder/config.d.ts.map +1 -0
  156. package/dist/hooks/github-auto-responder/config.js +69 -0
  157. package/dist/hooks/github-auto-responder/config.js.map +1 -0
  158. package/dist/hooks/github-auto-responder/constants.d.ts +45 -0
  159. package/dist/hooks/github-auto-responder/constants.d.ts.map +1 -0
  160. package/dist/hooks/github-auto-responder/constants.js +60 -0
  161. package/dist/hooks/github-auto-responder/constants.js.map +1 -0
  162. package/dist/hooks/github-auto-responder/filters.d.ts +95 -0
  163. package/dist/hooks/github-auto-responder/filters.d.ts.map +1 -0
  164. package/dist/hooks/github-auto-responder/filters.js +174 -0
  165. package/dist/hooks/github-auto-responder/filters.js.map +1 -0
  166. package/dist/hooks/github-auto-responder/github-client.d.ts +65 -0
  167. package/dist/hooks/github-auto-responder/github-client.d.ts.map +1 -0
  168. package/dist/hooks/github-auto-responder/github-client.js +128 -0
  169. package/dist/hooks/github-auto-responder/github-client.js.map +1 -0
  170. package/dist/hooks/github-auto-responder/idempotency.d.ts +68 -0
  171. package/dist/hooks/github-auto-responder/idempotency.d.ts.map +1 -0
  172. package/dist/hooks/github-auto-responder/idempotency.js +147 -0
  173. package/dist/hooks/github-auto-responder/idempotency.js.map +1 -0
  174. package/dist/hooks/github-auto-responder/index.d.ts +140 -0
  175. package/dist/hooks/github-auto-responder/index.d.ts.map +1 -0
  176. package/dist/hooks/github-auto-responder/index.js +145 -0
  177. package/dist/hooks/github-auto-responder/index.js.map +1 -0
  178. package/dist/hooks/github-auto-responder/persona.d.ts +40 -0
  179. package/dist/hooks/github-auto-responder/persona.d.ts.map +1 -0
  180. package/dist/hooks/github-auto-responder/persona.js +99 -0
  181. package/dist/hooks/github-auto-responder/persona.js.map +1 -0
  182. package/dist/hooks/github-auto-responder/responder.d.ts +122 -0
  183. package/dist/hooks/github-auto-responder/responder.d.ts.map +1 -0
  184. package/dist/hooks/github-auto-responder/responder.js +264 -0
  185. package/dist/hooks/github-auto-responder/responder.js.map +1 -0
  186. package/dist/hooks/github-auto-responder/server.d.ts +140 -0
  187. package/dist/hooks/github-auto-responder/server.d.ts.map +1 -0
  188. package/dist/hooks/github-auto-responder/server.js +301 -0
  189. package/dist/hooks/github-auto-responder/server.js.map +1 -0
  190. package/dist/hooks/github-auto-responder/signature.d.ts +34 -0
  191. package/dist/hooks/github-auto-responder/signature.d.ts.map +1 -0
  192. package/dist/hooks/github-auto-responder/signature.js +79 -0
  193. package/dist/hooks/github-auto-responder/signature.js.map +1 -0
  194. package/dist/hooks/github-auto-responder/templates.d.ts +16 -0
  195. package/dist/hooks/github-auto-responder/templates.d.ts.map +1 -0
  196. package/dist/hooks/github-auto-responder/templates.js +93 -0
  197. package/dist/hooks/github-auto-responder/templates.js.map +1 -0
  198. package/dist/hooks/github-auto-responder/types.d.ts +246 -0
  199. package/dist/hooks/github-auto-responder/types.d.ts.map +1 -0
  200. package/dist/hooks/github-auto-responder/types.js +7 -0
  201. package/dist/hooks/github-auto-responder/types.js.map +1 -0
  202. package/dist/hooks/learned-skills/config.d.ts +53 -0
  203. package/dist/hooks/learned-skills/config.d.ts.map +1 -0
  204. package/dist/hooks/learned-skills/config.js +103 -0
  205. package/dist/hooks/learned-skills/config.js.map +1 -0
  206. package/dist/hooks/learned-skills/constants.d.ts +24 -0
  207. package/dist/hooks/learned-skills/constants.d.ts.map +1 -0
  208. package/dist/hooks/learned-skills/constants.js +26 -0
  209. package/dist/hooks/learned-skills/constants.js.map +1 -0
  210. package/dist/hooks/learned-skills/detection-hook.d.ts +39 -0
  211. package/dist/hooks/learned-skills/detection-hook.d.ts.map +1 -0
  212. package/dist/hooks/learned-skills/detection-hook.js +83 -0
  213. package/dist/hooks/learned-skills/detection-hook.js.map +1 -0
  214. package/dist/hooks/learned-skills/detector.d.ts +30 -0
  215. package/dist/hooks/learned-skills/detector.d.ts.map +1 -0
  216. package/dist/hooks/learned-skills/detector.js +150 -0
  217. package/dist/hooks/learned-skills/detector.js.map +1 -0
  218. package/dist/hooks/learned-skills/finder.d.ts +21 -0
  219. package/dist/hooks/learned-skills/finder.d.ts.map +1 -0
  220. package/dist/hooks/learned-skills/finder.js +117 -0
  221. package/dist/hooks/learned-skills/finder.js.map +1 -0
  222. package/dist/hooks/learned-skills/index.d.ts +62 -0
  223. package/dist/hooks/learned-skills/index.d.ts.map +1 -0
  224. package/dist/hooks/learned-skills/index.js +137 -0
  225. package/dist/hooks/learned-skills/index.js.map +1 -0
  226. package/dist/hooks/learned-skills/loader.d.ts +20 -0
  227. package/dist/hooks/learned-skills/loader.d.ts.map +1 -0
  228. package/dist/hooks/learned-skills/loader.js +107 -0
  229. package/dist/hooks/learned-skills/loader.js.map +1 -0
  230. package/dist/hooks/learned-skills/parser.d.ts +21 -0
  231. package/dist/hooks/learned-skills/parser.d.ts.map +1 -0
  232. package/dist/hooks/learned-skills/parser.js +190 -0
  233. package/dist/hooks/learned-skills/parser.js.map +1 -0
  234. package/dist/hooks/learned-skills/promotion.d.ts +29 -0
  235. package/dist/hooks/learned-skills/promotion.d.ts.map +1 -0
  236. package/dist/hooks/learned-skills/promotion.js +87 -0
  237. package/dist/hooks/learned-skills/promotion.js.map +1 -0
  238. package/dist/hooks/learned-skills/types.d.ts +109 -0
  239. package/dist/hooks/learned-skills/types.d.ts.map +1 -0
  240. package/dist/hooks/learned-skills/types.js +8 -0
  241. package/dist/hooks/learned-skills/types.js.map +1 -0
  242. package/dist/hooks/learned-skills/validator.d.ts +15 -0
  243. package/dist/hooks/learned-skills/validator.d.ts.map +1 -0
  244. package/dist/hooks/learned-skills/validator.js +87 -0
  245. package/dist/hooks/learned-skills/validator.js.map +1 -0
  246. package/dist/hooks/learned-skills/writer.d.ts +27 -0
  247. package/dist/hooks/learned-skills/writer.d.ts.map +1 -0
  248. package/dist/hooks/learned-skills/writer.js +126 -0
  249. package/dist/hooks/learned-skills/writer.js.map +1 -0
  250. package/dist/hooks/mnemosyne/config.d.ts +53 -0
  251. package/dist/hooks/mnemosyne/config.d.ts.map +1 -0
  252. package/dist/hooks/mnemosyne/config.js +103 -0
  253. package/dist/hooks/mnemosyne/config.js.map +1 -0
  254. package/dist/hooks/mnemosyne/constants.d.ts +24 -0
  255. package/dist/hooks/mnemosyne/constants.d.ts.map +1 -0
  256. package/dist/hooks/mnemosyne/constants.js +26 -0
  257. package/dist/hooks/mnemosyne/constants.js.map +1 -0
  258. package/dist/hooks/mnemosyne/detection-hook.d.ts +39 -0
  259. package/dist/hooks/mnemosyne/detection-hook.d.ts.map +1 -0
  260. package/dist/hooks/mnemosyne/detection-hook.js +83 -0
  261. package/dist/hooks/mnemosyne/detection-hook.js.map +1 -0
  262. package/dist/hooks/mnemosyne/detector.d.ts +30 -0
  263. package/dist/hooks/mnemosyne/detector.d.ts.map +1 -0
  264. package/dist/hooks/mnemosyne/detector.js +150 -0
  265. package/dist/hooks/mnemosyne/detector.js.map +1 -0
  266. package/dist/hooks/mnemosyne/finder.d.ts +21 -0
  267. package/dist/hooks/mnemosyne/finder.d.ts.map +1 -0
  268. package/dist/hooks/mnemosyne/finder.js +117 -0
  269. package/dist/hooks/mnemosyne/finder.js.map +1 -0
  270. package/dist/hooks/mnemosyne/index.d.ts +62 -0
  271. package/dist/hooks/mnemosyne/index.d.ts.map +1 -0
  272. package/dist/hooks/mnemosyne/index.js +137 -0
  273. package/dist/hooks/mnemosyne/index.js.map +1 -0
  274. package/dist/hooks/mnemosyne/loader.d.ts +20 -0
  275. package/dist/hooks/mnemosyne/loader.d.ts.map +1 -0
  276. package/dist/hooks/mnemosyne/loader.js +113 -0
  277. package/dist/hooks/mnemosyne/loader.js.map +1 -0
  278. package/dist/hooks/mnemosyne/parser.d.ts +21 -0
  279. package/dist/hooks/mnemosyne/parser.d.ts.map +1 -0
  280. package/dist/hooks/mnemosyne/parser.js +190 -0
  281. package/dist/hooks/mnemosyne/parser.js.map +1 -0
  282. package/dist/hooks/mnemosyne/promotion.d.ts +29 -0
  283. package/dist/hooks/mnemosyne/promotion.d.ts.map +1 -0
  284. package/dist/hooks/mnemosyne/promotion.js +87 -0
  285. package/dist/hooks/mnemosyne/promotion.js.map +1 -0
  286. package/dist/hooks/mnemosyne/types.d.ts +109 -0
  287. package/dist/hooks/mnemosyne/types.d.ts.map +1 -0
  288. package/dist/hooks/mnemosyne/types.js +8 -0
  289. package/dist/hooks/mnemosyne/types.js.map +1 -0
  290. package/dist/hooks/mnemosyne/validator.d.ts +15 -0
  291. package/dist/hooks/mnemosyne/validator.d.ts.map +1 -0
  292. package/dist/hooks/mnemosyne/validator.js +87 -0
  293. package/dist/hooks/mnemosyne/validator.js.map +1 -0
  294. package/dist/hooks/mnemosyne/writer.d.ts +27 -0
  295. package/dist/hooks/mnemosyne/writer.d.ts.map +1 -0
  296. package/dist/hooks/mnemosyne/writer.js +126 -0
  297. package/dist/hooks/mnemosyne/writer.js.map +1 -0
  298. package/dist/hooks/ralph-loop/index.d.ts +116 -0
  299. package/dist/hooks/ralph-loop/index.d.ts.map +1 -0
  300. package/dist/hooks/ralph-loop/index.js +322 -0
  301. package/dist/hooks/ralph-loop/index.js.map +1 -0
  302. package/dist/hooks/ralph-prd/index.d.ts +130 -0
  303. package/dist/hooks/ralph-prd/index.d.ts.map +1 -0
  304. package/dist/hooks/ralph-prd/index.js +310 -0
  305. package/dist/hooks/ralph-prd/index.js.map +1 -0
  306. package/dist/hooks/ralph-progress/index.d.ts +102 -0
  307. package/dist/hooks/ralph-progress/index.d.ts.map +1 -0
  308. package/dist/hooks/ralph-progress/index.js +408 -0
  309. package/dist/hooks/ralph-progress/index.js.map +1 -0
  310. package/dist/hooks/ralph-verifier/index.d.ts +72 -0
  311. package/dist/hooks/ralph-verifier/index.d.ts.map +1 -0
  312. package/dist/hooks/ralph-verifier/index.js +223 -0
  313. package/dist/hooks/ralph-verifier/index.js.map +1 -0
  314. package/dist/hooks/session-recovery/constants.d.ts +56 -0
  315. package/dist/hooks/session-recovery/constants.d.ts.map +1 -0
  316. package/dist/hooks/session-recovery/constants.js +78 -0
  317. package/dist/hooks/session-recovery/constants.js.map +1 -0
  318. package/dist/hooks/session-recovery/index.d.ts +53 -0
  319. package/dist/hooks/session-recovery/index.d.ts.map +1 -0
  320. package/dist/hooks/session-recovery/index.js +321 -0
  321. package/dist/hooks/session-recovery/index.js.map +1 -0
  322. package/dist/hooks/session-recovery/storage.d.ts +76 -0
  323. package/dist/hooks/session-recovery/storage.d.ts.map +1 -0
  324. package/dist/hooks/session-recovery/storage.js +383 -0
  325. package/dist/hooks/session-recovery/storage.js.map +1 -0
  326. package/dist/hooks/session-recovery/types.d.ts +145 -0
  327. package/dist/hooks/session-recovery/types.d.ts.map +1 -0
  328. package/dist/hooks/session-recovery/types.js +8 -0
  329. package/dist/hooks/session-recovery/types.js.map +1 -0
  330. package/dist/hooks/sisyphus-orchestrator/constants.d.ts +23 -0
  331. package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +1 -0
  332. package/dist/hooks/sisyphus-orchestrator/constants.js +142 -0
  333. package/dist/hooks/sisyphus-orchestrator/constants.js.map +1 -0
  334. package/dist/hooks/sisyphus-orchestrator/index.d.ts +113 -0
  335. package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +1 -0
  336. package/dist/hooks/sisyphus-orchestrator/index.js +309 -0
  337. package/dist/hooks/sisyphus-orchestrator/index.js.map +1 -0
  338. package/dist/hooks/ultraqa-loop/index.d.ts +94 -0
  339. package/dist/hooks/ultraqa-loop/index.d.ts.map +1 -0
  340. package/dist/hooks/ultraqa-loop/index.js +216 -0
  341. package/dist/hooks/ultraqa-loop/index.js.map +1 -0
  342. package/dist/hooks/ultrawork-state/index.d.ts +62 -0
  343. package/dist/hooks/ultrawork-state/index.d.ts.map +1 -0
  344. package/dist/hooks/ultrawork-state/index.js +208 -0
  345. package/dist/hooks/ultrawork-state/index.js.map +1 -0
  346. package/dist/hud/sisyphus-state.d.ts +31 -0
  347. package/dist/hud/sisyphus-state.d.ts.map +1 -0
  348. package/dist/hud/sisyphus-state.js +163 -0
  349. package/dist/hud/sisyphus-state.js.map +1 -0
  350. package/dist/index.d.ts +1 -0
  351. package/dist/index.d.ts.map +1 -1
  352. package/dist/index.js +15 -3
  353. package/dist/index.js.map +1 -1
  354. package/dist/mcp/index.d.ts +1 -0
  355. package/dist/mcp/index.d.ts.map +1 -1
  356. package/dist/mcp/index.js +2 -0
  357. package/dist/mcp/index.js.map +1 -1
  358. package/dist/mcp/omc-tools-server.d.ts +25 -0
  359. package/dist/mcp/omc-tools-server.d.ts.map +1 -0
  360. package/dist/mcp/omc-tools-server.js +49 -0
  361. package/dist/mcp/omc-tools-server.js.map +1 -0
  362. package/dist/tools/ast-tools.d.ts.map +1 -1
  363. package/dist/tools/ast-tools.js +19 -39
  364. package/dist/tools/ast-tools.js.map +1 -1
  365. package/dist/tools/diagnostics/index.d.ts +7 -32
  366. package/dist/tools/diagnostics/index.d.ts.map +1 -1
  367. package/dist/tools/diagnostics/index.js +41 -171
  368. package/dist/tools/diagnostics/index.js.map +1 -1
  369. package/dist/tools/diagnostics/lsp-aggregator.d.ts +1 -13
  370. package/dist/tools/diagnostics/lsp-aggregator.d.ts.map +1 -1
  371. package/dist/tools/diagnostics/lsp-aggregator.js +4 -32
  372. package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
  373. package/dist/tools/diagnostics/tsc-runner.d.ts +0 -6
  374. package/dist/tools/diagnostics/tsc-runner.d.ts.map +1 -1
  375. package/dist/tools/diagnostics/tsc-runner.js +5 -32
  376. package/dist/tools/diagnostics/tsc-runner.js.map +1 -1
  377. package/dist/tools/lsp/client.d.ts.map +1 -1
  378. package/dist/tools/lsp/client.js +1 -26
  379. package/dist/tools/lsp/client.js.map +1 -1
  380. package/dist/tools/lsp/servers.d.ts +0 -3
  381. package/dist/tools/lsp/servers.d.ts.map +1 -1
  382. package/dist/tools/lsp/servers.js +4 -111
  383. package/dist/tools/lsp/servers.js.map +1 -1
  384. package/dist/tools/lsp-tools.d.ts +2 -2
  385. package/dist/tools/lsp-tools.d.ts.map +1 -1
  386. package/dist/tools/lsp-tools.js +2 -2
  387. package/dist/tools/lsp-tools.js.map +1 -1
  388. package/package.json +1 -1
  389. package/skills/AGENTS.md +187 -0
  390. package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts +0 -5
  391. package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts.map +0 -1
  392. package/dist/tools/diagnostics/__tests__/detectProjectType.test.js +0 -42
  393. package/dist/tools/diagnostics/__tests__/detectProjectType.test.js.map +0 -1
  394. package/dist/tools/diagnostics/__tests__/integration.test.d.ts +0 -5
  395. package/dist/tools/diagnostics/__tests__/integration.test.d.ts.map +0 -1
  396. package/dist/tools/diagnostics/__tests__/integration.test.js +0 -66
  397. package/dist/tools/diagnostics/__tests__/integration.test.js.map +0 -1
  398. package/dist/tools/diagnostics/__tests__/parser-tests.d.ts +0 -5
  399. package/dist/tools/diagnostics/__tests__/parser-tests.d.ts.map +0 -1
  400. package/dist/tools/diagnostics/__tests__/parser-tests.js +0 -86
  401. package/dist/tools/diagnostics/__tests__/parser-tests.js.map +0 -1
  402. package/dist/tools/diagnostics/__tests__/parsers.test.d.ts +0 -5
  403. package/dist/tools/diagnostics/__tests__/parsers.test.d.ts.map +0 -1
  404. package/dist/tools/diagnostics/__tests__/parsers.test.js +0 -199
  405. package/dist/tools/diagnostics/__tests__/parsers.test.js.map +0 -1
  406. package/dist/tools/diagnostics/constants.d.ts +0 -9
  407. package/dist/tools/diagnostics/constants.d.ts.map +0 -1
  408. package/dist/tools/diagnostics/constants.js +0 -9
  409. package/dist/tools/diagnostics/constants.js.map +0 -1
  410. package/dist/tools/diagnostics/go-runner.d.ts +0 -31
  411. package/dist/tools/diagnostics/go-runner.d.ts.map +0 -1
  412. package/dist/tools/diagnostics/go-runner.js +0 -78
  413. package/dist/tools/diagnostics/go-runner.js.map +0 -1
  414. package/dist/tools/diagnostics/python-runner.d.ts +0 -39
  415. package/dist/tools/diagnostics/python-runner.d.ts.map +0 -1
  416. package/dist/tools/diagnostics/python-runner.js +0 -200
  417. package/dist/tools/diagnostics/python-runner.js.map +0 -1
  418. package/dist/tools/diagnostics/rust-runner.d.ts +0 -34
  419. package/dist/tools/diagnostics/rust-runner.d.ts.map +0 -1
  420. package/dist/tools/diagnostics/rust-runner.js +0 -106
  421. package/dist/tools/diagnostics/rust-runner.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-estimator.test.js","sourceRoot":"","sources":["../../../src/__tests__/analytics/cost-estimator.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Integration tests for learned skill discovery
3
+ *
4
+ * Tests the discoverAllCommands() functionality with project and user-scoped skills
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=executor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/hooks/auto-slash-command/executor.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Integration tests for learned skill discovery
3
+ *
4
+ * Tests the discoverAllCommands() functionality with project and user-scoped skills
5
+ */
6
+ import { describe, it, expect, beforeEach, afterEach } from 'vitest';
7
+ import { mkdirSync, writeFileSync, rmSync, existsSync, readdirSync } from 'fs';
8
+ import { join } from 'path';
9
+ import { tmpdir } from 'os';
10
+ import { discoverAllCommands, findCommand, executeSlashCommand } from '../../../hooks/auto-slash-command/executor.js';
11
+ describe('Learned Skill Discovery', () => {
12
+ let testProjectRoot;
13
+ let testUserSkillsDir;
14
+ let originalCwd;
15
+ beforeEach(() => {
16
+ // Save original CWD
17
+ originalCwd = process.cwd();
18
+ // Create temp project root
19
+ testProjectRoot = join(tmpdir(), `omc-test-${Date.now()}`);
20
+ mkdirSync(testProjectRoot, { recursive: true });
21
+ // Create temp user skills directory
22
+ testUserSkillsDir = join(tmpdir(), `omc-user-skills-${Date.now()}`);
23
+ mkdirSync(testUserSkillsDir, { recursive: true });
24
+ // Change to test project root
25
+ process.chdir(testProjectRoot);
26
+ });
27
+ afterEach(() => {
28
+ // Restore original CWD
29
+ process.chdir(originalCwd);
30
+ // Clean up temp directories
31
+ if (existsSync(testProjectRoot)) {
32
+ rmSync(testProjectRoot, { recursive: true, force: true });
33
+ }
34
+ if (existsSync(testUserSkillsDir)) {
35
+ rmSync(testUserSkillsDir, { recursive: true, force: true });
36
+ }
37
+ });
38
+ it('should discover skills in project .omc/skills/', () => {
39
+ // Create project skills directory
40
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
41
+ mkdirSync(projectSkillsDir, { recursive: true });
42
+ // Create a test skill file
43
+ const skillContent = `---
44
+ name: test-project-skill
45
+ description: A test project skill
46
+ model: sonnet
47
+ ---
48
+
49
+ This is a test project skill template.
50
+
51
+ User request: $ARGUMENTS
52
+ `;
53
+ writeFileSync(join(projectSkillsDir, 'test-project-skill.md'), skillContent);
54
+ // Discover commands
55
+ const commands = discoverAllCommands();
56
+ // Verify skill is discovered
57
+ const projectSkill = commands.find(cmd => cmd.name === 'test-project-skill');
58
+ expect(projectSkill).toBeDefined();
59
+ expect(projectSkill?.scope).toBe('project-skill');
60
+ expect(projectSkill?.metadata.description).toBe('A test project skill');
61
+ expect(projectSkill?.metadata.model).toBe('sonnet');
62
+ });
63
+ it('should discover skills in user ~/.claude/skills/omc-learned/', () => {
64
+ // Mock the user skills directory by creating it in our test location
65
+ // Note: This test would need to mock homedir() or use environment variables
66
+ // For now, we'll test the discoverCommandsFromDir function indirectly
67
+ // Create user skills directory (simulated)
68
+ const userSkillsDir = join(testProjectRoot, '.test-user-skills');
69
+ mkdirSync(userSkillsDir, { recursive: true });
70
+ // Create a test user skill file
71
+ const skillContent = `---
72
+ name: test-user-skill
73
+ description: A test user skill
74
+ agent: executor
75
+ ---
76
+
77
+ This is a test user skill template.
78
+
79
+ Arguments provided: $ARGUMENTS
80
+ `;
81
+ writeFileSync(join(userSkillsDir, 'test-user-skill.md'), skillContent);
82
+ // Manually test discovery logic (since we can't easily mock homedir)
83
+ const entries = readdirSync(userSkillsDir, { withFileTypes: true });
84
+ const mdFiles = entries.filter((e) => e.isFile() && e.name.endsWith('.md'));
85
+ expect(mdFiles.length).toBeGreaterThan(0);
86
+ expect(mdFiles[0].name).toBe('test-user-skill.md');
87
+ });
88
+ it('should prioritize project skills over user skills with same name', () => {
89
+ // Create both project and user skills directories
90
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
91
+ mkdirSync(projectSkillsDir, { recursive: true });
92
+ // Create project skill
93
+ const projectSkillContent = `---
94
+ name: duplicate-skill
95
+ description: Project version
96
+ ---
97
+
98
+ This is the PROJECT version.
99
+ `;
100
+ writeFileSync(join(projectSkillsDir, 'duplicate-skill.md'), projectSkillContent);
101
+ // Create .claude/commands user skill (simulating user-level command)
102
+ const userCommandsDir = join(testProjectRoot, '.claude-user-sim', 'commands');
103
+ mkdirSync(userCommandsDir, { recursive: true });
104
+ const userSkillContent = `---
105
+ name: duplicate-skill
106
+ description: User version
107
+ ---
108
+
109
+ This is the USER version.
110
+ `;
111
+ writeFileSync(join(userCommandsDir, 'duplicate-skill.md'), userSkillContent);
112
+ // Discover all commands
113
+ const commands = discoverAllCommands();
114
+ // Find all instances of duplicate-skill
115
+ const duplicateSkills = commands.filter(cmd => cmd.name === 'duplicate-skill');
116
+ // The first one should be the project skill (higher priority)
117
+ if (duplicateSkills.length > 0) {
118
+ expect(duplicateSkills[0].scope).toBe('project-skill');
119
+ expect(duplicateSkills[0].metadata.description).toBe('Project version');
120
+ }
121
+ });
122
+ it('should parse flat .md format with frontmatter correctly', () => {
123
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
124
+ mkdirSync(projectSkillsDir, { recursive: true });
125
+ // Create skill with comprehensive frontmatter
126
+ const skillContent = `---
127
+ name: comprehensive-skill
128
+ description: A comprehensive test skill
129
+ argument-hint: <task description>
130
+ model: opus
131
+ agent: architect
132
+ ---
133
+
134
+ # Comprehensive Skill Template
135
+
136
+ This template uses all metadata fields.
137
+
138
+ ## Task
139
+ $ARGUMENTS
140
+
141
+ ## Instructions
142
+ 1. Analyze the task
143
+ 2. Execute with precision
144
+ 3. Verify results
145
+ `;
146
+ writeFileSync(join(projectSkillsDir, 'comprehensive-skill.md'), skillContent);
147
+ const commands = discoverAllCommands();
148
+ const skill = commands.find(cmd => cmd.name === 'comprehensive-skill');
149
+ expect(skill).toBeDefined();
150
+ expect(skill?.metadata.name).toBe('comprehensive-skill');
151
+ expect(skill?.metadata.description).toBe('A comprehensive test skill');
152
+ expect(skill?.metadata.argumentHint).toBe('<task description>');
153
+ expect(skill?.metadata.model).toBe('opus');
154
+ expect(skill?.metadata.agent).toBe('architect');
155
+ expect(skill?.content).toContain('# Comprehensive Skill Template');
156
+ expect(skill?.content).toContain('$ARGUMENTS');
157
+ });
158
+ it('should fallback to filename if no name field in frontmatter', () => {
159
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
160
+ mkdirSync(projectSkillsDir, { recursive: true });
161
+ // Create skill WITHOUT name field
162
+ const skillContent = `---
163
+ description: Skill without explicit name
164
+ ---
165
+
166
+ This skill has no name field.
167
+ `;
168
+ writeFileSync(join(projectSkillsDir, 'unnamed-skill.md'), skillContent);
169
+ const commands = discoverAllCommands();
170
+ const skill = commands.find(cmd => cmd.name === 'unnamed-skill');
171
+ expect(skill).toBeDefined();
172
+ expect(skill?.metadata.name).toBe('unnamed-skill'); // Should use filename
173
+ expect(skill?.metadata.description).toBe('Skill without explicit name');
174
+ });
175
+ it('should find learned skill by name via findCommand()', () => {
176
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
177
+ mkdirSync(projectSkillsDir, { recursive: true });
178
+ const skillContent = `---
179
+ name: findable-skill
180
+ description: A skill that can be found
181
+ ---
182
+
183
+ This skill should be findable.
184
+ `;
185
+ writeFileSync(join(projectSkillsDir, 'findable-skill.md'), skillContent);
186
+ // Use findCommand to locate it
187
+ const found = findCommand('findable-skill');
188
+ expect(found).not.toBeNull();
189
+ expect(found?.name).toBe('findable-skill');
190
+ expect(found?.scope).toBe('project-skill');
191
+ expect(found?.metadata.description).toBe('A skill that can be found');
192
+ });
193
+ it('should execute learned skill slash command correctly', () => {
194
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
195
+ mkdirSync(projectSkillsDir, { recursive: true });
196
+ const skillContent = `---
197
+ name: executable-skill
198
+ description: An executable skill
199
+ model: sonnet
200
+ agent: executor
201
+ ---
202
+
203
+ Execute the following task:
204
+
205
+ $ARGUMENTS
206
+
207
+ Please proceed with care.
208
+ `;
209
+ writeFileSync(join(projectSkillsDir, 'executable-skill.md'), skillContent);
210
+ // Simulate slash command execution
211
+ const parsed = {
212
+ command: 'executable-skill',
213
+ args: 'implement feature X',
214
+ raw: '/executable-skill implement feature X',
215
+ };
216
+ const result = executeSlashCommand(parsed);
217
+ expect(result.success).toBe(true);
218
+ expect(result.replacementText).toBeDefined();
219
+ expect(result.replacementText).toContain('executable-skill');
220
+ expect(result.replacementText).toContain('An executable skill');
221
+ expect(result.replacementText).toContain('**Model**: sonnet');
222
+ expect(result.replacementText).toContain('**Agent**: executor');
223
+ expect(result.replacementText).toContain('**Scope**: project-skill');
224
+ expect(result.replacementText).toContain('implement feature X');
225
+ expect(result.replacementText).toContain('Execute the following task:');
226
+ });
227
+ it('should handle $ARGUMENTS placeholder replacement', () => {
228
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
229
+ mkdirSync(projectSkillsDir, { recursive: true });
230
+ const skillContent = `---
231
+ name: args-test
232
+ description: Test argument replacement
233
+ ---
234
+
235
+ Task: $ARGUMENTS
236
+ Context: Processing $ARGUMENTS
237
+ Result: Completed $ARGUMENTS
238
+ `;
239
+ writeFileSync(join(projectSkillsDir, 'args-test.md'), skillContent);
240
+ const parsed = {
241
+ command: 'args-test',
242
+ args: 'build authentication system',
243
+ raw: '/args-test build authentication system',
244
+ };
245
+ const result = executeSlashCommand(parsed);
246
+ expect(result.success).toBe(true);
247
+ expect(result.replacementText).toContain('Task: build authentication system');
248
+ expect(result.replacementText).toContain('Context: Processing build authentication system');
249
+ expect(result.replacementText).toContain('Result: Completed build authentication system');
250
+ });
251
+ it('should handle skills without $ARGUMENTS placeholder', () => {
252
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
253
+ mkdirSync(projectSkillsDir, { recursive: true });
254
+ const skillContent = `---
255
+ name: no-args-placeholder
256
+ description: Skill without placeholder
257
+ ---
258
+
259
+ This is a static template.
260
+ It does not use argument placeholders.
261
+ `;
262
+ writeFileSync(join(projectSkillsDir, 'no-args-placeholder.md'), skillContent);
263
+ const parsed = {
264
+ command: 'no-args-placeholder',
265
+ args: 'some user input',
266
+ raw: '/no-args-placeholder some user input',
267
+ };
268
+ const result = executeSlashCommand(parsed);
269
+ expect(result.success).toBe(true);
270
+ // Should append user request section when no $ARGUMENTS found
271
+ expect(result.replacementText).toContain('This is a static template');
272
+ expect(result.replacementText).toContain('## User Request');
273
+ expect(result.replacementText).toContain('some user input');
274
+ });
275
+ it('should return error for non-existent skill', () => {
276
+ const parsed = {
277
+ command: 'non-existent-skill',
278
+ args: 'test',
279
+ raw: '/non-existent-skill test',
280
+ };
281
+ const result = executeSlashCommand(parsed);
282
+ expect(result.success).toBe(false);
283
+ expect(result.error).toBeDefined();
284
+ expect(result.error).toContain('not found');
285
+ });
286
+ it('should handle empty arguments gracefully', () => {
287
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
288
+ mkdirSync(projectSkillsDir, { recursive: true });
289
+ const skillContent = `---
290
+ name: empty-args-skill
291
+ description: Test empty arguments
292
+ ---
293
+
294
+ Arguments: $ARGUMENTS
295
+ `;
296
+ writeFileSync(join(projectSkillsDir, 'empty-args-skill.md'), skillContent);
297
+ const parsed = {
298
+ command: 'empty-args-skill',
299
+ args: '',
300
+ raw: '/empty-args-skill',
301
+ };
302
+ const result = executeSlashCommand(parsed);
303
+ expect(result.success).toBe(true);
304
+ expect(result.replacementText).toContain('Arguments: (no arguments provided)');
305
+ });
306
+ it('should discover multiple skills from same directory', () => {
307
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
308
+ mkdirSync(projectSkillsDir, { recursive: true });
309
+ // Create multiple skills
310
+ for (let i = 1; i <= 3; i++) {
311
+ const skillContent = `---
312
+ name: multi-skill-${i}
313
+ description: Skill number ${i}
314
+ ---
315
+
316
+ Template ${i}
317
+ `;
318
+ writeFileSync(join(projectSkillsDir, `multi-skill-${i}.md`), skillContent);
319
+ }
320
+ const commands = discoverAllCommands();
321
+ const multiSkills = commands.filter(cmd => cmd.name.startsWith('multi-skill-'));
322
+ expect(multiSkills.length).toBe(3);
323
+ expect(multiSkills.every(s => s.scope === 'project-skill')).toBe(true);
324
+ });
325
+ it('should ignore non-.md files in skills directory', () => {
326
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
327
+ mkdirSync(projectSkillsDir, { recursive: true });
328
+ // Create .md file
329
+ writeFileSync(join(projectSkillsDir, 'valid-skill.md'), '---\nname: valid\n---\nContent');
330
+ // Create non-.md files
331
+ writeFileSync(join(projectSkillsDir, 'invalid.txt'), 'Should be ignored');
332
+ writeFileSync(join(projectSkillsDir, 'README'), 'Should be ignored');
333
+ const commands = discoverAllCommands();
334
+ const projectSkills = commands.filter(cmd => cmd.scope === 'project-skill');
335
+ expect(projectSkills.length).toBe(1);
336
+ expect(projectSkills[0].name).toBe('valid-skill');
337
+ });
338
+ it('should handle malformed frontmatter gracefully', () => {
339
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
340
+ mkdirSync(projectSkillsDir, { recursive: true });
341
+ // Create skill with malformed frontmatter
342
+ const malformedContent = `---
343
+ this is not valid yaml
344
+ no colons here
345
+ ---
346
+
347
+ Body content
348
+ `;
349
+ writeFileSync(join(projectSkillsDir, 'malformed.md'), malformedContent);
350
+ // Should not throw, just skip the malformed file
351
+ const commands = discoverAllCommands();
352
+ const malformed = commands.find(cmd => cmd.name === 'malformed');
353
+ // Should still parse (frontmatter parsing is lenient)
354
+ // It will have empty metadata but valid name from filename
355
+ expect(malformed?.metadata.name).toBe('malformed');
356
+ });
357
+ it('should handle skills without frontmatter', () => {
358
+ const projectSkillsDir = join(testProjectRoot, '.omc', 'skills');
359
+ mkdirSync(projectSkillsDir, { recursive: true });
360
+ // Create skill without frontmatter
361
+ const noFrontmatter = `This is just plain markdown content.
362
+
363
+ No frontmatter at all.
364
+ `;
365
+ writeFileSync(join(projectSkillsDir, 'no-frontmatter.md'), noFrontmatter);
366
+ const commands = discoverAllCommands();
367
+ const skill = commands.find(cmd => cmd.name === 'no-frontmatter');
368
+ expect(skill).toBeDefined();
369
+ expect(skill?.metadata.name).toBe('no-frontmatter');
370
+ expect(skill?.metadata.description).toBe(''); // Empty string for missing description
371
+ expect(skill?.content).toContain('This is just plain markdown content');
372
+ });
373
+ });
374
+ //# sourceMappingURL=executor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.test.js","sourceRoot":"","sources":["../../../../src/__tests__/hooks/auto-slash-command/executor.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=auto-tracking.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-tracking.integration.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/hud/auto-tracking.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ describe('Auto-Tracking Integration', () => {
3
+ it('should record tokens on HUD render', async () => {
4
+ // TODO: Test end-to-end auto-recording
5
+ expect(true).toBe(true);
6
+ });
7
+ it('should associate tokens with running agents', async () => {
8
+ // TODO: Test agent correlation
9
+ expect(true).toBe(true);
10
+ });
11
+ });
12
+ //# sourceMappingURL=auto-tracking.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-tracking.integration.test.js","sourceRoot":"","sources":["../../../src/__tests__/hud/auto-tracking.integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9C,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;QAClD,uCAAuC;QACvC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,+BAA+B;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=config.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/config.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,37 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { loadConfig, getConfigValue } from '../../hooks/learned-skills/config.js';
3
+ describe('Claudeception Config', () => {
4
+ it('should return defaults when no config exists', () => {
5
+ const config = loadConfig();
6
+ expect(config.enabled).toBe(true);
7
+ expect(config.detection.promptThreshold).toBe(60);
8
+ });
9
+ it('should have valid default detection config', () => {
10
+ const config = loadConfig();
11
+ expect(config.detection.enabled).toBe(true);
12
+ expect(config.detection.promptCooldown).toBe(5);
13
+ });
14
+ it('should have valid default quality config', () => {
15
+ const config = loadConfig();
16
+ expect(config.quality.minScore).toBe(50);
17
+ expect(config.quality.minProblemLength).toBe(10);
18
+ expect(config.quality.minSolutionLength).toBe(20);
19
+ });
20
+ it('should have valid default storage config', () => {
21
+ const config = loadConfig();
22
+ expect(config.storage.maxSkillsPerScope).toBe(100);
23
+ expect(config.storage.autoPrune).toBe(false);
24
+ expect(config.storage.pruneDays).toBe(90);
25
+ });
26
+ it('should get specific config value', () => {
27
+ const enabled = getConfigValue('enabled');
28
+ expect(typeof enabled).toBe('boolean');
29
+ });
30
+ it('should get nested config value', () => {
31
+ const detection = getConfigValue('detection');
32
+ expect(detection).toHaveProperty('enabled');
33
+ expect(detection).toHaveProperty('promptThreshold');
34
+ expect(detection).toHaveProperty('promptCooldown');
35
+ });
36
+ });
37
+ //# sourceMappingURL=config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAElF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9C,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC;QACpD,MAAM,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=detector.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/detector.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,99 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { detectExtractableMoment, shouldPromptExtraction, generateExtractionPrompt, } from '../../hooks/learned-skills/detector.js';
3
+ describe('Skill Detector', () => {
4
+ describe('detectExtractableMoment', () => {
5
+ it('should detect problem-solution pattern', () => {
6
+ const message = 'The issue was caused by a race condition. I fixed it by adding proper locking.';
7
+ const result = detectExtractableMoment(message);
8
+ expect(result.detected).toBe(true);
9
+ expect(result.patternType).toBe('problem-solution');
10
+ expect(result.confidence).toBeGreaterThan(0);
11
+ });
12
+ it('should detect technique pattern', () => {
13
+ const message = 'A better way to handle this is to use the observer pattern instead of polling.';
14
+ const result = detectExtractableMoment(message);
15
+ expect(result.detected).toBe(true);
16
+ expect(result.patternType).toBe('technique');
17
+ });
18
+ it('should detect best practice pattern', () => {
19
+ const message = 'Best practices include keeping state as local as possible for React components.';
20
+ const result = detectExtractableMoment(message);
21
+ expect(result.detected).toBe(true);
22
+ expect(result.patternType).toBe('best-practice');
23
+ });
24
+ it('should not detect in regular conversation', () => {
25
+ const message = 'Sure, I can help you with that. What would you like to know?';
26
+ const result = detectExtractableMoment(message);
27
+ expect(result.detected).toBe(false);
28
+ });
29
+ it('should extract trigger keywords when pattern detected', () => {
30
+ // Message that matches problem-solution pattern AND contains trigger keywords
31
+ const message = 'The issue was caused by React state management. I fixed it by using TypeScript strict mode.';
32
+ const result = detectExtractableMoment(message, 'How do I manage state in React?');
33
+ expect(result.detected).toBe(true);
34
+ expect(result.suggestedTriggers).toContain('react');
35
+ expect(result.suggestedTriggers).toContain('typescript');
36
+ });
37
+ it('should detect workaround pattern', () => {
38
+ const message = 'As a workaround, you can temporarily disable the cache while debugging.';
39
+ const result = detectExtractableMoment(message);
40
+ expect(result.detected).toBe(true);
41
+ expect(result.patternType).toBe('workaround');
42
+ });
43
+ it('should detect optimization pattern', () => {
44
+ const message = 'To get better performance, optimize by using memoization on expensive calculations.';
45
+ const result = detectExtractableMoment(message);
46
+ expect(result.detected).toBe(true);
47
+ expect(result.patternType).toBe('optimization');
48
+ });
49
+ });
50
+ describe('shouldPromptExtraction', () => {
51
+ it('should return true when confidence exceeds threshold', () => {
52
+ const detection = {
53
+ detected: true,
54
+ confidence: 75,
55
+ patternType: 'problem-solution',
56
+ suggestedTriggers: [],
57
+ reason: 'test',
58
+ };
59
+ expect(shouldPromptExtraction(detection, 60)).toBe(true);
60
+ });
61
+ it('should return false when not detected', () => {
62
+ const detection = {
63
+ detected: false,
64
+ confidence: 0,
65
+ patternType: 'problem-solution',
66
+ suggestedTriggers: [],
67
+ reason: 'test',
68
+ };
69
+ expect(shouldPromptExtraction(detection)).toBe(false);
70
+ });
71
+ it('should return false when below threshold', () => {
72
+ const detection = {
73
+ detected: true,
74
+ confidence: 40,
75
+ patternType: 'problem-solution',
76
+ suggestedTriggers: [],
77
+ reason: 'test',
78
+ };
79
+ expect(shouldPromptExtraction(detection, 60)).toBe(false);
80
+ });
81
+ });
82
+ describe('generateExtractionPrompt', () => {
83
+ it('should generate prompt with detection details', () => {
84
+ const detection = {
85
+ detected: true,
86
+ confidence: 80,
87
+ patternType: 'technique',
88
+ suggestedTriggers: ['react', 'hooks'],
89
+ reason: 'Detected technique pattern',
90
+ };
91
+ const prompt = generateExtractionPrompt(detection);
92
+ expect(prompt).toContain('useful technique');
93
+ expect(prompt).toContain('80%');
94
+ expect(prompt).toContain('react, hooks');
95
+ expect(prompt).toContain('/claudeception');
96
+ });
97
+ });
98
+ });
99
+ //# sourceMappingURL=detector.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.test.js","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/detector.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=finder.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finder.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/finder.test.ts"],"names":[],"mappings":""}