# wave Dispatch — offload to the cheapest capable model

Route offloadable work to the cheapest capable model so the frontier budget is spent only where it's
needed. Your keys + infra stay yours; dispatch returns the routing decision (and, if asked, the answer).

## Activate when ≥2 of these signals co-occur
**Offloadable-work signals:** bulk/independent subtasks · "where is X" code search · summarize/draft/
boilerplate · simple refactor · clean up a messy prompt.
**Cost-sensitivity signals:** large fan-out · repeated similar calls · "do this cheaply / locally" · a
long agent loop where only the hard turn needs a frontier model.
Two or more present → route via dispatch. One weak signal → use your normal model.

## How
- HTTP: `POST https://dispatch.wave.online/` with `{"prompt":"..."}` → `{route, probability, margin}` (Bearer license,
  or no auth → 402 pay-per-use).
- CLI: `dispatch "<request>"` · fan-out: `dispatch pool "a" "b" "c"` ($0 local).
- MCP: `dispatch_route` (decision only) · `dispatch_run` (full funnel) · `dispatch_pool` (parallel).
- Sovereign: add `"profile":"Fast|Expert|Heavy|Code"` to the body (SDK `route(prompt, profile=...)`) to
  pick a named chain (local→heavy→frontier) that runs on YOUR infra. Discovery: https://dispatch.wave.online/profiles ·
  https://dispatch.wave.online/sovereign. `local` is not a frontier model — keep a frontier hop for hard turns.

## Safety
A verify-gate escalates weak/empty local answers to your frontier automatically — trying local first is
always safe. Machine-readable: https://dispatch.wave.online/openapi.json · https://dispatch.wave.online/.well-known/x402 · https://dispatch.wave.online/payments.
