@sibyllinesoft/smith-installer 0.1.10 → 0.1.12

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/agents.md CHANGED
@@ -15,8 +15,8 @@ You are the Smith Core installer and configuration agent. Your job is to bootstr
15
15
 
16
16
  Run these phases in order unless the user asks for a specific step:
17
17
 
18
- 1. `infra` — start Docker infrastructure.
19
- 2. `build` — compile Rust workspaces.
18
+ 1. `infra` — start Docker infrastructure (pulls pre-built images from ghcr.io).
19
+ 2. `build` — install pre-built smith-services and agentd binaries via npm.
20
20
  3. `npm` — install Node workspace dependencies.
21
21
  4. `verify` — run lightweight build checks and tunnel e2e checks when configured.
22
22
  5. `configure-agentd` — ensure `.env` defaults are present and, on macOS, enable Gondolin VM pool settings.
@@ -49,22 +49,22 @@ if [ "$(uname -s)" = "Darwin" ]; then
49
49
  # SMITH_EXECUTOR_GONDOLIN_ARGS=exec,--
50
50
  fi
51
51
 
52
- # infra
52
+ # infra (pulls pre-built images from ghcr.io)
53
53
  bash infra/envoy/certs/generate-certs.sh
54
54
  docker compose up -d
55
55
  docker compose ps
56
56
 
57
- # build
58
- cargo build --workspace
57
+ # build (install pre-built binaries)
58
+ npm install -g @sibyllinesoft/smith-services
59
+ npm install -g @sibyllinesoft/agentd
59
60
 
60
61
  # npm
61
62
  npm install
62
- npm install -g @sibyllinesoft/agentd
63
63
 
64
64
  # verify
65
- cargo check --workspace
66
65
  npm run build --workspaces --if-present
67
- agentd --version
66
+ smith-chat-daemon --help || echo "smith-services not installed (non-fatal)"
67
+ agentd --version || echo "agentd not installed (non-fatal)"
68
68
 
69
69
  # optional tunnel e2e checks when configured in .env
70
70
  bash scripts/tunnel-e2e.sh cloudflare
@@ -107,3 +107,59 @@ When a step fails:
107
107
  3. Apply the smallest viable fix.
108
108
  4. Re-run only the failed command.
109
109
  5. Summarize the root cause and the fix applied.
110
+
111
+ ### Port Conflicts
112
+
113
+ If Docker Compose fails with "port is already allocated" or "address already in use":
114
+
115
+ ```bash
116
+ # Linux — identify what is using a port
117
+ ss -tlnp 'sport = :5432'
118
+
119
+ # macOS — identify what is using a port
120
+ lsof -iTCP:5432 -sTCP:LISTEN
121
+
122
+ # If a previous smith-core stack is running
123
+ docker compose down
124
+ ```
125
+
126
+ Key ports: 4222 (NATS), 5432 (PostgreSQL), 3000 (Grafana), 9200 (MCP Index), 6173 (Envoy), 9901 (Envoy Admin).
127
+
128
+ ### Node.js Version Management
129
+
130
+ If `node_22_ok` is `no` in preflight, check `node_version_manager`:
131
+
132
+ - **`fnm` detected**: Run `fnm install 22 && fnm use 22`, then verify with `node -v`.
133
+ - **`nvm` detected**: Run `. "$NVM_DIR/nvm.sh" && nvm install 22 && nvm use 22`, then verify with `node -v`.
134
+ - **`none` detected**: Ask the user which version manager they'd like to install:
135
+ - **fnm** (recommended — single binary, fast):
136
+ ```bash
137
+ curl -fsSL https://fnm.vercel.app/install | bash
138
+ ```
139
+ - **nvm** (widely used):
140
+ ```bash
141
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
142
+ ```
143
+ After installation, source the shell profile and install Node 22.
144
+ Remind the user they may need to restart their shell for PATH changes to take effect.
145
+
146
+ ### npm Auth Warnings
147
+
148
+ `npm notice Access token expired or revoked` during `npm install -g` is harmless — smith packages are public. This warning appears when npm finds a stale token in `~/.npmrc`. The install will succeed regardless.
149
+
150
+ ### Network Configuration
151
+
152
+ When no private network indicator is detected, recommend one of:
153
+
154
+ ```bash
155
+ # Cloudflare Tunnel
156
+ cloudflared tunnel login
157
+ # Then set CLOUDFLARE_TUNNEL_TOKEN in .env
158
+
159
+ # Tailscale
160
+ tailscale up
161
+ # Then set TAILSCALE_AUTHKEY in .env
162
+
163
+ # SSH tunneling (simplest)
164
+ ssh -L 6173:localhost:6173 user@host
165
+ ```
package/dist/cli.js CHANGED
@@ -6,6 +6,7 @@ import { pipeline } from "stream/promises";
6
6
  import { randomBytes } from "crypto";
7
7
  import { tmpdir, homedir } from "os";
8
8
  import { createInterface } from "readline/promises";
9
+ import { createServer } from "net";
9
10
  import { createInstallerSession } from "./agents.js";
10
11
  import { parseArgs, findSmithRoot, evaluateInstallerSecurity, readSmithConfig, writeSmithConfig } from "./lib.js";
11
12
  const DEFAULT_REPO = "sibyllinesoft/smith-core";
@@ -185,7 +186,40 @@ function isCommandAvailable(cmd) {
185
186
  return false;
186
187
  }
187
188
  }
188
- function runPreflightChecks() {
189
+ function detectNodeVersionManager() {
190
+ // fnm is a standalone binary
191
+ try {
192
+ execFileSync("fnm", ["--version"], { stdio: "ignore" });
193
+ return { name: "fnm", dir: "" };
194
+ }
195
+ catch { }
196
+ // nvm is a shell function sourced from NVM_DIR/nvm.sh
197
+ const nvmDir = process.env.NVM_DIR || join(homedir(), ".nvm");
198
+ if (existsSync(join(nvmDir, "nvm.sh"))) {
199
+ return { name: "nvm", dir: nvmDir };
200
+ }
201
+ return null;
202
+ }
203
+ const REQUIRED_PORTS = [
204
+ [4222, "NATS"],
205
+ [5432, "PostgreSQL"],
206
+ [3000, "Grafana"],
207
+ [9200, "MCP Index"],
208
+ [6173, "Envoy mTLS Gateway"],
209
+ [9901, "Envoy Admin"],
210
+ ];
211
+ function checkPortAvailable(port, host = "127.0.0.1") {
212
+ return new Promise((resolve) => {
213
+ const server = createServer();
214
+ server.once("error", () => resolve(false));
215
+ server.once("listening", () => {
216
+ server.close();
217
+ resolve(true);
218
+ });
219
+ server.listen(port, host);
220
+ });
221
+ }
222
+ async function runPreflightChecks() {
189
223
  const errors = [];
190
224
  // Check Docker
191
225
  if (!isCommandAvailable("docker")) {
@@ -210,7 +244,10 @@ function runPreflightChecks() {
210
244
  const nodeVersion = process.versions.node;
211
245
  const major = parseInt(nodeVersion.split(".")[0], 10);
212
246
  if (major < 20) {
213
- errors.push(`Node.js ${nodeVersion} detected but >=20 is required. Install via nvm or https://nodejs.org/`);
247
+ errors.push(`Node.js v${nodeVersion} detected but >=20 is required (>=22 recommended).\n` +
248
+ ` Install with nvm: nvm install 22 && nvm use 22\n` +
249
+ ` Install with fnm: fnm install 22 && fnm use 22\n` +
250
+ ` Or download from: https://nodejs.org/`);
214
251
  }
215
252
  if (errors.length > 0) {
216
253
  console.error("\n[preflight] Missing prerequisites:\n");
@@ -221,6 +258,41 @@ function runPreflightChecks() {
221
258
  process.exit(1);
222
259
  }
223
260
  console.log(`[preflight] Docker OK, Node.js ${nodeVersion} OK`);
261
+ if (major < 22) {
262
+ const versionManager = detectNodeVersionManager();
263
+ if (versionManager) {
264
+ const cmd = versionManager.name;
265
+ console.warn(`\n[preflight] Warning: Node.js v${nodeVersion} detected — runtime services require Node >= 22.\n` +
266
+ `[preflight] Affected: pi-bridge, smith-cron, session-recorder (local dev only;\n` +
267
+ `[preflight] Docker containers use Node 22 regardless).\n` +
268
+ `[preflight] Detected ${cmd}. Upgrade with: ${cmd} install 22 && ${cmd} use 22\n`);
269
+ }
270
+ else {
271
+ console.warn(`\n[preflight] Warning: Node.js v${nodeVersion} detected — runtime services require Node >= 22.\n` +
272
+ `[preflight] Affected: pi-bridge, smith-cron, session-recorder (local dev only;\n` +
273
+ `[preflight] Docker containers use Node 22 regardless).\n` +
274
+ `[preflight] No version manager (nvm/fnm) detected — the installer agent can help set one up.\n`);
275
+ }
276
+ }
277
+ // Check port availability for Docker services
278
+ const portConflicts = [];
279
+ for (const [port, service] of REQUIRED_PORTS) {
280
+ const available = await checkPortAvailable(port);
281
+ if (!available) {
282
+ portConflicts.push([port, service]);
283
+ }
284
+ }
285
+ if (portConflicts.length > 0) {
286
+ console.warn("\n[preflight] Port conflicts detected — these ports are already in use:");
287
+ for (const [port, service] of portConflicts) {
288
+ console.warn(`[preflight] :${port} (${service})`);
289
+ }
290
+ console.warn(`[preflight]\n` +
291
+ `[preflight] Docker Compose will fail if these ports are not freed.\n` +
292
+ `[preflight] To identify the process: ss -tlnp 'sport = :PORT' (Linux)\n` +
293
+ `[preflight] lsof -iTCP:PORT -sTCP:LISTEN (macOS)\n` +
294
+ `[preflight] If a previous smith-core stack is running: docker compose down\n`);
295
+ }
224
296
  }
225
297
  function ensureMacOsGondolinDefaults(smithRoot) {
226
298
  if (process.platform !== "darwin") {
@@ -313,6 +385,33 @@ function ensureSecurityDefaults(smithRoot) {
313
385
  configured.push(key);
314
386
  }
315
387
  };
388
+ // Database / service password hardening — replace known weak defaults
389
+ const weakPasswords = [
390
+ ["POSTGRES_PASSWORD", ["smith-dev", "postgres", "password", "changeme"]],
391
+ ["CLICKHOUSE_PASSWORD", ["observability-dev", "clickhouse", "password", "changeme"]],
392
+ ["GRAFANA_ADMIN_PASSWORD", ["admin", "grafana", "password", "changeme"]],
393
+ ];
394
+ for (const [key, weakValues] of weakPasswords) {
395
+ const current = (vars[key] ?? "").trim();
396
+ if (current.length === 0 || weakValues.includes(current)) {
397
+ const newPassword = generateHexSecret(16); // 32-char hex
398
+ upsertEnvValue(envPath, key, newPassword);
399
+ // Update connection strings that embed the old password
400
+ if (key === "POSTGRES_PASSWORD" && current.length > 0) {
401
+ const connKeys = ["SMITH_DATABASE_URL", "PI_BRIDGE_PG"];
402
+ for (const connKey of connKeys) {
403
+ const connStr = (vars[connKey] ?? "").trim();
404
+ if (connStr && connStr.includes(`:${current}@`)) {
405
+ const updated = connStr.replace(`:${current}@`, `:${newPassword}@`);
406
+ upsertEnvValue(envPath, connKey, updated);
407
+ vars[connKey] = updated;
408
+ }
409
+ }
410
+ }
411
+ vars[key] = newPassword;
412
+ generated.push(key);
413
+ }
414
+ }
316
415
  // MCP index / sidecar API hardening
317
416
  ensureToken("MCP_INDEX_API_TOKEN", 24, 24);
318
417
  ensureToken("MCP_SIDECAR_API_TOKEN", 24, 24);
@@ -340,6 +439,93 @@ function ensureSecurityDefaults(smithRoot) {
340
439
  console.log(`[installer] Applied security defaults in .env (${details})`);
341
440
  }
342
441
  }
442
+ function tryInstallSmithServices(smithRoot) {
443
+ const platform = process.platform;
444
+ const arch = process.arch;
445
+ const platformTag = `${platform}-${arch}`;
446
+ const supported = {
447
+ "linux-x64": "@sibyllinesoft/smith-services-linux-x64",
448
+ "darwin-arm64": "@sibyllinesoft/smith-services-darwin-arm64",
449
+ };
450
+ if (!supported[platformTag]) {
451
+ console.warn(`[installer] smith-services: no pre-built binaries for ${platformTag}.\n` +
452
+ `[installer] Supported platforms: ${Object.keys(supported).join(", ")}.\n` +
453
+ `[installer] To build from source: cargo build --workspace\n` +
454
+ `[installer] Skipping smith-services install (non-fatal).`);
455
+ return;
456
+ }
457
+ try {
458
+ runCommand(smithRoot, { command: "npm", args: ["install", "-g", "@sibyllinesoft/smith-services"] });
459
+ }
460
+ catch {
461
+ console.warn(`\n[installer] smith-services installation failed.\n` +
462
+ `[installer] The platform package ${supported[platformTag]} may not be published yet.\n` +
463
+ `[installer] This is non-fatal — you can build from source: cargo build --workspace\n` +
464
+ `[installer] To retry later: npm install -g @sibyllinesoft/smith-services\n`);
465
+ return;
466
+ }
467
+ // Verify at least one binary works
468
+ try {
469
+ execFileSync("smith-chat-daemon", ["--help"], { stdio: "pipe", env: process.env });
470
+ console.log("[installer] smith-services installed and verified.");
471
+ }
472
+ catch {
473
+ console.warn(`\n[installer] smith-services package installed but binaries not functional on ${platformTag}.\n` +
474
+ `[installer] The platform package ${supported[platformTag]} may be missing from the registry.\n` +
475
+ `[installer] This is non-fatal — you can build from source: cargo build --workspace\n`);
476
+ }
477
+ }
478
+ function tryInstallAgentd(smithRoot) {
479
+ const platform = process.platform;
480
+ const arch = process.arch;
481
+ const platformTag = `${platform}-${arch}`;
482
+ const supported = {
483
+ "linux-x64": "@sibyllinesoft/agentd-linux-x64",
484
+ "darwin-arm64": "@sibyllinesoft/agentd-darwin-arm64",
485
+ };
486
+ if (!supported[platformTag]) {
487
+ console.warn(`[installer] agentd: no pre-built binary for ${platformTag}.\n` +
488
+ `[installer] Supported platforms: ${Object.keys(supported).join(", ")}.\n` +
489
+ `[installer] To use agentd on this platform, build from source (see the agentd repo).\n` +
490
+ `[installer] Skipping agentd install (non-fatal).`);
491
+ return;
492
+ }
493
+ try {
494
+ runCommand(smithRoot, { command: "npm", args: ["install", "-g", "@sibyllinesoft/agentd"] });
495
+ }
496
+ catch {
497
+ console.warn(`\n[installer] agentd installation failed.\n` +
498
+ `[installer] The platform package ${supported[platformTag]} may not be published yet.\n` +
499
+ `[installer] This is non-fatal — infrastructure and build steps are unaffected.\n` +
500
+ `[installer] To resolve:\n` +
501
+ `[installer] - Retry later: npm install -g @sibyllinesoft/agentd\n` +
502
+ `[installer] - Or build from source (see the agentd repo)\n`);
503
+ return;
504
+ }
505
+ // Verify the binary actually works (catches missing platform-specific package)
506
+ try {
507
+ execFileSync("agentd", ["--version"], { stdio: "pipe", env: process.env });
508
+ console.log("[installer] agentd installed and verified.");
509
+ }
510
+ catch {
511
+ console.warn(`\n[installer] agentd package installed but binary not functional on ${platformTag}.\n` +
512
+ `[installer] The platform package ${supported[platformTag]} may be missing from the registry.\n` +
513
+ `[installer] This is non-fatal — infrastructure and build steps are unaffected.\n` +
514
+ `[installer] To resolve: build agentd from source (see the agentd repo).\n`);
515
+ }
516
+ }
517
+ function waitForDockerHealth(smithRoot) {
518
+ console.log("[installer] Waiting for Docker services to become healthy...");
519
+ try {
520
+ execFileSync("docker", ["compose", "up", "-d", "--wait", "--wait-timeout", "120"], { cwd: smithRoot, stdio: "inherit", env: process.env });
521
+ console.log("[installer] All Docker services healthy.");
522
+ }
523
+ catch {
524
+ console.warn("[installer] Some services may not have reached healthy state within timeout.\n" +
525
+ "[installer] Check status with: docker compose ps\n" +
526
+ "[installer] Check logs with: docker compose logs <service>");
527
+ }
528
+ }
343
529
  function runOptionalTunnelE2E(smithRoot) {
344
530
  const envPath = join(smithRoot, ".env");
345
531
  if (!existsSync(envPath)) {
@@ -385,26 +571,18 @@ function runNonInteractiveBootstrap(smithRoot, step, force) {
385
571
  all: [
386
572
  { command: "bash", args: ["infra/envoy/certs/generate-certs.sh"] },
387
573
  { command: "docker", args: ["compose", "up", "-d"] },
388
- { command: "docker", args: ["compose", "ps"] },
389
- { command: "cargo", args: ["build", "--workspace"] },
390
574
  { command: "npm", args: ["install"] },
391
- { command: "npm", args: ["install", "-g", "@sibyllinesoft/agentd"] },
392
- { command: "cargo", args: ["check", "--workspace"] },
393
575
  { command: "npm", args: ["run", "build", "--workspaces", "--if-present"] },
394
576
  ],
395
577
  infra: [
396
578
  { command: "bash", args: ["infra/envoy/certs/generate-certs.sh"] },
397
579
  { command: "docker", args: ["compose", "up", "-d"] },
398
- { command: "docker", args: ["compose", "ps"] },
399
- ],
400
- build: [
401
- { command: "cargo", args: ["build", "--workspace"] },
402
580
  ],
581
+ build: [],
403
582
  npm: [
404
583
  { command: "npm", args: ["install"] },
405
584
  ],
406
585
  verify: [
407
- { command: "cargo", args: ["check", "--workspace"] },
408
586
  { command: "npm", args: ["run", "build", "--workspaces", "--if-present"] },
409
587
  ],
410
588
  "25": [
@@ -413,13 +591,9 @@ function runNonInteractiveBootstrap(smithRoot, step, force) {
413
591
  "30": [
414
592
  { command: "bash", args: ["infra/envoy/certs/generate-certs.sh"] },
415
593
  { command: "docker", args: ["compose", "up", "-d"] },
416
- { command: "docker", args: ["compose", "ps"] },
417
- ],
418
- "40": [
419
- { command: "cargo", args: ["build", "--workspace"] },
420
594
  ],
595
+ "40": [],
421
596
  "90": [
422
- { command: "cargo", args: ["check", "--workspace"] },
423
597
  { command: "npm", args: ["run", "build", "--workspaces", "--if-present"] },
424
598
  ],
425
599
  "configure-policy": [
@@ -442,6 +616,17 @@ function runNonInteractiveBootstrap(smithRoot, step, force) {
442
616
  for (const spec of plan) {
443
617
  runCommand(smithRoot, spec);
444
618
  }
619
+ // Wait for Docker services to become healthy after infra steps
620
+ const infraSteps = ["all", "infra", "30"];
621
+ if (infraSteps.includes(normalizedStep)) {
622
+ waitForDockerHealth(smithRoot);
623
+ }
624
+ // Install pre-built binaries (non-fatal) after build/all steps
625
+ const binarySteps = ["all", "build", "40"];
626
+ if (binarySteps.includes(normalizedStep)) {
627
+ tryInstallSmithServices(smithRoot);
628
+ tryInstallAgentd(smithRoot);
629
+ }
445
630
  if (normalizedStep === "all" || normalizedStep === "verify" || normalizedStep === "90") {
446
631
  runOptionalTunnelE2E(smithRoot);
447
632
  }
@@ -456,7 +641,7 @@ Options:
456
641
  --provider <name> LLM provider (default: anthropic)
457
642
  --model <id> Model ID (default: claude-sonnet-4-20250514)
458
643
  --thinking <level> Thinking level: none, low, medium, high (default: medium)
459
- --step <name> Run one step: all, infra, build, npm, verify, policy (also accepts 25/30/40/90)
644
+ --step <name> Run one step: all, infra, build, npm, verify, policy (also 25/30/40/90)
460
645
  --force Recreate infrastructure before running infra/all
461
646
  --repo <owner/repo> GitHub repository (default: sibyllinesoft/smith-core)
462
647
  --ref <tag> Release tag to install (default: latest)
@@ -477,7 +662,7 @@ async function main() {
477
662
  printHelp();
478
663
  process.exit(0);
479
664
  }
480
- runPreflightChecks();
665
+ await runPreflightChecks();
481
666
  // Resolve smith-core location
482
667
  const existingConfig = readSmithConfig();
483
668
  let smithRoot;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sibyllinesoft/smith-installer",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "AI-guided Smith platform installer powered by pi-agent",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -10,7 +10,7 @@ uname -a
10
10
  node -v
11
11
  docker --version
12
12
  docker compose version
13
- cargo --version
13
+ cargo --version 2>/dev/null || echo "cargo not installed (optional — pre-built binaries available)"
14
14
 
15
15
  if [ "$(uname -s)" = "Darwin" ]; then
16
16
  command -v gondolin
@@ -25,7 +25,7 @@ This skill gathers the minimum environment facts needed before bootstrap.
25
25
  1. Confirms host OS/kernel information.
26
26
  2. Confirms Node.js runtime availability.
27
27
  3. Confirms Docker engine and Compose plugin availability.
28
- 4. Confirms Rust toolchain availability.
28
+ 4. Checks for Rust toolchain (optional — pre-built binaries are available via npm).
29
29
  5. On macOS, confirms Gondolin is installed for persistent VM sandbox mode.
30
30
  6. Establishes whether the machine can run the standard Smith Core flow.
31
31
 
@@ -51,17 +51,18 @@ cargo 1.xx.x ...
51
51
 
52
52
  - Missing `node` means installer and Node workspaces cannot run.
53
53
  - Missing `docker compose` means infrastructure cannot start.
54
- - Missing `cargo` means Rust services cannot build from source.
54
+ - Missing `cargo` is non-blocking — pre-built binaries are installed via `npm install -g @sibyllinesoft/smith-services`. Cargo is only needed to build from source.
55
55
  - On macOS, missing `gondolin` means persistent VM sandbox sessions cannot start.
56
56
 
57
57
  ## Common Failures
58
58
 
59
59
  | Symptom | Cause | Fix |
60
60
  |---------|-------|-----|
61
- | `node: command not found` | Node.js missing | Install Node 22+ |
61
+ | `node: command not found` | Node.js missing | Install Node 22+: `nvm install 22` or `fnm install 22` |
62
+ | Node < 22 detected | Older Node.js version | Upgrade: `nvm install 22 && nvm use 22` (or `fnm install 22 && fnm use 22`) |
62
63
  | `docker: command not found` | Docker missing | Install Docker engine |
63
64
  | `docker compose` unknown command | Compose plugin missing | Install Docker Compose plugin |
64
- | `cargo: command not found` | Rust toolchain missing | Install Rust via rustup |
65
+ | `cargo: command not found` | Rust toolchain missing | Optional — pre-built binaries available via npm. Install Rust via rustup only if building from source |
65
66
  | `gondolin: command not found` (macOS) | Gondolin missing | Install Gondolin and verify `gondolin help` works |
66
67
 
67
68
  ## Notes
@@ -9,6 +9,12 @@ Run:
9
9
  npm install -g @sibyllinesoft/agentd
10
10
  ```
11
11
 
12
+ Then verify:
13
+
14
+ ```bash
15
+ agentd --version
16
+ ```
17
+
12
18
  ## What It Does
13
19
 
14
20
  This skill installs the pre-built `agentd` binary via npm.
@@ -21,23 +27,37 @@ This skill installs the pre-built `agentd` binary via npm.
21
27
 
22
28
  - Node.js >= 20 and npm installed.
23
29
 
30
+ ## Supported Platforms
31
+
32
+ | Platform | Architecture | Package |
33
+ |----------|-------------|---------|
34
+ | Linux | x64 | `@sibyllinesoft/agentd-linux-x64` |
35
+ | macOS | arm64 (Apple Silicon) | `@sibyllinesoft/agentd-darwin-arm64` |
36
+
37
+ Other platforms must build from source (see the agentd repository).
38
+
24
39
  ## Expected Output
25
40
 
26
41
  `agentd --version` prints a version string.
27
42
 
28
43
  ## Reading Results
29
44
 
30
- - Install errors indicate npm/network issues.
45
+ - Install errors indicate npm/network issues or a missing platform package.
46
+ - If the install succeeds but `agentd --version` fails with "Could not find the agentd binary", the platform-specific package is not published yet.
31
47
  - Successful install enables `agentd run ...`.
48
+ - **agentd installation failure is non-fatal** — infrastructure and build steps are unaffected.
32
49
 
33
50
  ## Common Failures
34
51
 
35
52
  | Symptom | Cause | Fix |
36
53
  |---------|-------|-----|
54
+ | "Could not find the agentd binary for darwin-arm64" | Platform package not published to npm | Build from source (see agentd repo) |
37
55
  | Permission denied | Global npm requires sudo or prefix config | Use `npm config set prefix ~/.npm-global` or run with sudo |
56
+ | npm 404 for platform package | Platform binary not yet released | Build from source or wait for package publish |
38
57
  | Network failure | Registry unreachable | Retry when network is available |
39
- | Platform not supported | No binary for this OS/arch | Build from source (see agentd repo) |
40
58
 
41
59
  ## Notes
42
60
 
43
- Pre-built binaries are available for Linux x64 and macOS arm64. For other platforms, build from the agentd source repository.
61
+ - agentd installation is non-fatal during bootstrap. The rest of the stack works without it.
62
+ - If the platform package is missing, you can still build agentd from source using the agentd repository.
63
+ - Pre-built binaries are available for Linux x64 and macOS arm64.
@@ -26,13 +26,29 @@ MCP_INDEX_API_TOKEN="$(read_env_value MCP_INDEX_API_TOKEN)"
26
26
  CLOUDFLARE_TUNNEL_TOKEN="$(read_env_value CLOUDFLARE_TUNNEL_TOKEN)"
27
27
  TAILSCALE_AUTHKEY="$(read_env_value TAILSCALE_AUTHKEY)"
28
28
 
29
+ NODE_VERSION="$(node -v 2>/dev/null || echo missing)"
30
+ NODE_MAJOR="${NODE_VERSION#v}"
31
+ NODE_MAJOR="${NODE_MAJOR%%.*}"
32
+
33
+ # Detect node version manager
34
+ if command -v fnm >/dev/null 2>&1; then
35
+ NODE_VM="fnm"
36
+ elif [ -f "${NVM_DIR:-$HOME/.nvm}/nvm.sh" ]; then
37
+ NODE_VM="nvm"
38
+ else
39
+ NODE_VM="none"
40
+ fi
41
+
29
42
  cat > var/installer/preflight.json <<JSON
30
43
  {
31
44
  "env_source": "'${ENV_SOURCE}'",
32
- "node": "'$(node -v 2>/dev/null || echo missing)'",
45
+ "node": "'${NODE_VERSION}'",
46
+ "node_major": "'${NODE_MAJOR}'",
47
+ "node_22_ok": "'$( [ "${NODE_MAJOR}" -ge 22 ] 2>/dev/null && echo yes || echo no )'",
48
+ "node_version_manager": "'${NODE_VM}'",
33
49
  "docker": "'$(docker --version 2>/dev/null || echo missing)'",
34
50
  "compose": "'$(docker compose version 2>/dev/null || echo missing)'",
35
- "cargo": "'$(cargo --version 2>/dev/null || echo missing)'",
51
+ "cargo": "'$(cargo --version 2>/dev/null || echo optional)'",
36
52
  "postgres_password_default": "'$( [ "${POSTGRES_PASSWORD}" = "smith-dev" ] && echo yes || echo no )'",
37
53
  "mcp_index_token_set": "'$( [ -n "${MCP_INDEX_API_TOKEN}" ] && echo yes || echo no )'",
38
54
  "cloudflare_tunnel_hint": "'$( [ -n "${CLOUDFLARE_TUNNEL_TOKEN}" ] && echo yes || echo no )'",
@@ -61,10 +77,13 @@ This skill creates a lightweight local preflight snapshot for the installer agen
61
77
  A JSON document exists at `var/installer/preflight.json` and includes:
62
78
 
63
79
  - `env_source`
64
- - `node`
80
+ - `node` — full version string
81
+ - `node_major` — major version number
82
+ - `node_22_ok` — `yes` if Node >= 22 (recommended for runtime services)
83
+ - `node_version_manager` — `fnm`, `nvm`, or `none`
65
84
  - `docker`
66
85
  - `compose`
67
- - `cargo`
86
+ - `cargo` — `optional` if not installed (pre-built binaries available via npm)
68
87
  - `postgres_password_default`
69
88
  - `mcp_index_token_set`
70
89
  - `cloudflare_tunnel_hint`
@@ -72,9 +91,13 @@ A JSON document exists at `var/installer/preflight.json` and includes:
72
91
 
73
92
  ## Reading Results
74
93
 
75
- - Any `missing` value is a hard blocker for full bootstrap.
94
+ - A `missing` value for `node`, `docker`, or `compose` is a hard blocker for full bootstrap. A `cargo` value of `optional` is non-blocking since pre-built binaries are available.
95
+ - If `node_22_ok` is `no`, warn that runtime services (pi-bridge, smith-cron, session-recorder) require Node >= 22 for local development. Docker containers use Node 22 regardless, so this only affects running services outside Docker. Provide upgrade instructions:
96
+ - nvm: `nvm install 22 && nvm use 22`
97
+ - fnm: `fnm install 22 && fnm use 22`
76
98
  - If all values are present, continue with stack startup/build steps.
77
99
  - If password defaults or missing private-network hints are detected, continue but emit loud warnings.
100
+ - Port conflicts are checked automatically by the CLI preflight. If reported, the user must free the ports before `docker compose up` will succeed.
78
101
 
79
102
  ## Common Failures
80
103
 
@@ -84,3 +107,6 @@ A JSON document exists at `var/installer/preflight.json` and includes:
84
107
  | Empty JSON values | Command substitution failed | Re-run with full shell output |
85
108
  | `cat: ... no such file` | Preflight command not run | Re-run preflight block |
86
109
  | Missing tunnel hints | VPN/tunnel env not configured yet | Continue with warning and recommend Cloudflare Tunnel or Tailscale |
110
+ | Port conflict on :5432 | Another PostgreSQL instance | `ss -tlnp 'sport = :5432'` (Linux) or `lsof -iTCP:5432` (macOS) to identify; stop the conflicting service |
111
+ | Port conflict on :4222 | Another NATS instance | Stop the conflicting NATS or remap in compose |
112
+ | Port conflict on :3000 | Another service on Grafana port | Free port or remap Grafana in compose |
@@ -26,7 +26,7 @@ This skill starts the chat bridge daemon and the correct gateway binary for each
26
26
  ### 1. Start the daemon
27
27
 
28
28
  ```bash
29
- cargo run -p smith-chat --features webhooks --bin smith-chat-daemon
29
+ smith-chat-daemon
30
30
  ```
31
31
 
32
32
  The daemon reads `CHAT_BRIDGE_CONFIG` (defaults to `config/chat-bridge.toml`) and starts the webhook server on `CHAT_BRIDGE_WEBHOOK_PORT` (defaults to 8092).
@@ -34,7 +34,7 @@ The daemon reads `CHAT_BRIDGE_CONFIG` (defaults to `config/chat-bridge.toml`) an
34
34
  Start this in a separate terminal or background it with log redirection:
35
35
 
36
36
  ```bash
37
- cargo run -p smith-chat --features webhooks --bin smith-chat-daemon 2>&1 | tee logs/chat-daemon.log &
37
+ smith-chat-daemon 2>&1 | tee logs/chat-daemon.log &
38
38
  ```
39
39
 
40
40
  ### 2. Start gateway(s) for each configured platform
@@ -54,16 +54,16 @@ Parse the `type = ` values from the config and start the matching gateway binary
54
54
  | `google_chat` | `smith-google-chat-gateway` | `GOOGLE_CHAT_WEBHOOK_URL` |
55
55
  | `imessage` | `smith-imessage-gateway` | (config-only) |
56
56
 
57
- Start each gateway with:
57
+ Start each gateway directly:
58
58
 
59
59
  ```bash
60
- cargo run -p smith-chat --bin <binary-name>
60
+ <binary-name>
61
61
  ```
62
62
 
63
63
  For example, for Discord:
64
64
 
65
65
  ```bash
66
- cargo run -p smith-chat --bin smith-discord-gateway 2>&1 | tee logs/discord-gateway.log &
66
+ smith-discord-gateway 2>&1 | tee logs/discord-gateway.log &
67
67
  ```
68
68
 
69
69
  Each gateway should run in its own terminal or backgrounded process.
@@ -73,7 +73,7 @@ Each gateway should run in its own terminal or backgrounded process.
73
73
  - `config/chat-bridge.toml` exists and has at least one `[[adapters]]` stanza (run `setup-chat-bridge` first).
74
74
  - Platform credentials set in `.env` for each configured adapter.
75
75
  - Docker stack running (NATS and Redis required by daemon).
76
- - Rust workspace built (`cargo build -p smith-chat`).
76
+ - smith-services installed (`npm install -g @sibyllinesoft/smith-services`) or built from source (`cargo build -p smith-chat`).
77
77
 
78
78
  ## Expected Output
79
79
 
@@ -7,7 +7,7 @@ Run:
7
7
 
8
8
  ```bash
9
9
  bash infra/envoy/certs/generate-certs.sh
10
- docker compose up -d
10
+ docker compose up -d --wait --wait-timeout 120
11
11
  docker compose ps
12
12
  ```
13
13
 
@@ -17,7 +17,7 @@ This skill launches the local infrastructure dependencies.
17
17
 
18
18
  1. Ensures local Envoy mTLS certs exist before container startup.
19
19
  2. Starts NATS, Postgres, Redis, ClickHouse, Grafana, OPA, Envoy, and MCP services.
20
- 3. Ensures background containers are running.
20
+ 3. Waits for all services with health checks to become healthy (up to 120s).
21
21
  4. Gives a service-level health snapshot via `docker compose ps`.
22
22
  5. Establishes prerequisites for bridge and service processes.
23
23
 
@@ -29,7 +29,7 @@ This skill launches the local infrastructure dependencies.
29
29
  ## Expected Output
30
30
 
31
31
  - Cert generation exits successfully (or reports existing certs).
32
- - `docker compose up -d` exits successfully.
32
+ - `docker compose up -d --wait` exits successfully with all services healthy.
33
33
  - `docker compose ps` shows core services as `running` or `healthy`.
34
34
 
35
35
  ## Reading Results
@@ -41,6 +41,8 @@ Focus on these critical services:
41
41
  - `smith-envoy`
42
42
  - `smith-mcp-index`
43
43
 
44
+ If any service shows `health: starting` after `--wait` completes, it may still be initializing. Check logs.
45
+
44
46
  ## Common Failures
45
47
 
46
48
  | Symptom | Cause | Fix |
@@ -50,6 +52,7 @@ Focus on these critical services:
50
52
  | Port bind error | Port already in use | Free the port or remap in compose |
51
53
  | Image pull/build failure | Network or registry failure | Retry after network recovery |
52
54
  | Healthcheck stuck | Dependency not ready | Check dependent service logs |
55
+ | Wait timeout exceeded | Slow machine or heavy load | Retry with `docker compose up -d --wait --wait-timeout 300` |
53
56
 
54
57
  ## Notes
55
58
 
@@ -6,20 +6,25 @@ description: Verify the full Smith Core bootstrap state after install steps
6
6
  Run:
7
7
 
8
8
  ```bash
9
- cargo check --workspace
10
9
  npm run build --workspaces --if-present
11
- agentd --version
12
10
  docker compose ps
13
11
  ```
14
12
 
13
+ Then check pre-built binaries (optional, may not be installed):
14
+
15
+ ```bash
16
+ smith-chat-daemon --help || echo "smith-services not installed (non-fatal)"
17
+ agentd --version || echo "agentd not installed (non-fatal)"
18
+ ```
19
+
15
20
  ## What It Does
16
21
 
17
- This skill validates that core components are buildable and infrastructure is running.
22
+ This skill validates that core components are installed and infrastructure is running.
18
23
 
19
- 1. Checks Rust root workspace.
20
- 2. Verifies agentd is installed.
21
- 3. Builds Node workspaces.
22
- 4. Confirms Docker services are active.
24
+ 1. Builds Node workspaces.
25
+ 2. Confirms Docker services are active and healthy.
26
+ 3. Optionally verifies smith-services binaries are installed (non-fatal if missing).
27
+ 4. Optionally verifies agentd is installed (non-fatal if missing).
23
28
 
24
29
  ## Prerequisites
25
30
 
@@ -28,25 +33,27 @@ This skill validates that core components are buildable and infrastructure is ru
28
33
 
29
34
  ## Expected Output
30
35
 
31
- - All check/build commands exit with status 0.
32
- - `docker compose ps` shows core services up.
36
+ - All build commands exit with status 0.
37
+ - `docker compose ps` shows core services as `running` or `healthy`.
33
38
 
34
39
  ## Reading Results
35
40
 
36
41
  Installation is considered healthy when:
37
42
 
38
- - Rust checks pass.
39
43
  - Node workspace build passes.
40
44
  - Core services (`nats`, `postgres`, `envoy`, `mcp-index`) are running.
41
45
 
46
+ smith-services and agentd are supplementary components — their absence does not block the core stack.
47
+
42
48
  ## Common Failures
43
49
 
44
50
  | Symptom | Cause | Fix |
45
51
  |---------|-------|-----|
46
- | Rust check failures | Code/toolchain mismatch | Fix compile issues and rerun |
47
52
  | npm build failures | TS/dependency issue | Resolve workspace build errors |
48
53
  | Containers not running | Compose/startup failure | Inspect compose logs and restart |
49
54
  | Intermittent health failures | Service startup race | Wait and re-run verification |
55
+ | smith-chat-daemon --help fails | Platform binary not available | Non-fatal; build from source with cargo if needed |
56
+ | agentd --version fails | Platform binary not available | Non-fatal; build from source if needed |
50
57
 
51
58
  ## Notes
52
59