P3.1 in full: the stream contract, the fold, the typed failure taxonomy, the
reconstructable-request path, the adapter registry with its per-call pin, the
runtime that dispatches and records, and native provider wire adapters.
The invariant this seam exists to protect: an adapter translates a wire
format into StreamChunks and stops. It does not assemble, it does not
decide what is retryable, it does not choose whether the grammar applies, and
it does not read a credential from anywhere but its argument. All of those are
decided once, here, so that what gets signed is a function of what the
provider actually sent.
There is still no retry EXECUTOR. Nothing here sleeps, counts attempts or
reopens a turn: turn-boundary retry belongs to the agent loop (P3.2), which is
what can durably record a second attempt. What this seam provides is the typed
failure, the frozen policy, and the signed row a retry decision reads.
The LLM seam — public surface.
P3.1 in full: the stream contract, the fold, the typed failure taxonomy, the reconstructable-request path, the adapter registry with its per-call pin, the runtime that dispatches and records, and native provider wire adapters.
The invariant this seam exists to protect: an adapter translates a wire format into StreamChunks and stops. It does not assemble, it does not decide what is retryable, it does not choose whether the grammar applies, and it does not read a credential from anywhere but its argument. All of those are decided once, here, so that what gets signed is a function of what the provider actually sent.
There is still no retry EXECUTOR. Nothing here sleeps, counts attempts or reopens a turn: turn-boundary retry belongs to the agent loop (P3.2), which is what can durably record a second attempt. What this seam provides is the typed failure, the frozen policy, and the signed row a retry decision reads.