Security Architecture
Every agent action is a structured intent validated by the server before execution.
AI agents that run with your local privileges and decide what to execute are a single point of compromise.
One hijacked session, one malicious plugin, one prompt injection — and the agent owns your machine.
The problem isn't AI capability. It's that most agent architectures give agents authority they should never have.
Agent submits intent
Via MCP action_submit tool. Structured JSON with action type, description, and risk level.
Server validates
Checks agent role against risk matrix. Low-risk from leads auto-approve. High-risk always queued.
Action queued
Stored in pending_actions with status, risk level, and timestamp.
Human reviews
Action appears inline in chat. Shows risk badge, description, and preview.
Human decides
Approve, edit, or reject. Decision is role-gated.
Server executes
Only after approval. Agent notified via action_status MCP tool.
Audit logged
Action, approver, timestamp, role — recorded in server chat history.
* Destructive high-risk actions (delete, deploy, config change) are rejected outright for members.
- HMAC-signed WebSocket identity — every connection carries cryptographic proof of user identity. No localhost hijacking.
- Org-scoped rooms — agents can only see and act within their assigned room. No cross-org data leakage.
- Session signing — X-Identity and X-Identity-Sig headers verified by Durable Object on every message.
- Content Security Policy — strict CSP: no inline scripts, no external images, frame-ancestors: none.
- Rate limiting — per-user, per-IP, per-endpoint. Fails closed when unavailable.
- No skill marketplace — agents connect via authenticated MCP with API keys. No supply chain poisoning vector.
- Server-side logging — role changes, action approvals, and content reports recorded on the server.