@rulemetric/cli 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (780) hide show
  1. package/dist/base-command.js +13 -52
  2. package/dist/base-command.js.map +7 -1
  3. package/dist/chunk-2AM54TUK.js +59 -0
  4. package/dist/chunk-2AM54TUK.js.map +7 -0
  5. package/dist/chunk-3TIMQ3O6.js +96 -0
  6. package/dist/chunk-3TIMQ3O6.js.map +7 -0
  7. package/dist/chunk-4BHDHHKL.js +48 -0
  8. package/dist/chunk-4BHDHHKL.js.map +7 -0
  9. package/dist/chunk-4D537GXE.js +99 -0
  10. package/dist/chunk-4D537GXE.js.map +7 -0
  11. package/dist/chunk-4SCZK7AL.js +129 -0
  12. package/dist/chunk-4SCZK7AL.js.map +7 -0
  13. package/dist/chunk-4WFE4PFP.js +61 -0
  14. package/dist/chunk-4WFE4PFP.js.map +7 -0
  15. package/dist/chunk-52WIYRZH.js +73 -0
  16. package/dist/chunk-52WIYRZH.js.map +7 -0
  17. package/dist/chunk-7FAA3YNB.js +1549 -0
  18. package/dist/chunk-7FAA3YNB.js.map +7 -0
  19. package/dist/chunk-7NYKWN7U.js +12 -0
  20. package/dist/chunk-7NYKWN7U.js.map +7 -0
  21. package/dist/chunk-AULP2OWH.js +99 -0
  22. package/dist/chunk-AULP2OWH.js.map +7 -0
  23. package/dist/chunk-B5KNTGMJ.js +1788 -0
  24. package/dist/chunk-B5KNTGMJ.js.map +7 -0
  25. package/dist/chunk-BD7CY42U.js +23 -0
  26. package/dist/chunk-BD7CY42U.js.map +7 -0
  27. package/dist/chunk-BO76WKJR.js +42 -0
  28. package/dist/chunk-BO76WKJR.js.map +7 -0
  29. package/dist/chunk-BRD5RUGM.js +53 -0
  30. package/dist/chunk-BRD5RUGM.js.map +7 -0
  31. package/dist/chunk-BT6Z6545.js +43 -0
  32. package/dist/chunk-BT6Z6545.js.map +7 -0
  33. package/dist/chunk-BZDKEQKU.js +39 -0
  34. package/dist/chunk-BZDKEQKU.js.map +7 -0
  35. package/dist/chunk-CROYS75W.js +161 -0
  36. package/dist/chunk-CROYS75W.js.map +7 -0
  37. package/dist/chunk-DGHWRQXL.js +17 -0
  38. package/dist/chunk-DGHWRQXL.js.map +7 -0
  39. package/dist/chunk-DQ3KELXD.js +74 -0
  40. package/dist/chunk-DQ3KELXD.js.map +7 -0
  41. package/dist/chunk-DTFXCHHI.js +108 -0
  42. package/dist/chunk-DTFXCHHI.js.map +7 -0
  43. package/dist/chunk-DU73QUS3.js +75 -0
  44. package/dist/chunk-DU73QUS3.js.map +7 -0
  45. package/dist/chunk-EHZJ6OXD.js +307 -0
  46. package/dist/chunk-EHZJ6OXD.js.map +7 -0
  47. package/dist/chunk-EJOI2ZGU.js +109 -0
  48. package/dist/chunk-EJOI2ZGU.js.map +7 -0
  49. package/dist/chunk-EKJ2CABV.js +76 -0
  50. package/dist/chunk-EKJ2CABV.js.map +7 -0
  51. package/dist/chunk-EKP32DLN.js +16 -0
  52. package/dist/chunk-EKP32DLN.js.map +7 -0
  53. package/dist/chunk-EOOP6WTC.js +148 -0
  54. package/dist/chunk-EOOP6WTC.js.map +7 -0
  55. package/dist/chunk-ERPMDAO3.js +20 -0
  56. package/dist/chunk-ERPMDAO3.js.map +7 -0
  57. package/dist/chunk-FTJRMUID.js +96 -0
  58. package/dist/chunk-FTJRMUID.js.map +7 -0
  59. package/dist/chunk-FZKLLNDS.js +228 -0
  60. package/dist/chunk-FZKLLNDS.js.map +7 -0
  61. package/dist/chunk-GQCISMAH.js +157 -0
  62. package/dist/chunk-GQCISMAH.js.map +7 -0
  63. package/dist/chunk-IGXX624H.js +55 -0
  64. package/dist/chunk-IGXX624H.js.map +7 -0
  65. package/dist/chunk-IJGF2ETG.js +68 -0
  66. package/dist/chunk-IJGF2ETG.js.map +7 -0
  67. package/dist/chunk-IWYCRLEK.js +220 -0
  68. package/dist/chunk-IWYCRLEK.js.map +7 -0
  69. package/dist/chunk-J7N3DLH6.js +117 -0
  70. package/dist/chunk-J7N3DLH6.js.map +7 -0
  71. package/dist/chunk-JX5UI6RW.js +99 -0
  72. package/dist/chunk-JX5UI6RW.js.map +7 -0
  73. package/dist/chunk-K3BFZ7KG.js +154 -0
  74. package/dist/chunk-K3BFZ7KG.js.map +7 -0
  75. package/dist/chunk-KHJUQFIK.js +51 -0
  76. package/dist/chunk-KHJUQFIK.js.map +7 -0
  77. package/dist/chunk-KRBQLMOP.js +41 -0
  78. package/dist/chunk-KRBQLMOP.js.map +7 -0
  79. package/dist/chunk-KZRFUXGF.js +145 -0
  80. package/dist/chunk-KZRFUXGF.js.map +7 -0
  81. package/dist/chunk-L674RNKQ.js +492 -0
  82. package/dist/chunk-L674RNKQ.js.map +7 -0
  83. package/dist/chunk-N52AHNBH.js +47 -0
  84. package/dist/chunk-N52AHNBH.js.map +7 -0
  85. package/dist/chunk-NIDLJO6F.js +228 -0
  86. package/dist/chunk-NIDLJO6F.js.map +7 -0
  87. package/dist/chunk-NSBPE2FW.js +17 -0
  88. package/dist/chunk-NSBPE2FW.js.map +7 -0
  89. package/dist/chunk-OGVORIFM.js +70 -0
  90. package/dist/chunk-OGVORIFM.js.map +7 -0
  91. package/dist/chunk-OQSQC7VB.js +77 -0
  92. package/dist/chunk-OQSQC7VB.js.map +7 -0
  93. package/dist/chunk-PHLMIZKM.js +153 -0
  94. package/dist/chunk-PHLMIZKM.js.map +7 -0
  95. package/dist/chunk-PQU7GZ7A.js +92 -0
  96. package/dist/chunk-PQU7GZ7A.js.map +7 -0
  97. package/dist/chunk-PXVQLD7S.js +196 -0
  98. package/dist/chunk-PXVQLD7S.js.map +7 -0
  99. package/dist/chunk-QD6X4L4L.js +79 -0
  100. package/dist/chunk-QD6X4L4L.js.map +7 -0
  101. package/dist/chunk-QJQS6TUN.js +44 -0
  102. package/dist/chunk-QJQS6TUN.js.map +7 -0
  103. package/dist/chunk-QJXAULRC.js +191 -0
  104. package/dist/chunk-QJXAULRC.js.map +7 -0
  105. package/dist/chunk-QN34TGD3.js +83 -0
  106. package/dist/chunk-QN34TGD3.js.map +7 -0
  107. package/dist/chunk-R5MFHGHR.js +122 -0
  108. package/dist/chunk-R5MFHGHR.js.map +7 -0
  109. package/dist/chunk-RH7NHVSK.js +16 -0
  110. package/dist/chunk-RH7NHVSK.js.map +7 -0
  111. package/dist/chunk-RJ7BHDLM.js +121 -0
  112. package/dist/chunk-RJ7BHDLM.js.map +7 -0
  113. package/dist/chunk-RQ2TMLKG.js +142 -0
  114. package/dist/chunk-RQ2TMLKG.js.map +7 -0
  115. package/dist/chunk-S56LOTGQ.js +63 -0
  116. package/dist/chunk-S56LOTGQ.js.map +7 -0
  117. package/dist/chunk-UF73WX2J.js +49 -0
  118. package/dist/chunk-UF73WX2J.js.map +7 -0
  119. package/dist/chunk-W53GKIZQ.js +50 -0
  120. package/dist/chunk-W53GKIZQ.js.map +7 -0
  121. package/dist/chunk-WA4MWYRW.js +254 -0
  122. package/dist/chunk-WA4MWYRW.js.map +7 -0
  123. package/dist/chunk-WFULKPEQ.js +269 -0
  124. package/dist/chunk-WFULKPEQ.js.map +7 -0
  125. package/dist/chunk-XC6M4CSW.js +44 -0
  126. package/dist/chunk-XC6M4CSW.js.map +7 -0
  127. package/dist/chunk-XPUEGHXN.js +243 -0
  128. package/dist/chunk-XPUEGHXN.js.map +7 -0
  129. package/dist/chunk-XZXS2W24.js +148 -0
  130. package/dist/chunk-XZXS2W24.js.map +7 -0
  131. package/dist/chunk-YBNW7ARH.js +167 -0
  132. package/dist/chunk-YBNW7ARH.js.map +7 -0
  133. package/dist/chunk-YNIH3KMU.js +121 -0
  134. package/dist/chunk-YNIH3KMU.js.map +7 -0
  135. package/dist/commands/antigravity/backfill.js +135 -0
  136. package/dist/commands/antigravity/backfill.js.map +7 -0
  137. package/dist/commands/auth/create-key.js +48 -33
  138. package/dist/commands/auth/create-key.js.map +7 -1
  139. package/dist/commands/auth/login.js +58 -46
  140. package/dist/commands/auth/login.js.map +7 -1
  141. package/dist/commands/auth/logout.js +28 -13
  142. package/dist/commands/auth/logout.js.map +7 -1
  143. package/dist/commands/auth/revoke-key.js +32 -18
  144. package/dist/commands/auth/revoke-key.js.map +7 -1
  145. package/dist/commands/auth/status.js +40 -22
  146. package/dist/commands/auth/status.js.map +7 -1
  147. package/dist/commands/catalog/index.js +50 -34
  148. package/dist/commands/catalog/index.js.map +7 -1
  149. package/dist/commands/catalog/recommend.js +41 -26
  150. package/dist/commands/catalog/recommend.js.map +7 -1
  151. package/dist/commands/convert.js +72 -54
  152. package/dist/commands/convert.js.map +7 -1
  153. package/dist/commands/converters.js +52 -38
  154. package/dist/commands/converters.js.map +7 -1
  155. package/dist/commands/crons/list.js +50 -24
  156. package/dist/commands/crons/list.js.map +7 -1
  157. package/dist/commands/crons/run.js +72 -47
  158. package/dist/commands/crons/run.js.map +7 -1
  159. package/dist/commands/dashboard.js +45 -24
  160. package/dist/commands/dashboard.js.map +7 -1
  161. package/dist/commands/eval-targets/create.js +51 -39
  162. package/dist/commands/eval-targets/create.js.map +7 -1
  163. package/dist/commands/eval-targets/list.js +52 -35
  164. package/dist/commands/eval-targets/list.js.map +7 -1
  165. package/dist/commands/evals/agent.js +292 -0
  166. package/dist/commands/evals/agent.js.map +7 -0
  167. package/dist/commands/evals/benchmark.js +70 -51
  168. package/dist/commands/evals/benchmark.js.map +7 -1
  169. package/dist/commands/evals/compare.js +90 -78
  170. package/dist/commands/evals/compare.js.map +7 -1
  171. package/dist/commands/evals/create.js +64 -50
  172. package/dist/commands/evals/create.js.map +7 -1
  173. package/dist/commands/evals/optimize-description.js +225 -222
  174. package/dist/commands/evals/optimize-description.js.map +7 -1
  175. package/dist/commands/evals/optimize.js +206 -196
  176. package/dist/commands/evals/optimize.js.map +7 -1
  177. package/dist/commands/evals/run.js +178 -164
  178. package/dist/commands/evals/run.js.map +7 -1
  179. package/dist/commands/gateway/ensure.js +33 -19
  180. package/dist/commands/gateway/ensure.js.map +7 -1
  181. package/dist/commands/hooks/install.js +335 -275
  182. package/dist/commands/hooks/install.js.map +7 -1
  183. package/dist/commands/hooks/run.js +72 -53
  184. package/dist/commands/hooks/run.js.map +7 -1
  185. package/dist/commands/hooks/uninstall.js +117 -94
  186. package/dist/commands/hooks/uninstall.js.map +7 -1
  187. package/dist/commands/import.js +63 -53
  188. package/dist/commands/import.js.map +7 -1
  189. package/dist/commands/instructions/create.js +71 -58
  190. package/dist/commands/instructions/create.js.map +7 -1
  191. package/dist/commands/instructions/delete.js +53 -36
  192. package/dist/commands/instructions/delete.js.map +7 -1
  193. package/dist/commands/instructions/fork.js +33 -19
  194. package/dist/commands/instructions/fork.js.map +7 -1
  195. package/dist/commands/instructions/get.js +66 -49
  196. package/dist/commands/instructions/get.js.map +7 -1
  197. package/dist/commands/instructions/list.js +63 -46
  198. package/dist/commands/instructions/list.js.map +7 -1
  199. package/dist/commands/instructions/promote.js +41 -27
  200. package/dist/commands/instructions/promote.js.map +7 -1
  201. package/dist/commands/instructions/pull.js +37 -21
  202. package/dist/commands/instructions/pull.js.map +7 -1
  203. package/dist/commands/instructions/upstream.js +36 -21
  204. package/dist/commands/instructions/upstream.js.map +7 -1
  205. package/dist/commands/instructions/versions.js +51 -33
  206. package/dist/commands/instructions/versions.js.map +7 -1
  207. package/dist/commands/launcher.js +39 -0
  208. package/dist/commands/launcher.js.map +7 -0
  209. package/dist/commands/org/current.js +74 -68
  210. package/dist/commands/org/current.js.map +7 -1
  211. package/dist/commands/org/list.js +50 -36
  212. package/dist/commands/org/list.js.map +7 -1
  213. package/dist/commands/org/switch.js +69 -51
  214. package/dist/commands/org/switch.js.map +7 -1
  215. package/dist/commands/packs/add-instruction.js +36 -22
  216. package/dist/commands/packs/add-instruction.js.map +7 -1
  217. package/dist/commands/packs/apply.js +38 -24
  218. package/dist/commands/packs/apply.js.map +7 -1
  219. package/dist/commands/packs/create.js +47 -33
  220. package/dist/commands/packs/create.js.map +7 -1
  221. package/dist/commands/packs/fork.js +33 -19
  222. package/dist/commands/packs/fork.js.map +7 -1
  223. package/dist/commands/packs/get.js +54 -35
  224. package/dist/commands/packs/get.js.map +7 -1
  225. package/dist/commands/packs/list.js +64 -47
  226. package/dist/commands/packs/list.js.map +7 -1
  227. package/dist/commands/packs/remove-instruction.js +34 -20
  228. package/dist/commands/packs/remove-instruction.js.map +7 -1
  229. package/dist/commands/proxy/env.js +126 -116
  230. package/dist/commands/proxy/env.js.map +7 -1
  231. package/dist/commands/proxy/logs.js +83 -74
  232. package/dist/commands/proxy/logs.js.map +7 -1
  233. package/dist/commands/proxy/restart.js +34 -36
  234. package/dist/commands/proxy/restart.js.map +7 -1
  235. package/dist/commands/proxy/setup.js +432 -375
  236. package/dist/commands/proxy/setup.js.map +7 -1
  237. package/dist/commands/proxy/start.js +289 -289
  238. package/dist/commands/proxy/start.js.map +7 -1
  239. package/dist/commands/proxy/status.js +74 -64
  240. package/dist/commands/proxy/status.js.map +7 -1
  241. package/dist/commands/proxy/stop.js +81 -75
  242. package/dist/commands/proxy/stop.js.map +7 -1
  243. package/dist/commands/research/backfill.js +58 -0
  244. package/dist/commands/research/backfill.js.map +7 -0
  245. package/dist/commands/research/tail-transcript.js +69 -0
  246. package/dist/commands/research/tail-transcript.js.map +7 -0
  247. package/dist/commands/service/install.js +639 -405
  248. package/dist/commands/service/install.js.map +7 -1
  249. package/dist/commands/service/status.js +178 -111
  250. package/dist/commands/service/status.js.map +7 -1
  251. package/dist/commands/service/uninstall.js +85 -110
  252. package/dist/commands/service/uninstall.js.map +7 -1
  253. package/dist/commands/sessions/analyze.js +46 -25
  254. package/dist/commands/sessions/analyze.js.map +7 -1
  255. package/dist/commands/sessions/end.js +81 -79
  256. package/dist/commands/sessions/end.js.map +7 -1
  257. package/dist/commands/sessions/import.js +44 -27
  258. package/dist/commands/sessions/import.js.map +7 -1
  259. package/dist/commands/sessions/list.js +46 -33
  260. package/dist/commands/sessions/list.js.map +7 -1
  261. package/dist/commands/sessions/start.js +88 -87
  262. package/dist/commands/sessions/start.js.map +7 -1
  263. package/dist/commands/signals/report.js +42 -34
  264. package/dist/commands/signals/report.js.map +7 -1
  265. package/dist/commands/skills/export-approved.js +44 -30
  266. package/dist/commands/skills/export-approved.js.map +7 -1
  267. package/dist/commands/skills/install.js +99 -84
  268. package/dist/commands/skills/install.js.map +7 -1
  269. package/dist/commands/skills/list.js +59 -42
  270. package/dist/commands/skills/list.js.map +7 -1
  271. package/dist/commands/skills/publish.js +95 -78
  272. package/dist/commands/skills/publish.js.map +7 -1
  273. package/dist/commands/skills/search.js +68 -53
  274. package/dist/commands/skills/search.js.map +7 -1
  275. package/dist/commands/skills/update.js +52 -39
  276. package/dist/commands/skills/update.js.map +7 -1
  277. package/dist/commands/suggestions/accept.js +82 -59
  278. package/dist/commands/suggestions/accept.js.map +7 -1
  279. package/dist/commands/suggestions/dismiss.js +44 -26
  280. package/dist/commands/suggestions/dismiss.js.map +7 -1
  281. package/dist/commands/suggestions/list.js +59 -39
  282. package/dist/commands/suggestions/list.js.map +7 -1
  283. package/dist/commands/suggestions/refresh.js +26 -11
  284. package/dist/commands/suggestions/refresh.js.map +7 -1
  285. package/dist/cursor-BGQJ4CWI.js +134 -0
  286. package/dist/cursor-BGQJ4CWI.js.map +7 -0
  287. package/dist/dashboard/Dashboard.js +229 -126
  288. package/dist/dashboard/Dashboard.js.map +7 -1
  289. package/dist/dashboard/data.js +13 -137
  290. package/dist/dashboard/data.js.map +7 -1
  291. package/dist/dashboard/launcher/ActiveJobsList.js +10 -0
  292. package/dist/dashboard/launcher/ActiveJobsList.js.map +7 -0
  293. package/dist/dashboard/launcher/LauncherOverlay.js +14 -0
  294. package/dist/dashboard/launcher/LauncherOverlay.js.map +7 -0
  295. package/dist/dashboard/launcher/NewLaunchForm.js +10 -0
  296. package/dist/dashboard/launcher/NewLaunchForm.js.map +7 -0
  297. package/dist/dashboard/launcher/api.js +14 -0
  298. package/dist/dashboard/launcher/api.js.map +7 -0
  299. package/dist/dashboard/launcher/tool-labels.js +10 -0
  300. package/dist/dashboard/launcher/tool-labels.js.map +7 -0
  301. package/dist/dashboard/launcher/types.js +1 -0
  302. package/dist/dashboard/launcher/types.js.map +7 -0
  303. package/dist/dashboard/launcher/useLaunchJobs.js +9 -0
  304. package/dist/dashboard/launcher/useLaunchJobs.js.map +7 -0
  305. package/dist/dashboard/panels/friction.js +10 -22
  306. package/dist/dashboard/panels/friction.js.map +7 -1
  307. package/dist/dashboard/panels/insights.js +10 -109
  308. package/dist/dashboard/panels/insights.js.map +7 -1
  309. package/dist/dashboard/panels/instructions.js +10 -17
  310. package/dist/dashboard/panels/instructions.js.map +7 -1
  311. package/dist/dashboard/panels/outcomes.js +9 -28
  312. package/dist/dashboard/panels/outcomes.js.map +7 -1
  313. package/dist/dashboard/panels/overview.js +10 -20
  314. package/dist/dashboard/panels/overview.js.map +7 -1
  315. package/dist/dashboard/panels/shared.js +18 -61
  316. package/dist/dashboard/panels/shared.js.map +7 -1
  317. package/dist/dashboard/types.js +23 -26
  318. package/dist/dashboard/types.js.map +7 -1
  319. package/dist/dist-CSUYFYKI.js +52 -0
  320. package/dist/dist-CSUYFYKI.js.map +7 -0
  321. package/dist/index.js +8 -2
  322. package/dist/index.js.map +7 -1
  323. package/dist/lib/active-org-refresh.js +15 -108
  324. package/dist/lib/active-org-refresh.js.map +7 -1
  325. package/dist/lib/active-org.js +15 -95
  326. package/dist/lib/active-org.js.map +7 -1
  327. package/dist/lib/agent-loop.js +44 -0
  328. package/dist/lib/agent-loop.js.map +7 -0
  329. package/dist/lib/antigravity-transcript.js +22 -0
  330. package/dist/lib/antigravity-transcript.js.map +7 -0
  331. package/dist/lib/api-client.js +21 -92
  332. package/dist/lib/api-client.js.map +7 -1
  333. package/dist/lib/auth.js +26 -137
  334. package/dist/lib/auth.js.map +7 -1
  335. package/dist/lib/detect-languages.js +8 -113
  336. package/dist/lib/detect-languages.js.map +7 -1
  337. package/dist/lib/detect-tmux.js +9 -0
  338. package/dist/lib/detect-tmux.js.map +7 -0
  339. package/dist/lib/eval-analyzer.js +9 -89
  340. package/dist/lib/eval-analyzer.js.map +7 -1
  341. package/dist/lib/eval-benchmark.js +12 -92
  342. package/dist/lib/eval-benchmark.js.map +7 -1
  343. package/dist/lib/eval-conversation-handler.js +13 -200
  344. package/dist/lib/eval-conversation-handler.js.map +7 -1
  345. package/dist/lib/eval-executor.js +8 -83
  346. package/dist/lib/eval-executor.js.map +7 -1
  347. package/dist/lib/eval-grader.js +9 -123
  348. package/dist/lib/eval-grader.js.map +7 -1
  349. package/dist/lib/eval-meta-judge.js +9 -116
  350. package/dist/lib/eval-meta-judge.js.map +7 -1
  351. package/dist/lib/eval-trigger-tester.js +11 -96
  352. package/dist/lib/eval-trigger-tester.js.map +7 -1
  353. package/dist/lib/eval-worktree.js +8 -87
  354. package/dist/lib/eval-worktree.js.map +7 -1
  355. package/dist/lib/gateway-entry.js +20 -18
  356. package/dist/lib/gateway-entry.js.map +7 -1
  357. package/dist/lib/gateway-lifecycle.js +22 -97
  358. package/dist/lib/gateway-lifecycle.js.map +7 -1
  359. package/dist/lib/gateway.js +12 -216
  360. package/dist/lib/gateway.js.map +7 -1
  361. package/dist/lib/handlers/cron-close-stale-sessions.js +18 -7
  362. package/dist/lib/handlers/cron-close-stale-sessions.js.map +7 -1
  363. package/dist/lib/handlers/cron-data-integrity-audit.js +21 -15
  364. package/dist/lib/handlers/cron-data-integrity-audit.js.map +7 -1
  365. package/dist/lib/handlers/cron-refresh-skills.js +7 -90
  366. package/dist/lib/handlers/cron-refresh-skills.js.map +7 -1
  367. package/dist/lib/handlers/cron-suggest-instructions.js +14 -158
  368. package/dist/lib/handlers/cron-suggest-instructions.js.map +7 -1
  369. package/dist/lib/handlers/process-announcement.js +11 -0
  370. package/dist/lib/handlers/process-announcement.js.map +7 -0
  371. package/dist/lib/handlers/process-changelog.js +11 -0
  372. package/dist/lib/handlers/process-changelog.js.map +7 -0
  373. package/dist/lib/handlers/process-conversation.js +14 -35
  374. package/dist/lib/handlers/process-conversation.js.map +7 -1
  375. package/dist/lib/handlers/process-eval.js +15 -207
  376. package/dist/lib/handlers/process-eval.js.map +7 -1
  377. package/dist/lib/handlers/process-insights.js +14 -300
  378. package/dist/lib/handlers/process-insights.js.map +7 -1
  379. package/dist/lib/handlers/process-launch.js +16 -41
  380. package/dist/lib/handlers/process-launch.js.map +7 -1
  381. package/dist/lib/handlers/process-run-cleanup.js +13 -0
  382. package/dist/lib/handlers/process-run-cleanup.js.map +7 -0
  383. package/dist/lib/handlers/process-send-message.js +10 -0
  384. package/dist/lib/handlers/process-send-message.js.map +7 -0
  385. package/dist/lib/handlers/process-session-goal.js +11 -74
  386. package/dist/lib/handlers/process-session-goal.js.map +7 -1
  387. package/dist/lib/hooks-config.js +52 -544
  388. package/dist/lib/hooks-config.js.map +7 -1
  389. package/dist/lib/insights-prompts.js +12 -145
  390. package/dist/lib/insights-prompts.js.map +7 -1
  391. package/dist/lib/job-helpers.js +1 -0
  392. package/dist/lib/job-helpers.js.map +7 -0
  393. package/dist/lib/llm-client.js +16 -274
  394. package/dist/lib/llm-client.js.map +7 -1
  395. package/dist/lib/manual-tasks.js +22 -0
  396. package/dist/lib/manual-tasks.js.map +7 -0
  397. package/dist/lib/output.js +12 -36
  398. package/dist/lib/output.js.map +7 -1
  399. package/dist/lib/permanent-job-error.js +10 -23
  400. package/dist/lib/permanent-job-error.js.map +7 -1
  401. package/dist/lib/provider-aggregator.js +57 -55
  402. package/dist/lib/provider-aggregator.js.map +7 -1
  403. package/dist/lib/research-client.js +12 -0
  404. package/dist/lib/research-client.js.map +7 -0
  405. package/dist/lib/skills-loader.js +8 -51
  406. package/dist/lib/skills-loader.js.map +7 -1
  407. package/dist/lib/statusline-shim.js +16 -0
  408. package/dist/lib/statusline-shim.js.map +7 -0
  409. package/dist/lib/terminal-target-heartbeat.js +15 -0
  410. package/dist/lib/terminal-target-heartbeat.js.map +7 -0
  411. package/dist/lib/tmux.js +16 -0
  412. package/dist/lib/tmux.js.map +7 -0
  413. package/dist/lib/transcript-rate-limit-watcher.js +22 -0
  414. package/dist/lib/transcript-rate-limit-watcher.js.map +7 -0
  415. package/dist/lib/types.js +8 -7
  416. package/dist/lib/types.js.map +7 -1
  417. package/dist/lib/version-check.js +10 -106
  418. package/dist/lib/version-check.js.map +7 -1
  419. package/dist/lib/which.js +8 -0
  420. package/dist/lib/which.js.map +7 -0
  421. package/dist/lib/worktree.js +17 -0
  422. package/dist/lib/worktree.js.map +7 -0
  423. package/dist/opencode-IQ7X5YMJ.js +190 -0
  424. package/dist/opencode-IQ7X5YMJ.js.map +7 -0
  425. package/oclif.manifest.json +299 -66
  426. package/package.json +27 -11
  427. package/dist/base-command.d.ts +0 -12
  428. package/dist/base-command.d.ts.map +0 -1
  429. package/dist/commands/auth/create-key.d.ts +0 -11
  430. package/dist/commands/auth/create-key.d.ts.map +0 -1
  431. package/dist/commands/auth/login.d.ts +0 -11
  432. package/dist/commands/auth/login.d.ts.map +0 -1
  433. package/dist/commands/auth/logout.d.ts +0 -7
  434. package/dist/commands/auth/logout.d.ts.map +0 -1
  435. package/dist/commands/auth/revoke-key.d.ts +0 -10
  436. package/dist/commands/auth/revoke-key.d.ts.map +0 -1
  437. package/dist/commands/auth/status.d.ts +0 -7
  438. package/dist/commands/auth/status.d.ts.map +0 -1
  439. package/dist/commands/catalog/index.d.ts +0 -11
  440. package/dist/commands/catalog/index.d.ts.map +0 -1
  441. package/dist/commands/catalog/recommend.d.ts +0 -9
  442. package/dist/commands/catalog/recommend.d.ts.map +0 -1
  443. package/dist/commands/convert.d.ts +0 -15
  444. package/dist/commands/convert.d.ts.map +0 -1
  445. package/dist/commands/converters.d.ts +0 -12
  446. package/dist/commands/converters.d.ts.map +0 -1
  447. package/dist/commands/crons/list.d.ts +0 -7
  448. package/dist/commands/crons/list.d.ts.map +0 -1
  449. package/dist/commands/crons/run.d.ts +0 -13
  450. package/dist/commands/crons/run.d.ts.map +0 -1
  451. package/dist/commands/dashboard.d.ts +0 -10
  452. package/dist/commands/dashboard.d.ts.map +0 -1
  453. package/dist/commands/eval-targets/create.d.ts +0 -14
  454. package/dist/commands/eval-targets/create.d.ts.map +0 -1
  455. package/dist/commands/eval-targets/list.d.ts +0 -10
  456. package/dist/commands/eval-targets/list.d.ts.map +0 -1
  457. package/dist/commands/evals/benchmark.d.ts +0 -13
  458. package/dist/commands/evals/benchmark.d.ts.map +0 -1
  459. package/dist/commands/evals/compare.d.ts +0 -15
  460. package/dist/commands/evals/compare.d.ts.map +0 -1
  461. package/dist/commands/evals/create.d.ts +0 -17
  462. package/dist/commands/evals/create.d.ts.map +0 -1
  463. package/dist/commands/evals/listen.d.ts +0 -37
  464. package/dist/commands/evals/listen.d.ts.map +0 -1
  465. package/dist/commands/evals/listen.js +0 -188
  466. package/dist/commands/evals/listen.js.map +0 -1
  467. package/dist/commands/evals/listen.test.d.ts +0 -2
  468. package/dist/commands/evals/listen.test.d.ts.map +0 -1
  469. package/dist/commands/evals/listen.test.js +0 -48
  470. package/dist/commands/evals/listen.test.js.map +0 -1
  471. package/dist/commands/evals/optimize-description.d.ts +0 -22
  472. package/dist/commands/evals/optimize-description.d.ts.map +0 -1
  473. package/dist/commands/evals/optimize.d.ts +0 -22
  474. package/dist/commands/evals/optimize.d.ts.map +0 -1
  475. package/dist/commands/evals/run.d.ts +0 -21
  476. package/dist/commands/evals/run.d.ts.map +0 -1
  477. package/dist/commands/gateway/ensure.d.ts +0 -7
  478. package/dist/commands/gateway/ensure.d.ts.map +0 -1
  479. package/dist/commands/hooks/install.d.ts +0 -16
  480. package/dist/commands/hooks/install.d.ts.map +0 -1
  481. package/dist/commands/hooks/run.d.ts +0 -11
  482. package/dist/commands/hooks/run.d.ts.map +0 -1
  483. package/dist/commands/hooks/uninstall.d.ts +0 -7
  484. package/dist/commands/hooks/uninstall.d.ts.map +0 -1
  485. package/dist/commands/import.d.ts +0 -17
  486. package/dist/commands/import.d.ts.map +0 -1
  487. package/dist/commands/instructions/create.d.ts +0 -17
  488. package/dist/commands/instructions/create.d.ts.map +0 -1
  489. package/dist/commands/instructions/delete.d.ts +0 -13
  490. package/dist/commands/instructions/delete.d.ts.map +0 -1
  491. package/dist/commands/instructions/fork.d.ts +0 -10
  492. package/dist/commands/instructions/fork.d.ts.map +0 -1
  493. package/dist/commands/instructions/get.d.ts +0 -15
  494. package/dist/commands/instructions/get.d.ts.map +0 -1
  495. package/dist/commands/instructions/list.d.ts +0 -12
  496. package/dist/commands/instructions/list.d.ts.map +0 -1
  497. package/dist/commands/instructions/promote.d.ts +0 -14
  498. package/dist/commands/instructions/promote.d.ts.map +0 -1
  499. package/dist/commands/instructions/pull.d.ts +0 -9
  500. package/dist/commands/instructions/pull.d.ts.map +0 -1
  501. package/dist/commands/instructions/upstream.d.ts +0 -9
  502. package/dist/commands/instructions/upstream.d.ts.map +0 -1
  503. package/dist/commands/instructions/versions.d.ts +0 -12
  504. package/dist/commands/instructions/versions.d.ts.map +0 -1
  505. package/dist/commands/org/current.d.ts +0 -7
  506. package/dist/commands/org/current.d.ts.map +0 -1
  507. package/dist/commands/org/list.d.ts +0 -7
  508. package/dist/commands/org/list.d.ts.map +0 -1
  509. package/dist/commands/org/switch.d.ts +0 -13
  510. package/dist/commands/org/switch.d.ts.map +0 -1
  511. package/dist/commands/packs/add-instruction.d.ts +0 -11
  512. package/dist/commands/packs/add-instruction.d.ts.map +0 -1
  513. package/dist/commands/packs/apply.d.ts +0 -13
  514. package/dist/commands/packs/apply.d.ts.map +0 -1
  515. package/dist/commands/packs/create.d.ts +0 -13
  516. package/dist/commands/packs/create.d.ts.map +0 -1
  517. package/dist/commands/packs/fork.d.ts +0 -10
  518. package/dist/commands/packs/fork.d.ts.map +0 -1
  519. package/dist/commands/packs/get.d.ts +0 -10
  520. package/dist/commands/packs/get.d.ts.map +0 -1
  521. package/dist/commands/packs/list.d.ts +0 -22
  522. package/dist/commands/packs/list.d.ts.map +0 -1
  523. package/dist/commands/packs/remove-instruction.d.ts +0 -11
  524. package/dist/commands/packs/remove-instruction.d.ts.map +0 -1
  525. package/dist/commands/proxy/env.d.ts +0 -14
  526. package/dist/commands/proxy/env.d.ts.map +0 -1
  527. package/dist/commands/proxy/logs.d.ts +0 -11
  528. package/dist/commands/proxy/logs.d.ts.map +0 -1
  529. package/dist/commands/proxy/restart.d.ts +0 -11
  530. package/dist/commands/proxy/restart.d.ts.map +0 -1
  531. package/dist/commands/proxy/setup.d.ts +0 -23
  532. package/dist/commands/proxy/setup.d.ts.map +0 -1
  533. package/dist/commands/proxy/start.d.ts +0 -17
  534. package/dist/commands/proxy/start.d.ts.map +0 -1
  535. package/dist/commands/proxy/status.d.ts +0 -7
  536. package/dist/commands/proxy/status.d.ts.map +0 -1
  537. package/dist/commands/proxy/stop.d.ts +0 -8
  538. package/dist/commands/proxy/stop.d.ts.map +0 -1
  539. package/dist/commands/service/install.d.ts +0 -33
  540. package/dist/commands/service/install.d.ts.map +0 -1
  541. package/dist/commands/service/install.test.d.ts +0 -2
  542. package/dist/commands/service/install.test.d.ts.map +0 -1
  543. package/dist/commands/service/install.test.js +0 -345
  544. package/dist/commands/service/install.test.js.map +0 -1
  545. package/dist/commands/service/status.d.ts +0 -6
  546. package/dist/commands/service/status.d.ts.map +0 -1
  547. package/dist/commands/service/uninstall.d.ts +0 -6
  548. package/dist/commands/service/uninstall.d.ts.map +0 -1
  549. package/dist/commands/sessions/analyze.d.ts +0 -10
  550. package/dist/commands/sessions/analyze.d.ts.map +0 -1
  551. package/dist/commands/sessions/end.d.ts +0 -9
  552. package/dist/commands/sessions/end.d.ts.map +0 -1
  553. package/dist/commands/sessions/import.d.ts +0 -13
  554. package/dist/commands/sessions/import.d.ts.map +0 -1
  555. package/dist/commands/sessions/list.d.ts +0 -11
  556. package/dist/commands/sessions/list.d.ts.map +0 -1
  557. package/dist/commands/sessions/start.d.ts +0 -11
  558. package/dist/commands/sessions/start.d.ts.map +0 -1
  559. package/dist/commands/signals/report.d.ts +0 -10
  560. package/dist/commands/signals/report.d.ts.map +0 -1
  561. package/dist/commands/signals/report.test.d.ts +0 -2
  562. package/dist/commands/signals/report.test.d.ts.map +0 -1
  563. package/dist/commands/signals/report.test.js +0 -65
  564. package/dist/commands/signals/report.test.js.map +0 -1
  565. package/dist/commands/skills/export-approved.d.ts +0 -10
  566. package/dist/commands/skills/export-approved.d.ts.map +0 -1
  567. package/dist/commands/skills/install.d.ts +0 -15
  568. package/dist/commands/skills/install.d.ts.map +0 -1
  569. package/dist/commands/skills/list.d.ts +0 -11
  570. package/dist/commands/skills/list.d.ts.map +0 -1
  571. package/dist/commands/skills/publish.d.ts +0 -17
  572. package/dist/commands/skills/publish.d.ts.map +0 -1
  573. package/dist/commands/skills/search.d.ts +0 -17
  574. package/dist/commands/skills/search.d.ts.map +0 -1
  575. package/dist/commands/skills/update.d.ts +0 -10
  576. package/dist/commands/skills/update.d.ts.map +0 -1
  577. package/dist/commands/suggestions/accept.d.ts +0 -16
  578. package/dist/commands/suggestions/accept.d.ts.map +0 -1
  579. package/dist/commands/suggestions/accept.test.d.ts +0 -2
  580. package/dist/commands/suggestions/accept.test.d.ts.map +0 -1
  581. package/dist/commands/suggestions/accept.test.js +0 -52
  582. package/dist/commands/suggestions/accept.test.js.map +0 -1
  583. package/dist/commands/suggestions/dismiss.d.ts +0 -10
  584. package/dist/commands/suggestions/dismiss.d.ts.map +0 -1
  585. package/dist/commands/suggestions/list.d.ts +0 -10
  586. package/dist/commands/suggestions/list.d.ts.map +0 -1
  587. package/dist/commands/suggestions/refresh.d.ts +0 -7
  588. package/dist/commands/suggestions/refresh.d.ts.map +0 -1
  589. package/dist/dashboard/Dashboard.d.ts +0 -3
  590. package/dist/dashboard/Dashboard.d.ts.map +0 -1
  591. package/dist/dashboard/data.d.ts +0 -11
  592. package/dist/dashboard/data.d.ts.map +0 -1
  593. package/dist/dashboard/panels/friction.d.ts +0 -7
  594. package/dist/dashboard/panels/friction.d.ts.map +0 -1
  595. package/dist/dashboard/panels/insights.d.ts +0 -8
  596. package/dist/dashboard/panels/insights.d.ts.map +0 -1
  597. package/dist/dashboard/panels/instructions.d.ts +0 -9
  598. package/dist/dashboard/panels/instructions.d.ts.map +0 -1
  599. package/dist/dashboard/panels/outcomes.d.ts +0 -7
  600. package/dist/dashboard/panels/outcomes.d.ts.map +0 -1
  601. package/dist/dashboard/panels/overview.d.ts +0 -8
  602. package/dist/dashboard/panels/overview.d.ts.map +0 -1
  603. package/dist/dashboard/panels/shared.d.ts +0 -17
  604. package/dist/dashboard/panels/shared.d.ts.map +0 -1
  605. package/dist/dashboard/types.d.ts +0 -80
  606. package/dist/dashboard/types.d.ts.map +0 -1
  607. package/dist/index.d.ts +0 -2
  608. package/dist/index.d.ts.map +0 -1
  609. package/dist/lib/active-org-refresh.d.ts +0 -22
  610. package/dist/lib/active-org-refresh.d.ts.map +0 -1
  611. package/dist/lib/active-org-refresh.test.d.ts +0 -2
  612. package/dist/lib/active-org-refresh.test.d.ts.map +0 -1
  613. package/dist/lib/active-org-refresh.test.js +0 -190
  614. package/dist/lib/active-org-refresh.test.js.map +0 -1
  615. package/dist/lib/active-org.d.ts +0 -43
  616. package/dist/lib/active-org.d.ts.map +0 -1
  617. package/dist/lib/active-org.test.d.ts +0 -2
  618. package/dist/lib/active-org.test.d.ts.map +0 -1
  619. package/dist/lib/active-org.test.js +0 -147
  620. package/dist/lib/active-org.test.js.map +0 -1
  621. package/dist/lib/api-client.d.ts +0 -17
  622. package/dist/lib/api-client.d.ts.map +0 -1
  623. package/dist/lib/api-client.test.d.ts +0 -2
  624. package/dist/lib/api-client.test.d.ts.map +0 -1
  625. package/dist/lib/api-client.test.js +0 -161
  626. package/dist/lib/api-client.test.js.map +0 -1
  627. package/dist/lib/auth.d.ts +0 -27
  628. package/dist/lib/auth.d.ts.map +0 -1
  629. package/dist/lib/auth.test.d.ts +0 -2
  630. package/dist/lib/auth.test.d.ts.map +0 -1
  631. package/dist/lib/auth.test.js +0 -110
  632. package/dist/lib/auth.test.js.map +0 -1
  633. package/dist/lib/cron-registry.d.ts +0 -47
  634. package/dist/lib/cron-registry.d.ts.map +0 -1
  635. package/dist/lib/cron-registry.js +0 -102
  636. package/dist/lib/cron-registry.js.map +0 -1
  637. package/dist/lib/cron-registry.test.d.ts +0 -2
  638. package/dist/lib/cron-registry.test.d.ts.map +0 -1
  639. package/dist/lib/cron-registry.test.js +0 -136
  640. package/dist/lib/cron-registry.test.js.map +0 -1
  641. package/dist/lib/cron-runner.d.ts +0 -16
  642. package/dist/lib/cron-runner.d.ts.map +0 -1
  643. package/dist/lib/cron-runner.js +0 -68
  644. package/dist/lib/cron-runner.js.map +0 -1
  645. package/dist/lib/detect-languages.d.ts +0 -7
  646. package/dist/lib/detect-languages.d.ts.map +0 -1
  647. package/dist/lib/detect-languages.test.d.ts +0 -2
  648. package/dist/lib/detect-languages.test.d.ts.map +0 -1
  649. package/dist/lib/detect-languages.test.js +0 -29
  650. package/dist/lib/detect-languages.test.js.map +0 -1
  651. package/dist/lib/eval-analyzer.d.ts +0 -23
  652. package/dist/lib/eval-analyzer.d.ts.map +0 -1
  653. package/dist/lib/eval-benchmark.d.ts +0 -17
  654. package/dist/lib/eval-benchmark.d.ts.map +0 -1
  655. package/dist/lib/eval-conversation-handler.d.ts +0 -9
  656. package/dist/lib/eval-conversation-handler.d.ts.map +0 -1
  657. package/dist/lib/eval-executor.d.ts +0 -21
  658. package/dist/lib/eval-executor.d.ts.map +0 -1
  659. package/dist/lib/eval-executor.test.d.ts +0 -2
  660. package/dist/lib/eval-executor.test.d.ts.map +0 -1
  661. package/dist/lib/eval-executor.test.js +0 -8
  662. package/dist/lib/eval-executor.test.js.map +0 -1
  663. package/dist/lib/eval-grader.d.ts +0 -38
  664. package/dist/lib/eval-grader.d.ts.map +0 -1
  665. package/dist/lib/eval-grader.test.d.ts +0 -2
  666. package/dist/lib/eval-grader.test.d.ts.map +0 -1
  667. package/dist/lib/eval-grader.test.js +0 -8
  668. package/dist/lib/eval-grader.test.js.map +0 -1
  669. package/dist/lib/eval-meta-judge.d.ts +0 -28
  670. package/dist/lib/eval-meta-judge.d.ts.map +0 -1
  671. package/dist/lib/eval-trigger-tester.d.ts +0 -19
  672. package/dist/lib/eval-trigger-tester.d.ts.map +0 -1
  673. package/dist/lib/eval-worktree.d.ts +0 -11
  674. package/dist/lib/eval-worktree.d.ts.map +0 -1
  675. package/dist/lib/eval-worktree.test.d.ts +0 -2
  676. package/dist/lib/eval-worktree.test.d.ts.map +0 -1
  677. package/dist/lib/eval-worktree.test.js +0 -68
  678. package/dist/lib/eval-worktree.test.js.map +0 -1
  679. package/dist/lib/gateway-entry.d.ts +0 -3
  680. package/dist/lib/gateway-entry.d.ts.map +0 -1
  681. package/dist/lib/gateway-lifecycle.d.ts +0 -9
  682. package/dist/lib/gateway-lifecycle.d.ts.map +0 -1
  683. package/dist/lib/gateway.d.ts +0 -11
  684. package/dist/lib/gateway.d.ts.map +0 -1
  685. package/dist/lib/graphile-worker-runner.d.ts +0 -124
  686. package/dist/lib/graphile-worker-runner.d.ts.map +0 -1
  687. package/dist/lib/graphile-worker-runner.js +0 -530
  688. package/dist/lib/graphile-worker-runner.js.map +0 -1
  689. package/dist/lib/graphile-worker-runner.test.d.ts +0 -2
  690. package/dist/lib/graphile-worker-runner.test.d.ts.map +0 -1
  691. package/dist/lib/graphile-worker-runner.test.js +0 -153
  692. package/dist/lib/graphile-worker-runner.test.js.map +0 -1
  693. package/dist/lib/handlers/cron-close-stale-sessions.d.ts +0 -3
  694. package/dist/lib/handlers/cron-close-stale-sessions.d.ts.map +0 -1
  695. package/dist/lib/handlers/cron-data-integrity-audit.d.ts +0 -3
  696. package/dist/lib/handlers/cron-data-integrity-audit.d.ts.map +0 -1
  697. package/dist/lib/handlers/cron-refresh-skills.d.ts +0 -3
  698. package/dist/lib/handlers/cron-refresh-skills.d.ts.map +0 -1
  699. package/dist/lib/handlers/cron-refresh-skills.test.d.ts +0 -2
  700. package/dist/lib/handlers/cron-refresh-skills.test.d.ts.map +0 -1
  701. package/dist/lib/handlers/cron-refresh-skills.test.js +0 -114
  702. package/dist/lib/handlers/cron-refresh-skills.test.js.map +0 -1
  703. package/dist/lib/handlers/cron-regenerate-insights.d.ts +0 -3
  704. package/dist/lib/handlers/cron-regenerate-insights.d.ts.map +0 -1
  705. package/dist/lib/handlers/cron-regenerate-insights.js +0 -6
  706. package/dist/lib/handlers/cron-regenerate-insights.js.map +0 -1
  707. package/dist/lib/handlers/cron-suggest-instructions.d.ts +0 -3
  708. package/dist/lib/handlers/cron-suggest-instructions.d.ts.map +0 -1
  709. package/dist/lib/handlers/cron-suggest-instructions.test.d.ts +0 -2
  710. package/dist/lib/handlers/cron-suggest-instructions.test.d.ts.map +0 -1
  711. package/dist/lib/handlers/cron-suggest-instructions.test.js +0 -80
  712. package/dist/lib/handlers/cron-suggest-instructions.test.js.map +0 -1
  713. package/dist/lib/handlers/process-conversation.d.ts +0 -35
  714. package/dist/lib/handlers/process-conversation.d.ts.map +0 -1
  715. package/dist/lib/handlers/process-eval.d.ts +0 -32
  716. package/dist/lib/handlers/process-eval.d.ts.map +0 -1
  717. package/dist/lib/handlers/process-insights.d.ts +0 -39
  718. package/dist/lib/handlers/process-insights.d.ts.map +0 -1
  719. package/dist/lib/handlers/process-launch.d.ts +0 -29
  720. package/dist/lib/handlers/process-launch.d.ts.map +0 -1
  721. package/dist/lib/handlers/process-session-goal.d.ts +0 -29
  722. package/dist/lib/handlers/process-session-goal.d.ts.map +0 -1
  723. package/dist/lib/handlers/process-session-goal.test.d.ts +0 -2
  724. package/dist/lib/handlers/process-session-goal.test.d.ts.map +0 -1
  725. package/dist/lib/handlers/process-session-goal.test.js +0 -134
  726. package/dist/lib/handlers/process-session-goal.test.js.map +0 -1
  727. package/dist/lib/hooks-config.d.ts +0 -119
  728. package/dist/lib/hooks-config.d.ts.map +0 -1
  729. package/dist/lib/hooks-config.test.d.ts +0 -2
  730. package/dist/lib/hooks-config.test.d.ts.map +0 -1
  731. package/dist/lib/hooks-config.test.js +0 -231
  732. package/dist/lib/hooks-config.test.js.map +0 -1
  733. package/dist/lib/insights-prompts.d.ts +0 -13
  734. package/dist/lib/insights-prompts.d.ts.map +0 -1
  735. package/dist/lib/llm-client.d.ts +0 -26
  736. package/dist/lib/llm-client.d.ts.map +0 -1
  737. package/dist/lib/llm-client.test.d.ts +0 -2
  738. package/dist/lib/llm-client.test.d.ts.map +0 -1
  739. package/dist/lib/llm-client.test.js +0 -62
  740. package/dist/lib/llm-client.test.js.map +0 -1
  741. package/dist/lib/mirror-writer-db.d.ts +0 -12
  742. package/dist/lib/mirror-writer-db.d.ts.map +0 -1
  743. package/dist/lib/mirror-writer-db.js +0 -51
  744. package/dist/lib/mirror-writer-db.js.map +0 -1
  745. package/dist/lib/mirror-writer.d.ts +0 -35
  746. package/dist/lib/mirror-writer.d.ts.map +0 -1
  747. package/dist/lib/mirror-writer.js +0 -27
  748. package/dist/lib/mirror-writer.js.map +0 -1
  749. package/dist/lib/mirror-writer.test.d.ts +0 -2
  750. package/dist/lib/mirror-writer.test.d.ts.map +0 -1
  751. package/dist/lib/mirror-writer.test.js +0 -47
  752. package/dist/lib/mirror-writer.test.js.map +0 -1
  753. package/dist/lib/output.d.ts +0 -4
  754. package/dist/lib/output.d.ts.map +0 -1
  755. package/dist/lib/output.test.d.ts +0 -2
  756. package/dist/lib/output.test.d.ts.map +0 -1
  757. package/dist/lib/output.test.js +0 -71
  758. package/dist/lib/output.test.js.map +0 -1
  759. package/dist/lib/permanent-job-error.d.ts +0 -17
  760. package/dist/lib/permanent-job-error.d.ts.map +0 -1
  761. package/dist/lib/permanent-job-error.test.d.ts +0 -2
  762. package/dist/lib/permanent-job-error.test.d.ts.map +0 -1
  763. package/dist/lib/permanent-job-error.test.js +0 -29
  764. package/dist/lib/permanent-job-error.test.js.map +0 -1
  765. package/dist/lib/provider-aggregator.d.ts +0 -24
  766. package/dist/lib/provider-aggregator.d.ts.map +0 -1
  767. package/dist/lib/provider-aggregator.test.d.ts +0 -2
  768. package/dist/lib/provider-aggregator.test.d.ts.map +0 -1
  769. package/dist/lib/provider-aggregator.test.js +0 -103
  770. package/dist/lib/provider-aggregator.test.js.map +0 -1
  771. package/dist/lib/skills-loader.d.ts +0 -6
  772. package/dist/lib/skills-loader.d.ts.map +0 -1
  773. package/dist/lib/types.d.ts +0 -48
  774. package/dist/lib/types.d.ts.map +0 -1
  775. package/dist/lib/version-check.d.ts +0 -11
  776. package/dist/lib/version-check.d.ts.map +0 -1
  777. package/dist/test-helpers.d.ts +0 -58
  778. package/dist/test-helpers.d.ts.map +0 -1
  779. package/dist/test-helpers.js +0 -58
  780. package/dist/test-helpers.js.map +0 -1
@@ -1 +1,7 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../../src/commands/proxy/start.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/commands/proxy/start.ts"],
4
+ "sourcesContent": ["import { Flags } from '@oclif/core';\nimport { execSync, spawn, spawnSync } from 'node:child_process';\nimport { appendFileSync, existsSync, mkdirSync, openSync, readFileSync, writeFileSync } from 'node:fs';\nimport { homedir } from 'node:os';\nimport { join, resolve } from 'node:path';\nimport { BaseCommand } from '../../base-command.js';\nimport { isAuthenticated } from '../../lib/auth.js';\nimport { findBinary } from '../../lib/which.js';\n\nconst DEFAULT_PORT = 8788;\nconst CONFIG_DIR = join(homedir(), '.config', 'rulemetric');\nconst PID_FILE = join(CONFIG_DIR, 'proxy.pid');\nconst LOG_FILE = join(CONFIG_DIR, 'proxy.log');\nconst DOCKER_IMAGE = 'rulemetric/proxy';\nconst DOCKER_CONTAINER = 'rulemetric-proxy';\n\nfunction findAddonPath(): string {\n const candidates = [\n resolve(import.meta.dirname, '../../../../../packages/proxy/addon/rulemetric_addon.py'),\n resolve(import.meta.dirname, '../../../node_modules/@rulemetric/proxy/addon/rulemetric_addon.py'),\n resolve(import.meta.dirname, '../../../../../node_modules/@rulemetric/proxy/addon/rulemetric_addon.py'),\n ];\n for (const p of candidates) {\n if (existsSync(p)) return p;\n }\n throw new Error(\n 'Could not find rulemetric_addon.py. Is @rulemetric/proxy installed?\\n' +\n 'Searched:\\n' + candidates.map(c => ` ${c}`).join('\\n'),\n );\n}\n\nfunction findDockerfilePath(): string {\n const candidates = [\n resolve(import.meta.dirname, '../../../../../packages/proxy'),\n resolve(import.meta.dirname, '../../../node_modules/@rulemetric/proxy'),\n resolve(import.meta.dirname, '../../../../../node_modules/@rulemetric/proxy'),\n ];\n for (const p of candidates) {\n if (existsSync(join(p, 'Dockerfile'))) return p;\n }\n throw new Error('Could not find proxy Dockerfile. Is @rulemetric/proxy installed?');\n}\n\nfunction dockerImageExists(): boolean {\n const result = spawnSync('docker', ['image', 'inspect', DOCKER_IMAGE], { stdio: 'ignore' });\n return result.status === 0;\n}\n\nfunction dockerContainerRunning(): boolean {\n const result = spawnSync('docker', ['container', 'inspect', '-f', '{{.State.Running}}', DOCKER_CONTAINER], {\n encoding: 'utf-8',\n stdio: ['ignore', 'pipe', 'ignore'],\n });\n return result.status === 0 && result.stdout?.trim() === 'true';\n}\n\nexport default class ProxyStart extends BaseCommand {\n static override description = 'Start context capture proxy';\n\n static override examples = [\n '<%= config.bin %> proxy start',\n '<%= config.bin %> proxy start --docker',\n '<%= config.bin %> proxy start --port 9090',\n '<%= config.bin %> proxy start --web',\n ];\n\n static override flags = {\n port: Flags.integer({ char: 'p', default: DEFAULT_PORT, description: 'Proxy listen port' }),\n docker: Flags.boolean({ char: 'd', default: false, description: 'Run proxy in Docker (no local mitmproxy needed)' }),\n web: Flags.boolean({ default: false, description: 'Launch mitmweb debug UI instead of mitmdump (local mode only)' }),\n 'skip-checks': Flags.boolean({ default: false, description: 'Skip prerequisite checks' }),\n build: Flags.boolean({ default: false, description: 'Force rebuild Docker image' }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(ProxyStart);\n const port = flags.port;\n\n if (flags.docker) {\n await this.startDocker(port, flags.build);\n } else {\n await this.startLocal(port, flags.web, flags['skip-checks']);\n }\n }\n\n private async startDocker(port: number, forceBuild: boolean): Promise<void> {\n // Check Docker is available\n try {\n execSync('docker info', { stdio: 'ignore' });\n } catch {\n this.error('Docker is not running. Start Docker Desktop and try again.');\n }\n\n // Check if already running\n if (dockerContainerRunning()) {\n this.error(`Proxy container already running. Stop it first: rulemetric proxy stop`);\n }\n\n // Find the compose file (monorepo root or project root)\n const composeFile = this.findComposeFile();\n\n // Ensure mount dirs exist\n const certDir = join(homedir(), '.mitmproxy');\n mkdirSync(certDir, { recursive: true });\n const tmpDir = process.env.TMPDIR || '/tmp';\n mkdirSync(join(tmpDir, 'rulemetric'), { recursive: true });\n\n // Load auth from env file if not in environment\n const envOverrides: Record<string, string> = {\n PROXY_PORT: String(port),\n RULEMETRIC_PROJECT_PATH: process.cwd(),\n };\n\n if (!process.env.RULEMETRIC_API_KEY && !process.env.RULEMETRIC_ACCESS_TOKEN) {\n const envFile = join(homedir(), '.config', 'rulemetric', 'env');\n if (existsSync(envFile)) {\n for (const line of readFileSync(envFile, 'utf-8').split('\\n')) {\n const trimmed = line.trim();\n if (trimmed && !trimmed.startsWith('#') && trimmed.includes('=')) {\n const [key, ...rest] = trimmed.split('=');\n envOverrides[key] = rest.join('=');\n }\n }\n }\n }\n\n if (composeFile) {\n // Use docker compose\n const composeEnv = { ...process.env, ...envOverrides };\n const buildFlag = forceBuild ? '--build' : '';\n const args = ['compose', '-f', composeFile, 'up', '-d', 'proxy'];\n if (forceBuild) args.splice(4, 0, '--build');\n\n this.log(forceBuild ? 'Building and starting proxy via Docker Compose...' : 'Starting proxy via Docker Compose...');\n const result = spawnSync('docker', args, {\n env: composeEnv,\n stdio: 'inherit',\n });\n\n if (result.status !== 0) {\n this.error('Docker Compose failed. Try: docker compose -f docker-compose.yml up proxy');\n }\n } else {\n // Fallback: raw docker run\n if (forceBuild || !dockerImageExists()) {\n const proxyDir = findDockerfilePath();\n this.log('Building proxy Docker image...');\n const build = spawnSync('docker', ['build', '-t', DOCKER_IMAGE, proxyDir], { stdio: 'inherit' });\n if (build.status !== 0) {\n this.error('Docker build failed');\n }\n }\n\n spawnSync('docker', ['rm', '-f', DOCKER_CONTAINER], { stdio: 'ignore' });\n\n const envArgs: string[] = [];\n for (const [key, val] of Object.entries(envOverrides)) {\n envArgs.push('-e', `${key}=${val}`);\n }\n // Pass through from current env\n for (const key of ['RULEMETRIC_API_URL', 'RULEMETRIC_API_KEY', 'RULEMETRIC_ACCESS_TOKEN']) {\n if (process.env[key]) envArgs.push('-e', `${key}=${process.env[key]}`);\n }\n\n const dockerArgs = [\n 'run', '-d',\n '--name', DOCKER_CONTAINER,\n '-p', `${port}:8787`,\n '-v', `${certDir}:/root/.mitmproxy`,\n '-v', `${join(tmpDir, 'rulemetric')}:/tmp/rulemetric:ro`,\n ...envArgs,\n DOCKER_IMAGE,\n ];\n\n const result = spawnSync('docker', dockerArgs, { encoding: 'utf-8', stdio: ['ignore', 'pipe', 'pipe'] });\n if (result.status !== 0) {\n this.error(`Failed to start container: ${result.stderr}`);\n }\n }\n\n // Write marker so proxy stop knows it's Docker\n mkdirSync(CONFIG_DIR, { recursive: true });\n writeFileSync(PID_FILE, `docker:${DOCKER_CONTAINER}`);\n\n // Wait for container to be ready\n await new Promise(resolve => setTimeout(resolve, 2000));\n\n const inspectResult = spawnSync('docker', ['container', 'inspect', '-f', '{{.Id}}', DOCKER_CONTAINER], {\n encoding: 'utf-8', stdio: ['ignore', 'pipe', 'ignore'],\n });\n const containerId = inspectResult.stdout?.trim().slice(0, 12) || 'unknown';\n\n this.log(`Proxy running in Docker on localhost:${port} (container: ${containerId})`);\n\n this.log('');\n this.log('View logs: rulemetric proxy logs -f');\n }\n\n private findComposeFile(): string | null {\n const candidates = [\n join(process.cwd(), 'docker-compose.yml'),\n resolve(import.meta.dirname, '../../../../../docker-compose.yml'),\n ];\n for (const p of candidates) {\n if (existsSync(p)) return p;\n }\n return null;\n }\n\n private async startLocal(port: number, useWeb: boolean, skipChecks: boolean): Promise<void> {\n // Check if already running\n if (existsSync(PID_FILE)) {\n const content = readFileSync(PID_FILE, 'utf-8').trim();\n if (content.startsWith('docker:')) {\n this.error('Proxy is running in Docker. Stop it first: rulemetric proxy stop');\n }\n const pid = Number.parseInt(content, 10);\n if (!Number.isNaN(pid)) {\n try {\n process.kill(pid, 0);\n this.error(`Proxy already running (PID ${pid}). Stop it first: rulemetric proxy stop`);\n } catch { /* stale PID, continue */ }\n }\n }\n\n // Check mitmproxy is installed (portable PATH scan \u2014 Windows has no `which`)\n const binary = useWeb ? 'mitmweb' : 'mitmdump';\n if (!findBinary(binary)) {\n this.error(\n `${binary} not found. Use Docker mode instead:\\n` +\n ' rulemetric proxy start --docker\\n\\n' +\n 'Or install mitmproxy locally:\\n' +\n ' pipx install mitmproxy\\n' +\n ' brew install mitmproxy',\n );\n }\n\n // Prerequisite warnings (non-blocking)\n if (!skipChecks) {\n const warnings: string[] = [];\n\n if (!isAuthenticated() && !process.env.RULEMETRIC_API_KEY) {\n const envFile = join(homedir(), '.config', 'rulemetric', 'env');\n let hasEnvAuth = false;\n if (existsSync(envFile)) {\n const content = readFileSync(envFile, 'utf-8');\n hasEnvAuth = content.includes('RULEMETRIC_API_KEY') || content.includes('RULEMETRIC_ACCESS_TOKEN');\n }\n if (!hasEnvAuth) {\n warnings.push('Not authenticated \u2014 snapshots cannot be stored. Run `rulemetric auth login`.');\n }\n }\n\n const certPath = join(homedir(), '.mitmproxy', 'mitmproxy-ca-cert.pem');\n if (!existsSync(certPath)) {\n warnings.push('CA cert not found \u2014 HTTPS interception may fail. Run `rulemetric proxy setup`.');\n }\n\n const settingsPath = join(process.cwd(), '.claude', 'settings.json');\n if (!existsSync(settingsPath)) {\n warnings.push('Session hooks not installed \u2014 snapshots won\\'t link to sessions. Run `rulemetric hooks install`.');\n }\n\n if (warnings.length > 0) {\n for (const w of warnings) {\n this.log(` Warning: ${w}`);\n }\n this.log('');\n }\n }\n\n // Find addon\n const addonPath = findAddonPath();\n\n // Build env \u2014 pass through auth credentials for the reporter\n const env: Record<string, string | undefined> = {\n ...process.env,\n RULEMETRIC_PROJECT_PATH: process.cwd(),\n // Bound to this CLI binary's version. The addon writes this to a\n // version file the gateway watches; on drift the gateway restarts\n // mitmproxy so an upgraded CLI doesn't sit next to a stale proxy.\n RULEMETRIC_CLI_VERSION: this.config.version,\n };\n\n // Load auth from env file if not already in environment\n if (!env.RULEMETRIC_API_KEY && !env.RULEMETRIC_ACCESS_TOKEN) {\n const envFile = join(homedir(), '.config', 'rulemetric', 'env');\n if (existsSync(envFile)) {\n for (const line of readFileSync(envFile, 'utf-8').split('\\n')) {\n const trimmed = line.trim();\n if (trimmed && !trimmed.startsWith('#') && trimmed.includes('=')) {\n const [key, ...rest] = trimmed.split('=');\n env[key] = rest.join('=');\n }\n }\n }\n }\n\n // Ensure config dir exists\n mkdirSync(CONFIG_DIR, { recursive: true });\n\n // Open log file for proxy output (fd for spawn stdio)\n appendFileSync(LOG_FILE, `\\n--- Proxy started at ${new Date().toISOString()} (port ${port}) ---\\n`);\n const logFd = openSync(LOG_FILE, 'a');\n\n // Spawn mitmproxy with output redirected to log file\n const args = [\n '--listen-port', String(port),\n '-s', addonPath,\n '--set', 'console_eventlog_verbosity=info',\n ];\n const child = spawn(binary, args, {\n env,\n stdio: ['ignore', logFd, logFd],\n detached: true,\n });\n\n child.unref();\n\n if (!child.pid) {\n this.error('Failed to start proxy process');\n }\n\n // Brief wait to check if process crashes immediately\n await new Promise<void>((resolve) => {\n let exited = false;\n child.once('exit', (code) => {\n exited = true;\n this.error(`Proxy exited immediately with code ${code}. Check logs:\\n ${LOG_FILE}`);\n });\n setTimeout(() => {\n if (!exited) resolve();\n }, 500);\n });\n\n // Write PID file\n writeFileSync(PID_FILE, String(child.pid));\n\n this.log(`Proxy running on localhost:${port} (PID ${child.pid})`);\n this.log(`Log file: ${LOG_FILE}`);\n\n if (useWeb) {\n this.log('');\n this.log('Debug UI: http://localhost:8081');\n }\n\n this.log('');\n this.log('View logs: rulemetric proxy logs -f');\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["resolve"]
7
+ }
@@ -1,65 +1,75 @@
1
- import { spawnSync } from 'node:child_process';
2
- import { existsSync, readFileSync } from 'node:fs';
3
- import { homedir } from 'node:os';
4
- import { join } from 'node:path';
5
- import { BaseCommand } from '../../base-command.js';
6
- import { isGatewayRunning, getGatewayPid, GATEWAY_PORT, MITMPROXY_PORT } from '../../lib/gateway-lifecycle.js';
7
- const CONFIG_DIR = join(homedir(), '.config', 'rulemetric');
8
- const PID_FILE = join(CONFIG_DIR, 'proxy.pid');
9
- export default class ProxyStatus extends BaseCommand {
10
- static description = 'Check gateway and context capture proxy status';
11
- static examples = ['<%= config.bin %> proxy status'];
12
- async run() {
13
- await this.parse(ProxyStatus);
14
- // Gateway status
15
- if (isGatewayRunning()) {
16
- const pid = getGatewayPid();
17
- this.log(`Gateway: running (PID ${pid}) on :${GATEWAY_PORT}`);
18
- }
19
- else {
20
- this.log(`Gateway: not running`);
21
- }
22
- // Mitmproxy status
23
- if (!existsSync(PID_FILE)) {
24
- this.log(`Mitmproxy: not running routing direct (no capture)`);
25
- return;
26
- }
27
- const content = readFileSync(PID_FILE, 'utf-8').trim();
28
- // Docker mode
29
- if (content.startsWith('docker:')) {
30
- const containerName = content.slice('docker:'.length);
31
- const result = spawnSync('docker', ['container', 'inspect', '-f', '{{.State.Status}}', containerName], {
32
- encoding: 'utf-8',
33
- stdio: ['ignore', 'pipe', 'ignore'],
34
- });
35
- const status = result.stdout?.trim();
36
- if (result.status === 0 && status === 'running') {
37
- this.log(`Mitmproxy: running in Docker (container: ${containerName}) on :${MITMPROXY_PORT} — capturing context`);
38
- }
39
- else {
40
- this.log(`Mitmproxy: container ${status || 'not running'} (stale)`);
41
- }
42
- return;
43
- }
44
- // Local mode
45
- const pid = Number.parseInt(content, 10);
46
- if (Number.isNaN(pid)) {
47
- this.log('Mitmproxy: not running (invalid PID file)');
48
- return;
49
- }
50
- try {
51
- process.kill(pid, 0);
52
- this.log(`Mitmproxy: running (PID ${pid}) on :${MITMPROXY_PORT} — capturing context`);
53
- }
54
- catch (err) {
55
- const code = err.code;
56
- if (code === 'EPERM') {
57
- this.log(`Mitmproxy: running (PID ${pid}, owned by different user) on :${MITMPROXY_PORT}`);
58
- }
59
- else {
60
- this.log('Mitmproxy: not running (stale PID file)');
61
- }
62
- }
1
+ import {
2
+ GATEWAY_PORT,
3
+ MITMPROXY_PORT,
4
+ getGatewayPid,
5
+ isGatewayRunning
6
+ } from "../../chunk-FTJRMUID.js";
7
+ import {
8
+ BaseCommand
9
+ } from "../../chunk-S56LOTGQ.js";
10
+ import "../../chunk-OGVORIFM.js";
11
+ import "../../chunk-2AM54TUK.js";
12
+ import "../../chunk-EJOI2ZGU.js";
13
+ import "../../chunk-KZRFUXGF.js";
14
+ import "../../chunk-EKJ2CABV.js";
15
+ import "../../chunk-NSBPE2FW.js";
16
+
17
+ // src/commands/proxy/status.ts
18
+ import { spawnSync } from "node:child_process";
19
+ import { existsSync, readFileSync } from "node:fs";
20
+ import { homedir } from "node:os";
21
+ import { join } from "node:path";
22
+ var CONFIG_DIR = join(homedir(), ".config", "rulemetric");
23
+ var PID_FILE = join(CONFIG_DIR, "proxy.pid");
24
+ var ProxyStatus = class _ProxyStatus extends BaseCommand {
25
+ static description = "Check gateway and context capture proxy status";
26
+ static examples = ["<%= config.bin %> proxy status"];
27
+ async run() {
28
+ await this.parse(_ProxyStatus);
29
+ if (isGatewayRunning()) {
30
+ const pid2 = getGatewayPid();
31
+ this.log(`Gateway: running (PID ${pid2}) on :${GATEWAY_PORT}`);
32
+ } else {
33
+ this.log(`Gateway: not running`);
63
34
  }
64
- }
65
- //# sourceMappingURL=status.js.map
35
+ if (!existsSync(PID_FILE)) {
36
+ this.log(`Mitmproxy: not running \u2014 routing direct (no capture)`);
37
+ return;
38
+ }
39
+ const content = readFileSync(PID_FILE, "utf-8").trim();
40
+ if (content.startsWith("docker:")) {
41
+ const containerName = content.slice("docker:".length);
42
+ const result = spawnSync("docker", ["container", "inspect", "-f", "{{.State.Status}}", containerName], {
43
+ encoding: "utf-8",
44
+ stdio: ["ignore", "pipe", "ignore"]
45
+ });
46
+ const status = result.stdout?.trim();
47
+ if (result.status === 0 && status === "running") {
48
+ this.log(`Mitmproxy: running in Docker (container: ${containerName}) on :${MITMPROXY_PORT} \u2014 capturing context`);
49
+ } else {
50
+ this.log(`Mitmproxy: container ${status || "not running"} (stale)`);
51
+ }
52
+ return;
53
+ }
54
+ const pid = Number.parseInt(content, 10);
55
+ if (Number.isNaN(pid)) {
56
+ this.log("Mitmproxy: not running (invalid PID file)");
57
+ return;
58
+ }
59
+ try {
60
+ process.kill(pid, 0);
61
+ this.log(`Mitmproxy: running (PID ${pid}) on :${MITMPROXY_PORT} \u2014 capturing context`);
62
+ } catch (err) {
63
+ const code = err.code;
64
+ if (code === "EPERM") {
65
+ this.log(`Mitmproxy: running (PID ${pid}, owned by different user) on :${MITMPROXY_PORT}`);
66
+ } else {
67
+ this.log("Mitmproxy: not running (stale PID file)");
68
+ }
69
+ }
70
+ }
71
+ };
72
+ export {
73
+ ProxyStatus as default
74
+ };
75
+ //# sourceMappingURL=status.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/proxy/status.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/commands/proxy/status.ts"],
4
+ "sourcesContent": ["import { spawnSync } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { homedir } from 'node:os';\nimport { join } from 'node:path';\nimport { BaseCommand } from '../../base-command.js';\nimport { isGatewayRunning, getGatewayPid, GATEWAY_PORT, MITMPROXY_PORT } from '../../lib/gateway-lifecycle.js';\n\nconst CONFIG_DIR = join(homedir(), '.config', 'rulemetric');\nconst PID_FILE = join(CONFIG_DIR, 'proxy.pid');\n\nexport default class ProxyStatus extends BaseCommand {\n static override description = 'Check gateway and context capture proxy status';\n\n static override examples = ['<%= config.bin %> proxy status'];\n\n async run(): Promise<void> {\n await this.parse(ProxyStatus);\n\n // Gateway status\n if (isGatewayRunning()) {\n const pid = getGatewayPid();\n this.log(`Gateway: running (PID ${pid}) on :${GATEWAY_PORT}`);\n } else {\n this.log(`Gateway: not running`);\n }\n\n // Mitmproxy status\n if (!existsSync(PID_FILE)) {\n this.log(`Mitmproxy: not running \u2014 routing direct (no capture)`);\n return;\n }\n\n const content = readFileSync(PID_FILE, 'utf-8').trim();\n\n // Docker mode\n if (content.startsWith('docker:')) {\n const containerName = content.slice('docker:'.length);\n const result = spawnSync('docker', ['container', 'inspect', '-f', '{{.State.Status}}', containerName], {\n encoding: 'utf-8',\n stdio: ['ignore', 'pipe', 'ignore'],\n });\n const status = result.stdout?.trim();\n if (result.status === 0 && status === 'running') {\n this.log(`Mitmproxy: running in Docker (container: ${containerName}) on :${MITMPROXY_PORT} \u2014 capturing context`);\n } else {\n this.log(`Mitmproxy: container ${status || 'not running'} (stale)`);\n }\n return;\n }\n\n // Local mode\n const pid = Number.parseInt(content, 10);\n\n if (Number.isNaN(pid)) {\n this.log('Mitmproxy: not running (invalid PID file)');\n return;\n }\n\n try {\n process.kill(pid, 0);\n this.log(`Mitmproxy: running (PID ${pid}) on :${MITMPROXY_PORT} \u2014 capturing context`);\n } catch (err: unknown) {\n const code = (err as NodeJS.ErrnoException).code;\n if (code === 'EPERM') {\n this.log(`Mitmproxy: running (PID ${pid}, owned by different user) on :${MITMPROXY_PORT}`);\n } else {\n this.log('Mitmproxy: not running (stale PID file)');\n }\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,YAAY,oBAAoB;AACzC,SAAS,eAAe;AACxB,SAAS,YAAY;AAIrB,IAAM,aAAa,KAAK,QAAQ,GAAG,WAAW,YAAY;AAC1D,IAAM,WAAW,KAAK,YAAY,WAAW;AAE7C,IAAqB,cAArB,MAAqB,qBAAoB,YAAY;AAAA,EACnD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW,CAAC,gCAAgC;AAAA,EAE5D,MAAM,MAAqB;AACzB,UAAM,KAAK,MAAM,YAAW;AAG5B,QAAI,iBAAiB,GAAG;AACtB,YAAMA,OAAM,cAAc;AAC1B,WAAK,IAAI,2BAA2BA,IAAG,SAAS,YAAY,EAAE;AAAA,IAChE,OAAO;AACL,WAAK,IAAI,wBAAwB;AAAA,IACnC;AAGA,QAAI,CAAC,WAAW,QAAQ,GAAG;AACzB,WAAK,IAAI,2DAAsD;AAC/D;AAAA,IACF;AAEA,UAAM,UAAU,aAAa,UAAU,OAAO,EAAE,KAAK;AAGrD,QAAI,QAAQ,WAAW,SAAS,GAAG;AACjC,YAAM,gBAAgB,QAAQ,MAAM,UAAU,MAAM;AACpD,YAAM,SAAS,UAAU,UAAU,CAAC,aAAa,WAAW,MAAM,qBAAqB,aAAa,GAAG;AAAA,QACrG,UAAU;AAAA,QACV,OAAO,CAAC,UAAU,QAAQ,QAAQ;AAAA,MACpC,CAAC;AACD,YAAM,SAAS,OAAO,QAAQ,KAAK;AACnC,UAAI,OAAO,WAAW,KAAK,WAAW,WAAW;AAC/C,aAAK,IAAI,4CAA4C,aAAa,SAAS,cAAc,2BAAsB;AAAA,MACjH,OAAO;AACL,aAAK,IAAI,wBAAwB,UAAU,aAAa,UAAU;AAAA,MACpE;AACA;AAAA,IACF;AAGA,UAAM,MAAM,OAAO,SAAS,SAAS,EAAE;AAEvC,QAAI,OAAO,MAAM,GAAG,GAAG;AACrB,WAAK,IAAI,2CAA2C;AACpD;AAAA,IACF;AAEA,QAAI;AACF,cAAQ,KAAK,KAAK,CAAC;AACnB,WAAK,IAAI,2BAA2B,GAAG,SAAS,cAAc,2BAAsB;AAAA,IACtF,SAAS,KAAc;AACrB,YAAM,OAAQ,IAA8B;AAC5C,UAAI,SAAS,SAAS;AACpB,aAAK,IAAI,2BAA2B,GAAG,kCAAkC,cAAc,EAAE;AAAA,MAC3F,OAAO;AACL,aAAK,IAAI,yCAAyC;AAAA,MACpD;AAAA,IACF;AAAA,EACF;AACF;",
6
+ "names": ["pid"]
7
+ }
@@ -1,77 +1,83 @@
1
- import { spawnSync } from 'node:child_process';
2
- import { existsSync, readFileSync, unlinkSync } from 'node:fs';
3
- import { homedir } from 'node:os';
4
- import { join, resolve } from 'node:path';
5
- import { BaseCommand } from '../../base-command.js';
6
- const CONFIG_DIR = join(homedir(), '.config', 'rulemetric');
7
- const PID_FILE = join(CONFIG_DIR, 'proxy.pid');
8
- export default class ProxyStop extends BaseCommand {
9
- static description = 'Stop the context capture proxy';
10
- static examples = ['<%= config.bin %> proxy stop'];
11
- async run() {
12
- await this.parse(ProxyStop);
13
- if (!existsSync(PID_FILE)) {
14
- this.log('No proxy process found (no PID file).');
15
- return;
16
- }
17
- const content = readFileSync(PID_FILE, 'utf-8').trim();
18
- // Docker mode: PID file contains "docker:<container-name>"
19
- if (content.startsWith('docker:')) {
20
- const containerName = content.slice('docker:'.length);
21
- // Try docker compose first, fall back to docker stop
22
- const composeFile = this.findComposeFile();
23
- if (composeFile) {
24
- spawnSync('docker', ['compose', '-f', composeFile, 'stop', 'proxy'], { stdio: 'inherit' });
25
- spawnSync('docker', ['compose', '-f', composeFile, 'rm', '-f', 'proxy'], { stdio: 'ignore' });
26
- }
27
- else {
28
- spawnSync('docker', ['stop', containerName], { stdio: 'ignore' });
29
- spawnSync('docker', ['rm', containerName], { stdio: 'ignore' });
30
- }
31
- this.log(`Proxy container stopped.`);
32
- try {
33
- unlinkSync(PID_FILE);
34
- }
35
- catch { /* already gone */ }
36
- return;
37
- }
38
- // Local mode: PID file contains a process ID
39
- const pid = Number.parseInt(content, 10);
40
- if (Number.isNaN(pid)) {
41
- unlinkSync(PID_FILE);
42
- this.log('Invalid PID file removed.');
43
- return;
44
- }
45
- try {
46
- process.kill(pid, 'SIGTERM');
47
- this.log(`Proxy stopped (PID ${pid}).`);
48
- }
49
- catch (err) {
50
- const code = err.code;
51
- if (code === 'ESRCH') {
52
- this.log('Proxy process not running (stale PID file removed).');
53
- }
54
- else {
55
- this.error(`Failed to stop proxy: ${err.message}`);
56
- }
57
- }
58
- try {
59
- unlinkSync(PID_FILE);
60
- }
61
- catch { /* already gone */ }
62
- this.log('');
63
- this.log('Gateway is still running — Claude Code will route direct until proxy restarts.');
1
+ import {
2
+ BaseCommand
3
+ } from "../../chunk-S56LOTGQ.js";
4
+ import "../../chunk-OGVORIFM.js";
5
+ import "../../chunk-2AM54TUK.js";
6
+ import "../../chunk-EJOI2ZGU.js";
7
+ import "../../chunk-KZRFUXGF.js";
8
+ import "../../chunk-EKJ2CABV.js";
9
+ import "../../chunk-NSBPE2FW.js";
10
+
11
+ // src/commands/proxy/stop.ts
12
+ import { spawnSync } from "node:child_process";
13
+ import { existsSync, readFileSync, unlinkSync } from "node:fs";
14
+ import { homedir } from "node:os";
15
+ import { join, resolve } from "node:path";
16
+ var CONFIG_DIR = join(homedir(), ".config", "rulemetric");
17
+ var PID_FILE = join(CONFIG_DIR, "proxy.pid");
18
+ var ProxyStop = class _ProxyStop extends BaseCommand {
19
+ static description = "Stop the context capture proxy";
20
+ static examples = ["<%= config.bin %> proxy stop"];
21
+ async run() {
22
+ await this.parse(_ProxyStop);
23
+ if (!existsSync(PID_FILE)) {
24
+ this.log("No proxy process found (no PID file).");
25
+ return;
64
26
  }
65
- findComposeFile() {
66
- const candidates = [
67
- join(process.cwd(), 'docker-compose.yml'),
68
- resolve(import.meta.dirname, '../../../../../docker-compose.yml'),
69
- ];
70
- for (const p of candidates) {
71
- if (existsSync(p))
72
- return p;
73
- }
74
- return null;
27
+ const content = readFileSync(PID_FILE, "utf-8").trim();
28
+ if (content.startsWith("docker:")) {
29
+ const containerName = content.slice("docker:".length);
30
+ const composeFile = this.findComposeFile();
31
+ if (composeFile) {
32
+ spawnSync("docker", ["compose", "-f", composeFile, "stop", "proxy"], { stdio: "inherit" });
33
+ spawnSync("docker", ["compose", "-f", composeFile, "rm", "-f", "proxy"], { stdio: "ignore" });
34
+ } else {
35
+ spawnSync("docker", ["stop", containerName], { stdio: "ignore" });
36
+ spawnSync("docker", ["rm", containerName], { stdio: "ignore" });
37
+ }
38
+ this.log(`Proxy container stopped.`);
39
+ try {
40
+ unlinkSync(PID_FILE);
41
+ } catch {
42
+ }
43
+ return;
75
44
  }
76
- }
77
- //# sourceMappingURL=stop.js.map
45
+ const pid = Number.parseInt(content, 10);
46
+ if (Number.isNaN(pid)) {
47
+ unlinkSync(PID_FILE);
48
+ this.log("Invalid PID file removed.");
49
+ return;
50
+ }
51
+ try {
52
+ process.kill(pid, "SIGTERM");
53
+ this.log(`Proxy stopped (PID ${pid}).`);
54
+ } catch (err) {
55
+ const code = err.code;
56
+ if (code === "ESRCH") {
57
+ this.log("Proxy process not running (stale PID file removed).");
58
+ } else {
59
+ this.error(`Failed to stop proxy: ${err.message}`);
60
+ }
61
+ }
62
+ try {
63
+ unlinkSync(PID_FILE);
64
+ } catch {
65
+ }
66
+ this.log("");
67
+ this.log("Gateway is still running \u2014 Claude Code will route direct until proxy restarts.");
68
+ }
69
+ findComposeFile() {
70
+ const candidates = [
71
+ join(process.cwd(), "docker-compose.yml"),
72
+ resolve(import.meta.dirname, "../../../../../docker-compose.yml")
73
+ ];
74
+ for (const p of candidates) {
75
+ if (existsSync(p)) return p;
76
+ }
77
+ return null;
78
+ }
79
+ };
80
+ export {
81
+ ProxyStop as default
82
+ };
83
+ //# sourceMappingURL=stop.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/proxy/stop.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/commands/proxy/stop.ts"],
4
+ "sourcesContent": ["import { spawnSync } from 'node:child_process';\nimport { existsSync, readFileSync, unlinkSync } from 'node:fs';\nimport { homedir } from 'node:os';\nimport { join, resolve } from 'node:path';\nimport { BaseCommand } from '../../base-command.js';\n\nconst CONFIG_DIR = join(homedir(), '.config', 'rulemetric');\nconst PID_FILE = join(CONFIG_DIR, 'proxy.pid');\n\nexport default class ProxyStop extends BaseCommand {\n static override description = 'Stop the context capture proxy';\n\n static override examples = ['<%= config.bin %> proxy stop'];\n\n async run(): Promise<void> {\n await this.parse(ProxyStop);\n\n if (!existsSync(PID_FILE)) {\n this.log('No proxy process found (no PID file).');\n return;\n }\n\n const content = readFileSync(PID_FILE, 'utf-8').trim();\n\n // Docker mode: PID file contains \"docker:<container-name>\"\n if (content.startsWith('docker:')) {\n const containerName = content.slice('docker:'.length);\n // Try docker compose first, fall back to docker stop\n const composeFile = this.findComposeFile();\n if (composeFile) {\n spawnSync('docker', ['compose', '-f', composeFile, 'stop', 'proxy'], { stdio: 'inherit' });\n spawnSync('docker', ['compose', '-f', composeFile, 'rm', '-f', 'proxy'], { stdio: 'ignore' });\n } else {\n spawnSync('docker', ['stop', containerName], { stdio: 'ignore' });\n spawnSync('docker', ['rm', containerName], { stdio: 'ignore' });\n }\n this.log(`Proxy container stopped.`);\n try { unlinkSync(PID_FILE); } catch { /* already gone */ }\n return;\n }\n\n // Local mode: PID file contains a process ID\n const pid = Number.parseInt(content, 10);\n\n if (Number.isNaN(pid)) {\n unlinkSync(PID_FILE);\n this.log('Invalid PID file removed.');\n return;\n }\n\n try {\n process.kill(pid, 'SIGTERM');\n this.log(`Proxy stopped (PID ${pid}).`);\n } catch (err: unknown) {\n const code = (err as NodeJS.ErrnoException).code;\n if (code === 'ESRCH') {\n this.log('Proxy process not running (stale PID file removed).');\n } else {\n this.error(`Failed to stop proxy: ${(err as Error).message}`);\n }\n }\n\n try { unlinkSync(PID_FILE); } catch { /* already gone */ }\n\n this.log('');\n this.log('Gateway is still running \u2014 Claude Code will route direct until proxy restarts.');\n }\n\n private findComposeFile(): string | null {\n const candidates = [\n join(process.cwd(), 'docker-compose.yml'),\n resolve(import.meta.dirname, '../../../../../docker-compose.yml'),\n ];\n for (const p of candidates) {\n if (existsSync(p)) return p;\n }\n return null;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,YAAY,cAAc,kBAAkB;AACrD,SAAS,eAAe;AACxB,SAAS,MAAM,eAAe;AAG9B,IAAM,aAAa,KAAK,QAAQ,GAAG,WAAW,YAAY;AAC1D,IAAM,WAAW,KAAK,YAAY,WAAW;AAE7C,IAAqB,YAArB,MAAqB,mBAAkB,YAAY;AAAA,EACjD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW,CAAC,8BAA8B;AAAA,EAE1D,MAAM,MAAqB;AACzB,UAAM,KAAK,MAAM,UAAS;AAE1B,QAAI,CAAC,WAAW,QAAQ,GAAG;AACzB,WAAK,IAAI,uCAAuC;AAChD;AAAA,IACF;AAEA,UAAM,UAAU,aAAa,UAAU,OAAO,EAAE,KAAK;AAGrD,QAAI,QAAQ,WAAW,SAAS,GAAG;AACjC,YAAM,gBAAgB,QAAQ,MAAM,UAAU,MAAM;AAEpD,YAAM,cAAc,KAAK,gBAAgB;AACzC,UAAI,aAAa;AACf,kBAAU,UAAU,CAAC,WAAW,MAAM,aAAa,QAAQ,OAAO,GAAG,EAAE,OAAO,UAAU,CAAC;AACzF,kBAAU,UAAU,CAAC,WAAW,MAAM,aAAa,MAAM,MAAM,OAAO,GAAG,EAAE,OAAO,SAAS,CAAC;AAAA,MAC9F,OAAO;AACL,kBAAU,UAAU,CAAC,QAAQ,aAAa,GAAG,EAAE,OAAO,SAAS,CAAC;AAChE,kBAAU,UAAU,CAAC,MAAM,aAAa,GAAG,EAAE,OAAO,SAAS,CAAC;AAAA,MAChE;AACA,WAAK,IAAI,0BAA0B;AACnC,UAAI;AAAE,mBAAW,QAAQ;AAAA,MAAG,QAAQ;AAAA,MAAqB;AACzD;AAAA,IACF;AAGA,UAAM,MAAM,OAAO,SAAS,SAAS,EAAE;AAEvC,QAAI,OAAO,MAAM,GAAG,GAAG;AACrB,iBAAW,QAAQ;AACnB,WAAK,IAAI,2BAA2B;AACpC;AAAA,IACF;AAEA,QAAI;AACF,cAAQ,KAAK,KAAK,SAAS;AAC3B,WAAK,IAAI,sBAAsB,GAAG,IAAI;AAAA,IACxC,SAAS,KAAc;AACrB,YAAM,OAAQ,IAA8B;AAC5C,UAAI,SAAS,SAAS;AACpB,aAAK,IAAI,qDAAqD;AAAA,MAChE,OAAO;AACL,aAAK,MAAM,yBAA0B,IAAc,OAAO,EAAE;AAAA,MAC9D;AAAA,IACF;AAEA,QAAI;AAAE,iBAAW,QAAQ;AAAA,IAAG,QAAQ;AAAA,IAAqB;AAEzD,SAAK,IAAI,EAAE;AACX,SAAK,IAAI,qFAAgF;AAAA,EAC3F;AAAA,EAEQ,kBAAiC;AACvC,UAAM,aAAa;AAAA,MACjB,KAAK,QAAQ,IAAI,GAAG,oBAAoB;AAAA,MACxC,QAAQ,YAAY,SAAS,mCAAmC;AAAA,IAClE;AACA,eAAW,KAAK,YAAY;AAC1B,UAAI,WAAW,CAAC,EAAG,QAAO;AAAA,IAC5B;AACA,WAAO;AAAA,EACT;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,58 @@
1
+ import {
2
+ scanAllTranscripts
3
+ } from "../../chunk-WA4MWYRW.js";
4
+ import {
5
+ postObservations
6
+ } from "../../chunk-UF73WX2J.js";
7
+ import {
8
+ BaseCommand
9
+ } from "../../chunk-S56LOTGQ.js";
10
+ import "../../chunk-OGVORIFM.js";
11
+ import "../../chunk-2AM54TUK.js";
12
+ import "../../chunk-EJOI2ZGU.js";
13
+ import "../../chunk-KZRFUXGF.js";
14
+ import "../../chunk-EKJ2CABV.js";
15
+ import "../../chunk-NSBPE2FW.js";
16
+
17
+ // src/commands/research/backfill.ts
18
+ import { Flags } from "@oclif/core";
19
+ import path from "node:path";
20
+ import os from "node:os";
21
+ var ResearchBackfill = class _ResearchBackfill extends BaseCommand {
22
+ static description = "Scan every ~/.claude/projects transcript for past rate-limit (429) events and POST them as observations. Opt-in seed for the usage-research dataset \u2014 forward-only tail is the default capture path.";
23
+ static examples = [
24
+ "<%= config.bin %> research backfill",
25
+ "<%= config.bin %> research backfill --claude-dir /custom/.claude --dry-run"
26
+ ];
27
+ static flags = {
28
+ "claude-dir": Flags.string({
29
+ description: "Override the Claude Code projects directory",
30
+ default: path.join(os.homedir(), ".claude")
31
+ }),
32
+ "dry-run": Flags.boolean({
33
+ description: "Print observation count without POSTing",
34
+ default: false
35
+ })
36
+ };
37
+ async run() {
38
+ const { flags } = await this.parse(_ResearchBackfill);
39
+ this.requireAuth();
40
+ this.log(`Scanning ${path.join(flags["claude-dir"], "projects")} for rate-limit events...`);
41
+ const observations = await scanAllTranscripts(flags["claude-dir"]);
42
+ this.log(`Found ${observations.length} rate-limit observation(s).`);
43
+ if (observations.length === 0) return;
44
+ if (flags["dry-run"]) {
45
+ this.log("Dry run \u2014 nothing posted.");
46
+ return;
47
+ }
48
+ const result = await postObservations(observations);
49
+ this.log(`Posted ${result.posted} observation(s); ${result.failed} failed.`);
50
+ if (result.failed > 0) {
51
+ for (const e of result.errors) this.warn(e);
52
+ }
53
+ }
54
+ };
55
+ export {
56
+ ResearchBackfill as default
57
+ };
58
+ //# sourceMappingURL=backfill.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/commands/research/backfill.ts"],
4
+ "sourcesContent": ["import { Flags } from '@oclif/core';\nimport path from 'node:path';\nimport os from 'node:os';\nimport { BaseCommand } from '../../base-command.js';\nimport { scanAllTranscripts } from '../../lib/transcript-rate-limit-watcher.js';\nimport { postObservations } from '../../lib/research-client.js';\n\nexport default class ResearchBackfill extends BaseCommand {\n static override description =\n 'Scan every ~/.claude/projects transcript for past rate-limit (429) events and POST them as observations. Opt-in seed for the usage-research dataset \u2014 forward-only tail is the default capture path.';\n\n static override examples = [\n '<%= config.bin %> research backfill',\n '<%= config.bin %> research backfill --claude-dir /custom/.claude --dry-run',\n ];\n\n static override flags = {\n 'claude-dir': Flags.string({\n description: 'Override the Claude Code projects directory',\n default: path.join(os.homedir(), '.claude'),\n }),\n 'dry-run': Flags.boolean({\n description: 'Print observation count without POSTing',\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(ResearchBackfill);\n this.requireAuth();\n\n this.log(`Scanning ${path.join(flags['claude-dir'], 'projects')} for rate-limit events...`);\n const observations = await scanAllTranscripts(flags['claude-dir']);\n this.log(`Found ${observations.length} rate-limit observation(s).`);\n\n if (observations.length === 0) return;\n\n if (flags['dry-run']) {\n this.log('Dry run \u2014 nothing posted.');\n return;\n }\n\n const result = await postObservations(observations);\n this.log(`Posted ${result.posted} observation(s); ${result.failed} failed.`);\n if (result.failed > 0) {\n for (const e of result.errors) this.warn(e);\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AACtB,OAAO,UAAU;AACjB,OAAO,QAAQ;AAKf,IAAqB,mBAArB,MAAqB,0BAAyB,YAAY;AAAA,EACxD,OAAgB,cACd;AAAA,EAEF,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,cAAc,MAAM,OAAO;AAAA,MACzB,aAAa;AAAA,MACb,SAAS,KAAK,KAAK,GAAG,QAAQ,GAAG,SAAS;AAAA,IAC5C,CAAC;AAAA,IACD,WAAW,MAAM,QAAQ;AAAA,MACvB,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,iBAAgB;AACnD,SAAK,YAAY;AAEjB,SAAK,IAAI,YAAY,KAAK,KAAK,MAAM,YAAY,GAAG,UAAU,CAAC,2BAA2B;AAC1F,UAAM,eAAe,MAAM,mBAAmB,MAAM,YAAY,CAAC;AACjE,SAAK,IAAI,SAAS,aAAa,MAAM,6BAA6B;AAElE,QAAI,aAAa,WAAW,EAAG;AAE/B,QAAI,MAAM,SAAS,GAAG;AACpB,WAAK,IAAI,gCAA2B;AACpC;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,iBAAiB,YAAY;AAClD,SAAK,IAAI,UAAU,OAAO,MAAM,oBAAoB,OAAO,MAAM,UAAU;AAC3E,QAAI,OAAO,SAAS,GAAG;AACrB,iBAAW,KAAK,OAAO,OAAQ,MAAK,KAAK,CAAC;AAAA,IAC5C;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -0,0 +1,69 @@
1
+ import {
2
+ loadOffsets,
3
+ saveOffsets,
4
+ tailJsonl
5
+ } from "../../chunk-WA4MWYRW.js";
6
+ import {
7
+ postObservations
8
+ } from "../../chunk-UF73WX2J.js";
9
+ import {
10
+ BaseCommand
11
+ } from "../../chunk-S56LOTGQ.js";
12
+ import "../../chunk-OGVORIFM.js";
13
+ import "../../chunk-2AM54TUK.js";
14
+ import "../../chunk-EJOI2ZGU.js";
15
+ import "../../chunk-KZRFUXGF.js";
16
+ import "../../chunk-EKJ2CABV.js";
17
+ import "../../chunk-NSBPE2FW.js";
18
+
19
+ // src/commands/research/tail-transcript.ts
20
+ import { Args, Flags } from "@oclif/core";
21
+ import path from "node:path";
22
+ var ResearchTailTranscript = class _ResearchTailTranscript extends BaseCommand {
23
+ static description = "Read new lines from a Claude Code transcript since the last cached offset, POST any 429 events, and persist the new offset. Invoked by the session-end hook \u2014 safe to re-run.";
24
+ static hidden = true;
25
+ static args = {
26
+ transcript: Args.string({
27
+ description: "Absolute path to a Claude Code .jsonl transcript",
28
+ required: true
29
+ })
30
+ };
31
+ static flags = {
32
+ "no-post": Flags.boolean({
33
+ description: "Parse and advance the offset without POSTing (debug)",
34
+ default: false
35
+ })
36
+ };
37
+ async run() {
38
+ const { args, flags } = await this.parse(_ResearchTailTranscript);
39
+ const filepath = path.resolve(args.transcript);
40
+ try {
41
+ this.requireAuth();
42
+ } catch {
43
+ return;
44
+ }
45
+ const offsets = await loadOffsets();
46
+ const fromOffset = offsets[filepath] ?? 0;
47
+ const { observations, newOffset } = await tailJsonl(filepath, fromOffset);
48
+ if (observations.length > 0 && !flags["no-post"]) {
49
+ try {
50
+ const result = await postObservations(observations);
51
+ if (process.env.RULEMETRIC_DEBUG) {
52
+ this.log(`tail-transcript: posted ${result.posted}, failed ${result.failed}`);
53
+ }
54
+ } catch (err) {
55
+ if (process.env.RULEMETRIC_DEBUG) {
56
+ this.warn(`tail-transcript POST error: ${String(err)}`);
57
+ }
58
+ }
59
+ }
60
+ if (newOffset !== fromOffset) {
61
+ offsets[filepath] = newOffset;
62
+ await saveOffsets(offsets);
63
+ }
64
+ }
65
+ };
66
+ export {
67
+ ResearchTailTranscript as default
68
+ };
69
+ //# sourceMappingURL=tail-transcript.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/commands/research/tail-transcript.ts"],
4
+ "sourcesContent": ["import { Args, Flags } from '@oclif/core';\nimport path from 'node:path';\nimport { BaseCommand } from '../../base-command.js';\nimport {\n loadOffsets,\n saveOffsets,\n tailJsonl,\n} from '../../lib/transcript-rate-limit-watcher.js';\nimport { postObservations } from '../../lib/research-client.js';\n\nexport default class ResearchTailTranscript extends BaseCommand {\n static override description =\n 'Read new lines from a Claude Code transcript since the last cached offset, POST any 429 events, and persist the new offset. Invoked by the session-end hook \u2014 safe to re-run.';\n static override hidden = true;\n\n static override args = {\n transcript: Args.string({\n description: 'Absolute path to a Claude Code .jsonl transcript',\n required: true,\n }),\n };\n\n static override flags = {\n 'no-post': Flags.boolean({\n description: 'Parse and advance the offset without POSTing (debug)',\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(ResearchTailTranscript);\n const filepath = path.resolve(args.transcript);\n\n // Auth \u2014 but never crash the hook. Fall through to no-op on missing auth.\n try {\n this.requireAuth();\n } catch {\n // Hooks shouldn't break Claude Code. Silently exit.\n return;\n }\n\n const offsets = await loadOffsets();\n const fromOffset = offsets[filepath] ?? 0;\n const { observations, newOffset } = await tailJsonl(filepath, fromOffset);\n\n if (observations.length > 0 && !flags['no-post']) {\n try {\n const result = await postObservations(observations);\n if (process.env.RULEMETRIC_DEBUG) {\n this.log(`tail-transcript: posted ${result.posted}, failed ${result.failed}`);\n }\n } catch (err) {\n // Hook-safe: never throw.\n if (process.env.RULEMETRIC_DEBUG) {\n this.warn(`tail-transcript POST error: ${String(err)}`);\n }\n }\n }\n\n if (newOffset !== fromOffset) {\n offsets[filepath] = newOffset;\n await saveOffsets(offsets);\n }\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAC5B,OAAO,UAAU;AASjB,IAAqB,yBAArB,MAAqB,gCAA+B,YAAY;AAAA,EAC9D,OAAgB,cACd;AAAA,EACF,OAAgB,SAAS;AAAA,EAEzB,OAAgB,OAAO;AAAA,IACrB,YAAY,KAAK,OAAO;AAAA,MACtB,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,WAAW,MAAM,QAAQ;AAAA,MACvB,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,uBAAsB;AAC/D,UAAM,WAAW,KAAK,QAAQ,KAAK,UAAU;AAG7C,QAAI;AACF,WAAK,YAAY;AAAA,IACnB,QAAQ;AAEN;AAAA,IACF;AAEA,UAAM,UAAU,MAAM,YAAY;AAClC,UAAM,aAAa,QAAQ,QAAQ,KAAK;AACxC,UAAM,EAAE,cAAc,UAAU,IAAI,MAAM,UAAU,UAAU,UAAU;AAExE,QAAI,aAAa,SAAS,KAAK,CAAC,MAAM,SAAS,GAAG;AAChD,UAAI;AACF,cAAM,SAAS,MAAM,iBAAiB,YAAY;AAClD,YAAI,QAAQ,IAAI,kBAAkB;AAChC,eAAK,IAAI,2BAA2B,OAAO,MAAM,YAAY,OAAO,MAAM,EAAE;AAAA,QAC9E;AAAA,MACF,SAAS,KAAK;AAEZ,YAAI,QAAQ,IAAI,kBAAkB;AAChC,eAAK,KAAK,+BAA+B,OAAO,GAAG,CAAC,EAAE;AAAA,QACxD;AAAA,MACF;AAAA,IACF;AAEA,QAAI,cAAc,YAAY;AAC5B,cAAQ,QAAQ,IAAI;AACpB,YAAM,YAAY,OAAO;AAAA,IAC3B;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }