@1claw/cli 0.35.1 → 0.36.1

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
@@ -1,4 +1,4 @@
1
- # @1claw/cli (v0.35.0)
1
+ # @1claw/cli (v0.36.1)
2
2
 
3
3
  Command-line interface for [1Claw](https://1claw.xyz) — HSM-backed secret management for AI agents and humans.
4
4
 
@@ -586,15 +586,45 @@ AI Client (Claude, Cursor, etc.)
586
586
  `1claw init --docker` provisions a secure agent runtime inside a Docker container in one command. The container ships with the 1Claw MCP server and a lightweight chat UI. Crucially, the container **never receives the agent API key** — the host daemon injects credentials over a read-only Unix-socket mount, preserving the same trust boundary as local daemon mode.
587
587
 
588
588
  ```bash
589
- 1claw init --docker # Basic secure agent
589
+ 1claw init --docker # Basic secure agent (chat LLM via Shroud)
590
590
  1claw init --docker --module=ampersend # With x402 payments
591
591
  1claw init --docker --module=ampersend,onchain --port 8080
592
- 1claw init --docker --local # Fully offline — no cloud account
592
+ 1claw init --docker --llm-provider anthropic --llm-model claude-3-5-haiku-latest
593
+ 1claw init --docker --local # Fully offline — no cloud account, no LLM
593
594
  1claw init --docker --list-modules # List available modules
594
595
  ```
595
596
 
596
597
  When the cloud is reachable, `init` provisions an agent + vault + read policy and stores the agent key in your local vault (the daemon injects it toward `*.1claw.xyz`). With `--local`, nothing touches the cloud. The base image is built from bundled assets if it isn't already present, so the flow works offline.
597
598
 
599
+ ### Chat with an LLM through Shroud
600
+
601
+ In cloud mode (not `--local`), the embedded chat UI is wired to an LLM **through Shroud** — type a message and it routes via the host daemon, which injects the `X-Shroud-Agent-Key` header (the container never sees the key). Shroud inspects the prompt (redaction, PII, injection detection) and forwards to the provider.
602
+
603
+ - Pick the model with `--llm-provider` (default `openai`) and `--llm-model` (default per provider, e.g. `gpt-4o-mini`).
604
+ - `--local` mode has **no LLM** (no cloud agent → no Shroud credential); only the `/help`, `/secrets`, `/info`, and `/proxy` slash commands work.
605
+
606
+ **Where does the provider key come from?** Shroud resolves it in this order — pick whichever you prefer:
607
+
608
+ | Option | How | Where the key lives |
609
+ | --- | --- | --- |
610
+ | **1Claw Token Billing** | Enable LLM Token Billing for the org (Dashboard → Billing, or `POST /v1/billing/llm-token-billing/subscribe`). Shroud routes through the Stripe AI Gateway. | No provider key — billed to 1Claw |
611
+ | **1Claw vault** | `--llm-api-key <key>` (default `--llm-key-store cloud`) stores it at `providers/<provider>/api-key`; or store it yourself with `1claw secret put`. Shroud auto-fetches it with the agent JWT. | Your 1Claw cloud vault |
612
+ | **Local CLI vault (BYOK)** | `--llm-api-key <key> --llm-key-store local`, or `--llm-api-key-secret <name>` to reuse an existing local secret. The daemon injects it as the `X-Shroud-Api-Key` header. | Your local CLI vault (`~/.config/1claw`) |
613
+
614
+ ```bash
615
+ # Bill model usage to 1Claw (no provider key):
616
+ 1claw init --docker # then enable LLM Token Billing
617
+
618
+ # Provider key stored in your 1Claw vault (Shroud auto-fetches):
619
+ 1claw init --docker --llm-api-key sk-... # --llm-key-store cloud (default)
620
+
621
+ # Provider key stored in the local CLI vault (daemon injects, container never sees it):
622
+ 1claw init --docker --llm-api-key sk-... --llm-key-store local
623
+ 1claw init --docker --llm-api-key-secret openai-key # reuse an existing local secret
624
+ ```
625
+
626
+ In every case the container **never receives the provider key** — it's resolved server-side by Shroud (cloud vault / token billing) or injected by the host daemon (local BYOK).
627
+
598
628
  ### Modules
599
629
 
600
630
  Composable container extensions defined by `module.yaml` manifests bundled with the CLI:
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuEpC,eAAO,MAAM,WAAW,SAoBlB,CAAC"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA+EpC,eAAO,MAAM,WAAW,SA0ClB,CAAC"}
@@ -6,13 +6,13 @@ import { api } from "../client.js";
6
6
  import { getToken } from "../config.js";
7
7
  import { loginWithDevice } from "../auth.js";
8
8
  import { printSuccess, printError, printWarning, printInfo, printKeyValue, printTable, } from "../output.js";
9
- import { vaultExists, createVault, loadVault, saveVault, addSecret, } from "../local-vault.js";
9
+ import { vaultExists, createVault, loadVault, saveVault, addSecret, getSecret, } from "../local-vault.js";
10
10
  import { loadPolicy, savePolicy, setSecretPolicy, } from "../local-policy.js";
11
11
  import { dockerAvailable, dockerDaemonError, dockerRun, dockerContainerStatus, dockerLogs, } from "../lib/docker-client.js";
12
12
  import { ensureBaseImage, buildModuleImage, DEFAULT_BASE_IMAGE, } from "../lib/image-build.js";
13
13
  import { listModules, resolveModules, } from "../modules/registry.js";
14
14
  import { generateContainerName, isValidContainerName, sanitizeName, loadContainerState, saveContainerState, findAvailablePort, MANAGED_LABEL, } from "../lib/container-config.js";
15
- import { daemonSocketPath, daemonHealthy, startDaemonDetached, } from "../lib/daemon-control.js";
15
+ import { daemonSocketPath, daemonHealthy, startDaemonDetached, stopDaemon, } from "../lib/daemon-control.js";
16
16
  export const initCommand = new Command("init")
17
17
  .description("Initialize a secure agent runtime in a Docker container")
18
18
  .option("--docker [image]", "Run in Docker container (default: 1claw/agent:stable)")
@@ -23,6 +23,11 @@ export const initCommand = new Command("init")
23
23
  .option("--local", "Fully offline — no cloud provisioning")
24
24
  .option("--agent-key <key>", "Use an existing agent key (skip provisioning)")
25
25
  .option("--detach", "Run the container in the background")
26
+ .option("--llm-provider <provider>", "LLM provider for the chat UI via Shroud (openai, anthropic, google, ...)", "openai")
27
+ .option("--llm-model <model>", "LLM model for the chat UI via Shroud (e.g. gpt-4o-mini, claude-3-5-haiku-latest)")
28
+ .option("--llm-api-key <key>", "Provider API key for the chat LLM (stored, never passed to the container)")
29
+ .option("--llm-key-store <where>", "Where to store --llm-api-key: 'cloud' (1Claw vault, Shroud auto-fetches) or 'local' (CLI vault, daemon injects)", "cloud")
30
+ .option("--llm-api-key-secret <name>", "Use an existing LOCAL vault secret as the provider key (daemon injects it as X-Shroud-Api-Key)")
26
31
  .action(async (opts) => {
27
32
  try {
28
33
  await initAction(opts);
@@ -32,6 +37,20 @@ export const initCommand = new Command("init")
32
37
  process.exit(1);
33
38
  }
34
39
  });
40
+ function defaultModelForProvider(provider) {
41
+ switch (provider.toLowerCase()) {
42
+ case "anthropic":
43
+ return "claude-3-5-haiku-latest";
44
+ case "google":
45
+ case "gemini":
46
+ return "gemini-2.5-flash";
47
+ case "mistral":
48
+ return "mistral-small-latest";
49
+ case "openai":
50
+ default:
51
+ return "gpt-4o-mini";
52
+ }
53
+ }
35
54
  function parseModuleNames(input) {
36
55
  if (!input)
37
56
  return [];
@@ -130,7 +149,18 @@ async function provisionCloudResources(containerName) {
130
149
  permissions: ["read"],
131
150
  },
132
151
  });
133
- policySpinner.succeed("Vault bound; read policy on secrets/* granted.");
152
+ // Allow the agent to read LLM provider keys it stores in 1Claw, so
153
+ // Shroud can auto-fetch `providers/{provider}/api-key` for chat.
154
+ await api(`/vaults/${vaultId}/policies`, {
155
+ method: "POST",
156
+ body: {
157
+ principal_type: "agent",
158
+ principal_id: agentId,
159
+ secret_path_pattern: "providers/*",
160
+ permissions: ["read"],
161
+ },
162
+ });
163
+ policySpinner.succeed("Vault bound; read policies on secrets/* and providers/* granted.");
134
164
  }
135
165
  catch (err) {
136
166
  policySpinner.fail("Failed to bind vault / create policy.");
@@ -167,41 +197,42 @@ async function resolvePassphrase(confirm) {
167
197
  return passphrase;
168
198
  }
169
199
  /**
170
- * Ensure a local vault exists, optionally store the agent key + daemon policy,
171
- * and make sure the daemon is running so the container can reach it.
200
+ * Ensure a local vault exists, optionally store one or more secrets (each with
201
+ * its daemon injection policy), and make sure the daemon is running so the
202
+ * container can reach it. If the daemon is already running and we wrote new
203
+ * secrets, it is reloaded (the daemon loads the vault into memory at startup).
172
204
  */
173
205
  async function ensureDaemonRunning(opts) {
174
206
  const socketPath = daemonSocketPath();
175
207
  const alreadyRunning = await daemonHealthy(socketPath);
176
- // We need the passphrase to create/unlock the vault for key storage and/or
177
- // to start the daemon. If the daemon is already running and we have nothing
178
- // to store, we can skip vault work entirely.
179
- const needVaultWrite = !!opts.storeKey;
208
+ const storeKeys = opts.storeKeys ?? [];
209
+ const needVaultWrite = storeKeys.length > 0;
180
210
  const needStart = !alreadyRunning;
211
+ // If we're writing secrets but the daemon is already up, it must be
212
+ // reloaded — otherwise the container can't reach the freshly stored keys.
213
+ const needReload = needVaultWrite && alreadyRunning;
181
214
  if (!needVaultWrite && !needStart) {
182
215
  return socketPath;
183
216
  }
184
217
  const creatingVault = !vaultExists();
185
218
  let passphrase;
186
- if (needVaultWrite || needStart) {
187
- if (creatingVault) {
188
- printInfo("No local vault found — creating one for the daemon.");
189
- passphrase = await resolvePassphrase(true);
190
- createVault(passphrase);
219
+ if (creatingVault) {
220
+ printInfo("No local vault found — creating one for the daemon.");
221
+ passphrase = await resolvePassphrase(true);
222
+ createVault(passphrase);
223
+ }
224
+ else {
225
+ passphrase = await resolvePassphrase(false);
226
+ // Verify the passphrase up front so we fail with a clear message
227
+ // instead of an opaque "daemon did not become ready in time".
228
+ try {
229
+ loadVault(passphrase);
191
230
  }
192
- else {
193
- passphrase = await resolvePassphrase(false);
194
- // Verify the passphrase up front so we fail with a clear message
195
- // instead of an opaque "daemon did not become ready in time".
196
- try {
197
- loadVault(passphrase);
198
- }
199
- catch {
200
- throw new Error("Wrong passphrase for the existing local vault.\n" +
201
- " • If you mistyped it, re-run and enter the correct passphrase.\n" +
202
- " • If you've forgotten it, reset the vault with: 1claw local destroy --force\n" +
203
- " (this permanently deletes the old local vault and its secrets), then re-run.");
204
- }
231
+ catch {
232
+ throw new Error("Wrong passphrase for the existing local vault.\n" +
233
+ " • If you mistyped it, re-run and enter the correct passphrase.\n" +
234
+ " • If you've forgotten it, reset the vault with: 1claw local destroy --force\n" +
235
+ " (this permanently deletes the old local vault and its secrets), then re-run.");
205
236
  }
206
237
  }
207
238
  if (needVaultWrite && passphrase) {
@@ -212,17 +243,33 @@ async function ensureDaemonRunning(opts) {
212
243
  catch {
213
244
  throw new Error("Wrong passphrase or corrupted local vault.");
214
245
  }
215
- addSecret(vault, opts.storeKey.localVaultPath, opts.storeKey.apiKey, "api_key");
216
- saveVault(vault, passphrase);
217
- // Allow the daemon to inject this key toward the 1Claw API only.
218
246
  const policy = loadPolicy();
219
- setSecretPolicy(policy, opts.storeKey.localVaultPath, {
220
- allowed_hosts: ["api.1claw.xyz", "*.1claw.xyz"],
221
- inject_as: "bearer",
222
- });
247
+ for (const spec of storeKeys) {
248
+ if (spec.value !== undefined) {
249
+ addSecret(vault, spec.path, spec.value, spec.type ?? "api_key");
250
+ }
251
+ else if (!getSecret(vault, spec.path)) {
252
+ throw new Error(`Provider key secret "${spec.path}" not found in the local vault.\n` +
253
+ ` Add it first: 1claw local add ${spec.path}`);
254
+ }
255
+ setSecretPolicy(policy, spec.path, spec.policy);
256
+ }
257
+ saveVault(vault, passphrase);
223
258
  savePolicy(policy);
224
259
  }
225
- if (needStart) {
260
+ if (needReload) {
261
+ const spinner = ora("Reloading daemon to pick up new secrets...").start();
262
+ await stopDaemon(socketPath);
263
+ const ok = await startDaemonDetached(passphrase, socketPath);
264
+ if (!ok) {
265
+ spinner.fail("Daemon did not come back up.");
266
+ throw new Error("Failed to reload the daemon.\n" +
267
+ " • Check status: 1claw daemon status\n" +
268
+ " • Start it manually (shows errors): 1claw daemon start");
269
+ }
270
+ spinner.succeed(`Daemon reloaded on ${socketPath}`);
271
+ }
272
+ else if (needStart) {
226
273
  if (!passphrase)
227
274
  passphrase = await resolvePassphrase(false);
228
275
  const spinner = ora("Starting local daemon...").start();
@@ -330,19 +377,96 @@ async function initAction(opts) {
330
377
  vaultId = result.vaultId;
331
378
  agentApiKey = result.apiKey;
332
379
  }
333
- // ── Step 4/5: Store key + start daemon ───────────────────────────────
334
- if (agentApiKey && !opts.local) {
335
- localVaultPath = `__docker/${sanitizeName(containerName)}/agent-key`;
380
+ // ── Step 4/5: Store key(s) + start daemon ────────────────────────────
381
+ // Shroud authenticates via the X-Shroud-Agent-Key header in `agent_id:key`
382
+ // form. We have a clean id+key only on the provisioned path; for --agent-key
383
+ // the user can pass `agent_id:key` directly.
384
+ const sid = sanitizeName(containerName);
385
+ const storeKeys = [];
386
+ let shroudAgentKey = null;
387
+ if (agentId && agentApiKey) {
388
+ shroudAgentKey = `${agentId}:${agentApiKey}`;
389
+ }
390
+ else if (agentApiKey && agentApiKey.includes(":")) {
391
+ shroudAgentKey = agentApiKey;
392
+ }
393
+ if (agentApiKey) {
394
+ // Generic bearer key toward the 1Claw API (used by /proxy demos).
395
+ localVaultPath = `__docker/${sid}/agent-key`;
396
+ storeKeys.push({
397
+ path: localVaultPath,
398
+ value: agentApiKey,
399
+ type: "api_key",
400
+ policy: {
401
+ allowed_hosts: ["api.1claw.xyz", "*.1claw.xyz"],
402
+ inject_as: "bearer",
403
+ },
404
+ });
405
+ }
406
+ // Shroud LLM key: injected as the X-Shroud-Agent-Key header toward Shroud.
407
+ let shroudSecretPath = null;
408
+ if (shroudAgentKey && !opts.local) {
409
+ shroudSecretPath = `__docker/${sid}/shroud-key`;
410
+ storeKeys.push({
411
+ path: shroudSecretPath,
412
+ value: shroudAgentKey,
413
+ type: "api_key",
414
+ policy: {
415
+ allowed_hosts: ["shroud.1claw.xyz", "*.1claw.xyz"],
416
+ inject_as: "header",
417
+ header_name: "X-Shroud-Agent-Key",
418
+ },
419
+ });
336
420
  }
337
- else if (agentApiKey && opts.local) {
338
- // Even in local mode, an explicitly provided key is stored for the daemon.
339
- localVaultPath = `__docker/${sanitizeName(containerName)}/agent-key`;
421
+ // ── LLM provider key (BYOK) — three storage options ──────────────────
422
+ // 1) Cloud (1Claw vault): Shroud auto-fetches providers/{provider}/api-key.
423
+ // 2) Local (CLI vault): the daemon injects it as X-Shroud-Api-Key.
424
+ // 3) Existing local secret by name: same as (2) but reuse a stored secret.
425
+ const llmProvider = opts.llmProvider || "openai";
426
+ const keyStore = (opts.llmKeyStore || "cloud").toLowerCase();
427
+ const byokPolicy = {
428
+ allowed_hosts: ["shroud.1claw.xyz", "*.1claw.xyz"],
429
+ inject_as: "header",
430
+ header_name: "X-Shroud-Api-Key",
431
+ };
432
+ let shroudApiKeySecretPath = null;
433
+ let cloudKeyToStore = null;
434
+ if (opts.llmApiKeySecret) {
435
+ // Reference an existing LOCAL vault secret as the provider key. No value
436
+ // → ensureDaemonRunning only sets the policy and verifies it exists.
437
+ shroudApiKeySecretPath = opts.llmApiKeySecret;
438
+ storeKeys.push({ path: shroudApiKeySecretPath, policy: byokPolicy });
439
+ }
440
+ else if (opts.llmApiKey) {
441
+ if (keyStore === "local" || opts.local) {
442
+ shroudApiKeySecretPath = `__docker/${sid}/llm-api-key`;
443
+ storeKeys.push({
444
+ path: shroudApiKeySecretPath,
445
+ value: opts.llmApiKey,
446
+ type: "api_key",
447
+ policy: byokPolicy,
448
+ });
449
+ }
450
+ else {
451
+ // cloud (default): stored in the 1Claw vault after provisioning.
452
+ cloudKeyToStore = opts.llmApiKey;
453
+ }
340
454
  }
341
455
  const socketPath = await ensureDaemonRunning({
342
- storeKey: agentApiKey && localVaultPath
343
- ? { localVaultPath, apiKey: agentApiKey }
344
- : undefined,
456
+ storeKeys: storeKeys.length ? storeKeys : undefined,
345
457
  });
458
+ // Store the provider key in the 1Claw cloud vault (Shroud auto-fetches it).
459
+ if (cloudKeyToStore && vaultId && !opts.local) {
460
+ const keySpinner = ora(`Storing ${llmProvider} key in 1Claw vault...`).start();
461
+ try {
462
+ await api(`/vaults/${vaultId}/secrets/${encodeURIComponent(`providers/${llmProvider}/api-key`)}`, { method: "PUT", body: { type: "api_key", value: cloudKeyToStore } });
463
+ keySpinner.succeed(`Provider key stored at providers/${llmProvider}/api-key (1Claw vault).`);
464
+ }
465
+ catch (err) {
466
+ keySpinner.fail("Failed to store provider key in the vault.");
467
+ throw err;
468
+ }
469
+ }
346
470
  // ── Step 6/7: Build or pull image ────────────────────────────────────
347
471
  const baseImage = typeof opts.docker === "string" && opts.docker.length
348
472
  ? opts.docker
@@ -388,36 +512,85 @@ async function initAction(opts) {
388
512
  }
389
513
  // ── Step 8: Run container ────────────────────────────────────────────
390
514
  const requestedPort = parseInt(opts.port, 10) || 3000;
391
- const port = await findAvailablePort(requestedPort);
515
+ let port = await findAvailablePort(requestedPort);
392
516
  if (port !== requestedPort) {
393
517
  printWarning(`Port ${requestedPort} busy — using ${port}.`);
394
518
  }
519
+ const containerMode = opts.local ? "local" : "cloud";
395
520
  const env = {
396
- ONECLAW_LOCAL_VAULT: "true",
521
+ ONECLAW_MODE: containerMode,
397
522
  ONECLAW_DAEMON_SOCKET: "/run/1claw/daemon.sock",
398
523
  ONECLAW_CONTAINER_MODULES: modules.map((m) => m.name).join(","),
399
524
  };
525
+ if (opts.local)
526
+ env.ONECLAW_LOCAL_VAULT = "true";
400
527
  if (agentId)
401
528
  env.ONECLAW_AGENT_ID = agentId;
529
+ // Wire the chat UI to an LLM through Shroud (key stays in the host daemon).
530
+ const llmWired = !!shroudSecretPath;
531
+ if (llmWired) {
532
+ const model = opts.llmModel || defaultModelForProvider(llmProvider);
533
+ env.ONECLAW_LLM_VIA_SHROUD = "true";
534
+ env.ONECLAW_SHROUD_URL =
535
+ process.env.ONECLAW_SHROUD_URL || "https://shroud.1claw.xyz";
536
+ env.ONECLAW_SHROUD_SECRET = shroudSecretPath;
537
+ env.ONECLAW_SHROUD_PROVIDER = llmProvider;
538
+ env.ONECLAW_SHROUD_MODEL = model;
539
+ // BYOK: the daemon also injects this secret as the X-Shroud-Api-Key
540
+ // header so the container never sees the provider key.
541
+ if (shroudApiKeySecretPath) {
542
+ env.ONECLAW_SHROUD_API_KEY_SECRET = shroudApiKeySecretPath;
543
+ }
544
+ }
545
+ else if (shroudApiKeySecretPath || cloudKeyToStore) {
546
+ printWarning("An LLM provider key was supplied but there's no cloud agent to authenticate to Shroud " +
547
+ "(this is --local or no provisioning). The chat UI can't reach Shroud without an agent key.");
548
+ }
402
549
  const runSpinner = ora(`Starting container ${containerName}...`).start();
550
+ const userPinnedPort = opts.port !== undefined && opts.port !== "3000";
551
+ const MAX_PORT_RETRIES = 5;
403
552
  let containerId;
404
- try {
405
- containerId = await dockerRun({
406
- image: imageToRun,
407
- name: containerName,
408
- ports: { [String(port)]: "3000" },
409
- volumes: { [socketPath]: "/run/1claw/daemon.sock:ro" },
410
- env,
411
- detach: true,
412
- restart: "unless-stopped",
413
- labels: { [MANAGED_LABEL]: "true", "1claw.name": containerName },
414
- });
415
- runSpinner.succeed(`Container started (${containerId.slice(0, 12)})`);
416
- }
417
- catch (err) {
418
- runSpinner.fail("Failed to start container.");
419
- throw err;
553
+ for (let attempt = 0;; attempt++) {
554
+ try {
555
+ containerId = await dockerRun({
556
+ image: imageToRun,
557
+ name: containerName,
558
+ ports: { [String(port)]: "3000" },
559
+ volumes: { [socketPath]: "/run/1claw/daemon.sock:ro" },
560
+ env,
561
+ detach: true,
562
+ restart: "unless-stopped",
563
+ labels: { [MANAGED_LABEL]: "true", "1claw.name": containerName },
564
+ });
565
+ runSpinner.succeed(`Container started (${containerId.slice(0, 12)})`);
566
+ break;
567
+ }
568
+ catch (err) {
569
+ const msg = err instanceof Error ? err.message : String(err);
570
+ const portConflict = /port is already allocated|address already in use|Bind for [^ ]+ failed/i.test(msg);
571
+ // The bind pre-check can miss ports held only inside the Docker VM,
572
+ // and a race can let another process grab the port first. Auto-retry
573
+ // on the next free port unless the user explicitly pinned --port.
574
+ if (portConflict && !userPinnedPort && attempt < MAX_PORT_RETRIES) {
575
+ const nextPort = await findAvailablePort(port + 1);
576
+ runSpinner.text = `Port ${port} already allocated — retrying on ${nextPort}...`;
577
+ port = nextPort;
578
+ continue;
579
+ }
580
+ runSpinner.fail("Failed to start container.");
581
+ if (portConflict) {
582
+ printError(`Port ${port} is already in use by another process or container.`);
583
+ printInfo("Fix it with one of:");
584
+ printInfo(` • Pick a free port: 1claw init --docker --port <port>`);
585
+ printInfo(` • See what's running: 1claw containers list`);
586
+ printInfo(` • Stop a 1claw agent: 1claw containers stop <name>`);
587
+ printInfo(` • Find the holder: docker ps --filter publish=${port}`);
588
+ }
589
+ throw err;
590
+ }
420
591
  }
592
+ if (!containerId)
593
+ throw new Error("Failed to start container.");
421
594
  // ── Step 9: Wait healthy + summary ───────────────────────────────────
422
595
  const healthSpinner = ora("Waiting for the agent to become healthy...").start();
423
596
  const healthy = await waitForHealthy(port);
@@ -438,7 +611,7 @@ async function initAction(opts) {
438
611
  createdAt: new Date().toISOString(),
439
612
  localVaultPath,
440
613
  customImage: null,
441
- mode: "local",
614
+ mode: containerMode,
442
615
  };
443
616
  saveContainerState(state);
444
617
  console.log();
@@ -451,9 +624,35 @@ async function initAction(opts) {
451
624
  ["Modules", modules.map((m) => m.name).join(", ") || chalk.dim("none")],
452
625
  ["Image", imageToRun],
453
626
  ["Shroud", agentId ? "enabled" : chalk.dim("n/a")],
627
+ [
628
+ "Chat LLM",
629
+ llmWired
630
+ ? chalk.green(`via Shroud (${env.ONECLAW_SHROUD_PROVIDER}/${env.ONECLAW_SHROUD_MODEL})`)
631
+ : chalk.dim("none — slash commands only"),
632
+ ],
633
+ [
634
+ "LLM key source",
635
+ !llmWired
636
+ ? chalk.dim("n/a")
637
+ : shroudApiKeySecretPath
638
+ ? chalk.green("local vault (daemon → X-Shroud-Api-Key)")
639
+ : cloudKeyToStore
640
+ ? chalk.green(`1Claw vault (providers/${llmProvider}/api-key)`)
641
+ : chalk.cyan("1Claw vault or token billing (Shroud resolves)"),
642
+ ],
454
643
  ["Key injection", chalk.green("daemon (container never sees the key)")],
455
644
  ]);
456
645
  console.log();
646
+ if (llmWired && !shroudApiKeySecretPath && !cloudKeyToStore) {
647
+ printInfo("No provider key was supplied. Shroud will use, in order: a key in your " +
648
+ "1Claw vault at providers/<provider>/api-key, or 1Claw LLM Token Billing.");
649
+ console.log(chalk.dim(" Store one in 1Claw: 1claw secret put providers/" +
650
+ llmProvider +
651
+ "/api-key -v <vault>\n" +
652
+ " Or store it locally: re-run with --llm-api-key <key> --llm-key-store local\n" +
653
+ " Or bill to 1Claw: enable LLM Token Billing (Dashboard → Billing)."));
654
+ console.log();
655
+ }
457
656
  if (modules.some((m) => m.required_secrets.length)) {
458
657
  printInfo("Some modules expect secrets in your vault:");
459
658
  for (const m of modules) {
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  FROM node:20-alpine AS base
2
2
 
3
+ # Bumped by the CLI when bundled assets (chat UI, entrypoint) change, so an
4
+ # existing `1claw/agent:stable` is rebuilt instead of silently reused.
5
+ ARG ONECLAW_BASE_VERSION=dev
6
+ LABEL org.1claw.base-version=$ONECLAW_BASE_VERSION
7
+
3
8
  RUN apk add --no-cache curl tini
4
9
 
5
10
  WORKDIR /app
@@ -20,8 +25,9 @@ RUN chmod +x /app/entrypoint.sh /app/healthcheck.sh
20
25
  # Module extension point: modules drop assets under /app/modules
21
26
  RUN mkdir -p /app/modules /run/1claw
22
27
 
28
+ # NOTE: mode (local vs cloud) and LLM wiring are passed at `docker run` time via
29
+ # -e flags by `1claw init`; nothing about the vault is baked into the image.
23
30
  ENV NODE_ENV=production
24
- ENV ONECLAW_LOCAL_VAULT=true
25
31
  ENV ONECLAW_DAEMON_SOCKET=/run/1claw/daemon.sock
26
32
  ENV CHAT_UI_PORT=3000
27
33