#[non_exhaustive]pub struct SessionCapabilities {
pub prompt: Option<PromptCapabilities>,
pub mcp: Option<McpCapabilities>,
pub load: Option<SessionLoadCapabilities>,
pub list: Option<SessionListCapabilities>,
pub delete: Option<SessionDeleteCapabilities>,
pub additional_directories: Option<SessionAdditionalDirectoriesCapabilities>,
pub fork: Option<SessionForkCapabilities>,
pub resume: Option<SessionResumeCapabilities>,
pub close: Option<SessionCloseCapabilities>,
pub meta: Option<Map<String, Value>>,
}unstable_protocol_v2 only.Expand description
Session capabilities supported by the agent.
Supplying {} means the agent supports the baseline session methods:
session/new, session/prompt, session/cancel, and session/update.
Agents that support sessions MAY support additional session methods, prompt content types, and MCP transports by specifying additional capabilities.
See protocol docs: Session Capabilities
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.prompt: Option<PromptCapabilities>Prompt capabilities supported by the agent in session/prompt requests.
Optional. Omitted or null both mean the agent does not advertise any
prompt extensions beyond the baseline text and resource-link content
required by session/prompt.
mcp: Option<McpCapabilities>MCP capabilities supported by the agent for session lifecycle requests.
Optional. Omitted or null both mean the agent does not advertise MCP
server transport support for sessions.
load: Option<SessionLoadCapabilities>Whether the agent supports session/load.
Optional. Omitted or null both mean the agent does not advertise support.
Supplying {} means the agent supports loading sessions.
list: Option<SessionListCapabilities>Whether the agent supports session/list.
delete: Option<SessionDeleteCapabilities>Whether the agent supports session/delete.
Optional. Omitted or null both mean the agent does not advertise support.
Supplying {} means the agent supports deleting sessions from session/list.
additional_directories: Option<SessionAdditionalDirectoriesCapabilities>Whether the agent supports additionalDirectories on supported session lifecycle requests.
Agents that also support session/list may return
SessionInfo.additionalDirectories to report the complete ordered
additional-root list associated with a listed session.
fork: Option<SessionForkCapabilities>unstable_session_fork only.UNSTABLE
This capability is not part of the spec yet, and may be removed or changed at any point.
Whether the agent supports session/fork.
resume: Option<SessionResumeCapabilities>Whether the agent supports session/resume.
close: Option<SessionCloseCapabilities>Whether the agent supports session/close.
meta: Option<Map<String, Value>>The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.
See protocol docs: Extensibility
Implementations§
Source§impl SessionCapabilities
impl SessionCapabilities
Sourcepub fn new() -> SessionCapabilities
pub fn new() -> SessionCapabilities
Builds an empty SessionCapabilities; use builder methods to advertise supported sub-capabilities.
Sourcepub fn prompt(
self,
prompt: impl IntoOption<PromptCapabilities>,
) -> SessionCapabilities
pub fn prompt( self, prompt: impl IntoOption<PromptCapabilities>, ) -> SessionCapabilities
Prompt capabilities supported by the agent in session/prompt requests.
Omitted or null both mean the agent does not advertise any prompt
extensions beyond the baseline text and resource-link content required by
session/prompt.
Sourcepub fn mcp(self, mcp: impl IntoOption<McpCapabilities>) -> SessionCapabilities
pub fn mcp(self, mcp: impl IntoOption<McpCapabilities>) -> SessionCapabilities
MCP capabilities supported by the agent for session lifecycle requests.
Omitted or null both mean the agent does not advertise MCP server
transport support for sessions.
Sourcepub fn load(
self,
load: impl IntoOption<SessionLoadCapabilities>,
) -> SessionCapabilities
pub fn load( self, load: impl IntoOption<SessionLoadCapabilities>, ) -> SessionCapabilities
Whether the agent supports session/load.
Omitted or null both mean the agent does not advertise support.
Supplying {} means the agent supports loading sessions.
Sourcepub fn list(
self,
list: impl IntoOption<SessionListCapabilities>,
) -> SessionCapabilities
pub fn list( self, list: impl IntoOption<SessionListCapabilities>, ) -> SessionCapabilities
Whether the agent supports session/list.
Sourcepub fn delete(
self,
delete: impl IntoOption<SessionDeleteCapabilities>,
) -> SessionCapabilities
pub fn delete( self, delete: impl IntoOption<SessionDeleteCapabilities>, ) -> SessionCapabilities
Whether the agent supports session/delete.
Omitted or null both mean the agent does not advertise support.
Supplying {} means the agent supports deleting sessions from session/list.
Sourcepub fn additional_directories(
self,
additional_directories: impl IntoOption<SessionAdditionalDirectoriesCapabilities>,
) -> SessionCapabilities
pub fn additional_directories( self, additional_directories: impl IntoOption<SessionAdditionalDirectoriesCapabilities>, ) -> SessionCapabilities
Whether the agent supports additionalDirectories on supported session lifecycle requests.
Agents that also support session/list may return
SessionInfo.additionalDirectories to report the complete ordered
additional-root list associated with a listed session.
Sourcepub fn fork(
self,
fork: impl IntoOption<SessionForkCapabilities>,
) -> SessionCapabilities
Available on crate feature unstable_session_fork only.
pub fn fork( self, fork: impl IntoOption<SessionForkCapabilities>, ) -> SessionCapabilities
unstable_session_fork only.Whether the agent supports session/fork.
Sourcepub fn resume(
self,
resume: impl IntoOption<SessionResumeCapabilities>,
) -> SessionCapabilities
pub fn resume( self, resume: impl IntoOption<SessionResumeCapabilities>, ) -> SessionCapabilities
Whether the agent supports session/resume.
Sourcepub fn close(
self,
close: impl IntoOption<SessionCloseCapabilities>,
) -> SessionCapabilities
pub fn close( self, close: impl IntoOption<SessionCloseCapabilities>, ) -> SessionCapabilities
Whether the agent supports session/close.
Sourcepub fn meta(
self,
meta: impl IntoOption<Map<String, Value>>,
) -> SessionCapabilities
pub fn meta( self, meta: impl IntoOption<Map<String, Value>>, ) -> SessionCapabilities
The _meta property is reserved by ACP to allow clients and agents to attach additional metadata to their interactions. Implementations MUST NOT make assumptions about values at these keys.
See protocol docs: Extensibility
Source§impl SessionCapabilities
impl SessionCapabilities
Sourcepub fn into_v1(
self,
) -> Result<V1SessionCapabilityParts, ProtocolConversionError>
pub fn into_v1( self, ) -> Result<V1SessionCapabilityParts, ProtocolConversionError>
Converts these v2 draft session capabilities into the v1 capability fields they represent.
§Errors
Returns ProtocolConversionError when any contained capability field
cannot be represented in v1.
Sourcepub fn from_v1(
session_capabilities: SessionCapabilities,
prompt_capabilities: PromptCapabilities,
load_session: bool,
mcp_capabilities: McpCapabilities,
) -> Result<SessionCapabilities, ProtocolConversionError>
pub fn from_v1( session_capabilities: SessionCapabilities, prompt_capabilities: PromptCapabilities, load_session: bool, mcp_capabilities: McpCapabilities, ) -> Result<SessionCapabilities, ProtocolConversionError>
Builds v2 draft session capabilities from the v1 agent capability fields
that now live under session in v2.
§Errors
Returns ProtocolConversionError when any of the supplied v1
capability fields cannot be represented in v2.
Trait Implementations§
Source§impl Clone for SessionCapabilities
impl Clone for SessionCapabilities
Source§fn clone(&self) -> SessionCapabilities
fn clone(&self) -> SessionCapabilities
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 SessionCapabilities
impl Debug for SessionCapabilities
Source§impl Default for SessionCapabilities
impl Default for SessionCapabilities
Source§fn default() -> SessionCapabilities
fn default() -> SessionCapabilities
Source§impl<'de> Deserialize<'de> for SessionCapabilities
impl<'de> Deserialize<'de> for SessionCapabilities
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SessionCapabilities, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SessionCapabilities, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for SessionCapabilities
Source§impl JsonSchema for SessionCapabilities
impl JsonSchema for SessionCapabilities
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for SessionCapabilities
impl PartialEq for SessionCapabilities
Source§fn eq(&self, other: &SessionCapabilities) -> bool
fn eq(&self, other: &SessionCapabilities) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SessionCapabilities
impl Serialize for SessionCapabilities
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for SessionCapabilities
Auto Trait Implementations§
impl Freeze for SessionCapabilities
impl RefUnwindSafe for SessionCapabilities
impl Send for SessionCapabilities
impl Sync for SessionCapabilities
impl Unpin for SessionCapabilities
impl UnsafeUnpin for SessionCapabilities
impl UnwindSafe for SessionCapabilities
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,
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.