Skip to main content

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

ChannelBindingConfig

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

MessageContent

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

ChannelPlatform

conversationId

string

Returns

ChannelBindingConfig[]


getBindingsForSeed()

getBindingsForSeed(seedId): ChannelBindingConfig[]

Defined in: packages/agentos/src/channels/ChannelRouter.ts:195

Get all bindings for a seed.

Parameters

seedId

string

Returns

ChannelBindingConfig[]


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

ChannelBindingConfig[]


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

ChannelPlatform

conversationId

string

Returns

ChannelSession


getSessionsForSeed()

getSessionsForSeed(seedId): ChannelSession[]

Defined in: packages/agentos/src/channels/ChannelRouter.ts:325

Get active sessions for a seed.

Parameters

seedId

string

Returns

ChannelSession[]


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

ChannelInfo[]


onMessage()

onMessage(handler): () => void

Defined in: packages/agentos/src/channels/ChannelRouter.ts:224

Register a handler for inbound messages. Returns unsubscribe function.

Parameters

handler

InboundMessageHandler

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

IChannelAdapter

options?

RegisterAdapterOptions

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

ChannelPlatform

conversationId

string

content

MessageContent

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

ChannelPlatform

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>