Architecture

A Python brain, device-side edge processes and a separate React HUD cooperate over explicit transports.

Three processes

The brain owns reasoning, tool calls, session context and background work. It runs as its own process, and it is the only component that talks to a language model.

The edge is device-side: audio capture and playback, wake-word detection, and the bridge that carries laptop operations. The edge talks to the brain over a link, so a laptop can disconnect without taking the brain with it.

The private gateway is a third process. It serves the built HUD, the bounded observation reads and the iPhone voice route. It does not reason and it does not hold the tool registry; it relays to the brain and reads back what the brain exposes.

One interface, three transports

Every agent the fleet can reach is reached the same way: a brief goes out, an answer comes back. The roster records which transport each agent uses, and the transport is read from the roster's own host field rather than from a second list kept elsewhere.

local is an in-process call into one of the four resident agents. a2a is Agent2Agent JSON-RPC on the OpenClaw gateway. hermes is the one-shot CLI run against the profile home that holds that agent's charter.

The authority model

Two planes sit under every action. The authorisation plane decides whether an action is allowed before it happens, and writes an audit line for the decision. The interlock holds the wall at the actuator, and a refusal there is a refusal even when the authorisation plane said yes.

The HUD is informational. It shows selected observations and their freshness. The single exception is the E.D.I.T.H. approval workspace, where the owner accepts or rejects a specific pending action through a separate authenticated endpoint. A display token cannot approve anything.

Data flow

A turn enters through the edge or the gateway, becomes a session, and is resolved against the registered tools. Tool calls are classified, authorised and audited before they execute, and results return to the caller with their source timestamps intact.

Nothing along this path upgrades a declaration into a fact. A declared subsystem, a registered tool and a configured account are three different statements, and this site keeps them apart.

Implementation sources

Repository paths below describe the implementation. They do not certify a running deployment or a configured external account.

  • src/mushegh/brain/agent.py
  • src/mushegh/brain/server.py
  • src/mushegh/brain/hud_gateway.py
  • src/mushegh/edge/assistant.py
  • src/mushegh/edge/brain_client.py
  • src/mushegh/brain/roster.py
  • fleet/README.md

Subsystem directory · HUD guide · Verification and known limits