#[non_exhaustive]pub enum MessageType {
Show 62 variants
SessionOpen(SessionOpenPayload),
SessionChallenge(SessionChallengePayload),
SessionAuthenticate(SessionAuthenticatePayload),
SessionAccepted(SessionAcceptedPayload),
SessionUnauthenticated(SessionUnauthenticatedPayload),
SessionRejected(SessionRejectedPayload),
SessionRefresh(SessionRefreshPayload),
SessionEvicted(SessionEvictedPayload),
SessionClose(SessionClosePayload),
SessionPing(SessionPingPayload),
SessionPong(SessionPongPayload),
SessionAck(SessionAckPayload),
SessionListJobs(SessionListJobsPayload),
SessionJobs(SessionJobsPayload),
Ping(PingPayload),
Pong(PongPayload),
Ack(AckPayload),
Nack(NackPayload),
Cancel(CancelPayload),
CancelAccepted(CancelAcceptedPayload),
CancelRefused(CancelRefusedPayload),
Interrupt(InterruptPayload),
Resume(ResumePayload),
Backpressure(BackpressurePayload),
ToolInvoke(ToolInvokePayload),
ToolResult(ToolResultPayload),
ToolError(ToolErrorPayload),
JobAccepted(JobAcceptedPayload),
JobStarted(JobStartedPayload),
JobProgress(JobProgressPayload),
JobHeartbeat(JobHeartbeatPayload),
JobCompleted(JobCompletedPayload),
JobFailed(JobFailedPayload),
JobCancelled(JobCancelledPayload),
JobResultChunk(JobResultChunkPayload),
StreamOpen(StreamOpenPayload),
StreamChunk(StreamChunkPayload),
StreamClose(StreamClosePayload),
StreamError(StreamErrorPayload),
PermissionRequest(PermissionRequestPayload),
PermissionGrant(PermissionGrantPayload),
PermissionDeny(PermissionDenyPayload),
LeaseGranted(LeaseGrantedPayload),
LeaseExtended(LeaseExtendedPayload),
LeaseRevoked(LeaseRevokedPayload),
LeaseRefresh(LeaseRefreshPayload),
Subscribe(SubscribePayload),
SubscribeAccepted(SubscribeAcceptedPayload),
SubscribeEvent(SubscribeEventPayload),
Unsubscribe(UnsubscribePayload),
SubscribeClosed(SubscribeClosedPayload),
JobSubscribe(JobSubscribePayload),
JobSubscribed(JobSubscribedPayload),
JobUnsubscribe(JobUnsubscribePayload),
ArtifactPut(ArtifactPutPayload),
ArtifactFetch(ArtifactFetchPayload),
ArtifactRef(ArtifactRefPayload),
ArtifactRelease(ArtifactReleasePayload),
EventEmit(EventEmitPayload),
Log(LogPayload),
Metric(MetricPayload),
TraceSpan(TraceSpanPayload),
}Expand description
Tagged enum of every protocol message payload (RFC §6.2).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
SessionOpen(SessionOpenPayload)
session.open
SessionChallenge(SessionChallengePayload)
session.challenge
SessionAuthenticate(SessionAuthenticatePayload)
session.authenticate
SessionAccepted(SessionAcceptedPayload)
session.accepted
SessionUnauthenticated(SessionUnauthenticatedPayload)
session.unauthenticated
SessionRejected(SessionRejectedPayload)
session.rejected
SessionRefresh(SessionRefreshPayload)
session.refresh
SessionEvicted(SessionEvictedPayload)
session.evicted
SessionClose(SessionClosePayload)
session.close
SessionPing(SessionPingPayload)
session.ping (ARCP v1.1 §6.4) — session-scoped heartbeat.
Canonical heartbeat per ARCP v1.1; the generic Ping/Pong
variants below were introduced under v1.0’s draft scaffolding and
remain only for backwards compatibility.
SessionPong(SessionPongPayload)
session.pong (ARCP v1.1 §6.4) — response to session.ping.
SessionAck(SessionAckPayload)
session.ack (ARCP v1.1 §6.5) — client-side flow-control ack.
SessionListJobs(SessionListJobsPayload)
session.list_jobs (ARCP v1.1 §6.6) — read-only job inventory
request.
SessionJobs(SessionJobsPayload)
session.jobs (ARCP v1.1 §6.6) — response to session.list_jobs.
Ping(PingPayload)
ping
Pong(PongPayload)
pong
Ack(AckPayload)
ack
Nack(NackPayload)
nack
Cancel(CancelPayload)
cancel
CancelAccepted(CancelAcceptedPayload)
cancel.accepted
CancelRefused(CancelRefusedPayload)
cancel.refused
Interrupt(InterruptPayload)
interrupt
Resume(ResumePayload)
resume
Backpressure(BackpressurePayload)
backpressure
ToolInvoke(ToolInvokePayload)
tool.invoke
ToolResult(ToolResultPayload)
tool.result
ToolError(ToolErrorPayload)
tool.error
JobAccepted(JobAcceptedPayload)
job.accepted
JobStarted(JobStartedPayload)
job.started
JobProgress(JobProgressPayload)
job.progress
JobHeartbeat(JobHeartbeatPayload)
job.heartbeat
JobCompleted(JobCompletedPayload)
job.completed
JobFailed(JobFailedPayload)
job.failed
JobCancelled(JobCancelledPayload)
job.cancelled
JobResultChunk(JobResultChunkPayload)
job.result_chunk (ARCP v1.1 §8.4) — one fragment of a streamed
final result. Terminated by job.completed carrying the same
result_id.
StreamOpen(StreamOpenPayload)
stream.open
StreamChunk(StreamChunkPayload)
stream.chunk
StreamClose(StreamClosePayload)
stream.close
StreamError(StreamErrorPayload)
stream.error
PermissionRequest(PermissionRequestPayload)
permission.request
PermissionGrant(PermissionGrantPayload)
permission.grant
PermissionDeny(PermissionDenyPayload)
permission.deny
LeaseGranted(LeaseGrantedPayload)
lease.granted
LeaseExtended(LeaseExtendedPayload)
lease.extended
LeaseRevoked(LeaseRevokedPayload)
lease.revoked
LeaseRefresh(LeaseRefreshPayload)
lease.refresh
Subscribe(SubscribePayload)
subscribe
SubscribeAccepted(SubscribeAcceptedPayload)
subscribe.accepted
SubscribeEvent(SubscribeEventPayload)
subscribe.event
Unsubscribe(UnsubscribePayload)
unsubscribe
SubscribeClosed(SubscribeClosedPayload)
subscribe.closed
JobSubscribe(JobSubscribePayload)
job.subscribe (ARCP v1.1 §7.6) — cross-session attach to a
running job.
JobSubscribed(JobSubscribedPayload)
job.subscribed (ARCP v1.1 §7.6) — runtime acknowledgement of a
job.subscribe request.
JobUnsubscribe(JobUnsubscribePayload)
job.unsubscribe (ARCP v1.1 §7.6) — terminate a previously
acknowledged job subscription.
ArtifactPut(ArtifactPutPayload)
artifact.put
ArtifactFetch(ArtifactFetchPayload)
artifact.fetch
ArtifactRef(ArtifactRefPayload)
artifact.ref
ArtifactRelease(ArtifactReleasePayload)
artifact.release
EventEmit(EventEmitPayload)
event.emit
Log(LogPayload)
log
Metric(MetricPayload)
metric
TraceSpan(TraceSpanPayload)
trace.span
Implementations§
Source§impl MessageType
impl MessageType
Sourcepub const fn type_name(&self) -> &'static str
pub const fn type_name(&self) -> &'static str
Wire-level discriminator string for this variant.
Sourcepub const fn is_handshake(&self) -> bool
pub const fn is_handshake(&self) -> bool
True if this variant is one of the handshake messages allowed before
session.accepted (RFC §8.1).
Sourcepub const fn is_countable_event(&self) -> bool
pub const fn is_countable_event(&self) -> bool
True if this variant participates in event_seq and is therefore
subject to session.ack flow control (ARCP v1.1 §6.5).
Session-control envelopes (handshake, heartbeat, ack, close, evict, refresh) are NOT counted. Everything else — job events, tool results, stream chunks, telemetry, artifacts, subscriptions — IS.
Trait Implementations§
Source§impl Clone for MessageType
impl Clone for MessageType
Source§fn clone(&self) -> MessageType
fn clone(&self) -> MessageType
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 MessageType
impl Debug for MessageType
Source§impl<'de> Deserialize<'de> for MessageType
impl<'de> Deserialize<'de> for MessageType
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<MessageType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<MessageType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for MessageType
impl PartialEq for MessageType
Source§fn eq(&self, other: &MessageType) -> bool
fn eq(&self, other: &MessageType) -> bool
self and other values to be equal, and is used by ==.