pub struct BlueprintsState {
pub store: Arc<dyn BlueprintStore>,
pub ref_base: Option<PathBuf>,
pub ref_includes: Vec<PathBuf>,
pub cli_default_agent_kind: Option<AgentKind>,
pub strict_embed: bool,
pub legacy_worker_binding_policy: LegacyWorkerBindingPolicy,
}Expand description
Router state: BP store + the base dir used to resolve $file / $agent_md
refs + default_agent_kind from the CLI (= layer (2) of the 4-tier cascade —
the CLI override layer).
When ref_base = None, ref expansion is skipped (= seed bodies are parsed
as raw JSON).
Fields§
§store: Arc<dyn BlueprintStore>Backing Blueprint store (git2 or in-memory backend).
ref_base: Option<PathBuf>Base dir for $file / $agent_md ref expansion; None skips expansion.
ref_includes: Vec<PathBuf>Additional directories (tier 5 of the include cascade — see
mlua-swarm-compile::ResolveConfig) searched after ref_base
(tier 1). Empty vec = no server-config includes; the register
path still walks the in-bp and env tiers.
cli_default_agent_kind: Option<AgentKind>CLI-level default_agent_kind override (layer (2) of the 4-tier cascade).
strict_embed: boolServer-side strict-embed switch (design table row 3, Phase 6 —
issue 4c4e3eb8). When true, POST /v1/blueprints/:id
refuses raw bodies that still carry $file / $agent_md refs
(returns 400 with a hint pointing at mse bp build --strict-embed), so ref resolution is pushed onto the client
and the server only ever sees pre-embedded Blueprint JSON.
Default false = the server runs the linker itself
(backward-compat). Wired from
crate::config::ResolvedConfig::blueprint_strict_embed via
the CLI --blueprint-strict-embed flag or the config-file
blueprint_strict_embed key. NOTE: independent from the
client-side mse bp build --strict-embed flag despite the
shared token — that one pre-embeds refs at build time, this one
rejects raw refs at register time; the two layers are compared
side by side in the bundled mse://guides/strict-embed-modes
resource (GH #78 P1b).
legacy_worker_binding_policy: LegacyWorkerBindingPolicyMigration gate for the deprecated AgentProfile.worker_binding
Runner fallback, wired from the same server config the launch path
uses (crate::config::ResolvedConfig::legacy_worker_binding_policy).
GET /v1/blueprints/:id/binding-requirements applies this policy so
its declared requirements match what launch will actually resolve.
Defaults to Allow (compat) in build_blueprints_router.
Trait Implementations§
Source§impl Clone for BlueprintsState
impl Clone for BlueprintsState
Source§fn clone(&self) -> BlueprintsState
fn clone(&self) -> BlueprintsState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for BlueprintsState
impl !UnwindSafe for BlueprintsState
impl Freeze for BlueprintsState
impl Send for BlueprintsState
impl Sync for BlueprintsState
impl Unpin for BlueprintsState
impl UnsafeUnpin for BlueprintsState
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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