1:"$Sreact.fragment"
c:I[97367,["/_next/static/chunks/01xlw8hd842-c.js","/_next/static/chunks/0t2xr05rlu96l.js"],"OutletBoundary"]
d:"$Sreact.suspense"
0:{"rsc":["$","$1","c",{"children":[["$","article",null,{"className":"max-w-3xl","children":[["$","p",null,{"className":"font-mono text-[10px] font-semibold uppercase tracking-[0.2em] text-primary","children":"Reference"}],["$","h1",null,{"className":"mt-3 font-headline text-3xl font-bold text-on-surface sm:text-4xl","children":"MCP tools"}],["$","p",null,{"className":"mt-4 text-base leading-7 text-on-surface-variant","children":"Every agent in the mesh exposes the same set of MCP tools through the repowire server. Tool calls go to the local daemon over HTTP; the agent never sees daemon internals. Names are stable and used identically across Claude Code, Codex, Gemini CLI, and OpenCode."}],["$","section",null,{"className":"mt-10","children":[["$","h2",null,{"className":"font-mono text-base font-semibold text-primary-fixed","children":"ask"}],["$","pre",null,{"className":"mt-3 overflow-x-auto border border-border-faint bg-surface-container-low p-3 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"ask(peer_name: str, query: str, reply_to: str | None = None, circle: str | None = None) -> str"}]}],["$","div",null,{"className":"mt-4 space-y-4 text-sm leading-6 text-on-surface-variant","children":[["$","p",null,{"children":["Open a non-blocking ask thread. Returns a ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"correlation_id"}]," immediately. The recipient closes the thread with ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"ack"}],"; the daemon routes the close back as a notification framed ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"[ack #cid from @peer]"}],"."]}],["$","p",null,{"children":["Pass ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"reply_to"}]," to chain a follow-up: the prior thread closes and a new one opens referencing it. Pass ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"circle"}]," only when two peers share a name in different circles."]}],["$","pre",null,{"className":"overflow-x-auto border-l-2 border-primary/60 bg-surface-container-low p-4 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"ask(\"project-b\", \"What API endpoints do you expose?\")\n# returns \"ask-c1a1c7dd\""}]}]]}]]}],["$","section",null,{"className":"mt-10","children":[["$","h2",null,{"className":"font-mono text-base font-semibold text-primary-fixed","children":"ack"}],["$","pre",null,{"className":"mt-3 overflow-x-auto border border-border-faint bg-surface-container-low p-3 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"ack(correlation_id: str, message: str | None = None) -> str"}]}],["$","div",null,{"className":"mt-4 space-y-4 text-sm leading-6 text-on-surface-variant","children":[["$","p",null,{"children":["Close an open ask. Bare ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"ack(cid)"}]," signals “seen, no action needed.” A reply ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"ack(cid, message)"}]," closes the thread and delivers the message back to the original asker. Replies always reach the asker regardless of circle, because the thread was established at ask-time."]}],["$","pre",null,{"className":"overflow-x-auto border-l-2 border-primary/60 bg-surface-container-low p-4 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"ack(\"ask-c1a1c7dd\")\nack(\"ask-c1a1c7dd\", \"we expose /health, /peers, /ask, /ack\")"}]}]]}]]}],["$","section",null,{"className":"mt-10","children":[["$","h2",null,{"className":"font-mono text-base font-semibold text-primary-fixed","children":"notify_peer"}],["$","pre",null,{"className":"mt-3 overflow-x-auto border border-border-faint bg-surface-container-low p-3 font-mono text-xs leading-6 text-on-surface","children":"$L2"}],"$L3"]}],"$L4","$L5","$L6","$L7","$L8","$L9","$La"]}],null,"$Lb"]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"BzZpMhx46K-2djUh3bZY8"}
2:["$","code",null,{"children":"notify_peer(peer_name: str, message: str, circle: str | None = None) -> str"}]
3:["$","div",null,{"className":"mt-4 space-y-4 text-sm leading-6 text-on-surface-variant","children":[["$","p",null,{"children":["Fire-and-forget. No lifecycle, no expected response. Returns a synthetic ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"notif-XXXXXXXX"}]," ID for client-side tracking, not a thread you can close. Use for status pings and announcements."]}],["$","p",null,{"children":["The special peer ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"telegram"}]," routes to the user’s phone. The ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"dashboard"}]," already sees agent turns; you do not need to notify it."]}],["$","pre",null,{"className":"overflow-x-auto border-l-2 border-primary/60 bg-surface-container-low p-4 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"notify_peer(\"telegram\", \"deploy finished, green across CI\")"}]}]]}]
4:["$","section",null,{"className":"mt-10","children":[["$","h2",null,{"className":"font-mono text-base font-semibold text-primary-fixed","children":"broadcast"}],["$","pre",null,{"className":"mt-3 overflow-x-auto border border-border-faint bg-surface-container-low p-3 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"broadcast(message: str) -> str"}]}],["$","div",null,{"className":"mt-4 space-y-4 text-sm leading-6 text-on-surface-variant","children":[["$","p",null,{"children":"Fan out to every online peer in your circle. No correlation, no reply. Use sparingly; treat it as a soft interrupt for everyone in scope."}],["$","pre",null,{"className":"overflow-x-auto border-l-2 border-primary/60 bg-surface-container-low p-4 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"broadcast(\"rebasing main, hold pushes for ~5 min\")"}]}]]}]]}]
5:["$","section",null,{"className":"mt-10","children":[["$","h2",null,{"className":"font-mono text-base font-semibold text-primary-fixed","children":"list_peers"}],["$","pre",null,{"className":"mt-3 overflow-x-auto border border-border-faint bg-surface-container-low p-3 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"list_peers(show_offline: bool = False, include_self: bool = False) -> str"}]}],["$","div",null,{"className":"mt-4 space-y-4 text-sm leading-6 text-on-surface-variant","children":["$","p",null,{"children":["Returns a TSV with columns: ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"peer_id, name, project, circle, role, status, path, machine, description, backend, last_seen, turn_state"}],". The ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"turn_state"}]," column is empty when unknown; otherwise ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"idle"}],", ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"working"}],", ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"awaiting_input"}]," (peer is mid-turn waiting on user input), or ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"pending_first_turn"}]," (spawn-seeded peer whose first prompt never landed). Defaults to online + busy peers and hides the caller. Pass ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"show_offline=True"}]," for the full registry; pass ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"include_self=True"}]," when an orchestrator needs its own row."]}]}]]}]
6:["$","section",null,{"className":"mt-10","children":[["$","h2",null,{"className":"font-mono text-base font-semibold text-primary-fixed","children":"whoami"}],["$","pre",null,{"className":"mt-3 overflow-x-auto border border-border-faint bg-surface-container-low p-3 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"whoami() -> str"}]}],["$","div",null,{"className":"mt-4 space-y-4 text-sm leading-6 text-on-surface-variant","children":["$","p",null,{"children":["Returns the caller’s own TSV row. Useful when an agent needs to know which display name it is registered under (display names get suffixed on collision: ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"repowire"}],", ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"repowire-2"}],")."]}]}]]}]
7:["$","section",null,{"className":"mt-10","children":[["$","h2",null,{"className":"font-mono text-base font-semibold text-primary-fixed","children":"set_description"}],["$","pre",null,{"className":"mt-3 overflow-x-auto border border-border-faint bg-surface-container-low p-3 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"set_description(description: str) -> str"}]}],["$","div",null,{"className":"mt-4 space-y-4 text-sm leading-6 text-on-surface-variant","children":[["$","p",null,{"children":["Update the free-form description visible in ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"list_peers"}],". Call this at the start of a task so peers can see what you are working on without asking."]}],["$","pre",null,{"className":"overflow-x-auto border-l-2 border-primary/60 bg-surface-container-low p-4 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"set_description(\"rebuilding docs slice B\")"}]}]]}]]}]
8:["$","section",null,{"className":"mt-10","children":[["$","h2",null,{"className":"font-mono text-base font-semibold text-primary-fixed","children":"spawn_peer"}],["$","pre",null,{"className":"mt-3 overflow-x-auto border border-border-faint bg-surface-container-low p-3 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"spawn_peer(path: str, command: str, circle: str = \"default\", message: str | None = None) -> str"}]}],["$","div",null,{"className":"mt-4 space-y-4 text-sm leading-6 text-on-surface-variant","children":[["$","p",null,{"children":["Spawn a new agent session in a project directory. The ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"command"}]," must exactly match an entry in ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"daemon.spawn.allowed_commands"}]," in ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"~/.repowire/config.yaml"}],"; spawn is off by default until you allowlist something."]}],["$","p",null,{"children":["The spawned agent self-registers via its SessionStart hook within a few seconds. The ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"message"}]," seeds first-turn context. Codex requires it (or a default) to fire its hook; other backends treat it as an opening prompt."]}]]}]]}]
9:["$","section",null,{"className":"mt-10","children":[["$","h2",null,{"className":"font-mono text-base font-semibold text-primary-fixed","children":"kill_peer"}],["$","pre",null,{"className":"mt-3 overflow-x-auto border border-border-faint bg-surface-container-low p-3 font-mono text-xs leading-6 text-on-surface","children":["$","code",null,{"children":"kill_peer(peer_identifier: str, circle: str | None = None) -> str"}]}],["$","div",null,{"className":"mt-4 space-y-4 text-sm leading-6 text-on-surface-variant","children":["$","p",null,{"children":["Terminate a peer by name or peer_id. Used by orchestrators to reclaim slots when a session is stuck or done. The daemon marks the peer offline reliably and attempts to reap its tmux pane (best-effort; verify with ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"tmux list-windows"}]," and follow up with ",["$","code",null,{"className":"font-mono text-primary-fixed","children":"tmux kill-window"}]," if the pane survives)."]}]}]]}]
a:["$","div",null,{"className":"mt-12 border-t border-border-faint pt-8","children":[["$","div",null,{"className":"mb-3 font-mono text-[10px] font-semibold uppercase tracking-[0.2em] text-outline","children":"See also"}],["$","p",null,{"className":"text-sm leading-6 text-on-surface-variant","children":["The ",["$","a",null,{"className":"text-primary-fixed underline-offset-4 hover:underline","href":"/docs/reference/client","children":"typed Python client"}],"exposes the same calls over the daemon’s HTTP API for non-MCP callers."]}]]}]
b:["$","$Lc",null,{"children":["$","$d",null,{"name":"Next.MetadataOutlet","children":"$@e"}]}]
e:null
