Overview
Channels receive messages from external sources (CLI, HTTP, Signal, etc.) and convert them to a unified message format for the agent to process.Architecture
Channel Trait
All channels implement theChannel trait.
src/channels/channel.rs
name
start
respond
send_status
broadcast
health_check
conversation_context
shutdown
IncomingMessage
A message received from an external channel.src/channels/channel.rs
Uuid
required
Unique message ID
String
required
Channel this message came from
String
required
User identifier within the channel
Option<String>
Optional display name
String
required
Message content
Option<String>
Thread/conversation ID for threaded conversations
DateTime<Utc>
required
When the message was received
serde_json::Value
required
Channel-specific metadata
OutgoingResponse
Response to send back to a channel.src/channels/channel.rs
String
required
The content to send
Option<String>
Optional thread ID to reply in
Vec<String>
Optional file paths to attach
serde_json::Value
Channel-specific metadata for the response
StatusUpdate
Status update types for showing agent activity.src/channels/channel.rs
ChannelManager
Manages multiple input channels and merges their message streams.Constructor
src/channels/manager.rs
add
src/channels/manager.rs
hot_add
src/channels/manager.rs
start_all
src/channels/manager.rs
respond
src/channels/manager.rs
send_status
src/channels/manager.rs
broadcast
src/channels/manager.rs
broadcast_all
src/channels/manager.rs
inject_sender
src/channels/manager.rs
