Skip to main content

BlueprintMetadata

Struct BlueprintMetadata 

Source
pub struct BlueprintMetadata {
    pub description: Option<String>,
    pub origin: BlueprintOrigin,
    pub tags: Vec<String>,
    pub version_label: Option<String>,
    pub project_name_alias: Option<String>,
    pub default_run_ttl_secs: Option<u64>,
    pub strict_verdict_handling: Option<bool>,
    pub lints: Option<BTreeMap<String, LintSetting>>,
}
Expand description

Blueprint-level metadata (description / origin / tags / ttl / version label / alias).

Fields§

§description: Option<String>

Short human-readable description of the Blueprint.

§origin: BlueprintOrigin

Provenance record (inline / file / algocline).

§tags: Vec<String>

Tag list for classification / routing.

§version_label: Option<String>

Optional SemVer label (= match target for TaskPipeline VersionSelector::SemVerReq). Example: "1.2.3". Rewritten by EnhanceAdapter on PATCH/MINOR/MAJOR bumps.

§project_name_alias: Option<String>

Optional LDS session alias label. The Swarm engine itself does not apply this (= it is free-form content); the value is expanded into the Spawn directive and reaches the MainAI. The MainAI is expected to establish a task session via mcp__lds__session_create(root=..., alias=<this>), and to inject LDS Session Alias: <this> verbatim into the SubAgent dispatch prompt body. The SubAgent body then calls mcp__lds__session_start(alias=<this>) with the received alias. Worktree ownership is thereby unified under a single session, and cross-SubAgent / cross-worktree ownership blocks (= not owned by this session) cannot fire structurally.

§default_run_ttl_secs: Option<u64>

Optional default TTL (seconds) for tasks dispatched via this BP. Estimated by the Blueprint author from the flow shape (agent count × expected duration per agent). If POST /v1/tasks supplies ttl_secs explicitly, the body value wins; otherwise this metadata field is used as the default; if both are absent, the server global default (default_run_ttl() = 1800s) applies. Not needed for short chains (~5 min); recommended for long chains (14 agents × several minutes = 30-60 min).

§strict_verdict_handling: Option<bool>

GH #50 follow-up (issue 33bc825b): promote VerdictValueUnhandled compile-time lint to a hard error. When false (or absent), a declared AgentDef.verdict.values entry that no downstream cond references is only surfaced via tracing::warn! (informational); when true, Compiler::compile rejects the Blueprint with CompileError::VerdictValueUnhandled. Opt-in so existing Blueprints that intentionally leave some verdict values as silent-pass informational tokens keep compiling unchanged.

Legacy spelling. This is now sugar for lints = {"verdict-value-unhandled": "deny"}, which is the preferred form (it addresses the same lint kind as every other layer and reads next to the rest of the Blueprint’s lint policy). Both spellings are honored and union toward deny: either one saying deny rejects the compile, and true here wins over a lints allow on either layer — this one or AgentDef::lints. The field is kept indefinitely — existing Blueprints are not asked to migrate. Blueprint-wide by nature: to exempt one agent, drop the flag and declare the kind per agent.

§lints: Option<BTreeMap<String, LintSetting>>

Blueprint-wide lint level overrides — the outermost layer of the LintSetting cascade (call-site > AgentDef::lints > this > the kind’s registry default), consumed by bp_doctor. Keys are kind literals ("agent-md-size"), "category:<cat>" groups, or "all"; see LintSetting for the full grammar and the precedence rules. None (the default) = no Blueprint-wide overrides.

One entry also reaches the compile stage: a deny matching "verdict-value-unhandled" rejects the Blueprint exactly like strict_verdict_handling, and an allow silences its tracing::warn!. This is the outer of the two layers the compile stage reads — an agent that declares the kind in its own AgentDef::lints decides for itself, and only agents that declare nothing fall through to here. No other kind’s compile behavior can be changed — compile-stage errors are hard errors, not lints.

Trait Implementations§

Source§

impl Clone for BlueprintMetadata

Source§

fn clone(&self) -> BlueprintMetadata

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BlueprintMetadata

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Default for BlueprintMetadata

Source§

fn default() -> BlueprintMetadata

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for BlueprintMetadata

Source§

fn deserialize<__D>( __deserializer: __D, ) -> Result<BlueprintMetadata, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl JsonSchema for BlueprintMetadata

Source§

fn schema_name() -> Cow<'static, str>

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
Source§

fn inline_schema() -> bool

Whether JSON Schemas generated for this type should be included directly in parent schemas, rather than being re-used where possible using the $ref keyword. Read more
Source§

impl PartialEq for BlueprintMetadata

Source§

fn eq(&self, other: &BlueprintMetadata) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for BlueprintMetadata

Source§

fn serialize<__S>( &self, __serializer: __S, ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for BlueprintMetadata

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> MaybeSend for T

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more