pub enum CatalogCapability {
McpServerCard,
LegacyMcpServerCard,
AiSkillDiscovery,
AgentPluginDiscovery,
McpInstallPlanning,
MultipleTransportChoice,
CatalogSearchPagination,
TrustSnapshot,
CatalogSelection,
CatalogSearchCredentialRequired,
Unknown,
}Expand description
A wire feature a caller can require of the catalog surface, negotiated per request. A grant means the runtime understands the feature’s contract, not that the deployment has enabled the operation; typed unavailable results report availability separately.
Experimental. This type is part of an experimental wire-protocol surface and may change or be removed in future SDK or CLI releases.
Variants§
McpServerCard
Understands the current application/mcp-server-card+json media type.
LegacyMcpServerCard
Understands the legacy application/mcp-server+json media type.
AiSkillDiscovery
Understands application/ai-skill candidates as discovery-only and typed non-installable.
AgentPluginDiscovery
Understands opt-in application/vnd.github.copilot-plugin candidates and their typed identity, version, source, and compatibility fields.
McpInstallPlanning
Understands side-effect-free MCP install-plan requests, results, and plan handles; planning-unavailable separately reports that planning is not enabled.
MultipleTransportChoice
Understands plans that enumerate every eligible transport rather than a single preferred one.
CatalogSearchPagination
Understands explicit numbered navigation and authority-reported pagination metadata with opaque tokens. Advertised and granted only when requested.
TrustSnapshot
Understands versioned candidate trust snapshots. Protocol-3 callers must require this capability before the runtime adds the optional snapshot field.
CatalogSelection
Understands exact candidate selection through model-safe opaque references and host-only candidate-handle hand-off.
CatalogSearchCredentialRequired
Requires an eligible credential for the selected GitHub.com account before search egress and prohibits client-side anonymous retry, including after HTTP 401 or 403. The credential is scoped to the fixed catalog authority without redirect forwarding. Neither a grant nor successful response proves that the authority accepted the identity or selected a particular backend. Preserve this requirement on every page and retry; callers omitting it retain optional authentication.
Unknown
Unknown variant for forward compatibility.
Trait Implementations§
Source§impl Clone for CatalogCapability
impl Clone for CatalogCapability
Source§impl Debug for CatalogCapability
impl Debug for CatalogCapability
Source§impl Default for CatalogCapability
impl Default for CatalogCapability
Source§impl<'de> Deserialize<'de> for CatalogCapability
impl<'de> Deserialize<'de> for CatalogCapability
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 CatalogCapability
Source§impl PartialEq for CatalogCapability
impl PartialEq for CatalogCapability
Source§impl Serialize for CatalogCapability
impl Serialize for CatalogCapability
impl StructuralPartialEq for CatalogCapability
Auto Trait Implementations§
impl Freeze for CatalogCapability
impl RefUnwindSafe for CatalogCapability
impl Send for CatalogCapability
impl Sync for CatalogCapability
impl Unpin for CatalogCapability
impl UnsafeUnpin for CatalogCapability
impl UnwindSafe for CatalogCapability
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§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.