pub struct ComponentNode {Show 23 fields
pub id: String,
pub entrypoint: bool,
pub verb: String,
pub component_type: ComponentType,
pub realization_kind: RealizationKind,
pub context_binding: ContextBinding,
pub precondition_result: PreconditionResult,
pub prompt_fragment: String,
pub llm_calls: Vec<LlmCall>,
pub guardrails: Vec<Guardrail>,
pub trigger: Trigger,
pub required_capabilities: Vec<String>,
pub borrowed_actions: Vec<String>,
pub eval_ref: String,
pub effect: Effect,
pub context_requirements: Vec<String>,
pub context_precondition: Vec<Precondition>,
pub params: Vec<Param>,
pub eval: Option<EvalSpec>,
pub brief: Option<String>,
pub description: Option<String>,
pub examples: Vec<String>,
pub slots: Vec<SlotDecl>,
}Fields§
§id: String§entrypoint: bool§verb: String§component_type: ComponentType§realization_kind: RealizationKind§context_binding: ContextBinding§precondition_result: PreconditionResult§prompt_fragment: String§llm_calls: Vec<LlmCall>§guardrails: Vec<Guardrail>§trigger: Trigger§required_capabilities: Vec<String>§borrowed_actions: Vec<String>§eval_ref: String§effect: Effect§context_requirements: Vec<String>Free-text context capabilities this component requires (e.g. “a wren project …”).
context_precondition: Vec<Precondition>Structured preconditions the bound context must satisfy (e.g. has_metric).
params: Vec<Param>Component parameters, either context-sourced or dispatch-bound.
eval: Option<EvalSpec>Authored evaluation spec, when the component declares one.
brief: Option<String>Optional free-form framing shared by every step of this component (see
docs/spec/ir-schema.md).
description: Option<String>What this component is for, authored for a reader choosing between components rather than for the agent doing the work. Absent when the author wrote none, in which case the back-end synthesizes a shape line instead.
examples: Vec<String>Example requests this component is the right destination for.
slots: Vec<SlotDecl>Slots belonging to this component’s own prompt text. Profile-level slots live on
WarbleIr instead and are deliberately not copied here.