@rulemetric/cli 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (774) hide show
  1. package/dist/base-command.js +13 -52
  2. package/dist/base-command.js.map +7 -1
  3. package/dist/chunk-2AM54TUK.js +59 -0
  4. package/dist/chunk-2AM54TUK.js.map +7 -0
  5. package/dist/chunk-3TIMQ3O6.js +96 -0
  6. package/dist/chunk-3TIMQ3O6.js.map +7 -0
  7. package/dist/chunk-4BHDHHKL.js +48 -0
  8. package/dist/chunk-4BHDHHKL.js.map +7 -0
  9. package/dist/chunk-4D537GXE.js +99 -0
  10. package/dist/chunk-4D537GXE.js.map +7 -0
  11. package/dist/chunk-4SCZK7AL.js +129 -0
  12. package/dist/chunk-4SCZK7AL.js.map +7 -0
  13. package/dist/chunk-4WFE4PFP.js +61 -0
  14. package/dist/chunk-4WFE4PFP.js.map +7 -0
  15. package/dist/chunk-52WIYRZH.js +73 -0
  16. package/dist/chunk-52WIYRZH.js.map +7 -0
  17. package/dist/chunk-7FAA3YNB.js +1549 -0
  18. package/dist/chunk-7FAA3YNB.js.map +7 -0
  19. package/dist/chunk-7NYKWN7U.js +12 -0
  20. package/dist/chunk-7NYKWN7U.js.map +7 -0
  21. package/dist/chunk-AULP2OWH.js +99 -0
  22. package/dist/chunk-AULP2OWH.js.map +7 -0
  23. package/dist/chunk-B5KNTGMJ.js +1788 -0
  24. package/dist/chunk-B5KNTGMJ.js.map +7 -0
  25. package/dist/chunk-BD7CY42U.js +23 -0
  26. package/dist/chunk-BD7CY42U.js.map +7 -0
  27. package/dist/chunk-BO76WKJR.js +42 -0
  28. package/dist/chunk-BO76WKJR.js.map +7 -0
  29. package/dist/chunk-BRD5RUGM.js +53 -0
  30. package/dist/chunk-BRD5RUGM.js.map +7 -0
  31. package/dist/chunk-BT6Z6545.js +43 -0
  32. package/dist/chunk-BT6Z6545.js.map +7 -0
  33. package/dist/chunk-BZDKEQKU.js +39 -0
  34. package/dist/chunk-BZDKEQKU.js.map +7 -0
  35. package/dist/chunk-CROYS75W.js +161 -0
  36. package/dist/chunk-CROYS75W.js.map +7 -0
  37. package/dist/chunk-DGHWRQXL.js +17 -0
  38. package/dist/chunk-DGHWRQXL.js.map +7 -0
  39. package/dist/chunk-DQ3KELXD.js +74 -0
  40. package/dist/chunk-DQ3KELXD.js.map +7 -0
  41. package/dist/chunk-DTFXCHHI.js +108 -0
  42. package/dist/chunk-DTFXCHHI.js.map +7 -0
  43. package/dist/chunk-DU73QUS3.js +75 -0
  44. package/dist/chunk-DU73QUS3.js.map +7 -0
  45. package/dist/chunk-EHZJ6OXD.js +307 -0
  46. package/dist/chunk-EHZJ6OXD.js.map +7 -0
  47. package/dist/chunk-EJOI2ZGU.js +109 -0
  48. package/dist/chunk-EJOI2ZGU.js.map +7 -0
  49. package/dist/chunk-EKJ2CABV.js +76 -0
  50. package/dist/chunk-EKJ2CABV.js.map +7 -0
  51. package/dist/chunk-EKP32DLN.js +16 -0
  52. package/dist/chunk-EKP32DLN.js.map +7 -0
  53. package/dist/chunk-EOOP6WTC.js +148 -0
  54. package/dist/chunk-EOOP6WTC.js.map +7 -0
  55. package/dist/chunk-ERPMDAO3.js +20 -0
  56. package/dist/chunk-ERPMDAO3.js.map +7 -0
  57. package/dist/chunk-FTJRMUID.js +96 -0
  58. package/dist/chunk-FTJRMUID.js.map +7 -0
  59. package/dist/chunk-FZKLLNDS.js +228 -0
  60. package/dist/chunk-FZKLLNDS.js.map +7 -0
  61. package/dist/chunk-GQCISMAH.js +157 -0
  62. package/dist/chunk-GQCISMAH.js.map +7 -0
  63. package/dist/chunk-IGXX624H.js +55 -0
  64. package/dist/chunk-IGXX624H.js.map +7 -0
  65. package/dist/chunk-IJGF2ETG.js +68 -0
  66. package/dist/chunk-IJGF2ETG.js.map +7 -0
  67. package/dist/chunk-IWYCRLEK.js +220 -0
  68. package/dist/chunk-IWYCRLEK.js.map +7 -0
  69. package/dist/chunk-J7N3DLH6.js +117 -0
  70. package/dist/chunk-J7N3DLH6.js.map +7 -0
  71. package/dist/chunk-JX5UI6RW.js +99 -0
  72. package/dist/chunk-JX5UI6RW.js.map +7 -0
  73. package/dist/chunk-K3BFZ7KG.js +154 -0
  74. package/dist/chunk-K3BFZ7KG.js.map +7 -0
  75. package/dist/chunk-KHJUQFIK.js +51 -0
  76. package/dist/chunk-KHJUQFIK.js.map +7 -0
  77. package/dist/chunk-KRBQLMOP.js +41 -0
  78. package/dist/chunk-KRBQLMOP.js.map +7 -0
  79. package/dist/chunk-KZRFUXGF.js +145 -0
  80. package/dist/chunk-KZRFUXGF.js.map +7 -0
  81. package/dist/chunk-L674RNKQ.js +492 -0
  82. package/dist/chunk-L674RNKQ.js.map +7 -0
  83. package/dist/chunk-N52AHNBH.js +47 -0
  84. package/dist/chunk-N52AHNBH.js.map +7 -0
  85. package/dist/chunk-NIDLJO6F.js +228 -0
  86. package/dist/chunk-NIDLJO6F.js.map +7 -0
  87. package/dist/chunk-NSBPE2FW.js +17 -0
  88. package/dist/chunk-NSBPE2FW.js.map +7 -0
  89. package/dist/chunk-OGVORIFM.js +70 -0
  90. package/dist/chunk-OGVORIFM.js.map +7 -0
  91. package/dist/chunk-OQSQC7VB.js +77 -0
  92. package/dist/chunk-OQSQC7VB.js.map +7 -0
  93. package/dist/chunk-PHLMIZKM.js +153 -0
  94. package/dist/chunk-PHLMIZKM.js.map +7 -0
  95. package/dist/chunk-PQU7GZ7A.js +92 -0
  96. package/dist/chunk-PQU7GZ7A.js.map +7 -0
  97. package/dist/chunk-PXVQLD7S.js +196 -0
  98. package/dist/chunk-PXVQLD7S.js.map +7 -0
  99. package/dist/chunk-QD6X4L4L.js +79 -0
  100. package/dist/chunk-QD6X4L4L.js.map +7 -0
  101. package/dist/chunk-QJQS6TUN.js +44 -0
  102. package/dist/chunk-QJQS6TUN.js.map +7 -0
  103. package/dist/chunk-QJXAULRC.js +191 -0
  104. package/dist/chunk-QJXAULRC.js.map +7 -0
  105. package/dist/chunk-QN34TGD3.js +83 -0
  106. package/dist/chunk-QN34TGD3.js.map +7 -0
  107. package/dist/chunk-R5MFHGHR.js +122 -0
  108. package/dist/chunk-R5MFHGHR.js.map +7 -0
  109. package/dist/chunk-RH7NHVSK.js +16 -0
  110. package/dist/chunk-RH7NHVSK.js.map +7 -0
  111. package/dist/chunk-RJ7BHDLM.js +121 -0
  112. package/dist/chunk-RJ7BHDLM.js.map +7 -0
  113. package/dist/chunk-RQ2TMLKG.js +142 -0
  114. package/dist/chunk-RQ2TMLKG.js.map +7 -0
  115. package/dist/chunk-S56LOTGQ.js +63 -0
  116. package/dist/chunk-S56LOTGQ.js.map +7 -0
  117. package/dist/chunk-UF73WX2J.js +49 -0
  118. package/dist/chunk-UF73WX2J.js.map +7 -0
  119. package/dist/chunk-W53GKIZQ.js +50 -0
  120. package/dist/chunk-W53GKIZQ.js.map +7 -0
  121. package/dist/chunk-WA4MWYRW.js +254 -0
  122. package/dist/chunk-WA4MWYRW.js.map +7 -0
  123. package/dist/chunk-WFULKPEQ.js +269 -0
  124. package/dist/chunk-WFULKPEQ.js.map +7 -0
  125. package/dist/chunk-XC6M4CSW.js +44 -0
  126. package/dist/chunk-XC6M4CSW.js.map +7 -0
  127. package/dist/chunk-XPUEGHXN.js +243 -0
  128. package/dist/chunk-XPUEGHXN.js.map +7 -0
  129. package/dist/chunk-XZXS2W24.js +148 -0
  130. package/dist/chunk-XZXS2W24.js.map +7 -0
  131. package/dist/chunk-YBNW7ARH.js +167 -0
  132. package/dist/chunk-YBNW7ARH.js.map +7 -0
  133. package/dist/chunk-YNIH3KMU.js +121 -0
  134. package/dist/chunk-YNIH3KMU.js.map +7 -0
  135. package/dist/commands/antigravity/backfill.js +135 -0
  136. package/dist/commands/antigravity/backfill.js.map +7 -0
  137. package/dist/commands/auth/create-key.js +48 -33
  138. package/dist/commands/auth/create-key.js.map +7 -1
  139. package/dist/commands/auth/login.js +58 -46
  140. package/dist/commands/auth/login.js.map +7 -1
  141. package/dist/commands/auth/logout.js +28 -13
  142. package/dist/commands/auth/logout.js.map +7 -1
  143. package/dist/commands/auth/revoke-key.js +32 -18
  144. package/dist/commands/auth/revoke-key.js.map +7 -1
  145. package/dist/commands/auth/status.js +40 -22
  146. package/dist/commands/auth/status.js.map +7 -1
  147. package/dist/commands/catalog/index.js +50 -34
  148. package/dist/commands/catalog/index.js.map +7 -1
  149. package/dist/commands/catalog/recommend.js +41 -26
  150. package/dist/commands/catalog/recommend.js.map +7 -1
  151. package/dist/commands/convert.js +72 -54
  152. package/dist/commands/convert.js.map +7 -1
  153. package/dist/commands/converters.js +52 -38
  154. package/dist/commands/converters.js.map +7 -1
  155. package/dist/commands/crons/list.js +50 -24
  156. package/dist/commands/crons/list.js.map +7 -1
  157. package/dist/commands/crons/run.js +72 -47
  158. package/dist/commands/crons/run.js.map +7 -1
  159. package/dist/commands/dashboard.js +45 -24
  160. package/dist/commands/dashboard.js.map +7 -1
  161. package/dist/commands/eval-targets/create.js +51 -39
  162. package/dist/commands/eval-targets/create.js.map +7 -1
  163. package/dist/commands/eval-targets/list.js +52 -35
  164. package/dist/commands/eval-targets/list.js.map +7 -1
  165. package/dist/commands/evals/agent.js +292 -0
  166. package/dist/commands/evals/agent.js.map +7 -0
  167. package/dist/commands/evals/benchmark.js +70 -51
  168. package/dist/commands/evals/benchmark.js.map +7 -1
  169. package/dist/commands/evals/compare.js +90 -78
  170. package/dist/commands/evals/compare.js.map +7 -1
  171. package/dist/commands/evals/create.js +64 -50
  172. package/dist/commands/evals/create.js.map +7 -1
  173. package/dist/commands/evals/optimize-description.js +225 -222
  174. package/dist/commands/evals/optimize-description.js.map +7 -1
  175. package/dist/commands/evals/optimize.js +206 -196
  176. package/dist/commands/evals/optimize.js.map +7 -1
  177. package/dist/commands/evals/run.js +178 -164
  178. package/dist/commands/evals/run.js.map +7 -1
  179. package/dist/commands/gateway/ensure.js +33 -19
  180. package/dist/commands/gateway/ensure.js.map +7 -1
  181. package/dist/commands/hooks/install.js +335 -275
  182. package/dist/commands/hooks/install.js.map +7 -1
  183. package/dist/commands/hooks/run.js +72 -53
  184. package/dist/commands/hooks/run.js.map +7 -1
  185. package/dist/commands/hooks/uninstall.js +117 -94
  186. package/dist/commands/hooks/uninstall.js.map +7 -1
  187. package/dist/commands/import.js +63 -53
  188. package/dist/commands/import.js.map +7 -1
  189. package/dist/commands/instructions/create.js +71 -58
  190. package/dist/commands/instructions/create.js.map +7 -1
  191. package/dist/commands/instructions/delete.js +53 -36
  192. package/dist/commands/instructions/delete.js.map +7 -1
  193. package/dist/commands/instructions/fork.js +33 -19
  194. package/dist/commands/instructions/fork.js.map +7 -1
  195. package/dist/commands/instructions/get.js +66 -49
  196. package/dist/commands/instructions/get.js.map +7 -1
  197. package/dist/commands/instructions/list.js +63 -46
  198. package/dist/commands/instructions/list.js.map +7 -1
  199. package/dist/commands/instructions/promote.js +41 -27
  200. package/dist/commands/instructions/promote.js.map +7 -1
  201. package/dist/commands/instructions/pull.js +37 -21
  202. package/dist/commands/instructions/pull.js.map +7 -1
  203. package/dist/commands/instructions/upstream.js +36 -21
  204. package/dist/commands/instructions/upstream.js.map +7 -1
  205. package/dist/commands/instructions/versions.js +51 -33
  206. package/dist/commands/instructions/versions.js.map +7 -1
  207. package/dist/commands/launcher.js +39 -0
  208. package/dist/commands/launcher.js.map +7 -0
  209. package/dist/commands/org/current.js +74 -68
  210. package/dist/commands/org/current.js.map +7 -1
  211. package/dist/commands/org/list.js +50 -36
  212. package/dist/commands/org/list.js.map +7 -1
  213. package/dist/commands/org/switch.js +69 -51
  214. package/dist/commands/org/switch.js.map +7 -1
  215. package/dist/commands/packs/add-instruction.js +36 -22
  216. package/dist/commands/packs/add-instruction.js.map +7 -1
  217. package/dist/commands/packs/apply.js +38 -24
  218. package/dist/commands/packs/apply.js.map +7 -1
  219. package/dist/commands/packs/create.js +47 -33
  220. package/dist/commands/packs/create.js.map +7 -1
  221. package/dist/commands/packs/fork.js +33 -19
  222. package/dist/commands/packs/fork.js.map +7 -1
  223. package/dist/commands/packs/get.js +54 -35
  224. package/dist/commands/packs/get.js.map +7 -1
  225. package/dist/commands/packs/list.js +64 -47
  226. package/dist/commands/packs/list.js.map +7 -1
  227. package/dist/commands/packs/remove-instruction.js +34 -20
  228. package/dist/commands/packs/remove-instruction.js.map +7 -1
  229. package/dist/commands/proxy/env.js +126 -116
  230. package/dist/commands/proxy/env.js.map +7 -1
  231. package/dist/commands/proxy/logs.js +83 -74
  232. package/dist/commands/proxy/logs.js.map +7 -1
  233. package/dist/commands/proxy/restart.js +34 -36
  234. package/dist/commands/proxy/restart.js.map +7 -1
  235. package/dist/commands/proxy/setup.js +432 -375
  236. package/dist/commands/proxy/setup.js.map +7 -1
  237. package/dist/commands/proxy/start.js +289 -289
  238. package/dist/commands/proxy/start.js.map +7 -1
  239. package/dist/commands/proxy/status.js +74 -64
  240. package/dist/commands/proxy/status.js.map +7 -1
  241. package/dist/commands/proxy/stop.js +81 -75
  242. package/dist/commands/proxy/stop.js.map +7 -1
  243. package/dist/commands/research/backfill.js +58 -0
  244. package/dist/commands/research/backfill.js.map +7 -0
  245. package/dist/commands/research/tail-transcript.js +69 -0
  246. package/dist/commands/research/tail-transcript.js.map +7 -0
  247. package/dist/commands/service/install.js +639 -405
  248. package/dist/commands/service/install.js.map +7 -1
  249. package/dist/commands/service/status.js +178 -111
  250. package/dist/commands/service/status.js.map +7 -1
  251. package/dist/commands/service/uninstall.js +85 -110
  252. package/dist/commands/service/uninstall.js.map +7 -1
  253. package/dist/commands/sessions/analyze.js +46 -25
  254. package/dist/commands/sessions/analyze.js.map +7 -1
  255. package/dist/commands/sessions/end.js +81 -79
  256. package/dist/commands/sessions/end.js.map +7 -1
  257. package/dist/commands/sessions/import.js +44 -27
  258. package/dist/commands/sessions/import.js.map +7 -1
  259. package/dist/commands/sessions/list.js +46 -33
  260. package/dist/commands/sessions/list.js.map +7 -1
  261. package/dist/commands/sessions/start.js +88 -87
  262. package/dist/commands/sessions/start.js.map +7 -1
  263. package/dist/commands/signals/report.js +42 -34
  264. package/dist/commands/signals/report.js.map +7 -1
  265. package/dist/commands/skills/export-approved.js +44 -30
  266. package/dist/commands/skills/export-approved.js.map +7 -1
  267. package/dist/commands/skills/install.js +99 -84
  268. package/dist/commands/skills/install.js.map +7 -1
  269. package/dist/commands/skills/list.js +59 -42
  270. package/dist/commands/skills/list.js.map +7 -1
  271. package/dist/commands/skills/publish.js +95 -78
  272. package/dist/commands/skills/publish.js.map +7 -1
  273. package/dist/commands/skills/search.js +68 -53
  274. package/dist/commands/skills/search.js.map +7 -1
  275. package/dist/commands/skills/update.js +52 -39
  276. package/dist/commands/skills/update.js.map +7 -1
  277. package/dist/commands/suggestions/accept.js +82 -59
  278. package/dist/commands/suggestions/accept.js.map +7 -1
  279. package/dist/commands/suggestions/dismiss.js +44 -26
  280. package/dist/commands/suggestions/dismiss.js.map +7 -1
  281. package/dist/commands/suggestions/list.js +59 -39
  282. package/dist/commands/suggestions/list.js.map +7 -1
  283. package/dist/commands/suggestions/refresh.js +26 -11
  284. package/dist/commands/suggestions/refresh.js.map +7 -1
  285. package/dist/cursor-BGQJ4CWI.js +134 -0
  286. package/dist/cursor-BGQJ4CWI.js.map +7 -0
  287. package/dist/dashboard/Dashboard.js +229 -126
  288. package/dist/dashboard/Dashboard.js.map +7 -1
  289. package/dist/dashboard/data.js +13 -137
  290. package/dist/dashboard/data.js.map +7 -1
  291. package/dist/dashboard/launcher/ActiveJobsList.js +10 -0
  292. package/dist/dashboard/launcher/ActiveJobsList.js.map +7 -0
  293. package/dist/dashboard/launcher/LauncherOverlay.js +14 -0
  294. package/dist/dashboard/launcher/LauncherOverlay.js.map +7 -0
  295. package/dist/dashboard/launcher/NewLaunchForm.js +10 -0
  296. package/dist/dashboard/launcher/NewLaunchForm.js.map +7 -0
  297. package/dist/dashboard/launcher/api.js +14 -0
  298. package/dist/dashboard/launcher/api.js.map +7 -0
  299. package/dist/dashboard/launcher/tool-labels.js +10 -0
  300. package/dist/dashboard/launcher/tool-labels.js.map +7 -0
  301. package/dist/dashboard/launcher/types.js +1 -0
  302. package/dist/dashboard/launcher/types.js.map +7 -0
  303. package/dist/dashboard/launcher/useLaunchJobs.js +9 -0
  304. package/dist/dashboard/launcher/useLaunchJobs.js.map +7 -0
  305. package/dist/dashboard/panels/friction.js +10 -22
  306. package/dist/dashboard/panels/friction.js.map +7 -1
  307. package/dist/dashboard/panels/insights.js +10 -109
  308. package/dist/dashboard/panels/insights.js.map +7 -1
  309. package/dist/dashboard/panels/instructions.js +10 -17
  310. package/dist/dashboard/panels/instructions.js.map +7 -1
  311. package/dist/dashboard/panels/outcomes.js +9 -28
  312. package/dist/dashboard/panels/outcomes.js.map +7 -1
  313. package/dist/dashboard/panels/overview.js +10 -20
  314. package/dist/dashboard/panels/overview.js.map +7 -1
  315. package/dist/dashboard/panels/shared.js +18 -61
  316. package/dist/dashboard/panels/shared.js.map +7 -1
  317. package/dist/dashboard/types.js +23 -26
  318. package/dist/dashboard/types.js.map +7 -1
  319. package/dist/dist-CSUYFYKI.js +52 -0
  320. package/dist/dist-CSUYFYKI.js.map +7 -0
  321. package/dist/index.js +8 -2
  322. package/dist/index.js.map +7 -1
  323. package/dist/lib/active-org-refresh.js +15 -108
  324. package/dist/lib/active-org-refresh.js.map +7 -1
  325. package/dist/lib/active-org.js +15 -95
  326. package/dist/lib/active-org.js.map +7 -1
  327. package/dist/lib/agent-loop.js +44 -0
  328. package/dist/lib/agent-loop.js.map +7 -0
  329. package/dist/lib/antigravity-transcript.js +22 -0
  330. package/dist/lib/antigravity-transcript.js.map +7 -0
  331. package/dist/lib/api-client.js +21 -92
  332. package/dist/lib/api-client.js.map +7 -1
  333. package/dist/lib/auth.js +26 -137
  334. package/dist/lib/auth.js.map +7 -1
  335. package/dist/lib/detect-languages.js +8 -113
  336. package/dist/lib/detect-languages.js.map +7 -1
  337. package/dist/lib/detect-tmux.js +9 -0
  338. package/dist/lib/detect-tmux.js.map +7 -0
  339. package/dist/lib/eval-analyzer.js +9 -89
  340. package/dist/lib/eval-analyzer.js.map +7 -1
  341. package/dist/lib/eval-benchmark.js +12 -92
  342. package/dist/lib/eval-benchmark.js.map +7 -1
  343. package/dist/lib/eval-conversation-handler.js +13 -200
  344. package/dist/lib/eval-conversation-handler.js.map +7 -1
  345. package/dist/lib/eval-executor.js +8 -83
  346. package/dist/lib/eval-executor.js.map +7 -1
  347. package/dist/lib/eval-grader.js +9 -123
  348. package/dist/lib/eval-grader.js.map +7 -1
  349. package/dist/lib/eval-meta-judge.js +9 -116
  350. package/dist/lib/eval-meta-judge.js.map +7 -1
  351. package/dist/lib/eval-trigger-tester.js +11 -96
  352. package/dist/lib/eval-trigger-tester.js.map +7 -1
  353. package/dist/lib/eval-worktree.js +8 -87
  354. package/dist/lib/eval-worktree.js.map +7 -1
  355. package/dist/lib/gateway-entry.js +20 -18
  356. package/dist/lib/gateway-entry.js.map +7 -1
  357. package/dist/lib/gateway-lifecycle.js +22 -97
  358. package/dist/lib/gateway-lifecycle.js.map +7 -1
  359. package/dist/lib/gateway.js +12 -216
  360. package/dist/lib/gateway.js.map +7 -1
  361. package/dist/lib/handlers/cron-close-stale-sessions.js +18 -7
  362. package/dist/lib/handlers/cron-close-stale-sessions.js.map +7 -1
  363. package/dist/lib/handlers/cron-data-integrity-audit.js +21 -15
  364. package/dist/lib/handlers/cron-data-integrity-audit.js.map +7 -1
  365. package/dist/lib/handlers/cron-refresh-skills.js +7 -90
  366. package/dist/lib/handlers/cron-refresh-skills.js.map +7 -1
  367. package/dist/lib/handlers/cron-suggest-instructions.js +14 -158
  368. package/dist/lib/handlers/cron-suggest-instructions.js.map +7 -1
  369. package/dist/lib/handlers/process-announcement.js +11 -0
  370. package/dist/lib/handlers/process-announcement.js.map +7 -0
  371. package/dist/lib/handlers/process-changelog.js +11 -0
  372. package/dist/lib/handlers/process-changelog.js.map +7 -0
  373. package/dist/lib/handlers/process-conversation.js +14 -35
  374. package/dist/lib/handlers/process-conversation.js.map +7 -1
  375. package/dist/lib/handlers/process-eval.js +15 -207
  376. package/dist/lib/handlers/process-eval.js.map +7 -1
  377. package/dist/lib/handlers/process-insights.js +14 -300
  378. package/dist/lib/handlers/process-insights.js.map +7 -1
  379. package/dist/lib/handlers/process-launch.js +16 -41
  380. package/dist/lib/handlers/process-launch.js.map +7 -1
  381. package/dist/lib/handlers/process-run-cleanup.js +13 -0
  382. package/dist/lib/handlers/process-run-cleanup.js.map +7 -0
  383. package/dist/lib/handlers/process-send-message.js +10 -0
  384. package/dist/lib/handlers/process-send-message.js.map +7 -0
  385. package/dist/lib/handlers/process-session-goal.js +11 -0
  386. package/dist/lib/handlers/process-session-goal.js.map +7 -0
  387. package/dist/lib/hooks-config.js +52 -544
  388. package/dist/lib/hooks-config.js.map +7 -1
  389. package/dist/lib/insights-prompts.js +12 -145
  390. package/dist/lib/insights-prompts.js.map +7 -1
  391. package/dist/lib/job-helpers.js +1 -0
  392. package/dist/lib/job-helpers.js.map +7 -0
  393. package/dist/lib/llm-client.js +16 -274
  394. package/dist/lib/llm-client.js.map +7 -1
  395. package/dist/lib/manual-tasks.js +22 -0
  396. package/dist/lib/manual-tasks.js.map +7 -0
  397. package/dist/lib/output.js +12 -36
  398. package/dist/lib/output.js.map +7 -1
  399. package/dist/lib/permanent-job-error.js +10 -23
  400. package/dist/lib/permanent-job-error.js.map +7 -1
  401. package/dist/lib/provider-aggregator.js +57 -55
  402. package/dist/lib/provider-aggregator.js.map +7 -1
  403. package/dist/lib/research-client.js +12 -0
  404. package/dist/lib/research-client.js.map +7 -0
  405. package/dist/lib/skills-loader.js +8 -51
  406. package/dist/lib/skills-loader.js.map +7 -1
  407. package/dist/lib/statusline-shim.js +16 -0
  408. package/dist/lib/statusline-shim.js.map +7 -0
  409. package/dist/lib/terminal-target-heartbeat.js +15 -0
  410. package/dist/lib/terminal-target-heartbeat.js.map +7 -0
  411. package/dist/lib/tmux.js +16 -0
  412. package/dist/lib/tmux.js.map +7 -0
  413. package/dist/lib/transcript-rate-limit-watcher.js +22 -0
  414. package/dist/lib/transcript-rate-limit-watcher.js.map +7 -0
  415. package/dist/lib/types.js +8 -7
  416. package/dist/lib/types.js.map +7 -1
  417. package/dist/lib/version-check.js +10 -106
  418. package/dist/lib/version-check.js.map +7 -1
  419. package/dist/lib/which.js +8 -0
  420. package/dist/lib/which.js.map +7 -0
  421. package/dist/lib/worktree.js +17 -0
  422. package/dist/lib/worktree.js.map +7 -0
  423. package/dist/opencode-IQ7X5YMJ.js +190 -0
  424. package/dist/opencode-IQ7X5YMJ.js.map +7 -0
  425. package/oclif.manifest.json +299 -66
  426. package/package.json +28 -10
  427. package/dist/base-command.d.ts +0 -12
  428. package/dist/base-command.d.ts.map +0 -1
  429. package/dist/commands/auth/create-key.d.ts +0 -11
  430. package/dist/commands/auth/create-key.d.ts.map +0 -1
  431. package/dist/commands/auth/login.d.ts +0 -11
  432. package/dist/commands/auth/login.d.ts.map +0 -1
  433. package/dist/commands/auth/logout.d.ts +0 -7
  434. package/dist/commands/auth/logout.d.ts.map +0 -1
  435. package/dist/commands/auth/revoke-key.d.ts +0 -10
  436. package/dist/commands/auth/revoke-key.d.ts.map +0 -1
  437. package/dist/commands/auth/status.d.ts +0 -7
  438. package/dist/commands/auth/status.d.ts.map +0 -1
  439. package/dist/commands/catalog/index.d.ts +0 -11
  440. package/dist/commands/catalog/index.d.ts.map +0 -1
  441. package/dist/commands/catalog/recommend.d.ts +0 -9
  442. package/dist/commands/catalog/recommend.d.ts.map +0 -1
  443. package/dist/commands/convert.d.ts +0 -15
  444. package/dist/commands/convert.d.ts.map +0 -1
  445. package/dist/commands/converters.d.ts +0 -12
  446. package/dist/commands/converters.d.ts.map +0 -1
  447. package/dist/commands/crons/list.d.ts +0 -7
  448. package/dist/commands/crons/list.d.ts.map +0 -1
  449. package/dist/commands/crons/run.d.ts +0 -13
  450. package/dist/commands/crons/run.d.ts.map +0 -1
  451. package/dist/commands/dashboard.d.ts +0 -10
  452. package/dist/commands/dashboard.d.ts.map +0 -1
  453. package/dist/commands/eval-targets/create.d.ts +0 -14
  454. package/dist/commands/eval-targets/create.d.ts.map +0 -1
  455. package/dist/commands/eval-targets/list.d.ts +0 -10
  456. package/dist/commands/eval-targets/list.d.ts.map +0 -1
  457. package/dist/commands/evals/benchmark.d.ts +0 -13
  458. package/dist/commands/evals/benchmark.d.ts.map +0 -1
  459. package/dist/commands/evals/compare.d.ts +0 -15
  460. package/dist/commands/evals/compare.d.ts.map +0 -1
  461. package/dist/commands/evals/create.d.ts +0 -17
  462. package/dist/commands/evals/create.d.ts.map +0 -1
  463. package/dist/commands/evals/listen.d.ts +0 -37
  464. package/dist/commands/evals/listen.d.ts.map +0 -1
  465. package/dist/commands/evals/listen.js +0 -188
  466. package/dist/commands/evals/listen.js.map +0 -1
  467. package/dist/commands/evals/listen.test.d.ts +0 -2
  468. package/dist/commands/evals/listen.test.d.ts.map +0 -1
  469. package/dist/commands/evals/listen.test.js +0 -48
  470. package/dist/commands/evals/listen.test.js.map +0 -1
  471. package/dist/commands/evals/optimize-description.d.ts +0 -22
  472. package/dist/commands/evals/optimize-description.d.ts.map +0 -1
  473. package/dist/commands/evals/optimize.d.ts +0 -22
  474. package/dist/commands/evals/optimize.d.ts.map +0 -1
  475. package/dist/commands/evals/run.d.ts +0 -21
  476. package/dist/commands/evals/run.d.ts.map +0 -1
  477. package/dist/commands/gateway/ensure.d.ts +0 -7
  478. package/dist/commands/gateway/ensure.d.ts.map +0 -1
  479. package/dist/commands/hooks/install.d.ts +0 -16
  480. package/dist/commands/hooks/install.d.ts.map +0 -1
  481. package/dist/commands/hooks/run.d.ts +0 -11
  482. package/dist/commands/hooks/run.d.ts.map +0 -1
  483. package/dist/commands/hooks/uninstall.d.ts +0 -7
  484. package/dist/commands/hooks/uninstall.d.ts.map +0 -1
  485. package/dist/commands/import.d.ts +0 -17
  486. package/dist/commands/import.d.ts.map +0 -1
  487. package/dist/commands/instructions/create.d.ts +0 -17
  488. package/dist/commands/instructions/create.d.ts.map +0 -1
  489. package/dist/commands/instructions/delete.d.ts +0 -13
  490. package/dist/commands/instructions/delete.d.ts.map +0 -1
  491. package/dist/commands/instructions/fork.d.ts +0 -10
  492. package/dist/commands/instructions/fork.d.ts.map +0 -1
  493. package/dist/commands/instructions/get.d.ts +0 -15
  494. package/dist/commands/instructions/get.d.ts.map +0 -1
  495. package/dist/commands/instructions/list.d.ts +0 -12
  496. package/dist/commands/instructions/list.d.ts.map +0 -1
  497. package/dist/commands/instructions/promote.d.ts +0 -14
  498. package/dist/commands/instructions/promote.d.ts.map +0 -1
  499. package/dist/commands/instructions/pull.d.ts +0 -9
  500. package/dist/commands/instructions/pull.d.ts.map +0 -1
  501. package/dist/commands/instructions/upstream.d.ts +0 -9
  502. package/dist/commands/instructions/upstream.d.ts.map +0 -1
  503. package/dist/commands/instructions/versions.d.ts +0 -12
  504. package/dist/commands/instructions/versions.d.ts.map +0 -1
  505. package/dist/commands/org/current.d.ts +0 -7
  506. package/dist/commands/org/current.d.ts.map +0 -1
  507. package/dist/commands/org/list.d.ts +0 -7
  508. package/dist/commands/org/list.d.ts.map +0 -1
  509. package/dist/commands/org/switch.d.ts +0 -13
  510. package/dist/commands/org/switch.d.ts.map +0 -1
  511. package/dist/commands/packs/add-instruction.d.ts +0 -11
  512. package/dist/commands/packs/add-instruction.d.ts.map +0 -1
  513. package/dist/commands/packs/apply.d.ts +0 -13
  514. package/dist/commands/packs/apply.d.ts.map +0 -1
  515. package/dist/commands/packs/create.d.ts +0 -13
  516. package/dist/commands/packs/create.d.ts.map +0 -1
  517. package/dist/commands/packs/fork.d.ts +0 -10
  518. package/dist/commands/packs/fork.d.ts.map +0 -1
  519. package/dist/commands/packs/get.d.ts +0 -10
  520. package/dist/commands/packs/get.d.ts.map +0 -1
  521. package/dist/commands/packs/list.d.ts +0 -22
  522. package/dist/commands/packs/list.d.ts.map +0 -1
  523. package/dist/commands/packs/remove-instruction.d.ts +0 -11
  524. package/dist/commands/packs/remove-instruction.d.ts.map +0 -1
  525. package/dist/commands/proxy/env.d.ts +0 -14
  526. package/dist/commands/proxy/env.d.ts.map +0 -1
  527. package/dist/commands/proxy/logs.d.ts +0 -11
  528. package/dist/commands/proxy/logs.d.ts.map +0 -1
  529. package/dist/commands/proxy/restart.d.ts +0 -11
  530. package/dist/commands/proxy/restart.d.ts.map +0 -1
  531. package/dist/commands/proxy/setup.d.ts +0 -23
  532. package/dist/commands/proxy/setup.d.ts.map +0 -1
  533. package/dist/commands/proxy/start.d.ts +0 -17
  534. package/dist/commands/proxy/start.d.ts.map +0 -1
  535. package/dist/commands/proxy/status.d.ts +0 -7
  536. package/dist/commands/proxy/status.d.ts.map +0 -1
  537. package/dist/commands/proxy/stop.d.ts +0 -8
  538. package/dist/commands/proxy/stop.d.ts.map +0 -1
  539. package/dist/commands/service/install.d.ts +0 -33
  540. package/dist/commands/service/install.d.ts.map +0 -1
  541. package/dist/commands/service/install.test.d.ts +0 -2
  542. package/dist/commands/service/install.test.d.ts.map +0 -1
  543. package/dist/commands/service/install.test.js +0 -345
  544. package/dist/commands/service/install.test.js.map +0 -1
  545. package/dist/commands/service/status.d.ts +0 -6
  546. package/dist/commands/service/status.d.ts.map +0 -1
  547. package/dist/commands/service/uninstall.d.ts +0 -6
  548. package/dist/commands/service/uninstall.d.ts.map +0 -1
  549. package/dist/commands/sessions/analyze.d.ts +0 -10
  550. package/dist/commands/sessions/analyze.d.ts.map +0 -1
  551. package/dist/commands/sessions/end.d.ts +0 -9
  552. package/dist/commands/sessions/end.d.ts.map +0 -1
  553. package/dist/commands/sessions/import.d.ts +0 -13
  554. package/dist/commands/sessions/import.d.ts.map +0 -1
  555. package/dist/commands/sessions/list.d.ts +0 -11
  556. package/dist/commands/sessions/list.d.ts.map +0 -1
  557. package/dist/commands/sessions/start.d.ts +0 -11
  558. package/dist/commands/sessions/start.d.ts.map +0 -1
  559. package/dist/commands/signals/report.d.ts +0 -10
  560. package/dist/commands/signals/report.d.ts.map +0 -1
  561. package/dist/commands/signals/report.test.d.ts +0 -2
  562. package/dist/commands/signals/report.test.d.ts.map +0 -1
  563. package/dist/commands/signals/report.test.js +0 -65
  564. package/dist/commands/signals/report.test.js.map +0 -1
  565. package/dist/commands/skills/export-approved.d.ts +0 -10
  566. package/dist/commands/skills/export-approved.d.ts.map +0 -1
  567. package/dist/commands/skills/install.d.ts +0 -15
  568. package/dist/commands/skills/install.d.ts.map +0 -1
  569. package/dist/commands/skills/list.d.ts +0 -11
  570. package/dist/commands/skills/list.d.ts.map +0 -1
  571. package/dist/commands/skills/publish.d.ts +0 -17
  572. package/dist/commands/skills/publish.d.ts.map +0 -1
  573. package/dist/commands/skills/search.d.ts +0 -17
  574. package/dist/commands/skills/search.d.ts.map +0 -1
  575. package/dist/commands/skills/update.d.ts +0 -10
  576. package/dist/commands/skills/update.d.ts.map +0 -1
  577. package/dist/commands/suggestions/accept.d.ts +0 -16
  578. package/dist/commands/suggestions/accept.d.ts.map +0 -1
  579. package/dist/commands/suggestions/accept.test.d.ts +0 -2
  580. package/dist/commands/suggestions/accept.test.d.ts.map +0 -1
  581. package/dist/commands/suggestions/accept.test.js +0 -52
  582. package/dist/commands/suggestions/accept.test.js.map +0 -1
  583. package/dist/commands/suggestions/dismiss.d.ts +0 -10
  584. package/dist/commands/suggestions/dismiss.d.ts.map +0 -1
  585. package/dist/commands/suggestions/list.d.ts +0 -10
  586. package/dist/commands/suggestions/list.d.ts.map +0 -1
  587. package/dist/commands/suggestions/refresh.d.ts +0 -7
  588. package/dist/commands/suggestions/refresh.d.ts.map +0 -1
  589. package/dist/dashboard/Dashboard.d.ts +0 -3
  590. package/dist/dashboard/Dashboard.d.ts.map +0 -1
  591. package/dist/dashboard/data.d.ts +0 -11
  592. package/dist/dashboard/data.d.ts.map +0 -1
  593. package/dist/dashboard/panels/friction.d.ts +0 -7
  594. package/dist/dashboard/panels/friction.d.ts.map +0 -1
  595. package/dist/dashboard/panels/insights.d.ts +0 -8
  596. package/dist/dashboard/panels/insights.d.ts.map +0 -1
  597. package/dist/dashboard/panels/instructions.d.ts +0 -9
  598. package/dist/dashboard/panels/instructions.d.ts.map +0 -1
  599. package/dist/dashboard/panels/outcomes.d.ts +0 -7
  600. package/dist/dashboard/panels/outcomes.d.ts.map +0 -1
  601. package/dist/dashboard/panels/overview.d.ts +0 -8
  602. package/dist/dashboard/panels/overview.d.ts.map +0 -1
  603. package/dist/dashboard/panels/shared.d.ts +0 -17
  604. package/dist/dashboard/panels/shared.d.ts.map +0 -1
  605. package/dist/dashboard/types.d.ts +0 -80
  606. package/dist/dashboard/types.d.ts.map +0 -1
  607. package/dist/index.d.ts +0 -2
  608. package/dist/index.d.ts.map +0 -1
  609. package/dist/lib/active-org-refresh.d.ts +0 -22
  610. package/dist/lib/active-org-refresh.d.ts.map +0 -1
  611. package/dist/lib/active-org-refresh.test.d.ts +0 -2
  612. package/dist/lib/active-org-refresh.test.d.ts.map +0 -1
  613. package/dist/lib/active-org-refresh.test.js +0 -190
  614. package/dist/lib/active-org-refresh.test.js.map +0 -1
  615. package/dist/lib/active-org.d.ts +0 -43
  616. package/dist/lib/active-org.d.ts.map +0 -1
  617. package/dist/lib/active-org.test.d.ts +0 -2
  618. package/dist/lib/active-org.test.d.ts.map +0 -1
  619. package/dist/lib/active-org.test.js +0 -147
  620. package/dist/lib/active-org.test.js.map +0 -1
  621. package/dist/lib/api-client.d.ts +0 -17
  622. package/dist/lib/api-client.d.ts.map +0 -1
  623. package/dist/lib/api-client.test.d.ts +0 -2
  624. package/dist/lib/api-client.test.d.ts.map +0 -1
  625. package/dist/lib/api-client.test.js +0 -161
  626. package/dist/lib/api-client.test.js.map +0 -1
  627. package/dist/lib/auth.d.ts +0 -27
  628. package/dist/lib/auth.d.ts.map +0 -1
  629. package/dist/lib/auth.test.d.ts +0 -2
  630. package/dist/lib/auth.test.d.ts.map +0 -1
  631. package/dist/lib/auth.test.js +0 -110
  632. package/dist/lib/auth.test.js.map +0 -1
  633. package/dist/lib/cron-registry.d.ts +0 -47
  634. package/dist/lib/cron-registry.d.ts.map +0 -1
  635. package/dist/lib/cron-registry.js +0 -102
  636. package/dist/lib/cron-registry.js.map +0 -1
  637. package/dist/lib/cron-registry.test.d.ts +0 -2
  638. package/dist/lib/cron-registry.test.d.ts.map +0 -1
  639. package/dist/lib/cron-registry.test.js +0 -136
  640. package/dist/lib/cron-registry.test.js.map +0 -1
  641. package/dist/lib/cron-runner.d.ts +0 -16
  642. package/dist/lib/cron-runner.d.ts.map +0 -1
  643. package/dist/lib/cron-runner.js +0 -68
  644. package/dist/lib/cron-runner.js.map +0 -1
  645. package/dist/lib/detect-languages.d.ts +0 -7
  646. package/dist/lib/detect-languages.d.ts.map +0 -1
  647. package/dist/lib/detect-languages.test.d.ts +0 -2
  648. package/dist/lib/detect-languages.test.d.ts.map +0 -1
  649. package/dist/lib/detect-languages.test.js +0 -29
  650. package/dist/lib/detect-languages.test.js.map +0 -1
  651. package/dist/lib/eval-analyzer.d.ts +0 -23
  652. package/dist/lib/eval-analyzer.d.ts.map +0 -1
  653. package/dist/lib/eval-benchmark.d.ts +0 -17
  654. package/dist/lib/eval-benchmark.d.ts.map +0 -1
  655. package/dist/lib/eval-conversation-handler.d.ts +0 -9
  656. package/dist/lib/eval-conversation-handler.d.ts.map +0 -1
  657. package/dist/lib/eval-executor.d.ts +0 -21
  658. package/dist/lib/eval-executor.d.ts.map +0 -1
  659. package/dist/lib/eval-executor.test.d.ts +0 -2
  660. package/dist/lib/eval-executor.test.d.ts.map +0 -1
  661. package/dist/lib/eval-executor.test.js +0 -8
  662. package/dist/lib/eval-executor.test.js.map +0 -1
  663. package/dist/lib/eval-grader.d.ts +0 -38
  664. package/dist/lib/eval-grader.d.ts.map +0 -1
  665. package/dist/lib/eval-grader.test.d.ts +0 -2
  666. package/dist/lib/eval-grader.test.d.ts.map +0 -1
  667. package/dist/lib/eval-grader.test.js +0 -8
  668. package/dist/lib/eval-grader.test.js.map +0 -1
  669. package/dist/lib/eval-meta-judge.d.ts +0 -28
  670. package/dist/lib/eval-meta-judge.d.ts.map +0 -1
  671. package/dist/lib/eval-trigger-tester.d.ts +0 -19
  672. package/dist/lib/eval-trigger-tester.d.ts.map +0 -1
  673. package/dist/lib/eval-worktree.d.ts +0 -11
  674. package/dist/lib/eval-worktree.d.ts.map +0 -1
  675. package/dist/lib/eval-worktree.test.d.ts +0 -2
  676. package/dist/lib/eval-worktree.test.d.ts.map +0 -1
  677. package/dist/lib/eval-worktree.test.js +0 -68
  678. package/dist/lib/eval-worktree.test.js.map +0 -1
  679. package/dist/lib/gateway-entry.d.ts +0 -3
  680. package/dist/lib/gateway-entry.d.ts.map +0 -1
  681. package/dist/lib/gateway-lifecycle.d.ts +0 -9
  682. package/dist/lib/gateway-lifecycle.d.ts.map +0 -1
  683. package/dist/lib/gateway.d.ts +0 -11
  684. package/dist/lib/gateway.d.ts.map +0 -1
  685. package/dist/lib/graphile-worker-runner.d.ts +0 -124
  686. package/dist/lib/graphile-worker-runner.d.ts.map +0 -1
  687. package/dist/lib/graphile-worker-runner.js +0 -526
  688. package/dist/lib/graphile-worker-runner.js.map +0 -1
  689. package/dist/lib/graphile-worker-runner.test.d.ts +0 -2
  690. package/dist/lib/graphile-worker-runner.test.d.ts.map +0 -1
  691. package/dist/lib/graphile-worker-runner.test.js +0 -153
  692. package/dist/lib/graphile-worker-runner.test.js.map +0 -1
  693. package/dist/lib/handlers/cron-close-stale-sessions.d.ts +0 -3
  694. package/dist/lib/handlers/cron-close-stale-sessions.d.ts.map +0 -1
  695. package/dist/lib/handlers/cron-data-integrity-audit.d.ts +0 -3
  696. package/dist/lib/handlers/cron-data-integrity-audit.d.ts.map +0 -1
  697. package/dist/lib/handlers/cron-refresh-skills.d.ts +0 -3
  698. package/dist/lib/handlers/cron-refresh-skills.d.ts.map +0 -1
  699. package/dist/lib/handlers/cron-refresh-skills.test.d.ts +0 -2
  700. package/dist/lib/handlers/cron-refresh-skills.test.d.ts.map +0 -1
  701. package/dist/lib/handlers/cron-refresh-skills.test.js +0 -114
  702. package/dist/lib/handlers/cron-refresh-skills.test.js.map +0 -1
  703. package/dist/lib/handlers/cron-regenerate-insights.d.ts +0 -3
  704. package/dist/lib/handlers/cron-regenerate-insights.d.ts.map +0 -1
  705. package/dist/lib/handlers/cron-regenerate-insights.js +0 -6
  706. package/dist/lib/handlers/cron-regenerate-insights.js.map +0 -1
  707. package/dist/lib/handlers/cron-suggest-instructions.d.ts +0 -3
  708. package/dist/lib/handlers/cron-suggest-instructions.d.ts.map +0 -1
  709. package/dist/lib/handlers/cron-suggest-instructions.test.d.ts +0 -2
  710. package/dist/lib/handlers/cron-suggest-instructions.test.d.ts.map +0 -1
  711. package/dist/lib/handlers/cron-suggest-instructions.test.js +0 -80
  712. package/dist/lib/handlers/cron-suggest-instructions.test.js.map +0 -1
  713. package/dist/lib/handlers/process-conversation.d.ts +0 -35
  714. package/dist/lib/handlers/process-conversation.d.ts.map +0 -1
  715. package/dist/lib/handlers/process-eval.d.ts +0 -32
  716. package/dist/lib/handlers/process-eval.d.ts.map +0 -1
  717. package/dist/lib/handlers/process-insights.d.ts +0 -39
  718. package/dist/lib/handlers/process-insights.d.ts.map +0 -1
  719. package/dist/lib/handlers/process-launch.d.ts +0 -29
  720. package/dist/lib/handlers/process-launch.d.ts.map +0 -1
  721. package/dist/lib/hooks-config.d.ts +0 -119
  722. package/dist/lib/hooks-config.d.ts.map +0 -1
  723. package/dist/lib/hooks-config.test.d.ts +0 -2
  724. package/dist/lib/hooks-config.test.d.ts.map +0 -1
  725. package/dist/lib/hooks-config.test.js +0 -231
  726. package/dist/lib/hooks-config.test.js.map +0 -1
  727. package/dist/lib/insights-prompts.d.ts +0 -13
  728. package/dist/lib/insights-prompts.d.ts.map +0 -1
  729. package/dist/lib/llm-client.d.ts +0 -26
  730. package/dist/lib/llm-client.d.ts.map +0 -1
  731. package/dist/lib/llm-client.test.d.ts +0 -2
  732. package/dist/lib/llm-client.test.d.ts.map +0 -1
  733. package/dist/lib/llm-client.test.js +0 -62
  734. package/dist/lib/llm-client.test.js.map +0 -1
  735. package/dist/lib/mirror-writer-db.d.ts +0 -12
  736. package/dist/lib/mirror-writer-db.d.ts.map +0 -1
  737. package/dist/lib/mirror-writer-db.js +0 -51
  738. package/dist/lib/mirror-writer-db.js.map +0 -1
  739. package/dist/lib/mirror-writer.d.ts +0 -35
  740. package/dist/lib/mirror-writer.d.ts.map +0 -1
  741. package/dist/lib/mirror-writer.js +0 -27
  742. package/dist/lib/mirror-writer.js.map +0 -1
  743. package/dist/lib/mirror-writer.test.d.ts +0 -2
  744. package/dist/lib/mirror-writer.test.d.ts.map +0 -1
  745. package/dist/lib/mirror-writer.test.js +0 -47
  746. package/dist/lib/mirror-writer.test.js.map +0 -1
  747. package/dist/lib/output.d.ts +0 -4
  748. package/dist/lib/output.d.ts.map +0 -1
  749. package/dist/lib/output.test.d.ts +0 -2
  750. package/dist/lib/output.test.d.ts.map +0 -1
  751. package/dist/lib/output.test.js +0 -71
  752. package/dist/lib/output.test.js.map +0 -1
  753. package/dist/lib/permanent-job-error.d.ts +0 -17
  754. package/dist/lib/permanent-job-error.d.ts.map +0 -1
  755. package/dist/lib/permanent-job-error.test.d.ts +0 -2
  756. package/dist/lib/permanent-job-error.test.d.ts.map +0 -1
  757. package/dist/lib/permanent-job-error.test.js +0 -29
  758. package/dist/lib/permanent-job-error.test.js.map +0 -1
  759. package/dist/lib/provider-aggregator.d.ts +0 -24
  760. package/dist/lib/provider-aggregator.d.ts.map +0 -1
  761. package/dist/lib/provider-aggregator.test.d.ts +0 -2
  762. package/dist/lib/provider-aggregator.test.d.ts.map +0 -1
  763. package/dist/lib/provider-aggregator.test.js +0 -103
  764. package/dist/lib/provider-aggregator.test.js.map +0 -1
  765. package/dist/lib/skills-loader.d.ts +0 -6
  766. package/dist/lib/skills-loader.d.ts.map +0 -1
  767. package/dist/lib/types.d.ts +0 -48
  768. package/dist/lib/types.d.ts.map +0 -1
  769. package/dist/lib/version-check.d.ts +0 -11
  770. package/dist/lib/version-check.d.ts.map +0 -1
  771. package/dist/test-helpers.d.ts +0 -58
  772. package/dist/test-helpers.d.ts.map +0 -1
  773. package/dist/test-helpers.js +0 -58
  774. package/dist/test-helpers.js.map +0 -1
@@ -1,285 +1,345 @@
1
- import { Flags } from '@oclif/core';
2
- import { execSync, spawnSync } from 'node:child_process';
3
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
4
- import { homedir } from 'node:os';
5
- import { join } from 'node:path';
6
- import { BaseCommand } from '../../base-command.js';
7
- import { isGatewayRunning, spawnGateway, GATEWAY_PORT } from '../../lib/gateway-lifecycle.js';
8
- import { writeCursorProxyConfig, writeCursorUserProxyConfig, writeVSCodeProxyConfig, installMacOSProxyEnv, writeVSCodeUserProxyConfig, writeCursorHooks, writeCursorUserHooks, writeCopilotHooks, } from '../../lib/hooks-config.js';
9
- import { bootstrapActiveOrg } from '../../lib/active-org-refresh.js';
10
- const CERT_PATH = join(homedir(), '.mitmproxy', 'mitmproxy-ca-cert.pem');
11
- export default class HooksInstall extends BaseCommand {
12
- static description = 'Install session tracking hooks and context capture proxy for Claude Code';
13
- static examples = [
14
- '<%= config.bin %> hooks install',
15
- '<%= config.bin %> hooks install --global',
16
- '<%= config.bin %> hooks install --no-proxy',
17
- ];
18
- static flags = {
19
- 'no-proxy': Flags.boolean({
20
- default: false,
21
- description: 'Skip proxy/gateway configuration (hooks only)',
22
- }),
23
- 'project-dir': Flags.string({
24
- description: 'Project directory to install hooks in (defaults to cwd)',
25
- }),
26
- global: Flags.boolean({
27
- char: 'g',
28
- default: false,
29
- description: 'Install hooks globally (~/.claude/settings.json) so all projects are tracked',
30
- }),
31
- };
32
- async run() {
33
- const { flags } = await this.parse(HooksInstall);
34
- const isGlobal = flags.global;
35
- const projectPath = isGlobal ? homedir() : (flags['project-dir'] ?? process.cwd());
36
- const configDir = join(projectPath, '.claude');
37
- const configPath = join(configDir, 'settings.json');
38
- const noProxy = flags['no-proxy'];
39
- if (isGlobal) {
40
- this.log(`Installing hooks globally → ${configPath}`);
41
- }
42
- // Read or create .claude/settings.json
43
- let settings = {};
44
- if (existsSync(configPath)) {
45
- settings = JSON.parse(readFileSync(configPath, 'utf-8'));
46
- }
47
- // ── 1. Remove legacy hooks (session data now comes from local file providers) ──
48
- if (settings.hooks) {
49
- delete settings.hooks;
50
- this.log('[OK] Removed legacy session hooks (no longer needed)');
51
- }
52
- // ── 2. Configure gateway + proxy ──────────────────────────────
53
- if (!noProxy) {
54
- // Ensure mitmproxy is available
55
- const hasMitmproxy = this.findBinary('mitmdump');
56
- if (!hasMitmproxy) {
57
- this.log('');
58
- this.log('[!!] mitmproxy not found installing...');
59
- const installed = this.installMitmproxy();
60
- if (!installed) {
61
- this.log('[!!] Could not install mitmproxy. Skipping proxy config.');
62
- this.log(' Install manually: pipx install mitmproxy');
63
- this.log(' Then re-run: rulemetric hooks install');
64
- }
65
- }
66
- // Generate CA cert if missing
67
- if (!existsSync(CERT_PATH)) {
68
- this.log('[..] Generating CA certificate...');
69
- const mitmdump = this.findBinary('mitmdump');
70
- if (mitmdump) {
71
- spawnSync(mitmdump, ['--set', 'listen_port=0', '-q'], {
72
- timeout: 5000,
73
- stdio: 'ignore',
74
- });
75
- if (existsSync(CERT_PATH)) {
76
- this.log(`[OK] CA certificate generated at ${CERT_PATH}`);
77
- }
78
- else {
79
- this.log('[!!] Could not generate CA cert');
80
- }
81
- }
82
- }
83
- else {
84
- this.log('[OK] CA certificate found');
85
- }
86
- // Trust CA cert in system store (if not already trusted)
87
- if (existsSync(CERT_PATH) && !this.isCACertTrusted()) {
88
- this.log('[..] Installing CA certificate into system trust store (requires admin)...');
89
- const trusted = this.trustCACert();
90
- if (trusted) {
91
- this.log('[OK] CA certificate trusted by system');
92
- }
93
- else {
94
- this.log('[!!] Could not install CA cert automatically.');
95
- if (process.platform === 'darwin') {
96
- this.log(` Run manually: sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ${CERT_PATH}`);
97
- }
98
- else if (process.platform === 'linux') {
99
- this.log(` Run manually: sudo cp ${CERT_PATH} /usr/local/share/ca-certificates/mitmproxy-ca.crt && sudo update-ca-certificates`);
100
- }
101
- }
102
- }
103
- else if (existsSync(CERT_PATH)) {
104
- this.log('[OK] CA certificate already trusted');
105
- }
106
- // Set permanent HTTPS_PROXY and NODE_EXTRA_CA_CERTS in settings.json
107
- // These point to the gateway (always running), not mitmproxy directly
108
- const env = (settings.env ?? {});
109
- env.HTTPS_PROXY = `http://localhost:${GATEWAY_PORT}`;
110
- // Bypass proxy for non-Anthropic traffic (Supabase auth, npm, etc.)
111
- env.NO_PROXY = 'localhost,127.0.0.1,*.supabase.co,*.supabase.in';
112
- if (existsSync(CERT_PATH)) {
113
- env.NODE_EXTRA_CA_CERTS = CERT_PATH;
114
- }
115
- settings.env = env;
116
- this.log(`[OK] HTTPS_PROXY set to gateway on :${GATEWAY_PORT} (permanent)`);
117
- // Configure Cursor proxy (if .cursor/ exists)
118
- const cursorProxy = writeCursorProxyConfig(projectPath, GATEWAY_PORT, CERT_PATH);
119
- if (cursorProxy) {
120
- this.log('[OK] Cursor proxy configured .cursor/settings.json');
121
- }
122
- // Configure VS Code proxy for Copilot capture (workspace settings)
123
- const vscodeProxy = writeVSCodeProxyConfig(projectPath, GATEWAY_PORT, CERT_PATH);
124
- if (vscodeProxy) {
125
- this.log('[OK] VS Code workspace proxy configured → .vscode/settings.json');
126
- }
127
- // Set http.proxy in VS Code user settings (workspace-level is silently ignored
128
- // for http.proxy due to APPLICATION scope — microsoft/vscode#236932)
129
- const vscodeUserProxy = writeVSCodeUserProxyConfig(GATEWAY_PORT);
130
- if (vscodeUserProxy) {
131
- this.log('[OK] VS Code user proxy configured → ~/Library/Application Support/Code/User/settings.json');
132
- }
133
- // Same for Cursor (VS Code fork inherits the APPLICATION-scope restriction).
134
- const cursorUserProxy = writeCursorUserProxyConfig(GATEWAY_PORT);
135
- if (cursorUserProxy) {
136
- this.log('[OK] Cursor user proxy configured → ~/Library/Application Support/Cursor/User/settings.json');
137
- }
138
- // Set HTTPS_PROXY for all GUI apps via launchctl + LaunchAgent (macOS)
139
- // Copilot reads process.env.HTTPS_PROXY directly — VS Code settings alone
140
- // are insufficient because workspace http.proxy is ignored and extensions
141
- // may bypass vscode-proxy-agent (microsoft/vscode#12588)
142
- const macProxy = installMacOSProxyEnv(GATEWAY_PORT, CERT_PATH);
143
- if (macProxy) {
144
- this.log('[OK] HTTPS_PROXY set for GUI apps (launchctl + LaunchAgent)');
145
- }
146
- // Start gateway if not already running
147
- if (isGatewayRunning()) {
148
- this.log('[OK] Gateway already running');
149
- }
150
- else {
151
- try {
152
- const pid = spawnGateway(this.config.version);
153
- this.log(`[OK] Gateway started (PID ${pid})`);
154
- }
155
- catch (err) {
156
- this.log(`[!!] Could not start gateway: ${err.message}`);
157
- this.log(' The session-start hook will auto-start it on next Claude Code session.');
158
- }
159
- }
160
- }
161
- // ── 3. Write Cursor + Copilot hook configs ─────────────────────
162
- // These are independent of the proxy (they capture editor lifecycle
163
- // events, not LLM traffic), so they run regardless of --no-proxy. Both
164
- // helpers no-op when the target directory (.cursor/ or .github/)
165
- // doesn't exist.
166
- if (!isGlobal) {
167
- const cursorHooks = writeCursorHooks(projectPath);
168
- if (cursorHooks) {
169
- this.log(`[OK] Cursor hooks configured → ${cursorHooks}`);
170
- }
171
- const copilotHooks = writeCopilotHooks(projectPath);
172
- if (copilotHooks) {
173
- this.log(`[OK] Copilot Agent hooks configured → ${copilotHooks}`);
174
- }
175
- }
176
- // User-level Cursor hooks (~/.cursor/hooks.json) are required for global
177
- // capture because Cursor's chat traffic bypasses HTTP proxies (HTTP/2
178
- // multiplexed persistent connection — see cursor.com/docs/hooks). Without
179
- // hooks, we get zero Cursor visibility for sessions outside this project.
180
- // Runs in both --global and per-project modes since the user file is
181
- // machine-wide either way.
182
- const cursorUserHooks = writeCursorUserHooks();
183
- if (cursorUserHooks) {
184
- this.log(`[OK] Cursor user hooks configured → ${cursorUserHooks}`);
185
- }
186
- // ── 4. Write Claude Code settings ─────────────────────────────
187
- mkdirSync(configDir, { recursive: true });
188
- writeFileSync(configPath, JSON.stringify(settings, null, 2) + '\n');
189
- this.log('');
190
- this.log('Setup complete! Next steps:');
191
- if (isGlobal) {
192
- this.log(' 1. Install always-on API: rulemetric service install');
193
- this.log(' 2. Start Claude Code in any project — all sessions tracked automatically');
194
- this.log('');
195
- this.log('The API service starts on login and restarts on crash.');
1
+ import {
2
+ STATUSLINE_SETTINGS_VALUE,
3
+ isStatuslineShimInstalled,
4
+ readCurrentStatusLine,
5
+ writeStatuslineShim
6
+ } from "../../chunk-PHLMIZKM.js";
7
+ import {
8
+ detectTmux
9
+ } from "../../chunk-BO76WKJR.js";
10
+ import {
11
+ installMacOSProxyEnv,
12
+ writeAntigravityHooks,
13
+ writeAntigravityUserHooks,
14
+ writeCopilotHooks,
15
+ writeCursorHooks,
16
+ writeCursorProxyConfig,
17
+ writeCursorUserHooks,
18
+ writeCursorUserProxyConfig,
19
+ writeVSCodeProxyConfig,
20
+ writeVSCodeUserProxyConfig
21
+ } from "../../chunk-L674RNKQ.js";
22
+ import {
23
+ GATEWAY_PORT,
24
+ isGatewayRunning,
25
+ spawnGateway
26
+ } from "../../chunk-FTJRMUID.js";
27
+ import "../../chunk-KRBQLMOP.js";
28
+ import {
29
+ BaseCommand
30
+ } from "../../chunk-S56LOTGQ.js";
31
+ import "../../chunk-OGVORIFM.js";
32
+ import {
33
+ bootstrapActiveOrg
34
+ } from "../../chunk-2AM54TUK.js";
35
+ import "../../chunk-EJOI2ZGU.js";
36
+ import "../../chunk-KZRFUXGF.js";
37
+ import "../../chunk-EKJ2CABV.js";
38
+ import "../../chunk-NSBPE2FW.js";
39
+
40
+ // src/commands/hooks/install.ts
41
+ import { Flags } from "@oclif/core";
42
+ import { execFileSync, execSync, spawnSync } from "node:child_process";
43
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
44
+ import { homedir } from "node:os";
45
+ import { join } from "node:path";
46
+ function isGatewayLaunchdManaged() {
47
+ try {
48
+ execFileSync("launchctl", ["list", "com.rulemetric.gateway"], {
49
+ stdio: ["ignore", "pipe", "pipe"]
50
+ });
51
+ return true;
52
+ } catch {
53
+ return false;
54
+ }
55
+ }
56
+ var CERT_PATH = join(homedir(), ".mitmproxy", "mitmproxy-ca-cert.pem");
57
+ var HooksInstall = class _HooksInstall extends BaseCommand {
58
+ static description = "Install session tracking hooks and context capture proxy for Claude Code";
59
+ static examples = [
60
+ "<%= config.bin %> hooks install",
61
+ "<%= config.bin %> hooks install --global",
62
+ "<%= config.bin %> hooks install --no-proxy"
63
+ ];
64
+ static flags = {
65
+ "no-proxy": Flags.boolean({
66
+ default: false,
67
+ description: "Skip proxy/gateway configuration (hooks only)"
68
+ }),
69
+ "project-dir": Flags.string({
70
+ description: "Project directory to install hooks in (defaults to cwd)"
71
+ }),
72
+ global: Flags.boolean({
73
+ char: "g",
74
+ default: false,
75
+ description: "Install hooks globally (~/.claude/settings.json) so all projects are tracked"
76
+ }),
77
+ "statusline-usage": Flags.boolean({
78
+ default: false,
79
+ description: "Install the statusline shim so Claude Code pushes live rate_limits on every refresh (makes /usage rings update in real time without needing the proxy)"
80
+ })
81
+ };
82
+ async run() {
83
+ const { flags } = await this.parse(_HooksInstall);
84
+ const isGlobal = flags.global;
85
+ const projectPath = isGlobal ? homedir() : flags["project-dir"] ?? process.cwd();
86
+ const configDir = join(projectPath, ".claude");
87
+ const configPath = join(configDir, "settings.json");
88
+ const noProxy = flags["no-proxy"];
89
+ if (isGlobal) {
90
+ this.log(`Installing hooks globally \u2192 ${configPath}`);
91
+ }
92
+ let settings = {};
93
+ if (existsSync(configPath)) {
94
+ settings = JSON.parse(readFileSync(configPath, "utf-8"));
95
+ }
96
+ if (settings.hooks && typeof settings.hooks === "object") {
97
+ const hooks = settings.hooks;
98
+ let removed = 0;
99
+ for (const event of Object.keys(hooks)) {
100
+ const entries = hooks[event];
101
+ if (!Array.isArray(entries)) continue;
102
+ const kept = entries.filter((entry) => {
103
+ const isRulemetric = entry?.hooks?.some((h) => typeof h?.command === "string" && h.command.includes("rulemetric"));
104
+ if (isRulemetric) removed += 1;
105
+ return !isRulemetric;
106
+ });
107
+ if (kept.length === 0) delete hooks[event];
108
+ else hooks[event] = kept;
109
+ }
110
+ if (Object.keys(hooks).length === 0) delete settings.hooks;
111
+ if (removed > 0) this.log(`[OK] Removed ${removed} legacy rulemetric session hook(s) (no longer needed)`);
112
+ }
113
+ if (!noProxy) {
114
+ const hasMitmproxy = this.findBinary("mitmdump");
115
+ if (!hasMitmproxy) {
116
+ this.log("");
117
+ this.log("[!!] mitmproxy not found \u2014 installing...");
118
+ const installed = this.installMitmproxy();
119
+ if (!installed) {
120
+ this.log("[!!] Could not install mitmproxy. Skipping proxy config.");
121
+ this.log(" Install manually: pipx install mitmproxy");
122
+ this.log(" Then re-run: rulemetric hooks install");
196
123
  }
197
- else if (!noProxy) {
198
- this.log(' 1. Start the capture proxy: rulemetric proxy start');
199
- this.log(' 2. Start Claude Code — context will be captured automatically');
200
- this.log('');
201
- this.log('The gateway routes traffic direct when the proxy is off — Claude Code always works.');
202
- this.log('');
203
- this.log('To capture traffic from other clients (Python, curl, etc.):');
204
- this.log(' eval "$(rulemetric proxy env --all)"');
124
+ }
125
+ if (!existsSync(CERT_PATH)) {
126
+ this.log("[..] Generating CA certificate...");
127
+ const mitmdump = this.findBinary("mitmdump");
128
+ if (mitmdump) {
129
+ spawnSync(mitmdump, ["--set", "listen_port=0", "-q"], {
130
+ timeout: 5e3,
131
+ stdio: "ignore"
132
+ });
133
+ if (existsSync(CERT_PATH)) {
134
+ this.log(`[OK] CA certificate generated at ${CERT_PATH}`);
135
+ } else {
136
+ this.log("[!!] Could not generate CA cert");
137
+ }
205
138
  }
206
- else {
207
- this.log(' 1. Start Claude Code — session events will be tracked');
208
- this.log(' (Run without --no-proxy to also capture system prompts)');
139
+ } else {
140
+ this.log("[OK] CA certificate found");
141
+ }
142
+ if (existsSync(CERT_PATH) && !this.isCACertTrusted()) {
143
+ this.log("[..] Installing CA certificate into system trust store (requires admin)...");
144
+ const trusted = this.trustCACert();
145
+ if (trusted) {
146
+ this.log("[OK] CA certificate trusted by system");
147
+ } else {
148
+ this.log("[!!] Could not install CA cert automatically.");
149
+ if (process.platform === "darwin") {
150
+ this.log(` Run manually: sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ${CERT_PATH}`);
151
+ } else if (process.platform === "linux") {
152
+ this.log(` Run manually: sudo cp ${CERT_PATH} /usr/local/share/ca-certificates/mitmproxy-ca.crt && sudo update-ca-certificates`);
153
+ }
209
154
  }
210
- // Ensure the active-org cache is populated before the user starts a
211
- // Claude Code session. BaseCommand fired the guarded refresh earlier
212
- // but may have raced with auth init or hit a transient error; this
213
- // explicit retry guarantees the cache reflects the user's current
214
- // active_org_id at the end of `hooks install`.
215
- await bootstrapActiveOrg();
216
- }
217
- findBinary(name) {
155
+ } else if (existsSync(CERT_PATH)) {
156
+ this.log("[OK] CA certificate already trusted");
157
+ }
158
+ const env = settings.env ?? {};
159
+ env.HTTPS_PROXY = `http://localhost:${GATEWAY_PORT}`;
160
+ env.NO_PROXY = "localhost,127.0.0.1,*.supabase.co,*.supabase.in";
161
+ if (existsSync(CERT_PATH)) {
162
+ env.NODE_EXTRA_CA_CERTS = CERT_PATH;
163
+ }
164
+ settings.env = env;
165
+ this.log(`[OK] HTTPS_PROXY set to gateway on :${GATEWAY_PORT} (permanent)`);
166
+ const cursorProxy = writeCursorProxyConfig(projectPath, GATEWAY_PORT, CERT_PATH);
167
+ if (cursorProxy) {
168
+ this.log("[OK] Cursor proxy configured \u2192 .cursor/settings.json");
169
+ }
170
+ const vscodeProxy = writeVSCodeProxyConfig(projectPath, GATEWAY_PORT, CERT_PATH);
171
+ if (vscodeProxy) {
172
+ this.log("[OK] VS Code workspace proxy configured \u2192 .vscode/settings.json");
173
+ }
174
+ const vscodeUserProxy = writeVSCodeUserProxyConfig(GATEWAY_PORT);
175
+ if (vscodeUserProxy) {
176
+ this.log("[OK] VS Code user proxy configured \u2192 ~/Library/Application Support/Code/User/settings.json");
177
+ }
178
+ const cursorUserProxy = writeCursorUserProxyConfig(GATEWAY_PORT);
179
+ if (cursorUserProxy) {
180
+ this.log("[OK] Cursor user proxy configured \u2192 ~/Library/Application Support/Cursor/User/settings.json");
181
+ }
182
+ const macProxy = installMacOSProxyEnv(GATEWAY_PORT, CERT_PATH);
183
+ if (macProxy) {
184
+ this.log("[OK] HTTPS_PROXY set for GUI apps (launchctl + LaunchAgent)");
185
+ }
186
+ if (isGatewayLaunchdManaged()) {
187
+ this.log("[OK] Gateway managed by launchd (com.rulemetric.gateway)");
188
+ } else if (isGatewayRunning()) {
189
+ this.log("[OK] Gateway already running");
190
+ } else {
218
191
  try {
219
- return execSync(`which ${name} 2>/dev/null`, { encoding: 'utf-8' }).trim() || null;
220
- }
221
- catch {
222
- return null;
192
+ const pid = spawnGateway(this.config.version);
193
+ this.log(`[OK] Gateway started (PID ${pid})`);
194
+ } catch (err) {
195
+ this.log(`[!!] Could not start gateway: ${err.message}`);
196
+ this.log(" The session-start hook will auto-start it on next Claude Code session.");
223
197
  }
198
+ }
224
199
  }
225
- installMitmproxy() {
226
- for (const [cmd, args] of [
227
- ['pipx', ['install', 'mitmproxy']],
228
- ['uv', ['tool', 'install', 'mitmproxy']],
229
- ['brew', ['install', 'mitmproxy']],
230
- ]) {
231
- if (this.findBinary(cmd)) {
232
- this.log(` Installing via ${cmd}...`);
233
- const result = spawnSync(cmd, [...args], { stdio: 'inherit' });
234
- if (result.status === 0)
235
- return true;
236
- }
237
- }
238
- return false;
200
+ if (!isGlobal) {
201
+ const cursorHooks = writeCursorHooks(projectPath);
202
+ if (cursorHooks) {
203
+ this.log(`[OK] Cursor hooks configured \u2192 ${cursorHooks}`);
204
+ }
205
+ const copilotHooks = writeCopilotHooks(projectPath);
206
+ if (copilotHooks) {
207
+ this.log(`[OK] Copilot Agent hooks configured \u2192 ${copilotHooks}`);
208
+ }
209
+ const antigravityHooks = writeAntigravityHooks(projectPath);
210
+ if (antigravityHooks) {
211
+ this.log(`[OK] Antigravity workspace hooks configured \u2192 ${antigravityHooks}`);
212
+ }
239
213
  }
240
- isCACertTrusted() {
241
- if (process.platform === 'darwin') {
242
- const result = spawnSync('security', ['verify-cert', '-c', CERT_PATH], {
243
- stdio: 'pipe',
244
- });
245
- return result.status === 0;
246
- }
247
- if (process.platform === 'linux') {
248
- return existsSync('/usr/local/share/ca-certificates/mitmproxy-ca.crt');
249
- }
250
- if (process.platform === 'win32') {
251
- // On Windows, check if cert is in the Root store
252
- const result = spawnSync('certutil', ['-verify', CERT_PATH], {
253
- stdio: 'pipe',
254
- });
255
- return result.status === 0;
256
- }
257
- return false;
214
+ const antigravityUserHooks = writeAntigravityUserHooks();
215
+ if (antigravityUserHooks) {
216
+ this.log(`[OK] Antigravity user hooks configured \u2192 ${antigravityUserHooks}`);
258
217
  }
259
- trustCACert() {
260
- if (process.platform === 'darwin') {
261
- const result = spawnSync('sudo', [
262
- 'security', 'add-trusted-cert', '-d', '-r', 'trustRoot',
263
- '-k', '/Library/Keychains/System.keychain', CERT_PATH,
264
- ], { stdio: 'inherit' });
265
- return result.status === 0;
266
- }
267
- if (process.platform === 'linux') {
268
- const cp = spawnSync('sudo', [
269
- 'cp', CERT_PATH, '/usr/local/share/ca-certificates/mitmproxy-ca.crt',
270
- ], { stdio: 'inherit' });
271
- if (cp.status !== 0)
272
- return false;
273
- const update = spawnSync('sudo', ['update-ca-certificates'], { stdio: 'inherit' });
274
- return update.status === 0;
275
- }
276
- if (process.platform === 'win32') {
277
- const result = spawnSync('certutil', [
278
- '-addstore', '-f', 'Root', CERT_PATH,
279
- ], { stdio: 'inherit' });
280
- return result.status === 0;
218
+ const cursorUserHooks = writeCursorUserHooks();
219
+ if (cursorUserHooks) {
220
+ this.log(`[OK] Cursor user hooks configured \u2192 ${cursorUserHooks}`);
221
+ }
222
+ if (flags["statusline-usage"]) {
223
+ if (isStatuslineShimInstalled(settings)) {
224
+ this.log("[OK] Statusline shim already installed");
225
+ } else {
226
+ const prevCmd = readCurrentStatusLine(settings);
227
+ writeStatuslineShim(prevCmd);
228
+ settings.statusLine = STATUSLINE_SETTINGS_VALUE;
229
+ if (prevCmd) {
230
+ this.log(`[OK] Statusline shim installed \u2192 ${STATUSLINE_SETTINGS_VALUE.command} (chains to: ${prevCmd})`);
231
+ } else {
232
+ this.log(`[OK] Statusline shim installed \u2192 ${STATUSLINE_SETTINGS_VALUE.command}`);
281
233
  }
282
- return false;
234
+ this.log(" Rate-limit rings will now update on Claude Code's statusline refresh cadence");
235
+ }
283
236
  }
284
- }
285
- //# sourceMappingURL=install.js.map
237
+ mkdirSync(configDir, { recursive: true });
238
+ writeFileSync(configPath, JSON.stringify(settings, null, 2) + "\n");
239
+ this.log("");
240
+ this.log("Setup complete! Next steps:");
241
+ if (isGlobal) {
242
+ this.log(" 1. Install always-on API: rulemetric service install");
243
+ this.log(" 2. Start Claude Code in any project \u2014 all sessions tracked automatically");
244
+ this.log("");
245
+ this.log("The API service starts on login and restarts on crash.");
246
+ } else if (!noProxy) {
247
+ this.log(" 1. Start the capture proxy: rulemetric proxy start");
248
+ this.log(" 2. Start Claude Code \u2014 context will be captured automatically");
249
+ this.log("");
250
+ this.log("The gateway routes traffic direct when the proxy is off \u2014 Claude Code always works.");
251
+ this.log("");
252
+ this.log("To capture traffic from other clients (Python, curl, etc.):");
253
+ this.log(' eval "$(rulemetric proxy env --all)"');
254
+ } else {
255
+ this.log(" 1. Start Claude Code \u2014 session events will be tracked");
256
+ this.log(" (Run without --no-proxy to also capture system prompts)");
257
+ }
258
+ await bootstrapActiveOrg();
259
+ const tmux = await detectTmux();
260
+ this.log("");
261
+ if (tmux.available) {
262
+ this.log(`[OK] tmux found${tmux.version ? ` (v${tmux.version})` : ""} \u2014 live send enabled`);
263
+ } else {
264
+ this.log("[!!] tmux not found \u2014 live send will fall back to opening Terminal. Install with: brew install tmux");
265
+ }
266
+ }
267
+ findBinary(name) {
268
+ try {
269
+ return execSync(`which ${name} 2>/dev/null`, { encoding: "utf-8" }).trim() || null;
270
+ } catch {
271
+ return null;
272
+ }
273
+ }
274
+ installMitmproxy() {
275
+ for (const [cmd, args] of [
276
+ ["pipx", ["install", "mitmproxy"]],
277
+ ["uv", ["tool", "install", "mitmproxy"]],
278
+ ["brew", ["install", "mitmproxy"]]
279
+ ]) {
280
+ if (this.findBinary(cmd)) {
281
+ this.log(` Installing via ${cmd}...`);
282
+ const result = spawnSync(cmd, [...args], { stdio: "inherit" });
283
+ if (result.status === 0) return true;
284
+ }
285
+ }
286
+ return false;
287
+ }
288
+ isCACertTrusted() {
289
+ if (process.platform === "darwin") {
290
+ const result = spawnSync("security", ["verify-cert", "-c", CERT_PATH], {
291
+ stdio: "pipe"
292
+ });
293
+ return result.status === 0;
294
+ }
295
+ if (process.platform === "linux") {
296
+ return existsSync("/usr/local/share/ca-certificates/mitmproxy-ca.crt");
297
+ }
298
+ if (process.platform === "win32") {
299
+ const result = spawnSync("certutil", ["-verify", CERT_PATH], {
300
+ stdio: "pipe"
301
+ });
302
+ return result.status === 0;
303
+ }
304
+ return false;
305
+ }
306
+ trustCACert() {
307
+ if (process.platform === "darwin") {
308
+ const result = spawnSync("sudo", [
309
+ "security",
310
+ "add-trusted-cert",
311
+ "-d",
312
+ "-r",
313
+ "trustRoot",
314
+ "-k",
315
+ "/Library/Keychains/System.keychain",
316
+ CERT_PATH
317
+ ], { stdio: "inherit" });
318
+ return result.status === 0;
319
+ }
320
+ if (process.platform === "linux") {
321
+ const cp = spawnSync("sudo", [
322
+ "cp",
323
+ CERT_PATH,
324
+ "/usr/local/share/ca-certificates/mitmproxy-ca.crt"
325
+ ], { stdio: "inherit" });
326
+ if (cp.status !== 0) return false;
327
+ const update = spawnSync("sudo", ["update-ca-certificates"], { stdio: "inherit" });
328
+ return update.status === 0;
329
+ }
330
+ if (process.platform === "win32") {
331
+ const result = spawnSync("certutil", [
332
+ "-addstore",
333
+ "-f",
334
+ "Root",
335
+ CERT_PATH
336
+ ], { stdio: "inherit" });
337
+ return result.status === 0;
338
+ }
339
+ return false;
340
+ }
341
+ };
342
+ export {
343
+ HooksInstall as default
344
+ };
345
+ //# sourceMappingURL=install.js.map