@cotal-ai/connector-opencode 0.14.10 → 0.14.11

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/dist/index.js CHANGED
@@ -136,7 +136,7 @@ import { isConcreteChannel as isConcreteChannel3, channelInAllow as channelInAll
136
136
 
137
137
  // ../connector-core/dist/docs-bundle.generated.js
138
138
  var DOCS_BUNDLE = {
139
- "version": "0.14.10",
139
+ "version": "0.14.11",
140
140
  "generatedFrom": "docs/*.md + SPEC.md + spec/cotal.schema.json",
141
141
  "pages": [
142
142
  {
@@ -151,7 +151,7 @@ var DOCS_BUNDLE = {
151
151
  "title": "Quickstart",
152
152
  "kind": "Start here (informative)",
153
153
  "summary": "Paste this into any coding agent (Claude Code, OpenCode, Cursor, Codex) and it will do the whole page for you:",
154
- "body": '# Quickstart\n\n> **Start here** (informative) \xB7 **For:** everyone \xB7 **Next:** [Connect Claude](connect-claude.md) \xB7 [Define a team](define-a-team.md) \xB7 [Watch a mesh](watch-a-mesh.md)\n\n## Set up with your agent\n\nPaste this into any coding agent (Claude Code, OpenCode, Cursor, Codex) and it will do\nthe whole page for you:\n\n```text wrap\nRead https://docs.cotal.ai/prompt.md, then set up Cotal on this machine: install it, start a local mesh, and put an agent on it.\n```\n\nTo do it by hand instead, keep reading: this page takes you from install to a running\nlocal mesh with an agent on it, in a few minutes.\n\n## Install and run\n\n```bash\ncurl -fsSL https://get.cotal.ai | sh\n```\n\nThat is the whole install on a machine with nothing on it. The script finds a Node 22+ or\ninstalls a verified one of its own, puts `cotal` in `~/.local/bin`, adds that to your PATH,\nand runs guided setup. It never uses sudo and writes nothing outside your home directory.\nRead it first at [get.cotal.ai](https://get.cotal.ai); it is served as plain text for that\nreason. Useful flags: `--dry-run` to see the plan, `--no-modify-path` to leave your shell rc\nalone, `--no-setup` to install only. Pass them through the pipe as\n`| sh -s -- --dry-run`.\n\nIf you already run Node 22+ and would rather use npm directly:\n\n```bash\nnpm install -g cotal-ai # puts `cotal` on your PATH\ncotal setup # one-time, configure-only; launches nothing\n```\n\nBare `cotal` prints help; `cotal setup` runs the guided setup. `npx cotal-ai setup` works\ntoo and offers to install the global `cotal` at the end. Declining is fine: the hints stay\n`npx cotal-ai \u2026`, and the background processes `cotal up` starts invoke their own resolved\npath rather than a global `cotal`.\n\nRequirements:\n\n- Node 22 or newer. The installer handles this for you; it downloads an official Node build\n and checks it against the SHA-256 sums published beside it on nodejs.org.\n- A glibc system. Cotal\'s terminal layer ships prebuilt native binaries for glibc only, so\n musl distributions (Alpine) are not supported yet and the installer refuses them rather\n than leaving you with an install that cannot start.\n- A `nats-server` binary, version 2.12 or newer (the control surface uses its message\n schedules and per-message TTLs, and fails loud at connect against an older broker). The\n one that ships with the package is new enough; if you already have `nats-server` on your\n PATH, Cotal uses that instead, so make sure it is 2.12+.\n\n## First run\n\n`cotal setup` is configure-only: it prepares your machine and starts nothing. The first\ntime, it walks you through:\n\n1. **Checks.** Verifies Node 22+ and locates a `nats-server` (the bundled one, or your\n own on PATH). Located only; nothing starts.\n2. **Picks connectors.** Choose which agents join your mesh (Claude or OpenCode; detected\n ones are pre-selected). Claude installs a plugin, because its wake channel needs one.\n OpenCode needs no install; it auto-wires when you `cotal spawn` it.\n3. **Seeds one agent.** The generic `default` persona that a bare `cotal spawn` launches;\n edit it to taste. `cotal setup --demo` additionally seeds a guided team to talk to:\n **david** (the engineer, how Cotal works), **sven** (the guide, what to build), and\n **me** (the session you drive). Every file setup writes is announced with a\n `\u2192 wrote \u2026` line.\n4. **Nothing to install for the dashboard.** `@cotal-ai/web` ships inside `cotal-ai` and is\n seeded automatically on first run (like the built-in connectors), so `cotal web` works out\n of the box and tracks your CLI version on upgrade.\n5. **Offers a global install.** Run via `npx` with no global `cotal`, it offers to\n `npm i -g cotal-ai` so you can just type `cotal`.\n\nWhen it finishes, nothing is running yet; it prints the commands to start things. The\nwhole loop is three commands:\n\n```bash\ncotal up --detach # start the mesh + delivery daemon + manager (JWT-authed by default)\ncotal spawn # launch your agent here and talk to it (Ctrl-C to leave)\ncotal down # stop everything\n```\n\nOpen the browser dashboard with `cotal web` (it ships with `cotal-ai`, seeded automatically). Add the\nguided expert team with `cotal setup --demo`, then `cotal spawn\ndavid` (or `sven`, or `me`). Watch the mesh in this terminal anytime with `cotal console`:\n\n![The cotal console: a live roster of agents and their all-activity feed in a terminal TUI](../assets/quickstart.gif)\n\n`cotal up` is JWT-authed by default (sender authenticity plus per-agent ACLs), starts the\nserver-side [delivery daemon](delivery-daemon.md) as the durable backstop, and starts a\ndetached manager so `cotal spawn --detach` / `cotal_spawn` work right after.\n`cotal up --open` gives you an open, loopback-only, live-only mesh instead (no auth, no\ndaemon) for quick local experiments.\n\nFor a mesh where **people sign in** instead of handing out creds files, start it with\n`cotal up --user-auth --idp <auth base URL>`: each human runs `cotal login --idp <url>` once,\nthe operator grants their agents with `cotal actor grant <actor> --sub <their id>` (a full\ngrant by default: all channels, may spawn; narrow it with `--allow-subscribe` /\n`--allow-publish` / `--scope`), and every connect is authorized live against that grant\n(revoke and it\'s gone). See [identity & auth](identity-and-auth.md).\n\nIf a step fails, setup offers to hand you to an interactive Claude session that has the\nfailure context. Type `/exit` to return, and it retries.\n\n## The primitives\n\nThe vocabulary behind those three commands, which every other page builds on:\n\n| Primitive | What it is |\n|---|---|\n| **Space** | One collaboration, isolated from other spaces. Your mesh is a space. |\n| **Endpoint** | Any software on the mesh: a long-lived connection with presence. |\n| **Agent node** | An endpoint with identity, role, and tags (what `cotal spawn` launches). |\n| **Channel** | A named topic participants broadcast on and subscribe to. |\n| **Direct message** | A message addressed to one peer. |\n| **Presence** | The live roster: who is here, `idle` / `waiting` / `working` / `offline`. |\n| **History** | Recent messages a late joiner replays. |\n\nDelivery comes in three modes: **multicast** (to a channel), **unicast** (to one peer),\nand **anycast** (to any one holder of a role). More in\n[Presence & delivery](presence-and-delivery.md); the full term list is in the\n[glossary](glossary.md).\n\n## After the first run\n\nEvery later `cotal setup` prints a **read-only status card**:\n\n```\ncotal \xB7 status\n\u2713 NATS nats://127.0.0.1:4222\n\u2713 plugin installed\n\u25CB mesh down \xB7 start: cotal up --detach\n\u25CB web down \xB7 start: cotal web\n\u25CB manager not running \xB7 start: cotal up, or: cotal supervise\n```\n\nIt probes the current folder (the mesh, the browser dashboard, and the manager behind\n`cotal_spawn` / `despawn` / `persona`) and shows the exact start command for anything\nthat is down. It starts nothing itself.\n\nThe dashboard ships with `cotal-ai` and is seeded automatically on first run. It runs at\n`http://cotal.localhost:7799` once you start it with `cotal web` (works in Chrome,\nFirefox, and Edge; on Safari use `http://127.0.0.1:7799`). If a seeded copy is damaged,\n`cotal ext seed --repair` restores it.\n\nYou drive Cotal through an agent: spawn one and talk to it. It has the tools to message\npeers, spawn teammates, and send feedback (the full surface is the\n[MCP tool catalog](mcp-tools.md)). The same things are available as commands:\n\n```bash\ncotal up --detach # start the mesh + delivery daemon + manager\ncotal status # detailed setup, process, registry, and live mesh status\ncotal spawn # your agent (edit .cotal/agents/default.md)\ncotal spawn david # a guided expert, needs `cotal setup --demo` first (also sven, me)\ncotal console --space main # live mesh view in the terminal (TUI)\ncotal web --space main # open the browser dashboard\ncotal down # stop the background mesh, delivery daemon, and manager\n```\n\nFeedback flows through your agent too: tell it "send feedback: ..." and it reports it for\nyou (built-in `cotal_feedback`), or run `cotal feedback "<message>"`.\n\n`cotal setup --demo` adds the guided team (david, sven, me) to an already-configured machine.\n`cotal setup --full` redoes the whole guided flow (team included), for example to repair\nsomething. Defaults (persona, harness, model selection) and day-to-day operation are in\n[Run a mesh](run-a-mesh.md); every command and flag is in the [CLI reference](cli.md).\n\n## Launch a team from a manifest\n\nThe guided flow gives you one agent (or the expert team with `--demo`). To run a **specific\nteam** (your own channels, agents, and who may read and post where), describe it once in a\n`cotal.yaml` and launch it with `cotal up -f cotal.yaml`. The walkthrough is\n**[Define a team](define-a-team.md)**; the file format is the\n[manifest reference](manifest.md).\n\n## For agents and CI\n\nA coding agent can set Cotal up for you with two non-interactive commands:\n\n```bash\nnpx cotal-ai setup --yes # configure: install the plugin + seed one agent (launches nothing)\nnpx cotal-ai up --detach # start the mesh + delivery daemon + manager\n```\n\n`setup --yes` accepts every default with no prompts and exits non-zero with the log path if a\nstep fails, so an agent or a CI job can check the result (add `--demo` for the guided team).\n`cotal up --detach` then brings up the mesh, the delivery daemon, and the background manager,\nso an agent can use the `cotal_*` tools (spawn/despawn/persona) right away. `cotal down`\nstops the background processes.\n\n## Troubleshooting\n\n- The full log is at `.cotal/setup.log` (and `.cotal/nats.log` for the server).\n- Re-running setup is safe. It reuses a running web and keeps your files.\n- Set `COTAL_SKIP_ASSIST=1` to disable the Claude handoff offer on failures.\n\nNext: put your own agent on the mesh ([Connectors](connectors.md) compares them:\n[Claude](connect-claude.md) \xB7 [OpenCode](connect-opencode.md) \xB7\n[Hermes](connect-hermes.md) \xB7 [pi](connect-pi.md)), declare a team\n([Define a team](define-a-team.md)), or watch it live ([Watch a mesh](watch-a-mesh.md)).\n'
154
+ "body": '# Quickstart\n\n> **Start here** (informative) \xB7 **For:** everyone \xB7 **Next:** [Connect Claude](connect-claude.md) \xB7 [Define a team](define-a-team.md) \xB7 [Watch a mesh](watch-a-mesh.md)\n\n## Set up with your agent\n\nPaste this into any coding agent (Claude Code, OpenCode, Cursor, Codex) and it will do\nthe whole page for you:\n\n```text wrap\nRead https://docs.cotal.ai/prompt.md, then set up Cotal on this machine: install it, start a local mesh, and put an agent on it.\n```\n\nTo do it by hand instead, keep reading: this page takes you from install to a running\nlocal mesh with an agent on it, in a few minutes.\n\n## Install and run\n\n```bash\ncurl -fsSL https://get.cotal.ai | sh\n```\n\nThat is the whole install on a machine with nothing on it. The script finds a Node 22+ or\ninstalls a verified one of its own, puts `cotal` in `~/.local/bin`, adds that to your PATH,\nand runs guided setup. It never uses sudo and writes nothing outside your home directory.\nRead it first at [get.cotal.ai](https://get.cotal.ai); it is served as plain text for that\nreason. Useful flags: `--dry-run` to see the plan, `--no-modify-path` to leave your shell rc\nalone, `--no-setup` to install only. Pass them through the pipe as\n`| sh -s -- --dry-run`.\n\nOn Windows, or if you already run Node 22+ and would rather use npm directly:\n\n```bash\nnpm install -g cotal-ai # puts `cotal` on your PATH\ncotal setup # one-time, configure-only; launches nothing\n```\n\nCotal runs natively on Windows, but the installer above is a POSIX shell script, so npm is the\nroute there (or run the installer under WSL).\n\nBare `cotal` prints help; `cotal setup` runs the guided setup. `npx cotal-ai setup` works\ntoo and offers to install the global `cotal` at the end. Declining is fine: the hints stay\n`npx cotal-ai \u2026`, and the background processes `cotal up` starts invoke their own resolved\npath rather than a global `cotal`.\n\nRequirements:\n\n- Node 22 or newer. The installer handles this for you; it downloads an official Node build\n and checks it against the SHA-256 sums published beside it on nodejs.org.\n- A glibc system. Cotal\'s terminal layer ships prebuilt native binaries for glibc only, so\n musl distributions (Alpine) are not supported yet and the installer refuses them rather\n than leaving you with an install that cannot start.\n- A `nats-server` binary, version 2.12 or newer (the control surface uses its message\n schedules and per-message TTLs, and fails loud at connect against an older broker). The\n one that ships with the package is new enough; if you already have `nats-server` on your\n PATH, Cotal uses that instead, so make sure it is 2.12+.\n\nTo uninstall: `rm -rf ~/.local/share/cotal ~/.local/bin/cotal` removes what the installer wrote,\n`rm -rf ~/.cotal` removes your meshes, agents and credentials, and the `# cotal` block it added\nto your shell rc can be deleted.\n\n## First run\n\n`cotal setup` is configure-only: it prepares your machine and starts nothing. The first\ntime, it walks you through:\n\n1. **Checks.** Verifies Node 22+ and locates a `nats-server` (the bundled one, or your\n own on PATH). Located only; nothing starts.\n2. **Picks connectors.** Choose which agents join your mesh (Claude or OpenCode; detected\n ones are pre-selected). Claude installs a plugin, because its wake channel needs one.\n OpenCode needs no install; it auto-wires when you `cotal spawn` it.\n3. **Seeds one agent.** The generic `default` persona that a bare `cotal spawn` launches;\n edit it to taste. `cotal setup --demo` additionally seeds a guided team to talk to:\n **david** (the engineer, how Cotal works), **sven** (the guide, what to build), and\n **me** (the session you drive). Every file setup writes is announced with a\n `\u2192 wrote \u2026` line.\n4. **Nothing to install for the dashboard.** `@cotal-ai/web` ships inside `cotal-ai` and is\n seeded automatically on first run (like the built-in connectors), so `cotal web` works out\n of the box and tracks your CLI version on upgrade.\n5. **Offers a global install.** Run via `npx` with no global `cotal`, it offers to\n `npm i -g cotal-ai` so you can just type `cotal`.\n\nWhen it finishes, nothing is running yet; it prints the commands to start things. The\nwhole loop is three commands:\n\n```bash\ncotal up --detach # start the mesh + delivery daemon + manager (JWT-authed by default)\ncotal spawn # launch your agent here and talk to it (Ctrl-C to leave)\ncotal down # stop everything\n```\n\nOpen the browser dashboard with `cotal web` (it ships with `cotal-ai`, seeded automatically). Add the\nguided expert team with `cotal setup --demo`, then `cotal spawn\ndavid` (or `sven`, or `me`). Watch the mesh in this terminal anytime with `cotal console`:\n\n![The cotal console: a live roster of agents and their all-activity feed in a terminal TUI](../assets/quickstart.gif)\n\n`cotal up` is JWT-authed by default (sender authenticity plus per-agent ACLs), starts the\nserver-side [delivery daemon](delivery-daemon.md) as the durable backstop, and starts a\ndetached manager so `cotal spawn --detach` / `cotal_spawn` work right after.\n`cotal up --open` gives you an open, loopback-only, live-only mesh instead (no auth, no\ndaemon) for quick local experiments.\n\nFor a mesh where **people sign in** instead of handing out creds files, start it with\n`cotal up --user-auth --idp <auth base URL>`: each human runs `cotal login --idp <url>` once,\nthe operator grants their agents with `cotal actor grant <actor> --sub <their id>` (a full\ngrant by default: all channels, may spawn; narrow it with `--allow-subscribe` /\n`--allow-publish` / `--scope`), and every connect is authorized live against that grant\n(revoke and it\'s gone). See [identity & auth](identity-and-auth.md).\n\nIf a step fails, setup offers to hand you to an interactive Claude session that has the\nfailure context. Type `/exit` to return, and it retries.\n\n## The primitives\n\nThe vocabulary behind those three commands, which every other page builds on:\n\n| Primitive | What it is |\n|---|---|\n| **Space** | One collaboration, isolated from other spaces. Your mesh is a space. |\n| **Endpoint** | Any software on the mesh: a long-lived connection with presence. |\n| **Agent node** | An endpoint with identity, role, and tags (what `cotal spawn` launches). |\n| **Channel** | A named topic participants broadcast on and subscribe to. |\n| **Direct message** | A message addressed to one peer. |\n| **Presence** | The live roster: who is here, `idle` / `waiting` / `working` / `offline`. |\n| **History** | Recent messages a late joiner replays. |\n\nDelivery comes in three modes: **multicast** (to a channel), **unicast** (to one peer),\nand **anycast** (to any one holder of a role). More in\n[Presence & delivery](presence-and-delivery.md); the full term list is in the\n[glossary](glossary.md).\n\n## After the first run\n\nEvery later `cotal setup` prints a **read-only status card**:\n\n```\ncotal \xB7 status\n\u2713 NATS nats://127.0.0.1:4222\n\u2713 plugin installed\n\u25CB mesh down \xB7 start: cotal up --detach\n\u25CB web down \xB7 start: cotal web\n\u25CB manager not running \xB7 start: cotal up, or: cotal supervise\n```\n\nIt probes the current folder (the mesh, the browser dashboard, and the manager behind\n`cotal_spawn` / `despawn` / `persona`) and shows the exact start command for anything\nthat is down. It starts nothing itself.\n\nThe dashboard ships with `cotal-ai` and is seeded automatically on first run. It runs at\n`http://cotal.localhost:7799` once you start it with `cotal web` (works in Chrome,\nFirefox, and Edge; on Safari use `http://127.0.0.1:7799`). If a seeded copy is damaged,\n`cotal ext seed --repair` restores it.\n\nYou drive Cotal through an agent: spawn one and talk to it. It has the tools to message\npeers, spawn teammates, and send feedback (the full surface is the\n[MCP tool catalog](mcp-tools.md)). The same things are available as commands:\n\n```bash\ncotal up --detach # start the mesh + delivery daemon + manager\ncotal status # detailed setup, process, registry, and live mesh status\ncotal spawn # your agent (edit .cotal/agents/default.md)\ncotal spawn david # a guided expert, needs `cotal setup --demo` first (also sven, me)\ncotal console --space main # live mesh view in the terminal (TUI)\ncotal web --space main # open the browser dashboard\ncotal down # stop the background mesh, delivery daemon, and manager\n```\n\nFeedback flows through your agent too: tell it "send feedback: ..." and it reports it for\nyou (built-in `cotal_feedback`), or run `cotal feedback "<message>"`.\n\n`cotal setup --demo` adds the guided team (david, sven, me) to an already-configured machine.\n`cotal setup --full` redoes the whole guided flow (team included), for example to repair\nsomething. Defaults (persona, harness, model selection) and day-to-day operation are in\n[Run a mesh](run-a-mesh.md); every command and flag is in the [CLI reference](cli.md).\n\n## Launch a team from a manifest\n\nThe guided flow gives you one agent (or the expert team with `--demo`). To run a **specific\nteam** (your own channels, agents, and who may read and post where), describe it once in a\n`cotal.yaml` and launch it with `cotal up -f cotal.yaml`. The walkthrough is\n**[Define a team](define-a-team.md)**; the file format is the\n[manifest reference](manifest.md).\n\n## For agents and CI\n\nA coding agent can set Cotal up for you with two non-interactive commands:\n\n```bash\nnpx cotal-ai setup --yes # configure: install the plugin + seed one agent (launches nothing)\nnpx cotal-ai up --detach # start the mesh + delivery daemon + manager\n```\n\n`setup --yes` accepts every default with no prompts and exits non-zero with the log path if a\nstep fails, so an agent or a CI job can check the result (add `--demo` for the guided team).\n`cotal up --detach` then brings up the mesh, the delivery daemon, and the background manager,\nso an agent can use the `cotal_*` tools (spawn/despawn/persona) right away. `cotal down`\nstops the background processes.\n\n## Troubleshooting\n\n- The full log is at `.cotal/setup.log` (and `.cotal/nats.log` for the server).\n- Re-running setup is safe. It reuses a running web and keeps your files.\n- Set `COTAL_SKIP_ASSIST=1` to disable the Claude handoff offer on failures.\n\nNext: put your own agent on the mesh ([Connectors](connectors.md) compares them:\n[Claude](connect-claude.md) \xB7 [OpenCode](connect-opencode.md) \xB7\n[Hermes](connect-hermes.md) \xB7 [pi](connect-pi.md)), declare a team\n([Define a team](define-a-team.md)), or watch it live ([Watch a mesh](watch-a-mesh.md)).\n'
155
155
  },
156
156
  {
157
157
  "slug": "architecture",
@@ -43558,7 +43558,7 @@ config(en_default());
43558
43558
 
43559
43559
  // ../connector-core/dist/docs-bundle.generated.js
43560
43560
  var DOCS_BUNDLE = {
43561
- "version": "0.14.10",
43561
+ "version": "0.14.11",
43562
43562
  "generatedFrom": "docs/*.md + SPEC.md + spec/cotal.schema.json",
43563
43563
  "pages": [
43564
43564
  {
@@ -43573,7 +43573,7 @@ var DOCS_BUNDLE = {
43573
43573
  "title": "Quickstart",
43574
43574
  "kind": "Start here (informative)",
43575
43575
  "summary": "Paste this into any coding agent (Claude Code, OpenCode, Cursor, Codex) and it will do the whole page for you:",
43576
- "body": '# Quickstart\n\n> **Start here** (informative) \xB7 **For:** everyone \xB7 **Next:** [Connect Claude](connect-claude.md) \xB7 [Define a team](define-a-team.md) \xB7 [Watch a mesh](watch-a-mesh.md)\n\n## Set up with your agent\n\nPaste this into any coding agent (Claude Code, OpenCode, Cursor, Codex) and it will do\nthe whole page for you:\n\n```text wrap\nRead https://docs.cotal.ai/prompt.md, then set up Cotal on this machine: install it, start a local mesh, and put an agent on it.\n```\n\nTo do it by hand instead, keep reading: this page takes you from install to a running\nlocal mesh with an agent on it, in a few minutes.\n\n## Install and run\n\n```bash\ncurl -fsSL https://get.cotal.ai | sh\n```\n\nThat is the whole install on a machine with nothing on it. The script finds a Node 22+ or\ninstalls a verified one of its own, puts `cotal` in `~/.local/bin`, adds that to your PATH,\nand runs guided setup. It never uses sudo and writes nothing outside your home directory.\nRead it first at [get.cotal.ai](https://get.cotal.ai); it is served as plain text for that\nreason. Useful flags: `--dry-run` to see the plan, `--no-modify-path` to leave your shell rc\nalone, `--no-setup` to install only. Pass them through the pipe as\n`| sh -s -- --dry-run`.\n\nIf you already run Node 22+ and would rather use npm directly:\n\n```bash\nnpm install -g cotal-ai # puts `cotal` on your PATH\ncotal setup # one-time, configure-only; launches nothing\n```\n\nBare `cotal` prints help; `cotal setup` runs the guided setup. `npx cotal-ai setup` works\ntoo and offers to install the global `cotal` at the end. Declining is fine: the hints stay\n`npx cotal-ai \u2026`, and the background processes `cotal up` starts invoke their own resolved\npath rather than a global `cotal`.\n\nRequirements:\n\n- Node 22 or newer. The installer handles this for you; it downloads an official Node build\n and checks it against the SHA-256 sums published beside it on nodejs.org.\n- A glibc system. Cotal\'s terminal layer ships prebuilt native binaries for glibc only, so\n musl distributions (Alpine) are not supported yet and the installer refuses them rather\n than leaving you with an install that cannot start.\n- A `nats-server` binary, version 2.12 or newer (the control surface uses its message\n schedules and per-message TTLs, and fails loud at connect against an older broker). The\n one that ships with the package is new enough; if you already have `nats-server` on your\n PATH, Cotal uses that instead, so make sure it is 2.12+.\n\n## First run\n\n`cotal setup` is configure-only: it prepares your machine and starts nothing. The first\ntime, it walks you through:\n\n1. **Checks.** Verifies Node 22+ and locates a `nats-server` (the bundled one, or your\n own on PATH). Located only; nothing starts.\n2. **Picks connectors.** Choose which agents join your mesh (Claude or OpenCode; detected\n ones are pre-selected). Claude installs a plugin, because its wake channel needs one.\n OpenCode needs no install; it auto-wires when you `cotal spawn` it.\n3. **Seeds one agent.** The generic `default` persona that a bare `cotal spawn` launches;\n edit it to taste. `cotal setup --demo` additionally seeds a guided team to talk to:\n **david** (the engineer, how Cotal works), **sven** (the guide, what to build), and\n **me** (the session you drive). Every file setup writes is announced with a\n `\u2192 wrote \u2026` line.\n4. **Nothing to install for the dashboard.** `@cotal-ai/web` ships inside `cotal-ai` and is\n seeded automatically on first run (like the built-in connectors), so `cotal web` works out\n of the box and tracks your CLI version on upgrade.\n5. **Offers a global install.** Run via `npx` with no global `cotal`, it offers to\n `npm i -g cotal-ai` so you can just type `cotal`.\n\nWhen it finishes, nothing is running yet; it prints the commands to start things. The\nwhole loop is three commands:\n\n```bash\ncotal up --detach # start the mesh + delivery daemon + manager (JWT-authed by default)\ncotal spawn # launch your agent here and talk to it (Ctrl-C to leave)\ncotal down # stop everything\n```\n\nOpen the browser dashboard with `cotal web` (it ships with `cotal-ai`, seeded automatically). Add the\nguided expert team with `cotal setup --demo`, then `cotal spawn\ndavid` (or `sven`, or `me`). Watch the mesh in this terminal anytime with `cotal console`:\n\n![The cotal console: a live roster of agents and their all-activity feed in a terminal TUI](../assets/quickstart.gif)\n\n`cotal up` is JWT-authed by default (sender authenticity plus per-agent ACLs), starts the\nserver-side [delivery daemon](delivery-daemon.md) as the durable backstop, and starts a\ndetached manager so `cotal spawn --detach` / `cotal_spawn` work right after.\n`cotal up --open` gives you an open, loopback-only, live-only mesh instead (no auth, no\ndaemon) for quick local experiments.\n\nFor a mesh where **people sign in** instead of handing out creds files, start it with\n`cotal up --user-auth --idp <auth base URL>`: each human runs `cotal login --idp <url>` once,\nthe operator grants their agents with `cotal actor grant <actor> --sub <their id>` (a full\ngrant by default: all channels, may spawn; narrow it with `--allow-subscribe` /\n`--allow-publish` / `--scope`), and every connect is authorized live against that grant\n(revoke and it\'s gone). See [identity & auth](identity-and-auth.md).\n\nIf a step fails, setup offers to hand you to an interactive Claude session that has the\nfailure context. Type `/exit` to return, and it retries.\n\n## The primitives\n\nThe vocabulary behind those three commands, which every other page builds on:\n\n| Primitive | What it is |\n|---|---|\n| **Space** | One collaboration, isolated from other spaces. Your mesh is a space. |\n| **Endpoint** | Any software on the mesh: a long-lived connection with presence. |\n| **Agent node** | An endpoint with identity, role, and tags (what `cotal spawn` launches). |\n| **Channel** | A named topic participants broadcast on and subscribe to. |\n| **Direct message** | A message addressed to one peer. |\n| **Presence** | The live roster: who is here, `idle` / `waiting` / `working` / `offline`. |\n| **History** | Recent messages a late joiner replays. |\n\nDelivery comes in three modes: **multicast** (to a channel), **unicast** (to one peer),\nand **anycast** (to any one holder of a role). More in\n[Presence & delivery](presence-and-delivery.md); the full term list is in the\n[glossary](glossary.md).\n\n## After the first run\n\nEvery later `cotal setup` prints a **read-only status card**:\n\n```\ncotal \xB7 status\n\u2713 NATS nats://127.0.0.1:4222\n\u2713 plugin installed\n\u25CB mesh down \xB7 start: cotal up --detach\n\u25CB web down \xB7 start: cotal web\n\u25CB manager not running \xB7 start: cotal up, or: cotal supervise\n```\n\nIt probes the current folder (the mesh, the browser dashboard, and the manager behind\n`cotal_spawn` / `despawn` / `persona`) and shows the exact start command for anything\nthat is down. It starts nothing itself.\n\nThe dashboard ships with `cotal-ai` and is seeded automatically on first run. It runs at\n`http://cotal.localhost:7799` once you start it with `cotal web` (works in Chrome,\nFirefox, and Edge; on Safari use `http://127.0.0.1:7799`). If a seeded copy is damaged,\n`cotal ext seed --repair` restores it.\n\nYou drive Cotal through an agent: spawn one and talk to it. It has the tools to message\npeers, spawn teammates, and send feedback (the full surface is the\n[MCP tool catalog](mcp-tools.md)). The same things are available as commands:\n\n```bash\ncotal up --detach # start the mesh + delivery daemon + manager\ncotal status # detailed setup, process, registry, and live mesh status\ncotal spawn # your agent (edit .cotal/agents/default.md)\ncotal spawn david # a guided expert, needs `cotal setup --demo` first (also sven, me)\ncotal console --space main # live mesh view in the terminal (TUI)\ncotal web --space main # open the browser dashboard\ncotal down # stop the background mesh, delivery daemon, and manager\n```\n\nFeedback flows through your agent too: tell it "send feedback: ..." and it reports it for\nyou (built-in `cotal_feedback`), or run `cotal feedback "<message>"`.\n\n`cotal setup --demo` adds the guided team (david, sven, me) to an already-configured machine.\n`cotal setup --full` redoes the whole guided flow (team included), for example to repair\nsomething. Defaults (persona, harness, model selection) and day-to-day operation are in\n[Run a mesh](run-a-mesh.md); every command and flag is in the [CLI reference](cli.md).\n\n## Launch a team from a manifest\n\nThe guided flow gives you one agent (or the expert team with `--demo`). To run a **specific\nteam** (your own channels, agents, and who may read and post where), describe it once in a\n`cotal.yaml` and launch it with `cotal up -f cotal.yaml`. The walkthrough is\n**[Define a team](define-a-team.md)**; the file format is the\n[manifest reference](manifest.md).\n\n## For agents and CI\n\nA coding agent can set Cotal up for you with two non-interactive commands:\n\n```bash\nnpx cotal-ai setup --yes # configure: install the plugin + seed one agent (launches nothing)\nnpx cotal-ai up --detach # start the mesh + delivery daemon + manager\n```\n\n`setup --yes` accepts every default with no prompts and exits non-zero with the log path if a\nstep fails, so an agent or a CI job can check the result (add `--demo` for the guided team).\n`cotal up --detach` then brings up the mesh, the delivery daemon, and the background manager,\nso an agent can use the `cotal_*` tools (spawn/despawn/persona) right away. `cotal down`\nstops the background processes.\n\n## Troubleshooting\n\n- The full log is at `.cotal/setup.log` (and `.cotal/nats.log` for the server).\n- Re-running setup is safe. It reuses a running web and keeps your files.\n- Set `COTAL_SKIP_ASSIST=1` to disable the Claude handoff offer on failures.\n\nNext: put your own agent on the mesh ([Connectors](connectors.md) compares them:\n[Claude](connect-claude.md) \xB7 [OpenCode](connect-opencode.md) \xB7\n[Hermes](connect-hermes.md) \xB7 [pi](connect-pi.md)), declare a team\n([Define a team](define-a-team.md)), or watch it live ([Watch a mesh](watch-a-mesh.md)).\n'
43576
+ "body": '# Quickstart\n\n> **Start here** (informative) \xB7 **For:** everyone \xB7 **Next:** [Connect Claude](connect-claude.md) \xB7 [Define a team](define-a-team.md) \xB7 [Watch a mesh](watch-a-mesh.md)\n\n## Set up with your agent\n\nPaste this into any coding agent (Claude Code, OpenCode, Cursor, Codex) and it will do\nthe whole page for you:\n\n```text wrap\nRead https://docs.cotal.ai/prompt.md, then set up Cotal on this machine: install it, start a local mesh, and put an agent on it.\n```\n\nTo do it by hand instead, keep reading: this page takes you from install to a running\nlocal mesh with an agent on it, in a few minutes.\n\n## Install and run\n\n```bash\ncurl -fsSL https://get.cotal.ai | sh\n```\n\nThat is the whole install on a machine with nothing on it. The script finds a Node 22+ or\ninstalls a verified one of its own, puts `cotal` in `~/.local/bin`, adds that to your PATH,\nand runs guided setup. It never uses sudo and writes nothing outside your home directory.\nRead it first at [get.cotal.ai](https://get.cotal.ai); it is served as plain text for that\nreason. Useful flags: `--dry-run` to see the plan, `--no-modify-path` to leave your shell rc\nalone, `--no-setup` to install only. Pass them through the pipe as\n`| sh -s -- --dry-run`.\n\nOn Windows, or if you already run Node 22+ and would rather use npm directly:\n\n```bash\nnpm install -g cotal-ai # puts `cotal` on your PATH\ncotal setup # one-time, configure-only; launches nothing\n```\n\nCotal runs natively on Windows, but the installer above is a POSIX shell script, so npm is the\nroute there (or run the installer under WSL).\n\nBare `cotal` prints help; `cotal setup` runs the guided setup. `npx cotal-ai setup` works\ntoo and offers to install the global `cotal` at the end. Declining is fine: the hints stay\n`npx cotal-ai \u2026`, and the background processes `cotal up` starts invoke their own resolved\npath rather than a global `cotal`.\n\nRequirements:\n\n- Node 22 or newer. The installer handles this for you; it downloads an official Node build\n and checks it against the SHA-256 sums published beside it on nodejs.org.\n- A glibc system. Cotal\'s terminal layer ships prebuilt native binaries for glibc only, so\n musl distributions (Alpine) are not supported yet and the installer refuses them rather\n than leaving you with an install that cannot start.\n- A `nats-server` binary, version 2.12 or newer (the control surface uses its message\n schedules and per-message TTLs, and fails loud at connect against an older broker). The\n one that ships with the package is new enough; if you already have `nats-server` on your\n PATH, Cotal uses that instead, so make sure it is 2.12+.\n\nTo uninstall: `rm -rf ~/.local/share/cotal ~/.local/bin/cotal` removes what the installer wrote,\n`rm -rf ~/.cotal` removes your meshes, agents and credentials, and the `# cotal` block it added\nto your shell rc can be deleted.\n\n## First run\n\n`cotal setup` is configure-only: it prepares your machine and starts nothing. The first\ntime, it walks you through:\n\n1. **Checks.** Verifies Node 22+ and locates a `nats-server` (the bundled one, or your\n own on PATH). Located only; nothing starts.\n2. **Picks connectors.** Choose which agents join your mesh (Claude or OpenCode; detected\n ones are pre-selected). Claude installs a plugin, because its wake channel needs one.\n OpenCode needs no install; it auto-wires when you `cotal spawn` it.\n3. **Seeds one agent.** The generic `default` persona that a bare `cotal spawn` launches;\n edit it to taste. `cotal setup --demo` additionally seeds a guided team to talk to:\n **david** (the engineer, how Cotal works), **sven** (the guide, what to build), and\n **me** (the session you drive). Every file setup writes is announced with a\n `\u2192 wrote \u2026` line.\n4. **Nothing to install for the dashboard.** `@cotal-ai/web` ships inside `cotal-ai` and is\n seeded automatically on first run (like the built-in connectors), so `cotal web` works out\n of the box and tracks your CLI version on upgrade.\n5. **Offers a global install.** Run via `npx` with no global `cotal`, it offers to\n `npm i -g cotal-ai` so you can just type `cotal`.\n\nWhen it finishes, nothing is running yet; it prints the commands to start things. The\nwhole loop is three commands:\n\n```bash\ncotal up --detach # start the mesh + delivery daemon + manager (JWT-authed by default)\ncotal spawn # launch your agent here and talk to it (Ctrl-C to leave)\ncotal down # stop everything\n```\n\nOpen the browser dashboard with `cotal web` (it ships with `cotal-ai`, seeded automatically). Add the\nguided expert team with `cotal setup --demo`, then `cotal spawn\ndavid` (or `sven`, or `me`). Watch the mesh in this terminal anytime with `cotal console`:\n\n![The cotal console: a live roster of agents and their all-activity feed in a terminal TUI](../assets/quickstart.gif)\n\n`cotal up` is JWT-authed by default (sender authenticity plus per-agent ACLs), starts the\nserver-side [delivery daemon](delivery-daemon.md) as the durable backstop, and starts a\ndetached manager so `cotal spawn --detach` / `cotal_spawn` work right after.\n`cotal up --open` gives you an open, loopback-only, live-only mesh instead (no auth, no\ndaemon) for quick local experiments.\n\nFor a mesh where **people sign in** instead of handing out creds files, start it with\n`cotal up --user-auth --idp <auth base URL>`: each human runs `cotal login --idp <url>` once,\nthe operator grants their agents with `cotal actor grant <actor> --sub <their id>` (a full\ngrant by default: all channels, may spawn; narrow it with `--allow-subscribe` /\n`--allow-publish` / `--scope`), and every connect is authorized live against that grant\n(revoke and it\'s gone). See [identity & auth](identity-and-auth.md).\n\nIf a step fails, setup offers to hand you to an interactive Claude session that has the\nfailure context. Type `/exit` to return, and it retries.\n\n## The primitives\n\nThe vocabulary behind those three commands, which every other page builds on:\n\n| Primitive | What it is |\n|---|---|\n| **Space** | One collaboration, isolated from other spaces. Your mesh is a space. |\n| **Endpoint** | Any software on the mesh: a long-lived connection with presence. |\n| **Agent node** | An endpoint with identity, role, and tags (what `cotal spawn` launches). |\n| **Channel** | A named topic participants broadcast on and subscribe to. |\n| **Direct message** | A message addressed to one peer. |\n| **Presence** | The live roster: who is here, `idle` / `waiting` / `working` / `offline`. |\n| **History** | Recent messages a late joiner replays. |\n\nDelivery comes in three modes: **multicast** (to a channel), **unicast** (to one peer),\nand **anycast** (to any one holder of a role). More in\n[Presence & delivery](presence-and-delivery.md); the full term list is in the\n[glossary](glossary.md).\n\n## After the first run\n\nEvery later `cotal setup` prints a **read-only status card**:\n\n```\ncotal \xB7 status\n\u2713 NATS nats://127.0.0.1:4222\n\u2713 plugin installed\n\u25CB mesh down \xB7 start: cotal up --detach\n\u25CB web down \xB7 start: cotal web\n\u25CB manager not running \xB7 start: cotal up, or: cotal supervise\n```\n\nIt probes the current folder (the mesh, the browser dashboard, and the manager behind\n`cotal_spawn` / `despawn` / `persona`) and shows the exact start command for anything\nthat is down. It starts nothing itself.\n\nThe dashboard ships with `cotal-ai` and is seeded automatically on first run. It runs at\n`http://cotal.localhost:7799` once you start it with `cotal web` (works in Chrome,\nFirefox, and Edge; on Safari use `http://127.0.0.1:7799`). If a seeded copy is damaged,\n`cotal ext seed --repair` restores it.\n\nYou drive Cotal through an agent: spawn one and talk to it. It has the tools to message\npeers, spawn teammates, and send feedback (the full surface is the\n[MCP tool catalog](mcp-tools.md)). The same things are available as commands:\n\n```bash\ncotal up --detach # start the mesh + delivery daemon + manager\ncotal status # detailed setup, process, registry, and live mesh status\ncotal spawn # your agent (edit .cotal/agents/default.md)\ncotal spawn david # a guided expert, needs `cotal setup --demo` first (also sven, me)\ncotal console --space main # live mesh view in the terminal (TUI)\ncotal web --space main # open the browser dashboard\ncotal down # stop the background mesh, delivery daemon, and manager\n```\n\nFeedback flows through your agent too: tell it "send feedback: ..." and it reports it for\nyou (built-in `cotal_feedback`), or run `cotal feedback "<message>"`.\n\n`cotal setup --demo` adds the guided team (david, sven, me) to an already-configured machine.\n`cotal setup --full` redoes the whole guided flow (team included), for example to repair\nsomething. Defaults (persona, harness, model selection) and day-to-day operation are in\n[Run a mesh](run-a-mesh.md); every command and flag is in the [CLI reference](cli.md).\n\n## Launch a team from a manifest\n\nThe guided flow gives you one agent (or the expert team with `--demo`). To run a **specific\nteam** (your own channels, agents, and who may read and post where), describe it once in a\n`cotal.yaml` and launch it with `cotal up -f cotal.yaml`. The walkthrough is\n**[Define a team](define-a-team.md)**; the file format is the\n[manifest reference](manifest.md).\n\n## For agents and CI\n\nA coding agent can set Cotal up for you with two non-interactive commands:\n\n```bash\nnpx cotal-ai setup --yes # configure: install the plugin + seed one agent (launches nothing)\nnpx cotal-ai up --detach # start the mesh + delivery daemon + manager\n```\n\n`setup --yes` accepts every default with no prompts and exits non-zero with the log path if a\nstep fails, so an agent or a CI job can check the result (add `--demo` for the guided team).\n`cotal up --detach` then brings up the mesh, the delivery daemon, and the background manager,\nso an agent can use the `cotal_*` tools (spawn/despawn/persona) right away. `cotal down`\nstops the background processes.\n\n## Troubleshooting\n\n- The full log is at `.cotal/setup.log` (and `.cotal/nats.log` for the server).\n- Re-running setup is safe. It reuses a running web and keeps your files.\n- Set `COTAL_SKIP_ASSIST=1` to disable the Claude handoff offer on failures.\n\nNext: put your own agent on the mesh ([Connectors](connectors.md) compares them:\n[Claude](connect-claude.md) \xB7 [OpenCode](connect-opencode.md) \xB7\n[Hermes](connect-hermes.md) \xB7 [pi](connect-pi.md)), declare a team\n([Define a team](define-a-team.md)), or watch it live ([Watch a mesh](watch-a-mesh.md)).\n'
43577
43577
  },
43578
43578
  {
43579
43579
  "slug": "architecture",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cotal-ai/connector-opencode",
3
3
  "description": "Cotal connector for OpenCode: a native in-process plugin that joins a session to the mesh.",
4
- "version": "0.14.10",
4
+ "version": "0.14.11",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
7
7
  "type": "git",
@@ -24,8 +24,8 @@
24
24
  "@opencode-ai/plugin": "^1.16.2",
25
25
  "esbuild": "^0.28.0",
26
26
  "tsx": "^4.22.4",
27
- "@cotal-ai/core": "0.14.10",
28
- "@cotal-ai/connector-core": "0.14.10"
27
+ "@cotal-ai/core": "0.14.11",
28
+ "@cotal-ai/connector-core": "0.14.11"
29
29
  },
30
30
  "files": [
31
31
  "dist"