@rulemetric/cli 0.7.3 → 0.7.5

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 (550) hide show
  1. package/README.md +10 -8
  2. package/dist/base-command.js +1 -14
  3. package/dist/chunk-2JRDG4LJ.js +31 -0
  4. package/dist/chunk-2TC6WCUT.js +34 -0
  5. package/dist/chunk-2WLVDSAP.js +2 -0
  6. package/dist/chunk-32EEBARV.js +1 -0
  7. package/dist/chunk-3AV3GTMP.js +1 -0
  8. package/dist/chunk-43YBXX7R.js +1 -0
  9. package/dist/chunk-4Z5ECCJE.js +1 -0
  10. package/dist/chunk-5RBLIVBF.js +1 -0
  11. package/dist/chunk-67QCYUJU.js +1 -0
  12. package/dist/chunk-6QKI756T.js +2 -0
  13. package/dist/chunk-6V4WM73L.js +1 -0
  14. package/dist/chunk-6XEC6474.js +1 -0
  15. package/dist/chunk-7DFNBRLY.js +61 -0
  16. package/dist/chunk-ARNZQBMX.js +1 -0
  17. package/dist/chunk-AYUJY37O.js +5 -0
  18. package/dist/chunk-CADKBP3D.js +58 -0
  19. package/dist/chunk-CDI5CCHU.js +1 -0
  20. package/dist/chunk-CNQ5DTNC.js +1 -0
  21. package/dist/chunk-DCLWFGEA.js +1 -0
  22. package/dist/chunk-DNF4HDI6.js +14 -0
  23. package/dist/chunk-DPFNJZUO.js +1 -0
  24. package/dist/chunk-DSO2U4Y6.js +56 -0
  25. package/dist/chunk-DVN7GFJG.js +1 -0
  26. package/dist/chunk-G63KMH6U.js +1 -0
  27. package/dist/chunk-G6XGDHGC.js +2 -0
  28. package/dist/chunk-GBMF3TP6.js +1 -0
  29. package/dist/chunk-GY5IJ4RS.js +1 -0
  30. package/dist/chunk-H2ORWIEY.js +1 -0
  31. package/dist/chunk-H4SV7FN4.js +1 -0
  32. package/dist/chunk-HS7X43XE.js +24 -0
  33. package/dist/{chunk-OQBBVTDG.js → chunk-I2DZGJRR.js} +6 -71
  34. package/dist/chunk-IZTIYR5Q.js +2 -0
  35. package/dist/chunk-JAPCCEKF.js +3 -0
  36. package/dist/chunk-JQTGQXUX.js +1 -0
  37. package/dist/chunk-KAF3CYRW.js +9 -0
  38. package/dist/chunk-KKDHD4XA.js +2 -0
  39. package/dist/chunk-KV325CXF.js +33 -0
  40. package/dist/chunk-MGHFDHHM.js +1 -0
  41. package/dist/chunk-MODXEGCU.js +1 -0
  42. package/dist/chunk-MVM6OGAF.js +4 -0
  43. package/dist/chunk-N7ODX6PO.js +1 -0
  44. package/dist/chunk-N7TGRFVZ.js +70 -0
  45. package/dist/chunk-NBTC5FNV.js +1 -0
  46. package/dist/chunk-NEACEHQD.js +1 -0
  47. package/dist/chunk-NJ5UED3H.js +1 -0
  48. package/dist/chunk-NVKX36YN.js +3 -0
  49. package/dist/chunk-O2SDD2WW.js +1 -0
  50. package/dist/chunk-O6C2UGBY.js +7 -0
  51. package/dist/chunk-OMXUK4M6.js +1 -0
  52. package/dist/chunk-PPKPCXJD.js +4 -0
  53. package/dist/{chunk-XZXS2W24.js → chunk-QFVGUZDO.js} +11 -57
  54. package/dist/chunk-RDET7CKR.js +1 -0
  55. package/dist/chunk-RQ424GI6.js +5 -0
  56. package/dist/chunk-RSKQRVPJ.js +1 -0
  57. package/dist/chunk-RTWRHIKY.js +7 -0
  58. package/dist/chunk-SZ62CP55.js +1 -0
  59. package/dist/chunk-TDD7IOV2.js +1 -0
  60. package/dist/chunk-TIOKY2IA.js +1 -0
  61. package/dist/chunk-TQMG647B.js +15 -0
  62. package/dist/chunk-TU2AR6XO.js +1 -0
  63. package/dist/chunk-U6ABMRT3.js +9 -0
  64. package/dist/chunk-U6XEU573.js +1 -0
  65. package/dist/chunk-UF6US7VU.js +1 -0
  66. package/dist/chunk-V44SRRYR.js +1 -0
  67. package/dist/chunk-V5U3E4BZ.js +1 -0
  68. package/dist/chunk-VAXRCSSH.js +2 -0
  69. package/dist/chunk-VLOX6KOM.js +1 -0
  70. package/dist/chunk-VUGRXM7R.js +1 -0
  71. package/dist/chunk-W2MOTOQE.js +1 -0
  72. package/dist/chunk-W2MV25SB.js +1 -0
  73. package/dist/chunk-WLVQJH4E.js +1 -0
  74. package/dist/chunk-WSCK4WNK.js +1 -0
  75. package/dist/chunk-XICLXXRH.js +1 -0
  76. package/dist/chunk-XXDZJ6YI.js +1 -0
  77. package/dist/chunk-ZL4MZMUK.js +34 -0
  78. package/dist/chunk-ZLLER3HP.js +1 -0
  79. package/dist/chunk-ZR3MUNLS.js +1 -0
  80. package/dist/chunk-ZXF5NE54.js +1 -0
  81. package/dist/commands/antigravity/backfill.js +2 -136
  82. package/dist/commands/auth/create-key.js +1 -52
  83. package/dist/commands/auth/login.js +1 -85
  84. package/dist/commands/auth/logout.js +1 -29
  85. package/dist/commands/auth/revoke-key.js +4 -33
  86. package/dist/commands/auth/signup.js +1 -89
  87. package/dist/commands/auth/status.js +1 -42
  88. package/dist/commands/catalog/index.js +2 -52
  89. package/dist/commands/catalog/recommend.js +3 -43
  90. package/dist/commands/convert.js +1 -75
  91. package/dist/commands/converters.js +1 -54
  92. package/dist/commands/crons/list.js +1 -41
  93. package/dist/commands/crons/run.js +2 -76
  94. package/dist/commands/dashboard.js +1 -46
  95. package/dist/commands/diagnostics.js +1 -117
  96. package/dist/commands/eval-targets/create.js +1 -53
  97. package/dist/commands/eval-targets/list.js +1 -54
  98. package/dist/commands/evals/agent.js +3 -310
  99. package/dist/commands/evals/benchmark.js +6 -73
  100. package/dist/commands/evals/compare.js +13 -96
  101. package/dist/commands/evals/create.js +1 -67
  102. package/dist/commands/evals/optimize-description.js +25 -239
  103. package/dist/commands/evals/optimize.js +5 -211
  104. package/dist/commands/evals/run.js +3 -183
  105. package/dist/commands/gateway/ensure.js +1 -104
  106. package/dist/commands/hooks/emit-instructions.js +1 -25
  107. package/dist/commands/hooks/install.js +1 -442
  108. package/dist/commands/hooks/run.js +3 -81
  109. package/dist/commands/hooks/uninstall.js +2 -156
  110. package/dist/commands/import.js +1 -66
  111. package/dist/commands/instructions/create.js +1 -74
  112. package/dist/commands/instructions/delete.js +1 -55
  113. package/dist/commands/instructions/fork.js +1 -34
  114. package/dist/commands/instructions/get.js +1 -68
  115. package/dist/commands/instructions/list.js +1 -65
  116. package/dist/commands/instructions/promote.js +1 -42
  117. package/dist/commands/instructions/pull.js +1 -39
  118. package/dist/commands/instructions/upstream.js +1 -38
  119. package/dist/commands/instructions/versions.js +1 -53
  120. package/dist/commands/launcher.js +1 -40
  121. package/dist/commands/org/current.js +1 -77
  122. package/dist/commands/org/list.js +1 -52
  123. package/dist/commands/org/switch.js +1 -71
  124. package/dist/commands/packs/add-instruction.js +1 -37
  125. package/dist/commands/packs/apply.js +1 -39
  126. package/dist/commands/packs/create.js +1 -50
  127. package/dist/commands/packs/fork.js +1 -34
  128. package/dist/commands/packs/get.js +3 -56
  129. package/dist/commands/packs/list.js +1 -66
  130. package/dist/commands/packs/remove-instruction.js +1 -35
  131. package/dist/commands/proxy/env.js +3 -131
  132. package/dist/commands/proxy/logs.js +3 -85
  133. package/dist/commands/proxy/restart.js +1 -35
  134. package/dist/commands/proxy/setup.js +17 -454
  135. package/dist/commands/proxy/start.js +10 -333
  136. package/dist/commands/proxy/status.js +1 -78
  137. package/dist/commands/proxy/stop.js +1 -94
  138. package/dist/commands/research/backfill.js +1 -59
  139. package/dist/commands/research/tail-transcript.js +1 -70
  140. package/dist/commands/service/install.js +57 -796
  141. package/dist/commands/service/status.js +1 -180
  142. package/dist/commands/service/uninstall.js +1 -119
  143. package/dist/commands/sessions/analyze.js +1 -48
  144. package/dist/commands/sessions/end.js +2 -85
  145. package/dist/commands/sessions/import.js +1 -46
  146. package/dist/commands/sessions/list.js +1 -48
  147. package/dist/commands/sessions/start.js +3 -90
  148. package/dist/commands/setup.js +3 -150
  149. package/dist/commands/skills/export-approved.js +1 -46
  150. package/dist/commands/skills/install.js +4 -107
  151. package/dist/commands/skills/list.js +4 -65
  152. package/dist/commands/skills/publish.js +2 -98
  153. package/dist/commands/skills/search.js +3 -72
  154. package/dist/commands/skills/update.js +3 -55
  155. package/dist/commands/suggestions/accept.js +8 -84
  156. package/dist/commands/suggestions/dismiss.js +1 -45
  157. package/dist/commands/suggestions/list.js +2 -61
  158. package/dist/commands/suggestions/refresh.js +1 -27
  159. package/dist/cursor-T7AMCMKS.js +13 -0
  160. package/dist/dashboard/Dashboard.js +1 -243
  161. package/dist/dashboard/data.js +1 -15
  162. package/dist/dashboard/launcher/ActiveJobsList.js +1 -10
  163. package/dist/dashboard/launcher/LauncherOverlay.js +1 -16
  164. package/dist/dashboard/launcher/NewLaunchForm.js +1 -10
  165. package/dist/dashboard/launcher/api.js +1 -16
  166. package/dist/dashboard/launcher/tool-labels.js +1 -10
  167. package/dist/dashboard/launcher/types.js +0 -1
  168. package/dist/dashboard/launcher/useLaunchJobs.js +1 -11
  169. package/dist/dashboard/panels/friction.js +1 -10
  170. package/dist/dashboard/panels/insights.js +1 -10
  171. package/dist/dashboard/panels/instructions.js +1 -10
  172. package/dist/dashboard/panels/outcomes.js +1 -10
  173. package/dist/dashboard/panels/overview.js +1 -10
  174. package/dist/dashboard/panels/shared.js +1 -19
  175. package/dist/dashboard/types.js +1 -24
  176. package/dist/dist-FAVALJ5C.js +1 -0
  177. package/dist/index.js +1 -8
  178. package/dist/lib/active-org-refresh.js +1 -15
  179. package/dist/lib/active-org.js +1 -16
  180. package/dist/lib/agent-loop.js +1 -47
  181. package/dist/lib/antigravity-transcript.js +1 -22
  182. package/dist/lib/api-client.js +1 -23
  183. package/dist/lib/auth.js +1 -30
  184. package/dist/lib/capture-hosts.js +1 -8
  185. package/dist/lib/detect-languages.js +1 -8
  186. package/dist/lib/detect-tmux.js +1 -9
  187. package/dist/lib/diagnostics.js +1 -12
  188. package/dist/lib/editor-proxy-pins.js +1 -14
  189. package/dist/lib/ensure-api-key.js +1 -11
  190. package/dist/lib/ensure-fresh-token.js +1 -0
  191. package/dist/lib/eval-analyzer.js +1 -9
  192. package/dist/lib/eval-benchmark.js +1 -12
  193. package/dist/lib/eval-conversation-handler.js +1 -13
  194. package/dist/lib/eval-executor.js +1 -8
  195. package/dist/lib/eval-grader.js +1 -9
  196. package/dist/lib/eval-meta-judge.js +1 -9
  197. package/dist/lib/eval-trigger-tester.js +1 -11
  198. package/dist/lib/eval-worktree.js +1 -8
  199. package/dist/lib/gateway-entry.js +1 -61
  200. package/dist/lib/gateway-identity.js +1 -16
  201. package/dist/lib/gateway-lifecycle.js +1 -32
  202. package/dist/lib/gateway.js +1 -14
  203. package/dist/lib/handlers/cron-refresh-pricing.js +1 -0
  204. package/dist/lib/handlers/cron-refresh-skills.js +1 -8
  205. package/dist/lib/handlers/cron-suggest-instructions.js +1 -16
  206. package/dist/lib/handlers/process-announcement.js +1 -11
  207. package/dist/lib/handlers/process-changelog.js +1 -11
  208. package/dist/lib/handlers/process-conversation.js +1 -14
  209. package/dist/lib/handlers/process-eval.js +1 -15
  210. package/dist/lib/handlers/process-insights.js +1 -15
  211. package/dist/lib/handlers/process-launch.js +1 -16
  212. package/dist/lib/handlers/process-run-cleanup.js +1 -13
  213. package/dist/lib/handlers/process-send-message.js +1 -10
  214. package/dist/lib/handlers/process-session-goal.js +1 -12
  215. package/dist/lib/hooks-config.js +1 -81
  216. package/dist/lib/insights-prompts.js +1 -12
  217. package/dist/lib/instruction-snapshot.js +1 -8
  218. package/dist/lib/job-helpers.js +0 -1
  219. package/dist/lib/llm-client.js +1 -20
  220. package/dist/lib/manual-tasks-meta.js +1 -8
  221. package/dist/lib/manual-tasks.js +1 -80
  222. package/dist/lib/output.js +1 -12
  223. package/dist/lib/permanent-job-error.js +1 -10
  224. package/dist/lib/pid-identity.js +1 -14
  225. package/dist/lib/proxy-respawn.js +1 -12
  226. package/dist/lib/research-client.js +1 -12
  227. package/dist/lib/setup-steps.js +1 -33
  228. package/dist/lib/skills-loader.js +1 -8
  229. package/dist/lib/statusline-shim.js +1 -20
  230. package/dist/lib/telemetry.js +1 -16
  231. package/dist/lib/terminal-target-heartbeat.js +1 -15
  232. package/dist/lib/tmux.js +1 -16
  233. package/dist/lib/transcript-rate-limit-watcher.js +1 -22
  234. package/dist/lib/types.js +1 -8
  235. package/dist/lib/version-check.js +1 -12
  236. package/dist/lib/which.js +1 -8
  237. package/dist/lib/worktree.js +1 -17
  238. package/dist/opencode-QRJ3BH23.js +1 -0
  239. package/oclif.manifest.json +12 -34
  240. package/package.json +9 -8
  241. package/dist/base-command.js.map +0 -7
  242. package/dist/chunk-2HK7RGZB.js +0 -82
  243. package/dist/chunk-2HK7RGZB.js.map +0 -7
  244. package/dist/chunk-2ORJWTNZ.js +0 -307
  245. package/dist/chunk-2ORJWTNZ.js.map +0 -7
  246. package/dist/chunk-37LN5O7M.js +0 -59
  247. package/dist/chunk-37LN5O7M.js.map +0 -7
  248. package/dist/chunk-3S7223UR.js +0 -81
  249. package/dist/chunk-3S7223UR.js.map +0 -7
  250. package/dist/chunk-3TIMQ3O6.js +0 -96
  251. package/dist/chunk-3TIMQ3O6.js.map +0 -7
  252. package/dist/chunk-42GFSAJP.js +0 -32
  253. package/dist/chunk-42GFSAJP.js.map +0 -7
  254. package/dist/chunk-4BHDHHKL.js +0 -48
  255. package/dist/chunk-4BHDHHKL.js.map +0 -7
  256. package/dist/chunk-4D537GXE.js +0 -99
  257. package/dist/chunk-4D537GXE.js.map +0 -7
  258. package/dist/chunk-4LYCDS2N.js +0 -139
  259. package/dist/chunk-4LYCDS2N.js.map +0 -7
  260. package/dist/chunk-4SCZK7AL.js +0 -129
  261. package/dist/chunk-4SCZK7AL.js.map +0 -7
  262. package/dist/chunk-4XAWK6S2.js +0 -161
  263. package/dist/chunk-4XAWK6S2.js.map +0 -7
  264. package/dist/chunk-52WIYRZH.js +0 -73
  265. package/dist/chunk-52WIYRZH.js.map +0 -7
  266. package/dist/chunk-5BAOGNUH.js +0 -79
  267. package/dist/chunk-5BAOGNUH.js.map +0 -7
  268. package/dist/chunk-5EDMGK3W.js +0 -39
  269. package/dist/chunk-5EDMGK3W.js.map +0 -7
  270. package/dist/chunk-6NBS5XFS.js +0 -99
  271. package/dist/chunk-6NBS5XFS.js.map +0 -7
  272. package/dist/chunk-7LVVKQMZ.js +0 -98
  273. package/dist/chunk-7LVVKQMZ.js.map +0 -7
  274. package/dist/chunk-7NNFYWKK.js +0 -243
  275. package/dist/chunk-7NNFYWKK.js.map +0 -7
  276. package/dist/chunk-7NYKWN7U.js +0 -12
  277. package/dist/chunk-7NYKWN7U.js.map +0 -7
  278. package/dist/chunk-BO76WKJR.js +0 -42
  279. package/dist/chunk-BO76WKJR.js.map +0 -7
  280. package/dist/chunk-BRD5RUGM.js +0 -53
  281. package/dist/chunk-BRD5RUGM.js.map +0 -7
  282. package/dist/chunk-BT6Z6545.js +0 -43
  283. package/dist/chunk-BT6Z6545.js.map +0 -7
  284. package/dist/chunk-BZDKEQKU.js +0 -39
  285. package/dist/chunk-BZDKEQKU.js.map +0 -7
  286. package/dist/chunk-DGHWRQXL.js +0 -17
  287. package/dist/chunk-DGHWRQXL.js.map +0 -7
  288. package/dist/chunk-DIQUV5FR.js +0 -257
  289. package/dist/chunk-DIQUV5FR.js.map +0 -7
  290. package/dist/chunk-DMX5YOTM.js +0 -167
  291. package/dist/chunk-DMX5YOTM.js.map +0 -7
  292. package/dist/chunk-DNKSVWMD.js +0 -108
  293. package/dist/chunk-DNKSVWMD.js.map +0 -7
  294. package/dist/chunk-DQ3KELXD.js +0 -74
  295. package/dist/chunk-DQ3KELXD.js.map +0 -7
  296. package/dist/chunk-DUJSRBLP.js +0 -122
  297. package/dist/chunk-DUJSRBLP.js.map +0 -7
  298. package/dist/chunk-E3BIT53W.js +0 -154
  299. package/dist/chunk-E3BIT53W.js.map +0 -7
  300. package/dist/chunk-EARWG4EV.js +0 -22
  301. package/dist/chunk-EARWG4EV.js.map +0 -7
  302. package/dist/chunk-EI5BHWXA.js +0 -1662
  303. package/dist/chunk-EI5BHWXA.js.map +0 -7
  304. package/dist/chunk-EJ3YAFDP.js +0 -37
  305. package/dist/chunk-EJ3YAFDP.js.map +0 -7
  306. package/dist/chunk-EKJ2CABV.js +0 -76
  307. package/dist/chunk-EKJ2CABV.js.map +0 -7
  308. package/dist/chunk-EKP32DLN.js +0 -16
  309. package/dist/chunk-EKP32DLN.js.map +0 -7
  310. package/dist/chunk-EYPAAGN5.js +0 -51
  311. package/dist/chunk-EYPAAGN5.js.map +0 -7
  312. package/dist/chunk-F5N6CLJJ.js +0 -1995
  313. package/dist/chunk-F5N6CLJJ.js.map +0 -7
  314. package/dist/chunk-GIUBARWS.js +0 -99
  315. package/dist/chunk-GIUBARWS.js.map +0 -7
  316. package/dist/chunk-GQNJO2P2.js +0 -102
  317. package/dist/chunk-GQNJO2P2.js.map +0 -7
  318. package/dist/chunk-IJGF2ETG.js +0 -68
  319. package/dist/chunk-IJGF2ETG.js.map +0 -7
  320. package/dist/chunk-ILYDELUE.js +0 -46
  321. package/dist/chunk-ILYDELUE.js.map +0 -7
  322. package/dist/chunk-J6QFW4LD.js +0 -55
  323. package/dist/chunk-J6QFW4LD.js.map +0 -7
  324. package/dist/chunk-J7N3DLH6.js +0 -117
  325. package/dist/chunk-J7N3DLH6.js.map +0 -7
  326. package/dist/chunk-JFDWKLQC.js +0 -23
  327. package/dist/chunk-JFDWKLQC.js.map +0 -7
  328. package/dist/chunk-JULOLTZS.js +0 -61
  329. package/dist/chunk-JULOLTZS.js.map +0 -7
  330. package/dist/chunk-KJKBDQ4D.js +0 -220
  331. package/dist/chunk-KJKBDQ4D.js.map +0 -7
  332. package/dist/chunk-KRBQLMOP.js +0 -41
  333. package/dist/chunk-KRBQLMOP.js.map +0 -7
  334. package/dist/chunk-LXKPNATC.js +0 -624
  335. package/dist/chunk-LXKPNATC.js.map +0 -7
  336. package/dist/chunk-NSBPE2FW.js +0 -17
  337. package/dist/chunk-NSBPE2FW.js.map +0 -7
  338. package/dist/chunk-OCKHW72U.js +0 -55
  339. package/dist/chunk-OCKHW72U.js.map +0 -7
  340. package/dist/chunk-OKWCKCPE.js +0 -414
  341. package/dist/chunk-OKWCKCPE.js.map +0 -7
  342. package/dist/chunk-OO7JDFS4.js +0 -157
  343. package/dist/chunk-OO7JDFS4.js.map +0 -7
  344. package/dist/chunk-OQBBVTDG.js.map +0 -7
  345. package/dist/chunk-OQSQC7VB.js +0 -77
  346. package/dist/chunk-OQSQC7VB.js.map +0 -7
  347. package/dist/chunk-PED7L5GX.js +0 -92
  348. package/dist/chunk-PED7L5GX.js.map +0 -7
  349. package/dist/chunk-QJQS6TUN.js +0 -44
  350. package/dist/chunk-QJQS6TUN.js.map +0 -7
  351. package/dist/chunk-QN34TGD3.js +0 -83
  352. package/dist/chunk-QN34TGD3.js.map +0 -7
  353. package/dist/chunk-QSN77T7C.js +0 -250
  354. package/dist/chunk-QSN77T7C.js.map +0 -7
  355. package/dist/chunk-R56PH7YE.js +0 -78
  356. package/dist/chunk-R56PH7YE.js.map +0 -7
  357. package/dist/chunk-RAXRZYOB.js +0 -299
  358. package/dist/chunk-RAXRZYOB.js.map +0 -7
  359. package/dist/chunk-RH7NHVSK.js +0 -16
  360. package/dist/chunk-RH7NHVSK.js.map +0 -7
  361. package/dist/chunk-RMTT4KDY.js +0 -191
  362. package/dist/chunk-RMTT4KDY.js.map +0 -7
  363. package/dist/chunk-RQ2TMLKG.js +0 -142
  364. package/dist/chunk-RQ2TMLKG.js.map +0 -7
  365. package/dist/chunk-SO3T35U7.js +0 -80
  366. package/dist/chunk-SO3T35U7.js.map +0 -7
  367. package/dist/chunk-UKMLICWS.js +0 -51
  368. package/dist/chunk-UKMLICWS.js.map +0 -7
  369. package/dist/chunk-VA5FFOS7.js +0 -243
  370. package/dist/chunk-VA5FFOS7.js.map +0 -7
  371. package/dist/chunk-W2YERO7E.js +0 -170
  372. package/dist/chunk-W2YERO7E.js.map +0 -7
  373. package/dist/chunk-W53GKIZQ.js +0 -50
  374. package/dist/chunk-W53GKIZQ.js.map +0 -7
  375. package/dist/chunk-WA4MWYRW.js +0 -254
  376. package/dist/chunk-WA4MWYRW.js.map +0 -7
  377. package/dist/chunk-XC6M4CSW.js +0 -44
  378. package/dist/chunk-XC6M4CSW.js.map +0 -7
  379. package/dist/chunk-XK42ZBDE.js +0 -23
  380. package/dist/chunk-XK42ZBDE.js.map +0 -7
  381. package/dist/chunk-XUV6DDBF.js +0 -124
  382. package/dist/chunk-XUV6DDBF.js.map +0 -7
  383. package/dist/chunk-XZXS2W24.js.map +0 -7
  384. package/dist/chunk-Y3WD5CSW.js +0 -49
  385. package/dist/chunk-Y3WD5CSW.js.map +0 -7
  386. package/dist/chunk-Y4BJXXYV.js +0 -148
  387. package/dist/chunk-Y4BJXXYV.js.map +0 -7
  388. package/dist/chunk-YNIH3KMU.js +0 -121
  389. package/dist/chunk-YNIH3KMU.js.map +0 -7
  390. package/dist/chunk-ZUJBM6HE.js +0 -125
  391. package/dist/chunk-ZUJBM6HE.js.map +0 -7
  392. package/dist/commands/antigravity/backfill.js.map +0 -7
  393. package/dist/commands/auth/create-key.js.map +0 -7
  394. package/dist/commands/auth/login.js.map +0 -7
  395. package/dist/commands/auth/logout.js.map +0 -7
  396. package/dist/commands/auth/revoke-key.js.map +0 -7
  397. package/dist/commands/auth/signup.js.map +0 -7
  398. package/dist/commands/auth/status.js.map +0 -7
  399. package/dist/commands/catalog/index.js.map +0 -7
  400. package/dist/commands/catalog/recommend.js.map +0 -7
  401. package/dist/commands/convert.js.map +0 -7
  402. package/dist/commands/converters.js.map +0 -7
  403. package/dist/commands/crons/list.js.map +0 -7
  404. package/dist/commands/crons/run.js.map +0 -7
  405. package/dist/commands/dashboard.js.map +0 -7
  406. package/dist/commands/diagnostics.js.map +0 -7
  407. package/dist/commands/eval-targets/create.js.map +0 -7
  408. package/dist/commands/eval-targets/list.js.map +0 -7
  409. package/dist/commands/evals/agent.js.map +0 -7
  410. package/dist/commands/evals/benchmark.js.map +0 -7
  411. package/dist/commands/evals/compare.js.map +0 -7
  412. package/dist/commands/evals/create.js.map +0 -7
  413. package/dist/commands/evals/optimize-description.js.map +0 -7
  414. package/dist/commands/evals/optimize.js.map +0 -7
  415. package/dist/commands/evals/run.js.map +0 -7
  416. package/dist/commands/gateway/ensure.js.map +0 -7
  417. package/dist/commands/hooks/emit-instructions.js.map +0 -7
  418. package/dist/commands/hooks/install.js.map +0 -7
  419. package/dist/commands/hooks/run.js.map +0 -7
  420. package/dist/commands/hooks/uninstall.js.map +0 -7
  421. package/dist/commands/import.js.map +0 -7
  422. package/dist/commands/instructions/create.js.map +0 -7
  423. package/dist/commands/instructions/delete.js.map +0 -7
  424. package/dist/commands/instructions/fork.js.map +0 -7
  425. package/dist/commands/instructions/get.js.map +0 -7
  426. package/dist/commands/instructions/list.js.map +0 -7
  427. package/dist/commands/instructions/promote.js.map +0 -7
  428. package/dist/commands/instructions/pull.js.map +0 -7
  429. package/dist/commands/instructions/upstream.js.map +0 -7
  430. package/dist/commands/instructions/versions.js.map +0 -7
  431. package/dist/commands/launcher.js.map +0 -7
  432. package/dist/commands/org/current.js.map +0 -7
  433. package/dist/commands/org/list.js.map +0 -7
  434. package/dist/commands/org/switch.js.map +0 -7
  435. package/dist/commands/packs/add-instruction.js.map +0 -7
  436. package/dist/commands/packs/apply.js.map +0 -7
  437. package/dist/commands/packs/create.js.map +0 -7
  438. package/dist/commands/packs/fork.js.map +0 -7
  439. package/dist/commands/packs/get.js.map +0 -7
  440. package/dist/commands/packs/list.js.map +0 -7
  441. package/dist/commands/packs/remove-instruction.js.map +0 -7
  442. package/dist/commands/proxy/env.js.map +0 -7
  443. package/dist/commands/proxy/logs.js.map +0 -7
  444. package/dist/commands/proxy/restart.js.map +0 -7
  445. package/dist/commands/proxy/setup.js.map +0 -7
  446. package/dist/commands/proxy/start.js.map +0 -7
  447. package/dist/commands/proxy/status.js.map +0 -7
  448. package/dist/commands/proxy/stop.js.map +0 -7
  449. package/dist/commands/research/backfill.js.map +0 -7
  450. package/dist/commands/research/tail-transcript.js.map +0 -7
  451. package/dist/commands/service/install.js.map +0 -7
  452. package/dist/commands/service/status.js.map +0 -7
  453. package/dist/commands/service/uninstall.js.map +0 -7
  454. package/dist/commands/sessions/analyze.js.map +0 -7
  455. package/dist/commands/sessions/end.js.map +0 -7
  456. package/dist/commands/sessions/import.js.map +0 -7
  457. package/dist/commands/sessions/list.js.map +0 -7
  458. package/dist/commands/sessions/start.js.map +0 -7
  459. package/dist/commands/setup.js.map +0 -7
  460. package/dist/commands/skills/export-approved.js.map +0 -7
  461. package/dist/commands/skills/install.js.map +0 -7
  462. package/dist/commands/skills/list.js.map +0 -7
  463. package/dist/commands/skills/publish.js.map +0 -7
  464. package/dist/commands/skills/search.js.map +0 -7
  465. package/dist/commands/skills/update.js.map +0 -7
  466. package/dist/commands/suggestions/accept.js.map +0 -7
  467. package/dist/commands/suggestions/dismiss.js.map +0 -7
  468. package/dist/commands/suggestions/list.js.map +0 -7
  469. package/dist/commands/suggestions/refresh.js.map +0 -7
  470. package/dist/cursor-BGQJ4CWI.js +0 -134
  471. package/dist/cursor-BGQJ4CWI.js.map +0 -7
  472. package/dist/dashboard/Dashboard.js.map +0 -7
  473. package/dist/dashboard/data.js.map +0 -7
  474. package/dist/dashboard/launcher/ActiveJobsList.js.map +0 -7
  475. package/dist/dashboard/launcher/LauncherOverlay.js.map +0 -7
  476. package/dist/dashboard/launcher/NewLaunchForm.js.map +0 -7
  477. package/dist/dashboard/launcher/api.js.map +0 -7
  478. package/dist/dashboard/launcher/tool-labels.js.map +0 -7
  479. package/dist/dashboard/launcher/types.js.map +0 -7
  480. package/dist/dashboard/launcher/useLaunchJobs.js.map +0 -7
  481. package/dist/dashboard/panels/friction.js.map +0 -7
  482. package/dist/dashboard/panels/insights.js.map +0 -7
  483. package/dist/dashboard/panels/instructions.js.map +0 -7
  484. package/dist/dashboard/panels/outcomes.js.map +0 -7
  485. package/dist/dashboard/panels/overview.js.map +0 -7
  486. package/dist/dashboard/panels/shared.js.map +0 -7
  487. package/dist/dashboard/types.js.map +0 -7
  488. package/dist/dist-UNYP5PJR.js +0 -56
  489. package/dist/dist-UNYP5PJR.js.map +0 -7
  490. package/dist/index.js.map +0 -7
  491. package/dist/lib/active-org-refresh.js.map +0 -7
  492. package/dist/lib/active-org.js.map +0 -7
  493. package/dist/lib/agent-loop.js.map +0 -7
  494. package/dist/lib/antigravity-transcript.js.map +0 -7
  495. package/dist/lib/api-client.js.map +0 -7
  496. package/dist/lib/auth.js.map +0 -7
  497. package/dist/lib/capture-hosts.js.map +0 -7
  498. package/dist/lib/detect-languages.js.map +0 -7
  499. package/dist/lib/detect-tmux.js.map +0 -7
  500. package/dist/lib/diagnostics.js.map +0 -7
  501. package/dist/lib/editor-proxy-pins.js.map +0 -7
  502. package/dist/lib/ensure-api-key.js.map +0 -7
  503. package/dist/lib/eval-analyzer.js.map +0 -7
  504. package/dist/lib/eval-benchmark.js.map +0 -7
  505. package/dist/lib/eval-conversation-handler.js.map +0 -7
  506. package/dist/lib/eval-executor.js.map +0 -7
  507. package/dist/lib/eval-grader.js.map +0 -7
  508. package/dist/lib/eval-meta-judge.js.map +0 -7
  509. package/dist/lib/eval-trigger-tester.js.map +0 -7
  510. package/dist/lib/eval-worktree.js.map +0 -7
  511. package/dist/lib/gateway-entry.js.map +0 -7
  512. package/dist/lib/gateway-identity.js.map +0 -7
  513. package/dist/lib/gateway-lifecycle.js.map +0 -7
  514. package/dist/lib/gateway.js.map +0 -7
  515. package/dist/lib/handlers/cron-refresh-skills.js.map +0 -7
  516. package/dist/lib/handlers/cron-suggest-instructions.js.map +0 -7
  517. package/dist/lib/handlers/process-announcement.js.map +0 -7
  518. package/dist/lib/handlers/process-changelog.js.map +0 -7
  519. package/dist/lib/handlers/process-conversation.js.map +0 -7
  520. package/dist/lib/handlers/process-eval.js.map +0 -7
  521. package/dist/lib/handlers/process-insights.js.map +0 -7
  522. package/dist/lib/handlers/process-launch.js.map +0 -7
  523. package/dist/lib/handlers/process-run-cleanup.js.map +0 -7
  524. package/dist/lib/handlers/process-send-message.js.map +0 -7
  525. package/dist/lib/handlers/process-session-goal.js.map +0 -7
  526. package/dist/lib/hooks-config.js.map +0 -7
  527. package/dist/lib/insights-prompts.js.map +0 -7
  528. package/dist/lib/instruction-snapshot.js.map +0 -7
  529. package/dist/lib/job-helpers.js.map +0 -7
  530. package/dist/lib/llm-client.js.map +0 -7
  531. package/dist/lib/manual-tasks-meta.js.map +0 -7
  532. package/dist/lib/manual-tasks.js.map +0 -7
  533. package/dist/lib/output.js.map +0 -7
  534. package/dist/lib/permanent-job-error.js.map +0 -7
  535. package/dist/lib/pid-identity.js.map +0 -7
  536. package/dist/lib/proxy-respawn.js.map +0 -7
  537. package/dist/lib/research-client.js.map +0 -7
  538. package/dist/lib/setup-steps.js.map +0 -7
  539. package/dist/lib/skills-loader.js.map +0 -7
  540. package/dist/lib/statusline-shim.js.map +0 -7
  541. package/dist/lib/telemetry.js.map +0 -7
  542. package/dist/lib/terminal-target-heartbeat.js.map +0 -7
  543. package/dist/lib/tmux.js.map +0 -7
  544. package/dist/lib/transcript-rate-limit-watcher.js.map +0 -7
  545. package/dist/lib/types.js.map +0 -7
  546. package/dist/lib/version-check.js.map +0 -7
  547. package/dist/lib/which.js.map +0 -7
  548. package/dist/lib/worktree.js.map +0 -7
  549. package/dist/opencode-IQ7X5YMJ.js +0 -190
  550. 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-U6ABMRT3.js";import"../chunk-2JRDG4LJ.js";import"../chunk-I2DZGJRR.js";import"../chunk-MVM6OGAF.js";import"../chunk-KKDHD4XA.js";import"../chunk-SZ62CP55.js";import{a as g}from"../chunk-PPKPCXJD.js";import"../chunk-IZTIYR5Q.js";import"../chunk-V44SRRYR.js";import"../chunk-U6XEU573.js";import"../chunk-VLOX6KOM.js";import"../chunk-3AV3GTMP.js";import"../chunk-H2ORWIEY.js";import"../chunk-O6C2UGBY.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-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{e as r}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.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-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.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-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.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-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import{f as d}from"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.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-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.js";import{a as e}from"../../chunk-ZLLER3HP.js";import{Args as d,Flags as o}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:o.string({description:"Filter by tool",options:["claude_code","cursor","copilot","windsurf","cline","universal"]}),category:o.string({description:"Filter by category",options:["workflow","language","framework","tool","security","testing","architecture","devops","documentation","performance"]}),language:o.string({description:"Filter by programming language"}),framework:o.string({description:"Filter by framework"}),limit:o.integer({description:"Max results",default:20})};async run(){let{args:g,flags:i}=await this.parse(r),s=(await n(this)).search({query:g.query,tool:i.tool,category:i.category,language:i.language,framework:i.framework,limit:i.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-PPKPCXJD.js";import"../../chunk-IZTIYR5Q.js";import"../../chunk-V44SRRYR.js";import"../../chunk-U6XEU573.js";import"../../chunk-VLOX6KOM.js";import"../../chunk-3AV3GTMP.js";import"../../chunk-H2ORWIEY.js";import"../../chunk-O6C2UGBY.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};