Document NPC semantic normalization
This commit is contained in:
@@ -322,9 +322,24 @@ error when attempts are exhausted. A rejection becomes a recorded
|
||||
`RejectedOutput` when attempts are exhausted. Cancellation stops retry
|
||||
processing immediately.
|
||||
|
||||
Rejected output is a non-fatal pipeline outcome and does not advance. Warnings
|
||||
from discarded attempts are not promoted. Configuration owns retry counts and
|
||||
validator overrides; see [Module Bindings](../config.md#module-bindings).
|
||||
Structured-completion adapters classify malformed or undecodable provider
|
||||
output with the provider-neutral `contracts.ErrInvalidStructuredOutput` error.
|
||||
A typed normalizer may turn that condition, or another unsafe proposal, into a
|
||||
normalize retry directive with a deterministic safe candidate, stable
|
||||
diagnostic, and fallback warnings. The directive consumes the same configured
|
||||
normalize retry budget: `retries` permits that many additional attempts after
|
||||
the initial attempt. It neither creates a normalizer-local retry loop nor
|
||||
records an accepted checkpoint for the discarded attempt.
|
||||
|
||||
When a later normalize attempt succeeds, its candidate alone proceeds through
|
||||
the usual validation and checkpoint path. When the final attempt still returns
|
||||
a directive, the runner validates its supplied safe fallback through that same
|
||||
normalizer validator chain before accepting or rejecting it. Ordinary
|
||||
attempt-local warnings and fallback warnings remain unpromoted while another
|
||||
attempt is available; only final exhaustion promotes the supplied fallback
|
||||
warnings. Rejected output is a non-fatal pipeline outcome and does not advance.
|
||||
Configuration owns retry counts and validator overrides; see
|
||||
[Module Bindings](../config.md#module-bindings).
|
||||
|
||||
## Checkpoint And Debug Hooks
|
||||
|
||||
@@ -389,7 +404,9 @@ boundaries. Every executed chunk, extract, merge, and normalize attempt writes
|
||||
one terminal envelope for acceptance, validator rejection, module or validator
|
||||
error, or applicable candidate or final serialization error. The envelope
|
||||
contains its attempt-local warnings, any available candidate and rejection,
|
||||
and terminal error text; failures before a candidate exists omit that payload.
|
||||
and terminal error text; normalize retry directives retain their attempt-local
|
||||
candidate and diagnostic, while only the final safe fallback reaches validation.
|
||||
Failures before a candidate exists omit that payload.
|
||||
Only LLM calls made by the module operation belong to the module attempt.
|
||||
Validator calls retain independent scopes under `validate/` and are not
|
||||
duplicated into the module envelope. A failed terminal-envelope write is a
|
||||
|
||||
Reference in New Issue
Block a user