@clawscarf/cli 0.1.0-alpha.1 → 0.1.0-alpha.10

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 (64) hide show
  1. package/README.md +119 -2
  2. package/THIRD_PARTY_NOTICES.md +18 -11
  3. package/deploy/execution/network/node-ingress.cfg +1 -1
  4. package/deploy/execution/network/public-addresses.json +24 -0
  5. package/package.json +2 -1
  6. package/packs/README.md +4 -11
  7. package/pnpm-lock.yaml +212 -3567
  8. package/recipes/README.md +10 -6
  9. package/recipes/team-server/recipe.json +5 -4
  10. package/release/README.md +122 -58
  11. package/release/components.json +26 -2
  12. package/release/operator.md +27 -53
  13. package/release/telemetry.json +4 -0
  14. package/runtime/configuration.js +15 -1
  15. package/runtime/current.json +63 -0
  16. package/scripts/clawscarf.js +9 -1
  17. package/scripts/controller.js +6 -0
  18. package/scripts/deployment/browser-node-compose.js +0 -1
  19. package/scripts/deployment/certificates.js +2 -1
  20. package/scripts/deployment/compose.js +3 -5
  21. package/scripts/deployment/configuration.js +8 -7
  22. package/scripts/deployment/connection-settings.js +0 -4
  23. package/scripts/deployment/controller-compose.js +14 -6
  24. package/scripts/deployment/entrypoint.js +4 -1
  25. package/scripts/deployment/launch.js +12 -29
  26. package/scripts/deployment/model-gateway-compose.js +6 -0
  27. package/scripts/deployment/model-gateway.js +9 -1
  28. package/scripts/deployment/models.js +5 -1
  29. package/scripts/deployment/network-policy.js +147 -0
  30. package/scripts/deployment/networks.js +21 -0
  31. package/scripts/deployment/policy.js +27 -35
  32. package/scripts/deployment/prepare.js +22 -15
  33. package/scripts/deployment/public-addresses.js +30 -0
  34. package/scripts/deployment/public-web.js +132 -0
  35. package/scripts/deployment/runtime.js +15 -4
  36. package/scripts/deployment/service-network.js +86 -0
  37. package/scripts/deployment/state.js +16 -0
  38. package/scripts/installation/command.js +6 -14
  39. package/scripts/installation/configuration.js +2 -0
  40. package/scripts/installation/configure.js +1 -0
  41. package/scripts/installation/installer/cloud.js +1 -1
  42. package/scripts/installation/installer/collect.js +17 -0
  43. package/scripts/installation/installer/menu.js +3 -2
  44. package/scripts/installation/installer/prompts.js +6 -2
  45. package/scripts/installation/installer/run.js +21 -11
  46. package/scripts/installation/installer/sections/models.js +2 -12
  47. package/scripts/installation/installer/settings.js +10 -47
  48. package/scripts/installation/installer/summary.js +2 -0
  49. package/scripts/installation/options.js +11 -1
  50. package/scripts/installation/plan.js +4 -33
  51. package/scripts/installation/prerequisites.js +10 -5
  52. package/scripts/installation/recipes/definition.js +2 -0
  53. package/scripts/installation/reconfigure.js +69 -18
  54. package/scripts/installation/resolve.js +8 -5
  55. package/scripts/installation/runtime.js +3 -3
  56. package/scripts/installation/setup.js +2 -0
  57. package/scripts/release/create.js +8 -3
  58. package/scripts/release/definition.js +34 -3
  59. package/scripts/telemetry.js +279 -0
  60. package/runtime/releases/0.1.0-alpha.1.json +0 -37
  61. package/scripts/deployment/connection-policy.js +0 -80
  62. package/scripts/deployment/upgrade-rpc.py +0 -148
  63. package/scripts/deployment/upgrade-state.js +0 -47
  64. package/scripts/deployment/upgrade.js +0 -298
package/recipes/README.md CHANGED
@@ -5,13 +5,15 @@ Recipes are bundled with the CLI. Each folder contains a [recipe.json](team-serv
5
5
 
6
6
  ```text
7
7
  recipes/team-server/recipe.json
8
- runtime/releases/0.1.0-dev.json
8
+ runtime/current.json
9
9
  packs/research-team/pack.json
10
10
  ```
11
11
 
12
12
  Each recipe has an ID and a version. Accepted installations retain that provenance
13
13
  alongside their actual settings; a CLI update never reapplies new defaults. Bump the
14
- recipe version when its defaults, pack selections or runtime pin change.
14
+ recipe version when its defaults, pack selections or explicit runtime reference change.
15
+ The resolved runtime release is retained separately; automatic advancement of the
16
+ [current selection](../release/README.md#published-and-development-use) does not change recipe defaults.
15
17
 
16
18
  A recipe's `runtime` points to an exact runtime definition, relative to the recipe
17
19
  file. Runtime images and tools are fixed; its other fields are defaults that users
@@ -21,7 +23,8 @@ no executable hooks, secrets or user identities.
21
23
 
22
24
  - `models` selects model ID, provider and reasoning from the bundled
23
25
  [model catalog](../deploy/models/catalog.json).
24
- - `defaults` selects resources, browser and Connections enablement.
26
+ - `defaults` selects the initial `agentName`, resources, public web access, browser and Connections enablement.
27
+ The name configures OpenClaw's default agent once; later renaming belongs in OpenClaw.
25
28
  - `packs: [{ id, members }]` selects agents from the bundled [packs](../packs/README.md).
26
29
  The installer checks members and collects required credentials after settings review.
27
30
 
@@ -30,8 +33,9 @@ menu; `--recipe /path/to/recipe.json` uses a custom definition. Both use the sam
30
33
  validation and editable settings. `clawscarf recipes` lists available choices.
31
34
  Recipe changes never reconfigure an existing server automatically.
32
35
 
33
- **Team server:** GPT-6 Astra through OpenAI, medium reasoning,
34
- hosted login, Connections enabled, browser off, and no packs selected. It supplies
35
- a basic team server, not a document ingestion or question-answering workflow. A future document recipe remains separate in [TODO.md](../TODO.md).
36
+ **Team server** supplies a basic team server. Its exact model, reasoning, resource,
37
+ capability and pack defaults are defined in [recipe.json](team-server/recipe.json);
38
+ `clawscarf recipes` displays the bundled selection. Document workflows are separate
39
+ [open work](../TODO.md#openclaw-curation).
36
40
 
37
41
  See [runtime and package distribution](../release/README.md).
@@ -1,11 +1,10 @@
1
1
  {
2
2
  "id": "team-server",
3
- "version": "0.1.0",
4
- "runtime": "../../runtime/releases/0.1.0-alpha.1.json",
5
3
  "name": "Team server",
6
4
  "description": "A protected OpenClaw server for your team, with hosted login, managed models and optional Connections.",
7
5
  "maturity": "supported",
8
6
  "defaults": {
7
+ "agentName": "ClawScarf",
9
8
  "resources": {
10
9
  "runtime": {
11
10
  "cpu": "4",
@@ -17,12 +16,14 @@
17
16
  },
18
17
  "connections": {
19
18
  "enabled": true
20
- }
19
+ },
20
+ "publicWeb": true
21
21
  },
22
22
  "models": {
23
23
  "model": "gpt-6-astra",
24
24
  "provider": "openai",
25
25
  "reasoning": "medium"
26
26
  },
27
- "packs": []
27
+ "runtime": "../../runtime/current.json",
28
+ "version": "0.1.4"
28
29
  }
package/release/README.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  These have separate responsibilities:
4
4
 
5
- | Definition | Owns | Location |
6
- | --------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------ |
7
- | Runtime release | Exact software images, OpenShell executables, checksums and supported platforms | [runtime/releases](../runtime/releases/0.1.0-dev.json) |
8
- | Recipe | A fixed runtime reference plus editable model, reasoning, resource, capability and pack defaults | [recipes](../recipes/README.md) |
9
- | Pack | Native agent, skill and workflow files with declared prerequisites | [packs](../packs/README.md) |
5
+ | Definition | Owns | Location |
6
+ | --------------- | ------------------------------------------------------------------------------------------------ | ----------------------------------------------- |
7
+ | Runtime release | Exact software images, OpenShell executables, checksums and supported platforms | [runtime/current.json](../runtime/current.json) |
8
+ | Recipe | A fixed runtime reference plus editable model, reasoning, resource, capability and pack defaults | [recipes](../recipes/README.md) |
9
+ | Pack | Native agent, skill and workflow files with declared prerequisites | [packs](../packs/README.md) |
10
10
 
11
11
  Several recipes can use the same runtime. A runtime contains no recipes, model
12
12
  catalog or pack selections. Changing a recipe does not require rebuilding its runtime.
@@ -14,30 +14,29 @@ Recipes and packs ship with the CLI; there is no separate registry or dependency
14
14
  The [model catalog](../deploy/models/catalog.json) is also a CLI asset. Recipe IDs select
15
15
  catalog entries; model protocols and limits have one definition.
16
16
 
17
- ## Current development use
17
+ ## Published and development use
18
18
 
19
- ```sh
20
- clawscarf configure
21
- # Or use staging for hosted login and Connections:
22
- clawscarf configure --cloud-url https://cloud-staging.clawscarf.com
23
- ```
19
+ Use the [installation guide](../deploy/deployment/installation.md) for published
20
+ CLI installation, platform requirements and runtime downloads. Use the
21
+ [development command](../scripts/README.md#development-command) for this checkout.
24
22
 
25
- No recipe argument opens the bundled recipe menu. `--recipe team-server` selects
26
- that bundled definition; `--recipe /path/to/recipe.json` reads a custom one. Its
27
- `runtime` path resolves relative to the recipe file. The runtime cannot be changed
28
- in the settings menu. `--directory` defaults to `~/clawscarf-team`.
23
+ The tracked [current runtime](../runtime/current.json) selects a published release
24
+ by exact image digests and downloadable tool checksums. The development command
25
+ reads it from the checkout; it does not query a remote latest version or build images.
26
+ New installations retain their own copy. Updating this file or the CLI never changes
27
+ an existing installation's saved selection.
29
28
 
30
- The tracked [development runtime](../runtime/releases/0.1.0-dev.json) currently names
31
- locally built Docker image IDs and checksum-pinned OpenShell tools under ignored
32
- `runtime/tools/0.0.116/`. It works on the prepared development machine; it is **not a
33
- published, clean-machine release**. Definitions belong in the tracked directories
34
- above. Compiled images, binaries and test artifacts are not source definitions.
29
+ After publication, the workflow copies the verified release manifest into this file
30
+ and commits it to `main`. Pulling that commit updates the development command's
31
+ selection. [Promotion](../scripts/release/advance-runtime.ts) requires a newer version
32
+ and the same selection the candidate was built against; an identical repeat is a no-op.
33
+ A changed pin or concurrent Git update fails visibly instead of overwriting another
34
+ selection. The promotion job can be retried independently of publication. Repository
35
+ rules must permit the release workflow's bot to push this commit to `main`.
35
36
 
36
- The current platform is macOS arm64 with Docker Desktop. Setup validates the host,
37
- tools and ports; it pulls registry images by digest and downloads missing runtime tools
38
- when their definition supplies an HTTPS URL and SHA-256. It cannot recover a missing
39
- local development image ID. See the
40
- [installation guide](../deploy/deployment/installation.md) for diagnostics.
37
+ For experiments with locally built images/tools, create a separate runtime bundle
38
+ and custom recipe using [runtime assembly](#assemble-runtime-artifacts). The bundled
39
+ recipe uses the same published artifact format in development and installed CLIs.
41
40
 
42
41
  ## Publishing structure
43
42
 
@@ -45,20 +44,14 @@ Release candidates contain:
45
44
 
46
45
  - npm `@clawscarf/cli`: compiled CLI, recipes, pack files, model catalog and runtime
47
46
  definitions. No Docker images or large OpenShell executables in npm.
48
- - GitHub Releases: versioned runtime tool archives, checksums and required notices.
47
+ - GitHub Releases: standalone CLI archives with a private Node runtime and installed
48
+ dependencies, an installer, runtime tool archives, checksums, required notices and
49
+ the OpenClaw source provenance and patch series used by the image build.
49
50
  - GHCR: runtime/companion images referenced by immutable registry digest.
50
51
 
51
- Installing a newer CLI supplies newer recipes. Each recipe still selects an exact
52
- runtime; startup never resolves “latest.” Existing installations retain their
53
- accepted settings and runtime. Explicit configuration changes preserve unrelated
54
- native edits. The CLI package version and a runtime version need not be the same.
55
-
56
- New installations copy their runtime definition and tools into their own `runtime/`
57
- directory and retain selected pack files under `state/pack-sources/`. Removing the
58
- checkout, an npm cache entry or an older CLI package does not remove those files.
59
- Downloads are bounded, checked before becoming executable inputs, and reused on
60
- subsequent configuration. Corrupt retained tools fail verification rather than being
61
- silently replaced. Docker verifies image digests. No start command resolves latest.
52
+ The [installation guide](../deploy/deployment/installation.md#change-an-existing-installation)
53
+ owns retained configuration and acquisition behavior. CLI, recipe and runtime
54
+ versions are independent; recipe versioning belongs to [recipes](../recipes/README.md).
62
55
 
63
56
  ## Build and publish
64
57
 
@@ -66,46 +59,96 @@ silently replaced. Docker verifies image digests. No start command resolves late
66
59
  with an exact version, such as `0.1.0-alpha.1`. It:
67
60
 
68
61
  1. Runs checks and tests the compiled operator outside the checkout on macOS arm64.
69
- 2. Builds the pinned OpenClaw source and ClawScarf images on Linux arm64, checks
70
- runtime capabilities and the Chromium sandbox, and pushes candidate images to GHCR.
62
+ 2. Reconstructs OpenClaw from the pinned upstream commit and the ordered
63
+ [patch series](../runtime/openclaw/README.md), verifies the resulting source tree,
64
+ then builds ClawScarf images on Linux arm64 and x86-64,
65
+ checks runtime capabilities and the Chromium sandbox, then starts a protected
66
+ installation with private LiteLLM networking, exercises native administrator
67
+ access through the companion, and verifies stop/start retention.
68
+ Both architectures must report identical OpenClaw source provenance and patch
69
+ archives before it publishes image indexes containing both architectures to GHCR.
71
70
  3. Downloads checksum-pinned OpenShell tools, records the image digests, and assembles
72
- the runtime archive, individual executable assets, npm CLI, checksums and notices.
71
+ one runtime archive per host platform, individual executable assets, npm CLI,
72
+ checksums and notices. Candidate assembly verifies the image builds' patch archive
73
+ and provenance against this checkout before including them in the release.
73
74
  4. Installs the resulting npm archive into a temporary prefix and checks its CLI/catalog.
75
+ 5. Builds standalone CLI archives on macOS ARM64 and Linux ARM64/x86-64 using the
76
+ same npm payload and frozen production dependency lockfile. Downloads Node using
77
+ the checksums in [components.json](components.json), retains its license, and
78
+ tests the installer and packaged CLI with system Node deliberately unavailable.
79
+ Only after all three platform checks pass does it assemble `release-candidate`.
80
+
81
+ [Standalone packaging](../scripts/release/standalone.ts) adds a private Node executable
82
+ and a small launcher; it does not change the CLI implementation. The
83
+ [installer](install.sh) is versioned with the release and verifies its archive.
84
+ Its user-facing options and upgrade behavior belong to the
85
+ [installation guide](../deploy/deployment/installation.md); archive layouts belong to
86
+ [operator packaging](operator.md).
74
87
 
75
88
  The [image builder](../scripts/release/build-images.sh) and
76
89
  [candidate assembler](../scripts/release/candidate.ts) contain the build commands;
77
- Actions supplies runners and registry credentials. The source recipe pins the development
78
- runtime. Packaging resolves that same runtime to the candidate's immutable definition;
79
- it does not make recipes select latest. The first release uses the same CLI/runtime
80
- version. Recipe versions remain independent; bump them when defaults, pack selection
81
- or the selected runtime changes. Published definitions must not be overwritten.
90
+ GitHub Actions orchestrates the build and supplies registry credentials. Image builds
91
+ and Linux installation checks use Depot ARM64/x86-64 runners; macOS checks and packaging
92
+ use GitHub-hosted runners. The Depot Managed Runners app connects the ClawScarf organization
93
+ to the RAW Labs Depot organization. The image job installs Docker 29.5.3 on its
94
+ disposable runner for the network features required by installations.
95
+ The [patch guide](../runtime/openclaw/README.md#release-and-verification-boundaries)
96
+ owns source identity and reconstruction. Candidate assembly packages
97
+ [openclaw-source.json and openclaw-patches.tgz](../scripts/release/candidate.ts)
98
+ with checksums; each runtime archive includes both. The runtime definition's `sourceRevision`
99
+ identifies the ClawScarf commit that owns those inputs.
100
+ Recipes reference the current manifest within their checkout or installed package.
101
+ Candidate packaging replaces that file only in the staged package with the newly
102
+ built manifest. It leaves source files untouched; publication advances the checkout
103
+ as described above. Published packages and release assets remain immutable.
82
104
 
83
105
  The `release-candidate` Actions artifact is the reviewable output. Download it and test
84
106
  a fresh supported installation, administrator login, real inference and stop/start
85
107
  before publication. GitHub's macOS runner does not provide our Docker Desktop journey;
86
- its packaging checks alone do not establish that journey. The browser-selection bug
87
- remains a separate, explicit limit; the Team server recipe leaves browser disabled.
108
+ its packaging checks alone do not establish that journey. Check the owning component
109
+ limitations before claiming support for optional capabilities.
88
110
 
89
111
  [Publish release candidate](../.github/workflows/publish-release.yml) accepts a successful
90
- build run from `main`. It checks the source commit and artifact checksums, creates the
91
- GitHub Release and publishes the already-built npm tarball. It never rebuilds images
112
+ build run from `main`. Before publishing anything, it checks the source commit,
113
+ artifact checksums, current runtime pin and npm channel progression. It then creates
114
+ the GitHub Release and publishes the already-built npm tarball. It never rebuilds images
92
115
  or packages. Prereleases use npm's `next` tag; stable versions use `latest`. Repeating
93
- a GitHub upload is allowed only when the existing checksums match exactly.
116
+ a GitHub upload is allowed only when the existing checksums match exactly. An npm
117
+ version already published with the same tarball integrity and channel is skipped
118
+ on retry; different bytes or a newer selected version stop publication.
119
+ A separate dependent job then advances the checkout's current runtime selection;
120
+ a failure there leaves the published release available and can be retried without
121
+ republishing npm or rebuilding artifacts.
94
122
 
95
- Repository setup before first publication:
123
+ Repository setup:
96
124
 
97
125
  - GHCR image packages must be publicly readable; a private candidate digest is not
98
126
  usable by an unauthenticated installer. The build uses GitHub's scoped job token.
99
- - Configure the GitHub `release` environment and npm trusted publishing for
100
- `@clawscarf/cli`, repository `clawscarf/clawscarf`, workflow [publish-release.yml](../.github/workflows/publish-release.yml),
101
- environment `release`. npm ownership/initial package setup is separate from code.
102
- - Check transitive notices/source obligations before distributing the first images.
127
+ - The GitHub `release` environment restricts deployment to `main`. The npm
128
+ organization `@clawscarf` owns the public `@clawscarf/cli` package.
129
+ - npm trusted publishing is configured for repository `clawscarf/clawscarf`, workflow
130
+ [publish-release.yml](../.github/workflows/publish-release.yml), environment `release`.
131
+ Publication uses the workflow's short-lived identity rather than a stored npm token.
132
+ - Transitive notices/source review remains open in [TODO.md](../TODO.md).
103
133
  Debian copyright files remain in the images; runtime assets include upstream notices
104
134
  and the image build exports its network-tool sources. Those files are not a claim of
105
135
  a completed license audit. Pinned Debian packages still depend on mirror retention.
106
136
 
107
- No npm/GitHub release has been published by adding these workflows. The first Actions
108
- run, clean-machine journey, registry access and publication remain in [TODO.md](../TODO.md).
137
+ ## Release evidence
138
+
139
+ [GitHub Releases](https://github.com/clawscarf/clawscarf/releases) owns published
140
+ versions, release notes and checksummed assets. The linked candidate CI run owns its
141
+ build/test results. Inspect the selected release's runtime definition and
142
+ OpenClaw source provenance to establish what actually shipped; current source docs are
143
+ not evidence that a setting or patch is present in an older installation.
144
+
145
+ Keep release-specific acceptance logs/screenshots in CI or ignored local artifacts,
146
+ with the tested revision/image, platform and actual outcomes. Promote only the tested
147
+ candidate; publishing reuses its bytes. Do not maintain a second release journal in
148
+ component READMEs. Current capability limits remain with their owners:
149
+ [browser integration](../deploy/execution/browser-node/README.md#verified-release-limits),
150
+ [runtime boundary](../deploy/openshell/README.md), [models](../deploy/models/README.md),
151
+ [Access](../services/access/README.md) and [Connections](../plugins/connections/README.md).
109
152
 
110
153
  ## Assemble runtime artifacts
111
154
 
@@ -118,7 +161,9 @@ clawscarf release-create --input /absolute/built-components.json \
118
161
  ```
119
162
 
120
163
  The input follows the [runtime schema](../scripts/release/definition.ts), except
121
- `tools.openshell.cli` and `gateway` are source executable paths. Relative inputs
164
+ `platforms` contains exactly one host and `tools.openshell.cli` and `gateway` are
165
+ source executable paths. The output indexes tool artifacts by platform, using the
166
+ same format as published releases. Relative inputs
122
167
  resolve beside that input file. The result is:
123
168
 
124
169
  ```text
@@ -135,3 +180,22 @@ an existing output directory and removes incomplete output on failure. It does n
135
180
  build images, copy recipes/packs or publish artifacts. A custom recipe can point to
136
181
  the resulting runtime definition. The [component pins](components.json) record
137
182
  upstream sources; [operator packaging](operator.md) describes the CLI archive.
183
+
184
+ ## CLI telemetry destination
185
+
186
+ [telemetry.json](telemetry.json) is copied unchanged into the compiled operator,
187
+ npm CLI and standalone CLI payload. It selects the ClawScarf project in PostHog EU
188
+ using `host` (the HTTPS ingestion origin) and `projectToken` (the public `phc_`
189
+ project token). Setting the file to `null` disables reporting for that build.
190
+ Never put a personal or project-secret API key in this public file. A loopback
191
+ HTTP origin is accepted for local receiver tests only.
192
+
193
+ The [CLI telemetry guide](../deploy/deployment/installation.md#telemetry) owns event
194
+ fields, user opt-out, local identity and delivery limits. Destination changes need
195
+ a new CLI build/package; they do not change running team servers or cloud-service
196
+ configuration. Automated tests use local receivers. The destination project's
197
+ **Settings → Privacy → Discard client IP data** must stay enabled: a null `$ip`
198
+ property alone does not prevent PostHog from storing the connection IP. The CLI
199
+ also disables GeoIP enrichment. When changing destinations, verify that privacy
200
+ setting and confirm start/finish events and their properties in the target project
201
+ before publishing. An ingestion check does not establish CLI release publication.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "openclaw": {
3
+ "sourceTree": "57d9c7394530b0468c0ccc3f163297c6669e0d5a",
3
4
  "version": "2026.9.4",
4
- "sourceRevision": "7bc487d39dc9e059bb9b19ea08152883022f83fe",
5
- "image": "clawscarf-openclaw:7bc487d39dc9e059bb9b19ea08152883022f83fe"
5
+ "sourceRevision": "7bc487d39dc9e059bb9b19ea08152883022f83fe"
6
6
  },
7
7
  "openshell": {
8
8
  "version": "0.0.116",
@@ -12,16 +12,40 @@
12
12
  "darwin-arm64": {
13
13
  "url": "https://github.com/NVIDIA/OpenShell/releases/download/v0.0.116/openshell-aarch64-apple-darwin.tar.gz",
14
14
  "sha256": "e582f2374053bebac8e6aaeb4a369931b7d4bb97bd55055e2c02e85502627e22"
15
+ },
16
+ "linux-arm64": {
17
+ "url": "https://github.com/NVIDIA/OpenShell/releases/download/v0.0.116/openshell-aarch64-unknown-linux-musl.tar.gz",
18
+ "sha256": "7a949c48d1e000cd280869eea1e203e24816b9cfefc575b68a8b72b939cb3f43"
19
+ },
20
+ "linux-x64": {
21
+ "url": "https://github.com/NVIDIA/OpenShell/releases/download/v0.0.116/openshell-x86_64-unknown-linux-musl.tar.gz",
22
+ "sha256": "4fb4476d80a1875a0b83547ec3aba999cf0a2e2d75f95f2f709b622e2103520e"
15
23
  }
16
24
  },
17
25
  "gateway": {
18
26
  "darwin-arm64": {
19
27
  "url": "https://github.com/NVIDIA/OpenShell/releases/download/v0.0.116/openshell-gateway-aarch64-apple-darwin.tar.gz",
20
28
  "sha256": "f192d3d737c125264e13ef73458541df2ca6a9eb2fa599736a7f2587d5d2ce8d"
29
+ },
30
+ "linux-arm64": {
31
+ "url": "https://github.com/NVIDIA/OpenShell/releases/download/v0.0.116/openshell-gateway-aarch64-unknown-linux-gnu.tar.gz",
32
+ "sha256": "292c379193a339220234ffea585350901468bb8f4076e2076bc074e8ed18974b"
33
+ },
34
+ "linux-x64": {
35
+ "url": "https://github.com/NVIDIA/OpenShell/releases/download/v0.0.116/openshell-gateway-x86_64-unknown-linux-gnu.tar.gz",
36
+ "sha256": "59c6da724eae7a00c28826f9191efbdf4fbaa5c768afdc8dea6a80a949ebcc89"
21
37
  }
22
38
  },
23
39
  "gatewayImage": "ghcr.io/nvidia/openshell/gateway:0.0.116@sha256:05cf77bbb022a739aed6f22daa0e7e164415f4ab273b5f84319e46d91eb8f645"
24
40
  },
41
+ "cliNode": {
42
+ "version": "24.19.0",
43
+ "archives": {
44
+ "darwin-arm64": "8294b7aa9b03997481c06babf1e8b270c859358f27da57a11509afe537ac381d",
45
+ "linux-arm64": "d28c8a5bf0a808f0ed434a1dce8c54ae98f0371c0bd86ac58abc613f73e6643f",
46
+ "linux-x64": "f625d97cd707df4ff96254916fbc5ff014f09c09effe5a1e0ca8f6d41a8789d4"
47
+ }
48
+ },
25
49
  "companionNode": {
26
50
  "version": "24.19.0",
27
51
  "image": "node@sha256:4196d66a565c6f195728d9952f161f4adfe2ad753052a08b7ec7f1c5a6bda42b"
@@ -1,63 +1,37 @@
1
- # ClawScarf operator
1
+ # CLI archive
2
2
 
3
- The operator archive contains the compiled configuration/lifecycle CLI and its controller, model and pack
4
- operators. It runs outside the contributor checkout. It is not the complete
5
- distribution: runtime/companion images and the pinned OpenShell executables are
6
- separate inputs. The archive includes recipes, packs, the model catalog and runtime definitions.
7
- The interactive menu lists those recipes; each fixes its runtime. For a published runtime it downloads missing OpenShell tools by checksum and pulls
8
- registry images by digest. Local development image IDs cannot be downloaded. The npm
9
- package is named `@clawscarf/cli` and exposes the `clawscarf` command. Development archives
10
- remain private; the release candidate builder makes the package publishable. [Release contents](README.md) defines the publication model.
3
+ For normal installation and operation, use the [quickstart](../README.md#get-started)
4
+ and [CLI guide](../deploy/deployment/installation.md). This file describes the archive
5
+ layout; [release assembly](README.md) owns how artifacts are built and published.
6
+ The source links refer to the repository, not additional files in this archive.
11
7
 
12
- ## Run the archive
8
+ ## Standalone layout
13
9
 
14
- Verify the archive against its accompanying `SHA256SUMS`, then extract it into a new
15
- directory. Use Node 24.16 or later in the Node 24 line, or Node 26.1 or later, and
16
- pnpm 10.33.0. In the extracted `package` directory:
10
+ The standalone archive contains `clawscarf/` with the command launcher, a private
11
+ `node/bin/node`, Node's license, and `package/` with the CLI, installed dependencies
12
+ and catalogs. Verify it against the same release's `SHA256SUMS`, then extract it.
13
+ Run `./clawscarf/clawscarf configure`; moving the complete directory preserves its
14
+ runtime and dependencies. The release installer performs this verification and
15
+ installation for normal use.
16
+
17
+ ## JavaScript archive
18
+
19
+ The development JavaScript archive contains compiled operator code, its production
20
+ dependency lockfile, migrations, policy/helpers, recipes, packs and runtime definitions.
21
+ It excludes companion servers, Docker images, OpenShell executables and installation
22
+ state. Publisher dependencies and TypeScript sources are not runtime requirements.
23
+
24
+ With Node/pnpm matching [package.json](../package.json), verify the archive against
25
+ its `SHA256SUMS` and extract it into a new directory. Inside `package`:
17
26
 
18
27
  ```sh
19
28
  pnpm install --prod --frozen-lockfile --ignore-scripts
20
29
  node scripts/clawscarf.js --help
21
30
  node scripts/clawscarf.js configure --directory /absolute/new-team
22
- node scripts/clawscarf.js configure --help
23
- node scripts/clawscarf.js people --help
24
- node scripts/clawscarf.js connections --help
25
31
  ```
26
32
 
27
- Dependencies are installed from the included frozen lockfile. Its root importer
28
- contains only the production dependencies referenced by the staged operator;
29
- publisher and browser dependencies are omitted. Locked transitive versions are retained.
30
- No TypeScript compiler, contributor source or build step is needed to run the commands.
31
- The current local assembly supports macOS arm64 with Docker Desktop only.
32
-
33
- The installer reviews recipe settings before credentials, prepares the installation,
34
- and offers **Start now**. It starts Docker services and protected OpenShell containers, then exits; closing
35
- the terminal leaves them running. Administrator setup supplies a private sign-in link and waits for successful
36
- browser setup, with replacement links offered on expiry. The same public
37
- operations use `configure` for new or existing installations, with `--non-interactive`
38
- for automation. `start`, `stop`, `status` and `logs` operate the selected `--directory`.
39
- Validation and preview/apply are internal. See the source installation guide for
40
- supported retained changes and administrator setup.
41
-
42
- Recipes select runtime definitions relative to their own files. New installations
43
- retain the runtime and selected packs outside the package. The development descriptor
44
- still uses local image IDs and tools prepared separately; that development archive alone
45
- cannot install on a clean machine. Published candidates instead contain registry digests
46
- and checksummed tool download URLs. Custom recipes can point to a separately prepared
47
- runtime bundle. Team server supplies a basic team server, not a document workflow.
48
-
49
- Keep installation data outside this extracted package. Stop retains state; replacing
50
- an operator archive is not a runtime upgrade or backup. Docker services keep running after
51
- terminal exit; Docker must remain available. No host service is installed.
52
- The pack operator additionally needs the pinned Python environment from
53
- `scripts/packs/requirements.txt`. Models require an external LiteLLM gateway or the unified configuration’s pinned local
54
- LiteLLM service. This archive contains no model/provider credentials. Unified preparation
55
- can issue initial scoped model and Connections credentials for fresh installations;
56
- normal start never rotates or reactivates them. Use `configure` for capability changes;
57
- `connections` manages application accounts and grants.
58
-
59
- The source checkout owns full local setup, model and pack qualification instructions.
60
- [Third-party notices](../THIRD_PARTY_NOTICES.md) are retained verbatim; their relative source references refer
61
- to the source checkout, not additional runtime payload in this archive. Installed
62
- dependencies retain their own notices. Full binary-release license qualification
63
- remains separate from this operator packaging check.
33
+ Keep installation data outside the extracted package. A development runtime that
34
+ references local image IDs needs those images prepared separately; see
35
+ [custom runtime assembly](README.md#assemble-runtime-artifacts).
36
+ The optional pack operator also needs its [Python dependencies](../packs/README.md#requirements-and-bindings).
37
+ Required [notices](../THIRD_PARTY_NOTICES.md) and dependency licenses accompany the payload.
@@ -0,0 +1,4 @@
1
+ {
2
+ "host": "https://eu.i.posthog.com",
3
+ "projectToken": "phc_ncR7uw53sKnhNVnfhXruCnS3WPyRTzm8AxHPbsRFeHxK"
4
+ }
@@ -13,6 +13,12 @@ export const configurationInput = z
13
13
  publicOrigin: origin,
14
14
  widgetOrigin: origin,
15
15
  standaloneNavigation: z.boolean().default(true),
16
+ agentName: z
17
+ .string()
18
+ .trim()
19
+ .min(1)
20
+ .max(50)
21
+ .refine((value) => [...value].every((character) => character.charCodeAt(0) >= 32 && character.charCodeAt(0) !== 127), "Use an agent name without control characters."),
16
22
  administratorIdentity: z
17
23
  .string()
18
24
  .min(1)
@@ -28,12 +34,14 @@ export function initialConfiguration(input) {
28
34
  const settings = configurationInput.parse(input);
29
35
  const identity = settings.administratorIdentity;
30
36
  return {
37
+ marketplace: { enabled: false },
31
38
  gateway: {
32
39
  publicOrigin: settings.publicOrigin,
33
40
  mode: "local",
34
41
  bind: "loopback",
35
42
  port: 18789,
36
43
  terminal: { enabled: false },
44
+ cliAgents: { enabled: false },
37
45
  trustedProxies: ["127.0.0.1"],
38
46
  controlUi: {
39
47
  allowedOrigins: [settings.publicOrigin],
@@ -62,13 +70,19 @@ export function initialConfiguration(input) {
62
70
  member: {
63
71
  agents: "*",
64
72
  scopes: ["operator.read", "operator.write", "operator.talk"],
65
- sessions: { others: "none" },
73
+ sessions: { others: "view" },
66
74
  sandbox: "inherit",
67
75
  },
68
76
  },
69
77
  },
70
78
  },
71
79
  agents: {
80
+ entries: {
81
+ main: {
82
+ name: settings.agentName,
83
+ identity: { name: settings.agentName },
84
+ },
85
+ },
72
86
  defaults: {
73
87
  workspace: "/home/node/.openclaw/workspace",
74
88
  sandbox: { mode: "off" },
@@ -0,0 +1,63 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "version": "0.1.0-alpha.10",
4
+ "sourceRevision": "c7b49a1ec290de743a0cc2ec2708efadbfaeb802",
5
+ "platforms": [
6
+ "darwin-arm64",
7
+ "linux-arm64",
8
+ "linux-x64"
9
+ ],
10
+ "images": {
11
+ "postgres": "postgres@sha256:742f40ea20b9ff2ff31db5458d127452988a2164df9e17441e191f3b72252193",
12
+ "gateway": "ghcr.io/clawscarf/clawscarf/runtime@sha256:77911d585b22c653528fa878fa29e9ddbcf09be18bc7fe5a68a2f1bcc4f3ea29",
13
+ "companion": "ghcr.io/clawscarf/clawscarf/companion@sha256:25bf114473a4ef37c91fd3df97d52c8855c103ace03fb46bb62baf52780d9bfc",
14
+ "openshellClient": "ghcr.io/clawscarf/clawscarf/openshell-client@sha256:b85a20b8add9375272d325fa26db80c9159f92771ca0cfb17b472bdf09e71d00",
15
+ "relay": "ghcr.io/clawscarf/clawscarf/browser-relay@sha256:4ef193a9c7d9f4e062c8a4a8a70855787d73039e617d855646cacf2660049fdc",
16
+ "models": "ghcr.io/berriai/litellm:v1.100.1@sha256:a3715fa7ad8387941ab697259bd2881d68931657247a41984f90fae6d11c62bf",
17
+ "browser": {
18
+ "chromium": "ghcr.io/clawscarf/clawscarf/browser@sha256:0c456d3d5f8df2d28a292280f9af94999c8bd850de3283ff61c22540fbae6fc0",
19
+ "node": "ghcr.io/clawscarf/clawscarf/browser-node@sha256:6b5db704249f0af97bf055d88789ae15f83e5e1c73c669b7ea0b8f81946b2dee",
20
+ "dns": "ghcr.io/clawscarf/clawscarf/browser-dns@sha256:9dc584fd4b9cde7d7d854d24bb701da15d1bb795241d32083269ab04d881dced",
21
+ "egress": "ghcr.io/clawscarf/clawscarf/browser-egress@sha256:2d72e59d6b3cd8bf0bf47a930f4a92db5b4c8586c01cdc428bf0a09a38f95a58"
22
+ }
23
+ },
24
+ "tools": {
25
+ "openshell": {
26
+ "version": "0.0.116",
27
+ "cli": {
28
+ "darwin-arm64": {
29
+ "file": "tools/darwin-arm64/openshell",
30
+ "sha256": "0baeeffe0e4c184b08fde910ac9e8815fb0b8cfb808e49c0e634d7db65fb03bb",
31
+ "url": "https://github.com/clawscarf/clawscarf/releases/download/v0.1.0-alpha.10/openshell-darwin-arm64"
32
+ },
33
+ "linux-arm64": {
34
+ "file": "tools/linux-arm64/openshell",
35
+ "sha256": "84df9f059b16b66c83748606cc87d9edcda84b57effea19543f5c368aba7eb18",
36
+ "url": "https://github.com/clawscarf/clawscarf/releases/download/v0.1.0-alpha.10/openshell-linux-arm64"
37
+ },
38
+ "linux-x64": {
39
+ "file": "tools/linux-x64/openshell",
40
+ "sha256": "24e85062073d512d1951c76cd3890b7bce1ab01cc36a08f88b3b43c067a402da",
41
+ "url": "https://github.com/clawscarf/clawscarf/releases/download/v0.1.0-alpha.10/openshell-linux-x64"
42
+ }
43
+ },
44
+ "gateway": {
45
+ "darwin-arm64": {
46
+ "file": "tools/darwin-arm64/openshell-gateway",
47
+ "sha256": "298706259ef18350f334c222e981e91583558511d50bce22727c689d261203e6",
48
+ "url": "https://github.com/clawscarf/clawscarf/releases/download/v0.1.0-alpha.10/openshell-gateway-darwin-arm64"
49
+ },
50
+ "linux-arm64": {
51
+ "file": "tools/linux-arm64/openshell-gateway",
52
+ "sha256": "0e660428e655e7481f34ba8a4b351554400baf791863d32555c98dddb3f09ae2",
53
+ "url": "https://github.com/clawscarf/clawscarf/releases/download/v0.1.0-alpha.10/openshell-gateway-linux-arm64"
54
+ },
55
+ "linux-x64": {
56
+ "file": "tools/linux-x64/openshell-gateway",
57
+ "sha256": "780fc7ad871e2163f3fb866a2d0254ee682fc0d83e6261a84b350c8dcdd9f47b",
58
+ "url": "https://github.com/clawscarf/clawscarf/releases/download/v0.1.0-alpha.10/openshell-gateway-linux-x64"
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
@@ -8,7 +8,11 @@ import { LocalSetupError } from "./deployment/process.js";
8
8
  import { LocalDatabaseError } from "./deployment/database.js";
9
9
  import { InstallerCancelled } from "./installation/installer/prompts.js";
10
10
  import { installationCommand } from "./installation/command.js";
11
- const program = installationCommand();
11
+ import { CliTelemetry } from "./telemetry.js";
12
+ const telemetry = new CliTelemetry();
13
+ const program = installationCommand(telemetry);
14
+ program.hook("preAction", async (_program, command) => telemetry.start(command));
15
+ let failureCode;
12
16
  const commands = [program];
13
17
  for (const command of commands) {
14
18
  command.exitOverride().configureOutput({ outputError: () => { } });
@@ -85,8 +89,12 @@ catch (error) {
85
89
  ? error.message
86
90
  : "Check the configuration, file permissions and local prerequisites. No operation was automatically retried."),
87
91
  };
92
+ failureCode = failure.code;
88
93
  process.stderr.write((program.opts().json
89
94
  ? JSON.stringify(failure)
90
95
  : `Error: ${failure.detail}`) + "\n");
91
96
  process.exitCode = error instanceof InstallerCancelled ? 130 : 1;
92
97
  }
98
+ finally {
99
+ await telemetry.finish(process.exitCode, failureCode);
100
+ }