archondev 2.19.49 → 2.19.51

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.
@@ -7,7 +7,7 @@ import {
7
7
  UsageRecorder,
8
8
  handleInsufficientCreditsRecovery,
9
9
  loadAtom
10
- } from "./chunk-RH64CSQU.js";
10
+ } from "./chunk-UYFYB3TJ.js";
11
11
  import {
12
12
  transitionAtom
13
13
  } from "./chunk-WGLVDEZC.js";
@@ -4533,7 +4533,7 @@ var TrackedExecutorAgent = class {
4533
4533
  operation: "EXECUTION",
4534
4534
  inputTokens: result.usage.inputTokens,
4535
4535
  outputTokens: result.usage.outputTokens,
4536
- atomId: atom.id
4536
+ atomId: isUuid(atom.id) ? atom.id : void 0
4537
4537
  });
4538
4538
  totalCostCents = billingResult.costCents;
4539
4539
  remainingBalance = billingResult.remainingBalance;
@@ -4552,6 +4552,9 @@ var TrackedExecutorAgent = class {
4552
4552
  return this.billing;
4553
4553
  }
4554
4554
  };
4555
+ function isUuid(value) {
4556
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(value);
4557
+ }
4555
4558
 
4556
4559
  // src/core/config/roles.ts
4557
4560
  import { existsSync as existsSync7 } from "fs";
@@ -4832,7 +4835,7 @@ async function attemptPathScopeAutoRecovery(atom, cwd, parseSchema, options) {
4832
4835
  if (allowedPaths.length === 0) {
4833
4836
  return false;
4834
4837
  }
4835
- const { listLocalAtoms, plan } = await import("./plan-I3P6U2ZM.js");
4838
+ const { listLocalAtoms, plan } = await import("./plan-QDOPOVJX.js");
4836
4839
  const before = await listLocalAtoms();
4837
4840
  const recoveryStartedAt = Date.now();
4838
4841
  const recoverySource = atom.description ?? atom.title;
@@ -4900,7 +4903,7 @@ async function execute(atomId, options) {
4900
4903
  process.exit(1);
4901
4904
  };
4902
4905
  if (options.parallel && options.parallel.length > 0) {
4903
- const { parallelExecute } = await import("./parallel-5UP6URF2.js");
4906
+ const { parallelExecute } = await import("./parallel-54OGF2X3.js");
4904
4907
  const allAtomIds = [atomId, ...options.parallel];
4905
4908
  await parallelExecute(allAtomIds, { skipGates: options.skipGates === true });
4906
4909
  return;
@@ -5071,11 +5074,17 @@ ${conflictReport.blockerCount} blocking conflict(s) found.`));
5071
5074
  const config = await loadConfig();
5072
5075
  let billingContext;
5073
5076
  if (config.userId && config.accessToken) {
5077
+ const profileId = await resolveProfileId(config.userId, config.accessToken);
5078
+ if (!profileId) {
5079
+ console.log(chalk2.dim("Billing context unavailable: could not resolve profile ID. Usage tracking skipped for this execution."));
5080
+ }
5074
5081
  const supabase = createAuthedSupabaseClient(SUPABASE_URL, SUPABASE_ANON_KEY, config.accessToken);
5075
- billingContext = {
5076
- userId: config.userId,
5077
- supabase
5078
- };
5082
+ if (profileId) {
5083
+ billingContext = {
5084
+ userId: profileId,
5085
+ supabase
5086
+ };
5087
+ }
5079
5088
  }
5080
5089
  const roleOverrides = await loadRoleOverrides(cwd);
5081
5090
  const executorConfig = roleOverrides?.executor?.model ? { model: roleOverrides.executor.model } : void 0;
@@ -5284,6 +5293,19 @@ Running quality gates for ${targetEnvName}...`));
5284
5293
  prompt.close();
5285
5294
  }
5286
5295
  }
5296
+ async function resolveProfileId(authId, accessToken) {
5297
+ try {
5298
+ const supabase = createAuthedSupabaseClient(SUPABASE_URL, SUPABASE_ANON_KEY, accessToken);
5299
+ const { data: rawData, error } = await supabase.from("user_profiles").select("id").eq("auth_id", authId).single();
5300
+ const data = rawData;
5301
+ if (error || !data?.id) {
5302
+ return null;
5303
+ }
5304
+ return data.id;
5305
+ } catch {
5306
+ return null;
5307
+ }
5308
+ }
5287
5309
  function printExecuteNextActions(atomExternalId, success, context = "generic") {
5288
5310
  console.log();
5289
5311
  console.log(chalk2.bold("Next best action:"));
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadAtom
3
- } from "./chunk-RH64CSQU.js";
3
+ } from "./chunk-UYFYB3TJ.js";
4
4
 
5
5
  // src/cli/show.ts
6
6
  import chalk from "chalk";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listLocalAtoms
3
- } from "./chunk-RH64CSQU.js";
3
+ } from "./chunk-UYFYB3TJ.js";
4
4
 
5
5
  // src/cli/list.ts
6
6
  import chalk from "chalk";
@@ -750,7 +750,7 @@ var TrackedAdversarialPlanner = class {
750
750
  operation: "ADVERSARIAL_PLANNING",
751
751
  inputTokens: result.totalUsage.inputTokens,
752
752
  outputTokens: result.totalUsage.outputTokens,
753
- atomId: atom.id
753
+ atomId: isUuid(atom.id) ? atom.id : void 0
754
754
  });
755
755
  billingResults.push(billingResult);
756
756
  totalCostCents = billingResult.costCents;
@@ -770,6 +770,9 @@ var TrackedAdversarialPlanner = class {
770
770
  return this.billing;
771
771
  }
772
772
  };
773
+ function isUuid(value) {
774
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(value);
775
+ }
773
776
 
774
777
  // src/cli/credits-recovery.ts
775
778
  import chalk from "chalk";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  listLocalAtoms,
8
8
  loadAtom
9
- } from "./chunk-RH64CSQU.js";
9
+ } from "./chunk-UYFYB3TJ.js";
10
10
  import {
11
11
  loadConfig
12
12
  } from "./chunk-SVU7MLG6.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  execute
3
- } from "./chunk-O22UMAM5.js";
3
+ } from "./chunk-NPFO2LYT.js";
4
4
  import "./chunk-EBHHIUCB.js";
5
- import "./chunk-RH64CSQU.js";
5
+ import "./chunk-UYFYB3TJ.js";
6
6
  import "./chunk-WGLVDEZC.js";
7
7
  import "./chunk-3MZOEZUH.js";
8
8
  import "./chunk-F7R3QKHP.js";
package/dist/index.js CHANGED
@@ -13,7 +13,7 @@ import {
13
13
  } from "./chunk-6URKZ7NB.js";
14
14
  import {
15
15
  show
16
- } from "./chunk-RLENHKO4.js";
16
+ } from "./chunk-ONA4MA6M.js";
17
17
  import {
18
18
  bugReport
19
19
  } from "./chunk-AHK2ITJX.js";
@@ -50,13 +50,13 @@ import {
50
50
  parallelRunWaves,
51
51
  parallelSchedule,
52
52
  parallelStatus
53
- } from "./chunk-JH3QUPQD.js";
53
+ } from "./chunk-XOMTEPVQ.js";
54
54
  import {
55
55
  DependencyParser,
56
56
  EnvironmentConfigLoader,
57
57
  EnvironmentValidator,
58
58
  execute
59
- } from "./chunk-O22UMAM5.js";
59
+ } from "./chunk-NPFO2LYT.js";
60
60
  import {
61
61
  cloudCancel,
62
62
  cloudLogs,
@@ -64,12 +64,12 @@ import {
64
64
  } from "./chunk-EBHHIUCB.js";
65
65
  import {
66
66
  list
67
- } from "./chunk-MQKPOULB.js";
67
+ } from "./chunk-TVQA3HXM.js";
68
68
  import {
69
69
  listLocalAtoms,
70
70
  loadAtom,
71
71
  plan
72
- } from "./chunk-RH64CSQU.js";
72
+ } from "./chunk-UYFYB3TJ.js";
73
73
  import "./chunk-WGLVDEZC.js";
74
74
  import "./chunk-3MZOEZUH.js";
75
75
  import {
@@ -2843,7 +2843,15 @@ async function start(options = {}) {
2843
2843
  }
2844
2844
  if (currentTier === "BYOK" && config.accessToken) {
2845
2845
  try {
2846
+ const resolvedAuthId = await resolveAuthIdFromToken(config.accessToken, config.userId);
2846
2847
  let usageStats = await fetchByokUsageStats(config.accessToken);
2848
+ const apiLooksEmpty = !!usageStats && usageStats.totalInputTokens === 0 && usageStats.totalOutputTokens === 0 && usageStats.totalBaseCost === 0 && usageStats.byModel.length === 0;
2849
+ if (!usageStats || apiLooksEmpty && resolvedAuthId) {
2850
+ const supabaseStats = resolvedAuthId ? await fetchByokUsageStatsFromSupabase(config.accessToken, resolvedAuthId) : null;
2851
+ if (supabaseStats) {
2852
+ usageStats = supabaseStats;
2853
+ }
2854
+ }
2847
2855
  const usageStatsUnavailable = !usageStats;
2848
2856
  if (!usageStats) {
2849
2857
  usageStats = {
@@ -3094,6 +3102,48 @@ async function fetchByokUsageStats(accessToken) {
3094
3102
  return null;
3095
3103
  }
3096
3104
  }
3105
+ async function fetchByokUsageStatsFromSupabase(accessToken, authId) {
3106
+ try {
3107
+ const { SUPABASE_URL: SUPABASE_URL2, SUPABASE_ANON_KEY: SUPABASE_ANON_KEY2 } = await import("./constants-XDIWFFPN.js");
3108
+ const { createAuthedSupabaseClient: createAuthedSupabaseClient2 } = await import("./client-PHW2C2HB.js");
3109
+ const supabase = createAuthedSupabaseClient2(SUPABASE_URL2, SUPABASE_ANON_KEY2, accessToken);
3110
+ const { data: rawProfile, error: profileError } = await supabase.from("user_profiles").select("id, current_period_start, current_period_end").eq("auth_id", authId).single();
3111
+ const profile = rawProfile;
3112
+ if (profileError || !profile?.id) {
3113
+ return null;
3114
+ }
3115
+ const now = /* @__PURE__ */ new Date();
3116
+ const defaultStart = new Date(now.getFullYear(), now.getMonth(), 1);
3117
+ const defaultEnd = new Date(now.getFullYear(), now.getMonth() + 1, 0, 23, 59, 59, 999);
3118
+ const periodStart = profile.current_period_start ? new Date(profile.current_period_start) : defaultStart;
3119
+ const periodEnd = profile.current_period_end ? new Date(profile.current_period_end) : defaultEnd;
3120
+ const { data: rawUsageRows } = await supabase.from("token_usage").select("model, input_tokens, output_tokens, base_cost, total_cents, marked_up_cost").eq("user_id", profile.id).gte("created_at", periodStart.toISOString()).lte("created_at", periodEnd.toISOString());
3121
+ const usageRows = rawUsageRows;
3122
+ let totalInputTokens = 0;
3123
+ let totalOutputTokens = 0;
3124
+ let totalBaseCost = 0;
3125
+ const byModelMap = /* @__PURE__ */ new Map();
3126
+ for (const row of usageRows ?? []) {
3127
+ totalInputTokens += row.input_tokens ?? 0;
3128
+ totalOutputTokens += row.output_tokens ?? 0;
3129
+ const baseCost = typeof row.base_cost === "number" ? row.base_cost : typeof row.total_cents === "number" ? row.total_cents / 100 : typeof row.marked_up_cost === "number" ? row.marked_up_cost : 0;
3130
+ totalBaseCost += baseCost;
3131
+ byModelMap.set(row.model, (byModelMap.get(row.model) ?? 0) + baseCost);
3132
+ }
3133
+ const byModel = Array.from(byModelMap.entries()).map(([model, cost]) => ({ model, cost })).sort((a, b) => b.cost - a.cost);
3134
+ return {
3135
+ totalInputTokens,
3136
+ totalOutputTokens,
3137
+ totalBaseCost,
3138
+ byModel,
3139
+ periodStart: periodStart.toISOString(),
3140
+ periodEnd: periodEnd.toISOString(),
3141
+ periodSource: profile.current_period_start ? "profile_period" : "month"
3142
+ };
3143
+ } catch {
3144
+ return null;
3145
+ }
3146
+ }
3097
3147
  async function fetchCreditsUsageStatsFromSupabase(accessToken, authId) {
3098
3148
  try {
3099
3149
  const { SUPABASE_URL: SUPABASE_URL2, SUPABASE_ANON_KEY: SUPABASE_ANON_KEY2 } = await import("./constants-XDIWFFPN.js");
@@ -3345,7 +3395,7 @@ async function runExploreFlow(cwd, followUpInput, options = {}) {
3345
3395
  case "1": {
3346
3396
  const description = await promptWithCommands("Describe what you want to do", { allowMultiline: true });
3347
3397
  if (description.trim()) {
3348
- const { plan: plan2 } = await import("./plan-I3P6U2ZM.js");
3398
+ const { plan: plan2 } = await import("./plan-QDOPOVJX.js");
3349
3399
  await plan2(description, { conversational: true });
3350
3400
  }
3351
3401
  await showMainMenu();
@@ -3590,7 +3640,7 @@ ${state.forbiddenPatterns?.length ? `- **Forbidden patterns:** ${state.forbidden
3590
3640
  const hintedTask = initialTaskHint?.trim() ?? "";
3591
3641
  if (hintedTask) {
3592
3642
  console.log(chalk6.dim("Using your request above as the first task.\n"));
3593
- const { plan: plan2 } = await import("./plan-I3P6U2ZM.js");
3643
+ const { plan: plan2 } = await import("./plan-QDOPOVJX.js");
3594
3644
  await plan2(hintedTask, { conversational: true });
3595
3645
  return;
3596
3646
  }
@@ -3615,7 +3665,7 @@ ${state.forbiddenPatterns?.length ? `- **Forbidden patterns:** ${state.forbidden
3615
3665
  description = continueAnswer.trim();
3616
3666
  }
3617
3667
  if (description.trim()) {
3618
- const { plan: plan2 } = await import("./plan-I3P6U2ZM.js");
3668
+ const { plan: plan2 } = await import("./plan-QDOPOVJX.js");
3619
3669
  await plan2(description, { conversational: true });
3620
3670
  }
3621
3671
  }
@@ -3844,7 +3894,7 @@ async function handleAgentConversationInput(cwd, input) {
3844
3894
  return true;
3845
3895
  }
3846
3896
  console.log(chalk6.dim("\n> Got it! Creating a task for this...\n"));
3847
- const { plan: plan2 } = await import("./plan-I3P6U2ZM.js");
3897
+ const { plan: plan2 } = await import("./plan-QDOPOVJX.js");
3848
3898
  await plan2(await withAllowedPathScope(cwd, input), { conversational: true });
3849
3899
  if (shouldAutoExecuteAfterPlanning(input)) {
3850
3900
  await continueWithCurrentTask(cwd, { runAllReady: true });
@@ -3891,7 +3941,7 @@ async function showProposalForApproval(input) {
3891
3941
  }
3892
3942
  }
3893
3943
  async function showLatestPlannedAtom(cwd) {
3894
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-I3P6U2ZM.js");
3944
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-QDOPOVJX.js");
3895
3945
  const atoms = await listLocalAtoms2();
3896
3946
  if (atoms.length === 0) {
3897
3947
  console.log(chalk6.yellow("No atoms found yet. Tell me what to plan."));
@@ -3909,7 +3959,7 @@ async function showLatestPlannedAtom(cwd) {
3909
3959
  console.log(chalk6.dim(`
3910
3960
  Showing latest planned atom (${latest.externalId})...
3911
3961
  `));
3912
- const { show: show2 } = await import("./show-7HL5NIA7.js");
3962
+ const { show: show2 } = await import("./show-LBFR7FL2.js");
3913
3963
  await show2(latest.externalId);
3914
3964
  }
3915
3965
  function isContinuationDirective(input) {
@@ -4042,7 +4092,7 @@ async function applyApprovedProposal(cwd) {
4042
4092
  console.log(chalk6.dim('\nReply "continue" when you want execution to start.'));
4043
4093
  }
4044
4094
  async function createTaskFromRequest(cwd, request) {
4045
- const { plan: plan2, listLocalAtoms: listLocalAtoms2 } = await import("./plan-I3P6U2ZM.js");
4095
+ const { plan: plan2, listLocalAtoms: listLocalAtoms2 } = await import("./plan-QDOPOVJX.js");
4046
4096
  const before = await listLocalAtoms2();
4047
4097
  const beforeIds = new Set(before.map((atom) => atom.externalId));
4048
4098
  await plan2(await withAllowedPathScope(cwd, request), { conversational: true });
@@ -4218,13 +4268,13 @@ function buildSampleCapsuleDraft(cwd, files, capsuleCount) {
4218
4268
  ].join("\n");
4219
4269
  }
4220
4270
  async function continueWithCurrentTask(cwd, options = {}) {
4221
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-I3P6U2ZM.js");
4271
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-QDOPOVJX.js");
4222
4272
  const byMostRecent = (a, b) => {
4223
4273
  const aTime = new Date(String(a.updatedAt ?? a.createdAt ?? "")).getTime() || 0;
4224
4274
  const bTime = new Date(String(b.updatedAt ?? b.createdAt ?? "")).getTime() || 0;
4225
4275
  return bTime - aTime;
4226
4276
  };
4227
- const { execute: execute2 } = await import("./execute-AQWHZKDH.js");
4277
+ const { execute: execute2 } = await import("./execute-544PE37M.js");
4228
4278
  const runAllReady = options.runAllReady === true;
4229
4279
  const scopeIds = options.onlyAtomIds ? new Set(options.onlyAtomIds) : null;
4230
4280
  const attempted = /* @__PURE__ */ new Set();
@@ -4300,7 +4350,7 @@ Continuing with ${nextAtom.externalId}...
4300
4350
  }
4301
4351
  }
4302
4352
  async function replanLatestBlockedAtom(cwd) {
4303
- const { listLocalAtoms: listLocalAtoms2, plan: plan2 } = await import("./plan-I3P6U2ZM.js");
4353
+ const { listLocalAtoms: listLocalAtoms2, plan: plan2 } = await import("./plan-QDOPOVJX.js");
4304
4354
  const atoms = await listLocalAtoms2();
4305
4355
  const blocked = atoms.filter((a) => a.status === "BLOCKED" && (a.errorMessage ?? "").toLowerCase().includes("outside the allowed paths")).sort((a, b) => {
4306
4356
  const aTime = new Date(String(a.updatedAt ?? a.createdAt ?? "")).getTime() || 0;
@@ -4414,7 +4464,7 @@ async function handleFreeformJourneyInput(cwd, input) {
4414
4464
  const state = detectProjectState(cwd);
4415
4465
  if (state.hasArchitecture) {
4416
4466
  console.log(chalk6.dim("\n> Got it! Creating a task for this...\n"));
4417
- const { plan: plan3 } = await import("./plan-I3P6U2ZM.js");
4467
+ const { plan: plan3 } = await import("./plan-QDOPOVJX.js");
4418
4468
  await plan3(await withAllowedPathScope(cwd, freeform), { conversational: true });
4419
4469
  return true;
4420
4470
  }
@@ -4423,7 +4473,7 @@ async function handleFreeformJourneyInput(cwd, input) {
4423
4473
  return true;
4424
4474
  }
4425
4475
  console.log(chalk6.dim("\n> Got it! Creating a task for this...\n"));
4426
- const { plan: plan2 } = await import("./plan-I3P6U2ZM.js");
4476
+ const { plan: plan2 } = await import("./plan-QDOPOVJX.js");
4427
4477
  await plan2(await withAllowedPathScope(cwd, freeform), { conversational: true });
4428
4478
  return true;
4429
4479
  }
@@ -4472,7 +4522,7 @@ function isFileLocationQuestion(input) {
4472
4522
  return true;
4473
4523
  }
4474
4524
  async function answerLatestOutputLocation(cwd) {
4475
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-I3P6U2ZM.js");
4525
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-QDOPOVJX.js");
4476
4526
  const atoms = await listLocalAtoms2();
4477
4527
  const latestDone = atoms.filter((atom) => atom.status === "DONE").sort((a, b) => {
4478
4528
  const aTime = new Date(String(a.updatedAt ?? a.createdAt ?? "")).getTime() || 0;
@@ -4521,7 +4571,7 @@ async function handlePostExploreAction(cwd, request, options = {}) {
4521
4571
  } else {
4522
4572
  console.log(chalk6.dim("> Got it! Creating a task for this...\n"));
4523
4573
  }
4524
- const { plan: plan2 } = await import("./plan-I3P6U2ZM.js");
4574
+ const { plan: plan2 } = await import("./plan-QDOPOVJX.js");
4525
4575
  await plan2(await withAllowedPathScope(cwd, request), { conversational: true });
4526
4576
  if (options.agentMode) {
4527
4577
  if (shouldAutoExecuteAfterPlanning(sourceInput)) {
@@ -4545,18 +4595,18 @@ Constraints:
4545
4595
  - If required files are outside this scope, propose the minimum architecture path update first.`;
4546
4596
  }
4547
4597
  async function planTask() {
4548
- const { plan: plan2 } = await import("./plan-I3P6U2ZM.js");
4598
+ const { plan: plan2 } = await import("./plan-QDOPOVJX.js");
4549
4599
  const description = await promptWithCommands("Describe what you want to build", { allowMultiline: true });
4550
4600
  if (description.trim()) {
4551
4601
  await plan2(description, { conversational: true });
4552
4602
  }
4553
4603
  }
4554
4604
  async function listAtoms() {
4555
- const { list: list2 } = await import("./list-K5J3OCXZ.js");
4605
+ const { list: list2 } = await import("./list-ON64JA24.js");
4556
4606
  await list2({});
4557
4607
  }
4558
4608
  async function executeNext() {
4559
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-I3P6U2ZM.js");
4609
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-QDOPOVJX.js");
4560
4610
  const { analyzeProject, getComplexityDescription, getModeDescription } = await import("./orchestration-HIF3KP25.js");
4561
4611
  const { loadExecutionPreferences } = await import("./preferences-MTGN2VZK.js");
4562
4612
  const cwd = process.cwd();
@@ -4627,11 +4677,11 @@ async function executeNext() {
4627
4677
  }
4628
4678
  }
4629
4679
  if (selectedMode === "parallel-cloud") {
4630
- const { parallelExecuteCloud: parallelExecuteCloud2 } = await import("./parallel-5UP6URF2.js");
4680
+ const { parallelExecuteCloud: parallelExecuteCloud2 } = await import("./parallel-54OGF2X3.js");
4631
4681
  await parallelExecuteCloud2(runIds);
4632
4682
  return;
4633
4683
  }
4634
- const { parallelExecute } = await import("./parallel-5UP6URF2.js");
4684
+ const { parallelExecute } = await import("./parallel-54OGF2X3.js");
4635
4685
  await parallelExecute(runIds);
4636
4686
  return;
4637
4687
  }
@@ -4639,7 +4689,7 @@ async function executeNext() {
4639
4689
  const atomId = await prompt("Enter atom ID to execute (or press Enter for first pending)");
4640
4690
  const targetId = atomId.trim() || pendingAtoms[0]?.id;
4641
4691
  if (targetId) {
4642
- const { execute: execute2 } = await import("./execute-AQWHZKDH.js");
4692
+ const { execute: execute2 } = await import("./execute-544PE37M.js");
4643
4693
  await execute2(targetId, {});
4644
4694
  } else {
4645
4695
  console.log(chalk6.yellow("No atom to execute."));
@@ -4788,7 +4838,7 @@ async function handleSlashCommand(input) {
4788
4838
  const arg = parts.slice(1).join(" ").trim();
4789
4839
  switch (command) {
4790
4840
  case "/plan": {
4791
- const { plan: plan2 } = await import("./plan-I3P6U2ZM.js");
4841
+ const { plan: plan2 } = await import("./plan-QDOPOVJX.js");
4792
4842
  if (arg) {
4793
4843
  await plan2(arg, { conversational: true });
4794
4844
  } else {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  list
3
- } from "./chunk-MQKPOULB.js";
4
- import "./chunk-RH64CSQU.js";
3
+ } from "./chunk-TVQA3HXM.js";
4
+ import "./chunk-UYFYB3TJ.js";
5
5
  import "./chunk-WGLVDEZC.js";
6
6
  import "./chunk-3MZOEZUH.js";
7
7
  import "./chunk-F7R3QKHP.js";
@@ -6,9 +6,9 @@ import {
6
6
  parallelRunWaves,
7
7
  parallelSchedule,
8
8
  parallelStatus
9
- } from "./chunk-JH3QUPQD.js";
9
+ } from "./chunk-XOMTEPVQ.js";
10
10
  import "./chunk-EBHHIUCB.js";
11
- import "./chunk-RH64CSQU.js";
11
+ import "./chunk-UYFYB3TJ.js";
12
12
  import "./chunk-WGLVDEZC.js";
13
13
  import "./chunk-3MZOEZUH.js";
14
14
  import "./chunk-F7R3QKHP.js";
@@ -3,7 +3,7 @@ import {
3
3
  loadAtom,
4
4
  parseAtomDescription,
5
5
  plan
6
- } from "./chunk-RH64CSQU.js";
6
+ } from "./chunk-UYFYB3TJ.js";
7
7
  import "./chunk-WGLVDEZC.js";
8
8
  import "./chunk-3MZOEZUH.js";
9
9
  import "./chunk-F7R3QKHP.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  show
3
- } from "./chunk-RLENHKO4.js";
4
- import "./chunk-RH64CSQU.js";
3
+ } from "./chunk-ONA4MA6M.js";
4
+ import "./chunk-UYFYB3TJ.js";
5
5
  import "./chunk-WGLVDEZC.js";
6
6
  import "./chunk-3MZOEZUH.js";
7
7
  import "./chunk-F7R3QKHP.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archondev",
3
- "version": "2.19.49",
3
+ "version": "2.19.51",
4
4
  "description": "Local-first AI-powered development governance system",
5
5
  "main": "dist/index.js",
6
6
  "bin": {