@rulemetric/cli 0.2.1 → 0.2.2

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 (780) hide show
  1. package/dist/base-command.js +13 -52
  2. package/dist/base-command.js.map +7 -1
  3. package/dist/chunk-2AM54TUK.js +59 -0
  4. package/dist/chunk-2AM54TUK.js.map +7 -0
  5. package/dist/chunk-3TIMQ3O6.js +96 -0
  6. package/dist/chunk-3TIMQ3O6.js.map +7 -0
  7. package/dist/chunk-4BHDHHKL.js +48 -0
  8. package/dist/chunk-4BHDHHKL.js.map +7 -0
  9. package/dist/chunk-4D537GXE.js +99 -0
  10. package/dist/chunk-4D537GXE.js.map +7 -0
  11. package/dist/chunk-4SCZK7AL.js +129 -0
  12. package/dist/chunk-4SCZK7AL.js.map +7 -0
  13. package/dist/chunk-4WFE4PFP.js +61 -0
  14. package/dist/chunk-4WFE4PFP.js.map +7 -0
  15. package/dist/chunk-52WIYRZH.js +73 -0
  16. package/dist/chunk-52WIYRZH.js.map +7 -0
  17. package/dist/chunk-7FAA3YNB.js +1549 -0
  18. package/dist/chunk-7FAA3YNB.js.map +7 -0
  19. package/dist/chunk-7NYKWN7U.js +12 -0
  20. package/dist/chunk-7NYKWN7U.js.map +7 -0
  21. package/dist/chunk-AULP2OWH.js +99 -0
  22. package/dist/chunk-AULP2OWH.js.map +7 -0
  23. package/dist/chunk-B5KNTGMJ.js +1788 -0
  24. package/dist/chunk-B5KNTGMJ.js.map +7 -0
  25. package/dist/chunk-BD7CY42U.js +23 -0
  26. package/dist/chunk-BD7CY42U.js.map +7 -0
  27. package/dist/chunk-BO76WKJR.js +42 -0
  28. package/dist/chunk-BO76WKJR.js.map +7 -0
  29. package/dist/chunk-BRD5RUGM.js +53 -0
  30. package/dist/chunk-BRD5RUGM.js.map +7 -0
  31. package/dist/chunk-BT6Z6545.js +43 -0
  32. package/dist/chunk-BT6Z6545.js.map +7 -0
  33. package/dist/chunk-BZDKEQKU.js +39 -0
  34. package/dist/chunk-BZDKEQKU.js.map +7 -0
  35. package/dist/chunk-CROYS75W.js +161 -0
  36. package/dist/chunk-CROYS75W.js.map +7 -0
  37. package/dist/chunk-DGHWRQXL.js +17 -0
  38. package/dist/chunk-DGHWRQXL.js.map +7 -0
  39. package/dist/chunk-DQ3KELXD.js +74 -0
  40. package/dist/chunk-DQ3KELXD.js.map +7 -0
  41. package/dist/chunk-DTFXCHHI.js +108 -0
  42. package/dist/chunk-DTFXCHHI.js.map +7 -0
  43. package/dist/chunk-DU73QUS3.js +75 -0
  44. package/dist/chunk-DU73QUS3.js.map +7 -0
  45. package/dist/chunk-EHZJ6OXD.js +307 -0
  46. package/dist/chunk-EHZJ6OXD.js.map +7 -0
  47. package/dist/chunk-EJOI2ZGU.js +109 -0
  48. package/dist/chunk-EJOI2ZGU.js.map +7 -0
  49. package/dist/chunk-EKJ2CABV.js +76 -0
  50. package/dist/chunk-EKJ2CABV.js.map +7 -0
  51. package/dist/chunk-EKP32DLN.js +16 -0
  52. package/dist/chunk-EKP32DLN.js.map +7 -0
  53. package/dist/chunk-EOOP6WTC.js +148 -0
  54. package/dist/chunk-EOOP6WTC.js.map +7 -0
  55. package/dist/chunk-ERPMDAO3.js +20 -0
  56. package/dist/chunk-ERPMDAO3.js.map +7 -0
  57. package/dist/chunk-FTJRMUID.js +96 -0
  58. package/dist/chunk-FTJRMUID.js.map +7 -0
  59. package/dist/chunk-FZKLLNDS.js +228 -0
  60. package/dist/chunk-FZKLLNDS.js.map +7 -0
  61. package/dist/chunk-GQCISMAH.js +157 -0
  62. package/dist/chunk-GQCISMAH.js.map +7 -0
  63. package/dist/chunk-IGXX624H.js +55 -0
  64. package/dist/chunk-IGXX624H.js.map +7 -0
  65. package/dist/chunk-IJGF2ETG.js +68 -0
  66. package/dist/chunk-IJGF2ETG.js.map +7 -0
  67. package/dist/chunk-IWYCRLEK.js +220 -0
  68. package/dist/chunk-IWYCRLEK.js.map +7 -0
  69. package/dist/chunk-J7N3DLH6.js +117 -0
  70. package/dist/chunk-J7N3DLH6.js.map +7 -0
  71. package/dist/chunk-JX5UI6RW.js +99 -0
  72. package/dist/chunk-JX5UI6RW.js.map +7 -0
  73. package/dist/chunk-K3BFZ7KG.js +154 -0
  74. package/dist/chunk-K3BFZ7KG.js.map +7 -0
  75. package/dist/chunk-KHJUQFIK.js +51 -0
  76. package/dist/chunk-KHJUQFIK.js.map +7 -0
  77. package/dist/chunk-KRBQLMOP.js +41 -0
  78. package/dist/chunk-KRBQLMOP.js.map +7 -0
  79. package/dist/chunk-KZRFUXGF.js +145 -0
  80. package/dist/chunk-KZRFUXGF.js.map +7 -0
  81. package/dist/chunk-L674RNKQ.js +492 -0
  82. package/dist/chunk-L674RNKQ.js.map +7 -0
  83. package/dist/chunk-N52AHNBH.js +47 -0
  84. package/dist/chunk-N52AHNBH.js.map +7 -0
  85. package/dist/chunk-NIDLJO6F.js +228 -0
  86. package/dist/chunk-NIDLJO6F.js.map +7 -0
  87. package/dist/chunk-NSBPE2FW.js +17 -0
  88. package/dist/chunk-NSBPE2FW.js.map +7 -0
  89. package/dist/chunk-OGVORIFM.js +70 -0
  90. package/dist/chunk-OGVORIFM.js.map +7 -0
  91. package/dist/chunk-OQSQC7VB.js +77 -0
  92. package/dist/chunk-OQSQC7VB.js.map +7 -0
  93. package/dist/chunk-PHLMIZKM.js +153 -0
  94. package/dist/chunk-PHLMIZKM.js.map +7 -0
  95. package/dist/chunk-PQU7GZ7A.js +92 -0
  96. package/dist/chunk-PQU7GZ7A.js.map +7 -0
  97. package/dist/chunk-PXVQLD7S.js +196 -0
  98. package/dist/chunk-PXVQLD7S.js.map +7 -0
  99. package/dist/chunk-QD6X4L4L.js +79 -0
  100. package/dist/chunk-QD6X4L4L.js.map +7 -0
  101. package/dist/chunk-QJQS6TUN.js +44 -0
  102. package/dist/chunk-QJQS6TUN.js.map +7 -0
  103. package/dist/chunk-QJXAULRC.js +191 -0
  104. package/dist/chunk-QJXAULRC.js.map +7 -0
  105. package/dist/chunk-QN34TGD3.js +83 -0
  106. package/dist/chunk-QN34TGD3.js.map +7 -0
  107. package/dist/chunk-R5MFHGHR.js +122 -0
  108. package/dist/chunk-R5MFHGHR.js.map +7 -0
  109. package/dist/chunk-RH7NHVSK.js +16 -0
  110. package/dist/chunk-RH7NHVSK.js.map +7 -0
  111. package/dist/chunk-RJ7BHDLM.js +121 -0
  112. package/dist/chunk-RJ7BHDLM.js.map +7 -0
  113. package/dist/chunk-RQ2TMLKG.js +142 -0
  114. package/dist/chunk-RQ2TMLKG.js.map +7 -0
  115. package/dist/chunk-S56LOTGQ.js +63 -0
  116. package/dist/chunk-S56LOTGQ.js.map +7 -0
  117. package/dist/chunk-UF73WX2J.js +49 -0
  118. package/dist/chunk-UF73WX2J.js.map +7 -0
  119. package/dist/chunk-W53GKIZQ.js +50 -0
  120. package/dist/chunk-W53GKIZQ.js.map +7 -0
  121. package/dist/chunk-WA4MWYRW.js +254 -0
  122. package/dist/chunk-WA4MWYRW.js.map +7 -0
  123. package/dist/chunk-WFULKPEQ.js +269 -0
  124. package/dist/chunk-WFULKPEQ.js.map +7 -0
  125. package/dist/chunk-XC6M4CSW.js +44 -0
  126. package/dist/chunk-XC6M4CSW.js.map +7 -0
  127. package/dist/chunk-XPUEGHXN.js +243 -0
  128. package/dist/chunk-XPUEGHXN.js.map +7 -0
  129. package/dist/chunk-XZXS2W24.js +148 -0
  130. package/dist/chunk-XZXS2W24.js.map +7 -0
  131. package/dist/chunk-YBNW7ARH.js +167 -0
  132. package/dist/chunk-YBNW7ARH.js.map +7 -0
  133. package/dist/chunk-YNIH3KMU.js +121 -0
  134. package/dist/chunk-YNIH3KMU.js.map +7 -0
  135. package/dist/commands/antigravity/backfill.js +135 -0
  136. package/dist/commands/antigravity/backfill.js.map +7 -0
  137. package/dist/commands/auth/create-key.js +48 -33
  138. package/dist/commands/auth/create-key.js.map +7 -1
  139. package/dist/commands/auth/login.js +58 -46
  140. package/dist/commands/auth/login.js.map +7 -1
  141. package/dist/commands/auth/logout.js +28 -13
  142. package/dist/commands/auth/logout.js.map +7 -1
  143. package/dist/commands/auth/revoke-key.js +32 -18
  144. package/dist/commands/auth/revoke-key.js.map +7 -1
  145. package/dist/commands/auth/status.js +40 -22
  146. package/dist/commands/auth/status.js.map +7 -1
  147. package/dist/commands/catalog/index.js +50 -34
  148. package/dist/commands/catalog/index.js.map +7 -1
  149. package/dist/commands/catalog/recommend.js +41 -26
  150. package/dist/commands/catalog/recommend.js.map +7 -1
  151. package/dist/commands/convert.js +72 -54
  152. package/dist/commands/convert.js.map +7 -1
  153. package/dist/commands/converters.js +52 -38
  154. package/dist/commands/converters.js.map +7 -1
  155. package/dist/commands/crons/list.js +50 -24
  156. package/dist/commands/crons/list.js.map +7 -1
  157. package/dist/commands/crons/run.js +72 -47
  158. package/dist/commands/crons/run.js.map +7 -1
  159. package/dist/commands/dashboard.js +45 -24
  160. package/dist/commands/dashboard.js.map +7 -1
  161. package/dist/commands/eval-targets/create.js +51 -39
  162. package/dist/commands/eval-targets/create.js.map +7 -1
  163. package/dist/commands/eval-targets/list.js +52 -35
  164. package/dist/commands/eval-targets/list.js.map +7 -1
  165. package/dist/commands/evals/agent.js +292 -0
  166. package/dist/commands/evals/agent.js.map +7 -0
  167. package/dist/commands/evals/benchmark.js +70 -51
  168. package/dist/commands/evals/benchmark.js.map +7 -1
  169. package/dist/commands/evals/compare.js +90 -78
  170. package/dist/commands/evals/compare.js.map +7 -1
  171. package/dist/commands/evals/create.js +64 -50
  172. package/dist/commands/evals/create.js.map +7 -1
  173. package/dist/commands/evals/optimize-description.js +225 -222
  174. package/dist/commands/evals/optimize-description.js.map +7 -1
  175. package/dist/commands/evals/optimize.js +206 -196
  176. package/dist/commands/evals/optimize.js.map +7 -1
  177. package/dist/commands/evals/run.js +178 -164
  178. package/dist/commands/evals/run.js.map +7 -1
  179. package/dist/commands/gateway/ensure.js +33 -19
  180. package/dist/commands/gateway/ensure.js.map +7 -1
  181. package/dist/commands/hooks/install.js +335 -275
  182. package/dist/commands/hooks/install.js.map +7 -1
  183. package/dist/commands/hooks/run.js +72 -53
  184. package/dist/commands/hooks/run.js.map +7 -1
  185. package/dist/commands/hooks/uninstall.js +117 -94
  186. package/dist/commands/hooks/uninstall.js.map +7 -1
  187. package/dist/commands/import.js +63 -53
  188. package/dist/commands/import.js.map +7 -1
  189. package/dist/commands/instructions/create.js +71 -58
  190. package/dist/commands/instructions/create.js.map +7 -1
  191. package/dist/commands/instructions/delete.js +53 -36
  192. package/dist/commands/instructions/delete.js.map +7 -1
  193. package/dist/commands/instructions/fork.js +33 -19
  194. package/dist/commands/instructions/fork.js.map +7 -1
  195. package/dist/commands/instructions/get.js +66 -49
  196. package/dist/commands/instructions/get.js.map +7 -1
  197. package/dist/commands/instructions/list.js +63 -46
  198. package/dist/commands/instructions/list.js.map +7 -1
  199. package/dist/commands/instructions/promote.js +41 -27
  200. package/dist/commands/instructions/promote.js.map +7 -1
  201. package/dist/commands/instructions/pull.js +37 -21
  202. package/dist/commands/instructions/pull.js.map +7 -1
  203. package/dist/commands/instructions/upstream.js +36 -21
  204. package/dist/commands/instructions/upstream.js.map +7 -1
  205. package/dist/commands/instructions/versions.js +51 -33
  206. package/dist/commands/instructions/versions.js.map +7 -1
  207. package/dist/commands/launcher.js +39 -0
  208. package/dist/commands/launcher.js.map +7 -0
  209. package/dist/commands/org/current.js +74 -68
  210. package/dist/commands/org/current.js.map +7 -1
  211. package/dist/commands/org/list.js +50 -36
  212. package/dist/commands/org/list.js.map +7 -1
  213. package/dist/commands/org/switch.js +69 -51
  214. package/dist/commands/org/switch.js.map +7 -1
  215. package/dist/commands/packs/add-instruction.js +36 -22
  216. package/dist/commands/packs/add-instruction.js.map +7 -1
  217. package/dist/commands/packs/apply.js +38 -24
  218. package/dist/commands/packs/apply.js.map +7 -1
  219. package/dist/commands/packs/create.js +47 -33
  220. package/dist/commands/packs/create.js.map +7 -1
  221. package/dist/commands/packs/fork.js +33 -19
  222. package/dist/commands/packs/fork.js.map +7 -1
  223. package/dist/commands/packs/get.js +54 -35
  224. package/dist/commands/packs/get.js.map +7 -1
  225. package/dist/commands/packs/list.js +64 -47
  226. package/dist/commands/packs/list.js.map +7 -1
  227. package/dist/commands/packs/remove-instruction.js +34 -20
  228. package/dist/commands/packs/remove-instruction.js.map +7 -1
  229. package/dist/commands/proxy/env.js +126 -116
  230. package/dist/commands/proxy/env.js.map +7 -1
  231. package/dist/commands/proxy/logs.js +83 -74
  232. package/dist/commands/proxy/logs.js.map +7 -1
  233. package/dist/commands/proxy/restart.js +34 -36
  234. package/dist/commands/proxy/restart.js.map +7 -1
  235. package/dist/commands/proxy/setup.js +432 -375
  236. package/dist/commands/proxy/setup.js.map +7 -1
  237. package/dist/commands/proxy/start.js +289 -289
  238. package/dist/commands/proxy/start.js.map +7 -1
  239. package/dist/commands/proxy/status.js +74 -64
  240. package/dist/commands/proxy/status.js.map +7 -1
  241. package/dist/commands/proxy/stop.js +81 -75
  242. package/dist/commands/proxy/stop.js.map +7 -1
  243. package/dist/commands/research/backfill.js +58 -0
  244. package/dist/commands/research/backfill.js.map +7 -0
  245. package/dist/commands/research/tail-transcript.js +69 -0
  246. package/dist/commands/research/tail-transcript.js.map +7 -0
  247. package/dist/commands/service/install.js +639 -405
  248. package/dist/commands/service/install.js.map +7 -1
  249. package/dist/commands/service/status.js +178 -111
  250. package/dist/commands/service/status.js.map +7 -1
  251. package/dist/commands/service/uninstall.js +85 -110
  252. package/dist/commands/service/uninstall.js.map +7 -1
  253. package/dist/commands/sessions/analyze.js +46 -25
  254. package/dist/commands/sessions/analyze.js.map +7 -1
  255. package/dist/commands/sessions/end.js +81 -79
  256. package/dist/commands/sessions/end.js.map +7 -1
  257. package/dist/commands/sessions/import.js +44 -27
  258. package/dist/commands/sessions/import.js.map +7 -1
  259. package/dist/commands/sessions/list.js +46 -33
  260. package/dist/commands/sessions/list.js.map +7 -1
  261. package/dist/commands/sessions/start.js +88 -87
  262. package/dist/commands/sessions/start.js.map +7 -1
  263. package/dist/commands/signals/report.js +42 -34
  264. package/dist/commands/signals/report.js.map +7 -1
  265. package/dist/commands/skills/export-approved.js +44 -30
  266. package/dist/commands/skills/export-approved.js.map +7 -1
  267. package/dist/commands/skills/install.js +99 -84
  268. package/dist/commands/skills/install.js.map +7 -1
  269. package/dist/commands/skills/list.js +59 -42
  270. package/dist/commands/skills/list.js.map +7 -1
  271. package/dist/commands/skills/publish.js +95 -78
  272. package/dist/commands/skills/publish.js.map +7 -1
  273. package/dist/commands/skills/search.js +68 -53
  274. package/dist/commands/skills/search.js.map +7 -1
  275. package/dist/commands/skills/update.js +52 -39
  276. package/dist/commands/skills/update.js.map +7 -1
  277. package/dist/commands/suggestions/accept.js +82 -59
  278. package/dist/commands/suggestions/accept.js.map +7 -1
  279. package/dist/commands/suggestions/dismiss.js +44 -26
  280. package/dist/commands/suggestions/dismiss.js.map +7 -1
  281. package/dist/commands/suggestions/list.js +59 -39
  282. package/dist/commands/suggestions/list.js.map +7 -1
  283. package/dist/commands/suggestions/refresh.js +26 -11
  284. package/dist/commands/suggestions/refresh.js.map +7 -1
  285. package/dist/cursor-BGQJ4CWI.js +134 -0
  286. package/dist/cursor-BGQJ4CWI.js.map +7 -0
  287. package/dist/dashboard/Dashboard.js +229 -126
  288. package/dist/dashboard/Dashboard.js.map +7 -1
  289. package/dist/dashboard/data.js +13 -137
  290. package/dist/dashboard/data.js.map +7 -1
  291. package/dist/dashboard/launcher/ActiveJobsList.js +10 -0
  292. package/dist/dashboard/launcher/ActiveJobsList.js.map +7 -0
  293. package/dist/dashboard/launcher/LauncherOverlay.js +14 -0
  294. package/dist/dashboard/launcher/LauncherOverlay.js.map +7 -0
  295. package/dist/dashboard/launcher/NewLaunchForm.js +10 -0
  296. package/dist/dashboard/launcher/NewLaunchForm.js.map +7 -0
  297. package/dist/dashboard/launcher/api.js +14 -0
  298. package/dist/dashboard/launcher/api.js.map +7 -0
  299. package/dist/dashboard/launcher/tool-labels.js +10 -0
  300. package/dist/dashboard/launcher/tool-labels.js.map +7 -0
  301. package/dist/dashboard/launcher/types.js +1 -0
  302. package/dist/dashboard/launcher/types.js.map +7 -0
  303. package/dist/dashboard/launcher/useLaunchJobs.js +9 -0
  304. package/dist/dashboard/launcher/useLaunchJobs.js.map +7 -0
  305. package/dist/dashboard/panels/friction.js +10 -22
  306. package/dist/dashboard/panels/friction.js.map +7 -1
  307. package/dist/dashboard/panels/insights.js +10 -109
  308. package/dist/dashboard/panels/insights.js.map +7 -1
  309. package/dist/dashboard/panels/instructions.js +10 -17
  310. package/dist/dashboard/panels/instructions.js.map +7 -1
  311. package/dist/dashboard/panels/outcomes.js +9 -28
  312. package/dist/dashboard/panels/outcomes.js.map +7 -1
  313. package/dist/dashboard/panels/overview.js +10 -20
  314. package/dist/dashboard/panels/overview.js.map +7 -1
  315. package/dist/dashboard/panels/shared.js +18 -61
  316. package/dist/dashboard/panels/shared.js.map +7 -1
  317. package/dist/dashboard/types.js +23 -26
  318. package/dist/dashboard/types.js.map +7 -1
  319. package/dist/dist-CSUYFYKI.js +52 -0
  320. package/dist/dist-CSUYFYKI.js.map +7 -0
  321. package/dist/index.js +8 -2
  322. package/dist/index.js.map +7 -1
  323. package/dist/lib/active-org-refresh.js +15 -108
  324. package/dist/lib/active-org-refresh.js.map +7 -1
  325. package/dist/lib/active-org.js +15 -95
  326. package/dist/lib/active-org.js.map +7 -1
  327. package/dist/lib/agent-loop.js +44 -0
  328. package/dist/lib/agent-loop.js.map +7 -0
  329. package/dist/lib/antigravity-transcript.js +22 -0
  330. package/dist/lib/antigravity-transcript.js.map +7 -0
  331. package/dist/lib/api-client.js +21 -92
  332. package/dist/lib/api-client.js.map +7 -1
  333. package/dist/lib/auth.js +26 -137
  334. package/dist/lib/auth.js.map +7 -1
  335. package/dist/lib/detect-languages.js +8 -113
  336. package/dist/lib/detect-languages.js.map +7 -1
  337. package/dist/lib/detect-tmux.js +9 -0
  338. package/dist/lib/detect-tmux.js.map +7 -0
  339. package/dist/lib/eval-analyzer.js +9 -89
  340. package/dist/lib/eval-analyzer.js.map +7 -1
  341. package/dist/lib/eval-benchmark.js +12 -92
  342. package/dist/lib/eval-benchmark.js.map +7 -1
  343. package/dist/lib/eval-conversation-handler.js +13 -200
  344. package/dist/lib/eval-conversation-handler.js.map +7 -1
  345. package/dist/lib/eval-executor.js +8 -83
  346. package/dist/lib/eval-executor.js.map +7 -1
  347. package/dist/lib/eval-grader.js +9 -123
  348. package/dist/lib/eval-grader.js.map +7 -1
  349. package/dist/lib/eval-meta-judge.js +9 -116
  350. package/dist/lib/eval-meta-judge.js.map +7 -1
  351. package/dist/lib/eval-trigger-tester.js +11 -96
  352. package/dist/lib/eval-trigger-tester.js.map +7 -1
  353. package/dist/lib/eval-worktree.js +8 -87
  354. package/dist/lib/eval-worktree.js.map +7 -1
  355. package/dist/lib/gateway-entry.js +20 -18
  356. package/dist/lib/gateway-entry.js.map +7 -1
  357. package/dist/lib/gateway-lifecycle.js +22 -97
  358. package/dist/lib/gateway-lifecycle.js.map +7 -1
  359. package/dist/lib/gateway.js +12 -216
  360. package/dist/lib/gateway.js.map +7 -1
  361. package/dist/lib/handlers/cron-close-stale-sessions.js +18 -7
  362. package/dist/lib/handlers/cron-close-stale-sessions.js.map +7 -1
  363. package/dist/lib/handlers/cron-data-integrity-audit.js +21 -15
  364. package/dist/lib/handlers/cron-data-integrity-audit.js.map +7 -1
  365. package/dist/lib/handlers/cron-refresh-skills.js +7 -90
  366. package/dist/lib/handlers/cron-refresh-skills.js.map +7 -1
  367. package/dist/lib/handlers/cron-suggest-instructions.js +14 -158
  368. package/dist/lib/handlers/cron-suggest-instructions.js.map +7 -1
  369. package/dist/lib/handlers/process-announcement.js +11 -0
  370. package/dist/lib/handlers/process-announcement.js.map +7 -0
  371. package/dist/lib/handlers/process-changelog.js +11 -0
  372. package/dist/lib/handlers/process-changelog.js.map +7 -0
  373. package/dist/lib/handlers/process-conversation.js +14 -35
  374. package/dist/lib/handlers/process-conversation.js.map +7 -1
  375. package/dist/lib/handlers/process-eval.js +15 -207
  376. package/dist/lib/handlers/process-eval.js.map +7 -1
  377. package/dist/lib/handlers/process-insights.js +14 -300
  378. package/dist/lib/handlers/process-insights.js.map +7 -1
  379. package/dist/lib/handlers/process-launch.js +16 -41
  380. package/dist/lib/handlers/process-launch.js.map +7 -1
  381. package/dist/lib/handlers/process-run-cleanup.js +13 -0
  382. package/dist/lib/handlers/process-run-cleanup.js.map +7 -0
  383. package/dist/lib/handlers/process-send-message.js +10 -0
  384. package/dist/lib/handlers/process-send-message.js.map +7 -0
  385. package/dist/lib/handlers/process-session-goal.js +11 -74
  386. package/dist/lib/handlers/process-session-goal.js.map +7 -1
  387. package/dist/lib/hooks-config.js +52 -544
  388. package/dist/lib/hooks-config.js.map +7 -1
  389. package/dist/lib/insights-prompts.js +12 -145
  390. package/dist/lib/insights-prompts.js.map +7 -1
  391. package/dist/lib/job-helpers.js +1 -0
  392. package/dist/lib/job-helpers.js.map +7 -0
  393. package/dist/lib/llm-client.js +16 -274
  394. package/dist/lib/llm-client.js.map +7 -1
  395. package/dist/lib/manual-tasks.js +22 -0
  396. package/dist/lib/manual-tasks.js.map +7 -0
  397. package/dist/lib/output.js +12 -36
  398. package/dist/lib/output.js.map +7 -1
  399. package/dist/lib/permanent-job-error.js +10 -23
  400. package/dist/lib/permanent-job-error.js.map +7 -1
  401. package/dist/lib/provider-aggregator.js +57 -55
  402. package/dist/lib/provider-aggregator.js.map +7 -1
  403. package/dist/lib/research-client.js +12 -0
  404. package/dist/lib/research-client.js.map +7 -0
  405. package/dist/lib/skills-loader.js +8 -51
  406. package/dist/lib/skills-loader.js.map +7 -1
  407. package/dist/lib/statusline-shim.js +16 -0
  408. package/dist/lib/statusline-shim.js.map +7 -0
  409. package/dist/lib/terminal-target-heartbeat.js +15 -0
  410. package/dist/lib/terminal-target-heartbeat.js.map +7 -0
  411. package/dist/lib/tmux.js +16 -0
  412. package/dist/lib/tmux.js.map +7 -0
  413. package/dist/lib/transcript-rate-limit-watcher.js +22 -0
  414. package/dist/lib/transcript-rate-limit-watcher.js.map +7 -0
  415. package/dist/lib/types.js +8 -7
  416. package/dist/lib/types.js.map +7 -1
  417. package/dist/lib/version-check.js +10 -106
  418. package/dist/lib/version-check.js.map +7 -1
  419. package/dist/lib/which.js +8 -0
  420. package/dist/lib/which.js.map +7 -0
  421. package/dist/lib/worktree.js +17 -0
  422. package/dist/lib/worktree.js.map +7 -0
  423. package/dist/opencode-IQ7X5YMJ.js +190 -0
  424. package/dist/opencode-IQ7X5YMJ.js.map +7 -0
  425. package/oclif.manifest.json +299 -66
  426. package/package.json +27 -11
  427. package/dist/base-command.d.ts +0 -12
  428. package/dist/base-command.d.ts.map +0 -1
  429. package/dist/commands/auth/create-key.d.ts +0 -11
  430. package/dist/commands/auth/create-key.d.ts.map +0 -1
  431. package/dist/commands/auth/login.d.ts +0 -11
  432. package/dist/commands/auth/login.d.ts.map +0 -1
  433. package/dist/commands/auth/logout.d.ts +0 -7
  434. package/dist/commands/auth/logout.d.ts.map +0 -1
  435. package/dist/commands/auth/revoke-key.d.ts +0 -10
  436. package/dist/commands/auth/revoke-key.d.ts.map +0 -1
  437. package/dist/commands/auth/status.d.ts +0 -7
  438. package/dist/commands/auth/status.d.ts.map +0 -1
  439. package/dist/commands/catalog/index.d.ts +0 -11
  440. package/dist/commands/catalog/index.d.ts.map +0 -1
  441. package/dist/commands/catalog/recommend.d.ts +0 -9
  442. package/dist/commands/catalog/recommend.d.ts.map +0 -1
  443. package/dist/commands/convert.d.ts +0 -15
  444. package/dist/commands/convert.d.ts.map +0 -1
  445. package/dist/commands/converters.d.ts +0 -12
  446. package/dist/commands/converters.d.ts.map +0 -1
  447. package/dist/commands/crons/list.d.ts +0 -7
  448. package/dist/commands/crons/list.d.ts.map +0 -1
  449. package/dist/commands/crons/run.d.ts +0 -13
  450. package/dist/commands/crons/run.d.ts.map +0 -1
  451. package/dist/commands/dashboard.d.ts +0 -10
  452. package/dist/commands/dashboard.d.ts.map +0 -1
  453. package/dist/commands/eval-targets/create.d.ts +0 -14
  454. package/dist/commands/eval-targets/create.d.ts.map +0 -1
  455. package/dist/commands/eval-targets/list.d.ts +0 -10
  456. package/dist/commands/eval-targets/list.d.ts.map +0 -1
  457. package/dist/commands/evals/benchmark.d.ts +0 -13
  458. package/dist/commands/evals/benchmark.d.ts.map +0 -1
  459. package/dist/commands/evals/compare.d.ts +0 -15
  460. package/dist/commands/evals/compare.d.ts.map +0 -1
  461. package/dist/commands/evals/create.d.ts +0 -17
  462. package/dist/commands/evals/create.d.ts.map +0 -1
  463. package/dist/commands/evals/listen.d.ts +0 -37
  464. package/dist/commands/evals/listen.d.ts.map +0 -1
  465. package/dist/commands/evals/listen.js +0 -188
  466. package/dist/commands/evals/listen.js.map +0 -1
  467. package/dist/commands/evals/listen.test.d.ts +0 -2
  468. package/dist/commands/evals/listen.test.d.ts.map +0 -1
  469. package/dist/commands/evals/listen.test.js +0 -48
  470. package/dist/commands/evals/listen.test.js.map +0 -1
  471. package/dist/commands/evals/optimize-description.d.ts +0 -22
  472. package/dist/commands/evals/optimize-description.d.ts.map +0 -1
  473. package/dist/commands/evals/optimize.d.ts +0 -22
  474. package/dist/commands/evals/optimize.d.ts.map +0 -1
  475. package/dist/commands/evals/run.d.ts +0 -21
  476. package/dist/commands/evals/run.d.ts.map +0 -1
  477. package/dist/commands/gateway/ensure.d.ts +0 -7
  478. package/dist/commands/gateway/ensure.d.ts.map +0 -1
  479. package/dist/commands/hooks/install.d.ts +0 -16
  480. package/dist/commands/hooks/install.d.ts.map +0 -1
  481. package/dist/commands/hooks/run.d.ts +0 -11
  482. package/dist/commands/hooks/run.d.ts.map +0 -1
  483. package/dist/commands/hooks/uninstall.d.ts +0 -7
  484. package/dist/commands/hooks/uninstall.d.ts.map +0 -1
  485. package/dist/commands/import.d.ts +0 -17
  486. package/dist/commands/import.d.ts.map +0 -1
  487. package/dist/commands/instructions/create.d.ts +0 -17
  488. package/dist/commands/instructions/create.d.ts.map +0 -1
  489. package/dist/commands/instructions/delete.d.ts +0 -13
  490. package/dist/commands/instructions/delete.d.ts.map +0 -1
  491. package/dist/commands/instructions/fork.d.ts +0 -10
  492. package/dist/commands/instructions/fork.d.ts.map +0 -1
  493. package/dist/commands/instructions/get.d.ts +0 -15
  494. package/dist/commands/instructions/get.d.ts.map +0 -1
  495. package/dist/commands/instructions/list.d.ts +0 -12
  496. package/dist/commands/instructions/list.d.ts.map +0 -1
  497. package/dist/commands/instructions/promote.d.ts +0 -14
  498. package/dist/commands/instructions/promote.d.ts.map +0 -1
  499. package/dist/commands/instructions/pull.d.ts +0 -9
  500. package/dist/commands/instructions/pull.d.ts.map +0 -1
  501. package/dist/commands/instructions/upstream.d.ts +0 -9
  502. package/dist/commands/instructions/upstream.d.ts.map +0 -1
  503. package/dist/commands/instructions/versions.d.ts +0 -12
  504. package/dist/commands/instructions/versions.d.ts.map +0 -1
  505. package/dist/commands/org/current.d.ts +0 -7
  506. package/dist/commands/org/current.d.ts.map +0 -1
  507. package/dist/commands/org/list.d.ts +0 -7
  508. package/dist/commands/org/list.d.ts.map +0 -1
  509. package/dist/commands/org/switch.d.ts +0 -13
  510. package/dist/commands/org/switch.d.ts.map +0 -1
  511. package/dist/commands/packs/add-instruction.d.ts +0 -11
  512. package/dist/commands/packs/add-instruction.d.ts.map +0 -1
  513. package/dist/commands/packs/apply.d.ts +0 -13
  514. package/dist/commands/packs/apply.d.ts.map +0 -1
  515. package/dist/commands/packs/create.d.ts +0 -13
  516. package/dist/commands/packs/create.d.ts.map +0 -1
  517. package/dist/commands/packs/fork.d.ts +0 -10
  518. package/dist/commands/packs/fork.d.ts.map +0 -1
  519. package/dist/commands/packs/get.d.ts +0 -10
  520. package/dist/commands/packs/get.d.ts.map +0 -1
  521. package/dist/commands/packs/list.d.ts +0 -22
  522. package/dist/commands/packs/list.d.ts.map +0 -1
  523. package/dist/commands/packs/remove-instruction.d.ts +0 -11
  524. package/dist/commands/packs/remove-instruction.d.ts.map +0 -1
  525. package/dist/commands/proxy/env.d.ts +0 -14
  526. package/dist/commands/proxy/env.d.ts.map +0 -1
  527. package/dist/commands/proxy/logs.d.ts +0 -11
  528. package/dist/commands/proxy/logs.d.ts.map +0 -1
  529. package/dist/commands/proxy/restart.d.ts +0 -11
  530. package/dist/commands/proxy/restart.d.ts.map +0 -1
  531. package/dist/commands/proxy/setup.d.ts +0 -23
  532. package/dist/commands/proxy/setup.d.ts.map +0 -1
  533. package/dist/commands/proxy/start.d.ts +0 -17
  534. package/dist/commands/proxy/start.d.ts.map +0 -1
  535. package/dist/commands/proxy/status.d.ts +0 -7
  536. package/dist/commands/proxy/status.d.ts.map +0 -1
  537. package/dist/commands/proxy/stop.d.ts +0 -8
  538. package/dist/commands/proxy/stop.d.ts.map +0 -1
  539. package/dist/commands/service/install.d.ts +0 -33
  540. package/dist/commands/service/install.d.ts.map +0 -1
  541. package/dist/commands/service/install.test.d.ts +0 -2
  542. package/dist/commands/service/install.test.d.ts.map +0 -1
  543. package/dist/commands/service/install.test.js +0 -345
  544. package/dist/commands/service/install.test.js.map +0 -1
  545. package/dist/commands/service/status.d.ts +0 -6
  546. package/dist/commands/service/status.d.ts.map +0 -1
  547. package/dist/commands/service/uninstall.d.ts +0 -6
  548. package/dist/commands/service/uninstall.d.ts.map +0 -1
  549. package/dist/commands/sessions/analyze.d.ts +0 -10
  550. package/dist/commands/sessions/analyze.d.ts.map +0 -1
  551. package/dist/commands/sessions/end.d.ts +0 -9
  552. package/dist/commands/sessions/end.d.ts.map +0 -1
  553. package/dist/commands/sessions/import.d.ts +0 -13
  554. package/dist/commands/sessions/import.d.ts.map +0 -1
  555. package/dist/commands/sessions/list.d.ts +0 -11
  556. package/dist/commands/sessions/list.d.ts.map +0 -1
  557. package/dist/commands/sessions/start.d.ts +0 -11
  558. package/dist/commands/sessions/start.d.ts.map +0 -1
  559. package/dist/commands/signals/report.d.ts +0 -10
  560. package/dist/commands/signals/report.d.ts.map +0 -1
  561. package/dist/commands/signals/report.test.d.ts +0 -2
  562. package/dist/commands/signals/report.test.d.ts.map +0 -1
  563. package/dist/commands/signals/report.test.js +0 -65
  564. package/dist/commands/signals/report.test.js.map +0 -1
  565. package/dist/commands/skills/export-approved.d.ts +0 -10
  566. package/dist/commands/skills/export-approved.d.ts.map +0 -1
  567. package/dist/commands/skills/install.d.ts +0 -15
  568. package/dist/commands/skills/install.d.ts.map +0 -1
  569. package/dist/commands/skills/list.d.ts +0 -11
  570. package/dist/commands/skills/list.d.ts.map +0 -1
  571. package/dist/commands/skills/publish.d.ts +0 -17
  572. package/dist/commands/skills/publish.d.ts.map +0 -1
  573. package/dist/commands/skills/search.d.ts +0 -17
  574. package/dist/commands/skills/search.d.ts.map +0 -1
  575. package/dist/commands/skills/update.d.ts +0 -10
  576. package/dist/commands/skills/update.d.ts.map +0 -1
  577. package/dist/commands/suggestions/accept.d.ts +0 -16
  578. package/dist/commands/suggestions/accept.d.ts.map +0 -1
  579. package/dist/commands/suggestions/accept.test.d.ts +0 -2
  580. package/dist/commands/suggestions/accept.test.d.ts.map +0 -1
  581. package/dist/commands/suggestions/accept.test.js +0 -52
  582. package/dist/commands/suggestions/accept.test.js.map +0 -1
  583. package/dist/commands/suggestions/dismiss.d.ts +0 -10
  584. package/dist/commands/suggestions/dismiss.d.ts.map +0 -1
  585. package/dist/commands/suggestions/list.d.ts +0 -10
  586. package/dist/commands/suggestions/list.d.ts.map +0 -1
  587. package/dist/commands/suggestions/refresh.d.ts +0 -7
  588. package/dist/commands/suggestions/refresh.d.ts.map +0 -1
  589. package/dist/dashboard/Dashboard.d.ts +0 -3
  590. package/dist/dashboard/Dashboard.d.ts.map +0 -1
  591. package/dist/dashboard/data.d.ts +0 -11
  592. package/dist/dashboard/data.d.ts.map +0 -1
  593. package/dist/dashboard/panels/friction.d.ts +0 -7
  594. package/dist/dashboard/panels/friction.d.ts.map +0 -1
  595. package/dist/dashboard/panels/insights.d.ts +0 -8
  596. package/dist/dashboard/panels/insights.d.ts.map +0 -1
  597. package/dist/dashboard/panels/instructions.d.ts +0 -9
  598. package/dist/dashboard/panels/instructions.d.ts.map +0 -1
  599. package/dist/dashboard/panels/outcomes.d.ts +0 -7
  600. package/dist/dashboard/panels/outcomes.d.ts.map +0 -1
  601. package/dist/dashboard/panels/overview.d.ts +0 -8
  602. package/dist/dashboard/panels/overview.d.ts.map +0 -1
  603. package/dist/dashboard/panels/shared.d.ts +0 -17
  604. package/dist/dashboard/panels/shared.d.ts.map +0 -1
  605. package/dist/dashboard/types.d.ts +0 -80
  606. package/dist/dashboard/types.d.ts.map +0 -1
  607. package/dist/index.d.ts +0 -2
  608. package/dist/index.d.ts.map +0 -1
  609. package/dist/lib/active-org-refresh.d.ts +0 -22
  610. package/dist/lib/active-org-refresh.d.ts.map +0 -1
  611. package/dist/lib/active-org-refresh.test.d.ts +0 -2
  612. package/dist/lib/active-org-refresh.test.d.ts.map +0 -1
  613. package/dist/lib/active-org-refresh.test.js +0 -190
  614. package/dist/lib/active-org-refresh.test.js.map +0 -1
  615. package/dist/lib/active-org.d.ts +0 -43
  616. package/dist/lib/active-org.d.ts.map +0 -1
  617. package/dist/lib/active-org.test.d.ts +0 -2
  618. package/dist/lib/active-org.test.d.ts.map +0 -1
  619. package/dist/lib/active-org.test.js +0 -147
  620. package/dist/lib/active-org.test.js.map +0 -1
  621. package/dist/lib/api-client.d.ts +0 -17
  622. package/dist/lib/api-client.d.ts.map +0 -1
  623. package/dist/lib/api-client.test.d.ts +0 -2
  624. package/dist/lib/api-client.test.d.ts.map +0 -1
  625. package/dist/lib/api-client.test.js +0 -161
  626. package/dist/lib/api-client.test.js.map +0 -1
  627. package/dist/lib/auth.d.ts +0 -27
  628. package/dist/lib/auth.d.ts.map +0 -1
  629. package/dist/lib/auth.test.d.ts +0 -2
  630. package/dist/lib/auth.test.d.ts.map +0 -1
  631. package/dist/lib/auth.test.js +0 -110
  632. package/dist/lib/auth.test.js.map +0 -1
  633. package/dist/lib/cron-registry.d.ts +0 -47
  634. package/dist/lib/cron-registry.d.ts.map +0 -1
  635. package/dist/lib/cron-registry.js +0 -102
  636. package/dist/lib/cron-registry.js.map +0 -1
  637. package/dist/lib/cron-registry.test.d.ts +0 -2
  638. package/dist/lib/cron-registry.test.d.ts.map +0 -1
  639. package/dist/lib/cron-registry.test.js +0 -136
  640. package/dist/lib/cron-registry.test.js.map +0 -1
  641. package/dist/lib/cron-runner.d.ts +0 -16
  642. package/dist/lib/cron-runner.d.ts.map +0 -1
  643. package/dist/lib/cron-runner.js +0 -68
  644. package/dist/lib/cron-runner.js.map +0 -1
  645. package/dist/lib/detect-languages.d.ts +0 -7
  646. package/dist/lib/detect-languages.d.ts.map +0 -1
  647. package/dist/lib/detect-languages.test.d.ts +0 -2
  648. package/dist/lib/detect-languages.test.d.ts.map +0 -1
  649. package/dist/lib/detect-languages.test.js +0 -29
  650. package/dist/lib/detect-languages.test.js.map +0 -1
  651. package/dist/lib/eval-analyzer.d.ts +0 -23
  652. package/dist/lib/eval-analyzer.d.ts.map +0 -1
  653. package/dist/lib/eval-benchmark.d.ts +0 -17
  654. package/dist/lib/eval-benchmark.d.ts.map +0 -1
  655. package/dist/lib/eval-conversation-handler.d.ts +0 -9
  656. package/dist/lib/eval-conversation-handler.d.ts.map +0 -1
  657. package/dist/lib/eval-executor.d.ts +0 -21
  658. package/dist/lib/eval-executor.d.ts.map +0 -1
  659. package/dist/lib/eval-executor.test.d.ts +0 -2
  660. package/dist/lib/eval-executor.test.d.ts.map +0 -1
  661. package/dist/lib/eval-executor.test.js +0 -8
  662. package/dist/lib/eval-executor.test.js.map +0 -1
  663. package/dist/lib/eval-grader.d.ts +0 -38
  664. package/dist/lib/eval-grader.d.ts.map +0 -1
  665. package/dist/lib/eval-grader.test.d.ts +0 -2
  666. package/dist/lib/eval-grader.test.d.ts.map +0 -1
  667. package/dist/lib/eval-grader.test.js +0 -8
  668. package/dist/lib/eval-grader.test.js.map +0 -1
  669. package/dist/lib/eval-meta-judge.d.ts +0 -28
  670. package/dist/lib/eval-meta-judge.d.ts.map +0 -1
  671. package/dist/lib/eval-trigger-tester.d.ts +0 -19
  672. package/dist/lib/eval-trigger-tester.d.ts.map +0 -1
  673. package/dist/lib/eval-worktree.d.ts +0 -11
  674. package/dist/lib/eval-worktree.d.ts.map +0 -1
  675. package/dist/lib/eval-worktree.test.d.ts +0 -2
  676. package/dist/lib/eval-worktree.test.d.ts.map +0 -1
  677. package/dist/lib/eval-worktree.test.js +0 -68
  678. package/dist/lib/eval-worktree.test.js.map +0 -1
  679. package/dist/lib/gateway-entry.d.ts +0 -3
  680. package/dist/lib/gateway-entry.d.ts.map +0 -1
  681. package/dist/lib/gateway-lifecycle.d.ts +0 -9
  682. package/dist/lib/gateway-lifecycle.d.ts.map +0 -1
  683. package/dist/lib/gateway.d.ts +0 -11
  684. package/dist/lib/gateway.d.ts.map +0 -1
  685. package/dist/lib/graphile-worker-runner.d.ts +0 -124
  686. package/dist/lib/graphile-worker-runner.d.ts.map +0 -1
  687. package/dist/lib/graphile-worker-runner.js +0 -530
  688. package/dist/lib/graphile-worker-runner.js.map +0 -1
  689. package/dist/lib/graphile-worker-runner.test.d.ts +0 -2
  690. package/dist/lib/graphile-worker-runner.test.d.ts.map +0 -1
  691. package/dist/lib/graphile-worker-runner.test.js +0 -153
  692. package/dist/lib/graphile-worker-runner.test.js.map +0 -1
  693. package/dist/lib/handlers/cron-close-stale-sessions.d.ts +0 -3
  694. package/dist/lib/handlers/cron-close-stale-sessions.d.ts.map +0 -1
  695. package/dist/lib/handlers/cron-data-integrity-audit.d.ts +0 -3
  696. package/dist/lib/handlers/cron-data-integrity-audit.d.ts.map +0 -1
  697. package/dist/lib/handlers/cron-refresh-skills.d.ts +0 -3
  698. package/dist/lib/handlers/cron-refresh-skills.d.ts.map +0 -1
  699. package/dist/lib/handlers/cron-refresh-skills.test.d.ts +0 -2
  700. package/dist/lib/handlers/cron-refresh-skills.test.d.ts.map +0 -1
  701. package/dist/lib/handlers/cron-refresh-skills.test.js +0 -114
  702. package/dist/lib/handlers/cron-refresh-skills.test.js.map +0 -1
  703. package/dist/lib/handlers/cron-regenerate-insights.d.ts +0 -3
  704. package/dist/lib/handlers/cron-regenerate-insights.d.ts.map +0 -1
  705. package/dist/lib/handlers/cron-regenerate-insights.js +0 -6
  706. package/dist/lib/handlers/cron-regenerate-insights.js.map +0 -1
  707. package/dist/lib/handlers/cron-suggest-instructions.d.ts +0 -3
  708. package/dist/lib/handlers/cron-suggest-instructions.d.ts.map +0 -1
  709. package/dist/lib/handlers/cron-suggest-instructions.test.d.ts +0 -2
  710. package/dist/lib/handlers/cron-suggest-instructions.test.d.ts.map +0 -1
  711. package/dist/lib/handlers/cron-suggest-instructions.test.js +0 -80
  712. package/dist/lib/handlers/cron-suggest-instructions.test.js.map +0 -1
  713. package/dist/lib/handlers/process-conversation.d.ts +0 -35
  714. package/dist/lib/handlers/process-conversation.d.ts.map +0 -1
  715. package/dist/lib/handlers/process-eval.d.ts +0 -32
  716. package/dist/lib/handlers/process-eval.d.ts.map +0 -1
  717. package/dist/lib/handlers/process-insights.d.ts +0 -39
  718. package/dist/lib/handlers/process-insights.d.ts.map +0 -1
  719. package/dist/lib/handlers/process-launch.d.ts +0 -29
  720. package/dist/lib/handlers/process-launch.d.ts.map +0 -1
  721. package/dist/lib/handlers/process-session-goal.d.ts +0 -29
  722. package/dist/lib/handlers/process-session-goal.d.ts.map +0 -1
  723. package/dist/lib/handlers/process-session-goal.test.d.ts +0 -2
  724. package/dist/lib/handlers/process-session-goal.test.d.ts.map +0 -1
  725. package/dist/lib/handlers/process-session-goal.test.js +0 -134
  726. package/dist/lib/handlers/process-session-goal.test.js.map +0 -1
  727. package/dist/lib/hooks-config.d.ts +0 -119
  728. package/dist/lib/hooks-config.d.ts.map +0 -1
  729. package/dist/lib/hooks-config.test.d.ts +0 -2
  730. package/dist/lib/hooks-config.test.d.ts.map +0 -1
  731. package/dist/lib/hooks-config.test.js +0 -231
  732. package/dist/lib/hooks-config.test.js.map +0 -1
  733. package/dist/lib/insights-prompts.d.ts +0 -13
  734. package/dist/lib/insights-prompts.d.ts.map +0 -1
  735. package/dist/lib/llm-client.d.ts +0 -26
  736. package/dist/lib/llm-client.d.ts.map +0 -1
  737. package/dist/lib/llm-client.test.d.ts +0 -2
  738. package/dist/lib/llm-client.test.d.ts.map +0 -1
  739. package/dist/lib/llm-client.test.js +0 -62
  740. package/dist/lib/llm-client.test.js.map +0 -1
  741. package/dist/lib/mirror-writer-db.d.ts +0 -12
  742. package/dist/lib/mirror-writer-db.d.ts.map +0 -1
  743. package/dist/lib/mirror-writer-db.js +0 -51
  744. package/dist/lib/mirror-writer-db.js.map +0 -1
  745. package/dist/lib/mirror-writer.d.ts +0 -35
  746. package/dist/lib/mirror-writer.d.ts.map +0 -1
  747. package/dist/lib/mirror-writer.js +0 -27
  748. package/dist/lib/mirror-writer.js.map +0 -1
  749. package/dist/lib/mirror-writer.test.d.ts +0 -2
  750. package/dist/lib/mirror-writer.test.d.ts.map +0 -1
  751. package/dist/lib/mirror-writer.test.js +0 -47
  752. package/dist/lib/mirror-writer.test.js.map +0 -1
  753. package/dist/lib/output.d.ts +0 -4
  754. package/dist/lib/output.d.ts.map +0 -1
  755. package/dist/lib/output.test.d.ts +0 -2
  756. package/dist/lib/output.test.d.ts.map +0 -1
  757. package/dist/lib/output.test.js +0 -71
  758. package/dist/lib/output.test.js.map +0 -1
  759. package/dist/lib/permanent-job-error.d.ts +0 -17
  760. package/dist/lib/permanent-job-error.d.ts.map +0 -1
  761. package/dist/lib/permanent-job-error.test.d.ts +0 -2
  762. package/dist/lib/permanent-job-error.test.d.ts.map +0 -1
  763. package/dist/lib/permanent-job-error.test.js +0 -29
  764. package/dist/lib/permanent-job-error.test.js.map +0 -1
  765. package/dist/lib/provider-aggregator.d.ts +0 -24
  766. package/dist/lib/provider-aggregator.d.ts.map +0 -1
  767. package/dist/lib/provider-aggregator.test.d.ts +0 -2
  768. package/dist/lib/provider-aggregator.test.d.ts.map +0 -1
  769. package/dist/lib/provider-aggregator.test.js +0 -103
  770. package/dist/lib/provider-aggregator.test.js.map +0 -1
  771. package/dist/lib/skills-loader.d.ts +0 -6
  772. package/dist/lib/skills-loader.d.ts.map +0 -1
  773. package/dist/lib/types.d.ts +0 -48
  774. package/dist/lib/types.d.ts.map +0 -1
  775. package/dist/lib/version-check.d.ts +0 -11
  776. package/dist/lib/version-check.d.ts.map +0 -1
  777. package/dist/test-helpers.d.ts +0 -58
  778. package/dist/test-helpers.d.ts.map +0 -1
  779. package/dist/test-helpers.js +0 -58
  780. package/dist/test-helpers.js.map +0 -1
@@ -1,91 +1,106 @@
1
- import * as fs from 'node:fs';
2
- import * as path from 'node:path';
3
- import { Args, Flags } from '@oclif/core';
4
- import { BaseCommand } from '../../base-command.js';
5
- import { loadRegistry } from '../../lib/skills-loader.js';
6
- export default class SkillsInstall extends BaseCommand {
7
- static description = 'Install a skill from the registry into your project';
8
- static examples = [
9
- '<%= config.bin %> skills install tdd-workflow',
10
- '<%= config.bin %> skills install tdd-workflow --tool cursor',
11
- '<%= config.bin %> skills install tdd-workflow --preview',
12
- ];
13
- static args = {
14
- id: Args.string({ description: 'Skill ID to install', required: true }),
15
- };
16
- static flags = {
17
- tool: Flags.string({
18
- description: 'Target tool format',
19
- options: ['claude_code', 'cursor', 'copilot'],
20
- }),
21
- preview: Flags.boolean({ description: 'Preview content without writing', default: false }),
22
- dir: Flags.string({ description: 'Project directory', default: '.' }),
23
- };
24
- async run() {
25
- const { args, flags } = await this.parse(SkillsInstall);
26
- const catalog = await loadRegistry(this);
27
- const skill = catalog.get(args.id);
28
- if (!skill) {
29
- this.error(`Skill "${args.id}" not found. Try: rulemetric skills search`);
30
- }
31
- if (flags.preview) {
32
- this.log(`\n${skill.name}`);
33
- this.log(`${'─'.repeat(skill.name.length)}`);
34
- this.log(`Category: ${skill.category}`);
35
- this.log(`Tools: ${skill.tools.join(', ')}`);
36
- this.log(`Source: ${skill.source.url}\n`);
37
- this.log(skill.content.slice(0, 2000));
38
- if (skill.content.length > 2000) {
39
- this.log(`\n... (${skill.content.length - 2000} more characters)`);
40
- }
41
- return;
42
- }
43
- const projectDir = path.resolve(flags.dir);
44
- const tool = flags.tool ?? detectProjectTool(projectDir) ?? skill.tools[0];
45
- const targetPath = getTargetPath(projectDir, tool, skill.id);
46
- if (!targetPath) {
47
- this.error(`Cannot determine install path for tool "${tool}"`);
48
- }
49
- // Ensure directory exists
50
- const targetDir = path.dirname(targetPath);
51
- if (!fs.existsSync(targetDir)) {
52
- fs.mkdirSync(targetDir, { recursive: true });
53
- }
54
- if (fs.existsSync(targetPath)) {
55
- this.warn(`File already exists: ${targetPath}`);
56
- this.log(' Use --preview to view the skill content first.');
57
- return;
58
- }
59
- fs.writeFileSync(targetPath, skill.content);
60
- this.log(`Installed "${skill.name}" to ${path.relative(projectDir, targetPath)}`);
61
- this.log(` Source: ${skill.source.url}`);
1
+ import {
2
+ loadRegistry
3
+ } from "../../chunk-4BHDHHKL.js";
4
+ import {
5
+ BaseCommand
6
+ } from "../../chunk-S56LOTGQ.js";
7
+ import "../../chunk-OGVORIFM.js";
8
+ import "../../chunk-2AM54TUK.js";
9
+ import "../../chunk-EJOI2ZGU.js";
10
+ import "../../chunk-KZRFUXGF.js";
11
+ import "../../chunk-EKJ2CABV.js";
12
+ import "../../chunk-NSBPE2FW.js";
13
+
14
+ // src/commands/skills/install.ts
15
+ import * as fs from "node:fs";
16
+ import * as path from "node:path";
17
+ import { Args, Flags } from "@oclif/core";
18
+ var SkillsInstall = class _SkillsInstall extends BaseCommand {
19
+ static description = "Install a skill from the registry into your project";
20
+ static examples = [
21
+ "<%= config.bin %> skills install tdd-workflow",
22
+ "<%= config.bin %> skills install tdd-workflow --tool cursor",
23
+ "<%= config.bin %> skills install tdd-workflow --preview"
24
+ ];
25
+ static args = {
26
+ id: Args.string({ description: "Skill ID to install", required: true })
27
+ };
28
+ static flags = {
29
+ tool: Flags.string({
30
+ description: "Target tool format",
31
+ options: ["claude_code", "cursor", "copilot"]
32
+ }),
33
+ preview: Flags.boolean({ description: "Preview content without writing", default: false }),
34
+ dir: Flags.string({ description: "Project directory", default: "." })
35
+ };
36
+ async run() {
37
+ const { args, flags } = await this.parse(_SkillsInstall);
38
+ const catalog = await loadRegistry(this);
39
+ const skill = catalog.get(args.id);
40
+ if (!skill) {
41
+ this.error(`Skill "${args.id}" not found. Try: rulemetric skills search`);
62
42
  }
63
- }
64
- /** Detect which AI tool the project is configured for. */
65
- function detectProjectTool(dir) {
66
- if (fs.existsSync(path.join(dir, 'CLAUDE.md')) || fs.existsSync(path.join(dir, '.claude'))) {
67
- return 'claude_code';
43
+ if (flags.preview) {
44
+ this.log(`
45
+ ${skill.name}`);
46
+ this.log(`${"\u2500".repeat(skill.name.length)}`);
47
+ this.log(`Category: ${skill.category}`);
48
+ this.log(`Tools: ${skill.tools.join(", ")}`);
49
+ this.log(`Source: ${skill.source.url}
50
+ `);
51
+ this.log(skill.content.slice(0, 2e3));
52
+ if (skill.content.length > 2e3) {
53
+ this.log(`
54
+ ... (${skill.content.length - 2e3} more characters)`);
55
+ }
56
+ return;
57
+ }
58
+ const projectDir = path.resolve(flags.dir);
59
+ const tool = flags.tool ?? detectProjectTool(projectDir) ?? skill.tools[0];
60
+ const targetPath = getTargetPath(projectDir, tool, skill.id);
61
+ if (!targetPath) {
62
+ this.error(`Cannot determine install path for tool "${tool}"`);
68
63
  }
69
- if (fs.existsSync(path.join(dir, '.cursorrules')) || fs.existsSync(path.join(dir, '.cursor'))) {
70
- return 'cursor';
64
+ const targetDir = path.dirname(targetPath);
65
+ if (!fs.existsSync(targetDir)) {
66
+ fs.mkdirSync(targetDir, { recursive: true });
71
67
  }
72
- if (fs.existsSync(path.join(dir, '.github', 'copilot-instructions.md'))) {
73
- return 'copilot';
68
+ if (fs.existsSync(targetPath)) {
69
+ this.warn(`File already exists: ${targetPath}`);
70
+ this.log(" Use --preview to view the skill content first.");
71
+ return;
74
72
  }
75
- return null;
73
+ fs.writeFileSync(targetPath, skill.content);
74
+ this.log(`Installed "${skill.name}" to ${path.relative(projectDir, targetPath)}`);
75
+ this.log(` Source: ${skill.source.url}`);
76
+ }
77
+ };
78
+ function detectProjectTool(dir) {
79
+ if (fs.existsSync(path.join(dir, "CLAUDE.md")) || fs.existsSync(path.join(dir, ".claude"))) {
80
+ return "claude_code";
81
+ }
82
+ if (fs.existsSync(path.join(dir, ".cursorrules")) || fs.existsSync(path.join(dir, ".cursor"))) {
83
+ return "cursor";
84
+ }
85
+ if (fs.existsSync(path.join(dir, ".github", "copilot-instructions.md"))) {
86
+ return "copilot";
87
+ }
88
+ return null;
76
89
  }
77
- /** Determine the file path to write a skill based on the target tool. */
78
90
  function getTargetPath(dir, tool, skillId) {
79
- const safeName = skillId.replace(/[^a-z0-9-]/g, '-');
80
- switch (tool) {
81
- case 'claude_code':
82
- return path.join(dir, '.claude', 'skills', `${safeName}.md`);
83
- case 'cursor':
84
- return path.join(dir, '.cursor', 'rules', `${safeName}.mdc`);
85
- case 'copilot':
86
- return path.join(dir, '.github', 'agents', `${safeName}.md`);
87
- default:
88
- return path.join(dir, '.claude', 'skills', `${safeName}.md`);
89
- }
91
+ const safeName = skillId.replace(/[^a-z0-9-]/g, "-");
92
+ switch (tool) {
93
+ case "claude_code":
94
+ return path.join(dir, ".claude", "skills", `${safeName}.md`);
95
+ case "cursor":
96
+ return path.join(dir, ".cursor", "rules", `${safeName}.mdc`);
97
+ case "copilot":
98
+ return path.join(dir, ".github", "agents", `${safeName}.md`);
99
+ default:
100
+ return path.join(dir, ".claude", "skills", `${safeName}.md`);
101
+ }
90
102
  }
91
- //# sourceMappingURL=install.js.map
103
+ export {
104
+ SkillsInstall as default
105
+ };
106
+ //# sourceMappingURL=install.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/skills/install.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/commands/skills/install.ts"],
4
+ "sourcesContent": ["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { Args, Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { loadRegistry } from '../../lib/skills-loader.js';\n\nexport default class SkillsInstall extends BaseCommand {\n static override description = 'Install a skill from the registry into your project';\n\n static override examples = [\n '<%= config.bin %> skills install tdd-workflow',\n '<%= config.bin %> skills install tdd-workflow --tool cursor',\n '<%= config.bin %> skills install tdd-workflow --preview',\n ];\n\n static override args = {\n id: Args.string({ description: 'Skill ID to install', required: true }),\n };\n\n static override flags = {\n tool: Flags.string({\n description: 'Target tool format',\n options: ['claude_code', 'cursor', 'copilot'],\n }),\n preview: Flags.boolean({ description: 'Preview content without writing', default: false }),\n dir: Flags.string({ description: 'Project directory', default: '.' }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(SkillsInstall);\n\n const catalog = await loadRegistry(this);\n const skill = catalog.get(args.id);\n\n if (!skill) {\n this.error(`Skill \"${args.id}\" not found. Try: rulemetric skills search`);\n }\n\n if (flags.preview) {\n this.log(`\\n${skill.name}`);\n this.log(`${'\u2500'.repeat(skill.name.length)}`);\n this.log(`Category: ${skill.category}`);\n this.log(`Tools: ${skill.tools.join(', ')}`);\n this.log(`Source: ${skill.source.url}\\n`);\n this.log(skill.content.slice(0, 2000));\n if (skill.content.length > 2000) {\n this.log(`\\n... (${skill.content.length - 2000} more characters)`);\n }\n return;\n }\n\n const projectDir = path.resolve(flags.dir);\n const tool = flags.tool ?? detectProjectTool(projectDir) ?? skill.tools[0];\n\n const targetPath = getTargetPath(projectDir, tool, skill.id);\n if (!targetPath) {\n this.error(`Cannot determine install path for tool \"${tool}\"`);\n }\n\n // Ensure directory exists\n const targetDir = path.dirname(targetPath);\n if (!fs.existsSync(targetDir)) {\n fs.mkdirSync(targetDir, { recursive: true });\n }\n\n if (fs.existsSync(targetPath)) {\n this.warn(`File already exists: ${targetPath}`);\n this.log(' Use --preview to view the skill content first.');\n return;\n }\n\n fs.writeFileSync(targetPath, skill.content);\n this.log(`Installed \"${skill.name}\" to ${path.relative(projectDir, targetPath)}`);\n this.log(` Source: ${skill.source.url}`);\n }\n}\n\n/** Detect which AI tool the project is configured for. */\nfunction detectProjectTool(dir: string): string | null {\n if (fs.existsSync(path.join(dir, 'CLAUDE.md')) || fs.existsSync(path.join(dir, '.claude'))) {\n return 'claude_code';\n }\n if (fs.existsSync(path.join(dir, '.cursorrules')) || fs.existsSync(path.join(dir, '.cursor'))) {\n return 'cursor';\n }\n if (fs.existsSync(path.join(dir, '.github', 'copilot-instructions.md'))) {\n return 'copilot';\n }\n return null;\n}\n\n/** Determine the file path to write a skill based on the target tool. */\nfunction getTargetPath(dir: string, tool: string, skillId: string): string | null {\n const safeName = skillId.replace(/[^a-z0-9-]/g, '-');\n switch (tool) {\n case 'claude_code':\n return path.join(dir, '.claude', 'skills', `${safeName}.md`);\n case 'cursor':\n return path.join(dir, '.cursor', 'rules', `${safeName}.mdc`);\n case 'copilot':\n return path.join(dir, '.github', 'agents', `${safeName}.md`);\n default:\n return path.join(dir, '.claude', 'skills', `${safeName}.md`);\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,47 +1,64 @@
1
- import { Flags } from '@oclif/core';
2
- import { BaseCommand } from '../../base-command.js';
3
- import { loadRegistry } from '../../lib/skills-loader.js';
4
- export default class SkillsList extends BaseCommand {
5
- static description = 'List skills in the registry';
6
- static examples = [
7
- '<%= config.bin %> skills list',
8
- '<%= config.bin %> skills list --stats',
9
- ];
10
- static flags = {
11
- stats: Flags.boolean({ description: 'Show registry statistics', default: false }),
12
- limit: Flags.integer({ description: 'Max skills to show', default: 30 }),
13
- };
14
- async run() {
15
- const { flags } = await this.parse(SkillsList);
16
- const catalog = await loadRegistry(this);
17
- if (flags.stats) {
18
- this.log(`Skills Registry Statistics\n`);
19
- this.log(` Total skills: ${catalog.size}`);
20
- this.log(` Categories: ${catalog.categories().join(', ')}`);
21
- this.log(` Tools: ${catalog.tools().join(', ')}`);
22
- this.log(` Top tags: ${catalog.tags().slice(0, 15).join(', ')}`);
23
- return;
24
- }
25
- const skills = catalog.search({ limit: flags.limit });
26
- if (skills.length === 0) {
27
- this.log('Registry is empty. Run: rulemetric skills update');
28
- return;
29
- }
30
- this.log(`Showing ${skills.length} of ${catalog.size} skills (sorted by popularity):\n`);
31
- for (const skill of skills) {
32
- const stars = skill.popularity?.stars ? `${formatStars(skill.popularity.stars)} stars` : '';
33
- this.log(` ${pad(skill.id, 40)} ${pad(skill.category, 14)} ${stars}`);
34
- }
35
- this.log(`\nSearch: rulemetric skills search <query>`);
36
- this.log(`Install: rulemetric skills install <id>`);
1
+ import {
2
+ loadRegistry
3
+ } from "../../chunk-4BHDHHKL.js";
4
+ import {
5
+ BaseCommand
6
+ } from "../../chunk-S56LOTGQ.js";
7
+ import "../../chunk-OGVORIFM.js";
8
+ import "../../chunk-2AM54TUK.js";
9
+ import "../../chunk-EJOI2ZGU.js";
10
+ import "../../chunk-KZRFUXGF.js";
11
+ import "../../chunk-EKJ2CABV.js";
12
+ import "../../chunk-NSBPE2FW.js";
13
+
14
+ // src/commands/skills/list.ts
15
+ import { Flags } from "@oclif/core";
16
+ var SkillsList = class _SkillsList extends BaseCommand {
17
+ static description = "List skills in the registry";
18
+ static examples = [
19
+ "<%= config.bin %> skills list",
20
+ "<%= config.bin %> skills list --stats"
21
+ ];
22
+ static flags = {
23
+ stats: Flags.boolean({ description: "Show registry statistics", default: false }),
24
+ limit: Flags.integer({ description: "Max skills to show", default: 30 })
25
+ };
26
+ async run() {
27
+ const { flags } = await this.parse(_SkillsList);
28
+ const catalog = await loadRegistry(this);
29
+ if (flags.stats) {
30
+ this.log(`Skills Registry Statistics
31
+ `);
32
+ this.log(` Total skills: ${catalog.size}`);
33
+ this.log(` Categories: ${catalog.categories().join(", ")}`);
34
+ this.log(` Tools: ${catalog.tools().join(", ")}`);
35
+ this.log(` Top tags: ${catalog.tags().slice(0, 15).join(", ")}`);
36
+ return;
37
37
  }
38
- }
38
+ const skills = catalog.search({ limit: flags.limit });
39
+ if (skills.length === 0) {
40
+ this.log("Registry is empty. Run: rulemetric skills update");
41
+ return;
42
+ }
43
+ this.log(`Showing ${skills.length} of ${catalog.size} skills (sorted by popularity):
44
+ `);
45
+ for (const skill of skills) {
46
+ const stars = skill.popularity?.stars ? `${formatStars(skill.popularity.stars)} stars` : "";
47
+ this.log(` ${pad(skill.id, 40)} ${pad(skill.category, 14)} ${stars}`);
48
+ }
49
+ this.log(`
50
+ Search: rulemetric skills search <query>`);
51
+ this.log(`Install: rulemetric skills install <id>`);
52
+ }
53
+ };
39
54
  function formatStars(n) {
40
- if (n >= 1000)
41
- return `${(n / 1000).toFixed(1)}k`;
42
- return String(n);
55
+ if (n >= 1e3) return `${(n / 1e3).toFixed(1)}k`;
56
+ return String(n);
43
57
  }
44
58
  function pad(s, n) {
45
- return s.length > n ? s.slice(0, n - 1) + '…' : s.padEnd(n);
59
+ return s.length > n ? s.slice(0, n - 1) + "\u2026" : s.padEnd(n);
46
60
  }
47
- //# sourceMappingURL=list.js.map
61
+ export {
62
+ SkillsList as default
63
+ };
64
+ //# sourceMappingURL=list.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/skills/list.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/commands/skills/list.ts"],
4
+ "sourcesContent": ["import { Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { loadRegistry } from '../../lib/skills-loader.js';\n\nexport default class SkillsList extends BaseCommand {\n static override description = 'List skills in the registry';\n\n static override examples = [\n '<%= config.bin %> skills list',\n '<%= config.bin %> skills list --stats',\n ];\n\n static override flags = {\n stats: Flags.boolean({ description: 'Show registry statistics', default: false }),\n limit: Flags.integer({ description: 'Max skills to show', default: 30 }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(SkillsList);\n\n const catalog = await loadRegistry(this);\n\n if (flags.stats) {\n this.log(`Skills Registry Statistics\\n`);\n this.log(` Total skills: ${catalog.size}`);\n this.log(` Categories: ${catalog.categories().join(', ')}`);\n this.log(` Tools: ${catalog.tools().join(', ')}`);\n this.log(` Top tags: ${catalog.tags().slice(0, 15).join(', ')}`);\n return;\n }\n\n const skills = catalog.search({ limit: flags.limit });\n\n if (skills.length === 0) {\n this.log('Registry is empty. Run: rulemetric skills update');\n return;\n }\n\n this.log(`Showing ${skills.length} of ${catalog.size} skills (sorted by popularity):\\n`);\n\n for (const skill of skills) {\n const stars = skill.popularity?.stars ? `${formatStars(skill.popularity.stars)} stars` : '';\n this.log(` ${pad(skill.id, 40)} ${pad(skill.category, 14)} ${stars}`);\n }\n\n this.log(`\\nSearch: rulemetric skills search <query>`);\n this.log(`Install: rulemetric skills install <id>`);\n }\n}\n\nfunction formatStars(n: number): string {\n if (n >= 1000) return `${(n / 1000).toFixed(1)}k`;\n return String(n);\n}\n\nfunction pad(s: string, n: number): string {\n return s.length > n ? s.slice(0, n - 1) + '\u2026' : s.padEnd(n);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;AAAA,SAAS,aAAa;AAItB,IAAqB,aAArB,MAAqB,oBAAmB,YAAY;AAAA,EAClD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,OAAO,MAAM,QAAQ,EAAE,aAAa,4BAA4B,SAAS,MAAM,CAAC;AAAA,IAChF,OAAO,MAAM,QAAQ,EAAE,aAAa,sBAAsB,SAAS,GAAG,CAAC;AAAA,EACzE;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,WAAU;AAE7C,UAAM,UAAU,MAAM,aAAa,IAAI;AAEvC,QAAI,MAAM,OAAO;AACf,WAAK,IAAI;AAAA,CAA8B;AACvC,WAAK,IAAI,mBAAmB,QAAQ,IAAI,EAAE;AAC1C,WAAK,IAAI,iBAAiB,QAAQ,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE;AAC3D,WAAK,IAAI,YAAY,QAAQ,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACjD,WAAK,IAAI,eAAe,QAAQ,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;AAChE;AAAA,IACF;AAEA,UAAM,SAAS,QAAQ,OAAO,EAAE,OAAO,MAAM,MAAM,CAAC;AAEpD,QAAI,OAAO,WAAW,GAAG;AACvB,WAAK,IAAI,kDAAkD;AAC3D;AAAA,IACF;AAEA,SAAK,IAAI,WAAW,OAAO,MAAM,OAAO,QAAQ,IAAI;AAAA,CAAmC;AAEvF,eAAW,SAAS,QAAQ;AAC1B,YAAM,QAAQ,MAAM,YAAY,QAAQ,GAAG,YAAY,MAAM,WAAW,KAAK,CAAC,WAAW;AACzF,WAAK,IAAI,KAAK,IAAI,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,MAAM,UAAU,EAAE,CAAC,IAAI,KAAK,EAAE;AAAA,IACvE;AAEA,SAAK,IAAI;AAAA,yCAA4C;AACrD,SAAK,IAAI,yCAAyC;AAAA,EACpD;AACF;AAEA,SAAS,YAAY,GAAmB;AACtC,MAAI,KAAK,IAAM,QAAO,IAAI,IAAI,KAAM,QAAQ,CAAC,CAAC;AAC9C,SAAO,OAAO,CAAC;AACjB;AAEA,SAAS,IAAI,GAAW,GAAmB;AACzC,SAAO,EAAE,SAAS,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,WAAM,EAAE,OAAO,CAAC;AAC5D;",
6
+ "names": []
7
+ }
@@ -1,80 +1,97 @@
1
- import * as fs from 'node:fs';
2
- import * as path from 'node:path';
3
- import { Args, Flags } from '@oclif/core';
4
- import { BaseCommand } from '../../base-command.js';
5
- import { apiPost } from '../../lib/api-client.js';
6
- export default class SkillsPublish extends BaseCommand {
7
- static description = 'Submit a skill file to the RuleMetric skills registry';
8
- static examples = [
9
- '<%= config.bin %> skills publish ./my-skill.md',
10
- '<%= config.bin %> skills publish ./my-skill.md --category workflow --tool claude_code',
11
- ];
12
- static args = {
13
- file: Args.string({ description: 'Path to skill file (.md)', required: true }),
14
- };
15
- static flags = {
16
- name: Flags.string({ description: 'Skill name (defaults to filename)' }),
17
- description: Flags.string({ description: 'One-line description' }),
18
- category: Flags.string({
19
- description: 'Skill category',
20
- options: [
21
- 'workflow', 'language', 'framework', 'tool', 'security',
22
- 'testing', 'architecture', 'devops', 'documentation',
23
- 'performance', 'other',
24
- ],
25
- default: 'other',
26
- }),
27
- tool: Flags.string({
28
- description: 'Primary tool this skill targets',
29
- options: ['claude_code', 'cursor', 'copilot', 'windsurf', 'universal'],
30
- default: 'universal',
31
- }),
32
- tags: Flags.string({ description: 'Comma-separated tags', default: '' }),
1
+ import {
2
+ BaseCommand
3
+ } from "../../chunk-S56LOTGQ.js";
4
+ import "../../chunk-OGVORIFM.js";
5
+ import "../../chunk-2AM54TUK.js";
6
+ import {
7
+ apiPost
8
+ } from "../../chunk-EJOI2ZGU.js";
9
+ import "../../chunk-KZRFUXGF.js";
10
+ import "../../chunk-EKJ2CABV.js";
11
+ import "../../chunk-NSBPE2FW.js";
12
+
13
+ // src/commands/skills/publish.ts
14
+ import * as fs from "node:fs";
15
+ import * as path from "node:path";
16
+ import { Args, Flags } from "@oclif/core";
17
+ var SkillsPublish = class _SkillsPublish extends BaseCommand {
18
+ static description = "Submit a skill file to the RuleMetric skills registry";
19
+ static examples = [
20
+ "<%= config.bin %> skills publish ./my-skill.md",
21
+ "<%= config.bin %> skills publish ./my-skill.md --category workflow --tool claude_code"
22
+ ];
23
+ static args = {
24
+ file: Args.string({ description: "Path to skill file (.md)", required: true })
25
+ };
26
+ static flags = {
27
+ name: Flags.string({ description: "Skill name (defaults to filename)" }),
28
+ description: Flags.string({ description: "One-line description" }),
29
+ category: Flags.string({
30
+ description: "Skill category",
31
+ options: [
32
+ "workflow",
33
+ "language",
34
+ "framework",
35
+ "tool",
36
+ "security",
37
+ "testing",
38
+ "architecture",
39
+ "devops",
40
+ "documentation",
41
+ "performance",
42
+ "other"
43
+ ],
44
+ default: "other"
45
+ }),
46
+ tool: Flags.string({
47
+ description: "Primary tool this skill targets",
48
+ options: ["claude_code", "cursor", "copilot", "windsurf", "universal"],
49
+ default: "universal"
50
+ }),
51
+ tags: Flags.string({ description: "Comma-separated tags", default: "" })
52
+ };
53
+ async run() {
54
+ const { args, flags } = await this.parse(_SkillsPublish);
55
+ this.requireAuth();
56
+ const filePath = path.resolve(args.file);
57
+ if (!fs.existsSync(filePath)) {
58
+ this.error(`File not found: ${filePath}`);
59
+ }
60
+ const content = fs.readFileSync(filePath, "utf-8");
61
+ if (content.trim().length < 20) {
62
+ this.error("Skill content is too short (minimum 20 characters)");
63
+ }
64
+ const basename2 = path.basename(filePath, path.extname(filePath));
65
+ const name = flags.name ?? basename2.replace(/[-_]+/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
66
+ const id = basename2.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
67
+ const tags = flags.tags ? flags.tags.split(",").map((t) => t.trim()).filter(Boolean) : [];
68
+ this.log(`Publishing skill: ${name} (${id})`);
69
+ this.log(` Category: ${flags.category}`);
70
+ this.log(` Tool: ${flags.tool}`);
71
+ if (tags.length > 0) this.log(` Tags: ${tags.join(", ")}`);
72
+ this.log(` Content: ${content.length} characters
73
+ `);
74
+ const payload = {
75
+ id,
76
+ name,
77
+ description: flags.description ?? `Community skill: ${name}`,
78
+ category: flags.category,
79
+ tools: [flags.tool],
80
+ tags,
81
+ content
33
82
  };
34
- async run() {
35
- const { args, flags } = await this.parse(SkillsPublish);
36
- this.requireAuth();
37
- const filePath = path.resolve(args.file);
38
- if (!fs.existsSync(filePath)) {
39
- this.error(`File not found: ${filePath}`);
40
- }
41
- const content = fs.readFileSync(filePath, 'utf-8');
42
- if (content.trim().length < 20) {
43
- this.error('Skill content is too short (minimum 20 characters)');
44
- }
45
- const basename = path.basename(filePath, path.extname(filePath));
46
- const name = flags.name ?? basename
47
- .replace(/[-_]+/g, ' ')
48
- .replace(/\b\w/g, c => c.toUpperCase());
49
- const id = basename.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
50
- const tags = flags.tags
51
- ? flags.tags.split(',').map(t => t.trim()).filter(Boolean)
52
- : [];
53
- this.log(`Publishing skill: ${name} (${id})`);
54
- this.log(` Category: ${flags.category}`);
55
- this.log(` Tool: ${flags.tool}`);
56
- if (tags.length > 0)
57
- this.log(` Tags: ${tags.join(', ')}`);
58
- this.log(` Content: ${content.length} characters\n`);
59
- const payload = {
60
- id,
61
- name,
62
- description: flags.description ?? `Community skill: ${name}`,
63
- category: flags.category,
64
- tools: [flags.tool],
65
- tags,
66
- content,
67
- };
68
- try {
69
- const result = await apiPost('/api/skills/publish', payload);
70
- this.log(`Published! ${result.message ?? `Skill "${name}" submitted to the registry.`}`);
71
- }
72
- catch (err) {
73
- if (err instanceof Error) {
74
- this.error(`Failed to publish: ${err.message}`);
75
- }
76
- throw err;
77
- }
83
+ try {
84
+ const result = await apiPost("/api/skills/publish", payload);
85
+ this.log(`Published! ${result.message ?? `Skill "${name}" submitted to the registry.`}`);
86
+ } catch (err) {
87
+ if (err instanceof Error) {
88
+ this.error(`Failed to publish: ${err.message}`);
89
+ }
90
+ throw err;
78
91
  }
79
- }
80
- //# sourceMappingURL=publish.js.map
92
+ }
93
+ };
94
+ export {
95
+ SkillsPublish as default
96
+ };
97
+ //# sourceMappingURL=publish.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/commands/skills/publish.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/commands/skills/publish.ts"],
4
+ "sourcesContent": ["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { Args, Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiPost } from '../../lib/api-client.js';\n\nexport default class SkillsPublish extends BaseCommand {\n static override description = 'Submit a skill file to the RuleMetric skills registry';\n\n static override examples = [\n '<%= config.bin %> skills publish ./my-skill.md',\n '<%= config.bin %> skills publish ./my-skill.md --category workflow --tool claude_code',\n ];\n\n static override args = {\n file: Args.string({ description: 'Path to skill file (.md)', required: true }),\n };\n\n static override flags = {\n name: Flags.string({ description: 'Skill name (defaults to filename)' }),\n description: Flags.string({ description: 'One-line description' }),\n category: Flags.string({\n description: 'Skill category',\n options: [\n 'workflow', 'language', 'framework', 'tool', 'security',\n 'testing', 'architecture', 'devops', 'documentation',\n 'performance', 'other',\n ],\n default: 'other',\n }),\n tool: Flags.string({\n description: 'Primary tool this skill targets',\n options: ['claude_code', 'cursor', 'copilot', 'windsurf', 'universal'],\n default: 'universal',\n }),\n tags: Flags.string({ description: 'Comma-separated tags', default: '' }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(SkillsPublish);\n this.requireAuth();\n\n const filePath = path.resolve(args.file);\n if (!fs.existsSync(filePath)) {\n this.error(`File not found: ${filePath}`);\n }\n\n const content = fs.readFileSync(filePath, 'utf-8');\n if (content.trim().length < 20) {\n this.error('Skill content is too short (minimum 20 characters)');\n }\n\n const basename = path.basename(filePath, path.extname(filePath));\n const name = flags.name ?? basename\n .replace(/[-_]+/g, ' ')\n .replace(/\\b\\w/g, c => c.toUpperCase());\n\n const id = basename.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');\n\n const tags = flags.tags\n ? flags.tags.split(',').map(t => t.trim()).filter(Boolean)\n : [];\n\n this.log(`Publishing skill: ${name} (${id})`);\n this.log(` Category: ${flags.category}`);\n this.log(` Tool: ${flags.tool}`);\n if (tags.length > 0) this.log(` Tags: ${tags.join(', ')}`);\n this.log(` Content: ${content.length} characters\\n`);\n\n const payload = {\n id,\n name,\n description: flags.description ?? `Community skill: ${name}`,\n category: flags.category,\n tools: [flags.tool],\n tags,\n content,\n };\n\n try {\n const result = await apiPost<{ id: string; message: string }>('/api/skills/publish', payload);\n this.log(`Published! ${result.message ?? `Skill \"${name}\" submitted to the registry.`}`);\n } catch (err) {\n if (err instanceof Error) {\n this.error(`Failed to publish: ${err.message}`);\n }\n throw err;\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,MAAM,aAAa;AAI5B,IAAqB,gBAArB,MAAqB,uBAAsB,YAAY;AAAA,EACrD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,MAAM,KAAK,OAAO,EAAE,aAAa,4BAA4B,UAAU,KAAK,CAAC;AAAA,EAC/E;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,MAAM,MAAM,OAAO,EAAE,aAAa,oCAAoC,CAAC;AAAA,IACvE,aAAa,MAAM,OAAO,EAAE,aAAa,uBAAuB,CAAC;AAAA,IACjE,UAAU,MAAM,OAAO;AAAA,MACrB,aAAa;AAAA,MACb,SAAS;AAAA,QACP;AAAA,QAAY;AAAA,QAAY;AAAA,QAAa;AAAA,QAAQ;AAAA,QAC7C;AAAA,QAAW;AAAA,QAAgB;AAAA,QAAU;AAAA,QACrC;AAAA,QAAe;AAAA,MACjB;AAAA,MACA,SAAS;AAAA,IACX,CAAC;AAAA,IACD,MAAM,MAAM,OAAO;AAAA,MACjB,aAAa;AAAA,MACb,SAAS,CAAC,eAAe,UAAU,WAAW,YAAY,WAAW;AAAA,MACrE,SAAS;AAAA,IACX,CAAC;AAAA,IACD,MAAM,MAAM,OAAO,EAAE,aAAa,wBAAwB,SAAS,GAAG,CAAC;AAAA,EACzE;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,cAAa;AACtD,SAAK,YAAY;AAEjB,UAAM,WAAgB,aAAQ,KAAK,IAAI;AACvC,QAAI,CAAI,cAAW,QAAQ,GAAG;AAC5B,WAAK,MAAM,mBAAmB,QAAQ,EAAE;AAAA,IAC1C;AAEA,UAAM,UAAa,gBAAa,UAAU,OAAO;AACjD,QAAI,QAAQ,KAAK,EAAE,SAAS,IAAI;AAC9B,WAAK,MAAM,oDAAoD;AAAA,IACjE;AAEA,UAAMA,YAAgB,cAAS,UAAe,aAAQ,QAAQ,CAAC;AAC/D,UAAM,OAAO,MAAM,QAAQA,UACxB,QAAQ,UAAU,GAAG,EACrB,QAAQ,SAAS,OAAK,EAAE,YAAY,CAAC;AAExC,UAAM,KAAKA,UAAS,YAAY,EAAE,QAAQ,eAAe,GAAG,EAAE,QAAQ,UAAU,EAAE;AAElF,UAAM,OAAO,MAAM,OACf,MAAM,KAAK,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO,IACvD,CAAC;AAEL,SAAK,IAAI,qBAAqB,IAAI,KAAK,EAAE,GAAG;AAC5C,SAAK,IAAI,eAAe,MAAM,QAAQ,EAAE;AACxC,SAAK,IAAI,WAAW,MAAM,IAAI,EAAE;AAChC,QAAI,KAAK,SAAS,EAAG,MAAK,IAAI,WAAW,KAAK,KAAK,IAAI,CAAC,EAAE;AAC1D,SAAK,IAAI,cAAc,QAAQ,MAAM;AAAA,CAAe;AAEpD,UAAM,UAAU;AAAA,MACd;AAAA,MACA;AAAA,MACA,aAAa,MAAM,eAAe,oBAAoB,IAAI;AAAA,MAC1D,UAAU,MAAM;AAAA,MAChB,OAAO,CAAC,MAAM,IAAI;AAAA,MAClB;AAAA,MACA;AAAA,IACF;AAEA,QAAI;AACF,YAAM,SAAS,MAAM,QAAyC,uBAAuB,OAAO;AAC5F,WAAK,IAAI,cAAc,OAAO,WAAW,UAAU,IAAI,8BAA8B,EAAE;AAAA,IACzF,SAAS,KAAK;AACZ,UAAI,eAAe,OAAO;AACxB,aAAK,MAAM,sBAAsB,IAAI,OAAO,EAAE;AAAA,MAChD;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACF;",
6
+ "names": ["basename"]
7
+ }