@rulemetric/cli 0.7.2 → 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 -309
  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 -781
  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 -46
  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 -15
  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 -14
  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 -11
  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 -17
  217. package/dist/lib/manual-tasks-meta.js +1 -8
  218. package/dist/lib/manual-tasks.js +1 -79
  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 +8 -7
  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-7DULPSFU.js +0 -299
  270. package/dist/chunk-7DULPSFU.js.map +0 -7
  271. package/dist/chunk-7LVVKQMZ.js +0 -98
  272. package/dist/chunk-7LVVKQMZ.js.map +0 -7
  273. package/dist/chunk-7NNFYWKK.js +0 -243
  274. package/dist/chunk-7NNFYWKK.js.map +0 -7
  275. package/dist/chunk-7NYKWN7U.js +0 -12
  276. package/dist/chunk-7NYKWN7U.js.map +0 -7
  277. package/dist/chunk-BO76WKJR.js +0 -42
  278. package/dist/chunk-BO76WKJR.js.map +0 -7
  279. package/dist/chunk-BRD5RUGM.js +0 -53
  280. package/dist/chunk-BRD5RUGM.js.map +0 -7
  281. package/dist/chunk-BT6Z6545.js +0 -43
  282. package/dist/chunk-BT6Z6545.js.map +0 -7
  283. package/dist/chunk-BZDKEQKU.js +0 -39
  284. package/dist/chunk-BZDKEQKU.js.map +0 -7
  285. package/dist/chunk-DGHWRQXL.js +0 -17
  286. package/dist/chunk-DGHWRQXL.js.map +0 -7
  287. package/dist/chunk-DNKSVWMD.js +0 -108
  288. package/dist/chunk-DNKSVWMD.js.map +0 -7
  289. package/dist/chunk-DQ3KELXD.js +0 -74
  290. package/dist/chunk-DQ3KELXD.js.map +0 -7
  291. package/dist/chunk-DUJSRBLP.js +0 -122
  292. package/dist/chunk-DUJSRBLP.js.map +0 -7
  293. package/dist/chunk-E3BIT53W.js +0 -154
  294. package/dist/chunk-E3BIT53W.js.map +0 -7
  295. package/dist/chunk-EARWG4EV.js +0 -22
  296. package/dist/chunk-EARWG4EV.js.map +0 -7
  297. package/dist/chunk-EI5BHWXA.js +0 -1662
  298. package/dist/chunk-EI5BHWXA.js.map +0 -7
  299. package/dist/chunk-EJ3YAFDP.js +0 -37
  300. package/dist/chunk-EJ3YAFDP.js.map +0 -7
  301. package/dist/chunk-EKJ2CABV.js +0 -76
  302. package/dist/chunk-EKJ2CABV.js.map +0 -7
  303. package/dist/chunk-EKP32DLN.js +0 -16
  304. package/dist/chunk-EKP32DLN.js.map +0 -7
  305. package/dist/chunk-EYPAAGN5.js +0 -51
  306. package/dist/chunk-EYPAAGN5.js.map +0 -7
  307. package/dist/chunk-F5N6CLJJ.js +0 -1995
  308. package/dist/chunk-F5N6CLJJ.js.map +0 -7
  309. package/dist/chunk-FZKLLNDS.js +0 -228
  310. package/dist/chunk-FZKLLNDS.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-OK3I555A.js +0 -243
  336. package/dist/chunk-OK3I555A.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-PMI56ED5.js +0 -167
  347. package/dist/chunk-PMI56ED5.js.map +0 -7
  348. package/dist/chunk-QJQS6TUN.js +0 -44
  349. package/dist/chunk-QJQS6TUN.js.map +0 -7
  350. package/dist/chunk-QN34TGD3.js +0 -83
  351. package/dist/chunk-QN34TGD3.js.map +0 -7
  352. package/dist/chunk-QSN77T7C.js +0 -250
  353. package/dist/chunk-QSN77T7C.js.map +0 -7
  354. package/dist/chunk-R56PH7YE.js +0 -78
  355. package/dist/chunk-R56PH7YE.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-W2YERO7E.js +0 -170
  367. package/dist/chunk-W2YERO7E.js.map +0 -7
  368. package/dist/chunk-W53GKIZQ.js +0 -50
  369. package/dist/chunk-W53GKIZQ.js.map +0 -7
  370. package/dist/chunk-WA4MWYRW.js +0 -254
  371. package/dist/chunk-WA4MWYRW.js.map +0 -7
  372. package/dist/chunk-XC6M4CSW.js +0 -44
  373. package/dist/chunk-XC6M4CSW.js.map +0 -7
  374. package/dist/chunk-XK42ZBDE.js +0 -23
  375. package/dist/chunk-XK42ZBDE.js.map +0 -7
  376. package/dist/chunk-XUV6DDBF.js +0 -124
  377. package/dist/chunk-XUV6DDBF.js.map +0 -7
  378. package/dist/chunk-XZXS2W24.js.map +0 -7
  379. package/dist/chunk-Y3WD5CSW.js +0 -49
  380. package/dist/chunk-Y3WD5CSW.js.map +0 -7
  381. package/dist/chunk-Y4BJXXYV.js +0 -148
  382. package/dist/chunk-Y4BJXXYV.js.map +0 -7
  383. package/dist/chunk-YNIH3KMU.js +0 -121
  384. package/dist/chunk-YNIH3KMU.js.map +0 -7
  385. package/dist/chunk-YOBA3NAM.js +0 -55
  386. package/dist/chunk-YOBA3NAM.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,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/skills/install.ts"],
4
- "sourcesContent": ["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { Args, Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { loadRegistry } from '../../lib/skills-loader.js';\n\nexport default class SkillsInstall extends BaseCommand {\n static override description = 'Install a skill from the registry into your project';\n\n static override examples = [\n '<%= config.bin %> skills install tdd-workflow',\n '<%= config.bin %> skills install tdd-workflow --tool cursor',\n '<%= config.bin %> skills install tdd-workflow --preview',\n ];\n\n static override args = {\n id: Args.string({ description: 'Skill ID to install', required: true }),\n };\n\n static override flags = {\n tool: Flags.string({\n description: 'Target tool format',\n options: ['claude_code', 'cursor', 'copilot'],\n }),\n preview: Flags.boolean({ description: 'Preview content without writing', default: false }),\n dir: Flags.string({ description: 'Project directory', default: '.' }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(SkillsInstall);\n\n const catalog = await loadRegistry(this);\n const skill = catalog.get(args.id);\n\n if (!skill) {\n this.error(`Skill \"${args.id}\" not found. Try: rulemetric skills search`);\n }\n\n if (flags.preview) {\n this.log(`\\n${skill.name}`);\n this.log(`${'\u2500'.repeat(skill.name.length)}`);\n this.log(`Category: ${skill.category}`);\n this.log(`Tools: ${skill.tools.join(', ')}`);\n this.log(`Source: ${skill.source.url}\\n`);\n this.log(skill.content.slice(0, 2000));\n if (skill.content.length > 2000) {\n this.log(`\\n... (${skill.content.length - 2000} more characters)`);\n }\n return;\n }\n\n const projectDir = path.resolve(flags.dir);\n const tool = flags.tool ?? detectProjectTool(projectDir) ?? skill.tools[0];\n\n const targetPath = getTargetPath(projectDir, tool, skill.id);\n if (!targetPath) {\n this.error(`Cannot determine install path for tool \"${tool}\"`);\n }\n\n // Ensure directory exists\n const targetDir = path.dirname(targetPath);\n if (!fs.existsSync(targetDir)) {\n fs.mkdirSync(targetDir, { recursive: true });\n }\n\n if (fs.existsSync(targetPath)) {\n this.warn(`File already exists: ${targetPath}`);\n this.log(' Use --preview to view the skill content first.');\n return;\n }\n\n fs.writeFileSync(targetPath, skill.content);\n this.log(`Installed \"${skill.name}\" to ${path.relative(projectDir, targetPath)}`);\n this.log(` Source: ${skill.source.url}`);\n }\n}\n\n/** Detect which AI tool the project is configured for. */\nfunction detectProjectTool(dir: string): string | null {\n if (fs.existsSync(path.join(dir, 'CLAUDE.md')) || fs.existsSync(path.join(dir, '.claude'))) {\n return 'claude_code';\n }\n if (fs.existsSync(path.join(dir, '.cursorrules')) || fs.existsSync(path.join(dir, '.cursor'))) {\n return 'cursor';\n }\n if (fs.existsSync(path.join(dir, '.github', 'copilot-instructions.md'))) {\n return 'copilot';\n }\n return null;\n}\n\n/** Determine the file path to write a skill based on the target tool. */\nfunction getTargetPath(dir: string, tool: string, skillId: string): string | null {\n const safeName = skillId.replace(/[^a-z0-9-]/g, '-');\n switch (tool) {\n case 'claude_code':\n return path.join(dir, '.claude', 'skills', `${safeName}.md`);\n case 'cursor':\n return path.join(dir, '.cursor', 'rules', `${safeName}.mdc`);\n case 'copilot':\n return path.join(dir, '.github', 'agents', `${safeName}.md`);\n default:\n return path.join(dir, '.claude', 'skills', `${safeName}.md`);\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/skills/list.ts"],
4
- "sourcesContent": ["import { Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { loadRegistry } from '../../lib/skills-loader.js';\n\nexport default class SkillsList extends BaseCommand {\n static override description = 'List skills in the registry';\n\n static override examples = [\n '<%= config.bin %> skills list',\n '<%= config.bin %> skills list --stats',\n ];\n\n static override flags = {\n stats: Flags.boolean({ description: 'Show registry statistics', default: false }),\n limit: Flags.integer({ description: 'Max skills to show', default: 30 }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(SkillsList);\n\n const catalog = await loadRegistry(this);\n\n if (flags.stats) {\n this.log(`Skills Registry Statistics\\n`);\n this.log(` Total skills: ${catalog.size}`);\n this.log(` Categories: ${catalog.categories().join(', ')}`);\n this.log(` Tools: ${catalog.tools().join(', ')}`);\n this.log(` Top tags: ${catalog.tags().slice(0, 15).join(', ')}`);\n return;\n }\n\n const skills = catalog.search({ limit: flags.limit });\n\n if (skills.length === 0) {\n this.log('Registry is empty. Run: rulemetric skills update');\n return;\n }\n\n this.log(`Showing ${skills.length} of ${catalog.size} skills (sorted by popularity):\\n`);\n\n for (const skill of skills) {\n const stars = skill.popularity?.stars ? `${formatStars(skill.popularity.stars)} stars` : '';\n this.log(` ${pad(skill.id, 40)} ${pad(skill.category, 14)} ${stars}`);\n }\n\n this.log(`\\nSearch: rulemetric skills search <query>`);\n this.log(`Install: rulemetric skills install <id>`);\n }\n}\n\nfunction formatStars(n: number): string {\n if (n >= 1000) return `${(n / 1000).toFixed(1)}k`;\n return String(n);\n}\n\nfunction pad(s: string, n: number): string {\n return s.length > n ? s.slice(0, n - 1) + '\u2026' : s.padEnd(n);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AAItB,IAAqB,aAArB,MAAqB,oBAAmB,YAAY;AAAA,EAClD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,OAAO,MAAM,QAAQ,EAAE,aAAa,4BAA4B,SAAS,MAAM,CAAC;AAAA,IAChF,OAAO,MAAM,QAAQ,EAAE,aAAa,sBAAsB,SAAS,GAAG,CAAC;AAAA,EACzE;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,WAAU;AAE7C,UAAM,UAAU,MAAM,aAAa,IAAI;AAEvC,QAAI,MAAM,OAAO;AACf,WAAK,IAAI;AAAA,CAA8B;AACvC,WAAK,IAAI,mBAAmB,QAAQ,IAAI,EAAE;AAC1C,WAAK,IAAI,iBAAiB,QAAQ,WAAW,EAAE,KAAK,IAAI,CAAC,EAAE;AAC3D,WAAK,IAAI,YAAY,QAAQ,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACjD,WAAK,IAAI,eAAe,QAAQ,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,IAAI,CAAC,EAAE;AAChE;AAAA,IACF;AAEA,UAAM,SAAS,QAAQ,OAAO,EAAE,OAAO,MAAM,MAAM,CAAC;AAEpD,QAAI,OAAO,WAAW,GAAG;AACvB,WAAK,IAAI,kDAAkD;AAC3D;AAAA,IACF;AAEA,SAAK,IAAI,WAAW,OAAO,MAAM,OAAO,QAAQ,IAAI;AAAA,CAAmC;AAEvF,eAAW,SAAS,QAAQ;AAC1B,YAAM,QAAQ,MAAM,YAAY,QAAQ,GAAG,YAAY,MAAM,WAAW,KAAK,CAAC,WAAW;AACzF,WAAK,IAAI,KAAK,IAAI,MAAM,IAAI,EAAE,CAAC,IAAI,IAAI,MAAM,UAAU,EAAE,CAAC,IAAI,KAAK,EAAE;AAAA,IACvE;AAEA,SAAK,IAAI;AAAA,yCAA4C;AACrD,SAAK,IAAI,yCAAyC;AAAA,EACpD;AACF;AAEA,SAAS,YAAY,GAAmB;AACtC,MAAI,KAAK,IAAM,QAAO,IAAI,IAAI,KAAM,QAAQ,CAAC,CAAC;AAC9C,SAAO,OAAO,CAAC;AACjB;AAEA,SAAS,IAAI,GAAW,GAAmB;AACzC,SAAO,EAAE,SAAS,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI,WAAM,EAAE,OAAO,CAAC;AAC5D;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/skills/publish.ts"],
4
- "sourcesContent": ["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { Args, Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiPost } from '../../lib/api-client.js';\n\nexport default class SkillsPublish extends BaseCommand {\n static override description = 'Submit a skill file to the RuleMetric skills registry';\n\n static override examples = [\n '<%= config.bin %> skills publish ./my-skill.md',\n '<%= config.bin %> skills publish ./my-skill.md --category workflow --tool claude_code',\n ];\n\n static override args = {\n file: Args.string({ description: 'Path to skill file (.md)', required: true }),\n };\n\n static override flags = {\n name: Flags.string({ description: 'Skill name (defaults to filename)' }),\n description: Flags.string({ description: 'One-line description' }),\n category: Flags.string({\n description: 'Skill category',\n options: [\n 'workflow', 'language', 'framework', 'tool', 'security',\n 'testing', 'architecture', 'devops', 'documentation',\n 'performance', 'other',\n ],\n default: 'other',\n }),\n tool: Flags.string({\n description: 'Primary tool this skill targets',\n options: ['claude_code', 'cursor', 'copilot', 'windsurf', 'universal'],\n default: 'universal',\n }),\n tags: Flags.string({ description: 'Comma-separated tags', default: '' }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(SkillsPublish);\n this.requireAuth();\n\n const filePath = path.resolve(args.file);\n if (!fs.existsSync(filePath)) {\n this.error(`File not found: ${filePath}`);\n }\n\n const content = fs.readFileSync(filePath, 'utf-8');\n if (content.trim().length < 20) {\n this.error('Skill content is too short (minimum 20 characters)');\n }\n\n const basename = path.basename(filePath, path.extname(filePath));\n const name = flags.name ?? basename\n .replace(/[-_]+/g, ' ')\n .replace(/\\b\\w/g, c => c.toUpperCase());\n\n const id = basename.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');\n\n const tags = flags.tags\n ? flags.tags.split(',').map(t => t.trim()).filter(Boolean)\n : [];\n\n this.log(`Publishing skill: ${name} (${id})`);\n this.log(` Category: ${flags.category}`);\n this.log(` Tool: ${flags.tool}`);\n if (tags.length > 0) this.log(` Tags: ${tags.join(', ')}`);\n this.log(` Content: ${content.length} characters\\n`);\n\n const payload = {\n id,\n name,\n description: flags.description ?? `Community skill: ${name}`,\n category: flags.category,\n tools: [flags.tool],\n tags,\n content,\n };\n\n try {\n const result = await apiPost<{ id: string; message: string }>('/api/skills/publish', payload);\n this.log(`Published! ${result.message ?? `Skill \"${name}\" submitted to the registry.`}`);\n } catch (err) {\n if (err instanceof Error) {\n this.error(`Failed to publish: ${err.message}`);\n }\n throw err;\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,MAAM,aAAa;AAI5B,IAAqB,gBAArB,MAAqB,uBAAsB,YAAY;AAAA,EACrD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,MAAM,KAAK,OAAO,EAAE,aAAa,4BAA4B,UAAU,KAAK,CAAC;AAAA,EAC/E;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,MAAM,MAAM,OAAO,EAAE,aAAa,oCAAoC,CAAC;AAAA,IACvE,aAAa,MAAM,OAAO,EAAE,aAAa,uBAAuB,CAAC;AAAA,IACjE,UAAU,MAAM,OAAO;AAAA,MACrB,aAAa;AAAA,MACb,SAAS;AAAA,QACP;AAAA,QAAY;AAAA,QAAY;AAAA,QAAa;AAAA,QAAQ;AAAA,QAC7C;AAAA,QAAW;AAAA,QAAgB;AAAA,QAAU;AAAA,QACrC;AAAA,QAAe;AAAA,MACjB;AAAA,MACA,SAAS;AAAA,IACX,CAAC;AAAA,IACD,MAAM,MAAM,OAAO;AAAA,MACjB,aAAa;AAAA,MACb,SAAS,CAAC,eAAe,UAAU,WAAW,YAAY,WAAW;AAAA,MACrE,SAAS;AAAA,IACX,CAAC;AAAA,IACD,MAAM,MAAM,OAAO,EAAE,aAAa,wBAAwB,SAAS,GAAG,CAAC;AAAA,EACzE;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,cAAa;AACtD,SAAK,YAAY;AAEjB,UAAM,WAAgB,aAAQ,KAAK,IAAI;AACvC,QAAI,CAAI,cAAW,QAAQ,GAAG;AAC5B,WAAK,MAAM,mBAAmB,QAAQ,EAAE;AAAA,IAC1C;AAEA,UAAM,UAAa,gBAAa,UAAU,OAAO;AACjD,QAAI,QAAQ,KAAK,EAAE,SAAS,IAAI;AAC9B,WAAK,MAAM,oDAAoD;AAAA,IACjE;AAEA,UAAMA,YAAgB,cAAS,UAAe,aAAQ,QAAQ,CAAC;AAC/D,UAAM,OAAO,MAAM,QAAQA,UACxB,QAAQ,UAAU,GAAG,EACrB,QAAQ,SAAS,OAAK,EAAE,YAAY,CAAC;AAExC,UAAM,KAAKA,UAAS,YAAY,EAAE,QAAQ,eAAe,GAAG,EAAE,QAAQ,UAAU,EAAE;AAElF,UAAM,OAAO,MAAM,OACf,MAAM,KAAK,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO,IACvD,CAAC;AAEL,SAAK,IAAI,qBAAqB,IAAI,KAAK,EAAE,GAAG;AAC5C,SAAK,IAAI,eAAe,MAAM,QAAQ,EAAE;AACxC,SAAK,IAAI,WAAW,MAAM,IAAI,EAAE;AAChC,QAAI,KAAK,SAAS,EAAG,MAAK,IAAI,WAAW,KAAK,KAAK,IAAI,CAAC,EAAE;AAC1D,SAAK,IAAI,cAAc,QAAQ,MAAM;AAAA,CAAe;AAEpD,UAAM,UAAU;AAAA,MACd;AAAA,MACA;AAAA,MACA,aAAa,MAAM,eAAe,oBAAoB,IAAI;AAAA,MAC1D,UAAU,MAAM;AAAA,MAChB,OAAO,CAAC,MAAM,IAAI;AAAA,MAClB;AAAA,MACA;AAAA,IACF;AAEA,QAAI;AACF,YAAM,SAAS,MAAM,QAAyC,uBAAuB,OAAO;AAC5F,WAAK,IAAI,cAAc,OAAO,WAAW,UAAU,IAAI,8BAA8B,EAAE;AAAA,IACzF,SAAS,KAAK;AACZ,UAAI,eAAe,OAAO;AACxB,aAAK,MAAM,sBAAsB,IAAI,OAAO,EAAE;AAAA,MAChD;AACA,YAAM;AAAA,IACR;AAAA,EACF;AACF;",
6
- "names": ["basename"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/skills/search.ts"],
4
- "sourcesContent": ["import { Args, Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { loadRegistry } from '../../lib/skills-loader.js';\nimport type { SkillCategory, ToolId } from '@rulemetric/skills-registry';\n\nexport default class SkillsSearch extends BaseCommand {\n static override description = 'Search the community skills registry';\n\n static override examples = [\n '<%= config.bin %> skills search \"tdd\"',\n '<%= config.bin %> skills search --tool cursor --category testing',\n '<%= config.bin %> skills search --language python',\n ];\n\n static override args = {\n query: Args.string({ description: 'Search term', required: false }),\n };\n\n static override flags = {\n tool: Flags.string({ description: 'Filter by tool', options: ['claude_code', 'cursor', 'copilot', 'windsurf', 'cline', 'universal'] }),\n category: Flags.string({ description: 'Filter by category', options: ['workflow', 'language', 'framework', 'tool', 'security', 'testing', 'architecture', 'devops', 'documentation', 'performance'] }),\n language: Flags.string({ description: 'Filter by programming language' }),\n framework: Flags.string({ description: 'Filter by framework' }),\n limit: Flags.integer({ description: 'Max results', default: 20 }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(SkillsSearch);\n\n const catalog = await loadRegistry(this);\n\n const results = catalog.search({\n query: args.query,\n tool: flags.tool as ToolId | undefined,\n category: flags.category as SkillCategory | undefined,\n language: flags.language,\n limit: flags.limit,\n });\n\n if (results.length === 0) {\n this.log('No skills found matching your criteria.');\n this.log('\\nTry a broader search or run: rulemetric skills list');\n return;\n }\n\n this.log(`Found ${results.length} skill${results.length === 1 ? '' : 's'}:\\n`);\n\n for (const skill of results) {\n const stars = skill.popularity?.stars ? ` (${formatStars(skill.popularity.stars)} stars)` : '';\n const tools = skill.tools.join(', ');\n this.log(` ${skill.id}`);\n this.log(` ${skill.name} \u2014 ${skill.description}`);\n this.log(` tools: ${tools} category: ${skill.category}${stars}`);\n if (skill.tags.length > 0) {\n this.log(` tags: ${skill.tags.join(', ')}`);\n }\n this.log('');\n }\n\n this.log(`Run: rulemetric skills install <id> to install a skill`);\n }\n}\n\nfunction formatStars(n: number): string {\n if (n >= 1000) return `${(n / 1000).toFixed(1)}k`;\n return String(n);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAK5B,IAAqB,eAArB,MAAqB,sBAAqB,YAAY;AAAA,EACpD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,OAAO,KAAK,OAAO,EAAE,aAAa,eAAe,UAAU,MAAM,CAAC;AAAA,EACpE;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,MAAM,MAAM,OAAO,EAAE,aAAa,kBAAkB,SAAS,CAAC,eAAe,UAAU,WAAW,YAAY,SAAS,WAAW,EAAE,CAAC;AAAA,IACrI,UAAU,MAAM,OAAO,EAAE,aAAa,sBAAsB,SAAS,CAAC,YAAY,YAAY,aAAa,QAAQ,YAAY,WAAW,gBAAgB,UAAU,iBAAiB,aAAa,EAAE,CAAC;AAAA,IACrM,UAAU,MAAM,OAAO,EAAE,aAAa,iCAAiC,CAAC;AAAA,IACxE,WAAW,MAAM,OAAO,EAAE,aAAa,sBAAsB,CAAC;AAAA,IAC9D,OAAO,MAAM,QAAQ,EAAE,aAAa,eAAe,SAAS,GAAG,CAAC;AAAA,EAClE;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,aAAY;AAErD,UAAM,UAAU,MAAM,aAAa,IAAI;AAEvC,UAAM,UAAU,QAAQ,OAAO;AAAA,MAC7B,OAAO,KAAK;AAAA,MACZ,MAAM,MAAM;AAAA,MACZ,UAAU,MAAM;AAAA,MAChB,UAAU,MAAM;AAAA,MAChB,OAAO,MAAM;AAAA,IACf,CAAC;AAED,QAAI,QAAQ,WAAW,GAAG;AACxB,WAAK,IAAI,yCAAyC;AAClD,WAAK,IAAI,uDAAuD;AAChE;AAAA,IACF;AAEA,SAAK,IAAI,SAAS,QAAQ,MAAM,SAAS,QAAQ,WAAW,IAAI,KAAK,GAAG;AAAA,CAAK;AAE7E,eAAW,SAAS,SAAS;AAC3B,YAAM,QAAQ,MAAM,YAAY,QAAQ,KAAK,YAAY,MAAM,WAAW,KAAK,CAAC,YAAY;AAC5F,YAAM,QAAQ,MAAM,MAAM,KAAK,IAAI;AACnC,WAAK,IAAI,KAAK,MAAM,EAAE,EAAE;AACxB,WAAK,IAAI,OAAO,MAAM,IAAI,WAAM,MAAM,WAAW,EAAE;AACnD,WAAK,IAAI,cAAc,KAAK,eAAe,MAAM,QAAQ,GAAG,KAAK,EAAE;AACnE,UAAI,MAAM,KAAK,SAAS,GAAG;AACzB,aAAK,IAAI,aAAa,MAAM,KAAK,KAAK,IAAI,CAAC,EAAE;AAAA,MAC/C;AACA,WAAK,IAAI,EAAE;AAAA,IACb;AAEA,SAAK,IAAI,wDAAwD;AAAA,EACnE;AACF;AAEA,SAAS,YAAY,GAAmB;AACtC,MAAI,KAAK,IAAM,QAAO,IAAI,IAAI,KAAM,QAAQ,CAAC,CAAC;AAC9C,SAAO,OAAO,CAAC;AACjB;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/skills/update.ts"],
4
- "sourcesContent": ["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport * as os from 'node:os';\nimport { Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { fetchAllSources, TIER_1_SOURCES, TIER_2_SOURCES } from '@rulemetric/skills-registry';\nimport type { SkillRegistry } from '@rulemetric/skills-registry';\n\nconst CACHE_DIR = path.join(os.homedir(), '.config', 'rulemetric');\nconst REGISTRY_PATH = path.join(CACHE_DIR, 'skills-registry.json');\n\nexport default class SkillsUpdate extends BaseCommand {\n static override description = 'Fetch latest skills from GitHub sources and update local registry';\n\n static override examples = [\n '<%= config.bin %> skills update',\n '<%= config.bin %> skills update --all',\n ];\n\n static override flags = {\n all: Flags.boolean({ description: 'Include Tier 2 (niche) sources', default: false }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(SkillsUpdate);\n\n const sources = flags.all\n ? [...TIER_1_SOURCES, ...TIER_2_SOURCES]\n : TIER_1_SOURCES;\n\n this.log(`Fetching skills from ${sources.length} sources${flags.all ? ' (Tier 1 + 2)' : ''}...\\n`);\n\n const result = await fetchAllSources(sources, {\n onProgress: (source, count) => {\n this.log(` ${source}: ${count} skills`);\n },\n });\n\n const registry: SkillRegistry = {\n version: '1.0.0',\n generatedAt: new Date().toISOString(),\n skills: result.entries,\n };\n\n if (!fs.existsSync(CACHE_DIR)) {\n fs.mkdirSync(CACHE_DIR, { recursive: true });\n }\n\n fs.writeFileSync(REGISTRY_PATH, JSON.stringify(registry));\n this.log(`\\nUpdated registry: ${result.entries.length} skills cached at ${REGISTRY_PATH}`);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,YAAY,QAAQ;AACpB,SAAS,aAAa;AAEtB,SAAS,iBAAiB,gBAAgB,sBAAsB;AAGhE,IAAM,YAAiB,UAAQ,WAAQ,GAAG,WAAW,YAAY;AACjE,IAAM,gBAAqB,UAAK,WAAW,sBAAsB;AAEjE,IAAqB,eAArB,MAAqB,sBAAqB,YAAY;AAAA,EACpD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,KAAK,MAAM,QAAQ,EAAE,aAAa,kCAAkC,SAAS,MAAM,CAAC;AAAA,EACtF;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,aAAY;AAE/C,UAAM,UAAU,MAAM,MAClB,CAAC,GAAG,gBAAgB,GAAG,cAAc,IACrC;AAEJ,SAAK,IAAI,wBAAwB,QAAQ,MAAM,WAAW,MAAM,MAAM,kBAAkB,EAAE;AAAA,CAAO;AAEjG,UAAM,SAAS,MAAM,gBAAgB,SAAS;AAAA,MAC5C,YAAY,CAAC,QAAQ,UAAU;AAC7B,aAAK,IAAI,KAAK,MAAM,KAAK,KAAK,SAAS;AAAA,MACzC;AAAA,IACF,CAAC;AAED,UAAM,WAA0B;AAAA,MAC9B,SAAS;AAAA,MACT,cAAa,oBAAI,KAAK,GAAE,YAAY;AAAA,MACpC,QAAQ,OAAO;AAAA,IACjB;AAEA,QAAI,CAAI,cAAW,SAAS,GAAG;AAC7B,MAAG,aAAU,WAAW,EAAE,WAAW,KAAK,CAAC;AAAA,IAC7C;AAEA,IAAG,iBAAc,eAAe,KAAK,UAAU,QAAQ,CAAC;AACxD,SAAK,IAAI;AAAA,oBAAuB,OAAO,QAAQ,MAAM,qBAAqB,aAAa,EAAE;AAAA,EAC3F;AACF;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/suggestions/accept.ts"],
4
- "sourcesContent": ["import * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport { Args } from '@oclif/core';\nimport { normalizeProjectPath } from '@rulemetric/core/paths';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiGet, apiPost } from '../../lib/api-client.js';\nimport { validateUuid } from '../../lib/types.js';\nimport type { Instruction } from '../../lib/types.js';\n\ninterface SuggestionDetail {\n id: string;\n instructionId: string;\n instructionScope: string;\n score: number;\n reason: string;\n name: string;\n}\n\ninterface PromoteResponse {\n instructionId: string;\n alreadyExisted: boolean;\n}\n\n/**\n * Append an instruction block to CLAUDE.md in the given directory. Idempotent:\n * skips if a block with the same instructionId already exists. Returns true if\n * the file was modified, false if the block was already present.\n */\nexport function appendToCLAUDEmd(dir: string, instructionId: string, content: string): boolean {\n const filePath = path.join(dir, 'CLAUDE.md');\n const startTag = `<!-- rulemetric:start ${instructionId} -->`;\n const endTag = `<!-- rulemetric:end ${instructionId} -->`;\n\n const existing = fs.existsSync(filePath) ? fs.readFileSync(filePath, 'utf8') : '';\n\n if (existing.includes(startTag)) {\n return false;\n }\n\n const separator = existing.length > 0 && !existing.endsWith('\\n')\n ? '\\n\\n'\n : existing.length > 0 ? '\\n' : '';\n const block = `${separator}\\n${startTag}\\n${content}\\n${endTag}\\n`;\n\n fs.writeFileSync(filePath, existing + block, 'utf8');\n return true;\n}\n\nexport default class SuggestionsAccept extends BaseCommand {\n static override description = 'Accept a suggestion and append the instruction to CLAUDE.md';\n\n static override examples = [\n '<%= config.bin %> suggestions accept <id>',\n ];\n\n static override args = {\n id: Args.string({ description: 'Suggestion UUID from `suggestions list`', required: true }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(SuggestionsAccept);\n this.requireAuth();\n validateUuid(args.id, 'suggestion ID');\n\n const projectPath = normalizeProjectPath(process.cwd());\n\n const suggestion = await apiGet<SuggestionDetail>(\n `/api/instruction-suggestions/${encodeURIComponent(args.id)}`,\n );\n\n let effectiveInstructionId = suggestion.instructionId;\n\n if (suggestion.instructionScope === 'public') {\n const promoted = await apiPost<PromoteResponse>(\n `/api/instructions/${encodeURIComponent(suggestion.instructionId)}/promote-from-public`,\n { targetScope: 'personal' },\n );\n effectiveInstructionId = promoted.instructionId;\n }\n\n const instruction = await apiGet<Instruction>(\n `/api/instructions/${encodeURIComponent(effectiveInstructionId)}`,\n );\n\n const modified = appendToCLAUDEmd(process.cwd(), effectiveInstructionId, instruction.content);\n\n if (!modified) {\n this.log(`Already present: ${instruction.name} is already in CLAUDE.md (block id: ${effectiveInstructionId}).`);\n } else {\n this.log(`Accepted: added ${instruction.name} to CLAUDE.md. It will be active starting in your next session.`);\n }\n\n await apiPost(`/api/instruction-suggestions/${encodeURIComponent(args.id)}/events`, {\n eventType: 'accepted',\n projectPath,\n });\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,YAAY;AA0Bd,SAAS,iBAAiB,KAAa,eAAuB,SAA0B;AAC3F,QAAM,WAAgB,UAAK,KAAK,WAAW;AAC3C,QAAM,WAAW,yBAAyB,aAAa;AACvD,QAAM,SAAS,uBAAuB,aAAa;AAEnD,QAAM,WAAc,cAAW,QAAQ,IAAO,gBAAa,UAAU,MAAM,IAAI;AAE/E,MAAI,SAAS,SAAS,QAAQ,GAAG;AAC7B,WAAO;AAAA,EACX;AAEA,QAAM,YAAY,SAAS,SAAS,KAAK,CAAC,SAAS,SAAS,IAAI,IAC1D,SACA,SAAS,SAAS,IAAI,OAAO;AACnC,QAAM,QAAQ,GAAG,SAAS;AAAA,EAAK,QAAQ;AAAA,EAAK,OAAO;AAAA,EAAK,MAAM;AAAA;AAE9D,EAAG,iBAAc,UAAU,WAAW,OAAO,MAAM;AACnD,SAAO;AACX;AAEA,IAAqB,oBAArB,MAAqB,2BAA0B,YAAY;AAAA,EACvD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACvB;AAAA,EACJ;AAAA,EAEA,OAAgB,OAAO;AAAA,IACnB,IAAI,KAAK,OAAO,EAAE,aAAa,2CAA2C,UAAU,KAAK,CAAC;AAAA,EAC9F;AAAA,EAEA,MAAM,MAAqB;AACvB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,kBAAiB;AACnD,SAAK,YAAY;AACjB,iBAAa,KAAK,IAAI,eAAe;AAErC,UAAM,cAAc,qBAAqB,QAAQ,IAAI,CAAC;AAEtD,UAAM,aAAa,MAAM;AAAA,MACrB,gCAAgC,mBAAmB,KAAK,EAAE,CAAC;AAAA,IAC/D;AAEA,QAAI,yBAAyB,WAAW;AAExC,QAAI,WAAW,qBAAqB,UAAU;AAC1C,YAAM,WAAW,MAAM;AAAA,QACnB,qBAAqB,mBAAmB,WAAW,aAAa,CAAC;AAAA,QACjE,EAAE,aAAa,WAAW;AAAA,MAC9B;AACA,+BAAyB,SAAS;AAAA,IACtC;AAEA,UAAM,cAAc,MAAM;AAAA,MACtB,qBAAqB,mBAAmB,sBAAsB,CAAC;AAAA,IACnE;AAEA,UAAM,WAAW,iBAAiB,QAAQ,IAAI,GAAG,wBAAwB,YAAY,OAAO;AAE5F,QAAI,CAAC,UAAU;AACX,WAAK,IAAI,oBAAoB,YAAY,IAAI,uCAAuC,sBAAsB,IAAI;AAAA,IAClH,OAAO;AACH,WAAK,IAAI,mBAAmB,YAAY,IAAI,iEAAiE;AAAA,IACjH;AAEA,UAAM,QAAQ,gCAAgC,mBAAmB,KAAK,EAAE,CAAC,WAAW;AAAA,MAChF,WAAW;AAAA,MACX;AAAA,IACJ,CAAC;AAAA,EACL;AACJ;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/suggestions/dismiss.ts"],
4
- "sourcesContent": ["import { Args } from '@oclif/core';\nimport { normalizeProjectPath } from '@rulemetric/core/paths';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiPost } from '../../lib/api-client.js';\nimport { validateUuid } from '../../lib/types.js';\n\nexport default class SuggestionsDismiss extends BaseCommand {\n static override description = 'Dismiss a suggestion so it will not re-surface for 30 days';\n\n static override examples = [\n '<%= config.bin %> suggestions dismiss <id>',\n ];\n\n static override args = {\n id: Args.string({ description: 'Suggestion UUID from `suggestions list`', required: true }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(SuggestionsDismiss);\n this.requireAuth();\n validateUuid(args.id, 'suggestion ID');\n\n const projectPath = normalizeProjectPath(process.cwd());\n\n await apiPost(`/api/instruction-suggestions/${encodeURIComponent(args.id)}/events`, {\n eventType: 'dismissed',\n projectPath,\n });\n\n this.log(\"Dismissed. Won't re-surface for 30 days.\");\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AAMrB,IAAqB,qBAArB,MAAqB,4BAA2B,YAAY;AAAA,EACxD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACvB;AAAA,EACJ;AAAA,EAEA,OAAgB,OAAO;AAAA,IACnB,IAAI,KAAK,OAAO,EAAE,aAAa,2CAA2C,UAAU,KAAK,CAAC;AAAA,EAC9F;AAAA,EAEA,MAAM,MAAqB;AACvB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,mBAAkB;AACpD,SAAK,YAAY;AACjB,iBAAa,KAAK,IAAI,eAAe;AAErC,UAAM,cAAc,qBAAqB,QAAQ,IAAI,CAAC;AAEtD,UAAM,QAAQ,gCAAgC,mBAAmB,KAAK,EAAE,CAAC,WAAW;AAAA,MAChF,WAAW;AAAA,MACX;AAAA,IACJ,CAAC;AAED,SAAK,IAAI,0CAA0C;AAAA,EACvD;AACJ;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/suggestions/list.ts"],
4
- "sourcesContent": ["import { Flags } from '@oclif/core';\nimport { printTable } from '@oclif/table';\nimport { normalizeProjectPath } from '@rulemetric/core/paths';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiGet } from '../../lib/api-client.js';\n\ninterface SuggestionItem {\n id: string;\n instructionId: string;\n instructionScope: string;\n score: number;\n reason: string;\n generatedAt: string;\n isStale: boolean;\n name: string;\n description: string | null;\n tags: string[] | null;\n}\n\ninterface SuggestionsResponse {\n suggestions: SuggestionItem[];\n}\n\nexport default class SuggestionsList extends BaseCommand {\n static override description = 'List instruction suggestions for a project';\n\n static override examples = [\n '<%= config.bin %> suggestions list',\n '<%= config.bin %> suggestions list --project /path/to/project',\n ];\n\n static override flags = {\n project: Flags.string({\n char: 'p',\n description: 'Project path (defaults to current directory)',\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(SuggestionsList);\n this.requireAuth();\n\n const projectPath = normalizeProjectPath(flags.project ?? process.cwd());\n const encoded = encodeURIComponent(projectPath);\n const result = await apiGet<SuggestionsResponse>(\n `/api/instruction-suggestions?projectPath=${encoded}&limit=10`,\n );\n\n if (result.suggestions.length === 0) {\n this.log(\n 'No suggestions for this project. The cron runs daily at 04:30; trigger now with: rulemetric suggestions refresh',\n );\n return;\n }\n\n printTable({\n data: result.suggestions.map((s) => ({\n ID: s.id,\n Scope: s.instructionScope,\n Name: s.name,\n Score: s.score.toFixed(2),\n Reason: s.reason.length > 60 ? s.reason.slice(0, 59) + '\u2026' : s.reason,\n })),\n columns: ['ID', 'Scope', 'Name', 'Score', 'Reason'],\n });\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAsB3B,IAAqB,kBAArB,MAAqB,yBAAwB,YAAY;AAAA,EACrD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACvB;AAAA,IACA;AAAA,EACJ;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACpB,SAAS,MAAM,OAAO;AAAA,MAClB,MAAM;AAAA,MACN,aAAa;AAAA,IACjB,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,MAAqB;AACvB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,gBAAe;AAClD,SAAK,YAAY;AAEjB,UAAM,cAAc,qBAAqB,MAAM,WAAW,QAAQ,IAAI,CAAC;AACvE,UAAM,UAAU,mBAAmB,WAAW;AAC9C,UAAM,SAAS,MAAM;AAAA,MACjB,4CAA4C,OAAO;AAAA,IACvD;AAEA,QAAI,OAAO,YAAY,WAAW,GAAG;AACjC,WAAK;AAAA,QACD;AAAA,MACJ;AACA;AAAA,IACJ;AAEA,eAAW;AAAA,MACP,MAAM,OAAO,YAAY,IAAI,CAAC,OAAO;AAAA,QACjC,IAAI,EAAE;AAAA,QACN,OAAO,EAAE;AAAA,QACT,MAAM,EAAE;AAAA,QACR,OAAO,EAAE,MAAM,QAAQ,CAAC;AAAA,QACxB,QAAQ,EAAE,OAAO,SAAS,KAAK,EAAE,OAAO,MAAM,GAAG,EAAE,IAAI,WAAM,EAAE;AAAA,MACnE,EAAE;AAAA,MACF,SAAS,CAAC,MAAM,SAAS,QAAQ,SAAS,QAAQ;AAAA,IACtD,CAAC;AAAA,EACL;AACJ;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/commands/suggestions/refresh.ts"],
4
- "sourcesContent": ["import { BaseCommand } from '../../base-command.js';\n\nexport default class SuggestionsRefresh extends BaseCommand {\n static override description = 'Information about refreshing instruction suggestions';\n\n static override examples = [\n '<%= config.bin %> suggestions refresh',\n ];\n\n async run(): Promise<void> {\n this.log(\n 'The suggestion cron runs daily at 04:30. To force a recompute now, restart the worker (`rulemetric service restart`) and the cron will fire on its registered schedule.',\n );\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;AAEA,IAAqB,qBAArB,cAAgD,YAAY;AAAA,EACxD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACvB;AAAA,EACJ;AAAA,EAEA,MAAM,MAAqB;AACvB,SAAK;AAAA,MACD;AAAA,IACJ;AAAA,EACJ;AACJ;",
6
- "names": []
7
- }
@@ -1,134 +0,0 @@
1
- import {
2
- __require
3
- } from "./chunk-NSBPE2FW.js";
4
-
5
- // ../../packages/session/dist/providers/cursor.js
6
- import { existsSync } from "fs";
7
- import { join } from "path";
8
- import { homedir } from "os";
9
- var Database = null;
10
- function loadSqlite() {
11
- if (Database)
12
- return true;
13
- try {
14
- Database = __require("better-sqlite3");
15
- return true;
16
- } catch {
17
- return false;
18
- }
19
- }
20
- var CURSOR_DEFAULT_MODEL = "claude-sonnet-4-5";
21
- var modelDisplayNames = {
22
- "claude-4.5-opus-high-thinking": "Opus 4.5 (Thinking)",
23
- "claude-4-opus": "Opus 4",
24
- "claude-4-sonnet-thinking": "Sonnet 4 (Thinking)",
25
- "claude-4.5-sonnet-thinking": "Sonnet 4.5 (Thinking)",
26
- "claude-4.6-sonnet": "Sonnet 4.6",
27
- "composer-1": "Composer 1",
28
- "gpt-5": "GPT-5",
29
- "gpt-4.1": "GPT-4.1",
30
- "default": "Auto (Sonnet est.)"
31
- };
32
- function getCursorDbPath() {
33
- if (process.platform === "darwin") {
34
- return join(homedir(), "Library", "Application Support", "Cursor", "User", "globalStorage", "state.vscdb");
35
- }
36
- if (process.platform === "win32") {
37
- return join(homedir(), "AppData", "Roaming", "Cursor", "User", "globalStorage", "state.vscdb");
38
- }
39
- return join(homedir(), ".config", "Cursor", "User", "globalStorage", "state.vscdb");
40
- }
41
- function resolveModel(raw) {
42
- if (!raw || raw === "default")
43
- return CURSOR_DEFAULT_MODEL;
44
- return raw;
45
- }
46
- var BUBBLE_QUERY = `
47
- SELECT
48
- json_extract(value, '$.tokenCount.inputTokens') as input_tokens,
49
- json_extract(value, '$.tokenCount.outputTokens') as output_tokens,
50
- json_extract(value, '$.modelInfo.modelName') as model,
51
- json_extract(value, '$.createdAt') as created_at,
52
- json_extract(value, '$.conversationId') as conversation_id,
53
- substr(json_extract(value, '$.text'), 1, 500) as user_text
54
- FROM cursorDiskKV
55
- WHERE key LIKE 'bubbleId:%'
56
- AND json_extract(value, '$.tokenCount.inputTokens') > 0
57
- ORDER BY json_extract(value, '$.createdAt') ASC
58
- `;
59
- function createParser(source, seenKeys) {
60
- return {
61
- async *parse() {
62
- if (!loadSqlite() || !Database)
63
- return;
64
- let db;
65
- try {
66
- db = new Database(source.path, { readonly: true });
67
- } catch {
68
- return;
69
- }
70
- try {
71
- const stmt = db.prepare(BUBBLE_QUERY);
72
- const rows = stmt.all();
73
- for (const row of rows) {
74
- const inputTokens = row.input_tokens ?? 0;
75
- const outputTokens = row.output_tokens ?? 0;
76
- if (inputTokens === 0 && outputTokens === 0)
77
- continue;
78
- const createdAt = row.created_at ?? "";
79
- const conversationId = row.conversation_id ?? "unknown";
80
- const dedupKey = `cursor:${conversationId}:${createdAt}:${inputTokens}:${outputTokens}`;
81
- if (seenKeys.has(dedupKey))
82
- continue;
83
- seenKeys.add(dedupKey);
84
- const model = resolveModel(row.model);
85
- yield {
86
- provider: "cursor",
87
- model: row.model ?? "default",
88
- inputTokens,
89
- outputTokens,
90
- cacheCreationInputTokens: 0,
91
- cacheReadInputTokens: 0,
92
- cachedInputTokens: 0,
93
- reasoningTokens: 0,
94
- costUSD: 0,
95
- tools: [],
96
- bashCommands: [],
97
- timestamp: createdAt,
98
- speed: "standard",
99
- deduplicationKey: dedupKey,
100
- userMessage: row.user_text ?? "",
101
- sessionId: conversationId
102
- };
103
- }
104
- } finally {
105
- db.close();
106
- }
107
- }
108
- };
109
- }
110
- var cursor = {
111
- name: "cursor",
112
- displayName: "Cursor",
113
- modelDisplayName(model) {
114
- return modelDisplayNames[model] ?? model;
115
- },
116
- toolDisplayName(rawTool) {
117
- return rawTool;
118
- },
119
- async discoverSessions() {
120
- if (!loadSqlite())
121
- return [];
122
- const dbPath = getCursorDbPath();
123
- if (!existsSync(dbPath))
124
- return [];
125
- return [{ path: dbPath, project: "cursor", provider: "cursor" }];
126
- },
127
- createSessionParser(source, seenKeys) {
128
- return createParser(source, seenKeys);
129
- }
130
- };
131
- export {
132
- cursor
133
- };
134
- //# sourceMappingURL=cursor-BGQJ4CWI.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../packages/session/src/providers/cursor.ts"],
4
- "sourcesContent": ["import { existsSync } from 'fs';\nimport { join } from 'path';\nimport { homedir } from 'os';\n\nimport type { Provider, SessionSource, SessionParser, ParsedProviderCall } from './types.js';\n\n// Lazy-loaded \u2014 requires better-sqlite3\nlet Database: typeof import('better-sqlite3') | null = null;\n\nfunction loadSqlite(): boolean {\n if (Database) return true;\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n Database = require('better-sqlite3');\n return true;\n } catch {\n return false;\n }\n}\n\nconst CURSOR_DEFAULT_MODEL = 'claude-sonnet-4-5';\n\nconst modelDisplayNames: Record<string, string> = {\n 'claude-4.5-opus-high-thinking': 'Opus 4.5 (Thinking)',\n 'claude-4-opus': 'Opus 4',\n 'claude-4-sonnet-thinking': 'Sonnet 4 (Thinking)',\n 'claude-4.5-sonnet-thinking': 'Sonnet 4.5 (Thinking)',\n 'claude-4.6-sonnet': 'Sonnet 4.6',\n 'composer-1': 'Composer 1',\n 'gpt-5': 'GPT-5',\n 'gpt-4.1': 'GPT-4.1',\n 'default': 'Auto (Sonnet est.)',\n};\n\ntype BubbleRow = {\n input_tokens: number | null;\n output_tokens: number | null;\n model: string | null;\n created_at: string | null;\n conversation_id: string | null;\n user_text: string | null;\n};\n\nfunction getCursorDbPath(): string {\n if (process.platform === 'darwin') {\n return join(homedir(), 'Library', 'Application Support', 'Cursor', 'User', 'globalStorage', 'state.vscdb');\n }\n if (process.platform === 'win32') {\n return join(homedir(), 'AppData', 'Roaming', 'Cursor', 'User', 'globalStorage', 'state.vscdb');\n }\n return join(homedir(), '.config', 'Cursor', 'User', 'globalStorage', 'state.vscdb');\n}\n\nfunction resolveModel(raw: string | null): string {\n if (!raw || raw === 'default') return CURSOR_DEFAULT_MODEL;\n return raw;\n}\n\nconst BUBBLE_QUERY = `\n SELECT\n json_extract(value, '$.tokenCount.inputTokens') as input_tokens,\n json_extract(value, '$.tokenCount.outputTokens') as output_tokens,\n json_extract(value, '$.modelInfo.modelName') as model,\n json_extract(value, '$.createdAt') as created_at,\n json_extract(value, '$.conversationId') as conversation_id,\n substr(json_extract(value, '$.text'), 1, 500) as user_text\n FROM cursorDiskKV\n WHERE key LIKE 'bubbleId:%'\n AND json_extract(value, '$.tokenCount.inputTokens') > 0\n ORDER BY json_extract(value, '$.createdAt') ASC\n`;\n\nfunction createParser(source: SessionSource, seenKeys: Set<string>): SessionParser {\n return {\n async *parse(): AsyncGenerator<ParsedProviderCall> {\n if (!loadSqlite() || !Database) return;\n\n let db: InstanceType<typeof import('better-sqlite3')>;\n try {\n db = new Database!(source.path, { readonly: true });\n } catch {\n return;\n }\n\n try {\n const stmt = db.prepare(BUBBLE_QUERY);\n const rows = stmt.all() as BubbleRow[];\n\n for (const row of rows) {\n const inputTokens = row.input_tokens ?? 0;\n const outputTokens = row.output_tokens ?? 0;\n if (inputTokens === 0 && outputTokens === 0) continue;\n\n const createdAt = row.created_at ?? '';\n const conversationId = row.conversation_id ?? 'unknown';\n const dedupKey = `cursor:${conversationId}:${createdAt}:${inputTokens}:${outputTokens}`;\n\n if (seenKeys.has(dedupKey)) continue;\n seenKeys.add(dedupKey);\n\n const model = resolveModel(row.model);\n\n yield {\n provider: 'cursor',\n model: row.model ?? 'default',\n inputTokens,\n outputTokens,\n cacheCreationInputTokens: 0,\n cacheReadInputTokens: 0,\n cachedInputTokens: 0,\n reasoningTokens: 0,\n costUSD: 0,\n tools: [],\n bashCommands: [],\n timestamp: createdAt,\n speed: 'standard',\n deduplicationKey: dedupKey,\n userMessage: row.user_text ?? '',\n sessionId: conversationId,\n };\n }\n } finally {\n db.close();\n }\n },\n };\n}\n\nexport const cursor: Provider = {\n name: 'cursor',\n displayName: 'Cursor',\n\n modelDisplayName(model: string): string {\n return modelDisplayNames[model] ?? model;\n },\n\n toolDisplayName(rawTool: string): string {\n return rawTool;\n },\n\n async discoverSessions(): Promise<SessionSource[]> {\n if (!loadSqlite()) return [];\n const dbPath = getCursorDbPath();\n if (!existsSync(dbPath)) return [];\n return [{ path: dbPath, project: 'cursor', provider: 'cursor' }];\n },\n\n createSessionParser(source: SessionSource, seenKeys: Set<string>): SessionParser {\n return createParser(source, seenKeys);\n },\n};\n"],
5
- "mappings": ";;;;;AAAA,SAAS,kBAAkB;AAC3B,SAAS,YAAY;AACrB,SAAS,eAAe;AAKxB,IAAI,WAAmD;AAEvD,SAAS,aAAU;AACjB,MAAI;AAAU,WAAO;AACrB,MAAI;AAEF,eAAW,UAAQ,gBAAgB;AACnC,WAAO;EACT,QAAQ;AACN,WAAO;EACT;AACF;AAEA,IAAM,uBAAuB;AAE7B,IAAM,oBAA4C;EAChD,iCAAiC;EACjC,iBAAiB;EACjB,4BAA4B;EAC5B,8BAA8B;EAC9B,qBAAqB;EACrB,cAAc;EACd,SAAS;EACT,WAAW;EACX,WAAW;;AAYb,SAAS,kBAAe;AACtB,MAAI,QAAQ,aAAa,UAAU;AACjC,WAAO,KAAK,QAAO,GAAI,WAAW,uBAAuB,UAAU,QAAQ,iBAAiB,aAAa;EAC3G;AACA,MAAI,QAAQ,aAAa,SAAS;AAChC,WAAO,KAAK,QAAO,GAAI,WAAW,WAAW,UAAU,QAAQ,iBAAiB,aAAa;EAC/F;AACA,SAAO,KAAK,QAAO,GAAI,WAAW,UAAU,QAAQ,iBAAiB,aAAa;AACpF;AAEA,SAAS,aAAa,KAAkB;AACtC,MAAI,CAAC,OAAO,QAAQ;AAAW,WAAO;AACtC,SAAO;AACT;AAEA,IAAM,eAAe;;;;;;;;;;;;;AAcrB,SAAS,aAAa,QAAuB,UAAqB;AAChE,SAAO;IACL,OAAO,QAAK;AACV,UAAI,CAAC,WAAU,KAAM,CAAC;AAAU;AAEhC,UAAI;AACJ,UAAI;AACF,aAAK,IAAI,SAAU,OAAO,MAAM,EAAE,UAAU,KAAI,CAAE;MACpD,QAAQ;AACN;MACF;AAEA,UAAI;AACF,cAAM,OAAO,GAAG,QAAQ,YAAY;AACpC,cAAM,OAAO,KAAK,IAAG;AAErB,mBAAW,OAAO,MAAM;AACtB,gBAAM,cAAc,IAAI,gBAAgB;AACxC,gBAAM,eAAe,IAAI,iBAAiB;AAC1C,cAAI,gBAAgB,KAAK,iBAAiB;AAAG;AAE7C,gBAAM,YAAY,IAAI,cAAc;AACpC,gBAAM,iBAAiB,IAAI,mBAAmB;AAC9C,gBAAM,WAAW,UAAU,cAAc,IAAI,SAAS,IAAI,WAAW,IAAI,YAAY;AAErF,cAAI,SAAS,IAAI,QAAQ;AAAG;AAC5B,mBAAS,IAAI,QAAQ;AAErB,gBAAM,QAAQ,aAAa,IAAI,KAAK;AAEpC,gBAAM;YACJ,UAAU;YACV,OAAO,IAAI,SAAS;YACpB;YACA;YACA,0BAA0B;YAC1B,sBAAsB;YACtB,mBAAmB;YACnB,iBAAiB;YACjB,SAAS;YACT,OAAO,CAAA;YACP,cAAc,CAAA;YACd,WAAW;YACX,OAAO;YACP,kBAAkB;YAClB,aAAa,IAAI,aAAa;YAC9B,WAAW;;QAEf;MACF;AACE,WAAG,MAAK;MACV;IACF;;AAEJ;AAEO,IAAM,SAAmB;EAC9B,MAAM;EACN,aAAa;EAEb,iBAAiB,OAAa;AAC5B,WAAO,kBAAkB,KAAK,KAAK;EACrC;EAEA,gBAAgB,SAAe;AAC7B,WAAO;EACT;EAEA,MAAM,mBAAgB;AACpB,QAAI,CAAC,WAAU;AAAI,aAAO,CAAA;AAC1B,UAAM,SAAS,gBAAe;AAC9B,QAAI,CAAC,WAAW,MAAM;AAAG,aAAO,CAAA;AAChC,WAAO,CAAC,EAAE,MAAM,QAAQ,SAAS,UAAU,UAAU,SAAQ,CAAE;EACjE;EAEA,oBAAoB,QAAuB,UAAqB;AAC9D,WAAO,aAAa,QAAQ,QAAQ;EACtC;;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/dashboard/Dashboard.tsx"],
4
- "sourcesContent": ["import React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { render, Box, Text, useInput, useApp } from 'ink';\nimport { ORANGE, DIM, PERIODS, PERIOD_LABELS } from './types.js';\nimport type { Period, LocalStats, ApiInsights } from './types.js';\nimport { loadLocalStats, loadApiInsights, loadLinkedInstructions } from './data.js';\nimport { Overview } from './panels/overview.js';\nimport { OutcomesPanel } from './panels/outcomes.js';\nimport { FrictionPanel } from './panels/friction.js';\nimport { InstructionsPanel } from './panels/instructions.js';\nimport { InsightsPanel } from './panels/insights.js';\nimport { LauncherOverlay } from './launcher/LauncherOverlay.js';\nimport { readActiveOrg } from '../lib/active-org.js';\n\nconst MIN_WIDE = 90;\n\ntype Layout = { dashWidth: number; wide: boolean; halfWidth: number; barWidth: number };\n\nfunction getLayout(): Layout {\n const termWidth = process.stdout.columns || 80;\n const dashWidth = Math.min(160, termWidth);\n const wide = dashWidth >= MIN_WIDE;\n const halfWidth = wide ? Math.floor(dashWidth / 2) : dashWidth;\n const barWidth = Math.max(6, Math.min(10, halfWidth - 34));\n return { dashWidth, wide, halfWidth, barWidth };\n}\n\nfunction PeriodTabs({ active, providerName }: { active: Period; providerName?: string }) {\n return (\n <Box justifyContent=\"space-between\" paddingX={1}>\n <Box gap={1}>\n {PERIODS.map(p => (\n <Text key={p} bold={active === p} color={active === p ? ORANGE : DIM}>\n {active === p ? `[ ${PERIOD_LABELS[p]} ]` : ` ${PERIOD_LABELS[p]} `}\n </Text>\n ))}\n </Box>\n {providerName && (\n <Text color={ORANGE} bold>{providerName}</Text>\n )}\n </Box>\n );\n}\n\nfunction StatusBar({ width, insightsFocused = false }: { width: number; insightsFocused?: boolean }) {\n return (\n <Box borderStyle=\"round\" borderColor={DIM} width={width} justifyContent=\"center\" paddingX={1}>\n <Text>\n <Text color={ORANGE} bold>{'<'}</Text><Text color={ORANGE}>{'>'}</Text><Text dimColor> switch </Text>\n <Text color={ORANGE} bold>q</Text><Text dimColor> quit </Text>\n <Text color={ORANGE} bold>s</Text><Text dimColor> {insightsFocused ? 'back' : 'suggestions'} </Text>\n <Text color={ORANGE} bold>1</Text><Text dimColor>-</Text><Text color={ORANGE} bold>5</Text><Text dimColor> period </Text>\n <Text color={ORANGE} bold>r</Text><Text dimColor> refresh </Text>\n <Text color={ORANGE} bold>n</Text><Text dimColor> new session </Text>\n <Text color={ORANGE} bold>l</Text><Text dimColor> launcher</Text>\n </Text>\n </Box>\n );\n}\n\nfunction Row({ wide, width, children }: { wide: boolean; width: number; children: React.ReactNode }) {\n if (wide) return <Box width={width}>{children}</Box>;\n return <>{children}</>;\n}\n\nfunction InteractiveDashboard({ initialLocal, initialApi, initialInstructions, initialPeriod, initialLauncherFocused = false }: {\n initialLocal: LocalStats;\n initialApi: ApiInsights | null;\n initialInstructions: Array<{ name: string; linkedSessions: number }> | null;\n initialPeriod: Period;\n initialLauncherFocused?: boolean;\n}) {\n const { exit } = useApp();\n const [period, setPeriod] = useState<Period>(initialPeriod);\n const [local, setLocal] = useState(initialLocal);\n const [api, setApi] = useState(initialApi);\n const [instructions, setInstructions] = useState(initialInstructions);\n const [loading, setLoading] = useState(false);\n const [insightsFocused, setInsightsFocused] = useState(false);\n const [launcherFocused, setLauncherFocused] = useState(initialLauncherFocused);\n const activeOrgSlug = readActiveOrg()?.orgSlug ?? null;\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const layout = getLayout();\n\n const reload = useCallback(async () => {\n setLoading(true);\n const [newLocal, newApi, newInstructions] = await Promise.all([\n loadLocalStats(),\n loadApiInsights(),\n loadLinkedInstructions(),\n ]);\n setLocal(newLocal);\n setApi(newApi);\n setInstructions(newInstructions);\n setLoading(false);\n }, []);\n\n // Auto-refresh every 30s\n useEffect(() => {\n const id = setInterval(reload, 30_000);\n return () => clearInterval(id);\n }, [reload]);\n\n const switchPeriod = useCallback((np: Period) => {\n if (np === period) return;\n setPeriod(np);\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(reload, 300);\n }, [period, reload]);\n\n useInput((input, key) => {\n if (launcherFocused) return;\n if (input === 'q') {\n if (insightsFocused) { setInsightsFocused(false); return; }\n exit();\n return;\n }\n if (input === 's') { setInsightsFocused(f => !f); return; }\n if (key.escape && insightsFocused) { setInsightsFocused(false); return; }\n if (input === 'l' && !insightsFocused) { setLauncherFocused(true); return; }\n // When insights is focused, let it handle up/down/enter\n if (insightsFocused) return;\n if (input === 'r') { reload(); return; }\n if (input === 'n') {\n import('@rulemetric/session').then(({ getLauncher }) => {\n getLauncher('claude_code').launch({ projectPath: process.cwd(), mode: 'interactive' });\n });\n return;\n }\n const idx = PERIODS.indexOf(period);\n if (key.leftArrow) switchPeriod(PERIODS[(idx - 1 + PERIODS.length) % PERIODS.length]);\n else if (key.rightArrow || key.tab) switchPeriod(PERIODS[(idx + 1) % PERIODS.length]);\n else if (input === '1') switchPeriod('today');\n else if (input === '2') switchPeriod('week');\n else if (input === '3') switchPeriod('30days');\n else if (input === '4') switchPeriod('month');\n else if (input === '5') switchPeriod('all');\n });\n\n const { dashWidth, wide, halfWidth, barWidth } = layout;\n const pw = wide ? halfWidth : dashWidth;\n\n if (loading) {\n return (\n <Box flexDirection=\"column\" width={dashWidth}>\n <PeriodTabs active={period} />\n <Box borderStyle=\"round\" borderColor={ORANGE} paddingX={1} width={dashWidth}>\n <Text dimColor>Loading {PERIOD_LABELS[period]}...</Text>\n </Box>\n <StatusBar width={dashWidth} />\n </Box>\n );\n }\n\n if (launcherFocused) {\n return (\n <Box flexDirection=\"column\" width={dashWidth}>\n <LauncherOverlay\n onClose={() => setLauncherFocused(false)}\n activeOrg={activeOrgSlug}\n defaultProjectPath={process.cwd()}\n width={dashWidth}\n />\n </Box>\n );\n }\n\n return (\n <Box flexDirection=\"column\" width={dashWidth}>\n <PeriodTabs active={period} />\n <Overview local={local} api={api} label={PERIOD_LABELS[period]} width={dashWidth} />\n <Row wide={wide} width={dashWidth}>\n <OutcomesPanel api={api} width={pw} barWidth={barWidth} />\n <FrictionPanel api={api} width={pw} barWidth={barWidth} />\n </Row>\n <InstructionsPanel instructions={instructions} width={dashWidth} barWidth={barWidth} />\n <InsightsPanel api={api} width={dashWidth} focused={insightsFocused} />\n <StatusBar width={dashWidth} insightsFocused={insightsFocused} />\n </Box>\n );\n}\n\nexport async function renderDashboard(\n period: Period = 'week',\n options: { openLauncher?: boolean } = {},\n): Promise<void> {\n // Load data in parallel \u2014 local files + API\n const [local, api, instructions] = await Promise.all([\n loadLocalStats(),\n loadApiInsights(),\n loadLinkedInstructions(),\n ]);\n\n const isTTY = process.stdin.isTTY && process.stdout.isTTY;\n if (isTTY) {\n const { waitUntilExit } = render(\n <InteractiveDashboard\n initialLocal={local}\n initialApi={api}\n initialInstructions={instructions}\n initialPeriod={period}\n initialLauncherFocused={options.openLauncher ?? false}\n />,\n );\n await waitUntilExit();\n } else {\n // Non-interactive: render once and exit\n const layout = getLayout();\n const { unmount } = render(\n <Box flexDirection=\"column\" width={layout.dashWidth}>\n <Overview local={local} api={api} label={PERIOD_LABELS[period]} width={layout.dashWidth} />\n <OutcomesPanel api={api} width={layout.dashWidth} barWidth={layout.barWidth} />\n <FrictionPanel api={api} width={layout.dashWidth} barWidth={layout.barWidth} />\n <InstructionsPanel instructions={instructions} width={layout.dashWidth} barWidth={layout.barWidth} />\n <InsightsPanel api={api} width={layout.dashWidth} />\n </Box>,\n { patchConsole: false },\n );\n unmount();\n }\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,56 +0,0 @@
1
- import {
2
- ClaudeCodeAdapter,
3
- CodexAdapter,
4
- CopilotAgentAdapter,
5
- CursorAdapter,
6
- RuleMetricMcpAdapter,
7
- SESSION_EVENT_TYPES,
8
- SESSION_TOOLS,
9
- VSCodeCopilotAdapter,
10
- buildAnalysisPrompt,
11
- buildTmuxAttachCommand,
12
- buildTmuxHasSessionArgs,
13
- buildTmuxLaunchArgs,
14
- buildTmuxSendKeysArgs,
15
- detectTool,
16
- discoverAllSessions,
17
- freshCodexState,
18
- getAdapter,
19
- getAllProviders,
20
- getAvailableLaunchers,
21
- getLauncher,
22
- getProvider,
23
- parseAnalysisResponse,
24
- sanitizeBranch,
25
- sanitizeTmuxName,
26
- worktreePathFor
27
- } from "./chunk-F5N6CLJJ.js";
28
- import "./chunk-NSBPE2FW.js";
29
- export {
30
- ClaudeCodeAdapter,
31
- CodexAdapter,
32
- CopilotAgentAdapter,
33
- CursorAdapter,
34
- RuleMetricMcpAdapter,
35
- SESSION_EVENT_TYPES,
36
- SESSION_TOOLS,
37
- VSCodeCopilotAdapter,
38
- buildAnalysisPrompt,
39
- buildTmuxAttachCommand,
40
- buildTmuxHasSessionArgs,
41
- buildTmuxLaunchArgs,
42
- buildTmuxSendKeysArgs,
43
- detectTool,
44
- discoverAllSessions,
45
- freshCodexState,
46
- getAdapter,
47
- getAllProviders,
48
- getAvailableLaunchers,
49
- getLauncher,
50
- getProvider,
51
- parseAnalysisResponse,
52
- sanitizeBranch,
53
- sanitizeTmuxName,
54
- worktreePathFor
55
- };
56
- //# sourceMappingURL=dist-UNYP5PJR.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
package/dist/index.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts"],
4
- "sourcesContent": ["export { run } from '@oclif/core';\n"],
5
- "mappings": ";;;AAAA,SAAS,WAAW;",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }