Timeouts may be configured in milliseconds or seconds:
client = TypeSafeAPISDK.new_client(api_key: key, timeout_ms: 10_000)
TypeSafeAPISDK.system_one(client, state, questions, timeout: 2.5)Cancellation uses Pristine.Cancellation directly:
cancel = Pristine.Cancellation.new()
request = Task.async(fn ->
TypeSafeAPISDK.system_one(client, state, questions, cancellation: cancel)
end)
:ok = Pristine.Cancellation.cancel(cancel)
Task.await(request)Inspect transport capability declarations without issuing a TypeSafe request:
TypeSafeAPISDK.RuntimeCapabilities.report(client)A local cancellation result does not establish that a remote service never received or began processing the request.
Verification boundary
The live suite sends successful requests with client/per-call timeout settings,
retry disabled or overridden, extra headers, explicit models, and the low-level
extra_body model override. It does not deliberately make the public service
sleep, fail, or rate-limit itself.
Deterministic tests therefore exercise an actual Pristine retry sequence
(529 -> 200), pre-cancelled token forwarding, protected-header behavior, and
fail-closed capability reporting. See Live Verification.