#[non_exhaustive]pub struct SessionMessage {
pub message_id: MessageId,
pub sender_session_id: MaybeUndefined<SessionId>,
pub recipient_session_id: MaybeUndefined<SessionId>,
pub sender_message_id: MaybeUndefined<MessageId>,
pub recipient_message_id: MaybeUndefined<MessageId>,
pub content: MaybeUndefined<Vec<ContentBlock>>,
pub meta: MaybeUndefined<Meta>,
}unstable_protocol_v2 only.Expand description
UNSTABLE
This capability is not part of the spec yet, and may be removed or changed at any point.
An upsert for an inter-session message.
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.message_id: MessageIdIdentifier of this message within the enclosing session’s transcript.
sender_session_id: MaybeUndefined<SessionId>The sending session.
Omitted leaves the stored value unchanged; null clears it; a value replaces it.
recipient_session_id: MaybeUndefined<SessionId>The receiving session.
Omitted leaves the stored value unchanged; null clears it; a value replaces it.
sender_message_id: MaybeUndefined<MessageId>On an incoming view, the messageId of the same message’s outgoing view in the
sender’s transcript.
Omitted leaves the stored value unchanged; null clears it; a value replaces it. It can arrive
after the message starts streaming.
recipient_message_id: MaybeUndefined<MessageId>On an outgoing view, the messageId of the same message’s incoming view in the
recipient’s transcript.
Omitted leaves the stored value unchanged; null clears it; a value replaces it. It can arrive
after the message starts streaming.
content: MaybeUndefined<Vec<ContentBlock>>Omitted leaves content unchanged; null clears it; a concrete array
replaces the whole content collection.
meta: MaybeUndefined<Meta>The _meta property is reserved by ACP to allow clients and agents to attach additional
metadata to their interactions. Omitted leaves the stored metadata unchanged; null
clears it. An object patches the stored metadata by top-level key: keys it omits are
unchanged, a key set to null is removed, and any other value replaces that key’s
stored value without merging nested objects. Beyond this patch rule, implementations
MUST NOT make assumptions about values at these keys.
See protocol docs: Metadata Patches
Implementations§
Source§impl SessionMessage
impl SessionMessage
Sourcepub fn new(message_id: impl Into<MessageId>) -> Self
Available on crate feature unstable_subagents only.
pub fn new(message_id: impl Into<MessageId>) -> Self
unstable_subagents only.Builds a message upsert with its transcript-local ID.
Sourcepub fn sender_session_id(
self,
sender_session_id: impl IntoMaybeUndefined<SessionId>,
) -> Self
Available on crate feature unstable_subagents only.
pub fn sender_session_id( self, sender_session_id: impl IntoMaybeUndefined<SessionId>, ) -> Self
unstable_subagents only.Sets, clears, or leaves unchanged the sending session.
Sourcepub fn recipient_session_id(
self,
recipient_session_id: impl IntoMaybeUndefined<SessionId>,
) -> Self
Available on crate feature unstable_subagents only.
pub fn recipient_session_id( self, recipient_session_id: impl IntoMaybeUndefined<SessionId>, ) -> Self
unstable_subagents only.Sets, clears, or leaves unchanged the receiving session.
Sourcepub fn sender_message_id(
self,
sender_message_id: impl IntoMaybeUndefined<MessageId>,
) -> Self
Available on crate feature unstable_subagents only.
pub fn sender_message_id( self, sender_message_id: impl IntoMaybeUndefined<MessageId>, ) -> Self
unstable_subagents only.Links an incoming view to the outgoing view’s message ID in the sender’s transcript.
Sourcepub fn recipient_message_id(
self,
recipient_message_id: impl IntoMaybeUndefined<MessageId>,
) -> Self
Available on crate feature unstable_subagents only.
pub fn recipient_message_id( self, recipient_message_id: impl IntoMaybeUndefined<MessageId>, ) -> Self
unstable_subagents only.Links an outgoing view to the incoming view’s message ID in the recipient’s transcript.
Sourcepub fn content(
self,
content: impl IntoMaybeUndefined<Vec<ContentBlock>>,
) -> Self
Available on crate feature unstable_subagents only.
pub fn content( self, content: impl IntoMaybeUndefined<Vec<ContentBlock>>, ) -> Self
unstable_subagents only.Replaces, clears, or leaves unchanged the message content.
Sourcepub fn meta(self, meta: impl IntoMaybeUndefined<Meta>) -> Self
Available on crate feature unstable_subagents only.
pub fn meta(self, meta: impl IntoMaybeUndefined<Meta>) -> Self
unstable_subagents only.Patches, clears, or leaves unchanged message metadata.
A concrete object patches stored metadata by top-level key; see
apply_meta_update.
Trait Implementations§
Source§impl Clone for SessionMessage
impl Clone for SessionMessage
Source§impl Debug for SessionMessage
impl Debug for SessionMessage
Source§impl<'de> Deserialize<'de> for SessionMessage
impl<'de> Deserialize<'de> for SessionMessage
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 SessionMessage
Source§impl JsonSchema for SessionMessage
impl JsonSchema for SessionMessage
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 SessionMessage
impl PartialEq for SessionMessage
Source§impl Serialize for SessionMessage
impl Serialize for SessionMessage
impl StructuralPartialEq for SessionMessage
Auto Trait Implementations§
impl Freeze for SessionMessage
impl RefUnwindSafe for SessionMessage
impl Send for SessionMessage
impl Sync for SessionMessage
impl Unpin for SessionMessage
impl UnsafeUnpin for SessionMessage
impl UnwindSafe for SessionMessage
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.