pub struct StageSpec {Show 15 fields
pub id: String,
pub say: Option<String>,
pub ground: Option<String>,
pub collect: Vec<String>,
pub frame: Option<FrameSpec>,
pub allow: Vec<String>,
pub done: Option<Guard>,
pub commit: Option<CommitSpec>,
pub next: Vec<TransitionSpec>,
pub after: Vec<String>,
pub terminal: bool,
pub repair: Option<RepairPolicy>,
pub timing: Option<VoiceTiming>,
pub verbatim: Option<String>,
pub resolve: Vec<ResolveSpec>,
}Expand description
One authored conversation stage.
Fields§
§id: StringUnique stage id.
say: Option<String>Instruction projected as steering while the stage is active. Serialized
as say for compatibility; instruction is accepted on input.
ground: Option<String>Grounding template projected while active ({key} interpolation).
collect: Vec<String>Slots to collect; drives the default completion (captured).
frame: Option<FrameSpec>The frame whose slots this stage collects, if set via collect_frame. Its
recognizer-bearing slots lower to an extractor that fills the slots.
allow: Vec<String>Tools available while this stage is active.
done: Option<Guard>Explicit completion guard (overrides the collect/next default).
commit: Option<CommitSpec>A confirm-before-act tool committed in this stage.
next: Vec<TransitionSpec>Forward transitions out of this stage.
after: Vec<String>Explicit dependency stage ids (in addition to next-derived edges).
terminal: boolWhether this is a terminal stage.
repair: Option<RepairPolicy>Repair policy for this stage (reprompt/escalate on stalling).
timing: Option<VoiceTiming>Voice pacing while this stage is active: reprompt on silence, filler cues for slow tools, holding the floor, endpointing, context delivery.
verbatim: Option<String>Text the model must say word for word in this stage (strict canned
mode). The stage completes only once the output transcript matches it;
see gemini_adk_rs::flow::verbatim. The model holds the floor
unless timing says otherwise.
resolve: Vec<ResolveSpec>Named-resolver slot declarations. Bound to implementations at load via a
ResolverRegistry; the data lives in the spec so it round-trips JSON.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for StageSpec
impl<'de> Deserialize<'de> for StageSpec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for StageSpec
impl JsonSchema for StageSpec
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for StageSpec
impl !RefUnwindSafe for StageSpec
impl Send for StageSpec
impl Sync for StageSpec
impl Unpin for StageSpec
impl !UnwindSafe for StageSpec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].