archondev 2.19.55 → 2.19.56-rc.1

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-QKHRSVUO.js";
10
+ } from "./chunk-NEV3H72R.js";
11
11
  import {
12
12
  transitionAtom
13
13
  } from "./chunk-WGLVDEZC.js";
@@ -33,7 +33,7 @@ import {
33
33
  SUPABASE_URL
34
34
  } from "./chunk-M4LGRTLC.js";
35
35
  import {
36
- loadConfig
36
+ ensureValidSession
37
37
  } from "./chunk-SVU7MLG6.js";
38
38
  import {
39
39
  __commonJS,
@@ -4867,7 +4867,7 @@ async function attemptPathScopeAutoRecovery(atom, cwd, parseSchema, options) {
4867
4867
  if (allowedPaths.length === 0) {
4868
4868
  return false;
4869
4869
  }
4870
- const { listLocalAtoms, plan } = await import("./plan-7YU2U4RY.js");
4870
+ const { listLocalAtoms, plan } = await import("./plan-TTYFTAJ4.js");
4871
4871
  const before = await listLocalAtoms();
4872
4872
  const recoveryStartedAt = Date.now();
4873
4873
  const recoverySource = atom.description ?? atom.title;
@@ -4935,7 +4935,7 @@ async function execute(atomId, options) {
4935
4935
  process.exit(1);
4936
4936
  };
4937
4937
  if (options.parallel && options.parallel.length > 0) {
4938
- const { parallelExecute } = await import("./parallel-HUAAE6PS.js");
4938
+ const { parallelExecute } = await import("./parallel-AQQYX6L5.js");
4939
4939
  const allAtomIds = [atomId, ...options.parallel];
4940
4940
  await parallelExecute(allAtomIds, { skipGates: options.skipGates === true });
4941
4941
  return;
@@ -5108,12 +5108,12 @@ ${conflictReport.blockerCount} blocking conflict(s) found.`));
5108
5108
  }
5109
5109
  await saveAtom(atom);
5110
5110
  console.log(chalk2.blue("\n\u{1F680} Executing plan..."));
5111
- const config = await loadConfig();
5111
+ const config = await ensureValidSession();
5112
5112
  let billingContext;
5113
- if (config.userId && config.accessToken) {
5113
+ if (config?.userId && config.accessToken) {
5114
5114
  const profileId = await resolveProfileId(config.userId, config.accessToken);
5115
5115
  if (!profileId) {
5116
- console.log(chalk2.dim("Billing context unavailable: could not resolve profile ID. Usage tracking skipped for this execution."));
5116
+ console.log(chalk2.dim("Billing context unavailable: profile resolution failed. Usage tracking skipped for this execution."));
5117
5117
  }
5118
5118
  const supabase = createAuthedSupabaseClient(SUPABASE_URL, SUPABASE_ANON_KEY, config.accessToken);
5119
5119
  if (profileId) {
@@ -5249,6 +5249,7 @@ ${conflictReport.blockerCount} blocking conflict(s) found.`));
5249
5249
  for (const file of filesChanged) {
5250
5250
  console.log(chalk2.dim(` - ${file}`));
5251
5251
  }
5252
+ await printDeliverablePreview(cwd, filesChanged);
5252
5253
  if (executor instanceof TrackedExecutorAgent) {
5253
5254
  const trackedResult = executionResult;
5254
5255
  if (trackedResult.totalCostCents && trackedResult.totalCostCents > 0) {
@@ -5357,14 +5358,14 @@ Running quality gates for ${targetEnvName}...`));
5357
5358
  async function resolveProfileId(authId, accessToken) {
5358
5359
  try {
5359
5360
  const supabase = createAuthedSupabaseClient(SUPABASE_URL, SUPABASE_ANON_KEY, accessToken);
5360
- const { data: rawData, error } = await supabase.from("user_profiles").select("id").eq("auth_id", authId).single();
5361
+ const { data: rawData } = await supabase.from("user_profiles").select("id").eq("auth_id", authId).maybeSingle();
5361
5362
  const data = rawData;
5362
- if (!error && data?.id) {
5363
+ if (data?.id) {
5363
5364
  return data.id;
5364
5365
  }
5365
- const { data: byProfileRaw, error: byProfileError } = await supabase.from("user_profiles").select("id").eq("id", authId).single();
5366
+ const { data: byProfileRaw } = await supabase.from("user_profiles").select("id").eq("id", authId).maybeSingle();
5366
5367
  const byProfile = byProfileRaw;
5367
- if (byProfileError || !byProfile?.id) {
5368
+ if (!byProfile?.id) {
5368
5369
  return null;
5369
5370
  }
5370
5371
  return byProfile.id;
@@ -5389,6 +5390,26 @@ function printExecuteNextActions(atomExternalId, success, context = "generic") {
5389
5390
  console.log(chalk2.dim(` \u2022 Run ${chalk2.cyan("archon credits")} to verify balance/tier.`));
5390
5391
  console.log(chalk2.dim(` \u2022 Run ${chalk2.cyan("archon preferences")} to tune model routing.`));
5391
5392
  }
5393
+ async function printDeliverablePreview(cwd, filesChanged) {
5394
+ const previewTarget = filesChanged.find((file) => /\.md$/i.test(file));
5395
+ if (!previewTarget) {
5396
+ return;
5397
+ }
5398
+ const absolutePath = join4(cwd, previewTarget);
5399
+ try {
5400
+ const content = await readFile8(absolutePath, "utf-8");
5401
+ const previewLines = content.split("\n").map((line) => line.trimEnd()).filter((line) => line.trim().length > 0).slice(0, 8);
5402
+ if (previewLines.length === 0) {
5403
+ return;
5404
+ }
5405
+ console.log(chalk2.bold("\nDeliverable preview:"));
5406
+ console.log(chalk2.dim(` Output file: ${absolutePath}`));
5407
+ for (const line of previewLines) {
5408
+ console.log(chalk2.dim(` ${line}`));
5409
+ }
5410
+ } catch {
5411
+ }
5412
+ }
5392
5413
  async function saveAtom(atom) {
5393
5414
  const atomsDir = join4(process.cwd(), ATOMS_DIR);
5394
5415
  const atomFile = join4(atomsDir, `${atom.externalId}.json`);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listLocalAtoms
3
- } from "./chunk-QKHRSVUO.js";
3
+ } from "./chunk-NEV3H72R.js";
4
4
 
5
5
  // src/cli/list.ts
6
6
  import chalk from "chalk";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadAtom
3
- } from "./chunk-QKHRSVUO.js";
3
+ } from "./chunk-NEV3H72R.js";
4
4
 
5
5
  // src/cli/show.ts
6
6
  import chalk from "chalk";
@@ -33,8 +33,8 @@ import {
33
33
  updateUserTier
34
34
  } from "./chunk-GBYW3YAY.js";
35
35
  import {
36
- isAuthenticated,
37
- loadConfig
36
+ ensureValidSession,
37
+ isAuthenticated
38
38
  } from "./chunk-SVU7MLG6.js";
39
39
 
40
40
  // src/cli/plan.ts
@@ -1104,9 +1104,9 @@ Atom saved: ${atom.externalId}`));
1104
1104
  }
1105
1105
  console.log(chalk2.blue("\nStarting adversarial planning..."));
1106
1106
  console.log(chalk2.dim("Architect will generate a plan, Sentinel will validate it.\n"));
1107
- const config = await loadConfig();
1107
+ const config = await ensureValidSession();
1108
1108
  let billingContext;
1109
- if (config.userId && config.accessToken) {
1109
+ if (config?.userId && config.accessToken) {
1110
1110
  const profileId = await resolveProfileId(config.userId, config.accessToken);
1111
1111
  if (profileId) {
1112
1112
  const supabase = createAuthedSupabaseClient(SUPABASE_URL, SUPABASE_ANON_KEY, config.accessToken);
@@ -1753,14 +1753,14 @@ async function promptForDeliverableTarget(prompt2, requirements, references) {
1753
1753
  async function resolveProfileId(authId, accessToken) {
1754
1754
  try {
1755
1755
  const supabase = createAuthedSupabaseClient(SUPABASE_URL, SUPABASE_ANON_KEY, accessToken);
1756
- const { data: rawData, error } = await supabase.from("user_profiles").select("id").eq("auth_id", authId).single();
1756
+ const { data: rawData } = await supabase.from("user_profiles").select("id").eq("auth_id", authId).maybeSingle();
1757
1757
  const data = rawData;
1758
- if (!error && data?.id) {
1758
+ if (data?.id) {
1759
1759
  return data.id;
1760
1760
  }
1761
- const { data: byProfileRaw, error: byProfileError } = await supabase.from("user_profiles").select("id").eq("id", authId).single();
1761
+ const { data: byProfileRaw } = await supabase.from("user_profiles").select("id").eq("id", authId).maybeSingle();
1762
1762
  const byProfile = byProfileRaw;
1763
- if (byProfileError || !byProfile?.id) return null;
1763
+ if (!byProfile?.id) return null;
1764
1764
  return byProfile.id;
1765
1765
  } catch {
1766
1766
  return null;
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  listLocalAtoms,
8
8
  loadAtom
9
- } from "./chunk-QKHRSVUO.js";
9
+ } from "./chunk-NEV3H72R.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-ICPOD7FC.js";
3
+ } from "./chunk-3T3QCPAG.js";
4
4
  import "./chunk-EBHHIUCB.js";
5
- import "./chunk-QKHRSVUO.js";
5
+ import "./chunk-NEV3H72R.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-DDAOREZF.js";
16
+ } from "./chunk-EMIYV4JP.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-K6A6CWUG.js";
53
+ } from "./chunk-Z3M36SEU.js";
54
54
  import {
55
55
  DependencyParser,
56
56
  EnvironmentConfigLoader,
57
57
  EnvironmentValidator,
58
58
  execute
59
- } from "./chunk-ICPOD7FC.js";
59
+ } from "./chunk-3T3QCPAG.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-TNS5OLCD.js";
67
+ } from "./chunk-CMLXOC4W.js";
68
68
  import {
69
69
  listLocalAtoms,
70
70
  loadAtom,
71
71
  plan
72
- } from "./chunk-QKHRSVUO.js";
72
+ } from "./chunk-NEV3H72R.js";
73
73
  import "./chunk-WGLVDEZC.js";
74
74
  import "./chunk-3MZOEZUH.js";
75
75
  import {
@@ -114,6 +114,7 @@ import {
114
114
  updateUserTier
115
115
  } from "./chunk-GBYW3YAY.js";
116
116
  import {
117
+ ensureValidSession,
117
118
  getAuthToken,
118
119
  loadConfig,
119
120
  saveConfig
@@ -2726,6 +2727,14 @@ async function start(options = {}) {
2726
2727
  displayBrandedHeader();
2727
2728
  const updateCheckPromise = startBackgroundUpdateCheck();
2728
2729
  let config = await loadConfig();
2730
+ if (config.accessToken) {
2731
+ const refreshedConfig = await ensureValidSession();
2732
+ if (refreshedConfig) {
2733
+ config = refreshedConfig;
2734
+ } else {
2735
+ config = { ...config, accessToken: void 0, refreshToken: void 0, expiresAt: void 0 };
2736
+ }
2737
+ }
2729
2738
  let token = getAuthToken(config);
2730
2739
  if (!token) {
2731
2740
  console.log(chalk6.bold("Welcome to ArchonDev!\n"));
@@ -3475,7 +3484,7 @@ async function runExploreFlow(cwd, followUpInput, options = {}) {
3475
3484
  case "1": {
3476
3485
  const description = await promptWithCommands("Describe what you want to do", { allowMultiline: true });
3477
3486
  if (description.trim()) {
3478
- const { plan: plan2 } = await import("./plan-7YU2U4RY.js");
3487
+ const { plan: plan2 } = await import("./plan-TTYFTAJ4.js");
3479
3488
  await plan2(description, { conversational: true });
3480
3489
  }
3481
3490
  await showMainMenu();
@@ -3720,7 +3729,7 @@ ${state.forbiddenPatterns?.length ? `- **Forbidden patterns:** ${state.forbidden
3720
3729
  const hintedTask = initialTaskHint?.trim() ?? "";
3721
3730
  if (hintedTask) {
3722
3731
  console.log(chalk6.dim("Using your request above as the first task.\n"));
3723
- const { plan: plan2 } = await import("./plan-7YU2U4RY.js");
3732
+ const { plan: plan2 } = await import("./plan-TTYFTAJ4.js");
3724
3733
  await plan2(hintedTask, { conversational: true });
3725
3734
  return;
3726
3735
  }
@@ -3745,7 +3754,7 @@ ${state.forbiddenPatterns?.length ? `- **Forbidden patterns:** ${state.forbidden
3745
3754
  description = continueAnswer.trim();
3746
3755
  }
3747
3756
  if (description.trim()) {
3748
- const { plan: plan2 } = await import("./plan-7YU2U4RY.js");
3757
+ const { plan: plan2 } = await import("./plan-TTYFTAJ4.js");
3749
3758
  await plan2(description, { conversational: true });
3750
3759
  }
3751
3760
  }
@@ -3974,7 +3983,7 @@ async function handleAgentConversationInput(cwd, input) {
3974
3983
  return true;
3975
3984
  }
3976
3985
  console.log(chalk6.dim("\n> Got it! Creating a task for this...\n"));
3977
- const { plan: plan2 } = await import("./plan-7YU2U4RY.js");
3986
+ const { plan: plan2 } = await import("./plan-TTYFTAJ4.js");
3978
3987
  await plan2(await withAllowedPathScope(cwd, input), { conversational: true });
3979
3988
  if (shouldAutoExecuteAfterPlanning(input)) {
3980
3989
  await continueWithCurrentTask(cwd, { runAllReady: true });
@@ -4021,7 +4030,7 @@ async function showProposalForApproval(input) {
4021
4030
  }
4022
4031
  }
4023
4032
  async function showLatestPlannedAtom(cwd) {
4024
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-7YU2U4RY.js");
4033
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-TTYFTAJ4.js");
4025
4034
  const atoms = await listLocalAtoms2();
4026
4035
  if (atoms.length === 0) {
4027
4036
  console.log(chalk6.yellow("No atoms found yet. Tell me what to plan."));
@@ -4039,7 +4048,7 @@ async function showLatestPlannedAtom(cwd) {
4039
4048
  console.log(chalk6.dim(`
4040
4049
  Showing latest planned atom (${latest.externalId})...
4041
4050
  `));
4042
- const { show: show2 } = await import("./show-VLTLYZDI.js");
4051
+ const { show: show2 } = await import("./show-LZUSEKCA.js");
4043
4052
  await show2(latest.externalId);
4044
4053
  }
4045
4054
  function isContinuationDirective(input) {
@@ -4172,7 +4181,7 @@ async function applyApprovedProposal(cwd) {
4172
4181
  console.log(chalk6.dim('\nReply "continue" when you want execution to start.'));
4173
4182
  }
4174
4183
  async function createTaskFromRequest(cwd, request) {
4175
- const { plan: plan2, listLocalAtoms: listLocalAtoms2 } = await import("./plan-7YU2U4RY.js");
4184
+ const { plan: plan2, listLocalAtoms: listLocalAtoms2 } = await import("./plan-TTYFTAJ4.js");
4176
4185
  const before = await listLocalAtoms2();
4177
4186
  const beforeIds = new Set(before.map((atom) => atom.externalId));
4178
4187
  await plan2(await withAllowedPathScope(cwd, request), { conversational: true });
@@ -4193,7 +4202,7 @@ async function createTaskFromRequest(cwd, request) {
4193
4202
  return created;
4194
4203
  }
4195
4204
  async function provideAnalysisFirstPlan(cwd, request) {
4196
- console.log(chalk6.dim("\n> I analyzed your request and generated a recommendation + sample draft first.\n"));
4205
+ console.log(chalk6.dim("\n> Review complete. Here is the recommendation and exact implementation plan before any file changes.\n"));
4197
4206
  const markdownFiles = collectMarkdownFiles(cwd);
4198
4207
  const dayOneCandidates = markdownFiles.filter((file) => isDayOnePath(file));
4199
4208
  const capsuleCandidates = markdownFiles.filter((file) => /capsule/i.test(file));
@@ -4228,6 +4237,10 @@ async function provideAnalysisFirstPlan(cwd, request) {
4228
4237
  console.log(chalk6.dim(` 2. Define capsule boundaries and titles (${capsuleCount} capsule${capsuleCount > 1 ? "s" : ""}).`));
4229
4238
  console.log(chalk6.dim(" 3. Draft capsule markdown(s) with consistent template and learning objective per capsule."));
4230
4239
  console.log(chalk6.dim(" 4. Add index/manifest links and quick validation checks for user flow."));
4240
+ const proposedOutputPath = suggestDayOneSampleOutputPath(reviewedFiles);
4241
+ if (proposedOutputPath) {
4242
+ console.log(chalk6.dim(` 5. Write output to: ${proposedOutputPath}`));
4243
+ }
4231
4244
  const sampleDraft = buildSampleCapsuleDraft(cwd, reviewedFiles, capsuleCount);
4232
4245
  if (sampleDraft) {
4233
4246
  console.log();
@@ -4238,7 +4251,18 @@ async function provideAnalysisFirstPlan(cwd, request) {
4238
4251
  pendingAnalysisReviewedFiles = reviewedFiles;
4239
4252
  pendingAnalysisCapsuleCount = capsuleCount;
4240
4253
  console.log();
4241
- console.log(chalk6.dim('Reply with "yes", "go ahead", or "create atom" when you want me to implement this in governed mode.'));
4254
+ console.log(chalk6.dim("No files have been changed yet."));
4255
+ console.log(chalk6.dim('Reply with "yes", "go ahead", or "create atom" to implement exactly this plan.'));
4256
+ }
4257
+ function suggestDayOneSampleOutputPath(reviewedFiles) {
4258
+ const first = reviewedFiles[0];
4259
+ if (!first) return null;
4260
+ const parsed = first.match(/^(.*\/)?([^/]+)\.md$/i);
4261
+ if (!parsed) return null;
4262
+ const dir = parsed[1] ?? "";
4263
+ const stem = parsed[2];
4264
+ if (!stem) return null;
4265
+ return `${dir}${stem}.sample-capsule.md`;
4242
4266
  }
4243
4267
  function enrichApprovedAnalysisRequest(request, reviewedFiles, capsuleCount) {
4244
4268
  const normalizedFiles = reviewedFiles.map((file) => file.trim()).filter((file) => file.length > 0);
@@ -4348,13 +4372,13 @@ function buildSampleCapsuleDraft(cwd, files, capsuleCount) {
4348
4372
  ].join("\n");
4349
4373
  }
4350
4374
  async function continueWithCurrentTask(cwd, options = {}) {
4351
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-7YU2U4RY.js");
4375
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-TTYFTAJ4.js");
4352
4376
  const byMostRecent = (a, b) => {
4353
4377
  const aTime = new Date(String(a.updatedAt ?? a.createdAt ?? "")).getTime() || 0;
4354
4378
  const bTime = new Date(String(b.updatedAt ?? b.createdAt ?? "")).getTime() || 0;
4355
4379
  return bTime - aTime;
4356
4380
  };
4357
- const { execute: execute2 } = await import("./execute-4KDY6MOO.js");
4381
+ const { execute: execute2 } = await import("./execute-ZMY5AXYZ.js");
4358
4382
  const runAllReady = options.runAllReady === true;
4359
4383
  const scopeIds = options.onlyAtomIds ? new Set(options.onlyAtomIds) : null;
4360
4384
  const attempted = /* @__PURE__ */ new Set();
@@ -4430,7 +4454,7 @@ Continuing with ${nextAtom.externalId}...
4430
4454
  }
4431
4455
  }
4432
4456
  async function replanLatestBlockedAtom(cwd) {
4433
- const { listLocalAtoms: listLocalAtoms2, plan: plan2 } = await import("./plan-7YU2U4RY.js");
4457
+ const { listLocalAtoms: listLocalAtoms2, plan: plan2 } = await import("./plan-TTYFTAJ4.js");
4434
4458
  const atoms = await listLocalAtoms2();
4435
4459
  const blocked = atoms.filter((a) => a.status === "BLOCKED" && (a.errorMessage ?? "").toLowerCase().includes("outside the allowed paths")).sort((a, b) => {
4436
4460
  const aTime = new Date(String(a.updatedAt ?? a.createdAt ?? "")).getTime() || 0;
@@ -4544,7 +4568,7 @@ async function handleFreeformJourneyInput(cwd, input) {
4544
4568
  const state = detectProjectState(cwd);
4545
4569
  if (state.hasArchitecture) {
4546
4570
  console.log(chalk6.dim("\n> Got it! Creating a task for this...\n"));
4547
- const { plan: plan3 } = await import("./plan-7YU2U4RY.js");
4571
+ const { plan: plan3 } = await import("./plan-TTYFTAJ4.js");
4548
4572
  await plan3(await withAllowedPathScope(cwd, freeform), { conversational: true });
4549
4573
  return true;
4550
4574
  }
@@ -4553,7 +4577,7 @@ async function handleFreeformJourneyInput(cwd, input) {
4553
4577
  return true;
4554
4578
  }
4555
4579
  console.log(chalk6.dim("\n> Got it! Creating a task for this...\n"));
4556
- const { plan: plan2 } = await import("./plan-7YU2U4RY.js");
4580
+ const { plan: plan2 } = await import("./plan-TTYFTAJ4.js");
4557
4581
  await plan2(await withAllowedPathScope(cwd, freeform), { conversational: true });
4558
4582
  return true;
4559
4583
  }
@@ -4602,7 +4626,7 @@ function isFileLocationQuestion(input) {
4602
4626
  return true;
4603
4627
  }
4604
4628
  async function answerLatestOutputLocation(cwd) {
4605
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-7YU2U4RY.js");
4629
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-TTYFTAJ4.js");
4606
4630
  const atoms = await listLocalAtoms2();
4607
4631
  const latestDone = atoms.filter((atom) => atom.status === "DONE").sort((a, b) => {
4608
4632
  const aTime = new Date(String(a.updatedAt ?? a.createdAt ?? "")).getTime() || 0;
@@ -4651,7 +4675,7 @@ async function handlePostExploreAction(cwd, request, options = {}) {
4651
4675
  } else {
4652
4676
  console.log(chalk6.dim("> Got it! Creating a task for this...\n"));
4653
4677
  }
4654
- const { plan: plan2 } = await import("./plan-7YU2U4RY.js");
4678
+ const { plan: plan2 } = await import("./plan-TTYFTAJ4.js");
4655
4679
  await plan2(await withAllowedPathScope(cwd, request), { conversational: true });
4656
4680
  if (options.agentMode) {
4657
4681
  if (shouldAutoExecuteAfterPlanning(sourceInput)) {
@@ -4675,18 +4699,18 @@ Constraints:
4675
4699
  - If required files are outside this scope, propose the minimum architecture path update first.`;
4676
4700
  }
4677
4701
  async function planTask() {
4678
- const { plan: plan2 } = await import("./plan-7YU2U4RY.js");
4702
+ const { plan: plan2 } = await import("./plan-TTYFTAJ4.js");
4679
4703
  const description = await promptWithCommands("Describe what you want to build", { allowMultiline: true });
4680
4704
  if (description.trim()) {
4681
4705
  await plan2(description, { conversational: true });
4682
4706
  }
4683
4707
  }
4684
4708
  async function listAtoms() {
4685
- const { list: list2 } = await import("./list-D4THOSHG.js");
4709
+ const { list: list2 } = await import("./list-KZGYZWQH.js");
4686
4710
  await list2({});
4687
4711
  }
4688
4712
  async function executeNext() {
4689
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-7YU2U4RY.js");
4713
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-TTYFTAJ4.js");
4690
4714
  const { analyzeProject, getComplexityDescription, getModeDescription } = await import("./orchestration-HIF3KP25.js");
4691
4715
  const { loadExecutionPreferences } = await import("./preferences-QTPQLCXN.js");
4692
4716
  const cwd = process.cwd();
@@ -4757,11 +4781,11 @@ async function executeNext() {
4757
4781
  }
4758
4782
  }
4759
4783
  if (selectedMode === "parallel-cloud") {
4760
- const { parallelExecuteCloud: parallelExecuteCloud2 } = await import("./parallel-HUAAE6PS.js");
4784
+ const { parallelExecuteCloud: parallelExecuteCloud2 } = await import("./parallel-AQQYX6L5.js");
4761
4785
  await parallelExecuteCloud2(runIds);
4762
4786
  return;
4763
4787
  }
4764
- const { parallelExecute } = await import("./parallel-HUAAE6PS.js");
4788
+ const { parallelExecute } = await import("./parallel-AQQYX6L5.js");
4765
4789
  await parallelExecute(runIds);
4766
4790
  return;
4767
4791
  }
@@ -4769,7 +4793,7 @@ async function executeNext() {
4769
4793
  const atomId = await prompt("Enter atom ID to execute (or press Enter for first pending)");
4770
4794
  const targetId = atomId.trim() || pendingAtoms[0]?.id;
4771
4795
  if (targetId) {
4772
- const { execute: execute2 } = await import("./execute-4KDY6MOO.js");
4796
+ const { execute: execute2 } = await import("./execute-ZMY5AXYZ.js");
4773
4797
  await execute2(targetId, {});
4774
4798
  } else {
4775
4799
  console.log(chalk6.yellow("No atom to execute."));
@@ -4918,7 +4942,7 @@ async function handleSlashCommand(input) {
4918
4942
  const arg = parts.slice(1).join(" ").trim();
4919
4943
  switch (command) {
4920
4944
  case "/plan": {
4921
- const { plan: plan2 } = await import("./plan-7YU2U4RY.js");
4945
+ const { plan: plan2 } = await import("./plan-TTYFTAJ4.js");
4922
4946
  if (arg) {
4923
4947
  await plan2(arg, { conversational: true });
4924
4948
  } else {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  list
3
- } from "./chunk-TNS5OLCD.js";
4
- import "./chunk-QKHRSVUO.js";
3
+ } from "./chunk-CMLXOC4W.js";
4
+ import "./chunk-NEV3H72R.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-K6A6CWUG.js";
9
+ } from "./chunk-Z3M36SEU.js";
10
10
  import "./chunk-EBHHIUCB.js";
11
- import "./chunk-QKHRSVUO.js";
11
+ import "./chunk-NEV3H72R.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-QKHRSVUO.js";
6
+ } from "./chunk-NEV3H72R.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-DDAOREZF.js";
4
- import "./chunk-QKHRSVUO.js";
3
+ } from "./chunk-EMIYV4JP.js";
4
+ import "./chunk-NEV3H72R.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.55",
3
+ "version": "2.19.56-rc.1",
4
4
  "description": "Local-first AI-powered development governance system",
5
5
  "main": "dist/index.js",
6
6
  "bin": {