Idempotency
The API does not expose a global Idempotency-Key header in index.ts. Each POST creates a new resource or run unless the service layer implements deduplication internally.
Skill runs (POST /api/skills/:id/run) create a new run row each call; treat them as non-idempotent from the client perspective unless you build your own idempotency layer.
Retries
Use retryable on structured diagnostics (externalDiagnosticWireSchema) where present; 401/403 from auth are not retriable without changing credentials.