pub struct ClientPluginCustomization {
pub id: String,
pub uri: Uri,
pub name: String,
pub icons: Option<Vec<Icon>>,
pub range: Option<TextRange>,
pub meta: Option<JsonObject>,
pub enabled: bool,
pub client_id: Option<String>,
pub load: Option<CustomizationLoadState>,
pub children: Option<Vec<ChildCustomization>>,
pub version: Option<String>,
pub nonce: Option<String>,
}Expand description
A {@link PluginCustomization} as published by a client. Extends the
server-facing shape with an opaque nonce so the host can detect when
the client’s view of a plugin has changed and re-parse only as needed.
Clients SHOULD include a nonce. Server-side fields like
{@link ContainerCustomizationBase.children | children} and
{@link ContainerCustomizationBase.load | load} are typically left
absent on publication and populated by the host when the resolved
plugin appears in {@link SessionState.customizations}.
Fields§
§id: StringSession-unique opaque identifier. Used by every action that targets a specific customization. Minted by whoever publishes the customization (typically the agent host).
uri: UriSource URI for this customization. A plugin URL, a file URI, or a directory URI.
For declarations that live inside a larger file — e.g. an MCP
server declared inline in a plugins.json manifest — uri points
to the containing file and {@link CustomizationBase.range | range}
narrows it to the declaration’s span.
name: StringHuman-readable name.
icons: Option<Vec<Icon>>Icons for UI display.
range: Option<TextRange>Optional span within {@link CustomizationBase.uri | uri} when this
customization is a subset of a larger file (for example, one entry
in an inline mcpServers block of a plugins.json manifest).
Absent when the customization covers the whole resource.
meta: Option<JsonObject>Additional provider-specific metadata for this customization.
Mirrors the MCP _meta convention. Optional and opaque to the
protocol; producers and consumers agree on its contents
out-of-band.
enabled: boolWhether this container is currently enabled.
client_id: Option<String>clientId of the client that contributed this container. Absent for
server-originated entries.
load: Option<CustomizationLoadState>Host-reported load state. Absent means the host has not yet reported a load state for this container.
children: Option<Vec<ChildCustomization>>Children discovered inside this container.
Absent means the host has not parsed this container yet. An empty array means the host parsed the container and it contributes nothing.
version: Option<String>Version of the plugin, sourced from the
Open Plugins manifest’s optional
version field (semver, e.g. "1.2.0"). Absent when the manifest
declares no version — the field is optional there — or the source
has no version concept. Provenance / display only: the host neither
parses nor enforces it.
nonce: Option<String>Opaque version token used by the host to detect changes.
Trait Implementations§
Source§impl Clone for ClientPluginCustomization
impl Clone for ClientPluginCustomization
Source§fn clone(&self) -> ClientPluginCustomization
fn clone(&self) -> ClientPluginCustomization
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 ClientPluginCustomization
impl Debug for ClientPluginCustomization
Source§impl<'de> Deserialize<'de> for ClientPluginCustomization
impl<'de> Deserialize<'de> for ClientPluginCustomization
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 PartialEq for ClientPluginCustomization
impl PartialEq for ClientPluginCustomization
Source§fn eq(&self, other: &ClientPluginCustomization) -> bool
fn eq(&self, other: &ClientPluginCustomization) -> bool
self and other values to be equal, and is used by ==.