Trust & Transports

Part of One User Interface — what could go wrong, the governors (some shipped, some planned), and how far away an agent can stand.

Status: constraint enforcement shipped (the contract seam: validated writes, audited refusals, whole-root proposals). The audit log shipped. Capability sandboxing (AJS/lukko) is not started. Of the transports: in-page shipped (tosiAgent), bridged shipped by haltija (hj map's native tier), remote sync-peer not started.

Trust: the honest section

Direct model access is a superpower, and superpowers need governors. Naming the problems now, with their planned answers:

Transports: same surface, three distances

  1. In-page — the global, for extension content scripts and injected agents.
  2. Bridgedhaltija detects the surface on page and exposes it as an MCP toolset (read/write/observe/describe/call), falling back to human-style DOM driving on pages without it. MCP is an adapter here, not the core — protocols come and go; paths are forever.
  3. Remote — the striking one: sync.ts already makes the agent a peer. SyncTransport is pluggable and speaks {path, value} deltas with echo prevention solved. An MCP server implementing SyncTransport joins the state graph like any collaborative backend — the agent needn't be in the browser at all.