pub enum BusMessage {
Show 18 variants
AgentReady {
agent_id: String,
capabilities: Vec<String>,
},
AgentShutdown {
agent_id: String,
},
AgentMessage {
from: String,
to: String,
parts: Vec<Part>,
},
TaskUpdate {
task_id: String,
state: TaskState,
message: Option<String>,
},
ArtifactUpdate {
task_id: String,
artifact: Artifact,
},
SharedResult {
key: String,
value: Value,
tags: Vec<String>,
},
ToolRequest {
request_id: String,
agent_id: String,
tool_name: String,
arguments: Value,
},
ToolResponse {
request_id: String,
agent_id: String,
tool_name: String,
result: String,
success: bool,
},
Heartbeat {
agent_id: String,
status: String,
},
RalphLearning {
prd_id: String,
story_id: String,
iteration: usize,
learnings: Vec<String>,
context: Value,
},
RalphHandoff {
prd_id: String,
from_story: String,
to_story: String,
context: Value,
progress_summary: String,
},
RalphProgress {
prd_id: String,
passed: usize,
total: usize,
iteration: usize,
status: String,
},
ToolOutputFull {
agent_id: String,
tool_name: String,
output: String,
success: bool,
step: usize,
},
AgentThinking {
agent_id: String,
thinking: String,
step: usize,
},
VoiceSessionStarted {
room_name: String,
agent_id: String,
voice_id: String,
},
VoiceTranscript {
room_name: String,
text: String,
role: String,
is_final: bool,
},
VoiceAgentStateChanged {
room_name: String,
state: String,
},
VoiceSessionEnded {
room_name: String,
reason: String,
},
}Expand description
The set of messages the bus can carry.
Variants§
AgentReady
An agent has come online and is ready to receive work
AgentShutdown
An agent is shutting down
AgentMessage
Free-form message from one agent to another (mirrors A2A Message)
TaskUpdate
Task status changed
ArtifactUpdate
A new artifact was produced for a task
A sub-agent published a shared result (replaces raw ResultStore publish)
ToolRequest
Tool execution request (for shared tool dispatch)
ToolResponse
Tool execution response
Heartbeat
Heartbeat (keep-alive / health signal)
RalphLearning
An agent shares learnings from a Ralph iteration (insights, blockers, patterns discovered) so subsequent iterations or co-ordinating agents can build on them.
RalphHandoff
Context handoff between sequential Ralph stories. The finishing story publishes what the next story should know.
RalphProgress
PRD-level progress update (aggregated across all stories).
ToolOutputFull
Full, untruncated tool output from an agent loop step. Published before the result is truncated for the LLM context window, so other agents and the bus log see the complete output.
AgentThinking
Internal reasoning / chain-of-thought from an agent step. Published so the training pipeline captures the model’s thinking process alongside its actions.
VoiceSessionStarted
A voice session (LiveKit room) has been created.
VoiceTranscript
A transcript fragment from a voice session.
VoiceAgentStateChanged
The voice agent’s state changed (e.g. listening, thinking, speaking).
VoiceSessionEnded
A voice session has ended.
Trait Implementations§
Source§impl Clone for BusMessage
impl Clone for BusMessage
Source§fn clone(&self) -> BusMessage
fn clone(&self) -> BusMessage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BusMessage
impl Debug for BusMessage
Source§impl<'de> Deserialize<'de> for BusMessage
impl<'de> Deserialize<'de> for BusMessage
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>,
Auto Trait Implementations§
impl Freeze for BusMessage
impl RefUnwindSafe for BusMessage
impl Send for BusMessage
impl Sync for BusMessage
impl Unpin for BusMessage
impl UnsafeUnpin for BusMessage
impl UnwindSafe for BusMessage
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request