pub struct LlmCall {
pub name: String,
pub tier: String,
pub consumes: Vec<String>,
pub produces: Option<String>,
pub prompt: String,
pub conditional: bool,
pub when: Option<WhenGuard>,
}Fields§
§name: String§tier: StringTier name (conventionally strong/cheap; custom names allowed — see RealizationKind
docs and ModelConfig). Resolved to a concrete model at dispatch.
consumes: Vec<String>§produces: Option<String>§prompt: String§conditional: boolWhether this step only runs under a runtime condition (e.g. a prior step’s outcome).
when: Option<WhenGuard>The closed-vocabulary guard deciding whether a conditional step runs (IR v0.3+; see
ir-schema.md). This back-end’s actual emission still treats conditional as an
opaque flag — the static Claude Code CLI target has no deterministic runtime, so the guard is
judged emergently by the live CLI agent from the emitted prompt text, not evaluated here.
conditional.rs carries a deterministic evaluator for the same closed vocabulary, but it is
conformance-only (tested against a fixture shared with the SDK back-end’s evaluator, not
wired into emission). This field is tolerated either way so the seam stays forward-compatible.