pub struct ArtifactRequest {
pub name: String,
pub version: String,
pub runtime: ArtifactRuntime,
pub source: Option<String>,
pub capabilities: Option<Capabilities>,
pub on_overflow: HookOverflowPolicy,
pub config: Option<Value>,
pub gateway: Option<ArtifactGateway>,
}Fields§
§name: String§version: String§runtime: ArtifactRuntime§source: Option<String>Optional local source path (skill artifacts only). When set, the runtime resolves the
skill’s skill.md directly from this path and skips registry resolution entirely.
Relative paths resolve against StageRequest::manifest_dir.
capabilities: Option<Capabilities>Per-artifact capability grant copied verbatim from this artifact’s entry in the
capsule operator’s own manifest (murmur_artifact::RuntimeArtifact::capabilities).
Consumed for runtime: hook (default-deny baseline, None = deny everything) and for
runtime: tool/runtime: driver (ceiling baseline, None = the capsule-wide policy
unchanged); the manifest parser rejects the key on runtime: skill. Never sourced
from the artifact’s own bundled murmur.yaml, so an artifact cannot self-grant.
on_overflow: HookOverflowPolicyWhat the runtime does when this hook’s async job queue is full, copied verbatim from
on_overflow: on this artifact’s entry in the capsule operator’s own manifest — the
same operator-only sourcing rule capabilities above follows. Consumed for
runtime: hook and inert for every other role (the manifest parser rejects the key
there); inert too for a hook that turns out to be execution_mode: blocking, which is
never queued.
config: Option<Value>This artifact’s operator-declared config: block, copied verbatim from its entry in the
capsule operator’s own manifest (murmur_artifact::RuntimeArtifact::config) — the same
operator-only sourcing rule capabilities above follows, so an artifact pulled from a
registry cannot configure itself.
Lowered to compact JSON at staging by crate::artifact_config::lower_artifact_config and
delivered to this artifact alone as crate::artifact_config::ARTIFACT_CONFIG_ENV. None
means the variable is absent from the artifact’s environment. Consumed for runtime: hook,
runtime: tool (WASM and native) and runtime: driver; the manifest parser rejects the
key on runtime: skill.
gateway: Option<ArtifactGateway>This artifact’s operator-declared gateway: block, copied verbatim from its entry in the
capsule operator’s own manifest (murmur_artifact::RuntimeArtifact::gateway) — the same
operator-only sourcing rule capabilities above follows. Built into the artifact’s
credential gateway at staging, which is also where the artifact’s own upstream_auth:
declaration is read; an artifact without this block is never asked for one.
Trait Implementations§
Source§impl Clone for ArtifactRequest
impl Clone for ArtifactRequest
Source§impl Debug for ArtifactRequest
impl Debug for ArtifactRequest
impl Eq for ArtifactRequest
Source§impl PartialEq for ArtifactRequest
impl PartialEq for ArtifactRequest
impl StructuralPartialEq for ArtifactRequest
Auto Trait Implementations§
impl Freeze for ArtifactRequest
impl RefUnwindSafe for ArtifactRequest
impl Send for ArtifactRequest
impl Sync for ArtifactRequest
impl Unpin for ArtifactRequest
impl UnsafeUnpin for ArtifactRequest
impl UnwindSafe for ArtifactRequest
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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