Interface: IChannelAdapter
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:56
Core adapter interface for external messaging channels.
Implementors wrap a platform SDK (e.g., grammY for Telegram, discord.js for Discord) and normalize all interactions to this common contract.
Example
class TelegramAdapter implements IChannelAdapter {
readonly platform = 'telegram';
readonly displayName = 'Telegram';
readonly capabilities = ['text', 'images', 'inline_keyboard', 'typing_indicator'];
async initialize(auth: ChannelAuthConfig): Promise<void> {
this.bot = new Bot(auth.credential);
await this.bot.start();
}
async sendMessage(conversationId, content): Promise<ChannelSendResult> {
const textBlock = content.blocks.find(b => b.type === 'text');
const msg = await this.bot.api.sendMessage(conversationId, textBlock.text);
return { messageId: String(msg.message_id) };
}
// ...
}
Properties
capabilities
readonlycapabilities: readonlyChannelCapability[]
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:66
Declared capabilities of this adapter.
displayName
readonlydisplayName:string
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:63
Human-readable display name (e.g., "WhatsApp Business").
platform
readonlyplatform:ChannelPlatform
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:60
Platform this adapter serves.
Methods
addReaction()?
optionaladdReaction(conversationId,messageId,emoji):Promise<void>
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:135
Add a reaction to a message. Only available if adapter declares
the 'reactions' capability.
Parameters
conversationId
string
messageId
string
emoji
string
Returns
Promise<void>
deleteMessage()?
optionaldeleteMessage(conversationId,messageId):Promise<void>
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:129
Delete a previously sent message. Only available if adapter declares
the 'deletion' capability.
Parameters
conversationId
string
messageId
string
Returns
Promise<void>
editMessage()?
optionaleditMessage(conversationId,messageId,content):Promise<void>
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:123
Edit a previously sent message. Only available if adapter declares
the 'editing' capability.
Parameters
conversationId
string
messageId
string
content
Returns
Promise<void>
getConnectionInfo()
getConnectionInfo():
ChannelConnectionInfo
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:86
Get the current connection status and metadata.
Returns
getConversationInfo()?
optionalgetConversationInfo(conversationId):Promise<{isGroup:boolean;memberCount?:number;metadata?:Record<string,unknown>;name?:string; }>
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:140
Get conversation metadata (name, members, etc.). Useful for group chats.
Parameters
conversationId
string
Returns
Promise<{ isGroup: boolean; memberCount?: number; metadata?: Record<string, unknown>; name?: string; }>
initialize()
initialize(
auth):Promise<void>
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:75
Initialize the adapter with authentication credentials. Called once when the extension is activated. Must be idempotent — calling initialize on an already-initialized adapter should reconnect.
Parameters
auth
Returns
Promise<void>
on()
on(
handler,eventTypes?): () =>void
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:115
Register a handler for channel events. Multiple handlers can be
registered. Use eventTypes to filter which events to receive.
Parameters
handler
Callback invoked when an event occurs.
eventTypes?
Optional filter. If omitted, handler receives all events.
Returns
Unsubscribe function.
():
void
Returns
void
sendMessage()
sendMessage(
conversationId,content):Promise<ChannelSendResult>
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:97
Send a message to a conversation on the external platform.
Parameters
conversationId
string
Platform-native conversation/chat ID.
content
Message content to send.
Returns
Promise<ChannelSendResult>
The platform-assigned message ID.
sendTypingIndicator()
sendTypingIndicator(
conversationId,isTyping):Promise<void>
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:103
Send a typing indicator to a conversation. Not all platforms support
this — check capabilities for 'typing_indicator'.
Parameters
conversationId
string
isTyping
boolean
Returns
Promise<void>
shutdown()
shutdown():
Promise<void>
Defined in: packages/agentos/src/channels/IChannelAdapter.ts:81
Gracefully shut down the adapter, closing connections and releasing resources. Called during extension deactivation or application shutdown.
Returns
Promise<void>