pub struct SpawnerHints {
pub layers: Vec<String>,
}Expand description
Set of capability hint keys for the SpawnerLayer required by a Blueprint.
§Design rationale (= for the person who will reconstruct this later)
A Blueprint is a pure layer of flow.ir + agent name binding and holds no middleware implementation. Nevertheless there are cases where the caller must be told the BP needs certain capabilities — e.g. “MainAI hook required”, “Operator delegate path required”, operator role mode switching, presence/absence of senior escalation, and so on.
spawner_hints.layers is the place where those capabilities are declared as string
keys. The engine-side LayerRegistry (= consumer crate) resolves key → factory and
wraps the compiled routes with a SpawnerStack. The Blueprint does not import the
concrete MainAIMiddleware type; it exposes intent through strings such as "main_ai"
(= separates the pure Flow layer from implementation details).
§Canonical hint keys
"main_ai"→MainAIMiddleware(= fires SpawnHook before/after when kind is MainAi/Composite)"senior_escalation"→SeniorEscalationMiddleware(= fires SeniorBridge.ask on worker ok=false)"operator_delegate"→OperatorDelegateMiddleware(= delegates the entire spawn to an external Operator.execute)
§Behavior of unregistered keys
If the engine-side LayerRegistry has no matching factory, the key is silently skipped (= lenient default). This preserves Blueprint portability (= an unsupported capability in another deployment falls back gracefully).
Fields§
§layers: Vec<String>Ordered list of layer hint keys to wrap around the SpawnerStack.
Trait Implementations§
Source§impl Clone for SpawnerHints
impl Clone for SpawnerHints
Source§fn clone(&self) -> SpawnerHints
fn clone(&self) -> SpawnerHints
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SpawnerHints
impl Debug for SpawnerHints
Source§impl Default for SpawnerHints
impl Default for SpawnerHints
Source§fn default() -> SpawnerHints
fn default() -> SpawnerHints
Source§impl<'de> Deserialize<'de> for SpawnerHints
impl<'de> Deserialize<'de> for SpawnerHints
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 SpawnerHints
impl JsonSchema for SpawnerHints
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
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for SpawnerHints
impl PartialEq for SpawnerHints
Source§fn eq(&self, other: &SpawnerHints) -> bool
fn eq(&self, other: &SpawnerHints) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SpawnerHints
impl Serialize for SpawnerHints
impl StructuralPartialEq for SpawnerHints
Auto Trait Implementations§
impl Freeze for SpawnerHints
impl RefUnwindSafe for SpawnerHints
impl Send for SpawnerHints
impl Sync for SpawnerHints
impl Unpin for SpawnerHints
impl UnsafeUnpin for SpawnerHints
impl UnwindSafe for SpawnerHints
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<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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