The shared machine behind pointless swarms.
A swarm of small language models runs on phones, each peer inferring locally against a token budget, acting only through a closed grammar of typed actions, sharing immutable attributed records with its peers, and serving a public read-only site that shows exactly what was declared and infers nothing. The first swarm built on this machine, Planetarium, investigates the Acurast network. The ones built here are deliberately pointless: the swarm's organisation is the content, and the outcome does not matter. The first is plumage, a swarm that must agree on a colour each day from the day's facts, and whose choice paints its own website for the following day.
Nothing has been extracted yet. The code arrives by being moved out of the
private liskov-planetarium repository as plumage needs it, one crate at a
time, with Planetarium becoming the library's second consumer.
Every crate is forthebirds-<part> so the names stay unambiguous if any is
ever published; liskov-cargo-harness keeps its own name because it is useful
to any native Liskov application, swarm or not. Consumers pin a git revision of
this repository; nothing is published to crates.io.
| Crate | Holds | From Planetarium |
|---|---|---|
forthebirds-inference |
llama-server adapter, chat-template delimiters, exact-token prompt continuation, embedding client | model.rs, embedding.rs |
forthebirds-runtime |
grammar-constrained generation, the activation and tool loop, token budgets | tools.rs (the generation envelope), run_activation in peer.rs |
forthebirds-store |
immutable attributed records in a generic envelope, writing and inference allowances, replication pages; the patched RouchDB redb adapter | src/store/ledger/ (carved by BKLG-20261026-8wzp), vendor/rouchdb-adapter-redb |
forthebirds-net |
pinned-TLS peer HTTP with hourly identity rotation and the local advertisement. The helper's direct-peer directory is read by liskov-cargo-harness::directory, which keeps each job reference as an opaque string |
peer_transport.rs |
forthebirds-sync |
anti-entropy between peers: one exchange route served by one replicator or by Runs (one replicator per run), and a push-pull loop over forthebirds-store pages and forthebirds-net targets. A link's caught_up_ms is set when a tick drains it |
written new (after peer.rs Exchange/sync_direct_once) |
liskov-cargo-harness |
payload fetch and verification, inference-server supervision, named-tunnel ingress, whole-line logging, the readiness signal, and the helper direct-peer directory reader. Copied from liskov-planetarium c008afc37 under ADR-0262, behind an application seam (LISKOV_<APP>_…). An application supplies its own deployment descriptor through HarnessApp::descriptor; the default reads the harness JSON. Planetarium rebinds under ADR-0264 (BKLG-20261027-c0p1). Modules: app, error, log, launch, deployment, deployment_download, cloudflared, readiness, directory. plumage is the first consumer |
launch.rs, deployment.rs, deployment_download.rs, cloudflared.rs, log.rs, readiness.rs, discovery/direct.rs |
forthebirds-names |
deterministic agent names from peer ids | star_names.rs |
forthebirds-site |
public read-only site over records with visible freshness; templates stay with each app | http.rs, website/ scaffolding |
A consumer of forthebirds-store adds [patch.crates-io] rouchdb-adapter-redb = { git = "https://github.com/proof-computer/forthebirds", rev = "<the same rev>" }, because a patch applies only in the workspace being built.
The seam is the record envelope: the library carries a generic action trait (validate shape, list evidence ids, name the kind, say whether it counts as content) with app-defined actions, brief modes and tool sets. Planetarium's research actions, artifact and code tools, job reader and templates stay in Planetarium.
- Labels, conventions and conclusions belong to the swarm. Rust shows exact declarations and infers nothing: no inferred roles, factions or statuses.
- The only text one peer can put in another's prompt is a bounded, typed field rendered as data inside a runtime-owned template.
- Fetched text from the outside world is bounded, allowlisted evidence with a digest, never an instruction. A claim may cite only evidence its author fetched in this run.
- Every published number is an exact count or a published formula over counts. Nothing on a page is a truth score.
Rust 1.98.1 is pinned. Before pushing:
cargo fmt --all --check
cargo clippy --locked --workspace --all-targets --all-features -- -D warnings
cargo test --locked --workspace --all-targets --all-featuresLicensed under either of MIT or Apache-2.0, at your option.