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

Methods

  • Unregister and shut down an adapter.

    Parameters

    • platformKey: string

    Returns Promise<void>

  • Send a typing indicator for an agent on a channel.

    Parameters

    Returns Promise<void>

  • Returns {
        adapters: number;
        bindings: number;
        activeSessions: number;
        totalSessions: number;
    }

    • adapters: number
    • bindings: number
    • activeSessions: number
    • totalSessions: number