@rulemetric/cli 0.7.3 → 0.7.4

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