@1claw/cli 0.34.7 → 0.35.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.
Files changed (77) hide show
  1. package/README.md +66 -5
  2. package/dist/bin/1claw.js +0 -0
  3. package/dist/src/commands/containers.d.ts +3 -0
  4. package/dist/src/commands/containers.d.ts.map +1 -0
  5. package/dist/src/commands/containers.js +130 -0
  6. package/dist/src/commands/containers.js.map +1 -0
  7. package/dist/src/commands/daemon.js +18 -9
  8. package/dist/src/commands/daemon.js.map +1 -1
  9. package/dist/src/commands/deploy.d.ts +3 -0
  10. package/dist/src/commands/deploy.d.ts.map +1 -0
  11. package/dist/src/commands/deploy.js +158 -0
  12. package/dist/src/commands/deploy.js.map +1 -0
  13. package/dist/src/commands/eject.d.ts +3 -0
  14. package/dist/src/commands/eject.d.ts.map +1 -0
  15. package/dist/src/commands/eject.js +84 -0
  16. package/dist/src/commands/eject.js.map +1 -0
  17. package/dist/src/commands/init.d.ts +3 -0
  18. package/dist/src/commands/init.d.ts.map +1 -0
  19. package/dist/src/commands/init.js +490 -0
  20. package/dist/src/commands/init.js.map +1 -0
  21. package/dist/src/commands/local.d.ts.map +1 -1
  22. package/dist/src/commands/local.js +61 -14
  23. package/dist/src/commands/local.js.map +1 -1
  24. package/dist/src/commands/publish.d.ts +3 -0
  25. package/dist/src/commands/publish.d.ts.map +1 -0
  26. package/dist/src/commands/publish.js +153 -0
  27. package/dist/src/commands/publish.js.map +1 -0
  28. package/dist/src/deploy/google-cloud/main.tf +74 -0
  29. package/dist/src/deploy/google-cloud/outputs.tf +9 -0
  30. package/dist/src/deploy/google-cloud/variables.tf +44 -0
  31. package/dist/src/docker/base/Dockerfile +34 -0
  32. package/dist/src/docker/base/chat-ui/index.html +110 -0
  33. package/dist/src/docker/base/chat-ui/server.js +233 -0
  34. package/dist/src/docker/base/entrypoint.sh +61 -0
  35. package/dist/src/docker/base/healthcheck.sh +2 -0
  36. package/dist/src/docker/compose.yaml +20 -0
  37. package/dist/src/docker/templates/Dockerfile.tmpl +7 -0
  38. package/dist/src/index.d.ts.map +1 -1
  39. package/dist/src/index.js +11 -0
  40. package/dist/src/index.js.map +1 -1
  41. package/dist/src/lib/container-config.d.ts +43 -0
  42. package/dist/src/lib/container-config.d.ts.map +1 -0
  43. package/dist/src/lib/container-config.js +98 -0
  44. package/dist/src/lib/container-config.js.map +1 -0
  45. package/dist/src/lib/daemon-control.d.ts +10 -0
  46. package/dist/src/lib/daemon-control.d.ts.map +1 -0
  47. package/dist/src/lib/daemon-control.js +58 -0
  48. package/dist/src/lib/daemon-control.js.map +1 -0
  49. package/dist/src/lib/docker-client.d.ts +58 -0
  50. package/dist/src/lib/docker-client.d.ts.map +1 -0
  51. package/dist/src/lib/docker-client.js +193 -0
  52. package/dist/src/lib/docker-client.js.map +1 -0
  53. package/dist/src/lib/image-build.d.ts +30 -0
  54. package/dist/src/lib/image-build.d.ts.map +1 -0
  55. package/dist/src/lib/image-build.js +74 -0
  56. package/dist/src/lib/image-build.js.map +1 -0
  57. package/dist/src/lib/paths.d.ts +14 -0
  58. package/dist/src/lib/paths.d.ts.map +1 -0
  59. package/dist/src/lib/paths.js +38 -0
  60. package/dist/src/lib/paths.js.map +1 -0
  61. package/dist/src/modules/ampersend/config.json +8 -0
  62. package/dist/src/modules/ampersend/module.yaml +32 -0
  63. package/dist/src/modules/ampersend/startup.sh +4 -0
  64. package/dist/src/modules/elizaos/config.json +7 -0
  65. package/dist/src/modules/elizaos/module.yaml +30 -0
  66. package/dist/src/modules/elizaos/startup.sh +3 -0
  67. package/dist/src/modules/langchain/module.yaml +30 -0
  68. package/dist/src/modules/langchain/startup.sh +3 -0
  69. package/dist/src/modules/onchain/module.yaml +28 -0
  70. package/dist/src/modules/onchain/startup.sh +3 -0
  71. package/dist/src/modules/registry.d.ts +48 -0
  72. package/dist/src/modules/registry.d.ts.map +1 -0
  73. package/dist/src/modules/registry.js +201 -0
  74. package/dist/src/modules/registry.js.map +1 -0
  75. package/dist/src/modules/scaffold-agent/module.yaml +30 -0
  76. package/dist/src/modules/scaffold-agent/startup.sh +3 -0
  77. package/package.json +4 -3
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @1claw/cli (v0.34.5)
1
+ # @1claw/cli (v0.35.0)
2
2
 
3
3
  Command-line interface for [1Claw](https://1claw.xyz) — HSM-backed secret management for AI agents and humans.
4
4
 
@@ -11,7 +11,7 @@ Designed for CI/CD pipelines, DevOps workflows, and server environments.
11
11
  ### Homebrew (macOS / Linux)
12
12
 
13
13
  ```bash
14
- brew install 1clawAI/tap/1claw
14
+ brew install 1clawAI/tap/oneclaw
15
15
  ```
16
16
 
17
17
  ### npm
@@ -530,11 +530,15 @@ Store secrets locally in an encrypted vault — no cloud required. Secrets are e
530
530
  1claw local sync -v <vault-id> # Push local secrets to cloud vault
531
531
  1claw local sync --pull -v <id> # Pull cloud secrets into local vault
532
532
  1claw local status # Show vault info (count, sync status)
533
- 1claw local destroy # Permanently delete local vault
533
+ 1claw local destroy # Permanently delete local vault (prompts)
534
+ 1claw local destroy --force # Delete without the confirm prompt
535
+ 1claw local reset # Alias for destroy
534
536
  ```
535
537
 
536
538
  Vault file: `~/.config/1claw/local-vault.enc` (0600 permissions, safe to back up).
537
539
 
540
+ **Forgot your passphrase?** The vault is encrypted with a passphrase-derived key, so there is no recovery of the contents. To start over, run `1claw local destroy --force` (no passphrase required — it also stops any running daemon holding the old vault), then `1claw local init`.
541
+
538
542
  ## Local Daemon (Secret Proxy)
539
543
 
540
544
  The daemon serves secrets over a Unix socket and injects them into HTTP requests without exposing values to the AI model. This provides a trust boundary: the model knows *which* secret to use and *where* to send it, but never sees the raw value.
@@ -544,8 +548,8 @@ The daemon serves secrets over a Unix socket and injects them into HTTP requests
544
548
  1claw daemon start
545
549
 
546
550
  # Manage per-secret policies (which hosts can receive each secret)
547
- 1claw daemon policy add STRIPE_KEY --hosts api.stripe.com
548
- 1claw daemon policy add OPENAI_KEY --hosts api.openai.com,*.openai.com
551
+ 1claw daemon policy add STRIPE_KEY --hosts api.stripe.com --inject-as bearer
552
+ 1claw daemon policy add OPENAI_KEY --hosts api.openai.com,*.openai.com --inject-as bearer
549
553
  1claw daemon policy list
550
554
  1claw daemon policy remove STRIPE_KEY
551
555
 
@@ -577,6 +581,63 @@ AI Client (Claude, Cursor, etc.)
577
581
  └─ Secret Proxy (injects credentials into HTTP requests)
578
582
  ```
579
583
 
584
+ ## Containerized Agent Runtime (`init --docker`)
585
+
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
+
588
+ ```bash
589
+ 1claw init --docker # Basic secure agent
590
+ 1claw init --docker --module=ampersend # With x402 payments
591
+ 1claw init --docker --module=ampersend,onchain --port 8080
592
+ 1claw init --docker --local # Fully offline — no cloud account
593
+ 1claw init --docker --list-modules # List available modules
594
+ ```
595
+
596
+ 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
+ ### Modules
599
+
600
+ Composable container extensions defined by `module.yaml` manifests bundled with the CLI:
601
+
602
+ | Module | Description |
603
+ | --- | --- |
604
+ | `ampersend` | x402 payment control layer (session keys, Base USDC) |
605
+ | `onchain` | Multi-chain signing + Intents API tools |
606
+ | `langchain` | LangChain / LangGraph agent runtime (Shroud-routed) |
607
+ | `elizaos` | ElizaOS character runtime with vault-backed secrets |
608
+ | `scaffold-agent` | Scaffold-ETH 2 dApp agent (depends on `onchain`) |
609
+
610
+ Modules resolve dependencies, detect conflicts, and are topologically sorted. When modules are present, the CLI builds a custom image (`FROM 1claw/agent:stable` + module layers).
611
+
612
+ ### Managing containers
613
+
614
+ ```bash
615
+ 1claw containers list # List managed agent containers
616
+ 1claw containers info <name> # Show details
617
+ 1claw containers logs <name> # Tail logs
618
+ 1claw containers stop <name> # Stop a container
619
+ 1claw containers rm <name> [--force] # Remove container + local state
620
+ ```
621
+
622
+ ### Publish & eject
623
+
624
+ ```bash
625
+ 1claw publish --name my-agent --tag <user>/my-agent:v1 # Rebuild + push
626
+ 1claw publish --tag <user>/custom:latest # From ./Dockerfile
627
+ 1claw publish --name my-agent --commit --tag <user>/m:c # Snapshot a running container
628
+ 1claw eject --name my-agent --output ./out # Export Dockerfile + compose + module configs
629
+ ```
630
+
631
+ ### Cloud deploy (Google Cloud Run)
632
+
633
+ ```bash
634
+ 1claw publish --name my-agent --tag <user>/my-agent:v1 # Image must be in a registry first
635
+ 1claw deploy --google-cloud --name my-agent # Generate Terraform
636
+ 1claw deploy --google-cloud --name my-agent --apply # Generate + apply (needs TF_VAR_agent_api_key)
637
+ ```
638
+
639
+ In cloud mode the container uses the agent key directly (injected from Secret Manager), not the host daemon.
640
+
580
641
  ## Global options
581
642
 
582
643
  ```bash
package/dist/bin/1claw.js CHANGED
File without changes
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const containersCommand: Command;
3
+ //# sourceMappingURL=containers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containers.d.ts","sourceRoot":"","sources":["../../../src/commands/containers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,iBAAiB,SAE7B,CAAC"}
@@ -0,0 +1,130 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { printSuccess, printError, printWarning, printInfo, printTable, printKeyValue, formatDate, } from "../output.js";
4
+ import { dockerStop, dockerRm, dockerContainerStatus, dockerLogs, } from "../lib/docker-client.js";
5
+ import { listContainerStates, loadContainerState, deleteContainerState, } from "../lib/container-config.js";
6
+ export const containersCommand = new Command("containers").description("Manage agent containers created by `1claw init`");
7
+ containersCommand
8
+ .command("list")
9
+ .alias("ls")
10
+ .description("List managed agent containers")
11
+ .action(async () => {
12
+ const states = listContainerStates();
13
+ if (states.length === 0) {
14
+ printInfo("No managed containers. Create one with `1claw init --docker`.");
15
+ return;
16
+ }
17
+ const rows = [];
18
+ for (const s of states) {
19
+ const status = await dockerContainerStatus(s.containerName);
20
+ rows.push({
21
+ name: s.containerName,
22
+ status: status.running
23
+ ? chalk.green(status.health ?? "running")
24
+ : status.exists
25
+ ? chalk.yellow(status.status ?? "stopped")
26
+ : chalk.dim("absent"),
27
+ port: String(s.port),
28
+ modules: s.modules.join(",") || chalk.dim("none"),
29
+ image: s.customImage ?? s.image,
30
+ created: formatDate(s.createdAt),
31
+ });
32
+ }
33
+ printTable(rows, [
34
+ { key: "name", header: "Name", width: 22 },
35
+ { key: "status", header: "Status" },
36
+ { key: "port", header: "Port" },
37
+ { key: "modules", header: "Modules", width: 20 },
38
+ { key: "image", header: "Image", width: 26 },
39
+ { key: "created", header: "Created" },
40
+ ]);
41
+ });
42
+ containersCommand
43
+ .command("info <name>")
44
+ .description("Show details for a managed container")
45
+ .action(async (name) => {
46
+ const state = loadContainerState(name);
47
+ if (!state) {
48
+ printError(`No container state for "${name}".`);
49
+ process.exit(1);
50
+ }
51
+ const status = await dockerContainerStatus(name);
52
+ printKeyValue([
53
+ ["Name", state.containerName],
54
+ ["Status", status.running ? "running" : status.exists ? (status.status ?? "stopped") : "absent"],
55
+ ["Health", status.health ?? "—"],
56
+ ["Chat UI", `http://localhost:${state.port}`],
57
+ ["Agent ID", state.agentId ?? "—"],
58
+ ["Vault ID", state.vaultId ?? "—"],
59
+ ["Modules", state.modules.join(", ") || "none"],
60
+ ["Image", state.customImage ?? state.image],
61
+ ["Published", state.publishedAt ? formatDate(state.publishedAt, "long") : "—"],
62
+ ["Created", formatDate(state.createdAt, "long")],
63
+ ]);
64
+ });
65
+ containersCommand
66
+ .command("stop <name>")
67
+ .description("Stop a running container")
68
+ .action(async (name) => {
69
+ const state = loadContainerState(name);
70
+ if (!state) {
71
+ printError(`No container state for "${name}".`);
72
+ process.exit(1);
73
+ }
74
+ try {
75
+ await dockerStop(state.containerName);
76
+ printSuccess(`Stopped ${name}.`);
77
+ }
78
+ catch (err) {
79
+ printError(err instanceof Error ? err.message : String(err));
80
+ process.exit(1);
81
+ }
82
+ });
83
+ containersCommand
84
+ .command("rm <name>")
85
+ .description("Remove a container and its local state")
86
+ .option("-f, --force", "Force-remove a running container")
87
+ .action(async (name, opts) => {
88
+ const state = loadContainerState(name);
89
+ if (!state) {
90
+ printWarning(`No state for "${name}" — nothing to remove.`);
91
+ return;
92
+ }
93
+ try {
94
+ const status = await dockerContainerStatus(state.containerName);
95
+ if (status.exists) {
96
+ await dockerRm(state.containerName, !!opts.force);
97
+ }
98
+ }
99
+ catch (err) {
100
+ printError(`Could not remove container (use -f to force): ${err instanceof Error ? err.message : String(err)}`);
101
+ process.exit(1);
102
+ }
103
+ deleteContainerState(name);
104
+ printSuccess(`Removed ${name} and its state.`);
105
+ });
106
+ containersCommand
107
+ .command("logs <name>")
108
+ .description("Tail a container's logs")
109
+ .option("--no-follow", "Print current logs and exit")
110
+ .action(async (name, opts) => {
111
+ const state = loadContainerState(name);
112
+ if (!state) {
113
+ printError(`No container state for "${name}".`);
114
+ process.exit(1);
115
+ }
116
+ const status = await dockerContainerStatus(state.containerName);
117
+ if (!status.exists) {
118
+ printError(`Container "${name}" does not exist.`);
119
+ process.exit(1);
120
+ }
121
+ const child = dockerLogs(state.containerName, opts.follow !== false);
122
+ await new Promise((resolve) => {
123
+ process.on("SIGINT", () => {
124
+ child.kill();
125
+ resolve();
126
+ });
127
+ child.on("close", () => resolve());
128
+ });
129
+ });
130
+ //# sourceMappingURL=containers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../src/commands/containers.ts"],"names":[],"mappings":"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"}
@@ -48,21 +48,30 @@ daemonCommand
48
48
  }
49
49
  }
50
50
  console.log();
51
- printInfo("Unlocking local vault to start daemon...");
52
- const { passphrase } = await inquirer.prompt([
53
- {
54
- type: "password",
55
- name: "passphrase",
56
- message: "Vault passphrase:",
57
- mask: "*",
58
- },
59
- ]);
51
+ // Non-interactive unlock for automation (e.g. `1claw init` starting
52
+ // the daemon as a detached child). Falls back to a prompt otherwise.
53
+ let passphrase;
54
+ if (process.env.ONECLAW_VAULT_PASSPHRASE) {
55
+ passphrase = process.env.ONECLAW_VAULT_PASSPHRASE;
56
+ }
57
+ else {
58
+ printInfo("Unlocking local vault to start daemon...");
59
+ ({ passphrase } = await inquirer.prompt([
60
+ {
61
+ type: "password",
62
+ name: "passphrase",
63
+ message: "Vault passphrase:",
64
+ mask: "*",
65
+ },
66
+ ]));
67
+ }
60
68
  let vault;
61
69
  try {
62
70
  vault = loadVault(passphrase);
63
71
  }
64
72
  catch {
65
73
  printError("Wrong passphrase or corrupted vault file.");
74
+ printInfo("Forgot your passphrase? Reset the local vault with `1claw local destroy --force`, then `1claw local init`.");
66
75
  process.exit(1);
67
76
  }
68
77
  const policy = loadPolicy();
@@ -1 +1 @@
1
- {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/commands/daemon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACH,YAAY,GAIf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EACH,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,SAAS,EACT,aAAa,EACb,UAAU,GACb,MAAM,cAAc,CAAC;AACtB,OAAO,EACH,WAAW,EACX,SAAS,EACT,SAAS,EACT,WAAW,GAEd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACH,UAAU,EACV,UAAU,EACV,aAAa,EAGb,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,YAAY,GAGf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AAErE,MAAM,UAAU,GACZ,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAC1E,MAAM,WAAW,GACb,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACzE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAEhD,SAAS,QAAQ,CAAC,GAAoB;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACtE,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CACjB,GAAmB,EACnB,MAAc,EACd,IAAa;IAEb,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAC1D,0EAA0E,CAC7E,CAAC;AAEF,4DAA4D;AAE5D,aAAa;KACR,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,gDAAgD,CAAC;KAC7D,MAAM,CAAC,cAAc,EAAE,yCAAyC,CAAC;KACjE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;KAC/C,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACnB,IAAI,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACjB,UAAU,CAAC,+CAA+C,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC;QAE9C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACD,UAAU,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACL,UAAU,CACN,UAAU,UAAU,2DAA2D,CAClF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,SAAS,CAAC,0CAA0C,CAAC,CAAC;QAEtD,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACzC;gBACI,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,mBAAmB;gBAC5B,IAAI,EAAE,GAAG;aACZ;SACJ,CAAC,CAAC;QAEH,IAAI,KAAqB,CAAC;QAC1B,IAAI,CAAC;YACD,KAAK,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACL,UAAU,CAAC,2CAA2C,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACtD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAEvD,+DAA+D;QAC/D,yDAAyD;QACzD,IAAI,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC;YAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;QAEjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAEjD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,UAAU,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE;YAC3B,IAAI,CAAC;gBACD,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACjC,CAAC;YAAC,MAAM,CAAC;gBACL,cAAc;YAClB,CAAC;YAED,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAE7C,+DAA+D;YAC/D,8DAA8D;YAC9D,WAAW,CAAC,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,CAAC,CAAC;YAE7B,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,YAAY,CACR,2BAA2B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CACtD,CAAC;YACF,SAAS,CAAC,WAAW,WAAW,eAAe,WAAW,kBAAkB,CAAC,CAAC;YAC9E,SAAS,CAAC,uBAAuB,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,EAAE,CAAC;YAEd,SAAS,CAAC,+BAA+B,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CACL,yBAAyB;gBACzB,oCAAoC,UAAU,EAAE,CACnD,CACJ,CAAC;YACF,OAAO,CAAC,GAAG,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,GAAG,EAAE;YAClB,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,SAAS,CAAC,yBAAyB,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC;oBACD,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC3B,CAAC;gBAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACpB,IAAI,CAAC;oBACD,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;YACH,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAI,GAAG,YAAY,KAAK;YAAE,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;;YAC7C,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,4DAA4D;AAE5D,aAAa;KACR,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,yBAAyB,CAAC;KACtC,MAAM,CAAC,GAAG,EAAE;IACT,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,0DAA0D,CAAC,CAAC;QACtE,OAAO;IACX,CAAC;IAED,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7B,YAAY,CAAC,+BAA+B,GAAG,IAAI,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,IAAK,GAA6B,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClD,YAAY,CAAC,iDAAiD,CAAC,CAAC;QACpE,CAAC;aAAM,CAAC;YACJ,UAAU,CAAC,0BAA2B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACD,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC;AAEP,4DAA4D;AAE5D,aAAa;KACR,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oBAAoB,CAAC;KACjC,MAAM,CAAC,GAAG,EAAE;IACT,MAAM,YAAY,GAAG,UAAU,CAC3B,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,WAAW,CACnD,CAAC;IACF,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,GAAG,GAAG,EAAE,CAAC;IAEb,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,GAAG,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,UAAU,GAAG,IAAI,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACL,UAAU,GAAG,KAAK,CAAC;QACvB,CAAC;IACL,CAAC;IAED,aAAa,CAAC;QACV;YACI,QAAQ;YACR,UAAU;gBACN,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,GAAG;gBAC1C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;SAC7B;QACD;YACI,QAAQ;YACR,YAAY;gBACR,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;gBAC1B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC;SAC/B;QACD;YACI,QAAQ;YACR,YAAY,EAAE;gBACV,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC9B,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC;SAC3C;KACJ,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEP,4DAA4D;AAE5D,MAAM,SAAS,GAAG,aAAa;KAC1B,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2CAA2C,CAAC,CAAC;AAE9D,SAAS;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,qCAAqC,CAAC;KAClD,cAAc,CACX,iBAAiB,EACjB,kEAAkE,CACrE;KACA,MAAM,CACH,sBAAsB,EACtB,gDAAgD,EAChD,QAAQ,CACX;KACA,MAAM,CAAC,sBAAsB,EAAE,oCAAoC,CAAC;KACpE,MAAM,CAAC,uBAAuB,EAAE,4CAA4C,CAAC;KAC7E,MAAM,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,EAAE,GAAiB;QACrB,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjE,SAAS,EAAE,IAAI,CAAC,QAAqC;KACxD,CAAC;IACF,IAAI,IAAI,CAAC,UAAU;QAAE,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;IACtD,IAAI,IAAI,CAAC,UAAU;QAAE,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;IAEtD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IACpC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnB,YAAY,CACR,kBAAkB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC3F,CAAC;AACN,CAAC,CAAC,CAAC;AAEP,SAAS;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;IACf,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;QACrC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnB,YAAY,CAAC,sBAAsB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACJ,YAAY,CAAC,wBAAwB,MAAM,IAAI,CAAC,CAAC;IACrD,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,SAAS;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,KAAK,CAAC,IAAI,CAAC;KACX,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,GAAG,EAAE;IACT,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,SAAS,CAAC,wFAAwF,CAAC,CAAC;QACpG,OAAO;IACX,CAAC;IAED,UAAU,CACN,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAClC,MAAM,EAAE,EAAE,CAAC,SAAS;KACvB,CAAC,CAAC,EACH;QACI,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;QACnC,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE;QACzC,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE;KACzC,CACJ,CAAC;AACN,CAAC,CAAC,CAAC;AAEP,4DAA4D;AAE5D,SAAS,kBAAkB,CACvB,KAAqB,EACrB,MAAkB;IAElB,OAAO,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACnC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC;QAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,IAAI,KAAK,CAAC;QAEnC,eAAe;QACf,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACrB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;gBACnB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM;gBAC1C,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM;aAC/C,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,KAAK,UAAU,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3C,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM;aACnB,CAAC,CAAC,CAAC;YACJ,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACpC,OAAO;QACX,CAAC;QAED,0CAA0C;QAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAChE,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,IAAI,aAAa,EAAE,CAAC,CAAC;gBAChE,OAAO;YACX,CAAC;YACD,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;gBACnB,IAAI;gBACJ,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,MAAM,EAAE,MAAM,CAAC,eAAe;gBAC9B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACrC,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QAED,uDAAuD;QACvD,IAAI,IAAI,KAAK,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACzC,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACD,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACL,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YAED,IAAI,QAAsB,CAAC;YAC3B,IAAI,CAAC;gBACD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACL,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACvD,OAAO;YACX,CAAC;YAED,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACxC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;oBACnB,KAAK,EAAE,0CAA0C;iBACpD,CAAC,CAAC;gBACH,OAAO;YACX,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAChD,OAAO;YACX,CAAC;YAED,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE;gBACnB,MAAM,EAAE,MAAM,CAAC,QAAS,CAAC,MAAM;gBAC/B,OAAO,EAAE,MAAM,CAAC,QAAS,CAAC,OAAO;gBACjC,IAAI,EAAE,MAAM,CAAC,QAAS,CAAC,IAAI;aAC9B,CAAC,CAAC;YACH,OAAO;QACX,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,KAAK,eAAe,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YAChD,IAAI,IAAY,CAAC;YACjB,IAAI,CAAC;gBACD,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;YAAC,MAAM,CAAC;gBACL,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;gBACjE,OAAO;YACX,CAAC;YAED,IAAI,MAA2C,CAAC;YAChD,IAAI,CAAC;gBACD,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACL,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;gBACvD,OAAO;YACX,CAAC;YAED,MAAM,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACnE,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACpD,OAAO;QACX,CAAC;QAED,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/commands/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const deployCommand: Command;
3
+ //# sourceMappingURL=deploy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiCpC,eAAO,MAAM,aAAa,SAiBpB,CAAC"}
@@ -0,0 +1,158 @@
1
+ import { Command } from "commander";
2
+ import { execFile, spawn } from "node:child_process";
3
+ import { existsSync, mkdirSync, copyFileSync, writeFileSync, readdirSync, } from "node:fs";
4
+ import { join, resolve } from "node:path";
5
+ import chalk from "chalk";
6
+ import ora from "ora";
7
+ import { printSuccess, printError, printWarning, printInfo, printKeyValue, } from "../output.js";
8
+ import { loadContainerState, saveContainerState } from "../lib/container-config.js";
9
+ import { deployTemplateDir } from "../lib/paths.js";
10
+ export const deployCommand = new Command("deploy")
11
+ .description("Deploy your agent container to the cloud")
12
+ .option("--google-cloud", "Deploy to Google Cloud Run")
13
+ .option("--aws", "Deploy to AWS ECS/Fargate (coming soon)")
14
+ .option("--fly", "Deploy to Fly.io (coming soon)")
15
+ .option("--name <name>", "Container name (from `1claw init` state)")
16
+ .option("--region <region>", "Cloud region", "us-central1")
17
+ .option("--service-name <name>", "Cloud service name")
18
+ .option("--apply", "Run terraform apply automatically")
19
+ .option("--output <dir>", "Output directory for generated files", "./terraform")
20
+ .action(async (opts) => {
21
+ try {
22
+ await deployAction(opts);
23
+ }
24
+ catch (err) {
25
+ printError(err instanceof Error ? err.message : String(err));
26
+ process.exit(1);
27
+ }
28
+ });
29
+ function run(cmd, args) {
30
+ return new Promise((resolve) => {
31
+ execFile(cmd, args, { maxBuffer: 8 * 1024 * 1024 }, (err, stdout, stderr) => {
32
+ resolve({
33
+ stdout: stdout?.toString() ?? "",
34
+ stderr: stderr?.toString() ?? "",
35
+ ok: !err,
36
+ });
37
+ });
38
+ });
39
+ }
40
+ function runStreaming(cmd, args, cwd) {
41
+ return new Promise((resolve) => {
42
+ const child = spawn(cmd, args, { cwd, stdio: "inherit" });
43
+ child.on("error", () => resolve(false));
44
+ child.on("close", (code) => resolve(code === 0));
45
+ });
46
+ }
47
+ async function commandExists(cmd, versionArg = "--version") {
48
+ const r = await run(cmd, [versionArg]);
49
+ return r.ok;
50
+ }
51
+ async function deployAction(opts) {
52
+ console.log();
53
+ if (opts.aws || opts.fly) {
54
+ printWarning(`${opts.aws ? "AWS" : "Fly.io"} deployment is coming soon. ` +
55
+ "Only --google-cloud is implemented today.");
56
+ return;
57
+ }
58
+ if (!opts.googleCloud) {
59
+ printInfo("Choose a target. Currently supported: --google-cloud");
60
+ printInfo(" 1claw deploy --google-cloud --name <container>");
61
+ return;
62
+ }
63
+ // ── Step 1: Load state ───────────────────────────────────────────────
64
+ if (!opts.name) {
65
+ throw new Error("Provide --name <container> (from `1claw init`).");
66
+ }
67
+ const state = loadContainerState(opts.name);
68
+ if (!state) {
69
+ throw new Error(`No container state for "${opts.name}".`);
70
+ }
71
+ // ── Step 2: Prerequisites ────────────────────────────────────────────
72
+ const tfOk = await commandExists("terraform");
73
+ if (!tfOk) {
74
+ throw new Error("Terraform is not installed. Install it: https://developer.hashicorp.com/terraform/install");
75
+ }
76
+ const gcloudOk = await commandExists("gcloud");
77
+ if (!gcloudOk) {
78
+ printWarning("gcloud CLI not found. You can still generate Terraform, but `--apply` needs gcloud auth.");
79
+ }
80
+ // ── Step 3: Image source ─────────────────────────────────────────────
81
+ if (!state.customImage) {
82
+ throw new Error("This container has no published image. Push it first:\n" +
83
+ ` 1claw publish --name ${state.containerName} --tag <username>/${state.containerName}:latest`);
84
+ }
85
+ // Resolve a default project from gcloud config (best-effort).
86
+ let projectId = "YOUR_GCP_PROJECT_ID";
87
+ if (gcloudOk) {
88
+ const r = await run("gcloud", ["config", "get-value", "project"]);
89
+ const val = r.stdout.trim();
90
+ if (r.ok && val && val !== "(unset)")
91
+ projectId = val;
92
+ }
93
+ const serviceName = opts.serviceName ?? state.containerName.replace(/[^a-z0-9-]/g, "-");
94
+ // ── Step 4: Generate Terraform ───────────────────────────────────────
95
+ const outDir = resolve(opts.output);
96
+ if (!existsSync(outDir))
97
+ mkdirSync(outDir, { recursive: true });
98
+ const tplDir = deployTemplateDir("google-cloud");
99
+ for (const file of readdirSync(tplDir)) {
100
+ if (file.endsWith(".tf")) {
101
+ copyFileSync(join(tplDir, file), join(outDir, file));
102
+ }
103
+ }
104
+ const tfvars = `project_id = "${projectId}"\n` +
105
+ `region = "${opts.region}"\n` +
106
+ `service_name = "${serviceName}"\n` +
107
+ `image_tag = "${state.customImage}"\n` +
108
+ `agent_id = "${state.agentId ?? ""}"\n` +
109
+ `modules = "${state.modules.join(",")}"\n` +
110
+ `# agent_api_key is sensitive — provide it at apply time instead of committing it:\n` +
111
+ `# export TF_VAR_agent_api_key="ocv_..."\n`;
112
+ writeFileSync(join(outDir, "terraform.tfvars"), tfvars);
113
+ printSuccess(`Terraform written to ${outDir}`);
114
+ printKeyValue([
115
+ ["Provider", "Google Cloud Run"],
116
+ ["Project", projectId],
117
+ ["Region", opts.region],
118
+ ["Service", serviceName],
119
+ ["Image", state.customImage],
120
+ ]);
121
+ console.log();
122
+ // ── Step 5: Print or apply ───────────────────────────────────────────
123
+ if (!opts.apply) {
124
+ printInfo("Review the files, then deploy:");
125
+ console.log(chalk.dim(` cd ${outDir}`));
126
+ console.log(chalk.dim(` export TF_VAR_agent_api_key="ocv_..."`));
127
+ console.log(chalk.dim(` terraform init && terraform apply`));
128
+ console.log();
129
+ return;
130
+ }
131
+ if (!process.env.TF_VAR_agent_api_key) {
132
+ throw new Error("TF_VAR_agent_api_key is not set. Export the agent API key before --apply:\n" +
133
+ ' export TF_VAR_agent_api_key="ocv_..."');
134
+ }
135
+ const initSpinner = ora("terraform init...").start();
136
+ initSpinner.stop();
137
+ if (!(await runStreaming("terraform", ["init"], outDir))) {
138
+ throw new Error("terraform init failed.");
139
+ }
140
+ if (!(await runStreaming("terraform", ["apply", "-auto-approve"], outDir))) {
141
+ throw new Error("terraform apply failed.");
142
+ }
143
+ const urlRes = await run("terraform", ["-chdir=" + outDir, "output", "-raw", "service_url"]);
144
+ const serviceUrl = urlRes.ok ? urlRes.stdout.trim() : undefined;
145
+ state.deployment = {
146
+ provider: "google-cloud-run",
147
+ serviceUrl,
148
+ region: opts.region,
149
+ deployedAt: new Date().toISOString(),
150
+ };
151
+ saveContainerState(state);
152
+ console.log();
153
+ printSuccess("Deployed to Google Cloud Run.");
154
+ if (serviceUrl)
155
+ printKeyValue([["Service URL", chalk.cyan(serviceUrl)]]);
156
+ console.log();
157
+ }
158
+ //# sourceMappingURL=deploy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const ejectCommand: Command;
3
+ //# sourceMappingURL=eject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eject.d.ts","sourceRoot":"","sources":["../../../src/commands/eject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,YAAY,SAWnB,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { Command } from "commander";
2
+ import { existsSync, mkdirSync, writeFileSync, copyFileSync, readFileSync, } from "node:fs";
3
+ import { join, resolve, dirname } from "node:path";
4
+ import chalk from "chalk";
5
+ import { printSuccess, printError, printInfo } from "../output.js";
6
+ import { loadContainerState } from "../lib/container-config.js";
7
+ import { resolveModules } from "../modules/registry.js";
8
+ import { generateDockerfile } from "../lib/image-build.js";
9
+ import { moduleDir, composeTemplatePath } from "../lib/paths.js";
10
+ import { DEFAULT_BASE_IMAGE } from "../lib/image-build.js";
11
+ import { daemonSocketPath } from "../lib/daemon-control.js";
12
+ export const ejectCommand = new Command("eject")
13
+ .description("Export Dockerfile, module configs, and docker-compose for manual control")
14
+ .option("--name <name>", "Container name (from `1claw init` state)")
15
+ .option("--output <dir>", "Output directory", ".")
16
+ .action((opts) => {
17
+ try {
18
+ ejectAction(opts);
19
+ }
20
+ catch (err) {
21
+ printError(err instanceof Error ? err.message : String(err));
22
+ process.exit(1);
23
+ }
24
+ });
25
+ function fillTemplate(tmpl, vars) {
26
+ return tmpl.replace(/\{\{(\w+)\}\}/g, (_, k) => vars[k] ?? "");
27
+ }
28
+ function ejectAction(opts) {
29
+ if (!opts.name) {
30
+ throw new Error("Provide --name <container> (from `1claw init`).");
31
+ }
32
+ const state = loadContainerState(opts.name);
33
+ if (!state) {
34
+ throw new Error(`No container state for "${opts.name}".`);
35
+ }
36
+ const outDir = resolve(opts.output);
37
+ if (!existsSync(outDir))
38
+ mkdirSync(outDir, { recursive: true });
39
+ const baseImage = state.image || DEFAULT_BASE_IMAGE;
40
+ const modules = state.modules.length ? resolveModules(state.modules) : [];
41
+ // Dockerfile
42
+ const dockerfilePath = join(outDir, "Dockerfile");
43
+ writeFileSync(dockerfilePath, generateDockerfile(baseImage, modules));
44
+ printSuccess(`Wrote ${dockerfilePath}`);
45
+ // Module assets under modules/<name>/
46
+ if (modules.length) {
47
+ for (const m of modules) {
48
+ for (const c of m.docker.copy) {
49
+ const src = join(moduleDir(m.name), c.src);
50
+ if (!existsSync(src))
51
+ continue;
52
+ const dest = join(outDir, "modules", m.name, c.src);
53
+ mkdirSync(dirname(dest), { recursive: true });
54
+ copyFileSync(src, dest);
55
+ }
56
+ }
57
+ printSuccess(`Wrote module configs to ${join(outDir, "modules")}/`);
58
+ }
59
+ // docker-compose.yaml
60
+ const composePath = join(outDir, "docker-compose.yaml");
61
+ let composeTmpl = "services:\n agent:\n image: {{IMAGE}}\n container_name: {{NAME}}\n";
62
+ const tplFile = composeTemplatePath();
63
+ if (existsSync(tplFile))
64
+ composeTmpl = readFileSync(tplFile, "utf-8");
65
+ writeFileSync(composePath, fillTemplate(composeTmpl, {
66
+ IMAGE: state.customImage ?? baseImage,
67
+ NAME: state.containerName,
68
+ PORT: String(state.port),
69
+ DAEMON_SOCKET: daemonSocketPath(),
70
+ AGENT_ID: state.agentId ?? "",
71
+ MODULES: state.modules.join(","),
72
+ }));
73
+ printSuccess(`Wrote ${composePath}`);
74
+ console.log();
75
+ printInfo("Build and run manually:");
76
+ console.log(chalk.dim(` cd ${outDir}`));
77
+ console.log(chalk.dim(` docker build -t ${state.containerName} .`));
78
+ console.log(chalk.dim(` docker compose up # uses the daemon socket mount`));
79
+ console.log();
80
+ printInfo("Or publish your custom image:");
81
+ console.log(chalk.dim(` 1claw publish --context ${outDir} --tag <username>/${state.containerName}:latest`));
82
+ console.log();
83
+ }
84
+ //# sourceMappingURL=eject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eject.js","sourceRoot":"","sources":["../../../src/commands/eject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACH,UAAU,EACV,SAAS,EACT,aAAa,EACb,YAAY,EACZ,YAAY,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAO5D,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC3C,WAAW,CAAC,0EAA0E,CAAC;KACvF,MAAM,CAAC,eAAe,EAAE,0CAA0C,CAAC;KACnE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,CAAC;KACjD,MAAM,CAAC,CAAC,IAAkB,EAAE,EAAE;IAC3B,IAAI,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACX,UAAU,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,SAAS,YAAY,CAAC,IAAY,EAAE,IAA4B;IAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,WAAW,CAAC,IAAkB;IACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACvE,CAAC;IACD,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,IAAI,kBAAkB,CAAC;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE1E,aAAa;IACb,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAClD,aAAa,CAAC,cAAc,EAAE,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,YAAY,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC;IAExC,sCAAsC;IACtC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACtB,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;gBACpD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC9C,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QACD,YAAY,CAAC,2BAA2B,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;IACxE,CAAC;IAED,sBAAsB;IACtB,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACxD,IAAI,WAAW,GACX,2EAA2E,CAAC;IAChF,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,IAAI,UAAU,CAAC,OAAO,CAAC;QAAE,WAAW,GAAG,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACtE,aAAa,CACT,WAAW,EACX,YAAY,CAAC,WAAW,EAAE;QACtB,KAAK,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;QACrC,IAAI,EAAE,KAAK,CAAC,aAAa;QACzB,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QACxB,aAAa,EAAE,gBAAgB,EAAE;QACjC,QAAQ,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;QAC7B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;KACnC,CAAC,CACL,CAAC;IACF,YAAY,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IAErC,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,SAAS,CAAC,yBAAyB,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,SAAS,CAAC,+BAA+B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CACP,KAAK,CAAC,GAAG,CACL,6BAA6B,MAAM,qBAAqB,KAAK,CAAC,aAAa,SAAS,CACvF,CACJ,CAAC;IACF,OAAO,CAAC,GAAG,EAAE,CAAC;AAClB,CAAC"}