@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/README.md CHANGED
@@ -1,3 +1,120 @@
1
- # ClawScarf operator
1
+ <a href="https://clawscarf.com"><img src="https://clawscarf.com/clawscarf-mark.svg" alt="ClawScarf logo" width="112" height="112" /></a>
2
2
 
3
- Read the [operator instructions](release/operator.md).
3
+ # ClawScarf
4
+
5
+ ### OpenClaw, ready for your team.
6
+
7
+ Give your team a shared OpenClaw server—with individual logins, your choice of AI
8
+ models, connected accounts, and execution protected by NVIDIA OpenShell.
9
+ **Self-hosted. Open source. OpenClaw’s own interface.**
10
+
11
+ [Get started](#get-started) · [Installation guide](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md) · [Releases](https://github.com/clawscarf/clawscarf/releases) · [Contribute](https://github.com/clawscarf/clawscarf/blob/main/CONTRIBUTING.md)
12
+
13
+ ## Get started
14
+
15
+ ```sh
16
+ curl -fsSL https://github.com/clawscarf/clawscarf/releases/download/v0.1.0-alpha.8/install.sh | sh
17
+ export PATH="$HOME/.local/bin:$PATH"
18
+ clawscarf configure
19
+ ```
20
+
21
+ **Choose Team server. Pick a model. Sign in. Start your server.**
22
+
23
+ The terminal setup walks you through it, downloads the runtime, and opens OpenClaw
24
+ in your browser. Your sign-in becomes the first administrator account. No checkout,
25
+ Docker configuration files or separate OpenClaw installation required.
26
+
27
+ You’ll need Docker and a model-provider API key. Check the
28
+ [platform requirements](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md) before installing.
29
+
30
+ <details>
31
+ <summary>Prefer npm?</summary>
32
+
33
+ ```sh
34
+ npm install -g @clawscarf/cli@next
35
+ clawscarf configure
36
+ ```
37
+
38
+ This alternative uses your own Node installation; see the
39
+ [requirements](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md).
40
+
41
+ </details>
42
+
43
+ ## Make it your team’s workspace
44
+
45
+ | What you want to do | Where to do it |
46
+ | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
47
+ | **Start working with an agent** | Open a chat in OpenClaw. Create and configure agents using its native settings. |
48
+ | **Bring in your teammates** | Open **People**, create an invitation link, and assign native OpenClaw roles. Administrators can remove access there too. |
49
+ | **Connect Outlook and other services** | Open **Connections**, link an account, and choose which agents can use it. Choose this optional capability during setup. |
50
+ | **Use your preferred models** | Choose the provider, model and reasoning level in setup. Run `clawscarf configure` again to change them. |
51
+
52
+ Review the [recipe settings](https://github.com/clawscarf/clawscarf/blob/main/recipes/README.md) and choose your provider and model.
53
+ Usage is billed by your provider; its API key stays outside OpenClaw.
54
+
55
+ Setup opens **[http://127.0.0.1:18800](http://127.0.0.1:18800)** by default.
56
+ That address is local to your machine. To share the server with teammates, use a
57
+ reachable HTTPS address; the [installation guide](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md#configuration-options)
58
+ covers the public URL and company SSO settings.
59
+
60
+ OpenShell applies filesystem and network policy to the whole OpenClaw runtime,
61
+ including plugins, shell commands and local tools. Recipes bring login, models and
62
+ optional Connections together in one setup; you keep OpenClaw’s native agents,
63
+ conversations, skills and settings.
64
+
65
+ ## Everyday commands
66
+
67
+ ```sh
68
+ clawscarf status # Check the server
69
+ clawscarf stop # Stop it, keeping your data
70
+ clawscarf start # Start it again
71
+ clawscarf configure # Change its configuration
72
+ ```
73
+
74
+ The default installation directory is `~/clawscarf-team`. Use
75
+ `--directory ~/another-team` to create or manage a separate installation.
76
+ Chats, files and settings survive stop/start. Closing the terminal leaves the server
77
+ running; Docker must stay running while it is in use.
78
+
79
+ For automation, the same configuration choices are available as command-line flags
80
+ with `--non-interactive`, and commands support `--json`.
81
+ [CLI reference and examples →](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md#configure-without-prompts)
82
+
83
+ See [CLI telemetry](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md#telemetry) for usage reporting
84
+ and how to disable it.
85
+
86
+ ## Your server, your team
87
+
88
+ An installation serves **one trusted team**: separate logins and roles, shared
89
+ execution files and browser accounts. Native roles control application permissions;
90
+ people allowed to run code share the Gateway’s authority. Use separate installations
91
+ for teams that must be isolated from one another.
92
+
93
+ The Team server recipe enables public web access for agents and shell tools. Operators
94
+ can turn it off; private destinations remain restricted to explicitly configured services.
95
+ Public web access permits sending team data to public services. See the
96
+ [network boundary](https://github.com/clawscarf/clawscarf/blob/main/deploy/openshell/README.md#public-web-access) for enforcement and limits.
97
+
98
+ Default login and optional Connections use **ClawScarf Cloud**. You can use your own
99
+ OIDC provider and disable Connections to run without those hosted services. Original
100
+ model-provider keys and Connections management credentials stay outside OpenClaw.
101
+
102
+ See [published releases](https://github.com/clawscarf/clawscarf/releases),
103
+ [security implementation](https://github.com/clawscarf/clawscarf/blob/main/deploy/openshell/README.md),
104
+ [browser support](https://github.com/clawscarf/clawscarf/blob/main/deploy/execution/browser-node/README.md#verified-release-limits)
105
+ and [open work](https://github.com/clawscarf/clawscarf/blob/main/TODO.md) before choosing capabilities. Retained data still needs backups.
106
+
107
+ ## Explore and contribute
108
+
109
+ - **Using ClawScarf:** [Installation](https://github.com/clawscarf/clawscarf/blob/main/deploy/deployment/installation.md) · [People](https://github.com/clawscarf/clawscarf/blob/main/plugins/access/README.md) · [Connections](https://github.com/clawscarf/clawscarf/blob/main/plugins/connections/README.md) · [Models](https://github.com/clawscarf/clawscarf/blob/main/deploy/models/README.md)
110
+ - **Customizing it:** [Recipes](https://github.com/clawscarf/clawscarf/blob/main/recipes/README.md) · [Packs](https://github.com/clawscarf/clawscarf/blob/main/packs/README.md) · [Runtime architecture](https://github.com/clawscarf/clawscarf/blob/main/runtime/README.md)
111
+ - **Helping build it:** [Contributing](https://github.com/clawscarf/clawscarf/blob/main/CONTRIBUTING.md) · [Development setup](https://github.com/clawscarf/clawscarf/blob/main/scripts/README.md) · [Report a bug](https://github.com/clawscarf/clawscarf/issues)
112
+
113
+ ClawScarf maintains a small [OpenClaw patch series](https://github.com/clawscarf/clawscarf/blob/main/runtime/openclaw/README.md)
114
+ for selected fixes and optional capabilities. Releases include its exact source provenance.
115
+
116
+ Built on [OpenClaw](https://github.com/openclaw/openclaw),
117
+ [NVIDIA OpenShell](https://github.com/NVIDIA/OpenShell) and
118
+ [LiteLLM](https://github.com/BerriAI/litellm).
119
+ [MIT licensed](https://github.com/clawscarf/clawscarf/blob/main/LICENSE), with [third-party notices](https://github.com/clawscarf/clawscarf/blob/main/THIRD_PARTY_NOTICES.md).
120
+ ClawScarf is an independent project.
@@ -12,7 +12,7 @@ the operator, companion and Connections plugin artifacts.
12
12
  AGENTS.md is adapted from RawClaw's contributor guide at commit
13
13
  [`f37a6e786fdd88857c21bd32140567874e281a8c`](https://github.com/raw-labs/rawclaw/blob/f37a6e786fdd88857c21bd32140567874e281a8c/AGENTS.md),
14
14
  with the project owner's authorization. The Connections plugin and companion,
15
- access service, UI primitives and development checks also extract or adapt donor
15
+ access service, native page flows and development checks also extract or adapt donor
16
16
  source and regressions. Their local READMEs identify the incorporated paths and
17
17
  deliberate boundary changes.
18
18
  The reviewed donor has no top-level license file; do not infer a blanket license
@@ -24,12 +24,21 @@ embedded third-party notices for each extracted component before publication.
24
24
  The runtime recipe references pinned OpenClaw and OpenShell artifacts in
25
25
  [release/components.json](release/components.json). The access adapter imports
26
26
  the published `@openclaw/gateway-client` package. Dependencies and their versions
27
- are recorded in lockfiles; upstream source is not vendored here.
27
+ are recorded in lockfiles. The [downstream patch series](runtime/openclaw/README.md)
28
+ contains selected source differences and context from MIT-licensed OpenClaw; it is
29
+ not a complete vendored source tree.
28
30
  The terminal installer uses MIT-licensed `@clack/prompts` 1.8.1. It is installed
29
31
  from the operator lockfile and retains its upstream license with the dependency;
30
32
  the installer does not vendor or modify the prompt library.
31
- The Gateway uses unmodified upstream commit `7bc487d39dc9e059bb9b19ea08152883022f83fe`;
32
- the [image build instructions](deploy/images/README.md) own source packaging.
33
+ Standalone CLI archives include the unmodified Node.js 24.19.0 executable from
34
+ [official Node downloads](https://nodejs.org/dist/v24.19.0/), verified against the
35
+ SHA-256 pins in [release/components.json](release/components.json). Each archive
36
+ retains Node's complete upstream LICENSE, including its bundled third-party notices,
37
+ at `node/LICENSE`. JavaScript dependencies retain their licenses in `node_modules`.
38
+ Gateway source builds apply the maintained patch series to upstream commit
39
+ `7bc487d39dc9e059bb9b19ea08152883022f83fe`. Release provenance records the
40
+ resulting tree and patch-set digest alongside the exact patches and their intent documents.
41
+ The [image build instructions](deploy/images/README.md) own source packaging.
33
42
  OpenClaw's upstream [license](https://github.com/openclaw/openclaw/blob/7bc487d39dc9e059bb9b19ea08152883022f83fe/LICENSE)
34
43
  is MIT. NVIDIA NemoClaw's [license](https://github.com/NVIDIA/NemoClaw/blob/main/LICENSE)
35
44
  is Apache-2.0. Referencing their architecture is not incorporating their code.
@@ -58,12 +67,10 @@ qualification reports. Debian package copyright files remain under `/usr/share/d
58
67
  This initial inventory does not establish complete transitive license review;
59
68
  that release requirement remains in [TODO.md](TODO.md).
60
69
 
61
- The Gateway and companion image recipes copy this file and the root [license](LICENSE) verbatim
62
- to `/usr/share/licenses/clawscarf`. The companion recipe additionally copies the
63
- incorporated [shadcn notice](ui/shadcn/LICENSE.md)
64
- there as `shadcn-MIT.txt`. A local runtime rebuild verified the root notices against its build inputs.
65
- A local companion rebuild also verified the root and shadcn notices against build inputs. Relative
66
- source links in this file refer to the source checkout, not image filesystem paths.
70
+ The Gateway and companion image recipes copy this file and the root [license](LICENSE)
71
+ verbatim to `/usr/share/licenses/clawscarf`. Native plugin pages use the shared
72
+ [page renderer](plugins/common/native-page.ts) and OpenClaw's host UI components.
73
+ Relative source links in this file refer to the source checkout, not image filesystem paths.
67
74
 
68
75
  When bundling or adapting software, record its exact version and source, retain its
69
76
  license and required notices, and identify modifications where required. Review
@@ -85,7 +92,7 @@ provenance. Paths below are relative to that donor, not files already present he
85
92
  | Runtime/defaults and plugin packaging | runtime/openclaw/, deploy/images/hetzner/scripts/install-runtime.sh, plugins/connections/ | Reuse defaults, integrity checks and packaging; replace Hetzner, systemd, rootless-engine and host-path assumptions for the selected target. |
86
93
  | Company login and entry | src/domains/access/, src/domains/installations/service/openclaw/entry/, src/apps/ingress/, src/composition/ingress.ts | Reuse OIDC/session/ingress mechanics and native identity semantics; replace organization/admission/placement wiring with standalone ownership. |
87
94
  | Connections | plugins/connections/, src/domains/connections/, src/composition/connections/, catalogs/connections/, scripts/connectors-catalog*.ts | Preserve REST tools, Composio adapter, callbacks, account selection and grants; extract required persistence without the fleet control plane. |
88
- | Connection account UI | src/apps/web/domains/connections/ and its shared visual/form dependencies | Copy the working flow and visual primitives; remove organization routing through explicit standalone composition. |
95
+ | Connection account UI | src/apps/web/domains/connections/ | Adapt the account-management flow to native OpenClaw plugin pages and generated clients; omit the donor web shell. |
89
96
  | Model gateway | runtime/ai-gateway/, deploy/ai-gateway/, src/composition/ai/ and applicable src/domains/ai/ code | Reuse LiteLLM integration/configuration and tests; replace hosted-source/admission/catalog wiring where needed. Do not recreate the removed inference proxy. |
90
97
  | Acceptance | tests/ and corresponding helpers for identity, logout, ingress, native roles, connections, model gateway and browser flows | Transfer regressions with each capability; adapt fixtures and run against the new runtime. Donor success is not new-target acceptance. |
91
98
 
@@ -32,4 +32,4 @@ frontend native_node
32
32
  default_backend native_gateway
33
33
 
34
34
  backend native_gateway
35
- server gateway "host.docker.internal:${CLAWSCARF_NODE_GATEWAY_PORT}" resolvers docker init-addr libc,none
35
+ server gateway "application:${CLAWSCARF_NODE_GATEWAY_PORT}" resolvers docker init-addr libc,none
@@ -0,0 +1,24 @@
1
+ {
2
+ "families": ["0.0.0.0/1", "128.0.0.0/1", "2000::/3"],
3
+ "excluded": [
4
+ "0.0.0.0/8",
5
+ "10.0.0.0/8",
6
+ "100.64.0.0/10",
7
+ "127.0.0.0/8",
8
+ "169.254.0.0/16",
9
+ "172.16.0.0/12",
10
+ "192.0.0.0/24",
11
+ "192.0.2.0/24",
12
+ "192.88.99.0/24",
13
+ "192.168.0.0/16",
14
+ "198.18.0.0/15",
15
+ "198.51.100.0/24",
16
+ "203.0.113.0/24",
17
+ "224.0.0.0/4",
18
+ "240.0.0.0/4",
19
+ "2001::/23",
20
+ "2001:db8::/32",
21
+ "2002::/16",
22
+ "3fff::/20"
23
+ ]
24
+ }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0-alpha.1",
2
+ "version": "0.1.0-alpha.10",
3
3
  "engines": {
4
4
  "node": ">=24.16.0 <25 || >=26.1.0"
5
5
  },
@@ -11,6 +11,7 @@
11
11
  "node-pg-migrate": "9.0.0",
12
12
  "openid-client": "6.8.8",
13
13
  "pg": "8.23.0",
14
+ "posthog-node": "5.52.5",
14
15
  "proper-lockfile": "4.1.2",
15
16
  "undici": "8.10.2",
16
17
  "yaml": "2.9.1",
package/packs/README.md CHANGED
@@ -26,7 +26,7 @@ It preserves edited and unmanaged files, checks plan integrity and does not repl
26
26
  uncertain mutations. Removing an agent remains destructive. Native monitor cleanup
27
27
  uses OpenClaw's direct-local password authentication supplied by the
28
28
  [runtime launcher](../runtime/README.md); trusted-proxy login remains in place for
29
- people. Retained installations need the updated runtime image and a Gateway restart.
29
+ people. Use a runtime release containing that launcher contract.
30
30
 
31
31
  The private runtime helper only inspects packaged source. Individual portable Claws
32
32
  can be built with native `openclaw claws build <member-directory> --out <artifact.tgz>`.
@@ -106,8 +106,7 @@ after a Gateway restart, preservation of edited files and rejection of forwarded
106
106
  password authentication. The copied fixture omits the model prerequisite; no model
107
107
  inference is purchased. Set `CLAWSCARF_TEST_NATIVE_PACKS=1` to run it, optionally
108
108
  with `CLAWSCARF_TEST_OPENCLAW` pointing at the packaged runtime launcher. The same
109
- fixture has passed inside a disposable OpenShell runtime using the pinned upstream
110
- image plus the updated launcher.
109
+ fixture can also run inside a disposable OpenShell runtime to verify its packaged launcher.
111
110
  [Operator binding checks](../tests/packs/connections.test.ts) cover current session,
112
111
  exact grants and revision drift. [Transport checks](../tests/packs/transport.test.ts)
113
112
  cover UUID dispatch and uncertain failure without replay. The optional
@@ -120,11 +119,5 @@ qualify trusted-proxy removal, external OAuth or connector execution.
120
119
  [Execution-target checks](../tests/packs/execution-target.test.ts) use controlled operator
121
120
  processes to verify unified runtime dispatch, missing binaries, denied policy
122
121
  and runtime replacement. They do not replace live OpenShell qualification.
123
- A disposable runtime with the image's nftables 1.1.3/libnftnl 1.2.9 dependencies
124
- loaded an explicit TCP policy: verification accepted its exact process/host/port
125
- and rejected a different port. This qualifies policy observation and matching;
126
- it does not establish a successful connector request or application execution.
127
-
128
- Run `CLAWSCARF_TEST_NATIVE_PACKS=1 pnpm exec tsx --test tests/packs/native.test.ts`
129
- for the disposable native test. It writes isolated temporary state and uses the
130
- pinned OpenClaw dependency installed for the Connections plugin.
122
+ [Network-tool verification](../deploy/images/network-tools/README.md) owns the native
123
+ TCP dependency check; successful policy matching does not establish endpoint reachability.