A prettier-style pass in #36 mangled the jailed-spawn design doc — `mac_do` became `mac*do` (eating the underscore and opening stray italics) and the `_which_` / `_not_` emphasis turned into broken `\_which*` / `\_not*`. Restore the text and wrap `mac_do` in backticks so a future formatter leaves it alone. Also correct the README status line ("11 crates" → "10 crates") to match the workspace table; clawdie was removed in #34 and #36 added no new crate. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
69 lines
3 KiB
Markdown
69 lines
3 KiB
Markdown
# Colibri
|
|
|
|
The Clawdie control plane core — a small, cross-platform (FreeBSD + Linux) Rust
|
|
daemon that unifies coordination (task board, agent registry, skills catalog)
|
|
with cache-first cost discipline (byte-stable prompt prefixes, cache-hit metering).
|
|
|
|
**Status:** 10 crates; workspace gates are expected to be fmt/clippy/test/release green. Avoid fixed test-count status here — run the gate commands below for the current count. Phase 3 (coordination core) is in progress.
|
|
|
|
Next ISO integration plan: `docs/ISO-INTEGRATION-PLAN.md`.
|
|
ISO acceptance runbook: `docs/ISO-ACCEPTANCE-RUNBOOK.md`.
|
|
Clawdie Studio/Zed proposal: `docs/CLAWDIE-STUDIO-PROPOSAL.md`.
|
|
External MCP host prototype: `docs/COLIBRI-EXTERNAL-MCP-PROTOTYPE.md`.
|
|
|
|
## Workspace — 10 crates
|
|
|
|
| Crate | Role |
|
|
| ----------------------- | ----------------------------------------------------------------------- |
|
|
| `colibri-mcp` | MCP bridge for editor integration (Zed, Claude Code) via stdio JSON-RPC |
|
|
| `colibri-contracts` | JSON schema contracts (golden tests) |
|
|
| `colibri-deepseek` | DeepSeek cache-hit probe, prefix metering |
|
|
| `colibri-runtime` | Host status ingestion, runtime inventory |
|
|
| `colibri-glasspane` | Agent 5-state machine (Pi events → state) |
|
|
| `colibri-daemon` | Always-on Unix socket server, session lifecycle |
|
|
| `colibri-client` | Typed Unix-socket client + operator CLI |
|
|
| `colibri-glasspane-tui` | ratatui live dashboard (FreeBSD-native) |
|
|
| `colibri-store` | Embedded SQLite coordination (task board, agents, skills) |
|
|
| `colibri-skills` | Skills catalog crate |
|
|
|
|
## Build
|
|
|
|
```sh
|
|
cargo build --release
|
|
```
|
|
|
|
## Test
|
|
|
|
```sh
|
|
cargo test --workspace
|
|
cargo clippy --workspace --all-targets -- -D warnings
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
colibri-daemon (always-on Unix socket server)
|
|
├── glasspane — agent state machine (Pi JSONL → idle/working/blocked/done)
|
|
├── store — SQLite coordination (tasks, agents, skills)
|
|
├── socket — newline-JSON socket API
|
|
├── session — append-only JSONL sessions, 3-region prompt assembly
|
|
└── spawner — agent subprocess management (retry/backoff)
|
|
|
|
colibri-client — CLI tools (colibri, colibri_smoke_agent)
|
|
colibri-glasspane-tui— ratatui dashboard (no Herdr dependency)
|
|
```
|
|
|
|
## Probe binaries
|
|
|
|
```sh
|
|
# DeepSeek cache probe (needs DEEPSEEK_API_KEY)
|
|
cargo run --release --bin colibri-probe
|
|
|
|
# Runtime inventory manifest
|
|
cargo run --release --bin colibri-runtime-inventory
|
|
```
|
|
|
|
## FreeBSD
|
|
|
|
Target `x86_64-unknown-freebsd` (Rust Tier-2). TLS is `rustls` to avoid
|
|
`openssl-sys` linking. Default DB path: `/var/db/colibri/colibri.sqlite`.
|