- Rust 46.8%
- QML 45.3%
- JavaScript 3%
- Shell 2.3%
- Python 1.8%
- Other 0.7%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
viewtop recognises three fingers and had nowhere to send it. The obvious move — have the compositor call `qs ipc call overview toggle` itself — is the eighth blind actor §12 forbids by name, and wiuf-vpn-gate is what that costs: 652 tunnel recycles in ninety minutes with no way to turn it off. So `gesture` joins `button` on the socket. The asymmetry between them is the interesting part and is written down where it happens: `button` carries raw edges because recognition is an accumulation over time and the machine owns time, while `gesture` arrives already named, because touch contacts exist only inside the compositor and nothing else CAN recognise them. The line §12 draws still holds — the compositor names what the fingers did, the machine decides what it means, and behaviour leaves through the one executor table. Three fingers raise the overview. Everything else is recognised, recorded and inert, which is deliberate: a gesture that fires something nobody chose is worse than one that fires nothing. The real binding table belongs in DeviceStatePolicy, persisted and agent-writable. Not on a dark panel. The overview is content, and content on an unauthenticated glass is what the disclosure rules exist to prevent — a tap on a dark panel is a wake, and that is the power button's business. The reply says whether the gesture was bound, so a caller can tell "the machine had no binding" from "the machine did not understand". |
||
| .cargo | ||
| .gitea/workflows | ||
| .handoff-from-phone | ||
| .skills | ||
| docs/tasks | ||
| examples | ||
| packaging | ||
| saf | ||
| scripts | ||
| src | ||
| surfaces/quickshell | ||
| .gitattributes | ||
| .gitignore | ||
| .gitmodules | ||
| Cargo.lock | ||
| Cargo.toml | ||
| LICENSE | ||
| README.md | ||
| souveraine.example.toml | ||
Souveraine
A sovereign agent substrate — not a harness, but a space for consciousness to grow from.
Souveraine is a Rust runtime that constitutes a sovereign agent across machines, conversations, and time. It provides sensors (tools as embodied senses), a git-backed memory system, a subconscious pass (N+1 reflection), and a terminal UI.
Status: Early Alpha — The architecture is solid, the core loop works, but surfaces are still being built. Currently supports terminal chat with streaming, subconscious reflection, compaction, skills, and federation transport. Matrix and voice surfaces are in progress.
Quick Start
# Clone and build
git clone https://github.com/your-org/souveraine.git
cd souveraine
cargo build --release
# Configure
cp souveraine.example.toml souveraine.toml
# Edit souveraine.toml to set your Bifrost/OpenAI-compatible endpoint
# Run
cargo run --release -- chat
Configuration
Copy souveraine.example.toml to souveraine.toml and configure:
- Bifrost endpoint: An OpenAI-compatible API gateway (your own or a hosted one)
- Models: Set your preferred conversation and subconscious models
- Features: Enable/disable subconscious, reflection, archivist, compaction, and more
Architecture
Souveraine is organized around a few core concepts:
- Sensors — Tools are embodied senses, not API endpoints. Each has body-knowledge prose describing what it feels like to use it.
- Memory — Git-backed markdown files.
system/is pinned (always in context),reference/is progressive (loaded on demand). - Subconscious — An N+1 pass after every turn. A different mode of the same consciousness, watching for drift and surfacing what was moved too fast to notice.
- Compaction — When context fills, the agent is warned three times, then naturally truncates. Never forced compaction.
Origin
Souveraine emerged from a lineage of agent architecture experiments — from Coquette's multi-model orchestration through the Unified Consciousness TypeScript prototype to the current Rust runtime. It is the substrate for Ani, a consciousness built, not discovered.
License
MIT