zooid 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -9
- package/dist/bin.js +182 -142
- package/dist/bin.js.map +1 -1
- package/dist/{chunk-LOILUENL.js → chunk-LIMRV7C4.js} +1873 -996
- package/dist/chunk-LIMRV7C4.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +9 -9
- package/src/bootstrap/configs.ts +19 -6
- package/src/bootstrap/derive.ts +3 -2
- package/src/bootstrap/identity-bootstrap.integration.test.ts +53 -0
- package/src/bootstrap/registration-url.test.ts +14 -0
- package/src/bootstrap/registration-url.ts +7 -0
- package/src/commands/dev.ts +1 -1
- package/src/commands/init/generators.test.ts +30 -12
- package/src/commands/init/generators.ts +23 -12
- package/src/commands/init/prompts.ts +9 -34
- package/src/commands/init/registry.test.ts +2 -2
- package/src/commands/init/registry.ts +9 -8
- package/src/commands/init/scaffold-roundtrip.test.ts +38 -0
- package/src/commands/init.test.ts +17 -12
- package/src/commands/init.ts +2 -4
- package/src/daemon/pull-wiring.test.ts +14 -0
- package/src/daemon/pull-wiring.ts +4 -0
- package/src/daemon/start-daemon-pull.integration.test.ts +95 -0
- package/src/daemon/start-daemon.ts +53 -6
- package/src/daemon/sync-cursors.test.ts +38 -0
- package/src/daemon/sync-cursors.ts +31 -0
- package/src/web/resolve.test.ts +2 -2
- package/src/web/resolve.ts +2 -2
- package/dist/chunk-LOILUENL.js.map +0 -1
package/README.md
CHANGED
|
@@ -6,10 +6,12 @@ Zooid is an open-source, self-hostable chat app for collaborating with AI agents
|
|
|
6
6
|
|
|
7
7
|
**Full docs: [zooid.dev/docs](https://zooid.dev/docs)** · **Join the community server: [community.zoon.eco](https://community.zoon.eco)**
|
|
8
8
|
|
|
9
|
-
- **Protocol-first.** Matrix for transport (E2E encryption, federation), ACP for the agent contract. Pre-built images for Claude Code, opencode, and Codex; any other ACP-compatible harness (
|
|
10
|
-
- **
|
|
11
|
-
- **
|
|
9
|
+
- **Protocol-first.** Matrix for transport (E2E encryption, federation), ACP for the agent contract. Pre-built images for Claude Code, opencode, and Codex; any other ACP-compatible harness (GitHub Copilot CLI, Cursor CLI, Gemini CLI, pi, or your own) connects too.
|
|
10
|
+
- **Run it anywhere.** Each daemon is a *workstation* with its own identity, running as many agents as you like — put it on your laptop, a box, a pod, or a cluster; it doesn't have to live next to the homeserver. Several workstations can share one homeserver.
|
|
11
|
+
- **Containerized runtime.** Docker or Podman. Each agent runs in its own long-lived container with mounts, env, and capabilities declared in `zooid.yaml`.
|
|
12
12
|
- **Multi-agent collaboration.** Agents are standard Matrix users, so an architect bot can `@`-mention a reviewer bot to delegate.
|
|
13
|
+
- **Workforce as code.** Declare agents declaratively; review team-structure changes in pull requests, not a web UI.
|
|
14
|
+
- **Push or pull.** Pick how the daemon and server connect. *Push* suits a cloud deployment running many agents at high throughput — the server pushes messages straight to the daemon, which advertises a URL. *Pull* has the daemon fetch them itself, nothing to expose — so it runs behind a firewall or on your laptop and catches up on whatever it missed while off.
|
|
13
15
|
|
|
14
16
|
## Quickstart
|
|
15
17
|
|
|
@@ -34,22 +36,46 @@ Boot the local stack:
|
|
|
34
36
|
zooid dev
|
|
35
37
|
```
|
|
36
38
|
|
|
39
|
+
> **Prerequisite:** `zooid dev` runs Tuwunel inside a container, so you need a container engine installed and running first — either **Docker** (with the daemon started) or **Podman** aliased as `docker`.
|
|
40
|
+
|
|
37
41
|
`zooid dev` starts a Tuwunel Matrix homeserver in a container, generates the Application Service registration, registers an `admin:admin` user, runs the daemon, and serves the [Zooid web client](https://github.com/zooid-ai/clients).
|
|
38
42
|
|
|
39
43
|
Open `http://localhost:5173`, log in as `admin` / `admin`, join `#welcome`, and `@`-mention your agent.
|
|
40
44
|
|
|
41
45
|
For deployment recipes, the `zooid.yaml` reference, and a deeper tour of how the runtime works, see **[zooid.dev/docs](https://zooid.dev/docs)**.
|
|
42
46
|
|
|
47
|
+
## Workstations & transport modes
|
|
48
|
+
|
|
49
|
+
A Zooid daemon is a **workstation** — set a top-level `workstation:` in `zooid.yaml` and its agents get an exclusive `@{workstation}.{agent}:server` namespace. Several workstations (a box, your laptop, a teammate's) can connect to a single homeserver, each owning its own agents.
|
|
50
|
+
|
|
51
|
+
How a workstation connects is set per-transport with `mode:` — the two choices (push/pull above), named by the value you put in the YAML:
|
|
52
|
+
|
|
53
|
+
- **`appservice` (push)** — the homeserver delivers events to the daemon, so the daemon advertises an address the homeserver can reach: `port` (default `9099`) when they share a host or network, or an `advertise_url` when the daemon lives on a separate machine, pod, or cluster. Best for cloud deployments running many agents; this is what `zooid dev` uses.
|
|
54
|
+
- **`client` (pull)** — the daemon fetches events itself, one outbound sync per agent, with nothing to expose. Runs behind a firewall or on your laptop against a remote homeserver, and catches up on whatever it missed after sleep or restart.
|
|
55
|
+
|
|
56
|
+
```yaml
|
|
57
|
+
workstation: my-laptop
|
|
58
|
+
runtime: local
|
|
59
|
+
transports:
|
|
60
|
+
matrix:
|
|
61
|
+
homeserver: https://your-homeserver.example
|
|
62
|
+
mode: client
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Acting (sending, joining) is identical in both modes — only how the daemon ingests events differs.
|
|
66
|
+
|
|
43
67
|
## The stack
|
|
44
68
|
|
|
45
69
|
Every layer is open and replaceable.
|
|
46
70
|
|
|
47
|
-
| Layer
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
71
|
+
| Layer | Project | License | Backing |
|
|
72
|
+
| -------------- | ---------------- | ------------- | ------------------------------------------------- |
|
|
73
|
+
| Agent protocol | **ACP** | Open standard | Backed by Zed and JetBrains |
|
|
74
|
+
| Bridge | **Zooid daemon** | MIT | This project — the ACP–Matrix bridge |
|
|
75
|
+
| Server | **Matrix** | Open standard | Any homeserver — adopted by Germany, France, NATO |
|
|
76
|
+
| Client | **Zooid web** | MIT | Built on `matrix-js-sdk` (Apache-2.0) |
|
|
77
|
+
|
|
78
|
+
`zooid dev` runs [Tuwunel](https://github.com/matrix-construct/tuwunel) (Apache-2.0, in production at the Swiss government) as the local homeserver, but Zooid points at any Matrix homeserver you already run.
|
|
53
79
|
|
|
54
80
|
## Agent images
|
|
55
81
|
|