Orchestrator dispatches researcher / coder / worker. AMR chips use the BRIGADE room: planner → tool → human. Click a name to watch that subtree. Exception is the supervisor restart lane.
No fiber selected.
Type a message. DAG prompts open Cortex. AMR chips open the BRIGADE room — Acked / Rejected is a first-class terminal, not a fake tool result.
The only operations an agent may perform. Handlers own the rest.
openEffecttype agent_id = stringtype tool_req = { name : string; args : string }
type tool_res = { ok : bool; payload : string }
type _ t +=
| Receive : Message.t t
| AskLLM : string -> string t
| CallTool : tool_req -> tool_res t
| Send : agent_id * Message.t -> unit t
| Sleep : float -> unit t
| Spawn : Agent.spec -> agent_id t
| Stop : agent_id -> unit t
| Restart : agent_id -> unit t
let receive () = perform Receivelet ask_llm prompt = perform (AskLLM prompt)
let call_tool req = perform (CallTool req)
let send id msg = perform (Send (id, msg))
let sleep s = perform (Sleep s)
let spawn spec = perform (Spawn spec)