2026-11-12 00:04:57 +00:00
2026-11-12 00:04:57 +00:00
2026-11-08 02:29:55 +00:00
2026-11-11 22:51:01 +00:00
2026-11-11 22:51:01 +00:00

Sausage v3

Sausage is a world of WASI programs and durable agents. The Rust host combines a process table, a shared virtual filesystem, and a durable JavaScript harness. Agents and their programs see the same world. The filesystem prevents mistakes, not attacks between agents. The host credentials manager is the intended security boundary. Coordination (branches, subagents, reviews, the lander) runs as world extensions.

Read Run Sausage v3 on Citadel for the console, approvals, models, extensions and the known gaps.

Build and run

nix build
result/bin/sausage init /path/to/world
result/bin/sausage run /path/to/world
result/bin/sausage sh /path/to/world -c 'echo hi | tr a-z A-Z; git --version'

The package includes the userland bundle. At world creation, the host copies its tools into /bin as <command>.wasm files. The bundle ships plain source files. sausage init creates their repository in /src/sausage with one commit on main. The world config lives at /etc/sausage/config.yaml. It defines the proxy, listener, standing agent, roster, and shared system prompt. init fills proxy settings from PI_PROXY_BASE_URL and PI_PROXY_API_KEY when present. It asks nothing. The host and chat can start with an empty proxy key. Model requests then name the config file in their error. The proxy key in that file is intentionally visible to agents. Other managed secrets stay outside the world. The chat and console use the configured standing conversation. A rename keeps that conversation. Model, prompt, and proxy edits apply without a host restart. Listener edits require a restart.

The host creates world/ for the shared filesystem and host/ for private runtime state under the supplied directory. Services come from /etc/systemd/system in the world.

Repository

  • host/: the Rust host, process table, and durable harness. Its checked-in JavaScript bundles need no npm during a Nix build.
  • vfs/: the shared virtual filesystem and WASI adapters.
  • userland/: the default tools and patched Brush source, in the root Cargo workspace. bundle.nu builds them for wasm32-wasip2.
  • spikes/: reference prototypes, not production dependencies.

The design and decisions live in ~/research/sausage-v3/PLAN.md.

Development

nix develop
cargo test -p sausage -p sausage-vfs
nu userland/bundle.nu
nix flake check

The development shell provides Rust with wasm32-wasip2, wasmtime, and wasm-tools.

S
Description
No description provided
Readme
16 MiB
Languages
JavaScript 67.5%
Go 11.2%
Rust 11%
C 7%
TypeScript 2.2%
Other 0.9%