@rulemetric/cli 0.7.3 → 0.7.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (550) hide show
  1. package/README.md +10 -8
  2. package/dist/base-command.js +1 -14
  3. package/dist/chunk-2JRDG4LJ.js +31 -0
  4. package/dist/chunk-2TC6WCUT.js +34 -0
  5. package/dist/chunk-2WLVDSAP.js +2 -0
  6. package/dist/chunk-32EEBARV.js +1 -0
  7. package/dist/chunk-3AV3GTMP.js +1 -0
  8. package/dist/chunk-43YBXX7R.js +1 -0
  9. package/dist/chunk-4Z5ECCJE.js +1 -0
  10. package/dist/chunk-5RBLIVBF.js +1 -0
  11. package/dist/chunk-67QCYUJU.js +1 -0
  12. package/dist/chunk-6QKI756T.js +2 -0
  13. package/dist/chunk-6V4WM73L.js +1 -0
  14. package/dist/chunk-6XEC6474.js +1 -0
  15. package/dist/chunk-7DFNBRLY.js +61 -0
  16. package/dist/chunk-ARNZQBMX.js +1 -0
  17. package/dist/chunk-AYUJY37O.js +5 -0
  18. package/dist/chunk-CADKBP3D.js +58 -0
  19. package/dist/chunk-CDI5CCHU.js +1 -0
  20. package/dist/chunk-CNQ5DTNC.js +1 -0
  21. package/dist/chunk-DCLWFGEA.js +1 -0
  22. package/dist/chunk-DNF4HDI6.js +14 -0
  23. package/dist/chunk-DPFNJZUO.js +1 -0
  24. package/dist/chunk-DSO2U4Y6.js +56 -0
  25. package/dist/chunk-DVN7GFJG.js +1 -0
  26. package/dist/chunk-G63KMH6U.js +1 -0
  27. package/dist/chunk-G6XGDHGC.js +2 -0
  28. package/dist/chunk-GBMF3TP6.js +1 -0
  29. package/dist/chunk-GY5IJ4RS.js +1 -0
  30. package/dist/chunk-H2ORWIEY.js +1 -0
  31. package/dist/chunk-H4SV7FN4.js +1 -0
  32. package/dist/chunk-HS7X43XE.js +24 -0
  33. package/dist/{chunk-OQBBVTDG.js → chunk-I2DZGJRR.js} +6 -71
  34. package/dist/chunk-IZTIYR5Q.js +2 -0
  35. package/dist/chunk-JAPCCEKF.js +3 -0
  36. package/dist/chunk-JQTGQXUX.js +1 -0
  37. package/dist/chunk-KAF3CYRW.js +9 -0
  38. package/dist/chunk-KKDHD4XA.js +2 -0
  39. package/dist/chunk-KV325CXF.js +33 -0
  40. package/dist/chunk-MGHFDHHM.js +1 -0
  41. package/dist/chunk-MODXEGCU.js +1 -0
  42. package/dist/chunk-MVM6OGAF.js +4 -0
  43. package/dist/chunk-N7ODX6PO.js +1 -0
  44. package/dist/chunk-N7TGRFVZ.js +70 -0
  45. package/dist/chunk-NBTC5FNV.js +1 -0
  46. package/dist/chunk-NEACEHQD.js +1 -0
  47. package/dist/chunk-NJ5UED3H.js +1 -0
  48. package/dist/chunk-NVKX36YN.js +3 -0
  49. package/dist/chunk-O2SDD2WW.js +1 -0
  50. package/dist/chunk-O6C2UGBY.js +7 -0
  51. package/dist/chunk-OMXUK4M6.js +1 -0
  52. package/dist/chunk-PPKPCXJD.js +4 -0
  53. package/dist/{chunk-XZXS2W24.js → chunk-QFVGUZDO.js} +11 -57
  54. package/dist/chunk-RDET7CKR.js +1 -0
  55. package/dist/chunk-RQ424GI6.js +5 -0
  56. package/dist/chunk-RSKQRVPJ.js +1 -0
  57. package/dist/chunk-RTWRHIKY.js +7 -0
  58. package/dist/chunk-SZ62CP55.js +1 -0
  59. package/dist/chunk-TDD7IOV2.js +1 -0
  60. package/dist/chunk-TIOKY2IA.js +1 -0
  61. package/dist/chunk-TQMG647B.js +15 -0
  62. package/dist/chunk-TU2AR6XO.js +1 -0
  63. package/dist/chunk-U6ABMRT3.js +9 -0
  64. package/dist/chunk-U6XEU573.js +1 -0
  65. package/dist/chunk-UF6US7VU.js +1 -0
  66. package/dist/chunk-V44SRRYR.js +1 -0
  67. package/dist/chunk-V5U3E4BZ.js +1 -0
  68. package/dist/chunk-VAXRCSSH.js +2 -0
  69. package/dist/chunk-VLOX6KOM.js +1 -0
  70. package/dist/chunk-VUGRXM7R.js +1 -0
  71. package/dist/chunk-W2MOTOQE.js +1 -0
  72. package/dist/chunk-W2MV25SB.js +1 -0
  73. package/dist/chunk-WLVQJH4E.js +1 -0
  74. package/dist/chunk-WSCK4WNK.js +1 -0
  75. package/dist/chunk-XICLXXRH.js +1 -0
  76. package/dist/chunk-XXDZJ6YI.js +1 -0
  77. package/dist/chunk-ZL4MZMUK.js +34 -0
  78. package/dist/chunk-ZLLER3HP.js +1 -0
  79. package/dist/chunk-ZR3MUNLS.js +1 -0
  80. package/dist/chunk-ZXF5NE54.js +1 -0
  81. package/dist/commands/antigravity/backfill.js +2 -136
  82. package/dist/commands/auth/create-key.js +1 -52
  83. package/dist/commands/auth/login.js +1 -85
  84. package/dist/commands/auth/logout.js +1 -29
  85. package/dist/commands/auth/revoke-key.js +4 -33
  86. package/dist/commands/auth/signup.js +1 -89
  87. package/dist/commands/auth/status.js +1 -42
  88. package/dist/commands/catalog/index.js +2 -52
  89. package/dist/commands/catalog/recommend.js +3 -43
  90. package/dist/commands/convert.js +1 -75
  91. package/dist/commands/converters.js +1 -54
  92. package/dist/commands/crons/list.js +1 -41
  93. package/dist/commands/crons/run.js +2 -76
  94. package/dist/commands/dashboard.js +1 -46
  95. package/dist/commands/diagnostics.js +1 -117
  96. package/dist/commands/eval-targets/create.js +1 -53
  97. package/dist/commands/eval-targets/list.js +1 -54
  98. package/dist/commands/evals/agent.js +3 -310
  99. package/dist/commands/evals/benchmark.js +6 -73
  100. package/dist/commands/evals/compare.js +13 -96
  101. package/dist/commands/evals/create.js +1 -67
  102. package/dist/commands/evals/optimize-description.js +25 -239
  103. package/dist/commands/evals/optimize.js +5 -211
  104. package/dist/commands/evals/run.js +3 -183
  105. package/dist/commands/gateway/ensure.js +1 -104
  106. package/dist/commands/hooks/emit-instructions.js +1 -25
  107. package/dist/commands/hooks/install.js +1 -442
  108. package/dist/commands/hooks/run.js +3 -81
  109. package/dist/commands/hooks/uninstall.js +2 -156
  110. package/dist/commands/import.js +1 -66
  111. package/dist/commands/instructions/create.js +1 -74
  112. package/dist/commands/instructions/delete.js +1 -55
  113. package/dist/commands/instructions/fork.js +1 -34
  114. package/dist/commands/instructions/get.js +1 -68
  115. package/dist/commands/instructions/list.js +1 -65
  116. package/dist/commands/instructions/promote.js +1 -42
  117. package/dist/commands/instructions/pull.js +1 -39
  118. package/dist/commands/instructions/upstream.js +1 -38
  119. package/dist/commands/instructions/versions.js +1 -53
  120. package/dist/commands/launcher.js +1 -40
  121. package/dist/commands/org/current.js +1 -77
  122. package/dist/commands/org/list.js +1 -52
  123. package/dist/commands/org/switch.js +1 -71
  124. package/dist/commands/packs/add-instruction.js +1 -37
  125. package/dist/commands/packs/apply.js +1 -39
  126. package/dist/commands/packs/create.js +1 -50
  127. package/dist/commands/packs/fork.js +1 -34
  128. package/dist/commands/packs/get.js +3 -56
  129. package/dist/commands/packs/list.js +1 -66
  130. package/dist/commands/packs/remove-instruction.js +1 -35
  131. package/dist/commands/proxy/env.js +3 -131
  132. package/dist/commands/proxy/logs.js +3 -85
  133. package/dist/commands/proxy/restart.js +1 -35
  134. package/dist/commands/proxy/setup.js +17 -454
  135. package/dist/commands/proxy/start.js +10 -333
  136. package/dist/commands/proxy/status.js +1 -78
  137. package/dist/commands/proxy/stop.js +1 -94
  138. package/dist/commands/research/backfill.js +1 -59
  139. package/dist/commands/research/tail-transcript.js +1 -70
  140. package/dist/commands/service/install.js +57 -796
  141. package/dist/commands/service/status.js +1 -180
  142. package/dist/commands/service/uninstall.js +1 -119
  143. package/dist/commands/sessions/analyze.js +1 -48
  144. package/dist/commands/sessions/end.js +2 -85
  145. package/dist/commands/sessions/import.js +1 -46
  146. package/dist/commands/sessions/list.js +1 -48
  147. package/dist/commands/sessions/start.js +3 -90
  148. package/dist/commands/setup.js +3 -150
  149. package/dist/commands/skills/export-approved.js +1 -46
  150. package/dist/commands/skills/install.js +4 -107
  151. package/dist/commands/skills/list.js +4 -65
  152. package/dist/commands/skills/publish.js +2 -98
  153. package/dist/commands/skills/search.js +3 -72
  154. package/dist/commands/skills/update.js +3 -55
  155. package/dist/commands/suggestions/accept.js +8 -84
  156. package/dist/commands/suggestions/dismiss.js +1 -45
  157. package/dist/commands/suggestions/list.js +2 -61
  158. package/dist/commands/suggestions/refresh.js +1 -27
  159. package/dist/cursor-T7AMCMKS.js +13 -0
  160. package/dist/dashboard/Dashboard.js +1 -243
  161. package/dist/dashboard/data.js +1 -15
  162. package/dist/dashboard/launcher/ActiveJobsList.js +1 -10
  163. package/dist/dashboard/launcher/LauncherOverlay.js +1 -16
  164. package/dist/dashboard/launcher/NewLaunchForm.js +1 -10
  165. package/dist/dashboard/launcher/api.js +1 -16
  166. package/dist/dashboard/launcher/tool-labels.js +1 -10
  167. package/dist/dashboard/launcher/types.js +0 -1
  168. package/dist/dashboard/launcher/useLaunchJobs.js +1 -11
  169. package/dist/dashboard/panels/friction.js +1 -10
  170. package/dist/dashboard/panels/insights.js +1 -10
  171. package/dist/dashboard/panels/instructions.js +1 -10
  172. package/dist/dashboard/panels/outcomes.js +1 -10
  173. package/dist/dashboard/panels/overview.js +1 -10
  174. package/dist/dashboard/panels/shared.js +1 -19
  175. package/dist/dashboard/types.js +1 -24
  176. package/dist/dist-FAVALJ5C.js +1 -0
  177. package/dist/index.js +1 -8
  178. package/dist/lib/active-org-refresh.js +1 -15
  179. package/dist/lib/active-org.js +1 -16
  180. package/dist/lib/agent-loop.js +1 -47
  181. package/dist/lib/antigravity-transcript.js +1 -22
  182. package/dist/lib/api-client.js +1 -23
  183. package/dist/lib/auth.js +1 -30
  184. package/dist/lib/capture-hosts.js +1 -8
  185. package/dist/lib/detect-languages.js +1 -8
  186. package/dist/lib/detect-tmux.js +1 -9
  187. package/dist/lib/diagnostics.js +1 -12
  188. package/dist/lib/editor-proxy-pins.js +1 -14
  189. package/dist/lib/ensure-api-key.js +1 -11
  190. package/dist/lib/ensure-fresh-token.js +1 -0
  191. package/dist/lib/eval-analyzer.js +1 -9
  192. package/dist/lib/eval-benchmark.js +1 -12
  193. package/dist/lib/eval-conversation-handler.js +1 -13
  194. package/dist/lib/eval-executor.js +1 -8
  195. package/dist/lib/eval-grader.js +1 -9
  196. package/dist/lib/eval-meta-judge.js +1 -9
  197. package/dist/lib/eval-trigger-tester.js +1 -11
  198. package/dist/lib/eval-worktree.js +1 -8
  199. package/dist/lib/gateway-entry.js +1 -61
  200. package/dist/lib/gateway-identity.js +1 -16
  201. package/dist/lib/gateway-lifecycle.js +1 -32
  202. package/dist/lib/gateway.js +1 -14
  203. package/dist/lib/handlers/cron-refresh-pricing.js +1 -0
  204. package/dist/lib/handlers/cron-refresh-skills.js +1 -8
  205. package/dist/lib/handlers/cron-suggest-instructions.js +1 -16
  206. package/dist/lib/handlers/process-announcement.js +1 -11
  207. package/dist/lib/handlers/process-changelog.js +1 -11
  208. package/dist/lib/handlers/process-conversation.js +1 -14
  209. package/dist/lib/handlers/process-eval.js +1 -15
  210. package/dist/lib/handlers/process-insights.js +1 -15
  211. package/dist/lib/handlers/process-launch.js +1 -16
  212. package/dist/lib/handlers/process-run-cleanup.js +1 -13
  213. package/dist/lib/handlers/process-send-message.js +1 -10
  214. package/dist/lib/handlers/process-session-goal.js +1 -12
  215. package/dist/lib/hooks-config.js +1 -81
  216. package/dist/lib/insights-prompts.js +1 -12
  217. package/dist/lib/instruction-snapshot.js +1 -8
  218. package/dist/lib/job-helpers.js +0 -1
  219. package/dist/lib/llm-client.js +1 -20
  220. package/dist/lib/manual-tasks-meta.js +1 -8
  221. package/dist/lib/manual-tasks.js +1 -80
  222. package/dist/lib/output.js +1 -12
  223. package/dist/lib/permanent-job-error.js +1 -10
  224. package/dist/lib/pid-identity.js +1 -14
  225. package/dist/lib/proxy-respawn.js +1 -12
  226. package/dist/lib/research-client.js +1 -12
  227. package/dist/lib/setup-steps.js +1 -33
  228. package/dist/lib/skills-loader.js +1 -8
  229. package/dist/lib/statusline-shim.js +1 -20
  230. package/dist/lib/telemetry.js +1 -16
  231. package/dist/lib/terminal-target-heartbeat.js +1 -15
  232. package/dist/lib/tmux.js +1 -16
  233. package/dist/lib/transcript-rate-limit-watcher.js +1 -22
  234. package/dist/lib/types.js +1 -8
  235. package/dist/lib/version-check.js +1 -12
  236. package/dist/lib/which.js +1 -8
  237. package/dist/lib/worktree.js +1 -17
  238. package/dist/opencode-QRJ3BH23.js +1 -0
  239. package/oclif.manifest.json +12 -34
  240. package/package.json +9 -8
  241. package/dist/base-command.js.map +0 -7
  242. package/dist/chunk-2HK7RGZB.js +0 -82
  243. package/dist/chunk-2HK7RGZB.js.map +0 -7
  244. package/dist/chunk-2ORJWTNZ.js +0 -307
  245. package/dist/chunk-2ORJWTNZ.js.map +0 -7
  246. package/dist/chunk-37LN5O7M.js +0 -59
  247. package/dist/chunk-37LN5O7M.js.map +0 -7
  248. package/dist/chunk-3S7223UR.js +0 -81
  249. package/dist/chunk-3S7223UR.js.map +0 -7
  250. package/dist/chunk-3TIMQ3O6.js +0 -96
  251. package/dist/chunk-3TIMQ3O6.js.map +0 -7
  252. package/dist/chunk-42GFSAJP.js +0 -32
  253. package/dist/chunk-42GFSAJP.js.map +0 -7
  254. package/dist/chunk-4BHDHHKL.js +0 -48
  255. package/dist/chunk-4BHDHHKL.js.map +0 -7
  256. package/dist/chunk-4D537GXE.js +0 -99
  257. package/dist/chunk-4D537GXE.js.map +0 -7
  258. package/dist/chunk-4LYCDS2N.js +0 -139
  259. package/dist/chunk-4LYCDS2N.js.map +0 -7
  260. package/dist/chunk-4SCZK7AL.js +0 -129
  261. package/dist/chunk-4SCZK7AL.js.map +0 -7
  262. package/dist/chunk-4XAWK6S2.js +0 -161
  263. package/dist/chunk-4XAWK6S2.js.map +0 -7
  264. package/dist/chunk-52WIYRZH.js +0 -73
  265. package/dist/chunk-52WIYRZH.js.map +0 -7
  266. package/dist/chunk-5BAOGNUH.js +0 -79
  267. package/dist/chunk-5BAOGNUH.js.map +0 -7
  268. package/dist/chunk-5EDMGK3W.js +0 -39
  269. package/dist/chunk-5EDMGK3W.js.map +0 -7
  270. package/dist/chunk-6NBS5XFS.js +0 -99
  271. package/dist/chunk-6NBS5XFS.js.map +0 -7
  272. package/dist/chunk-7LVVKQMZ.js +0 -98
  273. package/dist/chunk-7LVVKQMZ.js.map +0 -7
  274. package/dist/chunk-7NNFYWKK.js +0 -243
  275. package/dist/chunk-7NNFYWKK.js.map +0 -7
  276. package/dist/chunk-7NYKWN7U.js +0 -12
  277. package/dist/chunk-7NYKWN7U.js.map +0 -7
  278. package/dist/chunk-BO76WKJR.js +0 -42
  279. package/dist/chunk-BO76WKJR.js.map +0 -7
  280. package/dist/chunk-BRD5RUGM.js +0 -53
  281. package/dist/chunk-BRD5RUGM.js.map +0 -7
  282. package/dist/chunk-BT6Z6545.js +0 -43
  283. package/dist/chunk-BT6Z6545.js.map +0 -7
  284. package/dist/chunk-BZDKEQKU.js +0 -39
  285. package/dist/chunk-BZDKEQKU.js.map +0 -7
  286. package/dist/chunk-DGHWRQXL.js +0 -17
  287. package/dist/chunk-DGHWRQXL.js.map +0 -7
  288. package/dist/chunk-DIQUV5FR.js +0 -257
  289. package/dist/chunk-DIQUV5FR.js.map +0 -7
  290. package/dist/chunk-DMX5YOTM.js +0 -167
  291. package/dist/chunk-DMX5YOTM.js.map +0 -7
  292. package/dist/chunk-DNKSVWMD.js +0 -108
  293. package/dist/chunk-DNKSVWMD.js.map +0 -7
  294. package/dist/chunk-DQ3KELXD.js +0 -74
  295. package/dist/chunk-DQ3KELXD.js.map +0 -7
  296. package/dist/chunk-DUJSRBLP.js +0 -122
  297. package/dist/chunk-DUJSRBLP.js.map +0 -7
  298. package/dist/chunk-E3BIT53W.js +0 -154
  299. package/dist/chunk-E3BIT53W.js.map +0 -7
  300. package/dist/chunk-EARWG4EV.js +0 -22
  301. package/dist/chunk-EARWG4EV.js.map +0 -7
  302. package/dist/chunk-EI5BHWXA.js +0 -1662
  303. package/dist/chunk-EI5BHWXA.js.map +0 -7
  304. package/dist/chunk-EJ3YAFDP.js +0 -37
  305. package/dist/chunk-EJ3YAFDP.js.map +0 -7
  306. package/dist/chunk-EKJ2CABV.js +0 -76
  307. package/dist/chunk-EKJ2CABV.js.map +0 -7
  308. package/dist/chunk-EKP32DLN.js +0 -16
  309. package/dist/chunk-EKP32DLN.js.map +0 -7
  310. package/dist/chunk-EYPAAGN5.js +0 -51
  311. package/dist/chunk-EYPAAGN5.js.map +0 -7
  312. package/dist/chunk-F5N6CLJJ.js +0 -1995
  313. package/dist/chunk-F5N6CLJJ.js.map +0 -7
  314. package/dist/chunk-GIUBARWS.js +0 -99
  315. package/dist/chunk-GIUBARWS.js.map +0 -7
  316. package/dist/chunk-GQNJO2P2.js +0 -102
  317. package/dist/chunk-GQNJO2P2.js.map +0 -7
  318. package/dist/chunk-IJGF2ETG.js +0 -68
  319. package/dist/chunk-IJGF2ETG.js.map +0 -7
  320. package/dist/chunk-ILYDELUE.js +0 -46
  321. package/dist/chunk-ILYDELUE.js.map +0 -7
  322. package/dist/chunk-J6QFW4LD.js +0 -55
  323. package/dist/chunk-J6QFW4LD.js.map +0 -7
  324. package/dist/chunk-J7N3DLH6.js +0 -117
  325. package/dist/chunk-J7N3DLH6.js.map +0 -7
  326. package/dist/chunk-JFDWKLQC.js +0 -23
  327. package/dist/chunk-JFDWKLQC.js.map +0 -7
  328. package/dist/chunk-JULOLTZS.js +0 -61
  329. package/dist/chunk-JULOLTZS.js.map +0 -7
  330. package/dist/chunk-KJKBDQ4D.js +0 -220
  331. package/dist/chunk-KJKBDQ4D.js.map +0 -7
  332. package/dist/chunk-KRBQLMOP.js +0 -41
  333. package/dist/chunk-KRBQLMOP.js.map +0 -7
  334. package/dist/chunk-LXKPNATC.js +0 -624
  335. package/dist/chunk-LXKPNATC.js.map +0 -7
  336. package/dist/chunk-NSBPE2FW.js +0 -17
  337. package/dist/chunk-NSBPE2FW.js.map +0 -7
  338. package/dist/chunk-OCKHW72U.js +0 -55
  339. package/dist/chunk-OCKHW72U.js.map +0 -7
  340. package/dist/chunk-OKWCKCPE.js +0 -414
  341. package/dist/chunk-OKWCKCPE.js.map +0 -7
  342. package/dist/chunk-OO7JDFS4.js +0 -157
  343. package/dist/chunk-OO7JDFS4.js.map +0 -7
  344. package/dist/chunk-OQBBVTDG.js.map +0 -7
  345. package/dist/chunk-OQSQC7VB.js +0 -77
  346. package/dist/chunk-OQSQC7VB.js.map +0 -7
  347. package/dist/chunk-PED7L5GX.js +0 -92
  348. package/dist/chunk-PED7L5GX.js.map +0 -7
  349. package/dist/chunk-QJQS6TUN.js +0 -44
  350. package/dist/chunk-QJQS6TUN.js.map +0 -7
  351. package/dist/chunk-QN34TGD3.js +0 -83
  352. package/dist/chunk-QN34TGD3.js.map +0 -7
  353. package/dist/chunk-QSN77T7C.js +0 -250
  354. package/dist/chunk-QSN77T7C.js.map +0 -7
  355. package/dist/chunk-R56PH7YE.js +0 -78
  356. package/dist/chunk-R56PH7YE.js.map +0 -7
  357. package/dist/chunk-RAXRZYOB.js +0 -299
  358. package/dist/chunk-RAXRZYOB.js.map +0 -7
  359. package/dist/chunk-RH7NHVSK.js +0 -16
  360. package/dist/chunk-RH7NHVSK.js.map +0 -7
  361. package/dist/chunk-RMTT4KDY.js +0 -191
  362. package/dist/chunk-RMTT4KDY.js.map +0 -7
  363. package/dist/chunk-RQ2TMLKG.js +0 -142
  364. package/dist/chunk-RQ2TMLKG.js.map +0 -7
  365. package/dist/chunk-SO3T35U7.js +0 -80
  366. package/dist/chunk-SO3T35U7.js.map +0 -7
  367. package/dist/chunk-UKMLICWS.js +0 -51
  368. package/dist/chunk-UKMLICWS.js.map +0 -7
  369. package/dist/chunk-VA5FFOS7.js +0 -243
  370. package/dist/chunk-VA5FFOS7.js.map +0 -7
  371. package/dist/chunk-W2YERO7E.js +0 -170
  372. package/dist/chunk-W2YERO7E.js.map +0 -7
  373. package/dist/chunk-W53GKIZQ.js +0 -50
  374. package/dist/chunk-W53GKIZQ.js.map +0 -7
  375. package/dist/chunk-WA4MWYRW.js +0 -254
  376. package/dist/chunk-WA4MWYRW.js.map +0 -7
  377. package/dist/chunk-XC6M4CSW.js +0 -44
  378. package/dist/chunk-XC6M4CSW.js.map +0 -7
  379. package/dist/chunk-XK42ZBDE.js +0 -23
  380. package/dist/chunk-XK42ZBDE.js.map +0 -7
  381. package/dist/chunk-XUV6DDBF.js +0 -124
  382. package/dist/chunk-XUV6DDBF.js.map +0 -7
  383. package/dist/chunk-XZXS2W24.js.map +0 -7
  384. package/dist/chunk-Y3WD5CSW.js +0 -49
  385. package/dist/chunk-Y3WD5CSW.js.map +0 -7
  386. package/dist/chunk-Y4BJXXYV.js +0 -148
  387. package/dist/chunk-Y4BJXXYV.js.map +0 -7
  388. package/dist/chunk-YNIH3KMU.js +0 -121
  389. package/dist/chunk-YNIH3KMU.js.map +0 -7
  390. package/dist/chunk-ZUJBM6HE.js +0 -125
  391. package/dist/chunk-ZUJBM6HE.js.map +0 -7
  392. package/dist/commands/antigravity/backfill.js.map +0 -7
  393. package/dist/commands/auth/create-key.js.map +0 -7
  394. package/dist/commands/auth/login.js.map +0 -7
  395. package/dist/commands/auth/logout.js.map +0 -7
  396. package/dist/commands/auth/revoke-key.js.map +0 -7
  397. package/dist/commands/auth/signup.js.map +0 -7
  398. package/dist/commands/auth/status.js.map +0 -7
  399. package/dist/commands/catalog/index.js.map +0 -7
  400. package/dist/commands/catalog/recommend.js.map +0 -7
  401. package/dist/commands/convert.js.map +0 -7
  402. package/dist/commands/converters.js.map +0 -7
  403. package/dist/commands/crons/list.js.map +0 -7
  404. package/dist/commands/crons/run.js.map +0 -7
  405. package/dist/commands/dashboard.js.map +0 -7
  406. package/dist/commands/diagnostics.js.map +0 -7
  407. package/dist/commands/eval-targets/create.js.map +0 -7
  408. package/dist/commands/eval-targets/list.js.map +0 -7
  409. package/dist/commands/evals/agent.js.map +0 -7
  410. package/dist/commands/evals/benchmark.js.map +0 -7
  411. package/dist/commands/evals/compare.js.map +0 -7
  412. package/dist/commands/evals/create.js.map +0 -7
  413. package/dist/commands/evals/optimize-description.js.map +0 -7
  414. package/dist/commands/evals/optimize.js.map +0 -7
  415. package/dist/commands/evals/run.js.map +0 -7
  416. package/dist/commands/gateway/ensure.js.map +0 -7
  417. package/dist/commands/hooks/emit-instructions.js.map +0 -7
  418. package/dist/commands/hooks/install.js.map +0 -7
  419. package/dist/commands/hooks/run.js.map +0 -7
  420. package/dist/commands/hooks/uninstall.js.map +0 -7
  421. package/dist/commands/import.js.map +0 -7
  422. package/dist/commands/instructions/create.js.map +0 -7
  423. package/dist/commands/instructions/delete.js.map +0 -7
  424. package/dist/commands/instructions/fork.js.map +0 -7
  425. package/dist/commands/instructions/get.js.map +0 -7
  426. package/dist/commands/instructions/list.js.map +0 -7
  427. package/dist/commands/instructions/promote.js.map +0 -7
  428. package/dist/commands/instructions/pull.js.map +0 -7
  429. package/dist/commands/instructions/upstream.js.map +0 -7
  430. package/dist/commands/instructions/versions.js.map +0 -7
  431. package/dist/commands/launcher.js.map +0 -7
  432. package/dist/commands/org/current.js.map +0 -7
  433. package/dist/commands/org/list.js.map +0 -7
  434. package/dist/commands/org/switch.js.map +0 -7
  435. package/dist/commands/packs/add-instruction.js.map +0 -7
  436. package/dist/commands/packs/apply.js.map +0 -7
  437. package/dist/commands/packs/create.js.map +0 -7
  438. package/dist/commands/packs/fork.js.map +0 -7
  439. package/dist/commands/packs/get.js.map +0 -7
  440. package/dist/commands/packs/list.js.map +0 -7
  441. package/dist/commands/packs/remove-instruction.js.map +0 -7
  442. package/dist/commands/proxy/env.js.map +0 -7
  443. package/dist/commands/proxy/logs.js.map +0 -7
  444. package/dist/commands/proxy/restart.js.map +0 -7
  445. package/dist/commands/proxy/setup.js.map +0 -7
  446. package/dist/commands/proxy/start.js.map +0 -7
  447. package/dist/commands/proxy/status.js.map +0 -7
  448. package/dist/commands/proxy/stop.js.map +0 -7
  449. package/dist/commands/research/backfill.js.map +0 -7
  450. package/dist/commands/research/tail-transcript.js.map +0 -7
  451. package/dist/commands/service/install.js.map +0 -7
  452. package/dist/commands/service/status.js.map +0 -7
  453. package/dist/commands/service/uninstall.js.map +0 -7
  454. package/dist/commands/sessions/analyze.js.map +0 -7
  455. package/dist/commands/sessions/end.js.map +0 -7
  456. package/dist/commands/sessions/import.js.map +0 -7
  457. package/dist/commands/sessions/list.js.map +0 -7
  458. package/dist/commands/sessions/start.js.map +0 -7
  459. package/dist/commands/setup.js.map +0 -7
  460. package/dist/commands/skills/export-approved.js.map +0 -7
  461. package/dist/commands/skills/install.js.map +0 -7
  462. package/dist/commands/skills/list.js.map +0 -7
  463. package/dist/commands/skills/publish.js.map +0 -7
  464. package/dist/commands/skills/search.js.map +0 -7
  465. package/dist/commands/skills/update.js.map +0 -7
  466. package/dist/commands/suggestions/accept.js.map +0 -7
  467. package/dist/commands/suggestions/dismiss.js.map +0 -7
  468. package/dist/commands/suggestions/list.js.map +0 -7
  469. package/dist/commands/suggestions/refresh.js.map +0 -7
  470. package/dist/cursor-BGQJ4CWI.js +0 -134
  471. package/dist/cursor-BGQJ4CWI.js.map +0 -7
  472. package/dist/dashboard/Dashboard.js.map +0 -7
  473. package/dist/dashboard/data.js.map +0 -7
  474. package/dist/dashboard/launcher/ActiveJobsList.js.map +0 -7
  475. package/dist/dashboard/launcher/LauncherOverlay.js.map +0 -7
  476. package/dist/dashboard/launcher/NewLaunchForm.js.map +0 -7
  477. package/dist/dashboard/launcher/api.js.map +0 -7
  478. package/dist/dashboard/launcher/tool-labels.js.map +0 -7
  479. package/dist/dashboard/launcher/types.js.map +0 -7
  480. package/dist/dashboard/launcher/useLaunchJobs.js.map +0 -7
  481. package/dist/dashboard/panels/friction.js.map +0 -7
  482. package/dist/dashboard/panels/insights.js.map +0 -7
  483. package/dist/dashboard/panels/instructions.js.map +0 -7
  484. package/dist/dashboard/panels/outcomes.js.map +0 -7
  485. package/dist/dashboard/panels/overview.js.map +0 -7
  486. package/dist/dashboard/panels/shared.js.map +0 -7
  487. package/dist/dashboard/types.js.map +0 -7
  488. package/dist/dist-UNYP5PJR.js +0 -56
  489. package/dist/dist-UNYP5PJR.js.map +0 -7
  490. package/dist/index.js.map +0 -7
  491. package/dist/lib/active-org-refresh.js.map +0 -7
  492. package/dist/lib/active-org.js.map +0 -7
  493. package/dist/lib/agent-loop.js.map +0 -7
  494. package/dist/lib/antigravity-transcript.js.map +0 -7
  495. package/dist/lib/api-client.js.map +0 -7
  496. package/dist/lib/auth.js.map +0 -7
  497. package/dist/lib/capture-hosts.js.map +0 -7
  498. package/dist/lib/detect-languages.js.map +0 -7
  499. package/dist/lib/detect-tmux.js.map +0 -7
  500. package/dist/lib/diagnostics.js.map +0 -7
  501. package/dist/lib/editor-proxy-pins.js.map +0 -7
  502. package/dist/lib/ensure-api-key.js.map +0 -7
  503. package/dist/lib/eval-analyzer.js.map +0 -7
  504. package/dist/lib/eval-benchmark.js.map +0 -7
  505. package/dist/lib/eval-conversation-handler.js.map +0 -7
  506. package/dist/lib/eval-executor.js.map +0 -7
  507. package/dist/lib/eval-grader.js.map +0 -7
  508. package/dist/lib/eval-meta-judge.js.map +0 -7
  509. package/dist/lib/eval-trigger-tester.js.map +0 -7
  510. package/dist/lib/eval-worktree.js.map +0 -7
  511. package/dist/lib/gateway-entry.js.map +0 -7
  512. package/dist/lib/gateway-identity.js.map +0 -7
  513. package/dist/lib/gateway-lifecycle.js.map +0 -7
  514. package/dist/lib/gateway.js.map +0 -7
  515. package/dist/lib/handlers/cron-refresh-skills.js.map +0 -7
  516. package/dist/lib/handlers/cron-suggest-instructions.js.map +0 -7
  517. package/dist/lib/handlers/process-announcement.js.map +0 -7
  518. package/dist/lib/handlers/process-changelog.js.map +0 -7
  519. package/dist/lib/handlers/process-conversation.js.map +0 -7
  520. package/dist/lib/handlers/process-eval.js.map +0 -7
  521. package/dist/lib/handlers/process-insights.js.map +0 -7
  522. package/dist/lib/handlers/process-launch.js.map +0 -7
  523. package/dist/lib/handlers/process-run-cleanup.js.map +0 -7
  524. package/dist/lib/handlers/process-send-message.js.map +0 -7
  525. package/dist/lib/handlers/process-session-goal.js.map +0 -7
  526. package/dist/lib/hooks-config.js.map +0 -7
  527. package/dist/lib/insights-prompts.js.map +0 -7
  528. package/dist/lib/instruction-snapshot.js.map +0 -7
  529. package/dist/lib/job-helpers.js.map +0 -7
  530. package/dist/lib/llm-client.js.map +0 -7
  531. package/dist/lib/manual-tasks-meta.js.map +0 -7
  532. package/dist/lib/manual-tasks.js.map +0 -7
  533. package/dist/lib/output.js.map +0 -7
  534. package/dist/lib/permanent-job-error.js.map +0 -7
  535. package/dist/lib/pid-identity.js.map +0 -7
  536. package/dist/lib/proxy-respawn.js.map +0 -7
  537. package/dist/lib/research-client.js.map +0 -7
  538. package/dist/lib/setup-steps.js.map +0 -7
  539. package/dist/lib/skills-loader.js.map +0 -7
  540. package/dist/lib/statusline-shim.js.map +0 -7
  541. package/dist/lib/telemetry.js.map +0 -7
  542. package/dist/lib/terminal-target-heartbeat.js.map +0 -7
  543. package/dist/lib/tmux.js.map +0 -7
  544. package/dist/lib/transcript-rate-limit-watcher.js.map +0 -7
  545. package/dist/lib/types.js.map +0 -7
  546. package/dist/lib/version-check.js.map +0 -7
  547. package/dist/lib/which.js.map +0 -7
  548. package/dist/lib/worktree.js.map +0 -7
  549. package/dist/opencode-IQ7X5YMJ.js +0 -190
  550. package/dist/opencode-IQ7X5YMJ.js.map +0 -7
@@ -1,624 +0,0 @@
1
- import {
2
- removeStatuslineShimAnyHome
3
- } from "./chunk-OQBBVTDG.js";
4
-
5
- // src/lib/hooks-config.ts
6
- import { execSync } from "node:child_process";
7
- import { existsSync, mkdirSync, readFileSync, writeFileSync, unlinkSync, copyFileSync } from "node:fs";
8
- import { homedir } from "node:os";
9
- import { join, dirname } from "node:path";
10
- function detectInstalledTools(projectPath) {
11
- const tools = ["claude_code"];
12
- if (existsSync(join(projectPath, ".cursor"))) {
13
- tools.push("cursor");
14
- }
15
- if (existsSync(join(projectPath, ".github"))) {
16
- tools.push("copilot_agent");
17
- }
18
- if (existsSync(join(projectPath, ".agents"))) {
19
- tools.push("antigravity");
20
- }
21
- return tools;
22
- }
23
- function generateCursorHooksConfig(binDir) {
24
- const prefix = binDir ? `PATH="${binDir}:$PATH" ` : "";
25
- const cmd = (name) => ({ command: `${prefix}rulemetric hooks run ${name}` });
26
- return {
27
- version: 1,
28
- hooks: {
29
- sessionStart: [cmd("session-start")],
30
- beforeSubmitPrompt: [cmd("user-prompt")],
31
- afterFileEdit: [cmd("post-tool-use")],
32
- beforeShellExecution: [cmd("post-tool-use")],
33
- afterShellExecution: [cmd("post-tool-use")],
34
- beforeMCPExecution: [cmd("post-tool-use")],
35
- afterMCPExecution: [cmd("post-tool-use")],
36
- // `afterAgentResponse` carries the full assistant response text +
37
- // token usage. Verified empirically via a probe hook on
38
- // 2026-05-12 — Cursor passes `text`, `input_tokens`,
39
- // `output_tokens`, `cache_read_tokens`, `cache_write_tokens`. This
40
- // is the cleanest path to per-turn assistant content for Cursor
41
- // (chat traffic itself bypasses the proxy via HTTP/2 — see
42
- // docs/audits/2026-05-11-cursor-capture-architecture.md).
43
- afterAgentResponse: [cmd("assistant-response")],
44
- // `stop` fires when the agent loop ends for a single turn (status:
45
- // completed|aborted|error). Per-turn, NOT per-session — route it to
46
- // post-tool-use, not session-end. The real session boundary is
47
- // `sessionEnd` below.
48
- stop: [cmd("post-tool-use")],
49
- sessionEnd: [cmd("session-end")]
50
- }
51
- };
52
- }
53
- function generateCopilotHooksConfig(binDir) {
54
- const prefix = binDir ? `PATH="${binDir}:$PATH" ` : "";
55
- const cmd = (name) => ({ type: "command", bash: `${prefix}rulemetric hooks run ${name}` });
56
- return {
57
- version: 1,
58
- hooks: {
59
- sessionStart: [cmd("session-start")],
60
- userPromptSubmitted: [cmd("user-prompt")],
61
- postToolUse: [cmd("post-tool-use")],
62
- sessionEnd: [cmd("session-end")]
63
- }
64
- };
65
- }
66
- function generateClaudeCodeHooksConfig(binDir) {
67
- const prefix = binDir ? `PATH="${binDir}:$PATH" ` : "";
68
- const mk = (name) => ({
69
- type: "command",
70
- command: `${prefix}rulemetric hooks run ${name}`
71
- });
72
- return {
73
- SessionStart: [{ hooks: [mk("session-start")] }],
74
- UserPromptSubmit: [{ hooks: [mk("user-prompt")] }],
75
- PostToolUse: [{ matcher: ".*", hooks: [mk("post-tool-use")] }],
76
- Stop: [{ hooks: [mk("assistant-response")] }],
77
- SessionEnd: [{ hooks: [mk("session-end")] }]
78
- };
79
- }
80
- function readClaudeSettings(configPath) {
81
- if (!existsSync(configPath)) return { settings: {}, recoveredBackup: null };
82
- const raw = readFileSync(configPath, "utf-8");
83
- try {
84
- return { settings: JSON.parse(raw), recoveredBackup: null };
85
- } catch {
86
- const recoveredBackup = `${configPath}.corrupt.bak`;
87
- writeFileSync(recoveredBackup, raw);
88
- return { settings: {}, recoveredBackup };
89
- }
90
- }
91
- function writeClaudeSettingsWithBackup(configPath, settings) {
92
- mkdirSync(dirname(configPath), { recursive: true });
93
- let backupPath = null;
94
- if (existsSync(configPath)) {
95
- backupPath = `${configPath}.bak`;
96
- copyFileSync(configPath, backupPath);
97
- }
98
- writeFileSync(configPath, JSON.stringify(settings, null, 2) + "\n");
99
- return { backupPath };
100
- }
101
- function readMergeableJson(configPath) {
102
- if (!existsSync(configPath)) return {};
103
- const raw = readFileSync(configPath, "utf-8");
104
- try {
105
- return JSON.parse(raw);
106
- } catch {
107
- try {
108
- writeFileSync(`${configPath}.corrupt.bak`, raw);
109
- } catch {
110
- }
111
- return null;
112
- }
113
- }
114
- function mergeClaudeCodeHooks(settings, binDir) {
115
- const generated = generateClaudeCodeHooksConfig(binDir);
116
- const hooks = settings.hooks ?? {};
117
- for (const [event, blocks] of Object.entries(generated)) {
118
- const current = hooks[event] ?? [];
119
- const alreadyPresent = current.some(
120
- (b) => b?.hooks?.some((h) => typeof h?.command === "string" && h.command.includes("rulemetric"))
121
- );
122
- if (!alreadyPresent) {
123
- hooks[event] = [...current, ...blocks];
124
- }
125
- }
126
- settings.hooks = hooks;
127
- }
128
- function hasRulemetricClaudeHooks(settings) {
129
- if (!settings.hooks || typeof settings.hooks !== "object") return false;
130
- const hooks = settings.hooks;
131
- return Object.values(hooks).some(
132
- (blocks) => Array.isArray(blocks) && blocks.some(
133
- (b) => b?.hooks?.some((h) => typeof h?.command === "string" && h.command.includes("rulemetric"))
134
- )
135
- );
136
- }
137
- function removeClaudeCodeHooks(settings) {
138
- if (!settings.hooks || typeof settings.hooks !== "object") return false;
139
- const hooks = settings.hooks;
140
- let removed = 0;
141
- for (const event of Object.keys(hooks)) {
142
- const entries = hooks[event];
143
- if (!Array.isArray(entries)) continue;
144
- const kept = entries.filter((block) => {
145
- const isRulemetric = block?.hooks?.some(
146
- (h) => typeof h?.command === "string" && h.command.includes("rulemetric")
147
- );
148
- if (isRulemetric) removed += 1;
149
- return !isRulemetric;
150
- });
151
- if (kept.length === 0) delete hooks[event];
152
- else hooks[event] = kept;
153
- }
154
- if (Object.keys(hooks).length === 0) delete settings.hooks;
155
- return removed > 0;
156
- }
157
- var RULEMETRIC_NO_PROXY = "localhost,127.0.0.1,*.supabase.co,*.supabase.in";
158
- function claudeSettingsInstallPath(configDir, isGlobal) {
159
- return join(configDir, isGlobal ? "settings.json" : "settings.local.json");
160
- }
161
- function removeRulemetricProxyEnv(settings, gatewayPort) {
162
- const env = settings.env;
163
- if (!env || typeof env !== "object") return false;
164
- let removed = false;
165
- const proxy = env.HTTPS_PROXY;
166
- if (proxy === `http://localhost:${gatewayPort}` || proxy === `http://127.0.0.1:${gatewayPort}`) {
167
- delete env.HTTPS_PROXY;
168
- removed = true;
169
- }
170
- if (env.NO_PROXY === RULEMETRIC_NO_PROXY) {
171
- delete env.NO_PROXY;
172
- removed = true;
173
- }
174
- const ca = env.NODE_EXTRA_CA_CERTS;
175
- if (typeof ca === "string" && ca.includes(".mitmproxy") && ca.endsWith("mitmproxy-ca-cert.pem")) {
176
- delete env.NODE_EXTRA_CA_CERTS;
177
- removed = true;
178
- }
179
- if (removed && Object.keys(env).length === 0) delete settings.env;
180
- return removed;
181
- }
182
- function removeRulemetricMachineState(settings, gatewayPort) {
183
- const removedHooks = removeClaudeCodeHooks(settings);
184
- const removedProxyEnv = removeRulemetricProxyEnv(settings, gatewayPort);
185
- const removedStatusline = removeStatuslineShimAnyHome(settings);
186
- return {
187
- removedHooks,
188
- removedProxyEnv,
189
- removedStatusline,
190
- removed: removedHooks || removedProxyEnv || removedStatusline
191
- };
192
- }
193
- function migrateSharedClaudeSettings(sharedPath, gatewayPort) {
194
- const none = {
195
- migrated: false,
196
- backupPath: null,
197
- removedHooks: false,
198
- removedProxyEnv: false,
199
- removedStatusline: false,
200
- removed: false
201
- };
202
- if (!existsSync(sharedPath)) return none;
203
- let settings;
204
- try {
205
- settings = JSON.parse(readFileSync(sharedPath, "utf-8"));
206
- } catch {
207
- return none;
208
- }
209
- const removal = removeRulemetricMachineState(settings, gatewayPort);
210
- if (!removal.removed) return none;
211
- const { backupPath } = writeClaudeSettingsWithBackup(sharedPath, settings);
212
- return { ...removal, migrated: true, backupPath };
213
- }
214
- function cleanClaudeSettingsFiles(claudeDir, gatewayPort) {
215
- const results = [];
216
- for (const fileName of ["settings.json", "settings.local.json"]) {
217
- const configPath = join(claudeDir, fileName);
218
- if (!existsSync(configPath)) continue;
219
- const { settings, recoveredBackup } = readClaudeSettings(configPath);
220
- const removal = removeRulemetricMachineState(settings, gatewayPort);
221
- if (removal.removed) {
222
- writeClaudeSettingsWithBackup(configPath, settings);
223
- }
224
- results.push({
225
- ...removal,
226
- configPath,
227
- fileName,
228
- recoveredBackup,
229
- changed: removal.removed
230
- });
231
- }
232
- return results;
233
- }
234
- function writeCursorHooksToDir(cursorDir, binDir) {
235
- if (!existsSync(cursorDir)) {
236
- return null;
237
- }
238
- const configPath = join(cursorDir, "hooks.json");
239
- const generated = generateCursorHooksConfig(binDir);
240
- const parsed = readMergeableJson(configPath);
241
- if (parsed === null) return null;
242
- const existing = parsed;
243
- const merged = { ...existing.hooks ?? {} };
244
- const isRulemetricHook = (h) => typeof h === "object" && h !== null && "command" in h && typeof h.command === "string" && h.command.includes("rulemetric");
245
- for (const [event, hooks] of Object.entries(generated.hooks)) {
246
- const current = merged[event] ?? [];
247
- const siblings = current.filter((h) => !isRulemetricHook(h));
248
- merged[event] = [...siblings, ...hooks];
249
- }
250
- const result = {
251
- version: existing.version ?? generated.version,
252
- hooks: merged
253
- };
254
- writeFileSync(configPath, JSON.stringify(result, null, 2) + "\n");
255
- return configPath;
256
- }
257
- function writeCursorHooks(projectPath, binDir) {
258
- return writeCursorHooksToDir(join(projectPath, ".cursor"), binDir);
259
- }
260
- function writeCursorUserHooks(binDir, home = homedir()) {
261
- const cursorHome = join(home, ".cursor");
262
- if (!existsSync(cursorHome)) return null;
263
- return writeCursorHooksToDir(cursorHome, binDir);
264
- }
265
- function writeCopilotHooks(projectPath, binDir) {
266
- const githubDir = join(projectPath, ".github");
267
- if (!existsSync(githubDir)) {
268
- return null;
269
- }
270
- const hooksDir = join(githubDir, "hooks");
271
- mkdirSync(hooksDir, { recursive: true });
272
- const configPath = join(hooksDir, "rulemetric.json");
273
- const config = generateCopilotHooksConfig(binDir);
274
- writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
275
- return configPath;
276
- }
277
- function removeCursorHooksFromFile(configPath) {
278
- if (!existsSync(configPath)) {
279
- return false;
280
- }
281
- let config;
282
- try {
283
- config = JSON.parse(readFileSync(configPath, "utf-8"));
284
- } catch {
285
- return false;
286
- }
287
- if (!config.hooks) {
288
- return false;
289
- }
290
- let changed = false;
291
- for (const [event, hooks] of Object.entries(config.hooks)) {
292
- const filtered = hooks.filter((h) => {
293
- if (typeof h !== "object" || h === null || !("command" in h)) return true;
294
- const cmd = h.command;
295
- if (typeof cmd === "string" && cmd.includes("rulemetric")) {
296
- changed = true;
297
- return false;
298
- }
299
- return true;
300
- });
301
- if (filtered.length === 0) {
302
- delete config.hooks[event];
303
- } else {
304
- config.hooks[event] = filtered;
305
- }
306
- }
307
- if (changed) {
308
- writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n");
309
- }
310
- return changed;
311
- }
312
- function removeCursorHooks(projectPath) {
313
- return removeCursorHooksFromFile(join(projectPath, ".cursor", "hooks.json"));
314
- }
315
- function removeCursorUserHooks() {
316
- return removeCursorHooksFromFile(join(homedir(), ".cursor", "hooks.json"));
317
- }
318
- function writeCursorProxyConfig(projectPath, gatewayPort, certPath) {
319
- const cursorDir = join(projectPath, ".cursor");
320
- if (!existsSync(cursorDir)) return false;
321
- const settingsPath = join(cursorDir, "settings.json");
322
- const settings = readMergeableJson(settingsPath);
323
- if (settings === null) return false;
324
- settings["http.proxy"] = `http://localhost:${gatewayPort}`;
325
- settings["http.proxyStrictSSL"] = existsSync(certPath);
326
- writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
327
- return true;
328
- }
329
- function writeVSCodeProxyConfig(projectPath, gatewayPort, certPath) {
330
- const vscodeDir = join(projectPath, ".vscode");
331
- if (!existsSync(vscodeDir)) return false;
332
- const settingsPath = join(vscodeDir, "settings.json");
333
- const settings = readMergeableJson(settingsPath);
334
- if (settings === null) return false;
335
- settings["http.proxy"] = `http://localhost:${gatewayPort}`;
336
- settings["http.proxyStrictSSL"] = existsSync(certPath);
337
- const copilotAdvanced = settings["github.copilot.advanced"] ?? {};
338
- copilotAdvanced["debug.overrideProxyUrl"] = `http://localhost:${gatewayPort}`;
339
- settings["github.copilot.advanced"] = copilotAdvanced;
340
- writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
341
- return true;
342
- }
343
- function removeVSCodeProxyConfig(projectPath) {
344
- const settingsPath = join(projectPath, ".vscode", "settings.json");
345
- if (!existsSync(settingsPath)) return false;
346
- let settings;
347
- try {
348
- settings = JSON.parse(readFileSync(settingsPath, "utf-8"));
349
- } catch {
350
- return false;
351
- }
352
- let changed = false;
353
- if (settings["http.proxy"]) {
354
- delete settings["http.proxy"];
355
- delete settings["http.proxyStrictSSL"];
356
- changed = true;
357
- }
358
- const copilotAdvanced = settings["github.copilot.advanced"];
359
- if (copilotAdvanced?.["debug.overrideProxyUrl"]) {
360
- delete copilotAdvanced["debug.overrideProxyUrl"];
361
- if (Object.keys(copilotAdvanced).length === 0) {
362
- delete settings["github.copilot.advanced"];
363
- }
364
- changed = true;
365
- }
366
- if (changed) {
367
- writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
368
- }
369
- return changed;
370
- }
371
- function removeCopilotHooks(projectPath) {
372
- const configPath = join(projectPath, ".github", "hooks", "rulemetric.json");
373
- if (!existsSync(configPath)) {
374
- return false;
375
- }
376
- unlinkSync(configPath);
377
- return true;
378
- }
379
- var LAUNCH_AGENT_LABEL = "com.rulemetric.env";
380
- function getLaunchAgentPath() {
381
- return join(homedir(), "Library", "LaunchAgents", `${LAUNCH_AGENT_LABEL}.plist`);
382
- }
383
- function installMacOSProxyEnv(gatewayPort, certPath) {
384
- if (process.platform !== "darwin") return false;
385
- const proxyUrl = `http://localhost:${gatewayPort}`;
386
- try {
387
- execSync(`launchctl setenv HTTPS_PROXY ${proxyUrl}`, { stdio: "pipe" });
388
- if (existsSync(certPath)) {
389
- execSync(`launchctl setenv NODE_EXTRA_CA_CERTS ${certPath}`, { stdio: "pipe" });
390
- }
391
- } catch {
392
- return false;
393
- }
394
- const plistPath = getLaunchAgentPath();
395
- const agentsDir = join(homedir(), "Library", "LaunchAgents");
396
- mkdirSync(agentsDir, { recursive: true });
397
- const certLine = existsSync(certPath) ? `launchctl setenv NODE_EXTRA_CA_CERTS ${certPath};` : "";
398
- const bootCmd = `if nc -z -w 1 127.0.0.1 ${gatewayPort} 2>/dev/null; then launchctl setenv HTTPS_PROXY ${proxyUrl};${certLine} else launchctl unsetenv HTTPS_PROXY; launchctl unsetenv NODE_EXTRA_CA_CERTS; fi`;
399
- const plist = `<?xml version="1.0" encoding="UTF-8"?>
400
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
401
- "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
402
- <plist version="1.0">
403
- <dict>
404
- <key>Label</key>
405
- <string>${LAUNCH_AGENT_LABEL}</string>
406
- <key>ProgramArguments</key>
407
- <array>
408
- <string>/bin/sh</string>
409
- <string>-c</string>
410
- <string>${bootCmd}</string>
411
- </array>
412
- <key>RunAtLoad</key>
413
- <true/>
414
- </dict>
415
- </plist>
416
- `;
417
- writeFileSync(plistPath, plist);
418
- return true;
419
- }
420
- function uninstallMacOSProxyEnv() {
421
- if (process.platform !== "darwin") return false;
422
- let changed = false;
423
- try {
424
- execSync("launchctl unsetenv HTTPS_PROXY", { stdio: "pipe" });
425
- execSync("launchctl unsetenv NODE_EXTRA_CA_CERTS", { stdio: "pipe" });
426
- } catch {
427
- }
428
- const plistPath = getLaunchAgentPath();
429
- if (existsSync(plistPath)) {
430
- unlinkSync(plistPath);
431
- changed = true;
432
- }
433
- return changed;
434
- }
435
- function getVSCodeUserSettingsPath() {
436
- if (process.platform === "darwin") {
437
- return join(homedir(), "Library", "Application Support", "Code", "User", "settings.json");
438
- }
439
- if (process.platform === "win32") {
440
- return join(process.env.APPDATA ?? "", "Code", "User", "settings.json");
441
- }
442
- return join(homedir(), ".config", "Code", "User", "settings.json");
443
- }
444
- function writeVSCodeUserProxyConfig(gatewayPort) {
445
- const settingsPath = getVSCodeUserSettingsPath();
446
- if (!existsSync(join(settingsPath, ".."))) return false;
447
- const settings = readMergeableJson(settingsPath);
448
- if (settings === null) return false;
449
- if (settings["http.proxy"] && !settings["http.proxy"].includes("localhost")) {
450
- return false;
451
- }
452
- settings["http.proxy"] = `http://localhost:${gatewayPort}`;
453
- settings["http.proxyStrictSSL"] = false;
454
- writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
455
- return true;
456
- }
457
- function removeVSCodeUserProxyConfig() {
458
- const settingsPath = getVSCodeUserSettingsPath();
459
- if (!existsSync(settingsPath)) return false;
460
- let settings;
461
- try {
462
- settings = JSON.parse(readFileSync(settingsPath, "utf-8"));
463
- } catch {
464
- return false;
465
- }
466
- const proxy = settings["http.proxy"];
467
- if (!proxy?.includes("localhost")) return false;
468
- delete settings["http.proxy"];
469
- delete settings["http.proxyStrictSSL"];
470
- writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
471
- return true;
472
- }
473
- function getCursorUserSettingsPath() {
474
- if (process.platform === "darwin") {
475
- return join(homedir(), "Library", "Application Support", "Cursor", "User", "settings.json");
476
- }
477
- if (process.platform === "win32") {
478
- return join(process.env.APPDATA ?? "", "Cursor", "User", "settings.json");
479
- }
480
- return join(homedir(), ".config", "Cursor", "User", "settings.json");
481
- }
482
- function writeCursorUserProxyConfig(gatewayPort) {
483
- const settingsPath = getCursorUserSettingsPath();
484
- if (!existsSync(join(settingsPath, ".."))) return false;
485
- const settings = readMergeableJson(settingsPath);
486
- if (settings === null) return false;
487
- if (settings["http.proxy"] && !settings["http.proxy"].includes("localhost")) {
488
- return false;
489
- }
490
- settings["http.proxy"] = `http://localhost:${gatewayPort}`;
491
- settings["http.proxyStrictSSL"] = false;
492
- writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
493
- return true;
494
- }
495
- function removeCursorUserProxyConfig() {
496
- const settingsPath = getCursorUserSettingsPath();
497
- if (!existsSync(settingsPath)) return false;
498
- let settings;
499
- try {
500
- settings = JSON.parse(readFileSync(settingsPath, "utf-8"));
501
- } catch {
502
- return false;
503
- }
504
- const proxy = settings["http.proxy"];
505
- if (!proxy?.includes("localhost")) return false;
506
- delete settings["http.proxy"];
507
- delete settings["http.proxyStrictSSL"];
508
- writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + "\n");
509
- return true;
510
- }
511
- function getRulemetricCommand() {
512
- const nodeBin = process.execPath;
513
- const cliEntry = process.argv[1];
514
- if (cliEntry && cliEntry.endsWith("run.js")) {
515
- return `${nodeBin} ${cliEntry}`;
516
- }
517
- return "rulemetric";
518
- }
519
- function generateAntigravityHooksConfig() {
520
- const cmd = getRulemetricCommand();
521
- const mk = (name) => ({
522
- type: "command",
523
- command: `RULEMETRIC_HOOK_TOOL=antigravity ${cmd} hooks run ${name}`,
524
- timeout: 30
525
- });
526
- return {
527
- rulemetric: {
528
- enabled: true,
529
- SessionStart: [{ hooks: [mk("session-start")] }],
530
- UserPromptSubmit: [{ hooks: [mk("user-prompt")] }],
531
- PreToolUse: [{ matcher: ".*", hooks: [mk("post-tool-use")] }],
532
- PostToolUse: [{ matcher: ".*", hooks: [mk("post-tool-use")] }],
533
- Stop: [{ hooks: [mk("assistant-response")] }],
534
- SessionEnd: [{ hooks: [mk("session-end")] }]
535
- }
536
- };
537
- }
538
- function writeAntigravityHooksToDir(dir) {
539
- const configPath = join(dir, "hooks.json");
540
- const existing = readMergeableJson(configPath);
541
- if (existing === null) return null;
542
- const generated = generateAntigravityHooksConfig();
543
- const merged = { ...existing, rulemetric: generated.rulemetric };
544
- mkdirSync(dir, { recursive: true });
545
- writeFileSync(configPath, JSON.stringify(merged, null, 2) + "\n");
546
- return configPath;
547
- }
548
- function writeAntigravityHooks(projectPath) {
549
- return writeAntigravityHooksToDir(join(projectPath, ".agents"));
550
- }
551
- function writeAntigravityUserHooks(home = homedir()) {
552
- const geminiHome = join(home, ".gemini");
553
- if (!existsSync(geminiHome)) return null;
554
- return writeAntigravityHooksToDir(join(geminiHome, "config"));
555
- }
556
- function removeAntigravityHooksFromFile(configPath) {
557
- if (!existsSync(configPath)) return false;
558
- let existing;
559
- try {
560
- existing = JSON.parse(readFileSync(configPath, "utf-8"));
561
- } catch {
562
- return false;
563
- }
564
- if (!("rulemetric" in existing)) return false;
565
- delete existing.rulemetric;
566
- if (Object.keys(existing).length === 0) {
567
- try {
568
- unlinkSync(configPath);
569
- } catch {
570
- }
571
- } else {
572
- writeFileSync(configPath, JSON.stringify(existing, null, 2) + "\n");
573
- }
574
- return true;
575
- }
576
- function removeAntigravityHooks(projectPath) {
577
- return removeAntigravityHooksFromFile(join(projectPath, ".agents", "hooks.json"));
578
- }
579
- function removeAntigravityUserHooks() {
580
- const modern = removeAntigravityHooksFromFile(join(homedir(), ".gemini", "config", "hooks.json"));
581
- const legacy = removeAntigravityHooksFromFile(join(homedir(), ".gemini", "hooks.json"));
582
- return modern || legacy;
583
- }
584
-
585
- export {
586
- detectInstalledTools,
587
- generateCursorHooksConfig,
588
- generateCopilotHooksConfig,
589
- generateClaudeCodeHooksConfig,
590
- readClaudeSettings,
591
- writeClaudeSettingsWithBackup,
592
- mergeClaudeCodeHooks,
593
- hasRulemetricClaudeHooks,
594
- removeClaudeCodeHooks,
595
- RULEMETRIC_NO_PROXY,
596
- claudeSettingsInstallPath,
597
- removeRulemetricProxyEnv,
598
- removeRulemetricMachineState,
599
- migrateSharedClaudeSettings,
600
- cleanClaudeSettingsFiles,
601
- writeCursorHooks,
602
- writeCursorUserHooks,
603
- writeCopilotHooks,
604
- removeCursorHooks,
605
- removeCursorUserHooks,
606
- writeCursorProxyConfig,
607
- writeVSCodeProxyConfig,
608
- removeVSCodeProxyConfig,
609
- removeCopilotHooks,
610
- installMacOSProxyEnv,
611
- uninstallMacOSProxyEnv,
612
- getVSCodeUserSettingsPath,
613
- writeVSCodeUserProxyConfig,
614
- removeVSCodeUserProxyConfig,
615
- getCursorUserSettingsPath,
616
- writeCursorUserProxyConfig,
617
- removeCursorUserProxyConfig,
618
- generateAntigravityHooksConfig,
619
- writeAntigravityHooks,
620
- writeAntigravityUserHooks,
621
- removeAntigravityHooks,
622
- removeAntigravityUserHooks
623
- };
624
- //# sourceMappingURL=chunk-LXKPNATC.js.map