Supported constraint types (boolean, enum, numeric) and field targets; produces confidence, no reasoning.
ProtectedBuildBuilds decision questions (Likelihood, Choice, Score) from the spec outputs.
Executes the Decision pipeline for a single record:
BeforeBuildContext and BuildPromptData, canonicalizing it.Decision.MaxStateTokens limit of the models the prompt may run on (fails if exceeded, never truncates).AIDecisionRunner.ExecuteDecision.ProtectedCreateFactory method to create an AIDecisionRunner instance (extension point for unit testing).
ProtectedIsWhether the prompt is meant for Decision models: its model type is Decision or, when it has none (so
AIDecisionRunner applies its own Decision floor), a Decision model is bound to it. Model types are
compared by ID. The prompt's name plays no part, so a prompt whose type is LLM is refused here, before
the record's state is rendered, whatever it is called.
ProtectedMapMaps the decision model's answers back to structured output values and per-output confidences.
ProtectedResolveThe strictest Decision.MaxStateTokens among the models the prompt may run on, or undefined when none
declares one. The runner picks the model per call, by credentials and failover, so the state is
checked against every model it may pick rather than against whichever binding is read first. Those
models are the Decision models bound to the prompt or, when none is bound, every active Decision model.
Checks each output's constraint type, target mode, and rules against Capabilities. An output with no constraint is not checked for its constraint type unless the type requires constraints.
OptionalfieldValues: FeaturePipelineFieldValueLookupOne message per output or rule this driver cannot satisfy; empty when it can produce them all.
Runs the pipeline's prompt on a typed decision model for each record, mapping outputs to Likelihood, Choice, or Score questions and extracting calibrated confidence scores.