archondev 2.18.2 → 2.18.4

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
@@ -101,6 +101,7 @@ Copy governance files into any project. Works with your existing AI tools: **Cur
101
101
  | `archon cleanup auto [enable\|disable]` | Enable/disable auto cleanup on start |
102
102
 
103
103
  **Tip:** Use `archon plan --edit` to adjust title and acceptance criteria before planning.
104
+ **Web Checks:** If Archon detects a web project, it prompts to run A11y/SEO/GEO checks and stores your preference in `.archon/config.yaml`.
104
105
 
105
106
  ## Pricing
106
107
 
@@ -183,12 +184,16 @@ archon github status # Verify connection
183
184
  archon plan "add user settings page"
184
185
  archon execute ATOM-001 --cloud
185
186
 
187
+ # 3b. Queue multiple atoms in parallel (Credits tier)
188
+ archon parallel cloud ATOM-001 ATOM-002
189
+
186
190
  # 4. Check progress
187
191
  archon cloud status # List all cloud executions
188
192
  archon cloud logs <id> # View execution logs
189
193
  ```
190
194
 
191
195
  The cloud worker clones your repo, runs the Executor agent, creates a feature branch, and opens a PR. You can close your terminal after queuing.
196
+ Cloud execution is Credits-only. BYOK and Free tiers run locally.
192
197
 
193
198
  ## Working with Existing Projects
194
199
 
@@ -3,7 +3,7 @@ import {
3
3
  getGitBranch,
4
4
  getGitRemoteUrl,
5
5
  queueCloudExecution
6
- } from "./chunk-4YEJ26F7.js";
6
+ } from "./chunk-Z65525NP.js";
7
7
  import {
8
8
  UsageRecorder,
9
9
  loadAtom
@@ -4791,7 +4791,7 @@ function createPrompt() {
4791
4791
  }
4792
4792
  async function execute(atomId, options) {
4793
4793
  if (options.parallel && options.parallel.length > 0) {
4794
- const { parallelExecute } = await import("./parallel-W2ETYYAL.js");
4794
+ const { parallelExecute } = await import("./parallel-27ZWSW6B.js");
4795
4795
  const allAtomIds = [atomId, ...options.parallel];
4796
4796
  await parallelExecute(allAtomIds, { skipGates: options.skipGates === true });
4797
4797
  return;
@@ -2,7 +2,7 @@ import {
2
2
  getGitBranch,
3
3
  getGitRemoteUrl,
4
4
  queueCloudExecution
5
- } from "./chunk-4YEJ26F7.js";
5
+ } from "./chunk-Z65525NP.js";
6
6
  import {
7
7
  listLocalAtoms,
8
8
  loadAtom
@@ -117,6 +117,15 @@ async function queueCloudExecution(atomId, projectName, options) {
117
117
  throw new Error('Not authenticated. Run "archon login" first.');
118
118
  }
119
119
  const client = getClient(authToken);
120
+ if (config.userId) {
121
+ const { data: profile, error: profileError } = await client.from("user_profiles").select("tier").eq("auth_id", config.userId).single();
122
+ if (profileError || !profile) {
123
+ throw new Error("Unable to verify billing tier. Try again or re-login.");
124
+ }
125
+ if (profile.tier !== "CREDITS") {
126
+ throw new Error("Cloud execution requires Credits tier. BYOK and Free run locally.");
127
+ }
128
+ }
120
129
  const insertData = {
121
130
  atom_id: atomId,
122
131
  project_name: projectName,
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  execute
3
- } from "./chunk-EKU62MGC.js";
4
- import "./chunk-4YEJ26F7.js";
3
+ } from "./chunk-3WJIZGHN.js";
4
+ import "./chunk-Z65525NP.js";
5
5
  import "./chunk-3PZ7WU5I.js";
6
6
  import "./chunk-5EVHUDQX.js";
7
7
  import "./chunk-5CFGPXQ3.js";
package/dist/index.js CHANGED
@@ -16,7 +16,6 @@ import {
16
16
  } from "./chunk-BFPWDOMA.js";
17
17
  import "./chunk-HGLPIM7J.js";
18
18
  import {
19
- listModels,
20
19
  resetPreferences,
21
20
  setExecutionPreference,
22
21
  setPreference,
@@ -44,19 +43,19 @@ import {
44
43
  parallelRunWaves,
45
44
  parallelSchedule,
46
45
  parallelStatus
47
- } from "./chunk-NCPHO54C.js";
46
+ } from "./chunk-DYYWJ5MO.js";
48
47
  import {
49
48
  DependencyParser,
50
49
  EnvironmentConfigLoader,
51
50
  EnvironmentValidator,
52
51
  execute
53
- } from "./chunk-EKU62MGC.js";
52
+ } from "./chunk-3WJIZGHN.js";
54
53
  import {
55
54
  cloudCancel,
56
55
  cloudLogs,
57
56
  cloudStatus,
58
57
  createAuthedSupabaseClient
59
- } from "./chunk-4YEJ26F7.js";
58
+ } from "./chunk-Z65525NP.js";
60
59
  import {
61
60
  list
62
61
  } from "./chunk-NJF6MRTR.js";
@@ -3767,7 +3766,7 @@ async function executeNext() {
3767
3766
  if (canUseCloud) {
3768
3767
  options.push({ key: "3", label: "Parallel (cloud)" });
3769
3768
  }
3770
- const choice = await promptChoice("Select execution mode", options);
3769
+ const choice = await promptChoice("Select execution mode", options, "1");
3771
3770
  if (choice === "2") selectedMode = "parallel-local";
3772
3771
  if (choice === "3" && canUseCloud) selectedMode = "parallel-cloud";
3773
3772
  }
@@ -3799,11 +3798,11 @@ async function executeNext() {
3799
3798
  }
3800
3799
  }
3801
3800
  if (selectedMode === "parallel-cloud") {
3802
- const { parallelExecuteCloud: parallelExecuteCloud2 } = await import("./parallel-W2ETYYAL.js");
3801
+ const { parallelExecuteCloud: parallelExecuteCloud2 } = await import("./parallel-27ZWSW6B.js");
3803
3802
  await parallelExecuteCloud2(runIds);
3804
3803
  return;
3805
3804
  }
3806
- const { parallelExecute } = await import("./parallel-W2ETYYAL.js");
3805
+ const { parallelExecute } = await import("./parallel-27ZWSW6B.js");
3807
3806
  await parallelExecute(runIds);
3808
3807
  return;
3809
3808
  }
@@ -3811,7 +3810,7 @@ async function executeNext() {
3811
3810
  const atomId = await prompt("Enter atom ID to execute (or press Enter for first pending)");
3812
3811
  const targetId = atomId.trim() || pendingAtoms[0]?.id;
3813
3812
  if (targetId) {
3814
- const { execute: execute2 } = await import("./execute-MB4ZF3HQ.js");
3813
+ const { execute: execute2 } = await import("./execute-2RL7NTHZ.js");
3815
3814
  await execute2(targetId, {});
3816
3815
  } else {
3817
3816
  console.log(chalk6.yellow("No atom to execute."));
@@ -4037,7 +4036,7 @@ async function maybePromptWebChecks(cwd, projectState) {
4037
4036
  { key: "2", label: "Choose checks" },
4038
4037
  { key: "3", label: "Not now" },
4039
4038
  { key: "4", label: "Never ask again" }
4040
- ]);
4039
+ ], "3");
4041
4040
  if (choice === "1") {
4042
4041
  await runWebChecksSuite();
4043
4042
  } else if (choice === "2") {
@@ -4063,7 +4062,7 @@ function promptYesNo(question, defaultValue) {
4063
4062
  });
4064
4063
  });
4065
4064
  }
4066
- function promptChoice(question, options) {
4065
+ function promptChoice(question, options, defaultKey) {
4067
4066
  return new Promise((resolve) => {
4068
4067
  console.log(`${chalk6.cyan("?")} ${question}`);
4069
4068
  for (const opt of options) {
@@ -4075,7 +4074,16 @@ function promptChoice(question, options) {
4075
4074
  });
4076
4075
  rl.question(` ${chalk6.dim("Enter choice")}: `, (answer) => {
4077
4076
  rl.close();
4078
- resolve(answer.trim() || "1");
4077
+ const trimmed = answer.trim();
4078
+ if (trimmed) {
4079
+ resolve(trimmed);
4080
+ return;
4081
+ }
4082
+ if (defaultKey) {
4083
+ resolve(defaultKey);
4084
+ return;
4085
+ }
4086
+ resolve("");
4079
4087
  });
4080
4088
  });
4081
4089
  }
@@ -7094,9 +7102,6 @@ preferencesCommand.command("execution-set <key> <value>").description("Set execu
7094
7102
  preferencesCommand.action(async () => {
7095
7103
  await showPreferences();
7096
7104
  });
7097
- program.command("models").description("List available AI models").action(async () => {
7098
- await listModels();
7099
- });
7100
7105
  program.command("watch").description("Live TUI dashboard showing atoms, credits, and activity").action(async () => {
7101
7106
  await watch();
7102
7107
  });
@@ -6,8 +6,8 @@ import {
6
6
  parallelRunWaves,
7
7
  parallelSchedule,
8
8
  parallelStatus
9
- } from "./chunk-NCPHO54C.js";
10
- import "./chunk-4YEJ26F7.js";
9
+ } from "./chunk-DYYWJ5MO.js";
10
+ import "./chunk-Z65525NP.js";
11
11
  import "./chunk-3PZ7WU5I.js";
12
12
  import "./chunk-5EVHUDQX.js";
13
13
  import "./chunk-5CFGPXQ3.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archondev",
3
- "version": "2.18.2",
3
+ "version": "2.18.4",
4
4
  "description": "Local-first AI-powered development governance system",
5
5
  "main": "dist/index.js",
6
6
  "bin": {