@rulemetric/cli 0.5.3 → 0.6.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 (160) hide show
  1. package/bin/dev.js +7 -0
  2. package/dist/base-command.js +4 -4
  3. package/dist/{chunk-7DRLX3DN.js → chunk-3POYC5NA.js} +3 -3
  4. package/dist/{chunk-TJ2M5QVL.js → chunk-3QH73QOQ.js} +2 -2
  5. package/dist/{chunk-CXWY5XKD.js → chunk-4LHEN2FS.js} +8 -8
  6. package/dist/{chunk-CROYS75W.js → chunk-7K4ILWS7.js} +3 -3
  7. package/dist/{chunk-TDTHAOXO.js → chunk-DR5WLIOU.js} +2 -2
  8. package/dist/{chunk-ANOWI23I.js → chunk-HWGRTIXN.js} +98 -105
  9. package/dist/chunk-HWGRTIXN.js.map +7 -0
  10. package/dist/{chunk-T76YQCKX.js → chunk-IATQXFJA.js} +2 -2
  11. package/dist/{chunk-346TGPVR.js → chunk-JCYCAQ6U.js} +126 -33
  12. package/dist/chunk-JCYCAQ6U.js.map +7 -0
  13. package/dist/{chunk-AUUHXCJU.js → chunk-JEJ3J5J6.js} +2 -2
  14. package/dist/{chunk-OAQG5WBV.js → chunk-LAKZUE35.js} +2 -2
  15. package/dist/{chunk-JNFIYBFL.js → chunk-N2X35ITW.js} +7 -1
  16. package/dist/{chunk-JNFIYBFL.js.map → chunk-N2X35ITW.js.map} +2 -2
  17. package/dist/{chunk-CCSR73HF.js → chunk-N5A2IQAK.js} +2 -2
  18. package/dist/{chunk-VCG4Q53B.js → chunk-OTOWLUOJ.js} +2 -2
  19. package/dist/{chunk-FTJRMUID.js → chunk-OVGP4OGK.js} +25 -1
  20. package/dist/chunk-OVGP4OGK.js.map +7 -0
  21. package/dist/{chunk-OKCFYPIQ.js → chunk-RCMXTLQF.js} +2 -2
  22. package/dist/{chunk-CGUV6TUA.js → chunk-RUCSRN7F.js} +2 -2
  23. package/dist/{chunk-4UJATBTG.js → chunk-SLL3OBKN.js} +4 -4
  24. package/dist/{chunk-CB43W53J.js → chunk-SZ7VDCD6.js} +3 -3
  25. package/dist/{chunk-N52AHNBH.js → chunk-W4MZXKZ2.js} +6 -2
  26. package/dist/chunk-W4MZXKZ2.js.map +7 -0
  27. package/dist/{chunk-KHJUQFIK.js → chunk-YSEQWCN4.js} +2 -2
  28. package/dist/{chunk-CWFVBGX2.js → chunk-ZRLYHBPN.js} +4 -2
  29. package/dist/chunk-ZRLYHBPN.js.map +7 -0
  30. package/dist/{chunk-ER5DPPHB.js → chunk-ZSGKRCKD.js} +6 -3
  31. package/dist/chunk-ZSGKRCKD.js.map +7 -0
  32. package/dist/commands/antigravity/backfill.js +5 -5
  33. package/dist/commands/auth/create-key.js +4 -4
  34. package/dist/commands/auth/login.js +19 -5
  35. package/dist/commands/auth/login.js.map +2 -2
  36. package/dist/commands/auth/logout.js +4 -4
  37. package/dist/commands/auth/revoke-key.js +4 -4
  38. package/dist/commands/auth/status.js +4 -4
  39. package/dist/commands/catalog/index.js +4 -4
  40. package/dist/commands/catalog/recommend.js +4 -4
  41. package/dist/commands/convert.js +6 -5
  42. package/dist/commands/convert.js.map +2 -2
  43. package/dist/commands/converters.js +4 -4
  44. package/dist/commands/crons/list.js +4 -4
  45. package/dist/commands/crons/run.js +4 -4
  46. package/dist/commands/dashboard.js +4 -4
  47. package/dist/commands/eval-targets/create.js +4 -4
  48. package/dist/commands/eval-targets/list.js +4 -4
  49. package/dist/commands/evals/agent.js +12 -12
  50. package/dist/commands/evals/benchmark.js +5 -5
  51. package/dist/commands/evals/compare.js +4 -4
  52. package/dist/commands/evals/create.js +4 -4
  53. package/dist/commands/evals/optimize-description.js +4 -4
  54. package/dist/commands/evals/optimize.js +4 -4
  55. package/dist/commands/evals/run.js +4 -4
  56. package/dist/commands/gateway/ensure.js +5 -5
  57. package/dist/commands/hooks/install.js +88 -55
  58. package/dist/commands/hooks/install.js.map +2 -2
  59. package/dist/commands/hooks/run.js +9 -7
  60. package/dist/commands/hooks/run.js.map +2 -2
  61. package/dist/commands/hooks/uninstall.js +57 -11
  62. package/dist/commands/hooks/uninstall.js.map +2 -2
  63. package/dist/commands/import.js +4 -4
  64. package/dist/commands/instructions/create.js +4 -4
  65. package/dist/commands/instructions/delete.js +4 -4
  66. package/dist/commands/instructions/fork.js +4 -4
  67. package/dist/commands/instructions/get.js +4 -4
  68. package/dist/commands/instructions/list.js +4 -4
  69. package/dist/commands/instructions/promote.js +4 -4
  70. package/dist/commands/instructions/pull.js +4 -4
  71. package/dist/commands/instructions/upstream.js +4 -4
  72. package/dist/commands/instructions/versions.js +4 -4
  73. package/dist/commands/launcher.js +4 -4
  74. package/dist/commands/org/current.js +9 -9
  75. package/dist/commands/org/list.js +6 -6
  76. package/dist/commands/org/switch.js +7 -7
  77. package/dist/commands/packs/add-instruction.js +4 -4
  78. package/dist/commands/packs/apply.js +4 -4
  79. package/dist/commands/packs/create.js +4 -4
  80. package/dist/commands/packs/fork.js +4 -4
  81. package/dist/commands/packs/get.js +4 -4
  82. package/dist/commands/packs/list.js +4 -4
  83. package/dist/commands/packs/remove-instruction.js +4 -4
  84. package/dist/commands/proxy/env.js +5 -5
  85. package/dist/commands/proxy/logs.js +4 -4
  86. package/dist/commands/proxy/restart.js +4 -4
  87. package/dist/commands/proxy/setup.js +4 -4
  88. package/dist/commands/proxy/start.js +4 -4
  89. package/dist/commands/proxy/status.js +5 -5
  90. package/dist/commands/proxy/stop.js +4 -4
  91. package/dist/commands/research/backfill.js +5 -5
  92. package/dist/commands/research/tail-transcript.js +5 -5
  93. package/dist/commands/service/install.js +12 -6
  94. package/dist/commands/service/install.js.map +2 -2
  95. package/dist/commands/service/status.js +4 -4
  96. package/dist/commands/service/uninstall.js +4 -4
  97. package/dist/commands/sessions/analyze.js +4 -4
  98. package/dist/commands/sessions/end.js +4 -4
  99. package/dist/commands/sessions/import.js +4 -4
  100. package/dist/commands/sessions/list.js +4 -4
  101. package/dist/commands/sessions/start.js +6 -6
  102. package/dist/commands/setup.js +10 -10
  103. package/dist/commands/setup.js.map +2 -2
  104. package/dist/commands/skills/export-approved.js +4 -4
  105. package/dist/commands/skills/install.js +4 -4
  106. package/dist/commands/skills/list.js +4 -4
  107. package/dist/commands/skills/publish.js +4 -4
  108. package/dist/commands/skills/search.js +4 -4
  109. package/dist/commands/skills/update.js +4 -4
  110. package/dist/commands/suggestions/accept.js +4 -4
  111. package/dist/commands/suggestions/dismiss.js +4 -4
  112. package/dist/commands/suggestions/list.js +4 -4
  113. package/dist/commands/suggestions/refresh.js +4 -4
  114. package/dist/dashboard/Dashboard.js +6 -4
  115. package/dist/dashboard/Dashboard.js.map +1 -1
  116. package/dist/dashboard/data.js +3 -1
  117. package/dist/dashboard/launcher/LauncherOverlay.js +5 -3
  118. package/dist/dashboard/launcher/api.js +3 -1
  119. package/dist/dashboard/launcher/useLaunchJobs.js +4 -2
  120. package/dist/lib/active-org-refresh.js +3 -3
  121. package/dist/lib/agent-loop.js +9 -9
  122. package/dist/lib/antigravity-transcript.js +2 -2
  123. package/dist/lib/api-client.js +3 -1
  124. package/dist/lib/eval-benchmark.js +2 -2
  125. package/dist/lib/eval-conversation-handler.js +2 -2
  126. package/dist/lib/gateway-lifecycle.js +7 -3
  127. package/dist/lib/handlers/cron-suggest-instructions.js +2 -2
  128. package/dist/lib/handlers/process-conversation.js +3 -3
  129. package/dist/lib/handlers/process-eval.js +2 -2
  130. package/dist/lib/handlers/process-insights.js +2 -2
  131. package/dist/lib/handlers/process-launch.js +2 -2
  132. package/dist/lib/hooks-config.js +7 -1
  133. package/dist/lib/manual-tasks.js +2 -2
  134. package/dist/lib/research-client.js +2 -2
  135. package/dist/lib/setup-steps.js +8 -4
  136. package/dist/lib/statusline-shim.js +3 -1
  137. package/dist/lib/terminal-target-heartbeat.js +2 -2
  138. package/oclif.manifest.json +2 -2
  139. package/package.json +6 -6
  140. package/dist/chunk-346TGPVR.js.map +0 -7
  141. package/dist/chunk-ANOWI23I.js.map +0 -7
  142. package/dist/chunk-CWFVBGX2.js.map +0 -7
  143. package/dist/chunk-ER5DPPHB.js.map +0 -7
  144. package/dist/chunk-FTJRMUID.js.map +0 -7
  145. package/dist/chunk-N52AHNBH.js.map +0 -7
  146. /package/dist/{chunk-7DRLX3DN.js.map → chunk-3POYC5NA.js.map} +0 -0
  147. /package/dist/{chunk-TJ2M5QVL.js.map → chunk-3QH73QOQ.js.map} +0 -0
  148. /package/dist/{chunk-CXWY5XKD.js.map → chunk-4LHEN2FS.js.map} +0 -0
  149. /package/dist/{chunk-CROYS75W.js.map → chunk-7K4ILWS7.js.map} +0 -0
  150. /package/dist/{chunk-TDTHAOXO.js.map → chunk-DR5WLIOU.js.map} +0 -0
  151. /package/dist/{chunk-T76YQCKX.js.map → chunk-IATQXFJA.js.map} +0 -0
  152. /package/dist/{chunk-AUUHXCJU.js.map → chunk-JEJ3J5J6.js.map} +0 -0
  153. /package/dist/{chunk-OAQG5WBV.js.map → chunk-LAKZUE35.js.map} +0 -0
  154. /package/dist/{chunk-CCSR73HF.js.map → chunk-N5A2IQAK.js.map} +0 -0
  155. /package/dist/{chunk-VCG4Q53B.js.map → chunk-OTOWLUOJ.js.map} +0 -0
  156. /package/dist/{chunk-OKCFYPIQ.js.map → chunk-RCMXTLQF.js.map} +0 -0
  157. /package/dist/{chunk-CGUV6TUA.js.map → chunk-RUCSRN7F.js.map} +0 -0
  158. /package/dist/{chunk-4UJATBTG.js.map → chunk-SLL3OBKN.js.map} +0 -0
  159. /package/dist/{chunk-CB43W53J.js.map → chunk-SZ7VDCD6.js.map} +0 -0
  160. /package/dist/{chunk-KHJUQFIK.js.map → chunk-YSEQWCN4.js.map} +0 -0
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-CB43W53J.js";
3
+ } from "../../chunk-SZ7VDCD6.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-4UJATBTG.js";
5
+ import "../../chunk-SLL3OBKN.js";
6
+ import "../../chunk-EKJ2CABV.js";
6
7
  import {
7
8
  apiPost
8
- } from "../../chunk-CWFVBGX2.js";
9
+ } from "../../chunk-ZRLYHBPN.js";
9
10
  import "../../chunk-W2YERO7E.js";
10
- import "../../chunk-EKJ2CABV.js";
11
11
  import "../../chunk-NSBPE2FW.js";
12
12
 
13
13
  // src/commands/sessions/import.ts
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-CB43W53J.js";
3
+ } from "../../chunk-SZ7VDCD6.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-4UJATBTG.js";
5
+ import "../../chunk-SLL3OBKN.js";
6
+ import "../../chunk-EKJ2CABV.js";
6
7
  import {
7
8
  apiGet
8
- } from "../../chunk-CWFVBGX2.js";
9
+ } from "../../chunk-ZRLYHBPN.js";
9
10
  import "../../chunk-W2YERO7E.js";
10
- import "../../chunk-EKJ2CABV.js";
11
11
  import "../../chunk-NSBPE2FW.js";
12
12
 
13
13
  // src/commands/sessions/list.ts
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-CB43W53J.js";
3
+ } from "../../chunk-SZ7VDCD6.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-4UJATBTG.js";
6
- import {
7
- apiPost
8
- } from "../../chunk-CWFVBGX2.js";
9
- import "../../chunk-W2YERO7E.js";
5
+ import "../../chunk-SLL3OBKN.js";
10
6
  import {
11
7
  readActiveOrg
12
8
  } from "../../chunk-EKJ2CABV.js";
9
+ import {
10
+ apiPost
11
+ } from "../../chunk-ZRLYHBPN.js";
12
+ import "../../chunk-W2YERO7E.js";
13
13
  import "../../chunk-NSBPE2FW.js";
14
14
 
15
15
  // src/commands/sessions/start.ts
@@ -1,22 +1,22 @@
1
1
  import {
2
- CORE_STEP_IDS,
2
+ ALL_STEP_IDS,
3
3
  STEPS,
4
4
  computeStatus,
5
5
  defaultContext,
6
6
  getStep,
7
7
  isStepId,
8
8
  renderDiff
9
- } from "../chunk-346TGPVR.js";
10
- import "../chunk-ANOWI23I.js";
11
- import "../chunk-FTJRMUID.js";
9
+ } from "../chunk-JCYCAQ6U.js";
10
+ import "../chunk-HWGRTIXN.js";
11
+ import "../chunk-OVGP4OGK.js";
12
12
  import {
13
13
  BaseCommand
14
- } from "../chunk-CB43W53J.js";
14
+ } from "../chunk-SZ7VDCD6.js";
15
15
  import "../chunk-R56PH7YE.js";
16
- import "../chunk-4UJATBTG.js";
17
- import "../chunk-CWFVBGX2.js";
18
- import "../chunk-W2YERO7E.js";
16
+ import "../chunk-SLL3OBKN.js";
19
17
  import "../chunk-EKJ2CABV.js";
18
+ import "../chunk-ZRLYHBPN.js";
19
+ import "../chunk-W2YERO7E.js";
20
20
  import "../chunk-NSBPE2FW.js";
21
21
 
22
22
  // src/commands/setup.ts
@@ -33,7 +33,7 @@ var Setup = class _Setup extends BaseCommand {
33
33
  ];
34
34
  static args = {
35
35
  target: Args.string({
36
- description: `"plan" or a step id (${CORE_STEP_IDS.join(", ")})`,
36
+ description: `"plan" or a step id (${ALL_STEP_IDS.join(", ")})`,
37
37
  required: false
38
38
  })
39
39
  };
@@ -59,7 +59,7 @@ var Setup = class _Setup extends BaseCommand {
59
59
  return;
60
60
  }
61
61
  if (args.target) {
62
- this.error(`Unknown target "${args.target}". Use "plan" or one of: ${CORE_STEP_IDS.join(", ")}.`);
62
+ this.error(`Unknown target "${args.target}". Use "plan" or one of: ${ALL_STEP_IDS.join(", ")}.`);
63
63
  }
64
64
  if (flags.json) {
65
65
  const status = await computeStatus(ctx);
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/commands/setup.ts"],
4
- "sourcesContent": ["import { Args, Flags } from '@oclif/core';\nimport * as readline from 'node:readline/promises';\nimport { BaseCommand } from '../base-command.js';\nimport {\n STEPS,\n CORE_STEP_IDS,\n getStep,\n isStepId,\n computeStatus,\n renderDiff,\n defaultContext,\n type SetupContext,\n type StepPlan,\n} from '../lib/setup-steps.js';\n\nexport default class Setup extends BaseCommand {\n static override description =\n 'Agentic, transparent setup: plan / show diffs / apply the four core onboarding steps';\n\n static override examples = [\n '<%= config.bin %> setup # interactive walk (TTY)',\n '<%= config.bin %> setup plan # read-only: every remaining artifact + diff',\n '<%= config.bin %> setup hooks --show # print one step\\'s diff',\n '<%= config.bin %> setup hooks --apply # apply one step',\n '<%= config.bin %> setup --json # machine-readable status (exit 0 iff complete)',\n ];\n\n static override args = {\n target: Args.string({\n description: `\"plan\" or a step id (${CORE_STEP_IDS.join(', ')})`,\n required: false,\n }),\n };\n\n static override flags = {\n json: Flags.boolean({ description: 'Machine-readable output', default: false }),\n show: Flags.boolean({ description: 'Print the step diff (read-only)', default: false }),\n apply: Flags.boolean({ description: 'Apply the step', default: false }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(Setup);\n const ctx = defaultContext();\n\n if (args.target === 'plan') {\n await this.runPlan(ctx, flags.json);\n return;\n }\n\n if (args.target && isStepId(args.target)) {\n if (flags.apply) {\n await getStep(args.target).apply(ctx);\n return;\n }\n // Default for a named step is --show (read-only diff).\n const plan = await getStep(args.target).plan(ctx);\n this.printPlan(plan);\n return;\n }\n\n if (args.target) {\n this.error(`Unknown target \"${args.target}\". Use \"plan\" or one of: ${CORE_STEP_IDS.join(', ')}.`);\n }\n\n // No target.\n if (flags.json) {\n const status = await computeStatus(ctx);\n this.log(JSON.stringify(status, null, 2));\n if (!status.coreComplete) this.exit(1);\n return;\n }\n\n await this.runInteractive(ctx);\n }\n\n private async runPlan(ctx: SetupContext, asJson: boolean): Promise<void> {\n const status = await computeStatus(ctx);\n const remaining = STEPS.filter(\n (s) => !status.steps.find((st) => st.id === s.id)?.done,\n );\n const plans: StepPlan[] = [];\n for (const step of remaining) {\n // eslint-disable-next-line no-await-in-loop\n plans.push(await step.plan(ctx));\n }\n\n if (asJson) {\n this.log(JSON.stringify({ ...status, plans }, null, 2));\n return;\n }\n\n if (plans.length === 0) {\n this.log('[OK] All core steps complete \u2014 nothing to install.');\n return;\n }\n this.log('The following steps would be applied:\\n');\n for (const plan of plans) {\n this.printPlan(plan);\n this.log('');\n }\n }\n\n private printPlan(plan: StepPlan): void {\n this.log(`[..] ${plan.title} (${plan.id})`);\n if (plan.command) this.log(` command: ${plan.command}`);\n for (const artifact of plan.artifacts) {\n this.log(` ${artifact.kind}: ${artifact.path}${artifact.masked ? ' (secret masked)' : ''}`);\n const diff = renderDiff(artifact.before, artifact.after);\n for (const line of diff.split('\\n')) {\n this.log(` ${line}`);\n }\n }\n }\n\n private async runInteractive(ctx: SetupContext): Promise<void> {\n if (!process.stdin.isTTY) {\n this.log('Not a TTY \u2014 interactive walk needs a terminal.');\n this.log('Use one of:');\n this.log(' rulemetric setup plan \u2014 see every remaining artifact + diff');\n this.log(' rulemetric setup <step> --show \u2014 print one step diff');\n this.log(' rulemetric setup <step> --apply \u2014 apply one step');\n this.log(' rulemetric setup --json \u2014 machine-readable status');\n return;\n }\n\n const status = await computeStatus(ctx);\n const remaining = STEPS.filter(\n (s) => !status.steps.find((st) => st.id === s.id)?.done,\n );\n if (remaining.length === 0) {\n this.log('[OK] All core steps complete.');\n return;\n }\n\n const rl = readline.createInterface({ input: process.stdin, output: process.stdout });\n try {\n for (const step of remaining) {\n const plan = await step.plan(ctx);\n this.printPlan(plan);\n const answer = (await rl.question(`Apply \"${plan.title}\"? [y/N] `)).trim().toLowerCase();\n if (answer === 'y' || answer === 'yes') {\n await step.apply(ctx);\n this.log(`[OK] Applied ${plan.title}.`);\n } else {\n this.log(`[..] Skipped ${plan.title}.`);\n }\n this.log('');\n }\n } finally {\n rl.close();\n }\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Args, Flags } from '@oclif/core';\nimport * as readline from 'node:readline/promises';\nimport { BaseCommand } from '../base-command.js';\nimport {\n STEPS,\n ALL_STEP_IDS,\n getStep,\n isStepId,\n computeStatus,\n renderDiff,\n defaultContext,\n type SetupContext,\n type StepPlan,\n} from '../lib/setup-steps.js';\n\nexport default class Setup extends BaseCommand {\n static override description =\n 'Agentic, transparent setup: plan / show diffs / apply the four core onboarding steps';\n\n static override examples = [\n '<%= config.bin %> setup # interactive walk (TTY)',\n '<%= config.bin %> setup plan # read-only: every remaining artifact + diff',\n '<%= config.bin %> setup hooks --show # print one step\\'s diff',\n '<%= config.bin %> setup hooks --apply # apply one step',\n '<%= config.bin %> setup --json # machine-readable status (exit 0 iff complete)',\n ];\n\n static override args = {\n target: Args.string({\n description: `\"plan\" or a step id (${ALL_STEP_IDS.join(', ')})`,\n required: false,\n }),\n };\n\n static override flags = {\n json: Flags.boolean({ description: 'Machine-readable output', default: false }),\n show: Flags.boolean({ description: 'Print the step diff (read-only)', default: false }),\n apply: Flags.boolean({ description: 'Apply the step', default: false }),\n };\n\n async run(): Promise<void> {\n const { args, flags } = await this.parse(Setup);\n const ctx = defaultContext();\n\n if (args.target === 'plan') {\n await this.runPlan(ctx, flags.json);\n return;\n }\n\n if (args.target && isStepId(args.target)) {\n if (flags.apply) {\n await getStep(args.target).apply(ctx);\n return;\n }\n // Default for a named step is --show (read-only diff).\n const plan = await getStep(args.target).plan(ctx);\n this.printPlan(plan);\n return;\n }\n\n if (args.target) {\n this.error(`Unknown target \"${args.target}\". Use \"plan\" or one of: ${ALL_STEP_IDS.join(', ')}.`);\n }\n\n // No target.\n if (flags.json) {\n const status = await computeStatus(ctx);\n this.log(JSON.stringify(status, null, 2));\n if (!status.coreComplete) this.exit(1);\n return;\n }\n\n await this.runInteractive(ctx);\n }\n\n private async runPlan(ctx: SetupContext, asJson: boolean): Promise<void> {\n const status = await computeStatus(ctx);\n const remaining = STEPS.filter(\n (s) => !status.steps.find((st) => st.id === s.id)?.done,\n );\n const plans: StepPlan[] = [];\n for (const step of remaining) {\n // eslint-disable-next-line no-await-in-loop\n plans.push(await step.plan(ctx));\n }\n\n if (asJson) {\n this.log(JSON.stringify({ ...status, plans }, null, 2));\n return;\n }\n\n if (plans.length === 0) {\n this.log('[OK] All core steps complete \u2014 nothing to install.');\n return;\n }\n this.log('The following steps would be applied:\\n');\n for (const plan of plans) {\n this.printPlan(plan);\n this.log('');\n }\n }\n\n private printPlan(plan: StepPlan): void {\n this.log(`[..] ${plan.title} (${plan.id})`);\n if (plan.command) this.log(` command: ${plan.command}`);\n for (const artifact of plan.artifacts) {\n this.log(` ${artifact.kind}: ${artifact.path}${artifact.masked ? ' (secret masked)' : ''}`);\n const diff = renderDiff(artifact.before, artifact.after);\n for (const line of diff.split('\\n')) {\n this.log(` ${line}`);\n }\n }\n }\n\n private async runInteractive(ctx: SetupContext): Promise<void> {\n if (!process.stdin.isTTY) {\n this.log('Not a TTY \u2014 interactive walk needs a terminal.');\n this.log('Use one of:');\n this.log(' rulemetric setup plan \u2014 see every remaining artifact + diff');\n this.log(' rulemetric setup <step> --show \u2014 print one step diff');\n this.log(' rulemetric setup <step> --apply \u2014 apply one step');\n this.log(' rulemetric setup --json \u2014 machine-readable status');\n return;\n }\n\n const status = await computeStatus(ctx);\n const remaining = STEPS.filter(\n (s) => !status.steps.find((st) => st.id === s.id)?.done,\n );\n if (remaining.length === 0) {\n this.log('[OK] All core steps complete.');\n return;\n }\n\n const rl = readline.createInterface({ input: process.stdin, output: process.stdout });\n try {\n for (const step of remaining) {\n const plan = await step.plan(ctx);\n this.printPlan(plan);\n const answer = (await rl.question(`Apply \"${plan.title}\"? [y/N] `)).trim().toLowerCase();\n if (answer === 'y' || answer === 'yes') {\n await step.apply(ctx);\n this.log(`[OK] Applied ${plan.title}.`);\n } else {\n this.log(`[..] Skipped ${plan.title}.`);\n }\n this.log('');\n }\n } finally {\n rl.close();\n }\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-CB43W53J.js";
3
+ } from "../../chunk-SZ7VDCD6.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-4UJATBTG.js";
5
+ import "../../chunk-SLL3OBKN.js";
6
+ import "../../chunk-EKJ2CABV.js";
6
7
  import {
7
8
  apiGet
8
- } from "../../chunk-CWFVBGX2.js";
9
+ } from "../../chunk-ZRLYHBPN.js";
9
10
  import "../../chunk-W2YERO7E.js";
10
- import "../../chunk-EKJ2CABV.js";
11
11
  import "../../chunk-NSBPE2FW.js";
12
12
 
13
13
  // src/commands/skills/export-approved.ts
@@ -3,12 +3,12 @@ import {
3
3
  } from "../../chunk-4BHDHHKL.js";
4
4
  import {
5
5
  BaseCommand
6
- } from "../../chunk-CB43W53J.js";
6
+ } from "../../chunk-SZ7VDCD6.js";
7
7
  import "../../chunk-R56PH7YE.js";
8
- import "../../chunk-4UJATBTG.js";
9
- import "../../chunk-CWFVBGX2.js";
10
- import "../../chunk-W2YERO7E.js";
8
+ import "../../chunk-SLL3OBKN.js";
11
9
  import "../../chunk-EKJ2CABV.js";
10
+ import "../../chunk-ZRLYHBPN.js";
11
+ import "../../chunk-W2YERO7E.js";
12
12
  import "../../chunk-NSBPE2FW.js";
13
13
 
14
14
  // src/commands/skills/install.ts
@@ -3,12 +3,12 @@ import {
3
3
  } from "../../chunk-4BHDHHKL.js";
4
4
  import {
5
5
  BaseCommand
6
- } from "../../chunk-CB43W53J.js";
6
+ } from "../../chunk-SZ7VDCD6.js";
7
7
  import "../../chunk-R56PH7YE.js";
8
- import "../../chunk-4UJATBTG.js";
9
- import "../../chunk-CWFVBGX2.js";
10
- import "../../chunk-W2YERO7E.js";
8
+ import "../../chunk-SLL3OBKN.js";
11
9
  import "../../chunk-EKJ2CABV.js";
10
+ import "../../chunk-ZRLYHBPN.js";
11
+ import "../../chunk-W2YERO7E.js";
12
12
  import "../../chunk-NSBPE2FW.js";
13
13
 
14
14
  // src/commands/skills/list.ts
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-CB43W53J.js";
3
+ } from "../../chunk-SZ7VDCD6.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-4UJATBTG.js";
5
+ import "../../chunk-SLL3OBKN.js";
6
+ import "../../chunk-EKJ2CABV.js";
6
7
  import {
7
8
  apiPost
8
- } from "../../chunk-CWFVBGX2.js";
9
+ } from "../../chunk-ZRLYHBPN.js";
9
10
  import "../../chunk-W2YERO7E.js";
10
- import "../../chunk-EKJ2CABV.js";
11
11
  import "../../chunk-NSBPE2FW.js";
12
12
 
13
13
  // src/commands/skills/publish.ts
@@ -3,12 +3,12 @@ import {
3
3
  } from "../../chunk-4BHDHHKL.js";
4
4
  import {
5
5
  BaseCommand
6
- } from "../../chunk-CB43W53J.js";
6
+ } from "../../chunk-SZ7VDCD6.js";
7
7
  import "../../chunk-R56PH7YE.js";
8
- import "../../chunk-4UJATBTG.js";
9
- import "../../chunk-CWFVBGX2.js";
10
- import "../../chunk-W2YERO7E.js";
8
+ import "../../chunk-SLL3OBKN.js";
11
9
  import "../../chunk-EKJ2CABV.js";
10
+ import "../../chunk-ZRLYHBPN.js";
11
+ import "../../chunk-W2YERO7E.js";
12
12
  import "../../chunk-NSBPE2FW.js";
13
13
 
14
14
  // src/commands/skills/search.ts
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-CB43W53J.js";
3
+ } from "../../chunk-SZ7VDCD6.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-4UJATBTG.js";
6
- import "../../chunk-CWFVBGX2.js";
7
- import "../../chunk-W2YERO7E.js";
5
+ import "../../chunk-SLL3OBKN.js";
8
6
  import "../../chunk-EKJ2CABV.js";
7
+ import "../../chunk-ZRLYHBPN.js";
8
+ import "../../chunk-W2YERO7E.js";
9
9
  import "../../chunk-NSBPE2FW.js";
10
10
 
11
11
  // src/commands/skills/update.ts
@@ -6,15 +6,15 @@ import {
6
6
  } from "../../chunk-7NYKWN7U.js";
7
7
  import {
8
8
  BaseCommand
9
- } from "../../chunk-CB43W53J.js";
9
+ } from "../../chunk-SZ7VDCD6.js";
10
10
  import "../../chunk-R56PH7YE.js";
11
- import "../../chunk-4UJATBTG.js";
11
+ import "../../chunk-SLL3OBKN.js";
12
+ import "../../chunk-EKJ2CABV.js";
12
13
  import {
13
14
  apiGet,
14
15
  apiPost
15
- } from "../../chunk-CWFVBGX2.js";
16
+ } from "../../chunk-ZRLYHBPN.js";
16
17
  import "../../chunk-W2YERO7E.js";
17
- import "../../chunk-EKJ2CABV.js";
18
18
  import "../../chunk-NSBPE2FW.js";
19
19
 
20
20
  // src/commands/suggestions/accept.ts
@@ -6,14 +6,14 @@ import {
6
6
  } from "../../chunk-7NYKWN7U.js";
7
7
  import {
8
8
  BaseCommand
9
- } from "../../chunk-CB43W53J.js";
9
+ } from "../../chunk-SZ7VDCD6.js";
10
10
  import "../../chunk-R56PH7YE.js";
11
- import "../../chunk-4UJATBTG.js";
11
+ import "../../chunk-SLL3OBKN.js";
12
+ import "../../chunk-EKJ2CABV.js";
12
13
  import {
13
14
  apiPost
14
- } from "../../chunk-CWFVBGX2.js";
15
+ } from "../../chunk-ZRLYHBPN.js";
15
16
  import "../../chunk-W2YERO7E.js";
16
- import "../../chunk-EKJ2CABV.js";
17
17
  import "../../chunk-NSBPE2FW.js";
18
18
 
19
19
  // src/commands/suggestions/dismiss.ts
@@ -3,14 +3,14 @@ import {
3
3
  } from "../../chunk-EKP32DLN.js";
4
4
  import {
5
5
  BaseCommand
6
- } from "../../chunk-CB43W53J.js";
6
+ } from "../../chunk-SZ7VDCD6.js";
7
7
  import "../../chunk-R56PH7YE.js";
8
- import "../../chunk-4UJATBTG.js";
8
+ import "../../chunk-SLL3OBKN.js";
9
+ import "../../chunk-EKJ2CABV.js";
9
10
  import {
10
11
  apiGet
11
- } from "../../chunk-CWFVBGX2.js";
12
+ } from "../../chunk-ZRLYHBPN.js";
12
13
  import "../../chunk-W2YERO7E.js";
13
- import "../../chunk-EKJ2CABV.js";
14
14
  import "../../chunk-NSBPE2FW.js";
15
15
 
16
16
  // src/commands/suggestions/list.ts
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  BaseCommand
3
- } from "../../chunk-CB43W53J.js";
3
+ } from "../../chunk-SZ7VDCD6.js";
4
4
  import "../../chunk-R56PH7YE.js";
5
- import "../../chunk-4UJATBTG.js";
6
- import "../../chunk-CWFVBGX2.js";
7
- import "../../chunk-W2YERO7E.js";
5
+ import "../../chunk-SLL3OBKN.js";
8
6
  import "../../chunk-EKJ2CABV.js";
7
+ import "../../chunk-ZRLYHBPN.js";
8
+ import "../../chunk-W2YERO7E.js";
9
9
  import "../../chunk-NSBPE2FW.js";
10
10
 
11
11
  // src/commands/suggestions/refresh.ts
@@ -9,10 +9,10 @@ import {
9
9
  } from "../chunk-IJGF2ETG.js";
10
10
  import {
11
11
  LauncherOverlay
12
- } from "../chunk-CROYS75W.js";
12
+ } from "../chunk-7K4ILWS7.js";
13
13
  import "../chunk-DTFXCHHI.js";
14
- import "../chunk-KHJUQFIK.js";
15
- import "../chunk-N52AHNBH.js";
14
+ import "../chunk-YSEQWCN4.js";
15
+ import "../chunk-W4MZXKZ2.js";
16
16
  import {
17
17
  FrictionPanel
18
18
  } from "../chunk-XC6M4CSW.js";
@@ -24,7 +24,7 @@ import {
24
24
  loadApiInsights,
25
25
  loadLinkedInstructions,
26
26
  loadLocalStats
27
- } from "../chunk-ER5DPPHB.js";
27
+ } from "../chunk-ZSGKRCKD.js";
28
28
  import "../chunk-QD6X4L4L.js";
29
29
  import "../chunk-RH7NHVSK.js";
30
30
  import {
@@ -37,6 +37,8 @@ import "../chunk-F5N6CLJJ.js";
37
37
  import {
38
38
  readActiveOrg
39
39
  } from "../chunk-EKJ2CABV.js";
40
+ import "../chunk-ZRLYHBPN.js";
41
+ import "../chunk-W2YERO7E.js";
40
42
  import "../chunk-NSBPE2FW.js";
41
43
 
42
44
  // src/dashboard/Dashboard.tsx
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../src/dashboard/Dashboard.tsx"],
4
4
  "sourcesContent": ["import React, { useState, useEffect, useCallback, useRef } from 'react';\nimport { render, Box, Text, useInput, useApp } from 'ink';\nimport { ORANGE, DIM, PERIODS, PERIOD_LABELS } from './types.js';\nimport type { Period, LocalStats, ApiInsights } from './types.js';\nimport { loadLocalStats, loadApiInsights, loadLinkedInstructions } from './data.js';\nimport { Overview } from './panels/overview.js';\nimport { OutcomesPanel } from './panels/outcomes.js';\nimport { FrictionPanel } from './panels/friction.js';\nimport { InstructionsPanel } from './panels/instructions.js';\nimport { InsightsPanel } from './panels/insights.js';\nimport { LauncherOverlay } from './launcher/LauncherOverlay.js';\nimport { readActiveOrg } from '../lib/active-org.js';\n\nconst MIN_WIDE = 90;\n\ntype Layout = { dashWidth: number; wide: boolean; halfWidth: number; barWidth: number };\n\nfunction getLayout(): Layout {\n const termWidth = process.stdout.columns || 80;\n const dashWidth = Math.min(160, termWidth);\n const wide = dashWidth >= MIN_WIDE;\n const halfWidth = wide ? Math.floor(dashWidth / 2) : dashWidth;\n const barWidth = Math.max(6, Math.min(10, halfWidth - 34));\n return { dashWidth, wide, halfWidth, barWidth };\n}\n\nfunction PeriodTabs({ active, providerName }: { active: Period; providerName?: string }) {\n return (\n <Box justifyContent=\"space-between\" paddingX={1}>\n <Box gap={1}>\n {PERIODS.map(p => (\n <Text key={p} bold={active === p} color={active === p ? ORANGE : DIM}>\n {active === p ? `[ ${PERIOD_LABELS[p]} ]` : ` ${PERIOD_LABELS[p]} `}\n </Text>\n ))}\n </Box>\n {providerName && (\n <Text color={ORANGE} bold>{providerName}</Text>\n )}\n </Box>\n );\n}\n\nfunction StatusBar({ width, insightsFocused = false }: { width: number; insightsFocused?: boolean }) {\n return (\n <Box borderStyle=\"round\" borderColor={DIM} width={width} justifyContent=\"center\" paddingX={1}>\n <Text>\n <Text color={ORANGE} bold>{'<'}</Text><Text color={ORANGE}>{'>'}</Text><Text dimColor> switch </Text>\n <Text color={ORANGE} bold>q</Text><Text dimColor> quit </Text>\n <Text color={ORANGE} bold>s</Text><Text dimColor> {insightsFocused ? 'back' : 'suggestions'} </Text>\n <Text color={ORANGE} bold>1</Text><Text dimColor>-</Text><Text color={ORANGE} bold>5</Text><Text dimColor> period </Text>\n <Text color={ORANGE} bold>r</Text><Text dimColor> refresh </Text>\n <Text color={ORANGE} bold>n</Text><Text dimColor> new session </Text>\n <Text color={ORANGE} bold>l</Text><Text dimColor> launcher</Text>\n </Text>\n </Box>\n );\n}\n\nfunction Row({ wide, width, children }: { wide: boolean; width: number; children: React.ReactNode }) {\n if (wide) return <Box width={width}>{children}</Box>;\n return <>{children}</>;\n}\n\nfunction InteractiveDashboard({ initialLocal, initialApi, initialInstructions, initialPeriod, initialLauncherFocused = false }: {\n initialLocal: LocalStats;\n initialApi: ApiInsights | null;\n initialInstructions: Array<{ name: string; linkedSessions: number }> | null;\n initialPeriod: Period;\n initialLauncherFocused?: boolean;\n}) {\n const { exit } = useApp();\n const [period, setPeriod] = useState<Period>(initialPeriod);\n const [local, setLocal] = useState(initialLocal);\n const [api, setApi] = useState(initialApi);\n const [instructions, setInstructions] = useState(initialInstructions);\n const [loading, setLoading] = useState(false);\n const [insightsFocused, setInsightsFocused] = useState(false);\n const [launcherFocused, setLauncherFocused] = useState(initialLauncherFocused);\n const activeOrgSlug = readActiveOrg()?.orgSlug ?? null;\n const debounceRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const layout = getLayout();\n\n const reload = useCallback(async () => {\n setLoading(true);\n const [newLocal, newApi, newInstructions] = await Promise.all([\n loadLocalStats(),\n loadApiInsights(),\n loadLinkedInstructions(),\n ]);\n setLocal(newLocal);\n setApi(newApi);\n setInstructions(newInstructions);\n setLoading(false);\n }, []);\n\n // Auto-refresh every 30s\n useEffect(() => {\n const id = setInterval(reload, 30_000);\n return () => clearInterval(id);\n }, [reload]);\n\n const switchPeriod = useCallback((np: Period) => {\n if (np === period) return;\n setPeriod(np);\n if (debounceRef.current) clearTimeout(debounceRef.current);\n debounceRef.current = setTimeout(reload, 300);\n }, [period, reload]);\n\n useInput((input, key) => {\n if (launcherFocused) return;\n if (input === 'q') {\n if (insightsFocused) { setInsightsFocused(false); return; }\n exit();\n return;\n }\n if (input === 's') { setInsightsFocused(f => !f); return; }\n if (key.escape && insightsFocused) { setInsightsFocused(false); return; }\n if (input === 'l' && !insightsFocused) { setLauncherFocused(true); return; }\n // When insights is focused, let it handle up/down/enter\n if (insightsFocused) return;\n if (input === 'r') { reload(); return; }\n if (input === 'n') {\n import('@rulemetric/session').then(({ getLauncher }) => {\n getLauncher('claude_code').launch({ projectPath: process.cwd(), mode: 'interactive' });\n });\n return;\n }\n const idx = PERIODS.indexOf(period);\n if (key.leftArrow) switchPeriod(PERIODS[(idx - 1 + PERIODS.length) % PERIODS.length]);\n else if (key.rightArrow || key.tab) switchPeriod(PERIODS[(idx + 1) % PERIODS.length]);\n else if (input === '1') switchPeriod('today');\n else if (input === '2') switchPeriod('week');\n else if (input === '3') switchPeriod('30days');\n else if (input === '4') switchPeriod('month');\n else if (input === '5') switchPeriod('all');\n });\n\n const { dashWidth, wide, halfWidth, barWidth } = layout;\n const pw = wide ? halfWidth : dashWidth;\n\n if (loading) {\n return (\n <Box flexDirection=\"column\" width={dashWidth}>\n <PeriodTabs active={period} />\n <Box borderStyle=\"round\" borderColor={ORANGE} paddingX={1} width={dashWidth}>\n <Text dimColor>Loading {PERIOD_LABELS[period]}...</Text>\n </Box>\n <StatusBar width={dashWidth} />\n </Box>\n );\n }\n\n if (launcherFocused) {\n return (\n <Box flexDirection=\"column\" width={dashWidth}>\n <LauncherOverlay\n onClose={() => setLauncherFocused(false)}\n activeOrg={activeOrgSlug}\n defaultProjectPath={process.cwd()}\n width={dashWidth}\n />\n </Box>\n );\n }\n\n return (\n <Box flexDirection=\"column\" width={dashWidth}>\n <PeriodTabs active={period} />\n <Overview local={local} api={api} label={PERIOD_LABELS[period]} width={dashWidth} />\n <Row wide={wide} width={dashWidth}>\n <OutcomesPanel api={api} width={pw} barWidth={barWidth} />\n <FrictionPanel api={api} width={pw} barWidth={barWidth} />\n </Row>\n <InstructionsPanel instructions={instructions} width={dashWidth} barWidth={barWidth} />\n <InsightsPanel api={api} width={dashWidth} focused={insightsFocused} />\n <StatusBar width={dashWidth} insightsFocused={insightsFocused} />\n </Box>\n );\n}\n\nexport async function renderDashboard(\n period: Period = 'week',\n options: { openLauncher?: boolean } = {},\n): Promise<void> {\n // Load data in parallel \u2014 local files + API\n const [local, api, instructions] = await Promise.all([\n loadLocalStats(),\n loadApiInsights(),\n loadLinkedInstructions(),\n ]);\n\n const isTTY = process.stdin.isTTY && process.stdout.isTTY;\n if (isTTY) {\n const { waitUntilExit } = render(\n <InteractiveDashboard\n initialLocal={local}\n initialApi={api}\n initialInstructions={instructions}\n initialPeriod={period}\n initialLauncherFocused={options.openLauncher ?? false}\n />,\n );\n await waitUntilExit();\n } else {\n // Non-interactive: render once and exit\n const layout = getLayout();\n const { unmount } = render(\n <Box flexDirection=\"column\" width={layout.dashWidth}>\n <Overview local={local} api={api} label={PERIOD_LABELS[period]} width={layout.dashWidth} />\n <OutcomesPanel api={api} width={layout.dashWidth} barWidth={layout.barWidth} />\n <FrictionPanel api={api} width={layout.dashWidth} barWidth={layout.barWidth} />\n <InstructionsPanel instructions={instructions} width={layout.dashWidth} barWidth={layout.barWidth} />\n <InsightsPanel api={api} width={layout.dashWidth} />\n </Box>,\n { patchConsole: false },\n );\n unmount();\n }\n}\n"],
5
- "mappings": "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",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAgB,UAAU,WAAW,aAAa,cAAc;AAChE,SAAS,QAAQ,KAAK,MAAM,UAAU,cAAc;AA2BhD,SAiCK,UA9BC,KAHN;AAfJ,IAAM,WAAW;AAIjB,SAAS,YAAoB;AAC3B,QAAM,YAAY,QAAQ,OAAO,WAAW;AAC5C,QAAM,YAAY,KAAK,IAAI,KAAK,SAAS;AACzC,QAAM,OAAO,aAAa;AAC1B,QAAM,YAAY,OAAO,KAAK,MAAM,YAAY,CAAC,IAAI;AACrD,QAAM,WAAW,KAAK,IAAI,GAAG,KAAK,IAAI,IAAI,YAAY,EAAE,CAAC;AACzD,SAAO,EAAE,WAAW,MAAM,WAAW,SAAS;AAChD;AAEA,SAAS,WAAW,EAAE,QAAQ,aAAa,GAA8C;AACvF,SACE,qBAAC,OAAI,gBAAe,iBAAgB,UAAU,GAC5C;AAAA,wBAAC,OAAI,KAAK,GACP,kBAAQ,IAAI,OACX,oBAAC,QAAa,MAAM,WAAW,GAAG,OAAO,WAAW,IAAI,SAAS,KAC9D,qBAAW,IAAI,KAAK,cAAc,CAAC,CAAC,OAAO,KAAK,cAAc,CAAC,CAAC,QADxD,CAEX,CACD,GACH;AAAA,IACC,gBACC,oBAAC,QAAK,OAAO,QAAQ,MAAI,MAAE,wBAAa;AAAA,KAE5C;AAEJ;AAEA,SAAS,UAAU,EAAE,OAAO,kBAAkB,MAAM,GAAiD;AACnG,SACE,oBAAC,OAAI,aAAY,SAAQ,aAAa,KAAK,OAAc,gBAAe,UAAS,UAAU,GACzF,+BAAC,QACC;AAAA,wBAAC,QAAK,OAAO,QAAQ,MAAI,MAAE,eAAI;AAAA,IAAO,oBAAC,QAAK,OAAO,QAAS,eAAI;AAAA,IAAO,oBAAC,QAAK,UAAQ,MAAC,wBAAU;AAAA,IAChG,oBAAC,QAAK,OAAO,QAAQ,MAAI,MAAC,eAAC;AAAA,IAAO,oBAAC,QAAK,UAAQ,MAAC,sBAAQ;AAAA,IACzD,oBAAC,QAAK,OAAO,QAAQ,MAAI,MAAC,eAAC;AAAA,IAAO,qBAAC,QAAK,UAAQ,MAAC;AAAA;AAAA,MAAE,kBAAkB,SAAS;AAAA,MAAc;AAAA,OAAG;AAAA,IAC/F,oBAAC,QAAK,OAAO,QAAQ,MAAI,MAAC,eAAC;AAAA,IAAO,oBAAC,QAAK,UAAQ,MAAC,eAAC;AAAA,IAAO,oBAAC,QAAK,OAAO,QAAQ,MAAI,MAAC,eAAC;AAAA,IAAO,oBAAC,QAAK,UAAQ,MAAC,wBAAU;AAAA,IACpH,oBAAC,QAAK,OAAO,QAAQ,MAAI,MAAC,eAAC;AAAA,IAAO,oBAAC,QAAK,UAAQ,MAAC,yBAAW;AAAA,IAC5D,oBAAC,QAAK,OAAO,QAAQ,MAAI,MAAC,eAAC;AAAA,IAAO,oBAAC,QAAK,UAAQ,MAAC,6BAAe;AAAA,IAChE,oBAAC,QAAK,OAAO,QAAQ,MAAI,MAAC,eAAC;AAAA,IAAO,oBAAC,QAAK,UAAQ,MAAC,uBAAS;AAAA,KAC5D,GACF;AAEJ;AAEA,SAAS,IAAI,EAAE,MAAM,OAAO,SAAS,GAAgE;AACnG,MAAI,KAAM,QAAO,oBAAC,OAAI,OAAe,UAAS;AAC9C,SAAO,gCAAG,UAAS;AACrB;AAEA,SAAS,qBAAqB,EAAE,cAAc,YAAY,qBAAqB,eAAe,yBAAyB,MAAM,GAM1H;AACD,QAAM,EAAE,KAAK,IAAI,OAAO;AACxB,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAiB,aAAa;AAC1D,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,YAAY;AAC/C,QAAM,CAAC,KAAK,MAAM,IAAI,SAAS,UAAU;AACzC,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,mBAAmB;AACpE,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,KAAK;AAC5D,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,SAAS,sBAAsB;AAC7E,QAAM,gBAAgB,cAAc,GAAG,WAAW;AAClD,QAAM,cAAc,OAA6C,IAAI;AACrE,QAAM,SAAS,UAAU;AAEzB,QAAM,SAAS,YAAY,YAAY;AACrC,eAAW,IAAI;AACf,UAAM,CAAC,UAAU,QAAQ,eAAe,IAAI,MAAM,QAAQ,IAAI;AAAA,MAC5D,eAAe;AAAA,MACf,gBAAgB;AAAA,MAChB,uBAAuB;AAAA,IACzB,CAAC;AACD,aAAS,QAAQ;AACjB,WAAO,MAAM;AACb,oBAAgB,eAAe;AAC/B,eAAW,KAAK;AAAA,EAClB,GAAG,CAAC,CAAC;AAGL,YAAU,MAAM;AACd,UAAM,KAAK,YAAY,QAAQ,GAAM;AACrC,WAAO,MAAM,cAAc,EAAE;AAAA,EAC/B,GAAG,CAAC,MAAM,CAAC;AAEX,QAAM,eAAe,YAAY,CAAC,OAAe;AAC/C,QAAI,OAAO,OAAQ;AACnB,cAAU,EAAE;AACZ,QAAI,YAAY,QAAS,cAAa,YAAY,OAAO;AACzD,gBAAY,UAAU,WAAW,QAAQ,GAAG;AAAA,EAC9C,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,WAAS,CAAC,OAAO,QAAQ;AACvB,QAAI,gBAAiB;AACrB,QAAI,UAAU,KAAK;AACjB,UAAI,iBAAiB;AAAE,2BAAmB,KAAK;AAAG;AAAA,MAAQ;AAC1D,WAAK;AACL;AAAA,IACF;AACA,QAAI,UAAU,KAAK;AAAE,yBAAmB,OAAK,CAAC,CAAC;AAAG;AAAA,IAAQ;AAC1D,QAAI,IAAI,UAAU,iBAAiB;AAAE,yBAAmB,KAAK;AAAG;AAAA,IAAQ;AACxE,QAAI,UAAU,OAAO,CAAC,iBAAiB;AAAE,yBAAmB,IAAI;AAAG;AAAA,IAAQ;AAE3E,QAAI,gBAAiB;AACrB,QAAI,UAAU,KAAK;AAAE,aAAO;AAAG;AAAA,IAAQ;AACvC,QAAI,UAAU,KAAK;AACjB,aAAO,qBAAqB,EAAE,KAAK,CAAC,EAAE,YAAY,MAAM;AACtD,oBAAY,aAAa,EAAE,OAAO,EAAE,aAAa,QAAQ,IAAI,GAAG,MAAM,cAAc,CAAC;AAAA,MACvF,CAAC;AACD;AAAA,IACF;AACA,UAAM,MAAM,QAAQ,QAAQ,MAAM;AAClC,QAAI,IAAI,UAAW,cAAa,SAAS,MAAM,IAAI,QAAQ,UAAU,QAAQ,MAAM,CAAC;AAAA,aAC3E,IAAI,cAAc,IAAI,IAAK,cAAa,SAAS,MAAM,KAAK,QAAQ,MAAM,CAAC;AAAA,aAC3E,UAAU,IAAK,cAAa,OAAO;AAAA,aACnC,UAAU,IAAK,cAAa,MAAM;AAAA,aAClC,UAAU,IAAK,cAAa,QAAQ;AAAA,aACpC,UAAU,IAAK,cAAa,OAAO;AAAA,aACnC,UAAU,IAAK,cAAa,KAAK;AAAA,EAC5C,CAAC;AAED,QAAM,EAAE,WAAW,MAAM,WAAW,SAAS,IAAI;AACjD,QAAM,KAAK,OAAO,YAAY;AAE9B,MAAI,SAAS;AACX,WACE,qBAAC,OAAI,eAAc,UAAS,OAAO,WACjC;AAAA,0BAAC,cAAW,QAAQ,QAAQ;AAAA,MAC5B,oBAAC,OAAI,aAAY,SAAQ,aAAa,QAAQ,UAAU,GAAG,OAAO,WAChE,+BAAC,QAAK,UAAQ,MAAC;AAAA;AAAA,QAAS,cAAc,MAAM;AAAA,QAAE;AAAA,SAAG,GACnD;AAAA,MACA,oBAAC,aAAU,OAAO,WAAW;AAAA,OAC/B;AAAA,EAEJ;AAEA,MAAI,iBAAiB;AACnB,WACE,oBAAC,OAAI,eAAc,UAAS,OAAO,WACjC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,mBAAmB,KAAK;AAAA,QACvC,WAAW;AAAA,QACX,oBAAoB,QAAQ,IAAI;AAAA,QAChC,OAAO;AAAA;AAAA,IACT,GACF;AAAA,EAEJ;AAEA,SACE,qBAAC,OAAI,eAAc,UAAS,OAAO,WACjC;AAAA,wBAAC,cAAW,QAAQ,QAAQ;AAAA,IAC5B,oBAAC,YAAS,OAAc,KAAU,OAAO,cAAc,MAAM,GAAG,OAAO,WAAW;AAAA,IAClF,qBAAC,OAAI,MAAY,OAAO,WACtB;AAAA,0BAAC,iBAAc,KAAU,OAAO,IAAI,UAAoB;AAAA,MACxD,oBAAC,iBAAc,KAAU,OAAO,IAAI,UAAoB;AAAA,OAC1D;AAAA,IACA,oBAAC,qBAAkB,cAA4B,OAAO,WAAW,UAAoB;AAAA,IACrF,oBAAC,iBAAc,KAAU,OAAO,WAAW,SAAS,iBAAiB;AAAA,IACrE,oBAAC,aAAU,OAAO,WAAW,iBAAkC;AAAA,KACjE;AAEJ;AAEA,eAAsB,gBACpB,SAAiB,QACjB,UAAsC,CAAC,GACxB;AAEf,QAAM,CAAC,OAAO,KAAK,YAAY,IAAI,MAAM,QAAQ,IAAI;AAAA,IACnD,eAAe;AAAA,IACf,gBAAgB;AAAA,IAChB,uBAAuB;AAAA,EACzB,CAAC;AAED,QAAM,QAAQ,QAAQ,MAAM,SAAS,QAAQ,OAAO;AACpD,MAAI,OAAO;AACT,UAAM,EAAE,cAAc,IAAI;AAAA,MACxB;AAAA,QAAC;AAAA;AAAA,UACC,cAAc;AAAA,UACd,YAAY;AAAA,UACZ,qBAAqB;AAAA,UACrB,eAAe;AAAA,UACf,wBAAwB,QAAQ,gBAAgB;AAAA;AAAA,MAClD;AAAA,IACF;AACA,UAAM,cAAc;AAAA,EACtB,OAAO;AAEL,UAAM,SAAS,UAAU;AACzB,UAAM,EAAE,QAAQ,IAAI;AAAA,MAClB,qBAAC,OAAI,eAAc,UAAS,OAAO,OAAO,WACxC;AAAA,4BAAC,YAAS,OAAc,KAAU,OAAO,cAAc,MAAM,GAAG,OAAO,OAAO,WAAW;AAAA,QACzF,oBAAC,iBAAc,KAAU,OAAO,OAAO,WAAW,UAAU,OAAO,UAAU;AAAA,QAC7E,oBAAC,iBAAc,KAAU,OAAO,OAAO,WAAW,UAAU,OAAO,UAAU;AAAA,QAC7E,oBAAC,qBAAkB,cAA4B,OAAO,OAAO,WAAW,UAAU,OAAO,UAAU;AAAA,QACnG,oBAAC,iBAAc,KAAU,OAAO,OAAO,WAAW;AAAA,SACpD;AAAA,MACA,EAAE,cAAc,MAAM;AAAA,IACxB;AACA,YAAQ;AAAA,EACV;AACF;",
6
6
  "names": []
7
7
  }
@@ -2,8 +2,10 @@ import {
2
2
  loadApiInsights,
3
3
  loadLinkedInstructions,
4
4
  loadLocalStats
5
- } from "../chunk-ER5DPPHB.js";
5
+ } from "../chunk-ZSGKRCKD.js";
6
6
  import "../chunk-F5N6CLJJ.js";
7
+ import "../chunk-ZRLYHBPN.js";
8
+ import "../chunk-W2YERO7E.js";
7
9
  import "../chunk-NSBPE2FW.js";
8
10
  export {
9
11
  loadApiInsights,
@@ -1,12 +1,14 @@
1
1
  import {
2
2
  LauncherOverlay
3
- } from "../../chunk-CROYS75W.js";
3
+ } from "../../chunk-7K4ILWS7.js";
4
4
  import "../../chunk-DTFXCHHI.js";
5
- import "../../chunk-KHJUQFIK.js";
6
- import "../../chunk-N52AHNBH.js";
5
+ import "../../chunk-YSEQWCN4.js";
6
+ import "../../chunk-W4MZXKZ2.js";
7
7
  import "../../chunk-QD6X4L4L.js";
8
8
  import "../../chunk-RH7NHVSK.js";
9
9
  import "../../chunk-QJQS6TUN.js";
10
+ import "../../chunk-ZRLYHBPN.js";
11
+ import "../../chunk-W2YERO7E.js";
10
12
  import "../../chunk-NSBPE2FW.js";
11
13
  export {
12
14
  LauncherOverlay
@@ -3,7 +3,9 @@ import {
3
3
  createLaunchJob,
4
4
  fetchLaunchJobs,
5
5
  listLaunchers
6
- } from "../../chunk-N52AHNBH.js";
6
+ } from "../../chunk-W4MZXKZ2.js";
7
+ import "../../chunk-ZRLYHBPN.js";
8
+ import "../../chunk-W2YERO7E.js";
7
9
  import "../../chunk-NSBPE2FW.js";
8
10
  export {
9
11
  cancelLaunchJob,
@@ -1,7 +1,9 @@
1
1
  import {
2
2
  useLaunchJobs
3
- } from "../../chunk-KHJUQFIK.js";
4
- import "../../chunk-N52AHNBH.js";
3
+ } from "../../chunk-YSEQWCN4.js";
4
+ import "../../chunk-W4MZXKZ2.js";
5
+ import "../../chunk-ZRLYHBPN.js";
6
+ import "../../chunk-W2YERO7E.js";
5
7
  import "../../chunk-NSBPE2FW.js";
6
8
  export {
7
9
  useLaunchJobs
@@ -2,10 +2,10 @@ import {
2
2
  _resetRefreshAttempt,
3
3
  bootstrapActiveOrg,
4
4
  maybeRefreshActiveOrg
5
- } from "../chunk-4UJATBTG.js";
6
- import "../chunk-CWFVBGX2.js";
7
- import "../chunk-W2YERO7E.js";
5
+ } from "../chunk-SLL3OBKN.js";
8
6
  import "../chunk-EKJ2CABV.js";
7
+ import "../chunk-ZRLYHBPN.js";
8
+ import "../chunk-W2YERO7E.js";
9
9
  import "../chunk-NSBPE2FW.js";
10
10
  export {
11
11
  _resetRefreshAttempt,
@@ -3,26 +3,26 @@ import {
3
3
  HANDLERS,
4
4
  pollForWork,
5
5
  runAgentLoop
6
- } from "../chunk-CXWY5XKD.js";
7
- import "../chunk-AUUHXCJU.js";
8
- import "../chunk-VCG4Q53B.js";
6
+ } from "../chunk-4LHEN2FS.js";
7
+ import "../chunk-JEJ3J5J6.js";
8
+ import "../chunk-OTOWLUOJ.js";
9
9
  import "../chunk-WLFX4PYR.js";
10
10
  import "../chunk-Y4BJXXYV.js";
11
11
  import "../chunk-W53GKIZQ.js";
12
12
  import "../chunk-H3C6EGR2.js";
13
13
  import "../chunk-RQ2TMLKG.js";
14
- import "../chunk-T76YQCKX.js";
14
+ import "../chunk-IATQXFJA.js";
15
15
  import "../chunk-BCIUSUEV.js";
16
16
  import "../chunk-E3BIT53W.js";
17
17
  import "../chunk-QSN77T7C.js";
18
18
  import "../chunk-QNSVCSHG.js";
19
- import "../chunk-7DRLX3DN.js";
20
- import "../chunk-OKCFYPIQ.js";
21
- import "../chunk-CCSR73HF.js";
19
+ import "../chunk-3POYC5NA.js";
20
+ import "../chunk-RCMXTLQF.js";
21
+ import "../chunk-N5A2IQAK.js";
22
22
  import "../chunk-XZXS2W24.js";
23
23
  import "../chunk-FZKLLNDS.js";
24
24
  import "../chunk-DGHWRQXL.js";
25
- import "../chunk-TDTHAOXO.js";
25
+ import "../chunk-DR5WLIOU.js";
26
26
  import "../chunk-J7N3DLH6.js";
27
27
  import "../chunk-52WIYRZH.js";
28
28
  import "../chunk-OQSQC7VB.js";
@@ -32,7 +32,7 @@ import "../chunk-KRBQLMOP.js";
32
32
  import "../chunk-3TIMQ3O6.js";
33
33
  import "../chunk-YNIH3KMU.js";
34
34
  import "../chunk-QN34TGD3.js";
35
- import "../chunk-CWFVBGX2.js";
35
+ import "../chunk-ZRLYHBPN.js";
36
36
  import "../chunk-W2YERO7E.js";
37
37
  import "../chunk-NSBPE2FW.js";
38
38
  export {
@@ -6,8 +6,8 @@ import {
6
6
  readNewRecords,
7
7
  stateApi,
8
8
  tailAntigravityTranscript
9
- } from "../chunk-CGUV6TUA.js";
10
- import "../chunk-CWFVBGX2.js";
9
+ } from "../chunk-RUCSRN7F.js";
10
+ import "../chunk-ZRLYHBPN.js";
11
11
  import "../chunk-W2YERO7E.js";
12
12
  import "../chunk-NSBPE2FW.js";
13
13
  export {
@@ -1,16 +1,18 @@
1
1
  import {
2
2
  ApiError,
3
+ DEFAULT_API_URL,
3
4
  api,
4
5
  apiDelete,
5
6
  apiGet,
6
7
  apiPatch,
7
8
  apiPost,
8
9
  apiPut
9
- } from "../chunk-CWFVBGX2.js";
10
+ } from "../chunk-ZRLYHBPN.js";
10
11
  import "../chunk-W2YERO7E.js";
11
12
  import "../chunk-NSBPE2FW.js";
12
13
  export {
13
14
  ApiError,
15
+ DEFAULT_API_URL,
14
16
  api,
15
17
  apiDelete,
16
18
  apiGet,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  aggregateBenchmark,
3
3
  postBenchmark
4
- } from "../chunk-TJ2M5QVL.js";
5
- import "../chunk-CWFVBGX2.js";
4
+ } from "../chunk-3QH73QOQ.js";
5
+ import "../chunk-ZRLYHBPN.js";
6
6
  import "../chunk-W2YERO7E.js";
7
7
  import "../chunk-NSBPE2FW.js";
8
8
  export {
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  processConversationJob
3
- } from "../chunk-TDTHAOXO.js";
3
+ } from "../chunk-DR5WLIOU.js";
4
4
  import "../chunk-3TIMQ3O6.js";
5
5
  import "../chunk-YNIH3KMU.js";
6
6
  import "../chunk-QN34TGD3.js";
7
- import "../chunk-CWFVBGX2.js";
7
+ import "../chunk-ZRLYHBPN.js";
8
8
  import "../chunk-W2YERO7E.js";
9
9
  import "../chunk-NSBPE2FW.js";
10
10
  export {
@@ -4,10 +4,12 @@ import {
4
4
  GATEWAY_PORT,
5
5
  MITMPROXY_PORT,
6
6
  getGatewayPid,
7
+ isGatewayListening,
7
8
  isGatewayRunning,
8
9
  spawnGateway,
9
- stopGateway
10
- } from "../chunk-FTJRMUID.js";
10
+ stopGateway,
11
+ waitForGatewayListening
12
+ } from "../chunk-OVGP4OGK.js";
11
13
  import "../chunk-NSBPE2FW.js";
12
14
  export {
13
15
  GATEWAY_LOG_FILE,
@@ -15,8 +17,10 @@ export {
15
17
  GATEWAY_PORT,
16
18
  MITMPROXY_PORT,
17
19
  getGatewayPid,
20
+ isGatewayListening,
18
21
  isGatewayRunning,
19
22
  spawnGateway,
20
- stopGateway
23
+ stopGateway,
24
+ waitForGatewayListening
21
25
  };
22
26
  //# sourceMappingURL=gateway-lifecycle.js.map