archondev 2.18.5 → 2.18.7

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.
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  bugReport
3
- } from "./chunk-VF2OTDMS.js";
3
+ } from "./chunk-2BCITFWP.js";
4
4
  import "./chunk-5CFGPXQ3.js";
5
- import "./chunk-2NSWZDP7.js";
5
+ import "./chunk-5BYCJAFM.js";
6
6
  import "./chunk-HJARQDQR.js";
7
7
  import "./chunk-UFR2LX6G.js";
8
8
  import "./chunk-SVU7MLG6.js";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-5CFGPXQ3.js";
4
4
  import {
5
5
  ArchitectAgent
6
- } from "./chunk-2NSWZDP7.js";
6
+ } from "./chunk-5BYCJAFM.js";
7
7
  import {
8
8
  loadConfig
9
9
  } from "./chunk-SVU7MLG6.js";
@@ -83,6 +83,37 @@ var ArchitectAgent = class {
83
83
  parts.push("**Acceptance Criteria:**");
84
84
  atom.acceptanceCriteria.forEach((ac, i) => parts.push(`${i + 1}. ${ac}`));
85
85
  parts.push("");
86
+ const contextMeta = atom.context;
87
+ const referencedFiles = contextMeta?.["referencedFiles"] ?? [];
88
+ const missingFiles = contextMeta?.["missingFiles"] ?? [];
89
+ const requirements = contextMeta?.["requirements"] ?? [];
90
+ const fileSummaries = contextMeta?.["fileSummaries"] ?? [];
91
+ if (referencedFiles.length > 0 || requirements.length > 0) {
92
+ parts.push("# Referenced Inputs");
93
+ if (requirements.length > 0) {
94
+ parts.push("**User Requirements:**");
95
+ requirements.forEach((req, i) => parts.push(`${i + 1}. ${req}`));
96
+ parts.push("");
97
+ }
98
+ if (referencedFiles.length > 0) {
99
+ parts.push("**Referenced Files:**");
100
+ referencedFiles.forEach((ref) => parts.push(`- ${ref}`));
101
+ parts.push("");
102
+ }
103
+ if (missingFiles.length > 0) {
104
+ parts.push("**Missing Files (note and plan around gaps):**");
105
+ missingFiles.forEach((ref) => parts.push(`- ${ref}`));
106
+ parts.push("");
107
+ }
108
+ if (fileSummaries.length > 0) {
109
+ parts.push("**File Summaries (use these, do not invent):**");
110
+ for (const summary of fileSummaries) {
111
+ parts.push(`- ${summary.path}`);
112
+ parts.push(summary.summary);
113
+ parts.push("");
114
+ }
115
+ }
116
+ }
86
117
  if (atom.ownershipPaths.length > 0) {
87
118
  parts.push("**Ownership Paths (files this atom can modify):**");
88
119
  atom.ownershipPaths.forEach((p) => parts.push(`- ${p}`));
@@ -4,11 +4,14 @@ import {
4
4
  } from "./chunk-5CFGPXQ3.js";
5
5
  import {
6
6
  ArchitectAgent
7
- } from "./chunk-2NSWZDP7.js";
7
+ } from "./chunk-5BYCJAFM.js";
8
8
  import {
9
9
  AnthropicClient,
10
10
  getDefaultModel
11
11
  } from "./chunk-HJARQDQR.js";
12
+ import {
13
+ createAuthedSupabaseClient
14
+ } from "./chunk-Q3GIFHIQ.js";
12
15
  import {
13
16
  ArchitectureParser
14
17
  } from "./chunk-5EVHUDQX.js";
@@ -27,10 +30,9 @@ import {
27
30
  // src/cli/plan.ts
28
31
  import chalk from "chalk";
29
32
  import { existsSync } from "fs";
30
- import { readFile, writeFile, mkdir } from "fs/promises";
33
+ import { readFile, writeFile, mkdir, stat } from "fs/promises";
31
34
  import { join } from "path";
32
35
  import { createInterface } from "readline";
33
- import { createClient } from "@supabase/supabase-js";
34
36
 
35
37
  // src/agents/sentinel.ts
36
38
  var SYSTEM_PROMPT = `You are the Sentinel, a paranoid and skeptical code reviewer responsible for finding issues in implementation plans.
@@ -125,6 +127,37 @@ var SentinelAgent = class {
125
127
  parts.push("**Acceptance Criteria:**");
126
128
  atom.acceptanceCriteria.forEach((ac, i) => parts.push(`${i + 1}. ${ac}`));
127
129
  parts.push("");
130
+ const contextMeta = atom.context;
131
+ const referencedFiles = contextMeta?.["referencedFiles"] ?? [];
132
+ const missingFiles = contextMeta?.["missingFiles"] ?? [];
133
+ const requirements = contextMeta?.["requirements"] ?? [];
134
+ const fileSummaries = contextMeta?.["fileSummaries"] ?? [];
135
+ if (referencedFiles.length > 0 || requirements.length > 0) {
136
+ parts.push("# Referenced Inputs");
137
+ if (requirements.length > 0) {
138
+ parts.push("**User Requirements:**");
139
+ requirements.forEach((req, i) => parts.push(`${i + 1}. ${req}`));
140
+ parts.push("");
141
+ }
142
+ if (referencedFiles.length > 0) {
143
+ parts.push("**Referenced Files:**");
144
+ referencedFiles.forEach((ref) => parts.push(`- ${ref}`));
145
+ parts.push("");
146
+ }
147
+ if (missingFiles.length > 0) {
148
+ parts.push("**Missing Files (plan must acknowledge gaps):**");
149
+ missingFiles.forEach((ref) => parts.push(`- ${ref}`));
150
+ parts.push("");
151
+ }
152
+ if (fileSummaries.length > 0) {
153
+ parts.push("**File Summaries:**");
154
+ for (const summary of fileSummaries) {
155
+ parts.push(`- ${summary.path}`);
156
+ parts.push(summary.summary);
157
+ parts.push("");
158
+ }
159
+ }
160
+ }
128
161
  parts.push("# Implementation Plan to Validate");
129
162
  parts.push("");
130
163
  parts.push("**Steps:**");
@@ -770,9 +803,63 @@ async function plan(description, options) {
770
803
  }
771
804
  process.exit(1);
772
805
  }
806
+ const requirements = extractNumberedRequirements(description);
807
+ const references = extractReferencedFiles(description);
808
+ const { foundFiles, missingFiles, fileSummaries } = await loadReferencedFileSummaries(references);
809
+ if (references.length > 0) {
810
+ console.log(chalk.dim("\nReferenced inputs detected:"));
811
+ for (const ref of references) {
812
+ const status = foundFiles.includes(ref) ? chalk.green("\u2713") : chalk.yellow("!");
813
+ console.log(` ${status} ${ref}`);
814
+ }
815
+ if (missingFiles.length > 0) {
816
+ console.log(chalk.yellow("\nMissing referenced files:"));
817
+ for (const missing of missingFiles) {
818
+ console.log(chalk.yellow(` - ${missing}`));
819
+ }
820
+ console.log(chalk.dim("\nHow would you like to proceed?"));
821
+ console.log(chalk.dim(" 1) Cancel planning and add the missing files"));
822
+ console.log(chalk.dim(" 2) Continue and mark missing files as required"));
823
+ console.log(chalk.dim(" 3) Continue with default placeholders"));
824
+ const proceedChoice = await prompt.ask("Choose 1/2/3 (default: 1): ");
825
+ const choice = proceedChoice.trim() || "1";
826
+ if (choice === "1") {
827
+ console.log(chalk.dim("Planning cancelled."));
828
+ return;
829
+ }
830
+ if (choice === "2") {
831
+ missingFiles.forEach((file) => requirements.push(`Missing input required: ${file}`));
832
+ }
833
+ if (choice === "3") {
834
+ missingFiles.forEach((file) => requirements.push(`Use default placeholder for missing input: ${file}`));
835
+ }
836
+ }
837
+ }
838
+ const deliverableTarget = await promptForDeliverableTarget(
839
+ prompt,
840
+ requirements,
841
+ references
842
+ );
843
+ if (deliverableTarget) {
844
+ requirements.push(`Deliverables saved to: ${deliverableTarget}`);
845
+ }
846
+ if (requirements.length > 0) {
847
+ console.log(chalk.dim("\nDetected requirements:"));
848
+ requirements.forEach((req, i) => console.log(` ${i + 1}. ${req}`));
849
+ const confirm = await prompt.ask("\nUse these as acceptance criteria? (Y/n): ");
850
+ if (confirm.toLowerCase() === "n") {
851
+ requirements.length = 0;
852
+ }
853
+ }
773
854
  console.log(chalk.dim("Creating atom from description..."));
774
- const atomInput = parseAtomDescription(description, options);
775
- const atom = createAtom(atomInput);
855
+ const atomInput = parseAtomDescription(description, options, requirements);
856
+ const atom = createAtom(atomInput, {
857
+ referencedFiles: references,
858
+ fileSummaries,
859
+ missingFiles,
860
+ requirements,
861
+ deliverableTarget
862
+ });
776
863
  const validation = validateAtom(atom);
777
864
  if (!validation.valid) {
778
865
  console.error(chalk.red("Invalid atom:"));
@@ -806,12 +893,15 @@ Atom saved: ${atom.externalId}`));
806
893
  console.log(chalk.dim("Architect will generate a plan, Sentinel will validate it.\n"));
807
894
  const config = await loadConfig();
808
895
  let billingContext;
809
- if (config.userId) {
810
- const supabase = createClient(SUPABASE_URL, SUPABASE_ANON_KEY);
811
- billingContext = {
812
- userId: config.userId,
813
- supabase
814
- };
896
+ if (config.userId && config.accessToken) {
897
+ const profileId = await resolveProfileId(config.userId, config.accessToken);
898
+ if (profileId) {
899
+ const supabase = createAuthedSupabaseClient(SUPABASE_URL, SUPABASE_ANON_KEY, config.accessToken);
900
+ billingContext = {
901
+ userId: profileId,
902
+ supabase
903
+ };
904
+ }
815
905
  }
816
906
  const planner = billingContext ? new TrackedAdversarialPlanner({ apiKey, billing: billingContext }) : new AdversarialPlanner({ apiKey });
817
907
  if (billingContext && planner instanceof TrackedAdversarialPlanner) {
@@ -882,13 +972,16 @@ Next steps:`));
882
972
  prompt.close();
883
973
  }
884
974
  }
885
- function parseAtomDescription(description, options) {
975
+ function parseAtomDescription(description, options, extractedCriteria = []) {
976
+ const title = deriveTitle(description);
886
977
  const parts = description.split(" - ");
887
- const title = parts[0]?.trim() ?? description;
888
978
  let acceptanceCriteria = [];
889
979
  if (parts.length > 1) {
890
980
  acceptanceCriteria = (parts[1] ?? "").split(",").map((ac) => ac.trim());
891
981
  }
982
+ if (acceptanceCriteria.length === 0 && extractedCriteria.length > 0) {
983
+ acceptanceCriteria = [...extractedCriteria];
984
+ }
892
985
  if (acceptanceCriteria.length === 0) {
893
986
  acceptanceCriteria = ["Feature implemented as described", "Typecheck passes", "Tests pass"];
894
987
  }
@@ -901,6 +994,129 @@ function parseAtomDescription(description, options) {
901
994
  tags
902
995
  };
903
996
  }
997
+ function deriveTitle(description) {
998
+ const dashIndex = description.indexOf(" - ");
999
+ if (dashIndex > 0) {
1000
+ return description.slice(0, dashIndex).trim();
1001
+ }
1002
+ const bracketIndex = description.indexOf("[1]");
1003
+ if (bracketIndex > 0) {
1004
+ return description.slice(0, bracketIndex).trim();
1005
+ }
1006
+ const line = description.split("\n")[0] ?? description;
1007
+ const trimmed = line.trim();
1008
+ return trimmed.length > 0 ? trimmed : description.trim();
1009
+ }
1010
+ function extractNumberedRequirements(description) {
1011
+ const requirements = [];
1012
+ const bracketPattern = /\[\s*(\d+)\s*\]\s*([^\[]+)/g;
1013
+ let match;
1014
+ while ((match = bracketPattern.exec(description)) !== null) {
1015
+ const text = match[2]?.trim();
1016
+ if (text) {
1017
+ requirements.push(text.replace(/\s+/g, " "));
1018
+ }
1019
+ }
1020
+ if (requirements.length > 0) {
1021
+ return requirements;
1022
+ }
1023
+ const lines = description.split("\n");
1024
+ for (const line of lines) {
1025
+ const listMatch = line.match(/^\s*\d+[\)\.]\s*(.+)$/);
1026
+ if (listMatch?.[1]) {
1027
+ requirements.push(listMatch[1].trim());
1028
+ }
1029
+ }
1030
+ return requirements;
1031
+ }
1032
+ function extractReferencedFiles(description) {
1033
+ const references = /* @__PURE__ */ new Set();
1034
+ const barePattern = /\b[\w./-]+\.(md|txt|json|yaml|yml|png|jpg|jpeg|gif|svg|pdf)\b/gi;
1035
+ const quotedPattern = /"([^"]+\.(?:md|txt|json|yaml|yml|png|jpg|jpeg|gif|svg|pdf))"/gi;
1036
+ let match;
1037
+ while ((match = quotedPattern.exec(description)) !== null) {
1038
+ if (match[1]) {
1039
+ references.add(match[1]);
1040
+ }
1041
+ }
1042
+ while ((match = barePattern.exec(description)) !== null) {
1043
+ if (match[0]) {
1044
+ references.add(match[0].replace(/["'`,]/g, "").trim());
1045
+ }
1046
+ }
1047
+ return Array.from(references).filter((ref) => ref.length > 0);
1048
+ }
1049
+ async function loadReferencedFileSummaries(references) {
1050
+ const foundFiles = [];
1051
+ const missingFiles = [];
1052
+ const fileSummaries = [];
1053
+ for (const ref of references) {
1054
+ const normalized = ref.replace(/^\.?\//, "");
1055
+ const absolute = join(process.cwd(), normalized);
1056
+ if (!existsSync(absolute)) {
1057
+ missingFiles.push(ref);
1058
+ continue;
1059
+ }
1060
+ foundFiles.push(ref);
1061
+ const isImage = /\.(png|jpg|jpeg|gif|svg)$/i.test(ref);
1062
+ if (isImage) {
1063
+ try {
1064
+ const fileStat = await stat(absolute);
1065
+ fileSummaries.push({
1066
+ path: ref,
1067
+ summary: `Image file (${fileStat.size} bytes). Use as visual style reference.`
1068
+ });
1069
+ } catch {
1070
+ fileSummaries.push({
1071
+ path: ref,
1072
+ summary: "Image file present. Use as visual style reference."
1073
+ });
1074
+ }
1075
+ continue;
1076
+ }
1077
+ try {
1078
+ const content = await readFile(absolute, "utf-8");
1079
+ const snippet = content.slice(0, 2e3);
1080
+ fileSummaries.push({
1081
+ path: ref,
1082
+ summary: snippet + (content.length > 2e3 ? "\n... [truncated]" : "")
1083
+ });
1084
+ } catch {
1085
+ fileSummaries.push({
1086
+ path: ref,
1087
+ summary: "File exists but could not be read."
1088
+ });
1089
+ }
1090
+ }
1091
+ return { foundFiles, missingFiles, fileSummaries };
1092
+ }
1093
+ async function promptForDeliverableTarget(prompt, requirements, references) {
1094
+ const mentionsResearch = requirements.some((req) => req.toLowerCase().includes("research"));
1095
+ const defaultTarget = references.find((ref) => ref.toLowerCase().endsWith(".md"));
1096
+ if (!mentionsResearch && !defaultTarget) {
1097
+ return null;
1098
+ }
1099
+ console.log(chalk.dim("\nWhere should the deliverables be written?"));
1100
+ if (defaultTarget) {
1101
+ console.log(chalk.dim(`Press Enter to use ${defaultTarget}`));
1102
+ }
1103
+ const answer = await prompt.ask("Target file or folder (leave blank to skip): ");
1104
+ const trimmed = answer.trim();
1105
+ if (trimmed.length === 0) {
1106
+ return defaultTarget ?? null;
1107
+ }
1108
+ return trimmed;
1109
+ }
1110
+ async function resolveProfileId(authId, accessToken) {
1111
+ try {
1112
+ const supabase = createAuthedSupabaseClient(SUPABASE_URL, SUPABASE_ANON_KEY, accessToken);
1113
+ const { data, error } = await supabase.from("user_profiles").select("id").eq("auth_id", authId).single();
1114
+ if (error || !data?.id) return null;
1115
+ return data.id;
1116
+ } catch {
1117
+ return null;
1118
+ }
1119
+ }
904
1120
  function displayPlan(plan2) {
905
1121
  console.log(chalk.bold("\n\u{1F4DD} Implementation Plan"));
906
1122
  console.log(chalk.dim("\u2500".repeat(40)));
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  listLocalAtoms,
8
8
  loadAtom
9
- } from "./chunk-KHOATOJY.js";
9
+ } from "./chunk-ESSNYHC7.js";
10
10
  import {
11
11
  loadConfig
12
12
  } from "./chunk-SVU7MLG6.js";
@@ -3,13 +3,10 @@ import {
3
3
  getGitRemoteUrl,
4
4
  queueCloudExecution
5
5
  } from "./chunk-EBHHIUCB.js";
6
- import {
7
- createAuthedSupabaseClient
8
- } from "./chunk-Q3GIFHIQ.js";
9
6
  import {
10
7
  UsageRecorder,
11
8
  loadAtom
12
- } from "./chunk-KHOATOJY.js";
9
+ } from "./chunk-ESSNYHC7.js";
13
10
  import {
14
11
  transitionAtom
15
12
  } from "./chunk-5CFGPXQ3.js";
@@ -17,6 +14,9 @@ import {
17
14
  AnthropicClient,
18
15
  getDefaultModel
19
16
  } from "./chunk-HJARQDQR.js";
17
+ import {
18
+ createAuthedSupabaseClient
19
+ } from "./chunk-Q3GIFHIQ.js";
20
20
  import {
21
21
  ArchitectureParser
22
22
  } from "./chunk-5EVHUDQX.js";
@@ -4793,7 +4793,7 @@ function createPrompt() {
4793
4793
  }
4794
4794
  async function execute(atomId, options) {
4795
4795
  if (options.parallel && options.parallel.length > 0) {
4796
- const { parallelExecute } = await import("./parallel-NRYSWMPN.js");
4796
+ const { parallelExecute } = await import("./parallel-U3COBCHB.js");
4797
4797
  const allAtomIds = [atomId, ...options.parallel];
4798
4798
  await parallelExecute(allAtomIds, { skipGates: options.skipGates === true });
4799
4799
  return;
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-3ASILTFB.js";
4
4
  import {
5
5
  ArchitectAgent
6
- } from "./chunk-2NSWZDP7.js";
6
+ } from "./chunk-5BYCJAFM.js";
7
7
  import {
8
8
  loadConfig
9
9
  } from "./chunk-SVU7MLG6.js";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listLocalAtoms
3
- } from "./chunk-KHOATOJY.js";
3
+ } from "./chunk-ESSNYHC7.js";
4
4
 
5
5
  // src/cli/list.ts
6
6
  import chalk from "chalk";
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  execute
3
- } from "./chunk-REMLC4M7.js";
3
+ } from "./chunk-MRRA3QDP.js";
4
4
  import "./chunk-EBHHIUCB.js";
5
- import "./chunk-Q3GIFHIQ.js";
6
- import "./chunk-KHOATOJY.js";
5
+ import "./chunk-ESSNYHC7.js";
7
6
  import "./chunk-5CFGPXQ3.js";
8
- import "./chunk-2NSWZDP7.js";
7
+ import "./chunk-5BYCJAFM.js";
9
8
  import "./chunk-HJARQDQR.js";
9
+ import "./chunk-Q3GIFHIQ.js";
10
10
  import "./chunk-5EVHUDQX.js";
11
11
  import "./chunk-UFR2LX6G.js";
12
12
  import "./chunk-TFSHS7EN.js";
@@ -4,9 +4,9 @@ import {
4
4
  geoFaq,
5
5
  geoIdentity,
6
6
  geoSchema
7
- } from "./chunk-UD45ZLV3.js";
7
+ } from "./chunk-OAHFRSDS.js";
8
8
  import "./chunk-3ASILTFB.js";
9
- import "./chunk-2NSWZDP7.js";
9
+ import "./chunk-5BYCJAFM.js";
10
10
  import "./chunk-HJARQDQR.js";
11
11
  import "./chunk-UFR2LX6G.js";
12
12
  import "./chunk-SVU7MLG6.js";
package/dist/index.js CHANGED
@@ -4,10 +4,10 @@ import {
4
4
  } from "./chunk-JF7JCK6H.js";
5
5
  import {
6
6
  createGeoCommand
7
- } from "./chunk-UD45ZLV3.js";
7
+ } from "./chunk-OAHFRSDS.js";
8
8
  import {
9
9
  bugReport
10
- } from "./chunk-VF2OTDMS.js";
10
+ } from "./chunk-2BCITFWP.js";
11
11
  import {
12
12
  reviewAnalyze,
13
13
  reviewExport,
@@ -46,32 +46,32 @@ import {
46
46
  parallelRunWaves,
47
47
  parallelSchedule,
48
48
  parallelStatus
49
- } from "./chunk-YFG2RPDU.js";
49
+ } from "./chunk-ICSHS6BW.js";
50
50
  import {
51
51
  DependencyParser,
52
52
  EnvironmentConfigLoader,
53
53
  EnvironmentValidator,
54
54
  execute
55
- } from "./chunk-REMLC4M7.js";
55
+ } from "./chunk-MRRA3QDP.js";
56
56
  import {
57
57
  cloudCancel,
58
58
  cloudLogs,
59
59
  cloudStatus
60
60
  } from "./chunk-EBHHIUCB.js";
61
- import {
62
- createAuthedSupabaseClient
63
- } from "./chunk-Q3GIFHIQ.js";
64
61
  import {
65
62
  list
66
- } from "./chunk-MDZ73SIL.js";
63
+ } from "./chunk-YFCC6QEY.js";
67
64
  import {
68
65
  listLocalAtoms,
69
66
  loadAtom,
70
67
  plan
71
- } from "./chunk-KHOATOJY.js";
68
+ } from "./chunk-ESSNYHC7.js";
72
69
  import "./chunk-5CFGPXQ3.js";
73
- import "./chunk-2NSWZDP7.js";
70
+ import "./chunk-5BYCJAFM.js";
74
71
  import "./chunk-HJARQDQR.js";
72
+ import {
73
+ createAuthedSupabaseClient
74
+ } from "./chunk-Q3GIFHIQ.js";
75
75
  import {
76
76
  ArchitectureParser
77
77
  } from "./chunk-5EVHUDQX.js";
@@ -3127,7 +3127,7 @@ async function handleNewProject(cwd, _state) {
3127
3127
  }
3128
3128
  if (intent.mode === "ad_hoc" && intent.confidence >= 0.7) {
3129
3129
  console.log(chalk6.dim("\n> Got it! Creating a task for this...\n"));
3130
- const { plan: plan2 } = await import("./plan-YFIE43MP.js");
3130
+ const { plan: plan2 } = await import("./plan-4RIHWWZG.js");
3131
3131
  await plan2(initialResponse, {});
3132
3132
  return;
3133
3133
  }
@@ -3151,7 +3151,7 @@ async function handleNewProject(cwd, _state) {
3151
3151
  break;
3152
3152
  case "2":
3153
3153
  console.log(chalk6.dim("\n> Creating a task for this...\n"));
3154
- const { plan: plan2 } = await import("./plan-YFIE43MP.js");
3154
+ const { plan: plan2 } = await import("./plan-4RIHWWZG.js");
3155
3155
  await plan2(initialResponse, {});
3156
3156
  break;
3157
3157
  case "3":
@@ -3181,7 +3181,7 @@ async function showNewProjectMenu(cwd) {
3181
3181
  case "3": {
3182
3182
  const description = await prompt("Describe what you want to do");
3183
3183
  if (description.trim()) {
3184
- const { plan: plan2 } = await import("./plan-YFIE43MP.js");
3184
+ const { plan: plan2 } = await import("./plan-4RIHWWZG.js");
3185
3185
  await plan2(description, {});
3186
3186
  }
3187
3187
  break;
@@ -3247,7 +3247,7 @@ async function runExploreFlow(cwd) {
3247
3247
  case "1": {
3248
3248
  const description = await prompt("Describe what you want to do");
3249
3249
  if (description.trim()) {
3250
- const { plan: plan2 } = await import("./plan-YFIE43MP.js");
3250
+ const { plan: plan2 } = await import("./plan-4RIHWWZG.js");
3251
3251
  await plan2(description, {});
3252
3252
  }
3253
3253
  break;
@@ -3506,7 +3506,7 @@ ${state.forbiddenPatterns?.length ? `- **Forbidden patterns:** ${state.forbidden
3506
3506
  if (continueChoice) {
3507
3507
  const description = await prompt("Describe what you want to build first");
3508
3508
  if (description.trim()) {
3509
- const { plan: plan2 } = await import("./plan-YFIE43MP.js");
3509
+ const { plan: plan2 } = await import("./plan-4RIHWWZG.js");
3510
3510
  await plan2(description, {});
3511
3511
  }
3512
3512
  }
@@ -3560,7 +3560,7 @@ async function handleAdaptExisting(cwd, state) {
3560
3560
  }
3561
3561
  if (intent.mode === "ad_hoc" && intent.confidence >= 0.7) {
3562
3562
  console.log(chalk6.dim("\n> Got it! Creating a task for this...\n"));
3563
- const { plan: plan2 } = await import("./plan-YFIE43MP.js");
3563
+ const { plan: plan2 } = await import("./plan-4RIHWWZG.js");
3564
3564
  await plan2(response, {});
3565
3565
  return;
3566
3566
  }
@@ -3591,7 +3591,7 @@ async function showAdaptExistingMenu(cwd, state) {
3591
3591
  case "2": {
3592
3592
  const description = await prompt("Describe what you want to do");
3593
3593
  if (description.trim()) {
3594
- const { plan: plan2 } = await import("./plan-YFIE43MP.js");
3594
+ const { plan: plan2 } = await import("./plan-4RIHWWZG.js");
3595
3595
  await plan2(description, {});
3596
3596
  }
3597
3597
  break;
@@ -3759,18 +3759,18 @@ async function showReviewProgress(cwd) {
3759
3759
  }
3760
3760
  }
3761
3761
  async function planTask() {
3762
- const { plan: plan2 } = await import("./plan-YFIE43MP.js");
3762
+ const { plan: plan2 } = await import("./plan-4RIHWWZG.js");
3763
3763
  const description = await prompt("Describe what you want to build");
3764
3764
  if (description.trim()) {
3765
3765
  await plan2(description, {});
3766
3766
  }
3767
3767
  }
3768
3768
  async function listAtoms() {
3769
- const { list: list2 } = await import("./list-ZSSROGZA.js");
3769
+ const { list: list2 } = await import("./list-BJCKDRG4.js");
3770
3770
  await list2({});
3771
3771
  }
3772
3772
  async function executeNext() {
3773
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-YFIE43MP.js");
3773
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-4RIHWWZG.js");
3774
3774
  const { analyzeProject, getComplexityDescription, getModeDescription } = await import("./orchestration-HIF3KP25.js");
3775
3775
  const { loadExecutionPreferences } = await import("./preferences-I6WETXOI.js");
3776
3776
  const cwd = process.cwd();
@@ -3841,11 +3841,11 @@ async function executeNext() {
3841
3841
  }
3842
3842
  }
3843
3843
  if (selectedMode === "parallel-cloud") {
3844
- const { parallelExecuteCloud: parallelExecuteCloud2 } = await import("./parallel-NRYSWMPN.js");
3844
+ const { parallelExecuteCloud: parallelExecuteCloud2 } = await import("./parallel-U3COBCHB.js");
3845
3845
  await parallelExecuteCloud2(runIds);
3846
3846
  return;
3847
3847
  }
3848
- const { parallelExecute } = await import("./parallel-NRYSWMPN.js");
3848
+ const { parallelExecute } = await import("./parallel-U3COBCHB.js");
3849
3849
  await parallelExecute(runIds);
3850
3850
  return;
3851
3851
  }
@@ -3853,14 +3853,14 @@ async function executeNext() {
3853
3853
  const atomId = await prompt("Enter atom ID to execute (or press Enter for first pending)");
3854
3854
  const targetId = atomId.trim() || pendingAtoms[0]?.id;
3855
3855
  if (targetId) {
3856
- const { execute: execute2 } = await import("./execute-26SZAYZM.js");
3856
+ const { execute: execute2 } = await import("./execute-OTW55P2Q.js");
3857
3857
  await execute2(targetId, {});
3858
3858
  } else {
3859
3859
  console.log(chalk6.yellow("No atom to execute."));
3860
3860
  }
3861
3861
  }
3862
3862
  async function reportBug() {
3863
- const { bugReport: bugReport2 } = await import("./bug-5WRBCFRT.js");
3863
+ const { bugReport: bugReport2 } = await import("./bug-DCFTT2AF.js");
3864
3864
  const title = await prompt("Bug title");
3865
3865
  if (title.trim()) {
3866
3866
  await bugReport2(title, {});
@@ -3986,7 +3986,7 @@ async function promptWithCommands(question) {
3986
3986
  async function runWebChecksSuite() {
3987
3987
  const { a11yCheck: a11yCheck2 } = await import("./a11y-O35BAA25.js");
3988
3988
  const { seoCheck } = await import("./seo-PMI42KRZ.js");
3989
- const { geoAudit } = await import("./geo-KV4IRGKN.js");
3989
+ const { geoAudit } = await import("./geo-GEWH777F.js");
3990
3990
  console.log(chalk6.blue("\nRunning web checks (A11y, SEO, GEO)...\n"));
3991
3991
  await a11yCheck2({});
3992
3992
  await seoCheck({});
@@ -4026,17 +4026,17 @@ async function showWebChecksMenu() {
4026
4026
  break;
4027
4027
  }
4028
4028
  case "4": {
4029
- const { geoAudit } = await import("./geo-KV4IRGKN.js");
4029
+ const { geoAudit } = await import("./geo-GEWH777F.js");
4030
4030
  await geoAudit();
4031
4031
  break;
4032
4032
  }
4033
4033
  case "5": {
4034
- const { geoIdentity } = await import("./geo-KV4IRGKN.js");
4034
+ const { geoIdentity } = await import("./geo-GEWH777F.js");
4035
4035
  await geoIdentity();
4036
4036
  break;
4037
4037
  }
4038
4038
  case "6": {
4039
- const { geoSchema } = await import("./geo-KV4IRGKN.js");
4039
+ const { geoSchema } = await import("./geo-GEWH777F.js");
4040
4040
  await geoSchema({});
4041
4041
  break;
4042
4042
  }
@@ -1,10 +1,11 @@
1
1
  import {
2
2
  list
3
- } from "./chunk-MDZ73SIL.js";
4
- import "./chunk-KHOATOJY.js";
3
+ } from "./chunk-YFCC6QEY.js";
4
+ import "./chunk-ESSNYHC7.js";
5
5
  import "./chunk-5CFGPXQ3.js";
6
- import "./chunk-2NSWZDP7.js";
6
+ import "./chunk-5BYCJAFM.js";
7
7
  import "./chunk-HJARQDQR.js";
8
+ import "./chunk-Q3GIFHIQ.js";
8
9
  import "./chunk-5EVHUDQX.js";
9
10
  import "./chunk-UFR2LX6G.js";
10
11
  import "./chunk-TFSHS7EN.js";
@@ -6,13 +6,13 @@ import {
6
6
  parallelRunWaves,
7
7
  parallelSchedule,
8
8
  parallelStatus
9
- } from "./chunk-YFG2RPDU.js";
9
+ } from "./chunk-ICSHS6BW.js";
10
10
  import "./chunk-EBHHIUCB.js";
11
- import "./chunk-Q3GIFHIQ.js";
12
- import "./chunk-KHOATOJY.js";
11
+ import "./chunk-ESSNYHC7.js";
13
12
  import "./chunk-5CFGPXQ3.js";
14
- import "./chunk-2NSWZDP7.js";
13
+ import "./chunk-5BYCJAFM.js";
15
14
  import "./chunk-HJARQDQR.js";
15
+ import "./chunk-Q3GIFHIQ.js";
16
16
  import "./chunk-5EVHUDQX.js";
17
17
  import "./chunk-UFR2LX6G.js";
18
18
  import "./chunk-TFSHS7EN.js";
@@ -3,10 +3,11 @@ import {
3
3
  loadAtom,
4
4
  parseAtomDescription,
5
5
  plan
6
- } from "./chunk-KHOATOJY.js";
6
+ } from "./chunk-ESSNYHC7.js";
7
7
  import "./chunk-5CFGPXQ3.js";
8
- import "./chunk-2NSWZDP7.js";
8
+ import "./chunk-5BYCJAFM.js";
9
9
  import "./chunk-HJARQDQR.js";
10
+ import "./chunk-Q3GIFHIQ.js";
10
11
  import "./chunk-5EVHUDQX.js";
11
12
  import "./chunk-UFR2LX6G.js";
12
13
  import "./chunk-TFSHS7EN.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archondev",
3
- "version": "2.18.5",
3
+ "version": "2.18.7",
4
4
  "description": "Local-first AI-powered development governance system",
5
5
  "main": "dist/index.js",
6
6
  "bin": {