archondev 2.8.0 → 2.8.2

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.
package/README.md CHANGED
@@ -54,7 +54,8 @@ Copy governance files into any project. Works with your existing AI tools: **Cur
54
54
  | `archon` | Interactive mode — just run and follow prompts |
55
55
  | `archon init` | Initialize in your project |
56
56
  | `archon login` | Authenticate with ArchonDev (tier selection on first login) |
57
- | `archon pricing` | View and switch pricing tiers (Free, BYOK, Credits) |
57
+ | `archon upgrade` | Upgrade to BYOK (free unlimited) or Managed plan |
58
+ | `archon status` | Show login status and current tier |
58
59
  | `archon plan <description>` | Create a work item with AI planning (extracts and confirms multi-item requests) |
59
60
  | `archon execute <atom-id>` | Execute with quality gates |
60
61
  | `archon list` | List all work items |
@@ -102,12 +103,12 @@ Copy governance files into any project. Works with your existing AI tools: **Cur
102
103
 
103
104
  | Tier | Cost | What You Get |
104
105
  |------|------|--------------|
105
- | **Free** | $0 | Ultra-cheap models (GPT-5-nano, GPT-4.1-nano, Gemini 2.5 Flash-Lite) — $0 cost to us |
106
- | **Credits** | Pay as you go | All models, 10% service fee, deposit any amount |
107
- | **BYOK** (Bring Your Own Key) | $0 | Use your own API keys, unlimited usage |
106
+ | **Free** | $0 | Ultra-cheap models (GPT-5-nano, GPT-4.1-nano, Gemini 2.5 Flash-Lite) — limited usage |
107
+ | **BYOK** (Bring Your Own Key) | **$0** | Use your own API keys, **unlimited usage**, all models |
108
+ | **Managed Plan** | 10% fee | All models, we handle billing, no API key setup |
108
109
  | **Claude Subscription** *(coming soon)* | Your existing sub | Use Claude Pro/Max subscription instead of API keys |
109
110
 
110
- No subscriptions. No commitments. Start free.
111
+ No subscriptions. No commitments. Start free, upgrade anytime with `archon upgrade`.
111
112
 
112
113
  ### Claude Pro/Max Subscription Support (Coming Soon)
113
114
 
@@ -136,23 +137,33 @@ $ archon
136
137
  ArchonDev - AI-Powered Development Governance
137
138
  ────────────────────────────────────────────────
138
139
 
139
- Welcome to ArchonDev!
140
- Let's get you set up. First, we need to create your account.
140
+ Logged in as: you@example.com
141
+ Tier: Free (basic models)
141
142
 
142
- [Opens browser for GitHub/Google login]
143
-
144
- How would you like to use ArchonDev?
145
-
146
- 1) Free (basic models)
147
- 2) BYOK (Bring Your Own Key) - use your API keys
148
- 3) Credits (pay-as-you-go)
143
+ ⚠️ FREE TIER: Limited usage. Upgrade options:
144
+ • BYOK (FREE) - Unlimited usage with your own API keys
145
+ Managed Plan - Just 10% fee on AI costs, zero setup
146
+ → Run 'archon upgrade' to unlock unlimited access
149
147
 
150
148
  → What kind of project are you building?
151
149
  [AI asks natural follow-up questions based on your answers]
150
+ (Type "upgrade" or "help" anytime)
152
151
 
153
152
  ✓ Project initialized!
154
153
  ```
155
154
 
155
+ ### In-Session Commands
156
+
157
+ Type these anytime during interactive prompts:
158
+
159
+ | Command | Description |
160
+ |---------|-------------|
161
+ | `upgrade` | Open tier upgrade menu |
162
+ | `status` | Show login and tier info |
163
+ | `keys` | List configured API keys |
164
+ | `help` | Show available commands |
165
+ | `quit` | Exit ArchonDev |
166
+
156
167
  ## Cloud Execution
157
168
 
158
169
  Run AI agents in the cloud — close your laptop and get a PR when it's done.
@@ -2,10 +2,10 @@ import {
2
2
  login,
3
3
  logout,
4
4
  status
5
- } from "./chunk-IA3ENLBQ.js";
6
- import "./chunk-UG5MAS4X.js";
7
- import "./chunk-Y7DQ5XTU.js";
5
+ } from "./chunk-H42IQKPJ.js";
8
6
  import "./chunk-M4LGRTLC.js";
7
+ import "./chunk-BFN2CKY5.js";
8
+ import "./chunk-SVU7MLG6.js";
9
9
  import "./chunk-QGM4M3NI.js";
10
10
  export {
11
11
  login,
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  bugReport
3
- } from "./chunk-KIZ5ZICU.js";
3
+ } from "./chunk-XDPSTZPO.js";
4
4
  import "./chunk-KAFR3QRD.js";
5
5
  import "./chunk-PQQ6SP4D.js";
6
- import "./chunk-Y7DQ5XTU.js";
6
+ import "./chunk-SVU7MLG6.js";
7
7
  import "./chunk-QGM4M3NI.js";
8
8
  export {
9
9
  bugReport
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadAtom
3
- } from "./chunk-7RBN4OKO.js";
3
+ } from "./chunk-T36R3CJO.js";
4
4
  import {
5
5
  transitionAtom
6
6
  } from "./chunk-KAFR3QRD.js";
@@ -8,14 +8,14 @@ import {
8
8
  AnthropicClient,
9
9
  getDefaultModel
10
10
  } from "./chunk-PQQ6SP4D.js";
11
- import {
12
- getAuthToken,
13
- loadConfig
14
- } from "./chunk-Y7DQ5XTU.js";
15
11
  import {
16
12
  SUPABASE_ANON_KEY,
17
13
  SUPABASE_URL
18
14
  } from "./chunk-M4LGRTLC.js";
15
+ import {
16
+ getAuthToken,
17
+ loadConfig
18
+ } from "./chunk-SVU7MLG6.js";
19
19
  import {
20
20
  ArchitectureParser
21
21
  } from "./chunk-5EVHUDQX.js";
@@ -4815,7 +4815,7 @@ function createPrompt() {
4815
4815
  }
4816
4816
  async function execute(atomId, options) {
4817
4817
  if (options.parallel && options.parallel.length > 0) {
4818
- const { parallelExecute } = await import("./parallel-BWE6T3SJ.js");
4818
+ const { parallelExecute } = await import("./parallel-OJJK3MZV.js");
4819
4819
  const allAtomIds = [atomId, ...options.parallel];
4820
4820
  await parallelExecute(allAtomIds);
4821
4821
  return;
@@ -5114,7 +5114,7 @@ async function watchCloudExecution(executionId) {
5114
5114
  const pollInterval = 5e3;
5115
5115
  let lastLogCount = 0;
5116
5116
  const poll = async () => {
5117
- const { loadConfig: loadConfig2, getAuthToken: getAuthToken2 } = await import("./config-SU5Y6MKO.js");
5117
+ const { loadConfig: loadConfig2, getAuthToken: getAuthToken2 } = await import("./config-BBQW726O.js");
5118
5118
  const { createClient: createClient2 } = await import("@supabase/supabase-js");
5119
5119
  const { SUPABASE_URL: SUPABASE_URL2, SUPABASE_ANON_KEY: SUPABASE_ANON_KEY2 } = await import("./constants-AHP5F7HW.js");
5120
5120
  const config = await loadConfig2();
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  listLocalAtoms,
3
3
  loadAtom
4
- } from "./chunk-7RBN4OKO.js";
4
+ } from "./chunk-T36R3CJO.js";
5
5
 
6
6
  // src/cli/parallel.ts
7
7
  import chalk from "chalk";
@@ -2,10 +2,7 @@ import {
2
2
  getApiUrl,
3
3
  loadConfig,
4
4
  saveConfig
5
- } from "./chunk-Y7DQ5XTU.js";
6
- import {
7
- API_URL
8
- } from "./chunk-M4LGRTLC.js";
5
+ } from "./chunk-SVU7MLG6.js";
9
6
 
10
7
  // src/cli/tier-selection.ts
11
8
  import chalk from "chalk";
@@ -113,12 +110,14 @@ async function handleTierSetup(tier) {
113
110
  async function createCheckoutSession(amountCents) {
114
111
  const spinner = ora("Preparing checkout...").start();
115
112
  try {
116
- const config = await loadConfig();
117
- if (!config.accessToken || !config.userId) {
118
- spinner.fail("Not logged in");
113
+ const { ensureValidSession } = await import("./config-BBQW726O.js");
114
+ const config = await ensureValidSession();
115
+ if (!config || !config.accessToken || !config.userId) {
116
+ spinner.fail("Not logged in. Please run `archon login` first.");
119
117
  return null;
120
118
  }
121
- const response = await fetch(`${API_URL}/api/checkout`, {
119
+ const apiUrl = getApiUrl(config);
120
+ const response = await fetch(`${apiUrl}/api/checkout`, {
122
121
  method: "POST",
123
122
  headers: {
124
123
  "Content-Type": "application/json",
@@ -129,6 +128,10 @@ async function createCheckoutSession(amountCents) {
129
128
  amountCents
130
129
  })
131
130
  });
131
+ if (response.status === 401) {
132
+ spinner.fail("Session expired. Please run `archon login` to re-authenticate.");
133
+ return null;
134
+ }
132
135
  const result = await response.json();
133
136
  if (!response.ok || !result.success) {
134
137
  spinner.fail(result.error?.error || "Failed to create checkout");
@@ -226,9 +229,10 @@ async function showUpgradeMenu() {
226
229
  var showTierSwitchMenu = showUpgradeMenu;
227
230
  async function updateUserTier(tier) {
228
231
  try {
229
- const config = await loadConfig();
230
- if (!config.accessToken) {
231
- return { success: false, error: "Not logged in" };
232
+ const { ensureValidSession } = await import("./config-BBQW726O.js");
233
+ const config = await ensureValidSession();
234
+ if (!config || !config.accessToken) {
235
+ return { success: false, error: "Not logged in. Please run `archon login` first." };
232
236
  }
233
237
  const apiUrl = getApiUrl(config);
234
238
  const response = await fetch(`${apiUrl}/api/preferences`, {
@@ -240,8 +244,11 @@ async function updateUserTier(tier) {
240
244
  body: JSON.stringify({ tier })
241
245
  });
242
246
  if (!response.ok) {
243
- const text = await response.text();
244
- return { success: false, error: text };
247
+ const data = await response.json().catch(() => ({ error: "Unknown error" }));
248
+ if (response.status === 401) {
249
+ return { success: false, error: "Session expired. Please run `archon login` to re-authenticate." };
250
+ }
251
+ return { success: false, error: data.error || `Server error: ${response.status}` };
245
252
  }
246
253
  await saveConfig({ ...config, tier });
247
254
  return { success: true };
@@ -1,17 +1,17 @@
1
+ import {
2
+ SUPABASE_ANON_KEY,
3
+ SUPABASE_URL
4
+ } from "./chunk-M4LGRTLC.js";
1
5
  import {
2
6
  handleTierSetup,
3
7
  promptTierSelection,
4
8
  updateUserTier
5
- } from "./chunk-UG5MAS4X.js";
9
+ } from "./chunk-BFN2CKY5.js";
6
10
  import {
7
11
  clearConfig,
8
12
  loadConfig,
9
13
  saveConfig
10
- } from "./chunk-Y7DQ5XTU.js";
11
- import {
12
- SUPABASE_ANON_KEY,
13
- SUPABASE_URL
14
- } from "./chunk-M4LGRTLC.js";
14
+ } from "./chunk-SVU7MLG6.js";
15
15
 
16
16
  // src/cli/auth.ts
17
17
  import { createClient } from "@supabase/supabase-js";
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  login
3
- } from "./chunk-IA3ENLBQ.js";
3
+ } from "./chunk-H42IQKPJ.js";
4
4
  import {
5
5
  getApiUrl,
6
6
  getAuthToken,
7
7
  loadConfig
8
- } from "./chunk-Y7DQ5XTU.js";
8
+ } from "./chunk-SVU7MLG6.js";
9
9
  import {
10
10
  keyManager
11
11
  } from "./chunk-WH6IKTYF.js";
@@ -782,7 +782,7 @@ async function manageApiKeys() {
782
782
  if (removeIndex >= 0 && removeIndex < providers.length) {
783
783
  const providerToRemove = providers[removeIndex];
784
784
  if (providerToRemove) {
785
- const { removeKey } = await import("./keys-LHIUYDFT.js");
785
+ const { removeKey } = await import("./keys-NH3BWIRA.js");
786
786
  await removeKey(providerToRemove);
787
787
  }
788
788
  }
@@ -790,7 +790,7 @@ async function manageApiKeys() {
790
790
  }
791
791
  const provider = providerMap[choice];
792
792
  if (provider) {
793
- const { addKey } = await import("./keys-LHIUYDFT.js");
793
+ const { addKey } = await import("./keys-NH3BWIRA.js");
794
794
  await addKey(provider);
795
795
  }
796
796
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  listLocalAtoms
3
- } from "./chunk-7RBN4OKO.js";
3
+ } from "./chunk-T36R3CJO.js";
4
4
 
5
5
  // src/cli/list.ts
6
6
  import chalk from "chalk";
@@ -46,18 +46,23 @@ async function isAuthenticated() {
46
46
  if (!config.accessToken) {
47
47
  return false;
48
48
  }
49
- if (config.expiresAt) {
50
- const expiresAt = new Date(config.expiresAt);
51
- const now = /* @__PURE__ */ new Date();
52
- const fiveMinutesFromNow = new Date(now.getTime() + 5 * 60 * 1e3);
53
- if (expiresAt < fiveMinutesFromNow) {
54
- if (config.refreshToken) {
55
- const refreshed = await refreshSession(config);
56
- return refreshed;
57
- }
58
- if (expiresAt < now) {
59
- return false;
60
- }
49
+ if (!config.expiresAt) {
50
+ if (config.refreshToken) {
51
+ const refreshed = await refreshSession(config);
52
+ return refreshed;
53
+ }
54
+ return true;
55
+ }
56
+ const expiresAt = new Date(config.expiresAt);
57
+ const now = /* @__PURE__ */ new Date();
58
+ const fiveMinutesFromNow = new Date(now.getTime() + 5 * 60 * 1e3);
59
+ if (expiresAt < fiveMinutesFromNow) {
60
+ if (config.refreshToken) {
61
+ const refreshed = await refreshSession(config);
62
+ return refreshed;
63
+ }
64
+ if (expiresAt < now) {
65
+ return false;
61
66
  }
62
67
  }
63
68
  return true;
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-PQQ6SP4D.js";
10
10
  import {
11
11
  isAuthenticated
12
- } from "./chunk-Y7DQ5XTU.js";
12
+ } from "./chunk-SVU7MLG6.js";
13
13
  import {
14
14
  ArchitectureParser
15
15
  } from "./chunk-5EVHUDQX.js";
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  loadConfig,
6
6
  saveConfig
7
- } from "./chunk-Y7DQ5XTU.js";
7
+ } from "./chunk-SVU7MLG6.js";
8
8
  import {
9
9
  keyManager
10
10
  } from "./chunk-WH6IKTYF.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-KAFR3QRD.js";
5
5
  import {
6
6
  loadConfig
7
- } from "./chunk-Y7DQ5XTU.js";
7
+ } from "./chunk-SVU7MLG6.js";
8
8
 
9
9
  // src/cli/bug.ts
10
10
  import chalk from "chalk";
@@ -7,7 +7,7 @@ import {
7
7
  isAuthenticated,
8
8
  loadConfig,
9
9
  saveConfig
10
- } from "./chunk-Y7DQ5XTU.js";
10
+ } from "./chunk-SVU7MLG6.js";
11
11
  import "./chunk-QGM4M3NI.js";
12
12
  export {
13
13
  clearConfig,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  execute
3
- } from "./chunk-IYZRHFAI.js";
4
- import "./chunk-7RBN4OKO.js";
3
+ } from "./chunk-AEN5G7A2.js";
4
+ import "./chunk-T36R3CJO.js";
5
5
  import "./chunk-KAFR3QRD.js";
6
6
  import "./chunk-QN65APWL.js";
7
7
  import "./chunk-PQQ6SP4D.js";
8
- import "./chunk-Y7DQ5XTU.js";
9
8
  import "./chunk-M4LGRTLC.js";
9
+ import "./chunk-SVU7MLG6.js";
10
10
  import "./chunk-5EVHUDQX.js";
11
11
  import "./chunk-WH6IKTYF.js";
12
12
  import "./chunk-QGM4M3NI.js";
package/dist/index.js CHANGED
@@ -18,14 +18,14 @@ import {
18
18
  setPreference,
19
19
  showExecutionPreferences,
20
20
  showPreferences
21
- } from "./chunk-ZCWCSRCQ.js";
21
+ } from "./chunk-NLH6DN6S.js";
22
22
  import {
23
23
  parallelClean,
24
24
  parallelMerge,
25
25
  parallelRunWaves,
26
26
  parallelSchedule,
27
27
  parallelStatus
28
- } from "./chunk-UYKPA2DF.js";
28
+ } from "./chunk-AQOEFU3M.js";
29
29
  import {
30
30
  DependencyParser,
31
31
  EnvironmentConfigLoader,
@@ -34,18 +34,18 @@ import {
34
34
  cloudLogs,
35
35
  cloudStatus,
36
36
  execute
37
- } from "./chunk-IYZRHFAI.js";
37
+ } from "./chunk-AEN5G7A2.js";
38
38
  import {
39
39
  list
40
- } from "./chunk-OG4SHBL5.js";
40
+ } from "./chunk-RRKAWXLA.js";
41
41
  import {
42
42
  listLocalAtoms,
43
43
  loadAtom,
44
44
  plan
45
- } from "./chunk-7RBN4OKO.js";
45
+ } from "./chunk-T36R3CJO.js";
46
46
  import {
47
47
  bugReport
48
- } from "./chunk-KIZ5ZICU.js";
48
+ } from "./chunk-XDPSTZPO.js";
49
49
  import {
50
50
  ArchitectAgent
51
51
  } from "./chunk-KAFR3QRD.js";
@@ -54,7 +54,7 @@ import {
54
54
  listKeys,
55
55
  removeKey,
56
56
  setPrimaryKey
57
- } from "./chunk-F6QIFTI3.js";
57
+ } from "./chunk-TSD62F5P.js";
58
58
  import "./chunk-QN65APWL.js";
59
59
  import "./chunk-JP3OY4G2.js";
60
60
  import "./chunk-PQQ6SP4D.js";
@@ -62,22 +62,22 @@ import {
62
62
  login,
63
63
  logout,
64
64
  status
65
- } from "./chunk-IA3ENLBQ.js";
65
+ } from "./chunk-H42IQKPJ.js";
66
+ import {
67
+ API_URL,
68
+ SUPABASE_ANON_KEY,
69
+ SUPABASE_URL
70
+ } from "./chunk-M4LGRTLC.js";
66
71
  import {
67
72
  handleTierSetup,
68
73
  promptTierSelection,
69
74
  updateUserTier
70
- } from "./chunk-UG5MAS4X.js";
75
+ } from "./chunk-BFN2CKY5.js";
71
76
  import {
72
77
  getAuthToken,
73
78
  loadConfig,
74
79
  saveConfig
75
- } from "./chunk-Y7DQ5XTU.js";
76
- import {
77
- API_URL,
78
- SUPABASE_ANON_KEY,
79
- SUPABASE_URL
80
- } from "./chunk-M4LGRTLC.js";
80
+ } from "./chunk-SVU7MLG6.js";
81
81
  import {
82
82
  init,
83
83
  isInitialized
@@ -2841,7 +2841,7 @@ async function handleNewProject(cwd, _state) {
2841
2841
  }
2842
2842
  if (intent.mode === "ad_hoc" && intent.confidence >= 0.7) {
2843
2843
  console.log(chalk5.dim("\n> Got it! Creating a task for this...\n"));
2844
- const { plan: plan2 } = await import("./plan-67BMJFES.js");
2844
+ const { plan: plan2 } = await import("./plan-UZNWCUQI.js");
2845
2845
  await plan2(initialResponse, {});
2846
2846
  return;
2847
2847
  }
@@ -2865,7 +2865,7 @@ async function handleNewProject(cwd, _state) {
2865
2865
  break;
2866
2866
  case "2":
2867
2867
  console.log(chalk5.dim("\n> Creating a task for this...\n"));
2868
- const { plan: plan2 } = await import("./plan-67BMJFES.js");
2868
+ const { plan: plan2 } = await import("./plan-UZNWCUQI.js");
2869
2869
  await plan2(initialResponse, {});
2870
2870
  break;
2871
2871
  case "3":
@@ -2895,7 +2895,7 @@ async function showNewProjectMenu(cwd) {
2895
2895
  case "3": {
2896
2896
  const description = await prompt("Describe what you want to do");
2897
2897
  if (description.trim()) {
2898
- const { plan: plan2 } = await import("./plan-67BMJFES.js");
2898
+ const { plan: plan2 } = await import("./plan-UZNWCUQI.js");
2899
2899
  await plan2(description, {});
2900
2900
  }
2901
2901
  break;
@@ -2908,7 +2908,7 @@ async function showNewProjectMenu(cwd) {
2908
2908
  }
2909
2909
  }
2910
2910
  async function runConversationalInterview(cwd, initialMessage) {
2911
- const { InterviewerAgent, createInterviewerAgent } = await import("./interviewer-7BZBAROX.js");
2911
+ const { InterviewerAgent, createInterviewerAgent } = await import("./interviewer-L2LTPLAN.js");
2912
2912
  const agent = await createInterviewerAgent();
2913
2913
  if (agent && agent.isAvailable()) {
2914
2914
  await runAIInterview(cwd, initialMessage, agent);
@@ -3059,7 +3059,7 @@ ${state.forbiddenPatterns?.length ? `- **Forbidden patterns:** ${state.forbidden
3059
3059
  if (continueChoice) {
3060
3060
  const description = await prompt("Describe what you want to build first");
3061
3061
  if (description.trim()) {
3062
- const { plan: plan2 } = await import("./plan-67BMJFES.js");
3062
+ const { plan: plan2 } = await import("./plan-UZNWCUQI.js");
3063
3063
  await plan2(description, {});
3064
3064
  }
3065
3065
  }
@@ -3245,7 +3245,7 @@ async function showMainMenu() {
3245
3245
  { key: "6", label: "Code Review", action: () => reviewCode() },
3246
3246
  { key: "7", label: "Settings & Preferences", action: () => settingsMenu() },
3247
3247
  { key: "8", label: "Upgrade tier", action: async () => {
3248
- const { showUpgradeMenu } = await import("./tier-selection-LQ7ZOBEK.js");
3248
+ const { showUpgradeMenu } = await import("./tier-selection-274IVLWI.js");
3249
3249
  await showUpgradeMenu();
3250
3250
  await showMainMenu();
3251
3251
  } },
@@ -3284,20 +3284,20 @@ async function showReviewProgress(cwd) {
3284
3284
  }
3285
3285
  }
3286
3286
  async function planTask() {
3287
- const { plan: plan2 } = await import("./plan-67BMJFES.js");
3287
+ const { plan: plan2 } = await import("./plan-UZNWCUQI.js");
3288
3288
  const description = await prompt("Describe what you want to build");
3289
3289
  if (description.trim()) {
3290
3290
  await plan2(description, {});
3291
3291
  }
3292
3292
  }
3293
3293
  async function listAtoms() {
3294
- const { list: list2 } = await import("./list-OYZ2UPXI.js");
3294
+ const { list: list2 } = await import("./list-KBMVPR6D.js");
3295
3295
  await list2({});
3296
3296
  }
3297
3297
  async function executeNext() {
3298
- const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-67BMJFES.js");
3298
+ const { listLocalAtoms: listLocalAtoms2 } = await import("./plan-UZNWCUQI.js");
3299
3299
  const { analyzeProject, getComplexityDescription, getModeDescription } = await import("./orchestration-X6LHSHBJ.js");
3300
- const { loadExecutionPreferences } = await import("./preferences-6J2UVWLQ.js");
3300
+ const { loadExecutionPreferences } = await import("./preferences-AWXFBFKT.js");
3301
3301
  const cwd = process.cwd();
3302
3302
  const atoms = await listLocalAtoms2();
3303
3303
  const pendingAtoms = atoms.filter((a) => a.status === "READY" || a.status === "IN_PROGRESS");
@@ -3330,25 +3330,25 @@ async function executeNext() {
3330
3330
  const atomId = await prompt("Enter atom ID to execute (or press Enter for first pending)");
3331
3331
  const targetId = atomId.trim() || pendingAtoms[0]?.id;
3332
3332
  if (targetId) {
3333
- const { execute: execute2 } = await import("./execute-WRRTXCHG.js");
3333
+ const { execute: execute2 } = await import("./execute-D4IIHTSW.js");
3334
3334
  await execute2(targetId, {});
3335
3335
  } else {
3336
3336
  console.log(chalk5.yellow("No atom to execute."));
3337
3337
  }
3338
3338
  }
3339
3339
  async function reportBug() {
3340
- const { bugReport: bugReport2 } = await import("./bug-H5MPQY5W.js");
3340
+ const { bugReport: bugReport2 } = await import("./bug-7C566W25.js");
3341
3341
  const title = await prompt("Bug title");
3342
3342
  if (title.trim()) {
3343
3343
  await bugReport2(title, {});
3344
3344
  }
3345
3345
  }
3346
3346
  async function viewStatus() {
3347
- const { status: status2 } = await import("./auth-ZWXKMI3Q.js");
3347
+ const { status: status2 } = await import("./auth-FMUYA7AY.js");
3348
3348
  await status2();
3349
3349
  }
3350
3350
  async function settingsMenu() {
3351
- const { interactiveSettings } = await import("./preferences-6J2UVWLQ.js");
3351
+ const { interactiveSettings } = await import("./preferences-AWXFBFKT.js");
3352
3352
  await interactiveSettings();
3353
3353
  await showMainMenu();
3354
3354
  }
@@ -3407,12 +3407,12 @@ async function reviewCode() {
3407
3407
  async function handleInSessionCommand(input) {
3408
3408
  const normalized = input.toLowerCase().trim();
3409
3409
  if (normalized === "upgrade" || normalized === "archon upgrade" || normalized === "pricing" || normalized === "archon pricing") {
3410
- const { showUpgradeMenu } = await import("./tier-selection-LQ7ZOBEK.js");
3410
+ const { showUpgradeMenu } = await import("./tier-selection-274IVLWI.js");
3411
3411
  await showUpgradeMenu();
3412
3412
  return true;
3413
3413
  }
3414
3414
  if (normalized === "status" || normalized === "archon status") {
3415
- const { status: status2 } = await import("./auth-ZWXKMI3Q.js");
3415
+ const { status: status2 } = await import("./auth-FMUYA7AY.js");
3416
3416
  await status2();
3417
3417
  return true;
3418
3418
  }
@@ -3428,7 +3428,7 @@ async function handleInSessionCommand(input) {
3428
3428
  return true;
3429
3429
  }
3430
3430
  if (normalized === "keys" || normalized === "archon keys") {
3431
- const { listKeys: listKeys2 } = await import("./keys-LHIUYDFT.js");
3431
+ const { listKeys: listKeys2 } = await import("./keys-NH3BWIRA.js");
3432
3432
  await listKeys2();
3433
3433
  return true;
3434
3434
  }
@@ -7525,11 +7525,11 @@ program.command("status").description("Show current user and project status").ac
7525
7525
  await status();
7526
7526
  });
7527
7527
  program.command("upgrade").description("Upgrade your tier (BYOK for free unlimited, or Managed plan)").action(async () => {
7528
- const { showUpgradeMenu } = await import("./tier-selection-LQ7ZOBEK.js");
7528
+ const { showUpgradeMenu } = await import("./tier-selection-274IVLWI.js");
7529
7529
  await showUpgradeMenu();
7530
7530
  });
7531
7531
  program.command("pricing", { hidden: true }).action(async () => {
7532
- const { showUpgradeMenu } = await import("./tier-selection-LQ7ZOBEK.js");
7532
+ const { showUpgradeMenu } = await import("./tier-selection-274IVLWI.js");
7533
7533
  await showUpgradeMenu();
7534
7534
  });
7535
7535
  program.command("init").description("Initialize ArchonDev in current project").option("--analyze", "Run enhanced analysis of codebase").option("--no-git", "Skip git initialization").action(async (options) => {
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-PQQ6SP4D.js";
4
4
  import {
5
5
  loadConfig
6
- } from "./chunk-Y7DQ5XTU.js";
6
+ } from "./chunk-SVU7MLG6.js";
7
7
  import "./chunk-QGM4M3NI.js";
8
8
 
9
9
  // src/agents/interviewer.ts
@@ -3,9 +3,9 @@ import {
3
3
  listKeys,
4
4
  removeKey,
5
5
  setPrimaryKey
6
- } from "./chunk-F6QIFTI3.js";
6
+ } from "./chunk-TSD62F5P.js";
7
7
  import "./chunk-QN65APWL.js";
8
- import "./chunk-Y7DQ5XTU.js";
8
+ import "./chunk-SVU7MLG6.js";
9
9
  import "./chunk-WH6IKTYF.js";
10
10
  import "./chunk-QGM4M3NI.js";
11
11
  export {
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  list
3
- } from "./chunk-OG4SHBL5.js";
4
- import "./chunk-7RBN4OKO.js";
3
+ } from "./chunk-RRKAWXLA.js";
4
+ import "./chunk-T36R3CJO.js";
5
5
  import "./chunk-KAFR3QRD.js";
6
6
  import "./chunk-QN65APWL.js";
7
7
  import "./chunk-PQQ6SP4D.js";
8
- import "./chunk-Y7DQ5XTU.js";
8
+ import "./chunk-SVU7MLG6.js";
9
9
  import "./chunk-5EVHUDQX.js";
10
10
  import "./chunk-WH6IKTYF.js";
11
11
  import "./chunk-QGM4M3NI.js";
@@ -5,12 +5,12 @@ import {
5
5
  parallelRunWaves,
6
6
  parallelSchedule,
7
7
  parallelStatus
8
- } from "./chunk-UYKPA2DF.js";
9
- import "./chunk-7RBN4OKO.js";
8
+ } from "./chunk-AQOEFU3M.js";
9
+ import "./chunk-T36R3CJO.js";
10
10
  import "./chunk-KAFR3QRD.js";
11
11
  import "./chunk-QN65APWL.js";
12
12
  import "./chunk-PQQ6SP4D.js";
13
- import "./chunk-Y7DQ5XTU.js";
13
+ import "./chunk-SVU7MLG6.js";
14
14
  import "./chunk-5EVHUDQX.js";
15
15
  import "./chunk-WH6IKTYF.js";
16
16
  import "./chunk-QGM4M3NI.js";
@@ -2,11 +2,11 @@ import {
2
2
  listLocalAtoms,
3
3
  loadAtom,
4
4
  plan
5
- } from "./chunk-7RBN4OKO.js";
5
+ } from "./chunk-T36R3CJO.js";
6
6
  import "./chunk-KAFR3QRD.js";
7
7
  import "./chunk-QN65APWL.js";
8
8
  import "./chunk-PQQ6SP4D.js";
9
- import "./chunk-Y7DQ5XTU.js";
9
+ import "./chunk-SVU7MLG6.js";
10
10
  import "./chunk-5EVHUDQX.js";
11
11
  import "./chunk-WH6IKTYF.js";
12
12
  import "./chunk-QGM4M3NI.js";
@@ -7,12 +7,12 @@ import {
7
7
  setPreference,
8
8
  showExecutionPreferences,
9
9
  showPreferences
10
- } from "./chunk-ZCWCSRCQ.js";
10
+ } from "./chunk-NLH6DN6S.js";
11
11
  import "./chunk-QN65APWL.js";
12
- import "./chunk-IA3ENLBQ.js";
13
- import "./chunk-UG5MAS4X.js";
14
- import "./chunk-Y7DQ5XTU.js";
12
+ import "./chunk-H42IQKPJ.js";
15
13
  import "./chunk-M4LGRTLC.js";
14
+ import "./chunk-BFN2CKY5.js";
15
+ import "./chunk-SVU7MLG6.js";
16
16
  import "./chunk-WH6IKTYF.js";
17
17
  import "./chunk-QGM4M3NI.js";
18
18
  export {
@@ -4,9 +4,8 @@ import {
4
4
  showTierSwitchMenu,
5
5
  showUpgradeMenu,
6
6
  updateUserTier
7
- } from "./chunk-UG5MAS4X.js";
8
- import "./chunk-Y7DQ5XTU.js";
9
- import "./chunk-M4LGRTLC.js";
7
+ } from "./chunk-BFN2CKY5.js";
8
+ import "./chunk-SVU7MLG6.js";
10
9
  import "./chunk-QGM4M3NI.js";
11
10
  export {
12
11
  handleTierSetup,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archondev",
3
- "version": "2.8.0",
3
+ "version": "2.8.2",
4
4
  "description": "Local-first AI-powered development governance system",
5
5
  "main": "dist/index.js",
6
6
  "bin": {