@rulemetric/cli 0.6.8 → 0.7.0

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 (280) hide show
  1. package/dist/base-command.js +4 -3
  2. package/dist/{chunk-SZ7VDCD6.js → chunk-2HK7RGZB.js} +22 -3
  3. package/dist/chunk-2HK7RGZB.js.map +7 -0
  4. package/dist/{chunk-RUCSRN7F.js → chunk-2ORJWTNZ.js} +2 -2
  5. package/dist/{chunk-SLL3OBKN.js → chunk-37LN5O7M.js} +2 -2
  6. package/dist/{chunk-RCMXTLQF.js → chunk-3LKVS6W5.js} +5 -5
  7. package/dist/{chunk-XN23W5HL.js → chunk-4KRMZLQV.js} +91 -7
  8. package/dist/chunk-4KRMZLQV.js.map +7 -0
  9. package/dist/{chunk-DAJNO4OI.js → chunk-4LYCDS2N.js} +28 -16
  10. package/dist/chunk-4LYCDS2N.js.map +7 -0
  11. package/dist/{chunk-UPXIO7CG.js → chunk-4XAWK6S2.js} +8 -8
  12. package/dist/{chunk-N5A2IQAK.js → chunk-4YAP7RT7.js} +5 -5
  13. package/dist/{chunk-QD6X4L4L.js → chunk-5BAOGNUH.js} +4 -4
  14. package/dist/chunk-5EDMGK3W.js +39 -0
  15. package/dist/chunk-5EDMGK3W.js.map +7 -0
  16. package/dist/{chunk-5ADHO5QF.js → chunk-6NBS5XFS.js} +6 -6
  17. package/dist/chunk-7LVVKQMZ.js +98 -0
  18. package/dist/chunk-7LVVKQMZ.js.map +7 -0
  19. package/dist/{chunk-PXVQLD7S.js → chunk-7NNFYWKK.js} +48 -1
  20. package/dist/chunk-7NNFYWKK.js.map +7 -0
  21. package/dist/{chunk-BBLTN35F.js → chunk-7UDETV3P.js} +49 -20
  22. package/dist/chunk-7UDETV3P.js.map +7 -0
  23. package/dist/{chunk-DTFXCHHI.js → chunk-DNKSVWMD.js} +4 -4
  24. package/dist/{chunk-6EMZI4Y3.js → chunk-EI5BHWXA.js} +437 -401
  25. package/dist/chunk-EI5BHWXA.js.map +7 -0
  26. package/dist/{chunk-HNZLEEG2.js → chunk-EJ3YAFDP.js} +4 -4
  27. package/dist/{chunk-HNZLEEG2.js.map → chunk-EJ3YAFDP.js.map} +2 -2
  28. package/dist/{chunk-YSEQWCN4.js → chunk-EYPAAGN5.js} +2 -2
  29. package/dist/{chunk-JEJ3J5J6.js → chunk-GIUBARWS.js} +2 -2
  30. package/dist/chunk-GQNJO2P2.js +102 -0
  31. package/dist/chunk-GQNJO2P2.js.map +7 -0
  32. package/dist/{chunk-CNMWYYSV.js → chunk-HZK43UCF.js} +6 -6
  33. package/dist/chunk-ILYDELUE.js +46 -0
  34. package/dist/chunk-ILYDELUE.js.map +7 -0
  35. package/dist/chunk-J6QFW4LD.js +55 -0
  36. package/dist/chunk-J6QFW4LD.js.map +7 -0
  37. package/dist/{chunk-OTOWLUOJ.js → chunk-JULOLTZS.js} +2 -2
  38. package/dist/{chunk-DR5WLIOU.js → chunk-KJKBDQ4D.js} +2 -2
  39. package/dist/{chunk-AHDRN6NE.js → chunk-OO7JDFS4.js} +5 -5
  40. package/dist/{chunk-N2X35ITW.js → chunk-OQBBVTDG.js} +11 -1
  41. package/dist/{chunk-N2X35ITW.js.map → chunk-OQBBVTDG.js.map} +2 -2
  42. package/dist/{chunk-3QH73QOQ.js → chunk-PED7L5GX.js} +2 -2
  43. package/dist/{chunk-VBGUNFKY.js → chunk-PMI56ED5.js} +5 -5
  44. package/dist/{chunk-XNNOXGP6.js → chunk-POFTPB33.js} +38 -19
  45. package/dist/chunk-POFTPB33.js.map +7 -0
  46. package/dist/{chunk-W4MZXKZ2.js → chunk-UKMLICWS.js} +2 -2
  47. package/dist/{chunk-3POYC5NA.js → chunk-XK42ZBDE.js} +3 -3
  48. package/dist/{chunk-ZSGKRCKD.js → chunk-XUV6DDBF.js} +2 -2
  49. package/dist/{chunk-LAKZUE35.js → chunk-Y3WD5CSW.js} +2 -2
  50. package/dist/{chunk-3QVMIJUL.js → chunk-YOBA3NAM.js} +5 -5
  51. package/dist/{chunk-ZRLYHBPN.js → chunk-ZUJBM6HE.js} +20 -2
  52. package/dist/chunk-ZUJBM6HE.js.map +7 -0
  53. package/dist/commands/antigravity/backfill.js +5 -4
  54. package/dist/commands/antigravity/backfill.js.map +1 -1
  55. package/dist/commands/auth/create-key.js +4 -3
  56. package/dist/commands/auth/create-key.js.map +1 -1
  57. package/dist/commands/auth/login.js +13 -9
  58. package/dist/commands/auth/login.js.map +2 -2
  59. package/dist/commands/auth/logout.js +4 -3
  60. package/dist/commands/auth/logout.js.map +1 -1
  61. package/dist/commands/auth/revoke-key.js +4 -3
  62. package/dist/commands/auth/revoke-key.js.map +1 -1
  63. package/dist/commands/auth/signup.js +13 -9
  64. package/dist/commands/auth/signup.js.map +2 -2
  65. package/dist/commands/auth/status.js +4 -3
  66. package/dist/commands/auth/status.js.map +1 -1
  67. package/dist/commands/catalog/index.js +4 -3
  68. package/dist/commands/catalog/index.js.map +1 -1
  69. package/dist/commands/catalog/recommend.js +4 -3
  70. package/dist/commands/catalog/recommend.js.map +1 -1
  71. package/dist/commands/convert.js +4 -3
  72. package/dist/commands/convert.js.map +1 -1
  73. package/dist/commands/converters.js +4 -3
  74. package/dist/commands/converters.js.map +1 -1
  75. package/dist/commands/crons/list.js +4 -3
  76. package/dist/commands/crons/list.js.map +1 -1
  77. package/dist/commands/crons/run.js +4 -3
  78. package/dist/commands/crons/run.js.map +1 -1
  79. package/dist/commands/dashboard.js +4 -3
  80. package/dist/commands/dashboard.js.map +1 -1
  81. package/dist/commands/diagnostics.js +117 -0
  82. package/dist/commands/diagnostics.js.map +7 -0
  83. package/dist/commands/eval-targets/create.js +4 -3
  84. package/dist/commands/eval-targets/create.js.map +1 -1
  85. package/dist/commands/eval-targets/list.js +4 -3
  86. package/dist/commands/eval-targets/list.js.map +1 -1
  87. package/dist/commands/evals/agent.js +44 -23
  88. package/dist/commands/evals/agent.js.map +2 -2
  89. package/dist/commands/evals/benchmark.js +5 -4
  90. package/dist/commands/evals/benchmark.js.map +1 -1
  91. package/dist/commands/evals/compare.js +4 -3
  92. package/dist/commands/evals/compare.js.map +1 -1
  93. package/dist/commands/evals/create.js +4 -3
  94. package/dist/commands/evals/create.js.map +1 -1
  95. package/dist/commands/evals/optimize-description.js +4 -3
  96. package/dist/commands/evals/optimize-description.js.map +1 -1
  97. package/dist/commands/evals/optimize.js +4 -3
  98. package/dist/commands/evals/optimize.js.map +1 -1
  99. package/dist/commands/evals/run.js +4 -3
  100. package/dist/commands/evals/run.js.map +1 -1
  101. package/dist/commands/gateway/ensure.js +58 -5
  102. package/dist/commands/gateway/ensure.js.map +2 -2
  103. package/dist/commands/hooks/install.js +76 -23
  104. package/dist/commands/hooks/install.js.map +2 -2
  105. package/dist/commands/hooks/run.js +9 -5
  106. package/dist/commands/hooks/run.js.map +2 -2
  107. package/dist/commands/hooks/uninstall.js +31 -40
  108. package/dist/commands/hooks/uninstall.js.map +2 -2
  109. package/dist/commands/import.js +4 -3
  110. package/dist/commands/import.js.map +1 -1
  111. package/dist/commands/instructions/create.js +4 -3
  112. package/dist/commands/instructions/create.js.map +1 -1
  113. package/dist/commands/instructions/delete.js +4 -3
  114. package/dist/commands/instructions/delete.js.map +1 -1
  115. package/dist/commands/instructions/fork.js +4 -3
  116. package/dist/commands/instructions/fork.js.map +1 -1
  117. package/dist/commands/instructions/get.js +4 -3
  118. package/dist/commands/instructions/get.js.map +1 -1
  119. package/dist/commands/instructions/list.js +4 -3
  120. package/dist/commands/instructions/list.js.map +1 -1
  121. package/dist/commands/instructions/promote.js +4 -3
  122. package/dist/commands/instructions/promote.js.map +1 -1
  123. package/dist/commands/instructions/pull.js +4 -3
  124. package/dist/commands/instructions/pull.js.map +1 -1
  125. package/dist/commands/instructions/upstream.js +4 -3
  126. package/dist/commands/instructions/upstream.js.map +1 -1
  127. package/dist/commands/instructions/versions.js +4 -3
  128. package/dist/commands/instructions/versions.js.map +1 -1
  129. package/dist/commands/launcher.js +4 -3
  130. package/dist/commands/launcher.js.map +1 -1
  131. package/dist/commands/org/current.js +4 -3
  132. package/dist/commands/org/current.js.map +1 -1
  133. package/dist/commands/org/list.js +4 -3
  134. package/dist/commands/org/list.js.map +1 -1
  135. package/dist/commands/org/switch.js +4 -3
  136. package/dist/commands/org/switch.js.map +1 -1
  137. package/dist/commands/packs/add-instruction.js +4 -3
  138. package/dist/commands/packs/add-instruction.js.map +1 -1
  139. package/dist/commands/packs/apply.js +4 -3
  140. package/dist/commands/packs/apply.js.map +1 -1
  141. package/dist/commands/packs/create.js +4 -3
  142. package/dist/commands/packs/create.js.map +1 -1
  143. package/dist/commands/packs/fork.js +4 -3
  144. package/dist/commands/packs/fork.js.map +1 -1
  145. package/dist/commands/packs/get.js +4 -3
  146. package/dist/commands/packs/get.js.map +1 -1
  147. package/dist/commands/packs/list.js +4 -3
  148. package/dist/commands/packs/list.js.map +1 -1
  149. package/dist/commands/packs/remove-instruction.js +4 -3
  150. package/dist/commands/packs/remove-instruction.js.map +1 -1
  151. package/dist/commands/proxy/env.js +7 -4
  152. package/dist/commands/proxy/env.js.map +1 -1
  153. package/dist/commands/proxy/logs.js +4 -3
  154. package/dist/commands/proxy/logs.js.map +1 -1
  155. package/dist/commands/proxy/restart.js +4 -3
  156. package/dist/commands/proxy/restart.js.map +1 -1
  157. package/dist/commands/proxy/setup.js +20 -14
  158. package/dist/commands/proxy/setup.js.map +2 -2
  159. package/dist/commands/proxy/start.js +18 -14
  160. package/dist/commands/proxy/start.js.map +2 -2
  161. package/dist/commands/proxy/status.js +16 -13
  162. package/dist/commands/proxy/status.js.map +2 -2
  163. package/dist/commands/proxy/stop.js +21 -12
  164. package/dist/commands/proxy/stop.js.map +2 -2
  165. package/dist/commands/research/backfill.js +5 -4
  166. package/dist/commands/research/backfill.js.map +1 -1
  167. package/dist/commands/research/tail-transcript.js +5 -4
  168. package/dist/commands/research/tail-transcript.js.map +1 -1
  169. package/dist/commands/service/install.js +6 -6
  170. package/dist/commands/service/status.js +4 -3
  171. package/dist/commands/service/status.js.map +1 -1
  172. package/dist/commands/service/uninstall.js +4 -3
  173. package/dist/commands/service/uninstall.js.map +1 -1
  174. package/dist/commands/sessions/analyze.js +4 -3
  175. package/dist/commands/sessions/analyze.js.map +1 -1
  176. package/dist/commands/sessions/end.js +4 -3
  177. package/dist/commands/sessions/end.js.map +1 -1
  178. package/dist/commands/sessions/import.js +4 -3
  179. package/dist/commands/sessions/import.js.map +1 -1
  180. package/dist/commands/sessions/list.js +4 -3
  181. package/dist/commands/sessions/list.js.map +1 -1
  182. package/dist/commands/sessions/start.js +4 -3
  183. package/dist/commands/sessions/start.js.map +1 -1
  184. package/dist/commands/setup.js +10 -6
  185. package/dist/commands/setup.js.map +1 -1
  186. package/dist/commands/skills/export-approved.js +4 -3
  187. package/dist/commands/skills/export-approved.js.map +1 -1
  188. package/dist/commands/skills/install.js +4 -3
  189. package/dist/commands/skills/install.js.map +1 -1
  190. package/dist/commands/skills/list.js +4 -3
  191. package/dist/commands/skills/list.js.map +1 -1
  192. package/dist/commands/skills/publish.js +4 -3
  193. package/dist/commands/skills/publish.js.map +1 -1
  194. package/dist/commands/skills/search.js +4 -3
  195. package/dist/commands/skills/search.js.map +1 -1
  196. package/dist/commands/skills/update.js +4 -3
  197. package/dist/commands/skills/update.js.map +1 -1
  198. package/dist/commands/suggestions/accept.js +4 -3
  199. package/dist/commands/suggestions/accept.js.map +1 -1
  200. package/dist/commands/suggestions/dismiss.js +4 -3
  201. package/dist/commands/suggestions/dismiss.js.map +1 -1
  202. package/dist/commands/suggestions/list.js +4 -3
  203. package/dist/commands/suggestions/list.js.map +1 -1
  204. package/dist/commands/suggestions/refresh.js +4 -3
  205. package/dist/commands/suggestions/refresh.js.map +1 -1
  206. package/dist/dashboard/Dashboard.js +16 -16
  207. package/dist/dashboard/data.js +2 -2
  208. package/dist/dashboard/launcher/ActiveJobsList.js +2 -2
  209. package/dist/dashboard/launcher/LauncherOverlay.js +7 -7
  210. package/dist/dashboard/launcher/NewLaunchForm.js +2 -2
  211. package/dist/dashboard/launcher/api.js +2 -2
  212. package/dist/dashboard/launcher/useLaunchJobs.js +3 -3
  213. package/dist/lib/active-org-refresh.js +2 -2
  214. package/dist/lib/agent-loop.js +20 -18
  215. package/dist/lib/antigravity-transcript.js +2 -2
  216. package/dist/lib/api-client.js +1 -1
  217. package/dist/lib/diagnostics.js +12 -0
  218. package/dist/lib/diagnostics.js.map +7 -0
  219. package/dist/lib/ensure-api-key.js +3 -3
  220. package/dist/lib/eval-benchmark.js +2 -2
  221. package/dist/lib/eval-conversation-handler.js +2 -2
  222. package/dist/lib/gateway-entry.js +39 -1
  223. package/dist/lib/gateway-entry.js.map +2 -2
  224. package/dist/lib/gateway-identity.js +16 -0
  225. package/dist/lib/gateway-identity.js.map +7 -0
  226. package/dist/lib/gateway-lifecycle.js +9 -3
  227. package/dist/lib/gateway.js +3 -1
  228. package/dist/lib/handlers/cron-suggest-instructions.js +3 -3
  229. package/dist/lib/handlers/process-announcement.js +3 -3
  230. package/dist/lib/handlers/process-changelog.js +3 -3
  231. package/dist/lib/handlers/process-conversation.js +3 -3
  232. package/dist/lib/handlers/process-eval.js +3 -3
  233. package/dist/lib/handlers/process-insights.js +3 -3
  234. package/dist/lib/handlers/process-launch.js +2 -2
  235. package/dist/lib/handlers/process-run-cleanup.js +2 -2
  236. package/dist/lib/handlers/process-session-goal.js +2 -2
  237. package/dist/lib/hooks-config.js +14 -1
  238. package/dist/lib/manual-tasks.js +6 -6
  239. package/dist/lib/pid-identity.js +14 -0
  240. package/dist/lib/pid-identity.js.map +7 -0
  241. package/dist/lib/proxy-respawn.js +12 -0
  242. package/dist/lib/proxy-respawn.js.map +7 -0
  243. package/dist/lib/research-client.js +2 -2
  244. package/dist/lib/setup-steps.js +7 -4
  245. package/dist/lib/statusline-shim.js +3 -1
  246. package/dist/lib/telemetry.js +4 -2
  247. package/dist/lib/terminal-target-heartbeat.js +2 -2
  248. package/oclif.manifest.json +34 -1
  249. package/package.json +6 -6
  250. package/dist/chunk-6EMZI4Y3.js.map +0 -7
  251. package/dist/chunk-BBLTN35F.js.map +0 -7
  252. package/dist/chunk-DAJNO4OI.js.map +0 -7
  253. package/dist/chunk-PXVQLD7S.js.map +0 -7
  254. package/dist/chunk-SZ7VDCD6.js.map +0 -7
  255. package/dist/chunk-TX2HKJLA.js +0 -55
  256. package/dist/chunk-TX2HKJLA.js.map +0 -7
  257. package/dist/chunk-XN23W5HL.js.map +0 -7
  258. package/dist/chunk-XNNOXGP6.js.map +0 -7
  259. package/dist/chunk-ZRLYHBPN.js.map +0 -7
  260. /package/dist/{chunk-RUCSRN7F.js.map → chunk-2ORJWTNZ.js.map} +0 -0
  261. /package/dist/{chunk-SLL3OBKN.js.map → chunk-37LN5O7M.js.map} +0 -0
  262. /package/dist/{chunk-RCMXTLQF.js.map → chunk-3LKVS6W5.js.map} +0 -0
  263. /package/dist/{chunk-UPXIO7CG.js.map → chunk-4XAWK6S2.js.map} +0 -0
  264. /package/dist/{chunk-N5A2IQAK.js.map → chunk-4YAP7RT7.js.map} +0 -0
  265. /package/dist/{chunk-QD6X4L4L.js.map → chunk-5BAOGNUH.js.map} +0 -0
  266. /package/dist/{chunk-5ADHO5QF.js.map → chunk-6NBS5XFS.js.map} +0 -0
  267. /package/dist/{chunk-DTFXCHHI.js.map → chunk-DNKSVWMD.js.map} +0 -0
  268. /package/dist/{chunk-YSEQWCN4.js.map → chunk-EYPAAGN5.js.map} +0 -0
  269. /package/dist/{chunk-JEJ3J5J6.js.map → chunk-GIUBARWS.js.map} +0 -0
  270. /package/dist/{chunk-CNMWYYSV.js.map → chunk-HZK43UCF.js.map} +0 -0
  271. /package/dist/{chunk-OTOWLUOJ.js.map → chunk-JULOLTZS.js.map} +0 -0
  272. /package/dist/{chunk-DR5WLIOU.js.map → chunk-KJKBDQ4D.js.map} +0 -0
  273. /package/dist/{chunk-AHDRN6NE.js.map → chunk-OO7JDFS4.js.map} +0 -0
  274. /package/dist/{chunk-3QH73QOQ.js.map → chunk-PED7L5GX.js.map} +0 -0
  275. /package/dist/{chunk-VBGUNFKY.js.map → chunk-PMI56ED5.js.map} +0 -0
  276. /package/dist/{chunk-W4MZXKZ2.js.map → chunk-UKMLICWS.js.map} +0 -0
  277. /package/dist/{chunk-3POYC5NA.js.map → chunk-XK42ZBDE.js.map} +0 -0
  278. /package/dist/{chunk-ZSGKRCKD.js.map → chunk-XUV6DDBF.js.map} +0 -0
  279. /package/dist/{chunk-LAKZUE35.js.map → chunk-Y3WD5CSW.js.map} +0 -0
  280. /package/dist/{chunk-3QVMIJUL.js.map → chunk-YOBA3NAM.js.map} +0 -0
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/instructions/get.ts"],
4
4
  "sourcesContent": ["import { Args, Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiGet } from '../../lib/api-client.js';\nimport { formatDate, formatScope } from '../../lib/output.js';\nimport { validateUuid } from '../../lib/types.js';\nimport type { Instruction } from '../../lib/types.js';\n\nexport default class InstructionsGet extends BaseCommand {\n static override description = 'Get an instruction by ID';\n\n static override examples = [\n '<%= config.bin %> instructions get <id>',\n '<%= config.bin %> instructions get <id> --format raw',\n ];\n\n static override enableJsonFlag = true;\n\n static override args = {\n id: Args.string({ description: 'Instruction ID', required: true }),\n };\n\n static override flags = {\n format: Flags.string({\n char: 'f',\n description: 'Output format',\n options: ['yaml', 'json', 'raw'],\n default: 'yaml',\n }),\n };\n\n async run(): Promise<Instruction> {\n const { args, flags } = await this.parse(InstructionsGet);\n this.requireAuth();\n validateUuid(args.id, 'instruction ID');\n\n const result = await apiGet<Instruction>(`/api/instructions/${encodeURIComponent(args.id)}`);\n\n if (flags.format === 'json') {\n this.log(JSON.stringify(result, null, 2));\n } else if (flags.format === 'raw') {\n this.log(result.content);\n } else {\n this.log(`Name: ${result.name}`);\n this.log(`Description: ${result.description}`);\n this.log(`Scope: ${formatScope(result.scope)}`);\n this.log(`Version: ${result.version}`);\n this.log(`Tags: ${(result.tags ?? []).join(', ') || '(none)'}`);\n this.log(`Created: ${formatDate(result.createdAt)}`);\n this.log(`Updated: ${formatDate(result.updatedAt)}`);\n this.log('');\n this.log('--- Content ---');\n this.log(result.content);\n }\n\n return result;\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAO5B,IAAqB,kBAArB,MAAqB,yBAAwB,YAAY;AAAA,EACvD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,iBAAiB;AAAA,EAEjC,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,kBAAkB,UAAU,KAAK,CAAC;AAAA,EACnE;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,QAAQ,MAAM,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC/B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAA4B;AAChC,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,gBAAe;AACxD,SAAK,YAAY;AACjB,iBAAa,KAAK,IAAI,gBAAgB;AAEtC,UAAM,SAAS,MAAM,OAAoB,qBAAqB,mBAAmB,KAAK,EAAE,CAAC,EAAE;AAE3F,QAAI,MAAM,WAAW,QAAQ;AAC3B,WAAK,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,IAC1C,WAAW,MAAM,WAAW,OAAO;AACjC,WAAK,IAAI,OAAO,OAAO;AAAA,IACzB,OAAO;AACL,WAAK,IAAI,gBAAgB,OAAO,IAAI,EAAE;AACtC,WAAK,IAAI,gBAAgB,OAAO,WAAW,EAAE;AAC7C,WAAK,IAAI,gBAAgB,YAAY,OAAO,KAAK,CAAC,EAAE;AACpD,WAAK,IAAI,gBAAgB,OAAO,OAAO,EAAE;AACzC,WAAK,IAAI,iBAAiB,OAAO,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,QAAQ,EAAE;AACrE,WAAK,IAAI,gBAAgB,WAAW,OAAO,SAAS,CAAC,EAAE;AACvD,WAAK,IAAI,gBAAgB,WAAW,OAAO,SAAS,CAAC,EAAE;AACvD,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,iBAAiB;AAC1B,WAAK,IAAI,OAAO,OAAO;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAO5B,IAAqB,kBAArB,MAAqB,yBAAwB,YAAY;AAAA,EACvD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,iBAAiB;AAAA,EAEjC,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,kBAAkB,UAAU,KAAK,CAAC;AAAA,EACnE;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,QAAQ,MAAM,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,CAAC,QAAQ,QAAQ,KAAK;AAAA,MAC/B,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAA4B;AAChC,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,gBAAe;AACxD,SAAK,YAAY;AACjB,iBAAa,KAAK,IAAI,gBAAgB;AAEtC,UAAM,SAAS,MAAM,OAAoB,qBAAqB,mBAAmB,KAAK,EAAE,CAAC,EAAE;AAE3F,QAAI,MAAM,WAAW,QAAQ;AAC3B,WAAK,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,IAC1C,WAAW,MAAM,WAAW,OAAO;AACjC,WAAK,IAAI,OAAO,OAAO;AAAA,IACzB,OAAO;AACL,WAAK,IAAI,gBAAgB,OAAO,IAAI,EAAE;AACtC,WAAK,IAAI,gBAAgB,OAAO,WAAW,EAAE;AAC7C,WAAK,IAAI,gBAAgB,YAAY,OAAO,KAAK,CAAC,EAAE;AACpD,WAAK,IAAI,gBAAgB,OAAO,OAAO,EAAE;AACzC,WAAK,IAAI,iBAAiB,OAAO,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,QAAQ,EAAE;AACrE,WAAK,IAAI,gBAAgB,WAAW,OAAO,SAAS,CAAC,EAAE;AACvD,WAAK,IAAI,gBAAgB,WAAW,OAAO,SAAS,CAAC,EAAE;AACvD,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,iBAAiB;AAC1B,WAAK,IAAI,OAAO,OAAO;AAAA,IACzB;AAEA,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -5,13 +5,14 @@ import {
5
5
  } from "../../chunk-BZDKEQKU.js";
6
6
  import {
7
7
  BaseCommand
8
- } from "../../chunk-SZ7VDCD6.js";
8
+ } from "../../chunk-2HK7RGZB.js";
9
9
  import "../../chunk-R56PH7YE.js";
10
- import "../../chunk-SLL3OBKN.js";
10
+ import "../../chunk-GQNJO2P2.js";
11
+ import "../../chunk-37LN5O7M.js";
11
12
  import "../../chunk-EKJ2CABV.js";
12
13
  import {
13
14
  apiGet
14
- } from "../../chunk-ZRLYHBPN.js";
15
+ } from "../../chunk-ZUJBM6HE.js";
15
16
  import "../../chunk-W2YERO7E.js";
16
17
  import "../../chunk-NSBPE2FW.js";
17
18
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/instructions/list.ts"],
4
4
  "sourcesContent": ["import { Flags } from '@oclif/core';\nimport { printTable } from '@oclif/table';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiGet } from '../../lib/api-client.js';\nimport { formatDate, truncate, formatScope } from '../../lib/output.js';\nimport type { InstructionSummary } from '../../lib/types.js';\n\nexport default class InstructionSummarysList extends BaseCommand {\n static override description = 'List your instructions';\n\n static override examples = [\n '<%= config.bin %> instructions list',\n '<%= config.bin %> instructions list --json',\n ];\n\n static override enableJsonFlag = true;\n\n static override flags = {\n format: Flags.string({\n char: 'f',\n description: 'Output format',\n options: ['table', 'json'],\n default: 'table',\n }),\n };\n\n async run(): Promise<InstructionSummary[]> {\n const { flags } = await this.parse(InstructionSummarysList);\n this.requireAuth();\n\n const results = await apiGet<InstructionSummary[]>('/api/instructions');\n\n if (results.length === 0) {\n this.log('No instructions found. Create one with `rulemetric instructions create`.');\n return results;\n }\n\n if (flags.format === 'json') {\n this.log(JSON.stringify(results, null, 2));\n } else {\n printTable({\n data: results.map((i) => ({\n Name: truncate(i.name, 40),\n Scope: formatScope(i.scope),\n Version: i.version,\n Tags: (i.tags ?? []).join(', '),\n Updated: formatDate(i.updatedAt),\n })),\n columns: ['Name', 'Scope', 'Version', 'Tags', 'Updated'],\n });\n }\n\n return results;\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAM3B,IAAqB,0BAArB,MAAqB,iCAAgC,YAAY;AAAA,EAC/D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,iBAAiB;AAAA,EAEjC,OAAgB,QAAQ;AAAA,IACtB,QAAQ,MAAM,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,CAAC,SAAS,MAAM;AAAA,MACzB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqC;AACzC,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,wBAAuB;AAC1D,SAAK,YAAY;AAEjB,UAAM,UAAU,MAAM,OAA6B,mBAAmB;AAEtE,QAAI,QAAQ,WAAW,GAAG;AACxB,WAAK,IAAI,0EAA0E;AACnF,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,WAAW,QAAQ;AAC3B,WAAK,IAAI,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAAA,IAC3C,OAAO;AACL,iBAAW;AAAA,QACT,MAAM,QAAQ,IAAI,CAAC,OAAO;AAAA,UACxB,MAAM,SAAS,EAAE,MAAM,EAAE;AAAA,UACzB,OAAO,YAAY,EAAE,KAAK;AAAA,UAC1B,SAAS,EAAE;AAAA,UACX,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,IAAI;AAAA,UAC9B,SAAS,WAAW,EAAE,SAAS;AAAA,QACjC,EAAE;AAAA,QACF,SAAS,CAAC,QAAQ,SAAS,WAAW,QAAQ,SAAS;AAAA,MACzD,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAM3B,IAAqB,0BAArB,MAAqB,iCAAgC,YAAY;AAAA,EAC/D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,iBAAiB;AAAA,EAEjC,OAAgB,QAAQ;AAAA,IACtB,QAAQ,MAAM,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,CAAC,SAAS,MAAM;AAAA,MACzB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqC;AACzC,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,wBAAuB;AAC1D,SAAK,YAAY;AAEjB,UAAM,UAAU,MAAM,OAA6B,mBAAmB;AAEtE,QAAI,QAAQ,WAAW,GAAG;AACxB,WAAK,IAAI,0EAA0E;AACnF,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,WAAW,QAAQ;AAC3B,WAAK,IAAI,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAAA,IAC3C,OAAO;AACL,iBAAW;AAAA,QACT,MAAM,QAAQ,IAAI,CAAC,OAAO;AAAA,UACxB,MAAM,SAAS,EAAE,MAAM,EAAE;AAAA,UACzB,OAAO,YAAY,EAAE,KAAK;AAAA,UAC1B,SAAS,EAAE;AAAA,UACX,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,IAAI;AAAA,UAC9B,SAAS,WAAW,EAAE,SAAS;AAAA,QACjC,EAAE;AAAA,QACF,SAAS,CAAC,QAAQ,SAAS,WAAW,QAAQ,SAAS;AAAA,MACzD,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import "../../chunk-EKJ2CABV.js";
7
8
  import {
8
9
  apiPost
9
- } from "../../chunk-ZRLYHBPN.js";
10
+ } from "../../chunk-ZUJBM6HE.js";
10
11
  import "../../chunk-W2YERO7E.js";
11
12
  import "../../chunk-NSBPE2FW.js";
12
13
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/instructions/promote.ts"],
4
4
  "sourcesContent": ["import { Args, Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiPost } from '../../lib/api-client.js';\n\nexport default class InstructionsPromote extends BaseCommand {\n static override description = 'Promote an instruction to a higher scope (personal \u2192 team \u2192 org)';\n\n static override examples = [\n '<%= config.bin %> instructions promote <id> --scope team --ref <team-id>',\n '<%= config.bin %> instructions promote <id> --scope org --ref <org-id>',\n ];\n\n static override args = {\n id: Args.string({ description: 'ID of the instruction to promote', required: true }),\n };\n\n static override flags = {\n scope: Flags.string({ description: 'Target scope', required: true, options: ['team', 'org'] }),\n ref: Flags.string({ description: 'Target scope ref (team or org ID)', required: true }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(InstructionsPromote);\n this.requireAuth();\n\n const result = await apiPost<{ scope: string; name: string }>(`/api/instructions/${args.id}/promote`, {\n scope: flags.scope,\n scopeRef: flags.ref,\n });\n this.log(`Promoted \"${result.name}\" to ${result.scope} scope`);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAI5B,IAAqB,sBAArB,MAAqB,6BAA4B,YAAY;AAAA,EACzD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACvB;AAAA,IACA;AAAA,EACJ;AAAA,EAEA,OAAgB,OAAO;AAAA,IACnB,IAAI,KAAK,OAAO,EAAE,aAAa,oCAAoC,UAAU,KAAK,CAAC;AAAA,EACvF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACpB,OAAO,MAAM,OAAO,EAAE,aAAa,gBAAgB,UAAU,MAAM,SAAS,CAAC,QAAQ,KAAK,EAAE,CAAC;AAAA,IAC7F,KAAK,MAAM,OAAO,EAAE,aAAa,qCAAqC,UAAU,KAAK,CAAC;AAAA,EAC1F;AAAA,EAEA,MAAM,MAAqB;AACvB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,oBAAmB;AAC5D,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM,QAAyC,qBAAqB,KAAK,EAAE,YAAY;AAAA,MAClG,OAAO,MAAM;AAAA,MACb,UAAU,MAAM;AAAA,IACpB,CAAC;AACD,SAAK,IAAI,aAAa,OAAO,IAAI,QAAQ,OAAO,KAAK,QAAQ;AAAA,EACjE;AACJ;",
5
+ "mappings": ";;;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAI5B,IAAqB,sBAArB,MAAqB,6BAA4B,YAAY;AAAA,EACzD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACvB;AAAA,IACA;AAAA,EACJ;AAAA,EAEA,OAAgB,OAAO;AAAA,IACnB,IAAI,KAAK,OAAO,EAAE,aAAa,oCAAoC,UAAU,KAAK,CAAC;AAAA,EACvF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACpB,OAAO,MAAM,OAAO,EAAE,aAAa,gBAAgB,UAAU,MAAM,SAAS,CAAC,QAAQ,KAAK,EAAE,CAAC;AAAA,IAC7F,KAAK,MAAM,OAAO,EAAE,aAAa,qCAAqC,UAAU,KAAK,CAAC;AAAA,EAC1F;AAAA,EAEA,MAAM,MAAqB;AACvB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,oBAAmB;AAC5D,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM,QAAyC,qBAAqB,KAAK,EAAE,YAAY;AAAA,MAClG,OAAO,MAAM;AAAA,MACb,UAAU,MAAM;AAAA,IACpB,CAAC;AACD,SAAK,IAAI,aAAa,OAAO,IAAI,QAAQ,OAAO,KAAK,QAAQ;AAAA,EACjE;AACJ;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import "../../chunk-EKJ2CABV.js";
7
8
  import {
8
9
  apiPost
9
- } from "../../chunk-ZRLYHBPN.js";
10
+ } from "../../chunk-ZUJBM6HE.js";
10
11
  import "../../chunk-W2YERO7E.js";
11
12
  import "../../chunk-NSBPE2FW.js";
12
13
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/instructions/pull.ts"],
4
4
  "sourcesContent": ["import { Args } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiPost } from '../../lib/api-client.js';\n\nexport default class InstructionsPull extends BaseCommand {\n static override description = 'Pull upstream changes into a forked instruction';\n\n static override args = {\n id: Args.string({ description: 'ID of the forked instruction', required: true }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(InstructionsPull);\n this.requireAuth();\n\n const result = await apiPost<{ hasConflicts: boolean; merged?: string; instruction?: { name: string } }>(\n `/api/instructions/${args.id}/pull-upstream`,\n {},\n );\n\n if (result.hasConflicts) {\n this.log('Merge conflicts detected. Resolve in the web UI:');\n this.log(result.merged ?? '');\n } else {\n this.log(`Successfully pulled upstream changes into \"${result.instruction?.name}\"`);\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,mBAArB,MAAqB,0BAAyB,YAAY;AAAA,EACtD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,OAAO;AAAA,IACnB,IAAI,KAAK,OAAO,EAAE,aAAa,gCAAgC,UAAU,KAAK,CAAC;AAAA,EACnF;AAAA,EAEA,MAAM,MAAqB;AACvB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,iBAAgB;AAClD,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM;AAAA,MACjB,qBAAqB,KAAK,EAAE;AAAA,MAC5B,CAAC;AAAA,IACL;AAEA,QAAI,OAAO,cAAc;AACrB,WAAK,IAAI,kDAAkD;AAC3D,WAAK,IAAI,OAAO,UAAU,EAAE;AAAA,IAChC,OAAO;AACH,WAAK,IAAI,8CAA8C,OAAO,aAAa,IAAI,GAAG;AAAA,IACtF;AAAA,EACJ;AACJ;",
5
+ "mappings": ";;;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,mBAArB,MAAqB,0BAAyB,YAAY;AAAA,EACtD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,OAAO;AAAA,IACnB,IAAI,KAAK,OAAO,EAAE,aAAa,gCAAgC,UAAU,KAAK,CAAC;AAAA,EACnF;AAAA,EAEA,MAAM,MAAqB;AACvB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,iBAAgB;AAClD,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM;AAAA,MACjB,qBAAqB,KAAK,EAAE;AAAA,MAC5B,CAAC;AAAA,IACL;AAEA,QAAI,OAAO,cAAc;AACrB,WAAK,IAAI,kDAAkD;AAC3D,WAAK,IAAI,OAAO,UAAU,EAAE;AAAA,IAChC,OAAO;AACH,WAAK,IAAI,8CAA8C,OAAO,aAAa,IAAI,GAAG;AAAA,IACtF;AAAA,EACJ;AACJ;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import "../../chunk-EKJ2CABV.js";
7
8
  import {
8
9
  apiGet
9
- } from "../../chunk-ZRLYHBPN.js";
10
+ } from "../../chunk-ZUJBM6HE.js";
10
11
  import "../../chunk-W2YERO7E.js";
11
12
  import "../../chunk-NSBPE2FW.js";
12
13
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/instructions/upstream.ts"],
4
4
  "sourcesContent": ["import { Args } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiGet } from '../../lib/api-client.js';\n\nexport default class InstructionsUpstream extends BaseCommand {\n static override description = 'Check if a forked instruction has upstream updates';\n\n static override args = {\n id: Args.string({ description: 'ID of the forked instruction', required: true }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(InstructionsUpstream);\n this.requireAuth();\n\n const result = await apiGet<{ hasUpdate: boolean; currentVersion: string; upstreamVersion: string; parentName: string }>(\n `/api/instructions/${args.id}/upstream`,\n );\n\n if (result.hasUpdate) {\n this.log(`Upstream update available: ${result.parentName} is at ${result.upstreamVersion} (you have ${result.currentVersion})`);\n this.log(`Run: rulemetric instructions pull ${args.id}`);\n } else {\n this.log('Up to date with upstream.');\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,uBAArB,MAAqB,8BAA6B,YAAY;AAAA,EAC1D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,OAAO;AAAA,IACnB,IAAI,KAAK,OAAO,EAAE,aAAa,gCAAgC,UAAU,KAAK,CAAC;AAAA,EACnF;AAAA,EAEA,MAAM,MAAqB;AACvB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,qBAAoB;AACtD,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM;AAAA,MACjB,qBAAqB,KAAK,EAAE;AAAA,IAChC;AAEA,QAAI,OAAO,WAAW;AAClB,WAAK,IAAI,8BAA8B,OAAO,UAAU,UAAU,OAAO,eAAe,cAAc,OAAO,cAAc,GAAG;AAC9H,WAAK,IAAI,qCAAqC,KAAK,EAAE,EAAE;AAAA,IAC3D,OAAO;AACH,WAAK,IAAI,2BAA2B;AAAA,IACxC;AAAA,EACJ;AACJ;",
5
+ "mappings": ";;;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,uBAArB,MAAqB,8BAA6B,YAAY;AAAA,EAC1D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,OAAO;AAAA,IACnB,IAAI,KAAK,OAAO,EAAE,aAAa,gCAAgC,UAAU,KAAK,CAAC;AAAA,EACnF;AAAA,EAEA,MAAM,MAAqB;AACvB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,qBAAoB;AACtD,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM;AAAA,MACjB,qBAAqB,KAAK,EAAE;AAAA,IAChC;AAEA,QAAI,OAAO,WAAW;AAClB,WAAK,IAAI,8BAA8B,OAAO,UAAU,UAAU,OAAO,eAAe,cAAc,OAAO,cAAc,GAAG;AAC9H,WAAK,IAAI,qCAAqC,KAAK,EAAE,EAAE;AAAA,IAC3D,OAAO;AACH,WAAK,IAAI,2BAA2B;AAAA,IACxC;AAAA,EACJ;AACJ;",
6
6
  "names": []
7
7
  }
@@ -6,13 +6,14 @@ import {
6
6
  } from "../../chunk-BZDKEQKU.js";
7
7
  import {
8
8
  BaseCommand
9
- } from "../../chunk-SZ7VDCD6.js";
9
+ } from "../../chunk-2HK7RGZB.js";
10
10
  import "../../chunk-R56PH7YE.js";
11
- import "../../chunk-SLL3OBKN.js";
11
+ import "../../chunk-GQNJO2P2.js";
12
+ import "../../chunk-37LN5O7M.js";
12
13
  import "../../chunk-EKJ2CABV.js";
13
14
  import {
14
15
  apiGet
15
- } from "../../chunk-ZRLYHBPN.js";
16
+ } from "../../chunk-ZUJBM6HE.js";
16
17
  import "../../chunk-W2YERO7E.js";
17
18
  import "../../chunk-NSBPE2FW.js";
18
19
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/instructions/versions.ts"],
4
4
  "sourcesContent": ["import { Args } from '@oclif/core';\nimport { printTable } from '@oclif/table';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiGet } from '../../lib/api-client.js';\nimport { formatDate } from '../../lib/output.js';\nimport { validateUuid } from '../../lib/types.js';\nimport type { InstructionVersion } from '../../lib/types.js';\n\nexport default class InstructionsVersions extends BaseCommand {\n static override description = 'List version history for an instruction';\n\n static override examples = ['<%= config.bin %> instructions versions <id>'];\n\n static override enableJsonFlag = true;\n\n static override args = {\n id: Args.string({ description: 'Instruction ID', required: true }),\n };\n\n async run(): Promise<InstructionVersion[]> {\n const { args } = await this.parse(InstructionsVersions);\n this.requireAuth();\n validateUuid(args.id, 'instruction ID');\n\n const versions = await apiGet<InstructionVersion[]>(`/api/instructions/${encodeURIComponent(args.id)}/versions`);\n\n if (versions.length === 0) {\n this.log('No versions found.');\n return versions;\n }\n\n printTable({\n data: versions.map((v) => ({\n Version: String(v.versionNumber),\n 'Change Summary': v.changeSummary ?? '(none)',\n 'Created At': formatDate(v.createdAt),\n })),\n columns: ['Version', 'Change Summary', 'Created At'],\n });\n\n return versions;\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAO3B,IAAqB,uBAArB,MAAqB,8BAA6B,YAAY;AAAA,EAC5D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW,CAAC,8CAA8C;AAAA,EAE1E,OAAgB,iBAAiB;AAAA,EAEjC,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,kBAAkB,UAAU,KAAK,CAAC;AAAA,EACnE;AAAA,EAEA,MAAM,MAAqC;AACzC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,qBAAoB;AACtD,SAAK,YAAY;AACjB,iBAAa,KAAK,IAAI,gBAAgB;AAEtC,UAAM,WAAW,MAAM,OAA6B,qBAAqB,mBAAmB,KAAK,EAAE,CAAC,WAAW;AAE/G,QAAI,SAAS,WAAW,GAAG;AACzB,WAAK,IAAI,oBAAoB;AAC7B,aAAO;AAAA,IACT;AAEA,eAAW;AAAA,MACT,MAAM,SAAS,IAAI,CAAC,OAAO;AAAA,QACzB,SAAS,OAAO,EAAE,aAAa;AAAA,QAC/B,kBAAkB,EAAE,iBAAiB;AAAA,QACrC,cAAc,WAAW,EAAE,SAAS;AAAA,MACtC,EAAE;AAAA,MACF,SAAS,CAAC,WAAW,kBAAkB,YAAY;AAAA,IACrD,CAAC;AAED,WAAO;AAAA,EACT;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAO3B,IAAqB,uBAArB,MAAqB,8BAA6B,YAAY;AAAA,EAC5D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW,CAAC,8CAA8C;AAAA,EAE1E,OAAgB,iBAAiB;AAAA,EAEjC,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,kBAAkB,UAAU,KAAK,CAAC;AAAA,EACnE;AAAA,EAEA,MAAM,MAAqC;AACzC,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,qBAAoB;AACtD,SAAK,YAAY;AACjB,iBAAa,KAAK,IAAI,gBAAgB;AAEtC,UAAM,WAAW,MAAM,OAA6B,qBAAqB,mBAAmB,KAAK,EAAE,CAAC,WAAW;AAE/G,QAAI,SAAS,WAAW,GAAG;AACzB,WAAK,IAAI,oBAAoB;AAC7B,aAAO;AAAA,IACT;AAEA,eAAW;AAAA,MACT,MAAM,SAAS,IAAI,CAAC,OAAO;AAAA,QACzB,SAAS,OAAO,EAAE,aAAa;AAAA,QAC/B,kBAAkB,EAAE,iBAAiB;AAAA,QACrC,cAAc,WAAW,EAAE,SAAS;AAAA,MACtC,EAAE;AAAA,MACF,SAAS,CAAC,WAAW,kBAAkB,YAAY;AAAA,IACrD,CAAC;AAED,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../chunk-SZ7VDCD6.js";
3
+ } from "../chunk-2HK7RGZB.js";
4
4
  import "../chunk-R56PH7YE.js";
5
- import "../chunk-SLL3OBKN.js";
5
+ import "../chunk-GQNJO2P2.js";
6
+ import "../chunk-37LN5O7M.js";
6
7
  import "../chunk-EKJ2CABV.js";
7
- import "../chunk-ZRLYHBPN.js";
8
+ import "../chunk-ZUJBM6HE.js";
8
9
  import "../chunk-W2YERO7E.js";
9
10
  import "../chunk-NSBPE2FW.js";
10
11
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/commands/launcher.ts"],
4
4
  "sourcesContent": ["import { Flags } from '@oclif/core';\nimport { BaseCommand } from '../base-command.js';\n\nexport default class Launcher extends BaseCommand {\n static override description = 'Open the launcher overlay (alias for `dashboard --launcher`)';\n\n static override examples = [\n '<%= config.bin %> launcher',\n '<%= config.bin %> launcher --period today',\n ];\n\n static override flags = {\n period: Flags.string({\n char: 'p',\n default: 'week',\n options: ['today', 'week', '30days', 'month', 'all'],\n description: 'Initial time period for the dashboard panels behind the overlay',\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(Launcher);\n const { renderDashboard } = await import('../dashboard/Dashboard.js');\n await renderDashboard(\n flags.period as 'today' | 'week' | '30days' | 'month' | 'all',\n { openLauncher: true },\n );\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;AAAA,SAAS,aAAa;AAGtB,IAAqB,WAArB,MAAqB,kBAAiB,YAAY;AAAA,EAChD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,QAAQ,MAAM,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS,CAAC,SAAS,QAAQ,UAAU,SAAS,KAAK;AAAA,MACnD,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,SAAQ;AAC3C,UAAM,EAAE,gBAAgB,IAAI,MAAM,OAAO,2BAA2B;AACpE,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,EAAE,cAAc,KAAK;AAAA,IACvB;AAAA,EACF;AACF;",
5
+ "mappings": ";;;;;;;;;;;;AAAA,SAAS,aAAa;AAGtB,IAAqB,WAArB,MAAqB,kBAAiB,YAAY;AAAA,EAChD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,QAAQ,MAAM,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,SAAS;AAAA,MACT,SAAS,CAAC,SAAS,QAAQ,UAAU,SAAS,KAAK;AAAA,MACnD,aAAa;AAAA,IACf,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,SAAQ;AAC3C,UAAM,EAAE,gBAAgB,IAAI,MAAM,OAAO,2BAA2B;AACpE,UAAM;AAAA,MACJ,MAAM;AAAA,MACN,EAAE,cAAc,KAAK;AAAA,IACvB;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import {
7
8
  clearActiveOrg,
8
9
  isStale,
@@ -12,7 +13,7 @@ import {
12
13
  import {
13
14
  ApiError,
14
15
  apiGet
15
- } from "../../chunk-ZRLYHBPN.js";
16
+ } from "../../chunk-ZUJBM6HE.js";
16
17
  import {
17
18
  isAuthenticated
18
19
  } from "../../chunk-W2YERO7E.js";
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/org/current.ts"],
4
4
  "sourcesContent": ["import { BaseCommand } from '../../base-command.js';\nimport { apiGet, ApiError } from '../../lib/api-client.js';\nimport { isAuthenticated } from '../../lib/auth.js';\nimport {\n readActiveOrg,\n writeActiveOrg,\n clearActiveOrg,\n isStale,\n} from '../../lib/active-org.js';\n\ninterface ProfileResponse {\n id: string;\n email: string | null;\n displayName: string | null;\n activeOrgId: string | null;\n}\n\ninterface Org {\n id: string;\n name: string;\n slug: string;\n role: string;\n}\n\nexport default class OrgCurrent extends BaseCommand {\n static override description = 'Show the current active organization';\n\n static override examples = ['<%= config.bin %> org current'];\n\n async run(): Promise<void> {\n await this.parse(OrgCurrent);\n\n // Env override path \u2014 print and exit. Don't auth-check, don't refresh:\n // the env override is meant to be ephemeral and self-explanatory.\n const envId = process.env.RULEMETRIC_ORG_ID?.trim();\n if (envId) {\n this.log(`${envId} (env override)`);\n return;\n }\n\n // Don't use `requireAuth()` here because it kicks off a background\n // refresh that races our own explicit refresh below. Check auth\n // directly instead.\n if (!isAuthenticated()) {\n this.error('Not logged in. Run `rulemetric auth login` to authenticate.');\n }\n\n let cached = readActiveOrg();\n\n // Stale cache: refresh from /api/profile and look up the slug. If the\n // refresh fails (network, auth), fall back to the cached value rather\n // than telling the user \"no active org\" incorrectly.\n if (cached && isStale(cached)) {\n try {\n const profile = await apiGet<ProfileResponse>('/api/profile');\n if (!profile.activeOrgId) {\n clearActiveOrg();\n cached = null;\n } else if (profile.activeOrgId !== cached.orgId) {\n const orgs = await apiGet<Org[]>('/api/orgs');\n const match = orgs.find((o) => o.id === profile.activeOrgId);\n cached = {\n orgId: profile.activeOrgId,\n orgSlug: match?.slug,\n syncedAt: Date.now(),\n };\n writeActiveOrg(cached);\n } else {\n cached = {\n ...cached,\n syncedAt: Date.now(),\n };\n writeActiveOrg(cached);\n }\n } catch (err) {\n if (!(err instanceof ApiError)) throw err;\n // network/auth errors: keep the stale cache, just print it\n }\n }\n\n if (!cached) {\n this.log('No active organization. Run `rulemetric org switch <slug>`.');\n return;\n }\n\n if (cached.orgSlug) {\n this.log(`${cached.orgSlug} (${cached.orgId})`);\n } else {\n this.log(cached.orgId);\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAwBA,IAAqB,aAArB,MAAqB,oBAAmB,YAAY;AAAA,EAClD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW,CAAC,+BAA+B;AAAA,EAE3D,MAAM,MAAqB;AACzB,UAAM,KAAK,MAAM,WAAU;AAI3B,UAAM,QAAQ,QAAQ,IAAI,mBAAmB,KAAK;AAClD,QAAI,OAAO;AACT,WAAK,IAAI,GAAG,KAAK,iBAAiB;AAClC;AAAA,IACF;AAKA,QAAI,CAAC,gBAAgB,GAAG;AACtB,WAAK,MAAM,6DAA6D;AAAA,IAC1E;AAEA,QAAI,SAAS,cAAc;AAK3B,QAAI,UAAU,QAAQ,MAAM,GAAG;AAC7B,UAAI;AACF,cAAM,UAAU,MAAM,OAAwB,cAAc;AAC5D,YAAI,CAAC,QAAQ,aAAa;AACxB,yBAAe;AACf,mBAAS;AAAA,QACX,WAAW,QAAQ,gBAAgB,OAAO,OAAO;AAC/C,gBAAM,OAAO,MAAM,OAAc,WAAW;AAC5C,gBAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,EAAE,OAAO,QAAQ,WAAW;AAC3D,mBAAS;AAAA,YACP,OAAO,QAAQ;AAAA,YACf,SAAS,OAAO;AAAA,YAChB,UAAU,KAAK,IAAI;AAAA,UACrB;AACA,yBAAe,MAAM;AAAA,QACvB,OAAO;AACL,mBAAS;AAAA,YACP,GAAG;AAAA,YACH,UAAU,KAAK,IAAI;AAAA,UACrB;AACA,yBAAe,MAAM;AAAA,QACvB;AAAA,MACF,SAAS,KAAK;AACZ,YAAI,EAAE,eAAe,UAAW,OAAM;AAAA,MAExC;AAAA,IACF;AAEA,QAAI,CAAC,QAAQ;AACX,WAAK,IAAI,6DAA6D;AACtE;AAAA,IACF;AAEA,QAAI,OAAO,SAAS;AAClB,WAAK,IAAI,GAAG,OAAO,OAAO,KAAK,OAAO,KAAK,GAAG;AAAA,IAChD,OAAO;AACL,WAAK,IAAI,OAAO,KAAK;AAAA,IACvB;AAAA,EACF;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;AAwBA,IAAqB,aAArB,MAAqB,oBAAmB,YAAY;AAAA,EAClD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW,CAAC,+BAA+B;AAAA,EAE3D,MAAM,MAAqB;AACzB,UAAM,KAAK,MAAM,WAAU;AAI3B,UAAM,QAAQ,QAAQ,IAAI,mBAAmB,KAAK;AAClD,QAAI,OAAO;AACT,WAAK,IAAI,GAAG,KAAK,iBAAiB;AAClC;AAAA,IACF;AAKA,QAAI,CAAC,gBAAgB,GAAG;AACtB,WAAK,MAAM,6DAA6D;AAAA,IAC1E;AAEA,QAAI,SAAS,cAAc;AAK3B,QAAI,UAAU,QAAQ,MAAM,GAAG;AAC7B,UAAI;AACF,cAAM,UAAU,MAAM,OAAwB,cAAc;AAC5D,YAAI,CAAC,QAAQ,aAAa;AACxB,yBAAe;AACf,mBAAS;AAAA,QACX,WAAW,QAAQ,gBAAgB,OAAO,OAAO;AAC/C,gBAAM,OAAO,MAAM,OAAc,WAAW;AAC5C,gBAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,EAAE,OAAO,QAAQ,WAAW;AAC3D,mBAAS;AAAA,YACP,OAAO,QAAQ;AAAA,YACf,SAAS,OAAO;AAAA,YAChB,UAAU,KAAK,IAAI;AAAA,UACrB;AACA,yBAAe,MAAM;AAAA,QACvB,OAAO;AACL,mBAAS;AAAA,YACP,GAAG;AAAA,YACH,UAAU,KAAK,IAAI;AAAA,UACrB;AACA,yBAAe,MAAM;AAAA,QACvB;AAAA,MACF,SAAS,KAAK;AACZ,YAAI,EAAE,eAAe,UAAW,OAAM;AAAA,MAExC;AAAA,IACF;AAEA,QAAI,CAAC,QAAQ;AACX,WAAK,IAAI,6DAA6D;AACtE;AAAA,IACF;AAEA,QAAI,OAAO,SAAS;AAClB,WAAK,IAAI,GAAG,OAAO,OAAO,KAAK,OAAO,KAAK,GAAG;AAAA,IAChD,OAAO;AACL,WAAK,IAAI,OAAO,KAAK;AAAA,IACvB;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,14 +1,15 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import {
7
8
  readActiveOrg
8
9
  } from "../../chunk-EKJ2CABV.js";
9
10
  import {
10
11
  apiGet
11
- } from "../../chunk-ZRLYHBPN.js";
12
+ } from "../../chunk-ZUJBM6HE.js";
12
13
  import "../../chunk-W2YERO7E.js";
13
14
  import "../../chunk-NSBPE2FW.js";
14
15
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/org/list.ts"],
4
4
  "sourcesContent": ["import { BaseCommand } from '../../base-command.js';\nimport { apiGet } from '../../lib/api-client.js';\nimport { readActiveOrg } from '../../lib/active-org.js';\n\ninterface Org {\n id: string;\n name: string;\n slug: string;\n role: string;\n}\n\nconst WEB_URL =\n process.env.RULEMETRIC_WEB_URL ?? 'https://rulemetric.com';\n\nexport default class OrgList extends BaseCommand {\n static override description = 'List organizations the current user is a member of';\n\n static override examples = ['<%= config.bin %> org list'];\n\n async run(): Promise<void> {\n await this.parse(OrgList);\n this.requireAuth();\n\n const orgs = await apiGet<Org[]>('/api/orgs');\n\n if (orgs.length === 0) {\n this.log('No organizations.');\n this.log(`Create one in the web UI: ${WEB_URL}`);\n return;\n }\n\n // Resolve active org from env > local file > none. Env without a slug\n // still gets a star next to the matching id.\n const active = readActiveOrg();\n const activeId = active?.orgId ?? null;\n\n // Compute column widths for stable, readable output.\n const slugWidth = Math.max(4, ...orgs.map((o) => o.slug.length));\n const nameWidth = Math.max(4, ...orgs.map((o) => o.name.length));\n const roleWidth = Math.max(4, ...orgs.map((o) => o.role.length));\n\n const header =\n ` ACTIVE ${'SLUG'.padEnd(slugWidth)} ${'NAME'.padEnd(nameWidth)} ${'ROLE'.padEnd(roleWidth)}`;\n this.log(header);\n\n for (const org of orgs) {\n const marker = org.id === activeId ? '*' : ' ';\n this.log(\n ` ${marker} ${org.slug.padEnd(slugWidth)} ${org.name.padEnd(nameWidth)} ${org.role.padEnd(roleWidth)}`,\n );\n }\n\n if (!activeId) {\n this.log('');\n this.log('No active organization. Run `rulemetric org switch <slug>` to set one.');\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;AAWA,IAAM,UACJ,QAAQ,IAAI,sBAAsB;AAEpC,IAAqB,UAArB,MAAqB,iBAAgB,YAAY;AAAA,EAC/C,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW,CAAC,4BAA4B;AAAA,EAExD,MAAM,MAAqB;AACzB,UAAM,KAAK,MAAM,QAAO;AACxB,SAAK,YAAY;AAEjB,UAAM,OAAO,MAAM,OAAc,WAAW;AAE5C,QAAI,KAAK,WAAW,GAAG;AACrB,WAAK,IAAI,mBAAmB;AAC5B,WAAK,IAAI,6BAA6B,OAAO,EAAE;AAC/C;AAAA,IACF;AAIA,UAAM,SAAS,cAAc;AAC7B,UAAM,WAAW,QAAQ,SAAS;AAGlC,UAAM,YAAY,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC;AAC/D,UAAM,YAAY,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC;AAC/D,UAAM,YAAY,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC;AAE/D,UAAM,SACJ,aAAa,OAAO,OAAO,SAAS,CAAC,KAAK,OAAO,OAAO,SAAS,CAAC,KAAK,OAAO,OAAO,SAAS,CAAC;AACjG,SAAK,IAAI,MAAM;AAEf,eAAW,OAAO,MAAM;AACtB,YAAM,SAAS,IAAI,OAAO,WAAW,MAAM;AAC3C,WAAK;AAAA,QACH,KAAK,MAAM,UAAU,IAAI,KAAK,OAAO,SAAS,CAAC,KAAK,IAAI,KAAK,OAAO,SAAS,CAAC,KAAK,IAAI,KAAK,OAAO,SAAS,CAAC;AAAA,MAC/G;AAAA,IACF;AAEA,QAAI,CAAC,UAAU;AACb,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,wEAAwE;AAAA,IACnF;AAAA,EACF;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;AAWA,IAAM,UACJ,QAAQ,IAAI,sBAAsB;AAEpC,IAAqB,UAArB,MAAqB,iBAAgB,YAAY;AAAA,EAC/C,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW,CAAC,4BAA4B;AAAA,EAExD,MAAM,MAAqB;AACzB,UAAM,KAAK,MAAM,QAAO;AACxB,SAAK,YAAY;AAEjB,UAAM,OAAO,MAAM,OAAc,WAAW;AAE5C,QAAI,KAAK,WAAW,GAAG;AACrB,WAAK,IAAI,mBAAmB;AAC5B,WAAK,IAAI,6BAA6B,OAAO,EAAE;AAC/C;AAAA,IACF;AAIA,UAAM,SAAS,cAAc;AAC7B,UAAM,WAAW,QAAQ,SAAS;AAGlC,UAAM,YAAY,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC;AAC/D,UAAM,YAAY,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC;AAC/D,UAAM,YAAY,KAAK,IAAI,GAAG,GAAG,KAAK,IAAI,CAAC,MAAM,EAAE,KAAK,MAAM,CAAC;AAE/D,UAAM,SACJ,aAAa,OAAO,OAAO,SAAS,CAAC,KAAK,OAAO,OAAO,SAAS,CAAC,KAAK,OAAO,OAAO,SAAS,CAAC;AACjG,SAAK,IAAI,MAAM;AAEf,eAAW,OAAO,MAAM;AACtB,YAAM,SAAS,IAAI,OAAO,WAAW,MAAM;AAC3C,WAAK;AAAA,QACH,KAAK,MAAM,UAAU,IAAI,KAAK,OAAO,SAAS,CAAC,KAAK,IAAI,KAAK,OAAO,SAAS,CAAC,KAAK,IAAI,KAAK,OAAO,SAAS,CAAC;AAAA,MAC/G;AAAA,IACF;AAEA,QAAI,CAAC,UAAU;AACb,WAAK,IAAI,EAAE;AACX,WAAK,IAAI,wEAAwE;AAAA,IACnF;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,8 +1,9 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import {
7
8
  clearActiveOrg,
8
9
  writeActiveOrg
@@ -10,7 +11,7 @@ import {
10
11
  import {
11
12
  apiGet,
12
13
  apiPatch
13
- } from "../../chunk-ZRLYHBPN.js";
14
+ } from "../../chunk-ZUJBM6HE.js";
14
15
  import "../../chunk-W2YERO7E.js";
15
16
  import "../../chunk-NSBPE2FW.js";
16
17
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/org/switch.ts"],
4
4
  "sourcesContent": ["import { Args, Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiGet, apiPatch } from '../../lib/api-client.js';\nimport { writeActiveOrg, clearActiveOrg } from '../../lib/active-org.js';\n\ninterface Org {\n id: string;\n name: string;\n slug: string;\n role: string;\n}\n\nexport default class OrgSwitch extends BaseCommand {\n static override description = 'Switch the active organization';\n\n static override examples = [\n '<%= config.bin %> org switch acme',\n '<%= config.bin %> org switch --clear',\n ];\n\n static override args = {\n slug: Args.string({\n description: 'Organization slug to switch to',\n required: false,\n }),\n };\n\n static override flags = {\n clear: Flags.boolean({\n description: 'Clear the active organization (personal mode)',\n default: false,\n }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(OrgSwitch);\n this.requireAuth();\n\n if (flags.clear) {\n // PATCH the server first; only update the local cache after the\n // server confirms. If the request fails we leave the cache alone so\n // we don't pretend something changed when it didn't.\n await apiPatch('/api/profile', { activeOrgId: null });\n clearActiveOrg();\n this.log('Active org cleared (personal mode).');\n return;\n }\n\n if (!args.slug) {\n this.error(\n 'Slug is required. Run `rulemetric org list` to see your orgs, or use --clear to unset.',\n );\n }\n\n const orgs = await apiGet<Org[]>('/api/orgs');\n const match = orgs.find((o) => o.slug === args.slug);\n if (!match) {\n this.error(\n `Not a member of \"${args.slug}\". Run \\`rulemetric org list\\` to see your orgs.`,\n );\n }\n\n await apiPatch('/api/profile', { activeOrgId: match.id });\n writeActiveOrg({\n orgId: match.id,\n orgSlug: match.slug,\n syncedAt: Date.now(),\n });\n this.log(`Active org: ${match.slug}`);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAY5B,IAAqB,YAArB,MAAqB,mBAAkB,YAAY;AAAA,EACjD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,MAAM,KAAK,OAAO;AAAA,MAChB,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,OAAO,MAAM,QAAQ;AAAA,MACnB,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,UAAS;AAClD,SAAK,YAAY;AAEjB,QAAI,MAAM,OAAO;AAIf,YAAM,SAAS,gBAAgB,EAAE,aAAa,KAAK,CAAC;AACpD,qBAAe;AACf,WAAK,IAAI,qCAAqC;AAC9C;AAAA,IACF;AAEA,QAAI,CAAC,KAAK,MAAM;AACd,WAAK;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAEA,UAAM,OAAO,MAAM,OAAc,WAAW;AAC5C,UAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI;AACnD,QAAI,CAAC,OAAO;AACV,WAAK;AAAA,QACH,oBAAoB,KAAK,IAAI;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,SAAS,gBAAgB,EAAE,aAAa,MAAM,GAAG,CAAC;AACxD,mBAAe;AAAA,MACb,OAAO,MAAM;AAAA,MACb,SAAS,MAAM;AAAA,MACf,UAAU,KAAK,IAAI;AAAA,IACrB,CAAC;AACD,SAAK,IAAI,eAAe,MAAM,IAAI,EAAE;AAAA,EACtC;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAY5B,IAAqB,YAArB,MAAqB,mBAAkB,YAAY;AAAA,EACjD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,MAAM,KAAK,OAAO;AAAA,MAChB,aAAa;AAAA,MACb,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,OAAO,MAAM,QAAQ;AAAA,MACnB,aAAa;AAAA,MACb,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,UAAS;AAClD,SAAK,YAAY;AAEjB,QAAI,MAAM,OAAO;AAIf,YAAM,SAAS,gBAAgB,EAAE,aAAa,KAAK,CAAC;AACpD,qBAAe;AACf,WAAK,IAAI,qCAAqC;AAC9C;AAAA,IACF;AAEA,QAAI,CAAC,KAAK,MAAM;AACd,WAAK;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAEA,UAAM,OAAO,MAAM,OAAc,WAAW;AAC5C,UAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,EAAE,SAAS,KAAK,IAAI;AACnD,QAAI,CAAC,OAAO;AACV,WAAK;AAAA,QACH,oBAAoB,KAAK,IAAI;AAAA,MAC/B;AAAA,IACF;AAEA,UAAM,SAAS,gBAAgB,EAAE,aAAa,MAAM,GAAG,CAAC;AACxD,mBAAe;AAAA,MACb,OAAO,MAAM;AAAA,MACb,SAAS,MAAM;AAAA,MACf,UAAU,KAAK,IAAI;AAAA,IACrB,CAAC;AACD,SAAK,IAAI,eAAe,MAAM,IAAI,EAAE;AAAA,EACtC;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import "../../chunk-EKJ2CABV.js";
7
8
  import {
8
9
  apiPost
9
- } from "../../chunk-ZRLYHBPN.js";
10
+ } from "../../chunk-ZUJBM6HE.js";
10
11
  import "../../chunk-W2YERO7E.js";
11
12
  import "../../chunk-NSBPE2FW.js";
12
13
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/packs/add-instruction.ts"],
4
4
  "sourcesContent": ["import { Args } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiPost } from '../../lib/api-client.js';\n\nexport default class PacksAddInstruction extends BaseCommand {\n static override description = 'Add an instruction to a pack';\n\n static override examples = [\n '<%= config.bin %> packs add-instruction <pack-id> <instruction-id>',\n ];\n\n static override args = {\n packId: Args.string({ description: 'Pack ID', required: true }),\n instructionId: Args.string({ description: 'Instruction ID', required: true }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(PacksAddInstruction);\n this.requireAuth();\n\n await apiPost(`/api/packs/${args.packId}/instructions`, {\n instructionId: args.instructionId,\n });\n\n this.log('Instruction added to pack.');\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,sBAArB,MAAqB,6BAA4B,YAAY;AAAA,EAC3D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,QAAQ,KAAK,OAAO,EAAE,aAAa,WAAW,UAAU,KAAK,CAAC;AAAA,IAC9D,eAAe,KAAK,OAAO,EAAE,aAAa,kBAAkB,UAAU,KAAK,CAAC;AAAA,EAC9E;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,oBAAmB;AACrD,SAAK,YAAY;AAEjB,UAAM,QAAQ,cAAc,KAAK,MAAM,iBAAiB;AAAA,MACtD,eAAe,KAAK;AAAA,IACtB,CAAC;AAED,SAAK,IAAI,4BAA4B;AAAA,EACvC;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,sBAArB,MAAqB,6BAA4B,YAAY;AAAA,EAC3D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,QAAQ,KAAK,OAAO,EAAE,aAAa,WAAW,UAAU,KAAK,CAAC;AAAA,IAC9D,eAAe,KAAK,OAAO,EAAE,aAAa,kBAAkB,UAAU,KAAK,CAAC;AAAA,EAC9E;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,oBAAmB;AACrD,SAAK,YAAY;AAEjB,UAAM,QAAQ,cAAc,KAAK,MAAM,iBAAiB;AAAA,MACtD,eAAe,KAAK;AAAA,IACtB,CAAC;AAED,SAAK,IAAI,4BAA4B;AAAA,EACvC;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import "../../chunk-EKJ2CABV.js";
7
8
  import {
8
9
  apiPost
9
- } from "../../chunk-ZRLYHBPN.js";
10
+ } from "../../chunk-ZUJBM6HE.js";
10
11
  import "../../chunk-W2YERO7E.js";
11
12
  import "../../chunk-NSBPE2FW.js";
12
13
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/packs/apply.ts"],
4
4
  "sourcesContent": ["import { Args, Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiPost } from '../../lib/api-client.js';\n\ninterface ApplyResult {\n success: boolean;\n linked: number;\n total: number;\n}\n\nexport default class PacksApply extends BaseCommand {\n static override description = 'Apply a pack to a project (bulk-link all instructions)';\n\n static override examples = [\n '<%= config.bin %> packs apply <pack-id> --project <project-id>',\n ];\n\n static override args = {\n id: Args.string({ description: 'Pack ID', required: true }),\n };\n\n static override flags = {\n project: Flags.string({ char: 'p', description: 'Project ID', required: true }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(PacksApply);\n this.requireAuth();\n\n const result = await apiPost<ApplyResult>(`/api/packs/${args.id}/apply`, {\n projectId: flags.project,\n });\n\n this.log(`Applied pack: ${result.linked} of ${result.total} instructions linked to project.`);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAU5B,IAAqB,aAArB,MAAqB,oBAAmB,YAAY;AAAA,EAClD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,WAAW,UAAU,KAAK,CAAC;AAAA,EAC5D;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,SAAS,MAAM,OAAO,EAAE,MAAM,KAAK,aAAa,cAAc,UAAU,KAAK,CAAC;AAAA,EAChF;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,WAAU;AACnD,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM,QAAqB,cAAc,KAAK,EAAE,UAAU;AAAA,MACvE,WAAW,MAAM;AAAA,IACnB,CAAC;AAED,SAAK,IAAI,iBAAiB,OAAO,MAAM,OAAO,OAAO,KAAK,kCAAkC;AAAA,EAC9F;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;AAAA,SAAS,MAAM,aAAa;AAU5B,IAAqB,aAArB,MAAqB,oBAAmB,YAAY;AAAA,EAClD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,WAAW,UAAU,KAAK,CAAC;AAAA,EAC5D;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,SAAS,MAAM,OAAO,EAAE,MAAM,KAAK,aAAa,cAAc,UAAU,KAAK,CAAC;AAAA,EAChF;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,MAAM,IAAI,MAAM,KAAK,MAAM,WAAU;AACnD,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM,QAAqB,cAAc,KAAK,EAAE,UAAU;AAAA,MACvE,WAAW,MAAM;AAAA,IACnB,CAAC;AAED,SAAK,IAAI,iBAAiB,OAAO,MAAM,OAAO,OAAO,KAAK,kCAAkC;AAAA,EAC9F;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import "../../chunk-EKJ2CABV.js";
7
8
  import {
8
9
  apiPost
9
- } from "../../chunk-ZRLYHBPN.js";
10
+ } from "../../chunk-ZUJBM6HE.js";
10
11
  import "../../chunk-W2YERO7E.js";
11
12
  import "../../chunk-NSBPE2FW.js";
12
13
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/packs/create.ts"],
4
4
  "sourcesContent": ["import { Flags } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiPost } from '../../lib/api-client.js';\n\ninterface CreatedPack {\n id: string;\n name: string;\n}\n\nexport default class PacksCreate extends BaseCommand {\n static override description = 'Create a new instruction pack';\n\n static override examples = [\n '<%= config.bin %> packs create --name \"Security Pack\" --description \"Security-focused instructions\"',\n ];\n\n static override flags = {\n name: Flags.string({ char: 'n', description: 'Pack name', required: true }),\n description: Flags.string({ char: 'd', description: 'Pack description', required: true }),\n scope: Flags.string({\n char: 's',\n description: 'Pack scope',\n options: ['org', 'team', 'personal'],\n default: 'personal',\n }),\n tags: Flags.string({ char: 't', description: 'Comma-separated tags' }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(PacksCreate);\n this.requireAuth();\n\n const body: Record<string, unknown> = {\n name: flags.name,\n description: flags.description,\n scope: flags.scope,\n };\n\n if (flags.tags) {\n body.tags = flags.tags.split(',').map((t) => t.trim());\n }\n\n const result = await apiPost<CreatedPack>('/api/packs', body);\n this.log(`Created pack: ${result.name} (${result.id})`);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;AAAA,SAAS,aAAa;AAStB,IAAqB,cAArB,MAAqB,qBAAoB,YAAY;AAAA,EACnD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,MAAM,MAAM,OAAO,EAAE,MAAM,KAAK,aAAa,aAAa,UAAU,KAAK,CAAC;AAAA,IAC1E,aAAa,MAAM,OAAO,EAAE,MAAM,KAAK,aAAa,oBAAoB,UAAU,KAAK,CAAC;AAAA,IACxF,OAAO,MAAM,OAAO;AAAA,MAClB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,CAAC,OAAO,QAAQ,UAAU;AAAA,MACnC,SAAS;AAAA,IACX,CAAC;AAAA,IACD,MAAM,MAAM,OAAO,EAAE,MAAM,KAAK,aAAa,uBAAuB,CAAC;AAAA,EACvE;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,YAAW;AAC9C,SAAK,YAAY;AAEjB,UAAM,OAAgC;AAAA,MACpC,MAAM,MAAM;AAAA,MACZ,aAAa,MAAM;AAAA,MACnB,OAAO,MAAM;AAAA,IACf;AAEA,QAAI,MAAM,MAAM;AACd,WAAK,OAAO,MAAM,KAAK,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAAA,IACvD;AAEA,UAAM,SAAS,MAAM,QAAqB,cAAc,IAAI;AAC5D,SAAK,IAAI,iBAAiB,OAAO,IAAI,KAAK,OAAO,EAAE,GAAG;AAAA,EACxD;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;AAAA,SAAS,aAAa;AAStB,IAAqB,cAArB,MAAqB,qBAAoB,YAAY;AAAA,EACnD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,QAAQ;AAAA,IACtB,MAAM,MAAM,OAAO,EAAE,MAAM,KAAK,aAAa,aAAa,UAAU,KAAK,CAAC;AAAA,IAC1E,aAAa,MAAM,OAAO,EAAE,MAAM,KAAK,aAAa,oBAAoB,UAAU,KAAK,CAAC;AAAA,IACxF,OAAO,MAAM,OAAO;AAAA,MAClB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,CAAC,OAAO,QAAQ,UAAU;AAAA,MACnC,SAAS;AAAA,IACX,CAAC;AAAA,IACD,MAAM,MAAM,OAAO,EAAE,MAAM,KAAK,aAAa,uBAAuB,CAAC;AAAA,EACvE;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,YAAW;AAC9C,SAAK,YAAY;AAEjB,UAAM,OAAgC;AAAA,MACpC,MAAM,MAAM;AAAA,MACZ,aAAa,MAAM;AAAA,MACnB,OAAO,MAAM;AAAA,IACf;AAEA,QAAI,MAAM,MAAM;AACd,WAAK,OAAO,MAAM,KAAK,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAAA,IACvD;AAEA,UAAM,SAAS,MAAM,QAAqB,cAAc,IAAI;AAC5D,SAAK,IAAI,iBAAiB,OAAO,IAAI,KAAK,OAAO,EAAE,GAAG;AAAA,EACxD;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import "../../chunk-EKJ2CABV.js";
7
8
  import {
8
9
  apiPost
9
- } from "../../chunk-ZRLYHBPN.js";
10
+ } from "../../chunk-ZUJBM6HE.js";
10
11
  import "../../chunk-W2YERO7E.js";
11
12
  import "../../chunk-NSBPE2FW.js";
12
13
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/packs/fork.ts"],
4
4
  "sourcesContent": ["import { Args } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiPost } from '../../lib/api-client.js';\n\nexport default class PacksFork extends BaseCommand {\n static override description = 'Fork a pack to your personal scope';\n\n static override examples = [\n '<%= config.bin %> packs fork <pack-id>',\n ];\n\n static override args = {\n id: Args.string({ description: 'ID of the pack to fork', required: true }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(PacksFork);\n this.requireAuth();\n\n const result = await apiPost<{ id: string; name: string }>(`/api/packs/${args.id}/fork`, {});\n this.log(`Forked pack: ${result.name} (${result.id})`);\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,YAArB,MAAqB,mBAAkB,YAAY;AAAA,EACjD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,0BAA0B,UAAU,KAAK,CAAC;AAAA,EAC3E;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,UAAS;AAC3C,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM,QAAsC,cAAc,KAAK,EAAE,SAAS,CAAC,CAAC;AAC3F,SAAK,IAAI,gBAAgB,OAAO,IAAI,KAAK,OAAO,EAAE,GAAG;AAAA,EACvD;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,YAArB,MAAqB,mBAAkB,YAAY;AAAA,EACjD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,0BAA0B,UAAU,KAAK,CAAC;AAAA,EAC3E;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,UAAS;AAC3C,SAAK,YAAY;AAEjB,UAAM,SAAS,MAAM,QAAsC,cAAc,KAAK,EAAE,SAAS,CAAC,CAAC;AAC3F,SAAK,IAAI,gBAAgB,OAAO,IAAI,KAAK,OAAO,EAAE,GAAG;AAAA,EACvD;AACF;",
6
6
  "names": []
7
7
  }
@@ -4,13 +4,14 @@ import {
4
4
  } from "../../chunk-BZDKEQKU.js";
5
5
  import {
6
6
  BaseCommand
7
- } from "../../chunk-SZ7VDCD6.js";
7
+ } from "../../chunk-2HK7RGZB.js";
8
8
  import "../../chunk-R56PH7YE.js";
9
- import "../../chunk-SLL3OBKN.js";
9
+ import "../../chunk-GQNJO2P2.js";
10
+ import "../../chunk-37LN5O7M.js";
10
11
  import "../../chunk-EKJ2CABV.js";
11
12
  import {
12
13
  apiGet
13
- } from "../../chunk-ZRLYHBPN.js";
14
+ } from "../../chunk-ZUJBM6HE.js";
14
15
  import "../../chunk-W2YERO7E.js";
15
16
  import "../../chunk-NSBPE2FW.js";
16
17
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/packs/get.ts"],
4
4
  "sourcesContent": ["import { Args } from '@oclif/core';\nimport { printTable } from '@oclif/table';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiGet } from '../../lib/api-client.js';\nimport { truncate, formatScope } from '../../lib/output.js';\n\ninterface PackDetail {\n id: string;\n name: string;\n description: string;\n scope: string;\n version: string;\n tags: string[];\n tier: string;\n instructionCount: number;\n instructions: Array<{\n id: string;\n name: string;\n scope: string;\n version: string;\n position: number;\n }>;\n}\n\nexport default class PacksGet extends BaseCommand {\n static override description = 'Get pack detail with instruction list';\n\n static override examples = [\n '<%= config.bin %> packs get <pack-id>',\n ];\n\n static override args = {\n id: Args.string({ description: 'Pack ID', required: true }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(PacksGet);\n this.requireAuth();\n\n const pack = await apiGet<PackDetail>(`/api/packs/${args.id}`);\n\n this.log(`\\nPack: ${pack.name}`);\n this.log(`Description: ${pack.description}`);\n this.log(`Scope: ${formatScope(pack.scope)} | Version: ${pack.version} | Tier: ${pack.tier}`);\n this.log(`Tags: ${(pack.tags ?? []).join(', ') || '(none)'}`);\n this.log(`Instructions: ${pack.instructionCount}\\n`);\n\n if (pack.instructions.length > 0) {\n printTable({\n data: pack.instructions.map((i) => ({\n '#': String(i.position),\n Name: truncate(i.name, 40),\n Scope: formatScope(i.scope),\n Version: i.version,\n })),\n columns: ['#', 'Name', 'Scope', 'Version'],\n });\n }\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAuB3B,IAAqB,WAArB,MAAqB,kBAAiB,YAAY;AAAA,EAChD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,WAAW,UAAU,KAAK,CAAC;AAAA,EAC5D;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,SAAQ;AAC1C,SAAK,YAAY;AAEjB,UAAM,OAAO,MAAM,OAAmB,cAAc,KAAK,EAAE,EAAE;AAE7D,SAAK,IAAI;AAAA,QAAW,KAAK,IAAI,EAAE;AAC/B,SAAK,IAAI,gBAAgB,KAAK,WAAW,EAAE;AAC3C,SAAK,IAAI,UAAU,YAAY,KAAK,KAAK,CAAC,eAAe,KAAK,OAAO,YAAY,KAAK,IAAI,EAAE;AAC5F,SAAK,IAAI,UAAU,KAAK,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,QAAQ,EAAE;AAC5D,SAAK,IAAI,iBAAiB,KAAK,gBAAgB;AAAA,CAAI;AAEnD,QAAI,KAAK,aAAa,SAAS,GAAG;AAChC,iBAAW;AAAA,QACT,MAAM,KAAK,aAAa,IAAI,CAAC,OAAO;AAAA,UAClC,KAAK,OAAO,EAAE,QAAQ;AAAA,UACtB,MAAM,SAAS,EAAE,MAAM,EAAE;AAAA,UACzB,OAAO,YAAY,EAAE,KAAK;AAAA,UAC1B,SAAS,EAAE;AAAA,QACb,EAAE;AAAA,QACF,SAAS,CAAC,KAAK,QAAQ,SAAS,SAAS;AAAA,MAC3C,CAAC;AAAA,IACH;AAAA,EACF;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAuB3B,IAAqB,WAArB,MAAqB,kBAAiB,YAAY;AAAA,EAChD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,IAAI,KAAK,OAAO,EAAE,aAAa,WAAW,UAAU,KAAK,CAAC;AAAA,EAC5D;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,SAAQ;AAC1C,SAAK,YAAY;AAEjB,UAAM,OAAO,MAAM,OAAmB,cAAc,KAAK,EAAE,EAAE;AAE7D,SAAK,IAAI;AAAA,QAAW,KAAK,IAAI,EAAE;AAC/B,SAAK,IAAI,gBAAgB,KAAK,WAAW,EAAE;AAC3C,SAAK,IAAI,UAAU,YAAY,KAAK,KAAK,CAAC,eAAe,KAAK,OAAO,YAAY,KAAK,IAAI,EAAE;AAC5F,SAAK,IAAI,UAAU,KAAK,QAAQ,CAAC,GAAG,KAAK,IAAI,KAAK,QAAQ,EAAE;AAC5D,SAAK,IAAI,iBAAiB,KAAK,gBAAgB;AAAA,CAAI;AAEnD,QAAI,KAAK,aAAa,SAAS,GAAG;AAChC,iBAAW;AAAA,QACT,MAAM,KAAK,aAAa,IAAI,CAAC,OAAO;AAAA,UAClC,KAAK,OAAO,EAAE,QAAQ;AAAA,UACtB,MAAM,SAAS,EAAE,MAAM,EAAE;AAAA,UACzB,OAAO,YAAY,EAAE,KAAK;AAAA,UAC1B,SAAS,EAAE;AAAA,QACb,EAAE;AAAA,QACF,SAAS,CAAC,KAAK,QAAQ,SAAS,SAAS;AAAA,MAC3C,CAAC;AAAA,IACH;AAAA,EACF;AACF;",
6
6
  "names": []
7
7
  }
@@ -5,13 +5,14 @@ import {
5
5
  } from "../../chunk-BZDKEQKU.js";
6
6
  import {
7
7
  BaseCommand
8
- } from "../../chunk-SZ7VDCD6.js";
8
+ } from "../../chunk-2HK7RGZB.js";
9
9
  import "../../chunk-R56PH7YE.js";
10
- import "../../chunk-SLL3OBKN.js";
10
+ import "../../chunk-GQNJO2P2.js";
11
+ import "../../chunk-37LN5O7M.js";
11
12
  import "../../chunk-EKJ2CABV.js";
12
13
  import {
13
14
  apiGet
14
- } from "../../chunk-ZRLYHBPN.js";
15
+ } from "../../chunk-ZUJBM6HE.js";
15
16
  import "../../chunk-W2YERO7E.js";
16
17
  import "../../chunk-NSBPE2FW.js";
17
18
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/packs/list.ts"],
4
4
  "sourcesContent": ["import { Flags } from '@oclif/core';\nimport { printTable } from '@oclif/table';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiGet } from '../../lib/api-client.js';\nimport { formatDate, truncate, formatScope } from '../../lib/output.js';\n\ninterface PackSummary {\n id: string;\n name: string;\n scope: string;\n version: string;\n tags: string[];\n instructionCount: number;\n tier: string;\n updatedAt: string;\n}\n\nexport default class PacksList extends BaseCommand {\n static override description = 'List your instruction packs';\n\n static override examples = [\n '<%= config.bin %> packs list',\n '<%= config.bin %> packs list --json',\n ];\n\n static override enableJsonFlag = true;\n\n static override flags = {\n format: Flags.string({\n char: 'f',\n description: 'Output format',\n options: ['table', 'json'],\n default: 'table',\n }),\n };\n\n async run(): Promise<PackSummary[]> {\n const { flags } = await this.parse(PacksList);\n this.requireAuth();\n\n const results = await apiGet<PackSummary[]>('/api/packs');\n\n if (results.length === 0) {\n this.log('No packs found. Create one with `rulemetric packs create`.');\n return results;\n }\n\n if (flags.format === 'json') {\n this.log(JSON.stringify(results, null, 2));\n } else {\n printTable({\n data: results.map((p) => ({\n Name: truncate(p.name, 40),\n Scope: formatScope(p.scope),\n Tier: p.tier,\n Count: String(p.instructionCount),\n Tags: (p.tags ?? []).join(', '),\n Updated: formatDate(p.updatedAt),\n })),\n columns: ['Name', 'Scope', 'Tier', 'Count', 'Tags', 'Updated'],\n });\n }\n\n return results;\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAgB3B,IAAqB,YAArB,MAAqB,mBAAkB,YAAY;AAAA,EACjD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,iBAAiB;AAAA,EAEjC,OAAgB,QAAQ;AAAA,IACtB,QAAQ,MAAM,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,CAAC,SAAS,MAAM;AAAA,MACzB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAA8B;AAClC,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,UAAS;AAC5C,SAAK,YAAY;AAEjB,UAAM,UAAU,MAAM,OAAsB,YAAY;AAExD,QAAI,QAAQ,WAAW,GAAG;AACxB,WAAK,IAAI,4DAA4D;AACrE,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,WAAW,QAAQ;AAC3B,WAAK,IAAI,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAAA,IAC3C,OAAO;AACL,iBAAW;AAAA,QACT,MAAM,QAAQ,IAAI,CAAC,OAAO;AAAA,UACxB,MAAM,SAAS,EAAE,MAAM,EAAE;AAAA,UACzB,OAAO,YAAY,EAAE,KAAK;AAAA,UAC1B,MAAM,EAAE;AAAA,UACR,OAAO,OAAO,EAAE,gBAAgB;AAAA,UAChC,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,IAAI;AAAA,UAC9B,SAAS,WAAW,EAAE,SAAS;AAAA,QACjC,EAAE;AAAA,QACF,SAAS,CAAC,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS;AAAA,MAC/D,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA,SAAS,aAAa;AACtB,SAAS,kBAAkB;AAgB3B,IAAqB,YAArB,MAAqB,mBAAkB,YAAY;AAAA,EACjD,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAgB,iBAAiB;AAAA,EAEjC,OAAgB,QAAQ;AAAA,IACtB,QAAQ,MAAM,OAAO;AAAA,MACnB,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS,CAAC,SAAS,MAAM;AAAA,MACzB,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AAAA,EAEA,MAAM,MAA8B;AAClC,UAAM,EAAE,MAAM,IAAI,MAAM,KAAK,MAAM,UAAS;AAC5C,SAAK,YAAY;AAEjB,UAAM,UAAU,MAAM,OAAsB,YAAY;AAExD,QAAI,QAAQ,WAAW,GAAG;AACxB,WAAK,IAAI,4DAA4D;AACrE,aAAO;AAAA,IACT;AAEA,QAAI,MAAM,WAAW,QAAQ;AAC3B,WAAK,IAAI,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AAAA,IAC3C,OAAO;AACL,iBAAW;AAAA,QACT,MAAM,QAAQ,IAAI,CAAC,OAAO;AAAA,UACxB,MAAM,SAAS,EAAE,MAAM,EAAE;AAAA,UACzB,OAAO,YAAY,EAAE,KAAK;AAAA,UAC1B,MAAM,EAAE;AAAA,UACR,OAAO,OAAO,EAAE,gBAAgB;AAAA,UAChC,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,IAAI;AAAA,UAC9B,SAAS,WAAW,EAAE,SAAS;AAAA,QACjC,EAAE;AAAA,QACF,SAAS,CAAC,QAAQ,SAAS,QAAQ,SAAS,QAAQ,SAAS;AAAA,MAC/D,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,12 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-SZ7VDCD6.js";
3
+ } from "../../chunk-2HK7RGZB.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-SLL3OBKN.js";
5
+ import "../../chunk-GQNJO2P2.js";
6
+ import "../../chunk-37LN5O7M.js";
6
7
  import "../../chunk-EKJ2CABV.js";
7
8
  import {
8
9
  apiDelete
9
- } from "../../chunk-ZRLYHBPN.js";
10
+ } from "../../chunk-ZUJBM6HE.js";
10
11
  import "../../chunk-W2YERO7E.js";
11
12
  import "../../chunk-NSBPE2FW.js";
12
13
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/packs/remove-instruction.ts"],
4
4
  "sourcesContent": ["import { Args } from '@oclif/core';\nimport { BaseCommand } from '../../base-command.js';\nimport { apiDelete } from '../../lib/api-client.js';\n\nexport default class PacksRemoveInstruction extends BaseCommand {\n static override description = 'Remove an instruction from a pack';\n\n static override examples = [\n '<%= config.bin %> packs remove-instruction <pack-id> <instruction-id>',\n ];\n\n static override args = {\n packId: Args.string({ description: 'Pack ID', required: true }),\n instructionId: Args.string({ description: 'Instruction ID', required: true }),\n };\n\n async run(): Promise<void> {\n const { args } = await this.parse(PacksRemoveInstruction);\n this.requireAuth();\n\n await apiDelete(`/api/packs/${args.packId}/instructions/${args.instructionId}`);\n\n this.log('Instruction removed from pack.');\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,yBAArB,MAAqB,gCAA+B,YAAY;AAAA,EAC9D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,QAAQ,KAAK,OAAO,EAAE,aAAa,WAAW,UAAU,KAAK,CAAC;AAAA,IAC9D,eAAe,KAAK,OAAO,EAAE,aAAa,kBAAkB,UAAU,KAAK,CAAC;AAAA,EAC9E;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,uBAAsB;AACxD,SAAK,YAAY;AAEjB,UAAM,UAAU,cAAc,KAAK,MAAM,iBAAiB,KAAK,aAAa,EAAE;AAE9E,SAAK,IAAI,gCAAgC;AAAA,EAC3C;AACF;",
5
+ "mappings": ";;;;;;;;;;;;;;AAAA,SAAS,YAAY;AAIrB,IAAqB,yBAArB,MAAqB,gCAA+B,YAAY;AAAA,EAC9D,OAAgB,cAAc;AAAA,EAE9B,OAAgB,WAAW;AAAA,IACzB;AAAA,EACF;AAAA,EAEA,OAAgB,OAAO;AAAA,IACrB,QAAQ,KAAK,OAAO,EAAE,aAAa,WAAW,UAAU,KAAK,CAAC;AAAA,IAC9D,eAAe,KAAK,OAAO,EAAE,aAAa,kBAAkB,UAAU,KAAK,CAAC;AAAA,EAC9E;AAAA,EAEA,MAAM,MAAqB;AACzB,UAAM,EAAE,KAAK,IAAI,MAAM,KAAK,MAAM,uBAAsB;AACxD,SAAK,YAAY;AAEjB,UAAM,UAAU,cAAc,KAAK,MAAM,iBAAiB,KAAK,aAAa,EAAE;AAE9E,SAAK,IAAI,gCAAgC;AAAA,EAC3C;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,13 +1,16 @@
1
1
  import {
2
2
  GATEWAY_PORT
3
- } from "../../chunk-DAJNO4OI.js";
3
+ } from "../../chunk-4LYCDS2N.js";
4
+ import "../../chunk-7LVVKQMZ.js";
5
+ import "../../chunk-5EDMGK3W.js";
4
6
  import {
5
7
  BaseCommand
6
- } from "../../chunk-SZ7VDCD6.js";
8
+ } from "../../chunk-2HK7RGZB.js";
7
9
  import "../../chunk-R56PH7YE.js";
8
- import "../../chunk-SLL3OBKN.js";
10
+ import "../../chunk-GQNJO2P2.js";
11
+ import "../../chunk-37LN5O7M.js";
9
12
  import "../../chunk-EKJ2CABV.js";
10
- import "../../chunk-ZRLYHBPN.js";
13
+ import "../../chunk-ZUJBM6HE.js";
11
14
  import "../../chunk-W2YERO7E.js";
12
15
  import "../../chunk-NSBPE2FW.js";
13
16
 
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/commands/proxy/env.ts"],
4
4
  "sourcesContent": ["import { Flags } from '@oclif/core';\nimport { existsSync } from 'node:fs';\nimport { homedir } from 'node:os';\nimport { join } from 'node:path';\nimport { BaseCommand } from '../../base-command.js';\nimport { GATEWAY_PORT } from '../../lib/gateway-lifecycle.js';\n\nconst CERT_PATH = join(homedir(), '.mitmproxy', 'mitmproxy-ca-cert.pem');\n\nexport default class ProxyEnv extends BaseCommand {\n static override description =\n 'Print shell env vars to route any client through the RuleMetric proxy';\n\n static override examples = [\n '<%= config.bin %> proxy env',\n '<%= config.bin %> proxy env --shell fish',\n 'eval \"$(rulemetric proxy env)\"',\n 'rulemetric proxy env --python',\n ];\n\n static override flags = {\n shell: Flags.string({\n char: 's',\n default: 'posix',\n description: 'Shell format (posix, fish, powershell)',\n options: ['posix', 'fish', 'powershell'],\n }),\n python: Flags.boolean({\n default: false,\n description: 'Include Python-specific env vars (REQUESTS_CA_BUNDLE, SSL_CERT_FILE)',\n }),\n node: Flags.boolean({\n default: false,\n description: 'Include Node.js-specific env vars (NODE_EXTRA_CA_CERTS)',\n }),\n all: Flags.boolean({\n default: false,\n description: 'Include env vars for all runtimes',\n }),\n vscode: Flags.boolean({\n default: false,\n description: 'Output VS Code settings.json snippet for Copilot proxy',\n }),\n };\n\n async run(): Promise<void> {\n const { flags } = await this.parse(ProxyEnv);\n const shell = flags.shell;\n const includeAll = flags.all;\n const includePython = flags.python || includeAll;\n const includeNode = flags.node || includeAll;\n\n const certExists = existsSync(CERT_PATH);\n const proxyUrl = `http://localhost:${GATEWAY_PORT}`;\n\n if (!certExists) {\n this.warn(\n `CA certificate not found at ${CERT_PATH}\\n` +\n `Run 'rulemetric hooks install' or 'rulemetric proxy setup' to generate it.`,\n );\n this.exit(1);\n }\n\n // VS Code settings.json snippet mode\n if (flags.vscode) {\n const snippet = {\n 'http.proxy': proxyUrl,\n 'http.proxyStrictSSL': certExists,\n 'github.copilot.advanced': {\n 'debug.overrideProxyUrl': proxyUrl,\n },\n };\n this.log(JSON.stringify(snippet, null, 2));\n return;\n }\n\n const vars: Array<{ key: string; value: string; comment?: string }> = [\n { key: 'HTTPS_PROXY', value: proxyUrl, comment: 'Route HTTPS through RuleMetric gateway' },\n { key: 'HTTP_PROXY', value: proxyUrl, comment: 'Route HTTP through RuleMetric gateway' },\n ];\n\n // Always include generic SSL vars\n vars.push({\n key: 'SSL_CERT_FILE',\n value: CERT_PATH,\n comment: 'Trust mitmproxy CA (generic \u2014 works with most libraries)',\n });\n\n if (includeNode || (!includePython && !includeNode)) {\n vars.push({\n key: 'NODE_EXTRA_CA_CERTS',\n value: CERT_PATH,\n comment: 'Trust mitmproxy CA (Node.js)',\n });\n }\n\n if (includePython) {\n vars.push({\n key: 'REQUESTS_CA_BUNDLE',\n value: CERT_PATH,\n comment: 'Trust mitmproxy CA (Python requests / httpx)',\n });\n vars.push({\n key: 'CURL_CA_BUNDLE',\n value: CERT_PATH,\n comment: 'Trust mitmproxy CA (curl / libcurl)',\n });\n }\n\n // Output in the requested shell format\n const lines: string[] = [];\n\n for (const v of vars) {\n switch (shell) {\n case 'fish':\n if (v.comment) lines.push(`# ${v.comment}`);\n lines.push(`set -gx ${v.key} \"${v.value}\"`);\n break;\n case 'powershell':\n if (v.comment) lines.push(`# ${v.comment}`);\n lines.push(`$env:${v.key} = \"${v.value}\"`);\n break;\n default:\n // posix (bash/zsh)\n if (v.comment) lines.push(`# ${v.comment}`);\n lines.push(`export ${v.key}=\"${v.value}\"`);\n }\n }\n\n this.log(lines.join('\\n'));\n }\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }