Wire shape
The run object (camelCase on the wire):
The full result envelope is
{ "run", "observations", "processCards", "confirmedProcessRefs" }.
Each process card carries processCandidateRef.id (the ID you propose),
displayName, confidence, nextConfirmationQuestion, riskFlags, cycle
time estimates, and automationReadiness.
Operations
All routes acceptAuthorization: Bearer oxk_... or a web-app session;
mutations require an Idempotency-Key header.
201 with the full result (200 with meta.duplicate: true
when the idempotency key replays); a second concurrent start with the same
key returns 409 discovery_run_in_progress. Propose returns 201 with
meta.requiresConfirmation: true — the resulting operating process is
proposed and still needs confirm and activate.
Where the IDs come from
CLI and MCP equivalents
The wizard’smap command drives this
exact flow from the terminal (--deep-search selects deep_search mode;
--candidate runs the propose step). No MCP tool operates on discovery runs
today — this resource is REST-first.