archal 0.9.12 → 0.9.13

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/dist/index.cjs CHANGED
@@ -87281,6 +87281,16 @@ function looksLikeSkillsDir(candidate) {
87281
87281
  }
87282
87282
  return false;
87283
87283
  }
87284
+ function findPnpmWorkspaceRoot(start) {
87285
+ let dir = start;
87286
+ for (let i = 0; i < 10; i++) {
87287
+ if ((0, import_node_fs53.existsSync)((0, import_node_path53.join)(dir, "pnpm-workspace.yaml"))) return dir;
87288
+ const parent = (0, import_node_path53.dirname)(dir);
87289
+ if (parent === dir) return null;
87290
+ dir = parent;
87291
+ }
87292
+ return null;
87293
+ }
87284
87294
  function findRepoRoot(start) {
87285
87295
  let dir = start;
87286
87296
  for (let i = 0; i < 10; i++) {
@@ -87308,7 +87318,14 @@ function resolveSkillsDir() {
87308
87318
  );
87309
87319
  }
87310
87320
  function runPmAdd(pm, cwd, spec) {
87311
- const args = pm === "npm" ? ["install", "--save-dev", spec] : ["add", "-D", spec];
87321
+ let args;
87322
+ if (pm === "npm") {
87323
+ args = ["install", "--save-dev", "--no-audit", "--no-fund", "--loglevel=error", spec];
87324
+ } else if (pm === "pnpm" && findPnpmWorkspaceRoot(cwd) === cwd) {
87325
+ args = ["add", "-D", "-w", spec];
87326
+ } else {
87327
+ args = ["add", "-D", spec];
87328
+ }
87312
87329
  const result = (0, import_node_child_process10.spawnSync)(pm, args, { cwd, stdio: "inherit" });
87313
87330
  if (result.error) {
87314
87331
  throw new CliRuntimeError(
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archal",
3
- "version": "0.9.12",
3
+ "version": "0.9.13",
4
4
  "description": "Test your agents & integrations against digital twins",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -38,17 +38,23 @@ Before asking anything, read the repo:
38
38
 
39
39
  ## Install + auth
40
40
 
41
- If you're here because the user ran `npx archal init`, the CLI is already
42
- a devDependency and the skills are in place. Skip to `archal login`.
41
+ If you're here via `npx archal init`, archal is already a devDependency
42
+ and the skills are already in place. Go straight to login:
43
43
 
44
44
  ```bash
45
- npx archal --version # verify CLI is on PATH / in node_modules
46
- npx archal init --skills-only # re-stage skills if they drifted
47
- archal usage # check auth
48
45
  archal login # OAuth browser flow, or: archal login --token <token>
46
+ archal usage # verify auth + plan
49
47
  ```
50
48
 
51
- In CI, use `ARCHAL_TOKEN` instead of `archal login`.
49
+ In CI, set `ARCHAL_TOKEN` instead of running `archal login`.
50
+
51
+ If something feels wrong (missing CLI, stale skills), these are the
52
+ recovery commands — don't run them otherwise:
53
+
54
+ ```bash
55
+ npx archal --version # CLI reachable? prints e.g. 0.9.12
56
+ npx archal init --skills-only # re-stage skills if they drifted
57
+ ```
52
58
 
53
59
  ## Pick a workflow
54
60
 
@@ -99,6 +99,8 @@ Aliases for `evaluator-model`: `evaluator`, `evaluatormodel`, `model`.
99
99
  | `supabase` | `empty`, `small-project`, `saas-starter`, `ecommerce` |
100
100
  | `google-workspace` | `empty`, `assistant-baseline`, `gmail-busy-inbox`, `calendar-packed-week` |
101
101
  | `ramp` | `empty`, `default` |
102
+ | `discord` | `empty`, `small-server`, `harvested` |
103
+ | `telegram` | `empty`, `harvested` |
102
104
 
103
105
  ## Twin auto-detection from content
104
106
 
@@ -111,6 +113,12 @@ If no `twins:` config is set, Archal infers twins from keywords in Setup, Expect
111
113
  - `stripe`, `payment`, `refund`, `subscription`, `invoice` -> `stripe`
112
114
  - `supabase`, `database`, `sql query` -> `supabase`
113
115
  - `google workspace`, `gmail`, `calendar event`, `inbox` -> `google-workspace`
116
+ - `discord`, `guild`, `text channel` -> `discord`
117
+
118
+ Not every twin has auto-detect keywords — `telegram` in particular has
119
+ none. If your scenario uses `telegram`, set `twins: telegram` in the
120
+ Config block or in `.archal.json`. `ramp` auto-detects on `ramp`,
121
+ `bill`, `expense`, `reimbursement`, `fund`, `card spend`.
114
122
 
115
123
  ## Multi-service scenarios
116
124
 
@@ -13,7 +13,8 @@
13
13
  },
14
14
  "refresh_token": {
15
15
  "type": "string",
16
- "minLength": 1
16
+ "minLength": 1,
17
+ "maxLength": 2048
17
18
  },
18
19
  "client_id": {
19
20
  "type": "string"