Class: ChannelRouter
Defined in: packages/agentos/src/channels/ChannelRouter.ts:88
Central routing hub for all external messaging channels.
Example
const router = new ChannelRouter();
// Register adapters
router.registerAdapter(telegramAdapter);
router.registerAdapter(discordAdapter);
// Add bindings
router.addBinding({
bindingId: 'b1',
seedId: 'cipher-001',
ownerUserId: 'user-1',
platform: 'telegram',
channelId: '123456789',
conversationType: 'direct',
isActive: true,
autoBroadcast: false,
});
// Handle inbound messages
router.onMessage(async (message, binding, session) => {
// Route to StimulusRouter or agent runtime
await stimulusRouter.ingestChannelMessage(message, binding.seedId);
});
// Send outbound message
await router.sendMessage('cipher-001', 'telegram', '123456789', {
blocks: [{ type: 'text', text: 'Hello from Cipher!' }],
});
Constructors
Constructor
new ChannelRouter():
ChannelRouter
Returns
ChannelRouter
Methods
addBinding()
addBinding(
binding):void
Defined in: packages/agentos/src/channels/ChannelRouter.ts:179
Add or update a channel binding.
Parameters
binding
Returns
void
broadcast()
broadcast(
seedId,content):Promise<ChannelSendResult[]>
Defined in: packages/agentos/src/channels/ChannelRouter.ts:254
Broadcast a message from an agent to all auto-broadcast bindings.
Parameters
seedId
string
content
Returns
Promise<ChannelSendResult[]>
getAdapter()
getAdapter(
platform):IChannelAdapter|undefined
Defined in: packages/agentos/src/channels/ChannelRouter.ts:151
Get a registered adapter by platform.
Parameters
platform
string
Returns
IChannelAdapter | undefined
getBindingsForConversation()
getBindingsForConversation(
platform,conversationId):ChannelBindingConfig[]
Defined in: packages/agentos/src/channels/ChannelRouter.ts:202
Get all bindings for a platform + conversation.
Parameters
platform
conversationId
string
Returns
getBindingsForSeed()
getBindingsForSeed(
seedId):ChannelBindingConfig[]
Defined in: packages/agentos/src/channels/ChannelRouter.ts:195
Get all bindings for a seed.
Parameters
seedId
string
Returns
getBroadcastBindings()
getBroadcastBindings(
seedId):ChannelBindingConfig[]
Defined in: packages/agentos/src/channels/ChannelRouter.ts:213
Get all auto-broadcast bindings for a seed (used when agent publishes a post).
Parameters
seedId
string
Returns
getOrCreateSession()
getOrCreateSession(
seedId,platform,conversationId):ChannelSession
Defined in: packages/agentos/src/channels/ChannelRouter.ts:297
Get or create a session for an agent + conversation.
Parameters
seedId
string
platform
conversationId
string
Returns
getSessionsForSeed()
getSessionsForSeed(
seedId):ChannelSession[]
Defined in: packages/agentos/src/channels/ChannelRouter.ts:325
Get active sessions for a seed.
Parameters
seedId
string
Returns
getStats()
getStats():
object
Defined in: packages/agentos/src/channels/ChannelRouter.ts:331
Returns
object
activeSessions
activeSessions:
number
adapters
adapters:
number
bindings
bindings:
number
totalSessions
totalSessions:
number
listAdapters()
listAdapters():
ChannelInfo[]
Defined in: packages/agentos/src/channels/ChannelRouter.ts:158
List all registered adapters with their info.
Returns
onMessage()
onMessage(
handler): () =>void
Defined in: packages/agentos/src/channels/ChannelRouter.ts:224
Register a handler for inbound messages. Returns unsubscribe function.
Parameters
handler
Returns
():
void
Returns
void
registerAdapter()
registerAdapter(
adapter,options?):void
Defined in: packages/agentos/src/channels/ChannelRouter.ts:112
Register a channel adapter. The router will subscribe to its events.
Parameters
adapter
options?
Returns
void
removeBinding()
removeBinding(
bindingId):void
Defined in: packages/agentos/src/channels/ChannelRouter.ts:187
Remove a channel binding.
Parameters
bindingId
string
Returns
void
sendMessage()
sendMessage(
seedId,platform,conversationId,content):Promise<ChannelSendResult>
Defined in: packages/agentos/src/channels/ChannelRouter.ts:232
Send a message from an agent to a specific conversation.
Parameters
seedId
string
platform
conversationId
string
content
Returns
Promise<ChannelSendResult>
sendTypingIndicator()
sendTypingIndicator(
platform,conversationId,isTyping):Promise<void>
Defined in: packages/agentos/src/channels/ChannelRouter.ts:281
Send a typing indicator for an agent on a channel.
Parameters
platform
conversationId
string
isTyping
boolean
Returns
Promise<void>
shutdown()
shutdown():
Promise<void>
Defined in: packages/agentos/src/channels/ChannelRouter.ts:352
Shut down all adapters and clear state.
Returns
Promise<void>
unregisterAdapter()
unregisterAdapter(
platformKey):Promise<void>
Defined in: packages/agentos/src/channels/ChannelRouter.ts:134
Unregister and shut down an adapter.
Parameters
platformKey
string
Returns
Promise<void>