pub struct AddonContent {
pub manifest_toml: String,
pub modules: Vec<DocumentBlob>,
}Expand description
Distribution view of an addon (unified distribution, GH #726): the
authoring lean-ctx-addon.toml embedded verbatim. The TOML is the
single source of truth — MCP wiring, capabilities, [install] bootstrap
and the per-platform [artifacts] tables (GH #725) all live inside it,
so nothing is duplicated at the pack layer that could drift.
Fields§
§manifest_toml: StringVerbatim lean-ctx-addon.toml text (authoring contract
docs/contracts/addon-manifest-v1.md).
modules: Vec<DocumentBlob>WASM modules carried inside the pack, hash-pinned exactly like
kind=skills documents.
Embedding rather than referencing external artifacts is the whole point: the pack’s own signature covers the executable bytes, so an author needs no artifact host, no checksum files and no CI to publish one — the friction the previous addon channel was reported for. It also removes a download step from install, and with it a class of TOCTOU between “verified the manifest” and “fetched the binary”.
Empty on a pre-extension pack; validate_kind_coherence requires at
least one module for kind=addon, so an empty list can only appear on a
package that predates this field and is rejected there.
Trait Implementations§
Source§impl Clone for AddonContent
impl Clone for AddonContent
Source§impl Debug for AddonContent
impl Debug for AddonContent
Source§impl<'de> Deserialize<'de> for AddonContent
impl<'de> Deserialize<'de> for AddonContent
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>,
impl Eq for AddonContent
Source§impl PartialEq for AddonContent
impl PartialEq for AddonContent
Source§impl Serialize for AddonContent
impl Serialize for AddonContent
impl StructuralPartialEq for AddonContent
Auto Trait Implementations§
impl Forget for AddonContent
impl Freeze for AddonContent
impl Move for AddonContent
impl RefUnwindSafe for AddonContent
impl Send for AddonContent
impl Sync for AddonContent
impl Unpin for AddonContent
impl UnsafeUnpin for AddonContent
impl UnwindSafe for AddonContent
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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