@rulemetric/cli 0.7.3 → 0.7.4

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 (547) hide show
  1. package/dist/base-command.js +1 -14
  2. package/dist/chunk-2TC6WCUT.js +34 -0
  3. package/dist/chunk-2UC3ULIG.js +1 -0
  4. package/dist/chunk-3AV3GTMP.js +1 -0
  5. package/dist/chunk-4Z5ECCJE.js +1 -0
  6. package/dist/chunk-5RBLIVBF.js +1 -0
  7. package/dist/chunk-67QCYUJU.js +1 -0
  8. package/dist/chunk-6QKI756T.js +2 -0
  9. package/dist/chunk-6V4WM73L.js +1 -0
  10. package/dist/chunk-6XEC6474.js +1 -0
  11. package/dist/chunk-72XLQE3X.js +2 -0
  12. package/dist/chunk-7DFNBRLY.js +61 -0
  13. package/dist/chunk-7XQ4VPLC.js +2 -0
  14. package/dist/chunk-AHRHCERJ.js +1 -0
  15. package/dist/chunk-ARNZQBMX.js +1 -0
  16. package/dist/chunk-CADKBP3D.js +58 -0
  17. package/dist/chunk-CDI5CCHU.js +1 -0
  18. package/dist/chunk-CNQ5DTNC.js +1 -0
  19. package/dist/chunk-CRAKDQ4H.js +1 -0
  20. package/dist/chunk-DNF4HDI6.js +14 -0
  21. package/dist/chunk-DSO2U4Y6.js +56 -0
  22. package/dist/chunk-DT4GKEP5.js +5 -0
  23. package/dist/chunk-DVN7GFJG.js +1 -0
  24. package/dist/chunk-E4SFUPYR.js +15 -0
  25. package/dist/chunk-EUHNCVJQ.js +33 -0
  26. package/dist/chunk-F2VP4B4J.js +1 -0
  27. package/dist/chunk-FEHM5OKW.js +1 -0
  28. package/dist/chunk-FHVBTDBM.js +69 -0
  29. package/dist/chunk-GBMF3TP6.js +1 -0
  30. package/dist/chunk-GY5IJ4RS.js +1 -0
  31. package/dist/chunk-HOHD5HY2.js +5 -0
  32. package/dist/chunk-HP2BUPGS.js +24 -0
  33. package/dist/{chunk-OQBBVTDG.js → chunk-I2DZGJRR.js} +6 -71
  34. package/dist/chunk-I4YJ7NTX.js +1 -0
  35. package/dist/chunk-IY5NXR3N.js +1 -0
  36. package/dist/chunk-IZTIYR5Q.js +2 -0
  37. package/dist/chunk-KKDHD4XA.js +2 -0
  38. package/dist/chunk-LQRYQE6Q.js +4 -0
  39. package/dist/chunk-M6AJDVCL.js +5 -0
  40. package/dist/chunk-MGHFDHHM.js +1 -0
  41. package/dist/chunk-ML36XQW7.js +1 -0
  42. package/dist/chunk-MODXEGCU.js +1 -0
  43. package/dist/chunk-MVM6OGAF.js +4 -0
  44. package/dist/chunk-N7ODX6PO.js +1 -0
  45. package/dist/chunk-NBTC5FNV.js +1 -0
  46. package/dist/chunk-NJ5UED3H.js +1 -0
  47. package/dist/chunk-NVKX36YN.js +3 -0
  48. package/dist/chunk-NVOTOQBA.js +1 -0
  49. package/dist/chunk-O7ZMHCMG.js +31 -0
  50. package/dist/chunk-OMXUK4M6.js +1 -0
  51. package/dist/chunk-PZS2KOU7.js +1 -0
  52. package/dist/chunk-RSKQRVPJ.js +1 -0
  53. package/dist/chunk-RTEATXTP.js +1 -0
  54. package/dist/chunk-RTWRHIKY.js +7 -0
  55. package/dist/chunk-RVO4HV3M.js +1 -0
  56. package/dist/chunk-SBILN45P.js +1 -0
  57. package/dist/chunk-SZ62CP55.js +1 -0
  58. package/dist/chunk-T3W5N3BP.js +2 -0
  59. package/dist/chunk-TDD7IOV2.js +1 -0
  60. package/dist/chunk-TIQ7DQ3M.js +1 -0
  61. package/dist/chunk-TU2AR6XO.js +1 -0
  62. package/dist/chunk-UF6US7VU.js +1 -0
  63. package/dist/chunk-V5QFOF4F.js +9 -0
  64. package/dist/chunk-V5U3E4BZ.js +1 -0
  65. package/dist/chunk-VAFAH6QL.js +1 -0
  66. package/dist/chunk-VMWY7KHH.js +1 -0
  67. package/dist/chunk-VUGRXM7R.js +1 -0
  68. package/dist/{chunk-XZXS2W24.js → chunk-VWEXKDWG.js} +10 -56
  69. package/dist/chunk-W2MV25SB.js +1 -0
  70. package/dist/chunk-WJ3H73G6.js +1 -0
  71. package/dist/chunk-WJUQBMTF.js +9 -0
  72. package/dist/chunk-WLVQJH4E.js +1 -0
  73. package/dist/chunk-WPJ2BND4.js +1 -0
  74. package/dist/chunk-WSCK4WNK.js +1 -0
  75. package/dist/chunk-Y65CSJFF.js +3 -0
  76. package/dist/chunk-ZL4MZMUK.js +34 -0
  77. package/dist/chunk-ZLLER3HP.js +1 -0
  78. package/dist/chunk-ZXF5NE54.js +1 -0
  79. package/dist/commands/antigravity/backfill.js +2 -136
  80. package/dist/commands/auth/create-key.js +1 -52
  81. package/dist/commands/auth/login.js +1 -85
  82. package/dist/commands/auth/logout.js +1 -29
  83. package/dist/commands/auth/revoke-key.js +1 -33
  84. package/dist/commands/auth/signup.js +1 -89
  85. package/dist/commands/auth/status.js +1 -42
  86. package/dist/commands/catalog/index.js +2 -52
  87. package/dist/commands/catalog/recommend.js +3 -43
  88. package/dist/commands/convert.js +1 -75
  89. package/dist/commands/converters.js +1 -54
  90. package/dist/commands/crons/list.js +1 -41
  91. package/dist/commands/crons/run.js +2 -76
  92. package/dist/commands/dashboard.js +1 -46
  93. package/dist/commands/diagnostics.js +1 -117
  94. package/dist/commands/eval-targets/create.js +1 -53
  95. package/dist/commands/eval-targets/list.js +1 -54
  96. package/dist/commands/evals/agent.js +3 -310
  97. package/dist/commands/evals/benchmark.js +6 -73
  98. package/dist/commands/evals/compare.js +13 -96
  99. package/dist/commands/evals/create.js +1 -67
  100. package/dist/commands/evals/optimize-description.js +25 -239
  101. package/dist/commands/evals/optimize.js +5 -211
  102. package/dist/commands/evals/run.js +3 -183
  103. package/dist/commands/gateway/ensure.js +1 -104
  104. package/dist/commands/hooks/emit-instructions.js +1 -25
  105. package/dist/commands/hooks/install.js +1 -442
  106. package/dist/commands/hooks/run.js +3 -81
  107. package/dist/commands/hooks/uninstall.js +2 -156
  108. package/dist/commands/import.js +1 -66
  109. package/dist/commands/instructions/create.js +1 -74
  110. package/dist/commands/instructions/delete.js +1 -55
  111. package/dist/commands/instructions/fork.js +1 -34
  112. package/dist/commands/instructions/get.js +1 -68
  113. package/dist/commands/instructions/list.js +1 -65
  114. package/dist/commands/instructions/promote.js +1 -42
  115. package/dist/commands/instructions/pull.js +1 -39
  116. package/dist/commands/instructions/upstream.js +1 -38
  117. package/dist/commands/instructions/versions.js +1 -53
  118. package/dist/commands/launcher.js +1 -40
  119. package/dist/commands/org/current.js +1 -77
  120. package/dist/commands/org/list.js +1 -52
  121. package/dist/commands/org/switch.js +1 -71
  122. package/dist/commands/packs/add-instruction.js +1 -37
  123. package/dist/commands/packs/apply.js +1 -39
  124. package/dist/commands/packs/create.js +1 -50
  125. package/dist/commands/packs/fork.js +1 -34
  126. package/dist/commands/packs/get.js +3 -56
  127. package/dist/commands/packs/list.js +1 -66
  128. package/dist/commands/packs/remove-instruction.js +1 -35
  129. package/dist/commands/proxy/env.js +3 -131
  130. package/dist/commands/proxy/logs.js +3 -85
  131. package/dist/commands/proxy/restart.js +1 -35
  132. package/dist/commands/proxy/setup.js +15 -454
  133. package/dist/commands/proxy/start.js +10 -333
  134. package/dist/commands/proxy/status.js +1 -78
  135. package/dist/commands/proxy/stop.js +1 -94
  136. package/dist/commands/research/backfill.js +1 -59
  137. package/dist/commands/research/tail-transcript.js +1 -70
  138. package/dist/commands/service/install.js +57 -796
  139. package/dist/commands/service/status.js +1 -180
  140. package/dist/commands/service/uninstall.js +1 -119
  141. package/dist/commands/sessions/analyze.js +3 -48
  142. package/dist/commands/sessions/end.js +2 -85
  143. package/dist/commands/sessions/import.js +1 -46
  144. package/dist/commands/sessions/list.js +1 -48
  145. package/dist/commands/sessions/start.js +3 -90
  146. package/dist/commands/setup.js +3 -150
  147. package/dist/commands/skills/export-approved.js +1 -46
  148. package/dist/commands/skills/install.js +4 -107
  149. package/dist/commands/skills/list.js +4 -65
  150. package/dist/commands/skills/publish.js +2 -98
  151. package/dist/commands/skills/search.js +3 -72
  152. package/dist/commands/skills/update.js +3 -55
  153. package/dist/commands/suggestions/accept.js +8 -84
  154. package/dist/commands/suggestions/dismiss.js +1 -45
  155. package/dist/commands/suggestions/list.js +1 -61
  156. package/dist/commands/suggestions/refresh.js +1 -27
  157. package/dist/cursor-T7AMCMKS.js +13 -0
  158. package/dist/dashboard/Dashboard.js +1 -243
  159. package/dist/dashboard/data.js +1 -15
  160. package/dist/dashboard/launcher/ActiveJobsList.js +1 -10
  161. package/dist/dashboard/launcher/LauncherOverlay.js +1 -16
  162. package/dist/dashboard/launcher/NewLaunchForm.js +1 -10
  163. package/dist/dashboard/launcher/api.js +1 -16
  164. package/dist/dashboard/launcher/tool-labels.js +1 -10
  165. package/dist/dashboard/launcher/types.js +0 -1
  166. package/dist/dashboard/launcher/useLaunchJobs.js +1 -11
  167. package/dist/dashboard/panels/friction.js +1 -10
  168. package/dist/dashboard/panels/insights.js +1 -10
  169. package/dist/dashboard/panels/instructions.js +1 -10
  170. package/dist/dashboard/panels/outcomes.js +1 -10
  171. package/dist/dashboard/panels/overview.js +1 -10
  172. package/dist/dashboard/panels/shared.js +1 -19
  173. package/dist/dashboard/types.js +1 -24
  174. package/dist/dist-FAVALJ5C.js +1 -0
  175. package/dist/index.js +1 -8
  176. package/dist/lib/active-org-refresh.js +1 -15
  177. package/dist/lib/active-org.js +1 -16
  178. package/dist/lib/agent-loop.js +1 -47
  179. package/dist/lib/antigravity-transcript.js +1 -22
  180. package/dist/lib/api-client.js +1 -23
  181. package/dist/lib/auth.js +1 -30
  182. package/dist/lib/capture-hosts.js +1 -8
  183. package/dist/lib/detect-languages.js +1 -8
  184. package/dist/lib/detect-tmux.js +1 -9
  185. package/dist/lib/diagnostics.js +1 -12
  186. package/dist/lib/editor-proxy-pins.js +1 -14
  187. package/dist/lib/ensure-api-key.js +1 -11
  188. package/dist/lib/eval-analyzer.js +1 -9
  189. package/dist/lib/eval-benchmark.js +1 -12
  190. package/dist/lib/eval-conversation-handler.js +1 -13
  191. package/dist/lib/eval-executor.js +1 -8
  192. package/dist/lib/eval-grader.js +1 -9
  193. package/dist/lib/eval-meta-judge.js +1 -9
  194. package/dist/lib/eval-trigger-tester.js +1 -11
  195. package/dist/lib/eval-worktree.js +1 -8
  196. package/dist/lib/gateway-entry.js +1 -61
  197. package/dist/lib/gateway-identity.js +1 -16
  198. package/dist/lib/gateway-lifecycle.js +1 -32
  199. package/dist/lib/gateway.js +1 -14
  200. package/dist/lib/handlers/cron-refresh-pricing.js +1 -0
  201. package/dist/lib/handlers/cron-refresh-skills.js +1 -8
  202. package/dist/lib/handlers/cron-suggest-instructions.js +1 -16
  203. package/dist/lib/handlers/process-announcement.js +1 -11
  204. package/dist/lib/handlers/process-changelog.js +1 -11
  205. package/dist/lib/handlers/process-conversation.js +1 -14
  206. package/dist/lib/handlers/process-eval.js +1 -15
  207. package/dist/lib/handlers/process-insights.js +1 -15
  208. package/dist/lib/handlers/process-launch.js +1 -16
  209. package/dist/lib/handlers/process-run-cleanup.js +1 -13
  210. package/dist/lib/handlers/process-send-message.js +1 -10
  211. package/dist/lib/handlers/process-session-goal.js +1 -12
  212. package/dist/lib/hooks-config.js +1 -81
  213. package/dist/lib/insights-prompts.js +1 -12
  214. package/dist/lib/instruction-snapshot.js +1 -8
  215. package/dist/lib/job-helpers.js +0 -1
  216. package/dist/lib/llm-client.js +1 -20
  217. package/dist/lib/manual-tasks-meta.js +1 -8
  218. package/dist/lib/manual-tasks.js +1 -80
  219. package/dist/lib/output.js +1 -12
  220. package/dist/lib/permanent-job-error.js +1 -10
  221. package/dist/lib/pid-identity.js +1 -14
  222. package/dist/lib/proxy-respawn.js +1 -12
  223. package/dist/lib/research-client.js +1 -12
  224. package/dist/lib/setup-steps.js +1 -33
  225. package/dist/lib/skills-loader.js +1 -8
  226. package/dist/lib/statusline-shim.js +1 -20
  227. package/dist/lib/telemetry.js +1 -16
  228. package/dist/lib/terminal-target-heartbeat.js +1 -15
  229. package/dist/lib/tmux.js +1 -16
  230. package/dist/lib/transcript-rate-limit-watcher.js +1 -22
  231. package/dist/lib/types.js +1 -8
  232. package/dist/lib/version-check.js +1 -12
  233. package/dist/lib/which.js +1 -8
  234. package/dist/lib/worktree.js +1 -17
  235. package/dist/opencode-QRJ3BH23.js +1 -0
  236. package/oclif.manifest.json +135 -135
  237. package/package.json +9 -8
  238. package/dist/base-command.js.map +0 -7
  239. package/dist/chunk-2HK7RGZB.js +0 -82
  240. package/dist/chunk-2HK7RGZB.js.map +0 -7
  241. package/dist/chunk-2ORJWTNZ.js +0 -307
  242. package/dist/chunk-2ORJWTNZ.js.map +0 -7
  243. package/dist/chunk-37LN5O7M.js +0 -59
  244. package/dist/chunk-37LN5O7M.js.map +0 -7
  245. package/dist/chunk-3S7223UR.js +0 -81
  246. package/dist/chunk-3S7223UR.js.map +0 -7
  247. package/dist/chunk-3TIMQ3O6.js +0 -96
  248. package/dist/chunk-3TIMQ3O6.js.map +0 -7
  249. package/dist/chunk-42GFSAJP.js +0 -32
  250. package/dist/chunk-42GFSAJP.js.map +0 -7
  251. package/dist/chunk-4BHDHHKL.js +0 -48
  252. package/dist/chunk-4BHDHHKL.js.map +0 -7
  253. package/dist/chunk-4D537GXE.js +0 -99
  254. package/dist/chunk-4D537GXE.js.map +0 -7
  255. package/dist/chunk-4LYCDS2N.js +0 -139
  256. package/dist/chunk-4LYCDS2N.js.map +0 -7
  257. package/dist/chunk-4SCZK7AL.js +0 -129
  258. package/dist/chunk-4SCZK7AL.js.map +0 -7
  259. package/dist/chunk-4XAWK6S2.js +0 -161
  260. package/dist/chunk-4XAWK6S2.js.map +0 -7
  261. package/dist/chunk-52WIYRZH.js +0 -73
  262. package/dist/chunk-52WIYRZH.js.map +0 -7
  263. package/dist/chunk-5BAOGNUH.js +0 -79
  264. package/dist/chunk-5BAOGNUH.js.map +0 -7
  265. package/dist/chunk-5EDMGK3W.js +0 -39
  266. package/dist/chunk-5EDMGK3W.js.map +0 -7
  267. package/dist/chunk-6NBS5XFS.js +0 -99
  268. package/dist/chunk-6NBS5XFS.js.map +0 -7
  269. package/dist/chunk-7LVVKQMZ.js +0 -98
  270. package/dist/chunk-7LVVKQMZ.js.map +0 -7
  271. package/dist/chunk-7NNFYWKK.js +0 -243
  272. package/dist/chunk-7NNFYWKK.js.map +0 -7
  273. package/dist/chunk-7NYKWN7U.js +0 -12
  274. package/dist/chunk-7NYKWN7U.js.map +0 -7
  275. package/dist/chunk-BO76WKJR.js +0 -42
  276. package/dist/chunk-BO76WKJR.js.map +0 -7
  277. package/dist/chunk-BRD5RUGM.js +0 -53
  278. package/dist/chunk-BRD5RUGM.js.map +0 -7
  279. package/dist/chunk-BT6Z6545.js +0 -43
  280. package/dist/chunk-BT6Z6545.js.map +0 -7
  281. package/dist/chunk-BZDKEQKU.js +0 -39
  282. package/dist/chunk-BZDKEQKU.js.map +0 -7
  283. package/dist/chunk-DGHWRQXL.js +0 -17
  284. package/dist/chunk-DGHWRQXL.js.map +0 -7
  285. package/dist/chunk-DIQUV5FR.js +0 -257
  286. package/dist/chunk-DIQUV5FR.js.map +0 -7
  287. package/dist/chunk-DMX5YOTM.js +0 -167
  288. package/dist/chunk-DMX5YOTM.js.map +0 -7
  289. package/dist/chunk-DNKSVWMD.js +0 -108
  290. package/dist/chunk-DNKSVWMD.js.map +0 -7
  291. package/dist/chunk-DQ3KELXD.js +0 -74
  292. package/dist/chunk-DQ3KELXD.js.map +0 -7
  293. package/dist/chunk-DUJSRBLP.js +0 -122
  294. package/dist/chunk-DUJSRBLP.js.map +0 -7
  295. package/dist/chunk-E3BIT53W.js +0 -154
  296. package/dist/chunk-E3BIT53W.js.map +0 -7
  297. package/dist/chunk-EARWG4EV.js +0 -22
  298. package/dist/chunk-EARWG4EV.js.map +0 -7
  299. package/dist/chunk-EI5BHWXA.js +0 -1662
  300. package/dist/chunk-EI5BHWXA.js.map +0 -7
  301. package/dist/chunk-EJ3YAFDP.js +0 -37
  302. package/dist/chunk-EJ3YAFDP.js.map +0 -7
  303. package/dist/chunk-EKJ2CABV.js +0 -76
  304. package/dist/chunk-EKJ2CABV.js.map +0 -7
  305. package/dist/chunk-EKP32DLN.js +0 -16
  306. package/dist/chunk-EKP32DLN.js.map +0 -7
  307. package/dist/chunk-EYPAAGN5.js +0 -51
  308. package/dist/chunk-EYPAAGN5.js.map +0 -7
  309. package/dist/chunk-F5N6CLJJ.js +0 -1995
  310. package/dist/chunk-F5N6CLJJ.js.map +0 -7
  311. package/dist/chunk-GIUBARWS.js +0 -99
  312. package/dist/chunk-GIUBARWS.js.map +0 -7
  313. package/dist/chunk-GQNJO2P2.js +0 -102
  314. package/dist/chunk-GQNJO2P2.js.map +0 -7
  315. package/dist/chunk-IJGF2ETG.js +0 -68
  316. package/dist/chunk-IJGF2ETG.js.map +0 -7
  317. package/dist/chunk-ILYDELUE.js +0 -46
  318. package/dist/chunk-ILYDELUE.js.map +0 -7
  319. package/dist/chunk-J6QFW4LD.js +0 -55
  320. package/dist/chunk-J6QFW4LD.js.map +0 -7
  321. package/dist/chunk-J7N3DLH6.js +0 -117
  322. package/dist/chunk-J7N3DLH6.js.map +0 -7
  323. package/dist/chunk-JFDWKLQC.js +0 -23
  324. package/dist/chunk-JFDWKLQC.js.map +0 -7
  325. package/dist/chunk-JULOLTZS.js +0 -61
  326. package/dist/chunk-JULOLTZS.js.map +0 -7
  327. package/dist/chunk-KJKBDQ4D.js +0 -220
  328. package/dist/chunk-KJKBDQ4D.js.map +0 -7
  329. package/dist/chunk-KRBQLMOP.js +0 -41
  330. package/dist/chunk-KRBQLMOP.js.map +0 -7
  331. package/dist/chunk-LXKPNATC.js +0 -624
  332. package/dist/chunk-LXKPNATC.js.map +0 -7
  333. package/dist/chunk-NSBPE2FW.js +0 -17
  334. package/dist/chunk-NSBPE2FW.js.map +0 -7
  335. package/dist/chunk-OCKHW72U.js +0 -55
  336. package/dist/chunk-OCKHW72U.js.map +0 -7
  337. package/dist/chunk-OKWCKCPE.js +0 -414
  338. package/dist/chunk-OKWCKCPE.js.map +0 -7
  339. package/dist/chunk-OO7JDFS4.js +0 -157
  340. package/dist/chunk-OO7JDFS4.js.map +0 -7
  341. package/dist/chunk-OQBBVTDG.js.map +0 -7
  342. package/dist/chunk-OQSQC7VB.js +0 -77
  343. package/dist/chunk-OQSQC7VB.js.map +0 -7
  344. package/dist/chunk-PED7L5GX.js +0 -92
  345. package/dist/chunk-PED7L5GX.js.map +0 -7
  346. package/dist/chunk-QJQS6TUN.js +0 -44
  347. package/dist/chunk-QJQS6TUN.js.map +0 -7
  348. package/dist/chunk-QN34TGD3.js +0 -83
  349. package/dist/chunk-QN34TGD3.js.map +0 -7
  350. package/dist/chunk-QSN77T7C.js +0 -250
  351. package/dist/chunk-QSN77T7C.js.map +0 -7
  352. package/dist/chunk-R56PH7YE.js +0 -78
  353. package/dist/chunk-R56PH7YE.js.map +0 -7
  354. package/dist/chunk-RAXRZYOB.js +0 -299
  355. package/dist/chunk-RAXRZYOB.js.map +0 -7
  356. package/dist/chunk-RH7NHVSK.js +0 -16
  357. package/dist/chunk-RH7NHVSK.js.map +0 -7
  358. package/dist/chunk-RMTT4KDY.js +0 -191
  359. package/dist/chunk-RMTT4KDY.js.map +0 -7
  360. package/dist/chunk-RQ2TMLKG.js +0 -142
  361. package/dist/chunk-RQ2TMLKG.js.map +0 -7
  362. package/dist/chunk-SO3T35U7.js +0 -80
  363. package/dist/chunk-SO3T35U7.js.map +0 -7
  364. package/dist/chunk-UKMLICWS.js +0 -51
  365. package/dist/chunk-UKMLICWS.js.map +0 -7
  366. package/dist/chunk-VA5FFOS7.js +0 -243
  367. package/dist/chunk-VA5FFOS7.js.map +0 -7
  368. package/dist/chunk-W2YERO7E.js +0 -170
  369. package/dist/chunk-W2YERO7E.js.map +0 -7
  370. package/dist/chunk-W53GKIZQ.js +0 -50
  371. package/dist/chunk-W53GKIZQ.js.map +0 -7
  372. package/dist/chunk-WA4MWYRW.js +0 -254
  373. package/dist/chunk-WA4MWYRW.js.map +0 -7
  374. package/dist/chunk-XC6M4CSW.js +0 -44
  375. package/dist/chunk-XC6M4CSW.js.map +0 -7
  376. package/dist/chunk-XK42ZBDE.js +0 -23
  377. package/dist/chunk-XK42ZBDE.js.map +0 -7
  378. package/dist/chunk-XUV6DDBF.js +0 -124
  379. package/dist/chunk-XUV6DDBF.js.map +0 -7
  380. package/dist/chunk-XZXS2W24.js.map +0 -7
  381. package/dist/chunk-Y3WD5CSW.js +0 -49
  382. package/dist/chunk-Y3WD5CSW.js.map +0 -7
  383. package/dist/chunk-Y4BJXXYV.js +0 -148
  384. package/dist/chunk-Y4BJXXYV.js.map +0 -7
  385. package/dist/chunk-YNIH3KMU.js +0 -121
  386. package/dist/chunk-YNIH3KMU.js.map +0 -7
  387. package/dist/chunk-ZUJBM6HE.js +0 -125
  388. package/dist/chunk-ZUJBM6HE.js.map +0 -7
  389. package/dist/commands/antigravity/backfill.js.map +0 -7
  390. package/dist/commands/auth/create-key.js.map +0 -7
  391. package/dist/commands/auth/login.js.map +0 -7
  392. package/dist/commands/auth/logout.js.map +0 -7
  393. package/dist/commands/auth/revoke-key.js.map +0 -7
  394. package/dist/commands/auth/signup.js.map +0 -7
  395. package/dist/commands/auth/status.js.map +0 -7
  396. package/dist/commands/catalog/index.js.map +0 -7
  397. package/dist/commands/catalog/recommend.js.map +0 -7
  398. package/dist/commands/convert.js.map +0 -7
  399. package/dist/commands/converters.js.map +0 -7
  400. package/dist/commands/crons/list.js.map +0 -7
  401. package/dist/commands/crons/run.js.map +0 -7
  402. package/dist/commands/dashboard.js.map +0 -7
  403. package/dist/commands/diagnostics.js.map +0 -7
  404. package/dist/commands/eval-targets/create.js.map +0 -7
  405. package/dist/commands/eval-targets/list.js.map +0 -7
  406. package/dist/commands/evals/agent.js.map +0 -7
  407. package/dist/commands/evals/benchmark.js.map +0 -7
  408. package/dist/commands/evals/compare.js.map +0 -7
  409. package/dist/commands/evals/create.js.map +0 -7
  410. package/dist/commands/evals/optimize-description.js.map +0 -7
  411. package/dist/commands/evals/optimize.js.map +0 -7
  412. package/dist/commands/evals/run.js.map +0 -7
  413. package/dist/commands/gateway/ensure.js.map +0 -7
  414. package/dist/commands/hooks/emit-instructions.js.map +0 -7
  415. package/dist/commands/hooks/install.js.map +0 -7
  416. package/dist/commands/hooks/run.js.map +0 -7
  417. package/dist/commands/hooks/uninstall.js.map +0 -7
  418. package/dist/commands/import.js.map +0 -7
  419. package/dist/commands/instructions/create.js.map +0 -7
  420. package/dist/commands/instructions/delete.js.map +0 -7
  421. package/dist/commands/instructions/fork.js.map +0 -7
  422. package/dist/commands/instructions/get.js.map +0 -7
  423. package/dist/commands/instructions/list.js.map +0 -7
  424. package/dist/commands/instructions/promote.js.map +0 -7
  425. package/dist/commands/instructions/pull.js.map +0 -7
  426. package/dist/commands/instructions/upstream.js.map +0 -7
  427. package/dist/commands/instructions/versions.js.map +0 -7
  428. package/dist/commands/launcher.js.map +0 -7
  429. package/dist/commands/org/current.js.map +0 -7
  430. package/dist/commands/org/list.js.map +0 -7
  431. package/dist/commands/org/switch.js.map +0 -7
  432. package/dist/commands/packs/add-instruction.js.map +0 -7
  433. package/dist/commands/packs/apply.js.map +0 -7
  434. package/dist/commands/packs/create.js.map +0 -7
  435. package/dist/commands/packs/fork.js.map +0 -7
  436. package/dist/commands/packs/get.js.map +0 -7
  437. package/dist/commands/packs/list.js.map +0 -7
  438. package/dist/commands/packs/remove-instruction.js.map +0 -7
  439. package/dist/commands/proxy/env.js.map +0 -7
  440. package/dist/commands/proxy/logs.js.map +0 -7
  441. package/dist/commands/proxy/restart.js.map +0 -7
  442. package/dist/commands/proxy/setup.js.map +0 -7
  443. package/dist/commands/proxy/start.js.map +0 -7
  444. package/dist/commands/proxy/status.js.map +0 -7
  445. package/dist/commands/proxy/stop.js.map +0 -7
  446. package/dist/commands/research/backfill.js.map +0 -7
  447. package/dist/commands/research/tail-transcript.js.map +0 -7
  448. package/dist/commands/service/install.js.map +0 -7
  449. package/dist/commands/service/status.js.map +0 -7
  450. package/dist/commands/service/uninstall.js.map +0 -7
  451. package/dist/commands/sessions/analyze.js.map +0 -7
  452. package/dist/commands/sessions/end.js.map +0 -7
  453. package/dist/commands/sessions/import.js.map +0 -7
  454. package/dist/commands/sessions/list.js.map +0 -7
  455. package/dist/commands/sessions/start.js.map +0 -7
  456. package/dist/commands/setup.js.map +0 -7
  457. package/dist/commands/skills/export-approved.js.map +0 -7
  458. package/dist/commands/skills/install.js.map +0 -7
  459. package/dist/commands/skills/list.js.map +0 -7
  460. package/dist/commands/skills/publish.js.map +0 -7
  461. package/dist/commands/skills/search.js.map +0 -7
  462. package/dist/commands/skills/update.js.map +0 -7
  463. package/dist/commands/suggestions/accept.js.map +0 -7
  464. package/dist/commands/suggestions/dismiss.js.map +0 -7
  465. package/dist/commands/suggestions/list.js.map +0 -7
  466. package/dist/commands/suggestions/refresh.js.map +0 -7
  467. package/dist/cursor-BGQJ4CWI.js +0 -134
  468. package/dist/cursor-BGQJ4CWI.js.map +0 -7
  469. package/dist/dashboard/Dashboard.js.map +0 -7
  470. package/dist/dashboard/data.js.map +0 -7
  471. package/dist/dashboard/launcher/ActiveJobsList.js.map +0 -7
  472. package/dist/dashboard/launcher/LauncherOverlay.js.map +0 -7
  473. package/dist/dashboard/launcher/NewLaunchForm.js.map +0 -7
  474. package/dist/dashboard/launcher/api.js.map +0 -7
  475. package/dist/dashboard/launcher/tool-labels.js.map +0 -7
  476. package/dist/dashboard/launcher/types.js.map +0 -7
  477. package/dist/dashboard/launcher/useLaunchJobs.js.map +0 -7
  478. package/dist/dashboard/panels/friction.js.map +0 -7
  479. package/dist/dashboard/panels/insights.js.map +0 -7
  480. package/dist/dashboard/panels/instructions.js.map +0 -7
  481. package/dist/dashboard/panels/outcomes.js.map +0 -7
  482. package/dist/dashboard/panels/overview.js.map +0 -7
  483. package/dist/dashboard/panels/shared.js.map +0 -7
  484. package/dist/dashboard/types.js.map +0 -7
  485. package/dist/dist-UNYP5PJR.js +0 -56
  486. package/dist/dist-UNYP5PJR.js.map +0 -7
  487. package/dist/index.js.map +0 -7
  488. package/dist/lib/active-org-refresh.js.map +0 -7
  489. package/dist/lib/active-org.js.map +0 -7
  490. package/dist/lib/agent-loop.js.map +0 -7
  491. package/dist/lib/antigravity-transcript.js.map +0 -7
  492. package/dist/lib/api-client.js.map +0 -7
  493. package/dist/lib/auth.js.map +0 -7
  494. package/dist/lib/capture-hosts.js.map +0 -7
  495. package/dist/lib/detect-languages.js.map +0 -7
  496. package/dist/lib/detect-tmux.js.map +0 -7
  497. package/dist/lib/diagnostics.js.map +0 -7
  498. package/dist/lib/editor-proxy-pins.js.map +0 -7
  499. package/dist/lib/ensure-api-key.js.map +0 -7
  500. package/dist/lib/eval-analyzer.js.map +0 -7
  501. package/dist/lib/eval-benchmark.js.map +0 -7
  502. package/dist/lib/eval-conversation-handler.js.map +0 -7
  503. package/dist/lib/eval-executor.js.map +0 -7
  504. package/dist/lib/eval-grader.js.map +0 -7
  505. package/dist/lib/eval-meta-judge.js.map +0 -7
  506. package/dist/lib/eval-trigger-tester.js.map +0 -7
  507. package/dist/lib/eval-worktree.js.map +0 -7
  508. package/dist/lib/gateway-entry.js.map +0 -7
  509. package/dist/lib/gateway-identity.js.map +0 -7
  510. package/dist/lib/gateway-lifecycle.js.map +0 -7
  511. package/dist/lib/gateway.js.map +0 -7
  512. package/dist/lib/handlers/cron-refresh-skills.js.map +0 -7
  513. package/dist/lib/handlers/cron-suggest-instructions.js.map +0 -7
  514. package/dist/lib/handlers/process-announcement.js.map +0 -7
  515. package/dist/lib/handlers/process-changelog.js.map +0 -7
  516. package/dist/lib/handlers/process-conversation.js.map +0 -7
  517. package/dist/lib/handlers/process-eval.js.map +0 -7
  518. package/dist/lib/handlers/process-insights.js.map +0 -7
  519. package/dist/lib/handlers/process-launch.js.map +0 -7
  520. package/dist/lib/handlers/process-run-cleanup.js.map +0 -7
  521. package/dist/lib/handlers/process-send-message.js.map +0 -7
  522. package/dist/lib/handlers/process-session-goal.js.map +0 -7
  523. package/dist/lib/hooks-config.js.map +0 -7
  524. package/dist/lib/insights-prompts.js.map +0 -7
  525. package/dist/lib/instruction-snapshot.js.map +0 -7
  526. package/dist/lib/job-helpers.js.map +0 -7
  527. package/dist/lib/llm-client.js.map +0 -7
  528. package/dist/lib/manual-tasks-meta.js.map +0 -7
  529. package/dist/lib/manual-tasks.js.map +0 -7
  530. package/dist/lib/output.js.map +0 -7
  531. package/dist/lib/permanent-job-error.js.map +0 -7
  532. package/dist/lib/pid-identity.js.map +0 -7
  533. package/dist/lib/proxy-respawn.js.map +0 -7
  534. package/dist/lib/research-client.js.map +0 -7
  535. package/dist/lib/setup-steps.js.map +0 -7
  536. package/dist/lib/skills-loader.js.map +0 -7
  537. package/dist/lib/statusline-shim.js.map +0 -7
  538. package/dist/lib/telemetry.js.map +0 -7
  539. package/dist/lib/terminal-target-heartbeat.js.map +0 -7
  540. package/dist/lib/tmux.js.map +0 -7
  541. package/dist/lib/transcript-rate-limit-watcher.js.map +0 -7
  542. package/dist/lib/types.js.map +0 -7
  543. package/dist/lib/version-check.js.map +0 -7
  544. package/dist/lib/which.js.map +0 -7
  545. package/dist/lib/worktree.js.map +0 -7
  546. package/dist/opencode-IQ7X5YMJ.js +0 -190
  547. package/dist/opencode-IQ7X5YMJ.js.map +0 -7
@@ -1,150 +1,3 @@
1
- import {
2
- ALL_STEP_IDS,
3
- STEPS,
4
- computeStatus,
5
- defaultContext,
6
- getStep,
7
- isStepId,
8
- renderDiff
9
- } from "../chunk-OKWCKCPE.js";
10
- import "../chunk-LXKPNATC.js";
11
- import "../chunk-OQBBVTDG.js";
12
- import "../chunk-4LYCDS2N.js";
13
- import "../chunk-7LVVKQMZ.js";
14
- import "../chunk-5EDMGK3W.js";
15
- import {
16
- BaseCommand
17
- } from "../chunk-2HK7RGZB.js";
18
- import "../chunk-R56PH7YE.js";
19
- import "../chunk-GQNJO2P2.js";
20
- import "../chunk-37LN5O7M.js";
21
- import "../chunk-EKJ2CABV.js";
22
- import "../chunk-ZUJBM6HE.js";
23
- import "../chunk-W2YERO7E.js";
24
- import "../chunk-NSBPE2FW.js";
25
-
26
- // src/commands/setup.ts
27
- import { Args, Flags } from "@oclif/core";
28
- import * as readline from "node:readline/promises";
29
- var Setup = class _Setup extends BaseCommand {
30
- static description = "Agentic, transparent setup: plan / show diffs / apply the four core onboarding steps";
31
- static examples = [
32
- "<%= config.bin %> setup # interactive walk (TTY)",
33
- "<%= config.bin %> setup plan # read-only: every remaining artifact + diff",
34
- "<%= config.bin %> setup hooks --show # print one step's diff",
35
- "<%= config.bin %> setup hooks --apply # apply one step",
36
- "<%= config.bin %> setup --json # machine-readable status (exit 0 iff complete)"
37
- ];
38
- static args = {
39
- target: Args.string({
40
- description: `"plan" or a step id (${ALL_STEP_IDS.join(", ")})`,
41
- required: false
42
- })
43
- };
44
- static flags = {
45
- json: Flags.boolean({ description: "Machine-readable output", default: false }),
46
- show: Flags.boolean({ description: "Print the step diff (read-only)", default: false }),
47
- apply: Flags.boolean({ description: "Apply the step", default: false })
48
- };
49
- async run() {
50
- const { args, flags } = await this.parse(_Setup);
51
- const ctx = defaultContext();
52
- if (args.target === "plan") {
53
- await this.runPlan(ctx, flags.json);
54
- return;
55
- }
56
- if (args.target && isStepId(args.target)) {
57
- if (flags.apply) {
58
- await getStep(args.target).apply(ctx);
59
- return;
60
- }
61
- const plan = await getStep(args.target).plan(ctx);
62
- this.printPlan(plan);
63
- return;
64
- }
65
- if (args.target) {
66
- this.error(`Unknown target "${args.target}". Use "plan" or one of: ${ALL_STEP_IDS.join(", ")}.`);
67
- }
68
- if (flags.json) {
69
- const status = await computeStatus(ctx);
70
- this.log(JSON.stringify(status, null, 2));
71
- if (!status.coreComplete) this.exit(1);
72
- return;
73
- }
74
- await this.runInteractive(ctx);
75
- }
76
- async runPlan(ctx, asJson) {
77
- const status = await computeStatus(ctx);
78
- const remaining = STEPS.filter(
79
- (s) => !status.steps.find((st) => st.id === s.id)?.done
80
- );
81
- const plans = [];
82
- for (const step of remaining) {
83
- plans.push(await step.plan(ctx));
84
- }
85
- if (asJson) {
86
- this.log(JSON.stringify({ ...status, plans }, null, 2));
87
- return;
88
- }
89
- if (plans.length === 0) {
90
- this.log("[OK] All core steps complete \u2014 nothing to install.");
91
- return;
92
- }
93
- this.log("The following steps would be applied:\n");
94
- for (const plan of plans) {
95
- this.printPlan(plan);
96
- this.log("");
97
- }
98
- }
99
- printPlan(plan) {
100
- this.log(`[..] ${plan.title} (${plan.id})`);
101
- if (plan.command) this.log(` command: ${plan.command}`);
102
- for (const artifact of plan.artifacts) {
103
- this.log(` ${artifact.kind}: ${artifact.path}${artifact.masked ? " (secret masked)" : ""}`);
104
- const diff = renderDiff(artifact.before, artifact.after);
105
- for (const line of diff.split("\n")) {
106
- this.log(` ${line}`);
107
- }
108
- }
109
- }
110
- async runInteractive(ctx) {
111
- if (!process.stdin.isTTY) {
112
- this.log("Not a TTY \u2014 interactive walk needs a terminal.");
113
- this.log("Use one of:");
114
- this.log(" rulemetric setup plan \u2014 see every remaining artifact + diff");
115
- this.log(" rulemetric setup <step> --show \u2014 print one step diff");
116
- this.log(" rulemetric setup <step> --apply \u2014 apply one step");
117
- this.log(" rulemetric setup --json \u2014 machine-readable status");
118
- return;
119
- }
120
- const status = await computeStatus(ctx);
121
- const remaining = STEPS.filter(
122
- (s) => !status.steps.find((st) => st.id === s.id)?.done
123
- );
124
- if (remaining.length === 0) {
125
- this.log("[OK] All core steps complete.");
126
- return;
127
- }
128
- const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
129
- try {
130
- for (const step of remaining) {
131
- const plan = await step.plan(ctx);
132
- this.printPlan(plan);
133
- const answer = (await rl.question(`Apply "${plan.title}"? [y/N] `)).trim().toLowerCase();
134
- if (answer === "y" || answer === "yes") {
135
- await step.apply(ctx);
136
- this.log(`[OK] Applied ${plan.title}.`);
137
- } else {
138
- this.log(`[..] Skipped ${plan.title}.`);
139
- }
140
- this.log("");
141
- }
142
- } finally {
143
- rl.close();
144
- }
145
- }
146
- };
147
- export {
148
- Setup as default
149
- };
150
- //# sourceMappingURL=setup.js.map
1
+ import{c as l,d as h,f as m,g as p,h as f,i as y,j as r}from"../chunk-WJUQBMTF.js";import"../chunk-O7ZMHCMG.js";import"../chunk-I2DZGJRR.js";import"../chunk-MVM6OGAF.js";import"../chunk-KKDHD4XA.js";import"../chunk-SZ62CP55.js";import{a as g}from"../chunk-LQRYQE6Q.js";import"../chunk-IZTIYR5Q.js";import"../chunk-CRAKDQ4H.js";import"../chunk-WPJ2BND4.js";import"../chunk-3AV3GTMP.js";import"../chunk-TIQ7DQ3M.js";import"../chunk-M6AJDVCL.js";import{a as u}from"../chunk-ZLLER3HP.js";import{Args as b,Flags as c}from"@oclif/core";import*as w from"node:readline/promises";var d=class v extends g{static{u(this,"Setup")}static description="Agentic, transparent setup: plan / show diffs / apply the four core onboarding steps";static examples=["<%= config.bin %> setup # interactive walk (TTY)","<%= config.bin %> setup plan # read-only: every remaining artifact + diff","<%= config.bin %> setup hooks --show # print one step's diff","<%= config.bin %> setup hooks --apply # apply one step","<%= config.bin %> setup --json # machine-readable status (exit 0 iff complete)"];static args={target:b.string({description:`"plan" or a step id (${l.join(", ")})`,required:!1})};static flags={json:c.boolean({description:"Machine-readable output",default:!1}),show:c.boolean({description:"Print the step diff (read-only)",default:!1}),apply:c.boolean({description:"Apply the step",default:!1})};async run(){let{args:t,flags:e}=await this.parse(v),i=h();if(t.target==="plan"){await this.runPlan(i,e.json);return}if(t.target&&y(t.target)){if(e.apply){await f(t.target).apply(i);return}let n=await f(t.target).plan(i);this.printPlan(n);return}if(t.target&&this.error(`Unknown target "${t.target}". Use "plan" or one of: ${l.join(", ")}.`),e.json){let n=await r(i);this.log(JSON.stringify(n,null,2)),n.coreComplete||this.exit(1);return}await this.runInteractive(i)}async runPlan(t,e){let i=await r(t),n=p.filter(s=>!i.steps.find(a=>a.id===s.id)?.done),o=[];for(let s of n)o.push(await s.plan(t));if(e){this.log(JSON.stringify({...i,plans:o},null,2));return}if(o.length===0){this.log("[OK] All core steps complete \u2014 nothing to install.");return}this.log(`The following steps would be applied:
2
+ `);for(let s of o)this.printPlan(s),this.log("")}printPlan(t){this.log(`[..] ${t.title} (${t.id})`),t.command&&this.log(` command: ${t.command}`);for(let e of t.artifacts){this.log(` ${e.kind}: ${e.path}${e.masked?" (secret masked)":""}`);let i=m(e.before,e.after);for(let n of i.split(`
3
+ `))this.log(` ${n}`)}}async runInteractive(t){if(!process.stdin.isTTY){this.log("Not a TTY \u2014 interactive walk needs a terminal."),this.log("Use one of:"),this.log(" rulemetric setup plan \u2014 see every remaining artifact + diff"),this.log(" rulemetric setup <step> --show \u2014 print one step diff"),this.log(" rulemetric setup <step> --apply \u2014 apply one step"),this.log(" rulemetric setup --json \u2014 machine-readable status");return}let e=await r(t),i=p.filter(o=>!e.steps.find(s=>s.id===o.id)?.done);if(i.length===0){this.log("[OK] All core steps complete.");return}let n=w.createInterface({input:process.stdin,output:process.stdout});try{for(let o of i){let s=await o.plan(t);this.printPlan(s);let a=(await n.question(`Apply "${s.title}"? [y/N] `)).trim().toLowerCase();a==="y"||a==="yes"?(await o.apply(t),this.log(`[OK] Applied ${s.title}.`)):this.log(`[..] Skipped ${s.title}.`),this.log("")}}finally{n.close()}}};export{d as default};
@@ -1,46 +1 @@
1
- import {
2
- BaseCommand
3
- } from "../../chunk-2HK7RGZB.js";
4
- import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-GQNJO2P2.js";
6
- import "../../chunk-37LN5O7M.js";
7
- import "../../chunk-EKJ2CABV.js";
8
- import {
9
- apiGet
10
- } from "../../chunk-ZUJBM6HE.js";
11
- import "../../chunk-W2YERO7E.js";
12
- import "../../chunk-NSBPE2FW.js";
13
-
14
- // src/commands/skills/export-approved.ts
15
- import * as fs from "node:fs";
16
- import * as path from "node:path";
17
- import { Flags } from "@oclif/core";
18
- var SkillsExportApproved = class _SkillsExportApproved extends BaseCommand {
19
- static description = "Export approved community submissions as community-skills.json for registry merge";
20
- static examples = [
21
- "<%= config.bin %> skills export-approved",
22
- "<%= config.bin %> skills export-approved --output ./community-skills.json"
23
- ];
24
- static flags = {
25
- output: Flags.string({
26
- description: "Output file path",
27
- default: "packages/skills-registry/community-skills.json"
28
- })
29
- };
30
- async run() {
31
- const { flags } = await this.parse(_SkillsExportApproved);
32
- this.requireAuth();
33
- const entries = await apiGet("/api/skills/submissions/approved");
34
- if (entries.length === 0) {
35
- this.log("No approved submissions to export.");
36
- return;
37
- }
38
- const outputPath = path.resolve(flags.output);
39
- fs.writeFileSync(outputPath, JSON.stringify(entries, null, 2));
40
- this.log(`Exported ${entries.length} approved skills to ${outputPath}`);
41
- }
42
- };
43
- export {
44
- SkillsExportApproved as default
45
- };
46
- //# sourceMappingURL=export-approved.js.map
1
+ import{a as e}from"../../chunk-LQRYQE6Q.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-CRAKDQ4H.js";import"../../chunk-WPJ2BND4.js";import"../../chunk-3AV3GTMP.js";import{d as r}from"../../chunk-TIQ7DQ3M.js";import"../../chunk-M6AJDVCL.js";import{a as o}from"../../chunk-ZLLER3HP.js";import*as a from"node:fs";import*as n from"node:path";import{Flags as m}from"@oclif/core";var t=class p extends e{static{o(this,"SkillsExportApproved")}static description="Export approved community submissions as community-skills.json for registry merge";static examples=["<%= config.bin %> skills export-approved","<%= config.bin %> skills export-approved --output ./community-skills.json"];static flags={output:m.string({description:"Output file path",default:"packages/skills-registry/community-skills.json"})};async run(){let{flags:l}=await this.parse(p);this.requireAuth();let s=await r("/api/skills/submissions/approved");if(s.length===0){this.log("No approved submissions to export.");return}let i=n.resolve(l.output);a.writeFileSync(i,JSON.stringify(s,null,2)),this.log(`Exported ${s.length} approved skills to ${i}`)}};export{t as default};
@@ -1,107 +1,4 @@
1
- import {
2
- loadRegistry
3
- } from "../../chunk-4BHDHHKL.js";
4
- import {
5
- BaseCommand
6
- } from "../../chunk-2HK7RGZB.js";
7
- import "../../chunk-R56PH7YE.js";
8
- import "../../chunk-GQNJO2P2.js";
9
- import "../../chunk-37LN5O7M.js";
10
- import "../../chunk-EKJ2CABV.js";
11
- import "../../chunk-ZUJBM6HE.js";
12
- import "../../chunk-W2YERO7E.js";
13
- import "../../chunk-NSBPE2FW.js";
14
-
15
- // src/commands/skills/install.ts
16
- import * as fs from "node:fs";
17
- import * as path from "node:path";
18
- import { Args, Flags } from "@oclif/core";
19
- var SkillsInstall = class _SkillsInstall extends BaseCommand {
20
- static description = "Install a skill from the registry into your project";
21
- static examples = [
22
- "<%= config.bin %> skills install tdd-workflow",
23
- "<%= config.bin %> skills install tdd-workflow --tool cursor",
24
- "<%= config.bin %> skills install tdd-workflow --preview"
25
- ];
26
- static args = {
27
- id: Args.string({ description: "Skill ID to install", required: true })
28
- };
29
- static flags = {
30
- tool: Flags.string({
31
- description: "Target tool format",
32
- options: ["claude_code", "cursor", "copilot"]
33
- }),
34
- preview: Flags.boolean({ description: "Preview content without writing", default: false }),
35
- dir: Flags.string({ description: "Project directory", default: "." })
36
- };
37
- async run() {
38
- const { args, flags } = await this.parse(_SkillsInstall);
39
- const catalog = await loadRegistry(this);
40
- const skill = catalog.get(args.id);
41
- if (!skill) {
42
- this.error(`Skill "${args.id}" not found. Try: rulemetric skills search`);
43
- }
44
- if (flags.preview) {
45
- this.log(`
46
- ${skill.name}`);
47
- this.log(`${"\u2500".repeat(skill.name.length)}`);
48
- this.log(`Category: ${skill.category}`);
49
- this.log(`Tools: ${skill.tools.join(", ")}`);
50
- this.log(`Source: ${skill.source.url}
51
- `);
52
- this.log(skill.content.slice(0, 2e3));
53
- if (skill.content.length > 2e3) {
54
- this.log(`
55
- ... (${skill.content.length - 2e3} more characters)`);
56
- }
57
- return;
58
- }
59
- const projectDir = path.resolve(flags.dir);
60
- const tool = flags.tool ?? detectProjectTool(projectDir) ?? skill.tools[0];
61
- const targetPath = getTargetPath(projectDir, tool, skill.id);
62
- if (!targetPath) {
63
- this.error(`Cannot determine install path for tool "${tool}"`);
64
- }
65
- const targetDir = path.dirname(targetPath);
66
- if (!fs.existsSync(targetDir)) {
67
- fs.mkdirSync(targetDir, { recursive: true });
68
- }
69
- if (fs.existsSync(targetPath)) {
70
- this.warn(`File already exists: ${targetPath}`);
71
- this.log(" Use --preview to view the skill content first.");
72
- return;
73
- }
74
- fs.writeFileSync(targetPath, skill.content);
75
- this.log(`Installed "${skill.name}" to ${path.relative(projectDir, targetPath)}`);
76
- this.log(` Source: ${skill.source.url}`);
77
- }
78
- };
79
- function detectProjectTool(dir) {
80
- if (fs.existsSync(path.join(dir, "CLAUDE.md")) || fs.existsSync(path.join(dir, ".claude"))) {
81
- return "claude_code";
82
- }
83
- if (fs.existsSync(path.join(dir, ".cursorrules")) || fs.existsSync(path.join(dir, ".cursor"))) {
84
- return "cursor";
85
- }
86
- if (fs.existsSync(path.join(dir, ".github", "copilot-instructions.md"))) {
87
- return "copilot";
88
- }
89
- return null;
90
- }
91
- function getTargetPath(dir, tool, skillId) {
92
- const safeName = skillId.replace(/[^a-z0-9-]/g, "-");
93
- switch (tool) {
94
- case "claude_code":
95
- return path.join(dir, ".claude", "skills", `${safeName}.md`);
96
- case "cursor":
97
- return path.join(dir, ".cursor", "rules", `${safeName}.mdc`);
98
- case "copilot":
99
- return path.join(dir, ".github", "agents", `${safeName}.md`);
100
- default:
101
- return path.join(dir, ".claude", "skills", `${safeName}.md`);
102
- }
103
- }
104
- export {
105
- SkillsInstall as default
106
- };
107
- //# sourceMappingURL=install.js.map
1
+ import{a as p}from"../../chunk-CDI5CCHU.js";import{a as h}from"../../chunk-LQRYQE6Q.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-CRAKDQ4H.js";import"../../chunk-WPJ2BND4.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-TIQ7DQ3M.js";import"../../chunk-M6AJDVCL.js";import{a}from"../../chunk-ZLLER3HP.js";import*as i from"node:fs";import*as t from"node:path";import{Args as m,Flags as u}from"@oclif/core";var g=class e extends h{static{a(this,"SkillsInstall")}static description="Install a skill from the registry into your project";static examples=["<%= config.bin %> skills install tdd-workflow","<%= config.bin %> skills install tdd-workflow --tool cursor","<%= config.bin %> skills install tdd-workflow --preview"];static args={id:m.string({description:"Skill ID to install",required:!0})};static flags={tool:u.string({description:"Target tool format",options:["claude_code","cursor","copilot"]}),preview:u.boolean({description:"Preview content without writing",default:!1}),dir:u.string({description:"Project directory",default:"."})};async run(){let{args:l,flags:s}=await this.parse(e),o=(await p(this)).get(l.id);if(o||this.error(`Skill "${l.id}" not found. Try: rulemetric skills search`),s.preview){this.log(`
2
+ ${o.name}`),this.log(`${"\u2500".repeat(o.name.length)}`),this.log(`Category: ${o.category}`),this.log(`Tools: ${o.tools.join(", ")}`),this.log(`Source: ${o.source.url}
3
+ `),this.log(o.content.slice(0,2e3)),o.content.length>2e3&&this.log(`
4
+ ... (${o.content.length-2e3} more characters)`);return}let c=t.resolve(s.dir),d=s.tool??w(c)??o.tools[0],r=y(c,d,o.id);r||this.error(`Cannot determine install path for tool "${d}"`);let f=t.dirname(r);if(i.existsSync(f)||i.mkdirSync(f,{recursive:!0}),i.existsSync(r)){this.warn(`File already exists: ${r}`),this.log(" Use --preview to view the skill content first.");return}i.writeFileSync(r,o.content),this.log(`Installed "${o.name}" to ${t.relative(c,r)}`),this.log(` Source: ${o.source.url}`)}};function w(e){return i.existsSync(t.join(e,"CLAUDE.md"))||i.existsSync(t.join(e,".claude"))?"claude_code":i.existsSync(t.join(e,".cursorrules"))||i.existsSync(t.join(e,".cursor"))?"cursor":i.existsSync(t.join(e,".github","copilot-instructions.md"))?"copilot":null}a(w,"detectProjectTool");function y(e,l,s){let n=s.replace(/[^a-z0-9-]/g,"-");switch(l){case"claude_code":return t.join(e,".claude","skills",`${n}.md`);case"cursor":return t.join(e,".cursor","rules",`${n}.mdc`);case"copilot":return t.join(e,".github","agents",`${n}.md`);default:return t.join(e,".claude","skills",`${n}.md`)}}a(y,"getTargetPath");export{g as default};
@@ -1,65 +1,4 @@
1
- import {
2
- loadRegistry
3
- } from "../../chunk-4BHDHHKL.js";
4
- import {
5
- BaseCommand
6
- } from "../../chunk-2HK7RGZB.js";
7
- import "../../chunk-R56PH7YE.js";
8
- import "../../chunk-GQNJO2P2.js";
9
- import "../../chunk-37LN5O7M.js";
10
- import "../../chunk-EKJ2CABV.js";
11
- import "../../chunk-ZUJBM6HE.js";
12
- import "../../chunk-W2YERO7E.js";
13
- import "../../chunk-NSBPE2FW.js";
14
-
15
- // src/commands/skills/list.ts
16
- import { Flags } from "@oclif/core";
17
- var SkillsList = class _SkillsList extends BaseCommand {
18
- static description = "List skills in the registry";
19
- static examples = [
20
- "<%= config.bin %> skills list",
21
- "<%= config.bin %> skills list --stats"
22
- ];
23
- static flags = {
24
- stats: Flags.boolean({ description: "Show registry statistics", default: false }),
25
- limit: Flags.integer({ description: "Max skills to show", default: 30 })
26
- };
27
- async run() {
28
- const { flags } = await this.parse(_SkillsList);
29
- const catalog = await loadRegistry(this);
30
- if (flags.stats) {
31
- this.log(`Skills Registry Statistics
32
- `);
33
- this.log(` Total skills: ${catalog.size}`);
34
- this.log(` Categories: ${catalog.categories().join(", ")}`);
35
- this.log(` Tools: ${catalog.tools().join(", ")}`);
36
- this.log(` Top tags: ${catalog.tags().slice(0, 15).join(", ")}`);
37
- return;
38
- }
39
- const skills = catalog.search({ limit: flags.limit });
40
- if (skills.length === 0) {
41
- this.log("Registry is empty. Run: rulemetric skills update");
42
- return;
43
- }
44
- this.log(`Showing ${skills.length} of ${catalog.size} skills (sorted by popularity):
45
- `);
46
- for (const skill of skills) {
47
- const stars = skill.popularity?.stars ? `${formatStars(skill.popularity.stars)} stars` : "";
48
- this.log(` ${pad(skill.id, 40)} ${pad(skill.category, 14)} ${stars}`);
49
- }
50
- this.log(`
51
- Search: rulemetric skills search <query>`);
52
- this.log(`Install: rulemetric skills install <id>`);
53
- }
54
- };
55
- function formatStars(n) {
56
- if (n >= 1e3) return `${(n / 1e3).toFixed(1)}k`;
57
- return String(n);
58
- }
59
- function pad(s, n) {
60
- return s.length > n ? s.slice(0, n - 1) + "\u2026" : s.padEnd(n);
61
- }
62
- export {
63
- SkillsList as default
64
- };
65
- //# sourceMappingURL=list.js.map
1
+ import{a as n}from"../../chunk-CDI5CCHU.js";import{a}from"../../chunk-LQRYQE6Q.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-CRAKDQ4H.js";import"../../chunk-WPJ2BND4.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-TIQ7DQ3M.js";import"../../chunk-M6AJDVCL.js";import{a as r}from"../../chunk-ZLLER3HP.js";import{Flags as g}from"@oclif/core";var e=class s extends a{static{r(this,"SkillsList")}static description="List skills in the registry";static examples=["<%= config.bin %> skills list","<%= config.bin %> skills list --stats"];static flags={stats:g.boolean({description:"Show registry statistics",default:!1}),limit:g.integer({description:"Max skills to show",default:30})};async run(){let{flags:t}=await this.parse(s),i=await n(this);if(t.stats){this.log(`Skills Registry Statistics
2
+ `),this.log(` Total skills: ${i.size}`),this.log(` Categories: ${i.categories().join(", ")}`),this.log(` Tools: ${i.tools().join(", ")}`),this.log(` Top tags: ${i.tags().slice(0,15).join(", ")}`);return}let o=i.search({limit:t.limit});if(o.length===0){this.log("Registry is empty. Run: rulemetric skills update");return}this.log(`Showing ${o.length} of ${i.size} skills (sorted by popularity):
3
+ `);for(let l of o){let h=l.popularity?.stars?`${u(l.popularity.stars)} stars`:"";this.log(` ${c(l.id,40)} ${c(l.category,14)} ${h}`)}this.log(`
4
+ Search: rulemetric skills search <query>`),this.log("Install: rulemetric skills install <id>")}};function u(s){return s>=1e3?`${(s/1e3).toFixed(1)}k`:String(s)}r(u,"formatStars");function c(s,t){return s.length>t?s.slice(0,t-1)+"\u2026":s.padEnd(t)}r(c,"pad");export{e as default};
@@ -1,98 +1,2 @@
1
- import {
2
- BaseCommand
3
- } from "../../chunk-2HK7RGZB.js";
4
- import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-GQNJO2P2.js";
6
- import "../../chunk-37LN5O7M.js";
7
- import "../../chunk-EKJ2CABV.js";
8
- import {
9
- apiPost
10
- } from "../../chunk-ZUJBM6HE.js";
11
- import "../../chunk-W2YERO7E.js";
12
- import "../../chunk-NSBPE2FW.js";
13
-
14
- // src/commands/skills/publish.ts
15
- import * as fs from "node:fs";
16
- import * as path from "node:path";
17
- import { Args, Flags } from "@oclif/core";
18
- var SkillsPublish = class _SkillsPublish extends BaseCommand {
19
- static description = "Submit a skill file to the RuleMetric skills registry";
20
- static examples = [
21
- "<%= config.bin %> skills publish ./my-skill.md",
22
- "<%= config.bin %> skills publish ./my-skill.md --category workflow --tool claude_code"
23
- ];
24
- static args = {
25
- file: Args.string({ description: "Path to skill file (.md)", required: true })
26
- };
27
- static flags = {
28
- name: Flags.string({ description: "Skill name (defaults to filename)" }),
29
- description: Flags.string({ description: "One-line description" }),
30
- category: Flags.string({
31
- description: "Skill category",
32
- options: [
33
- "workflow",
34
- "language",
35
- "framework",
36
- "tool",
37
- "security",
38
- "testing",
39
- "architecture",
40
- "devops",
41
- "documentation",
42
- "performance",
43
- "other"
44
- ],
45
- default: "other"
46
- }),
47
- tool: Flags.string({
48
- description: "Primary tool this skill targets",
49
- options: ["claude_code", "cursor", "copilot", "windsurf", "universal"],
50
- default: "universal"
51
- }),
52
- tags: Flags.string({ description: "Comma-separated tags", default: "" })
53
- };
54
- async run() {
55
- const { args, flags } = await this.parse(_SkillsPublish);
56
- this.requireAuth();
57
- const filePath = path.resolve(args.file);
58
- if (!fs.existsSync(filePath)) {
59
- this.error(`File not found: ${filePath}`);
60
- }
61
- const content = fs.readFileSync(filePath, "utf-8");
62
- if (content.trim().length < 20) {
63
- this.error("Skill content is too short (minimum 20 characters)");
64
- }
65
- const basename2 = path.basename(filePath, path.extname(filePath));
66
- const name = flags.name ?? basename2.replace(/[-_]+/g, " ").replace(/\b\w/g, (c) => c.toUpperCase());
67
- const id = basename2.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
68
- const tags = flags.tags ? flags.tags.split(",").map((t) => t.trim()).filter(Boolean) : [];
69
- this.log(`Publishing skill: ${name} (${id})`);
70
- this.log(` Category: ${flags.category}`);
71
- this.log(` Tool: ${flags.tool}`);
72
- if (tags.length > 0) this.log(` Tags: ${tags.join(", ")}`);
73
- this.log(` Content: ${content.length} characters
74
- `);
75
- const payload = {
76
- id,
77
- name,
78
- description: flags.description ?? `Community skill: ${name}`,
79
- category: flags.category,
80
- tools: [flags.tool],
81
- tags,
82
- content
83
- };
84
- try {
85
- const result = await apiPost("/api/skills/publish", payload);
86
- this.log(`Published! ${result.message ?? `Skill "${name}" submitted to the registry.`}`);
87
- } catch (err) {
88
- if (err instanceof Error) {
89
- this.error(`Failed to publish: ${err.message}`);
90
- }
91
- throw err;
92
- }
93
- }
94
- };
95
- export {
96
- SkillsPublish as default
97
- };
98
- //# sourceMappingURL=publish.js.map
1
+ import{a as h}from"../../chunk-LQRYQE6Q.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-CRAKDQ4H.js";import"../../chunk-WPJ2BND4.js";import"../../chunk-3AV3GTMP.js";import{e as d}from"../../chunk-TIQ7DQ3M.js";import"../../chunk-M6AJDVCL.js";import{a as p}from"../../chunk-ZLLER3HP.js";import*as a from"node:fs";import*as i from"node:path";import{Args as k,Flags as o}from"@oclif/core";var c=class f extends h{static{p(this,"SkillsPublish")}static description="Submit a skill file to the RuleMetric skills registry";static examples=["<%= config.bin %> skills publish ./my-skill.md","<%= config.bin %> skills publish ./my-skill.md --category workflow --tool claude_code"];static args={file:k.string({description:"Path to skill file (.md)",required:!0})};static flags={name:o.string({description:"Skill name (defaults to filename)"}),description:o.string({description:"One-line description"}),category:o.string({description:"Skill category",options:["workflow","language","framework","tool","security","testing","architecture","devops","documentation","performance","other"],default:"other"}),tool:o.string({description:"Primary tool this skill targets",options:["claude_code","cursor","copilot","windsurf","universal"],default:"universal"}),tags:o.string({description:"Comma-separated tags",default:""})};async run(){let{args:u,flags:e}=await this.parse(f);this.requireAuth();let s=i.resolve(u.file);a.existsSync(s)||this.error(`File not found: ${s}`);let l=a.readFileSync(s,"utf-8");l.trim().length<20&&this.error("Skill content is too short (minimum 20 characters)");let g=i.basename(s,i.extname(s)),r=e.name??g.replace(/[-_]+/g," ").replace(/\b\w/g,t=>t.toUpperCase()),m=g.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,""),n=e.tags?e.tags.split(",").map(t=>t.trim()).filter(Boolean):[];this.log(`Publishing skill: ${r} (${m})`),this.log(` Category: ${e.category}`),this.log(` Tool: ${e.tool}`),n.length>0&&this.log(` Tags: ${n.join(", ")}`),this.log(` Content: ${l.length} characters
2
+ `);let y={id:m,name:r,description:e.description??`Community skill: ${r}`,category:e.category,tools:[e.tool],tags:n,content:l};try{let t=await d("/api/skills/publish",y);this.log(`Published! ${t.message??`Skill "${r}" submitted to the registry.`}`)}catch(t){throw t instanceof Error&&this.error(`Failed to publish: ${t.message}`),t}}};export{c as default};
@@ -1,72 +1,3 @@
1
- import {
2
- loadRegistry
3
- } from "../../chunk-4BHDHHKL.js";
4
- import {
5
- BaseCommand
6
- } from "../../chunk-2HK7RGZB.js";
7
- import "../../chunk-R56PH7YE.js";
8
- import "../../chunk-GQNJO2P2.js";
9
- import "../../chunk-37LN5O7M.js";
10
- import "../../chunk-EKJ2CABV.js";
11
- import "../../chunk-ZUJBM6HE.js";
12
- import "../../chunk-W2YERO7E.js";
13
- import "../../chunk-NSBPE2FW.js";
14
-
15
- // src/commands/skills/search.ts
16
- import { Args, Flags } from "@oclif/core";
17
- var SkillsSearch = class _SkillsSearch extends BaseCommand {
18
- static description = "Search the community skills registry";
19
- static examples = [
20
- '<%= config.bin %> skills search "tdd"',
21
- "<%= config.bin %> skills search --tool cursor --category testing",
22
- "<%= config.bin %> skills search --language python"
23
- ];
24
- static args = {
25
- query: Args.string({ description: "Search term", required: false })
26
- };
27
- static flags = {
28
- tool: Flags.string({ description: "Filter by tool", options: ["claude_code", "cursor", "copilot", "windsurf", "cline", "universal"] }),
29
- category: Flags.string({ description: "Filter by category", options: ["workflow", "language", "framework", "tool", "security", "testing", "architecture", "devops", "documentation", "performance"] }),
30
- language: Flags.string({ description: "Filter by programming language" }),
31
- framework: Flags.string({ description: "Filter by framework" }),
32
- limit: Flags.integer({ description: "Max results", default: 20 })
33
- };
34
- async run() {
35
- const { args, flags } = await this.parse(_SkillsSearch);
36
- const catalog = await loadRegistry(this);
37
- const results = catalog.search({
38
- query: args.query,
39
- tool: flags.tool,
40
- category: flags.category,
41
- language: flags.language,
42
- limit: flags.limit
43
- });
44
- if (results.length === 0) {
45
- this.log("No skills found matching your criteria.");
46
- this.log("\nTry a broader search or run: rulemetric skills list");
47
- return;
48
- }
49
- this.log(`Found ${results.length} skill${results.length === 1 ? "" : "s"}:
50
- `);
51
- for (const skill of results) {
52
- const stars = skill.popularity?.stars ? ` (${formatStars(skill.popularity.stars)} stars)` : "";
53
- const tools = skill.tools.join(", ");
54
- this.log(` ${skill.id}`);
55
- this.log(` ${skill.name} \u2014 ${skill.description}`);
56
- this.log(` tools: ${tools} category: ${skill.category}${stars}`);
57
- if (skill.tags.length > 0) {
58
- this.log(` tags: ${skill.tags.join(", ")}`);
59
- }
60
- this.log("");
61
- }
62
- this.log(`Run: rulemetric skills install <id> to install a skill`);
63
- }
64
- };
65
- function formatStars(n) {
66
- if (n >= 1e3) return `${(n / 1e3).toFixed(1)}k`;
67
- return String(n);
68
- }
69
- export {
70
- SkillsSearch as default
71
- };
72
- //# sourceMappingURL=search.js.map
1
+ import{a as n}from"../../chunk-CDI5CCHU.js";import{a}from"../../chunk-LQRYQE6Q.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-CRAKDQ4H.js";import"../../chunk-WPJ2BND4.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-TIQ7DQ3M.js";import"../../chunk-M6AJDVCL.js";import{a as e}from"../../chunk-ZLLER3HP.js";import{Args as d,Flags as i}from"@oclif/core";var l=class r extends a{static{e(this,"SkillsSearch")}static description="Search the community skills registry";static examples=['<%= config.bin %> skills search "tdd"',"<%= config.bin %> skills search --tool cursor --category testing","<%= config.bin %> skills search --language python"];static args={query:d.string({description:"Search term",required:!1})};static flags={tool:i.string({description:"Filter by tool",options:["claude_code","cursor","copilot","windsurf","cline","universal"]}),category:i.string({description:"Filter by category",options:["workflow","language","framework","tool","security","testing","architecture","devops","documentation","performance"]}),language:i.string({description:"Filter by programming language"}),framework:i.string({description:"Filter by framework"}),limit:i.integer({description:"Max results",default:20})};async run(){let{args:g,flags:o}=await this.parse(r),s=(await n(this)).search({query:g.query,tool:o.tool,category:o.category,language:o.language,limit:o.limit});if(s.length===0){this.log("No skills found matching your criteria."),this.log(`
2
+ Try a broader search or run: rulemetric skills list`);return}this.log(`Found ${s.length} skill${s.length===1?"":"s"}:
3
+ `);for(let t of s){let c=t.popularity?.stars?` (${m(t.popularity.stars)} stars)`:"",u=t.tools.join(", ");this.log(` ${t.id}`),this.log(` ${t.name} \u2014 ${t.description}`),this.log(` tools: ${u} category: ${t.category}${c}`),t.tags.length>0&&this.log(` tags: ${t.tags.join(", ")}`),this.log("")}this.log("Run: rulemetric skills install <id> to install a skill")}};function m(r){return r>=1e3?`${(r/1e3).toFixed(1)}k`:String(r)}e(m,"formatStars");export{l as default};
@@ -1,55 +1,3 @@
1
- import {
2
- BaseCommand
3
- } from "../../chunk-2HK7RGZB.js";
4
- import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-GQNJO2P2.js";
6
- import "../../chunk-37LN5O7M.js";
7
- import "../../chunk-EKJ2CABV.js";
8
- import "../../chunk-ZUJBM6HE.js";
9
- import "../../chunk-W2YERO7E.js";
10
- import "../../chunk-NSBPE2FW.js";
11
-
12
- // src/commands/skills/update.ts
13
- import * as fs from "node:fs";
14
- import * as path from "node:path";
15
- import * as os from "node:os";
16
- import { Flags } from "@oclif/core";
17
- import { fetchAllSources, TIER_1_SOURCES, TIER_2_SOURCES } from "@rulemetric/skills-registry";
18
- var CACHE_DIR = path.join(os.homedir(), ".config", "rulemetric");
19
- var REGISTRY_PATH = path.join(CACHE_DIR, "skills-registry.json");
20
- var SkillsUpdate = class _SkillsUpdate extends BaseCommand {
21
- static description = "Fetch latest skills from GitHub sources and update local registry";
22
- static examples = [
23
- "<%= config.bin %> skills update",
24
- "<%= config.bin %> skills update --all"
25
- ];
26
- static flags = {
27
- all: Flags.boolean({ description: "Include Tier 2 (niche) sources", default: false })
28
- };
29
- async run() {
30
- const { flags } = await this.parse(_SkillsUpdate);
31
- const sources = flags.all ? [...TIER_1_SOURCES, ...TIER_2_SOURCES] : TIER_1_SOURCES;
32
- this.log(`Fetching skills from ${sources.length} sources${flags.all ? " (Tier 1 + 2)" : ""}...
33
- `);
34
- const result = await fetchAllSources(sources, {
35
- onProgress: (source, count) => {
36
- this.log(` ${source}: ${count} skills`);
37
- }
38
- });
39
- const registry = {
40
- version: "1.0.0",
41
- generatedAt: (/* @__PURE__ */ new Date()).toISOString(),
42
- skills: result.entries
43
- };
44
- if (!fs.existsSync(CACHE_DIR)) {
45
- fs.mkdirSync(CACHE_DIR, { recursive: true });
46
- }
47
- fs.writeFileSync(REGISTRY_PATH, JSON.stringify(registry));
48
- this.log(`
49
- Updated registry: ${result.entries.length} skills cached at ${REGISTRY_PATH}`);
50
- }
51
- };
52
- export {
53
- SkillsUpdate as default
54
- };
55
- //# sourceMappingURL=update.js.map
1
+ import{a as n}from"../../chunk-LQRYQE6Q.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-CRAKDQ4H.js";import"../../chunk-WPJ2BND4.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-TIQ7DQ3M.js";import"../../chunk-M6AJDVCL.js";import{a as e}from"../../chunk-ZLLER3HP.js";import*as s from"node:fs";import*as r from"node:path";import*as m from"node:os";import{Flags as h}from"@oclif/core";import{fetchAllSources as y,TIER_1_SOURCES as c,TIER_2_SOURCES as S}from"@rulemetric/skills-registry";var i=r.join(m.homedir(),".config","rulemetric"),f=r.join(i,"skills-registry.json"),t=class g extends n{static{e(this,"SkillsUpdate")}static description="Fetch latest skills from GitHub sources and update local registry";static examples=["<%= config.bin %> skills update","<%= config.bin %> skills update --all"];static flags={all:h.boolean({description:"Include Tier 2 (niche) sources",default:!1})};async run(){let{flags:o}=await this.parse(g),l=o.all?[...c,...S]:c;this.log(`Fetching skills from ${l.length} sources${o.all?" (Tier 1 + 2)":""}...
2
+ `);let a=await y(l,{onProgress:e((p,u)=>{this.log(` ${p}: ${u} skills`)},"onProgress")}),d={version:"1.0.0",generatedAt:new Date().toISOString(),skills:a.entries};s.existsSync(i)||s.mkdirSync(i,{recursive:!0}),s.writeFileSync(f,JSON.stringify(d)),this.log(`
3
+ Updated registry: ${a.entries.length} skills cached at ${f}`)}};export{t as default};