Skip to content

Commit 0434dd3

Browse files
committed
fix(docs): correct multi-channel cookbook imports + adapter API
The multi-channel cookbook example used three classes (DiscordAdapter / SlackAdapter / TelegramAdapter) imported from @framers/agentos-extensions subpaths that the package's exports field does not actually expose, and the class names did not match the real exports. Update to the canonical names (DiscordChannelAdapter etc.) re-exported from @framers/agentos/channels, and align the initialize() shape and ChannelRouter API (registerAdapter, sendMessage with cipherId, onMessage handler triple) with the runtime contract.
1 parent 8ff7a38 commit 0434dd3

1 file changed

Lines changed: 38 additions & 21 deletions

File tree

docs/getting-started/EXAMPLES.md

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -437,10 +437,12 @@ Agency connected to Discord + Slack + Telegram simultaneously.
437437

438438
```typescript
439439
import { agency } from '@framers/agentos';
440-
import { ChannelRouter } from '@framers/agentos/channels';
441-
import { DiscordAdapter } from '@framers/agentos-extensions/channels/discord';
442-
import { SlackAdapter } from '@framers/agentos-extensions/channels/slack';
443-
import { TelegramAdapter } from '@framers/agentos-extensions/channels/telegram';
440+
import {
441+
ChannelRouter,
442+
DiscordChannelAdapter,
443+
SlackChannelAdapter,
444+
TelegramChannelAdapter,
445+
} from '@framers/agentos/channels';
444446

445447
// 1. Create the agency
446448
const supportBot = agency({
@@ -461,31 +463,46 @@ const supportBot = agency({
461463
// 2. Connect to channels
462464
const router = new ChannelRouter();
463465

464-
const discord = new DiscordAdapter();
465-
const slack = new SlackAdapter();
466-
const telegram = new TelegramAdapter();
466+
const discord = new DiscordChannelAdapter();
467+
const slack = new SlackChannelAdapter();
468+
const telegram = new TelegramChannelAdapter();
467469

468-
await discord.initialize({ credential: process.env.DISCORD_BOT_TOKEN! });
469-
await slack.initialize({ credential: process.env.SLACK_BOT_TOKEN! });
470-
await telegram.initialize({ credential: process.env.TELEGRAM_BOT_TOKEN! });
470+
await discord.initialize({
471+
platform: 'discord',
472+
credential: process.env.DISCORD_BOT_TOKEN!,
473+
params: { botToken: process.env.DISCORD_BOT_TOKEN! },
474+
});
475+
await slack.initialize({
476+
platform: 'slack',
477+
credential: process.env.SLACK_BOT_TOKEN!,
478+
params: { botToken: process.env.SLACK_BOT_TOKEN! },
479+
});
480+
await telegram.initialize({
481+
platform: 'telegram',
482+
credential: process.env.TELEGRAM_BOT_TOKEN!,
483+
params: { botToken: process.env.TELEGRAM_BOT_TOKEN! },
484+
});
471485

472-
router.register(discord);
473-
router.register(slack);
474-
router.register(telegram);
486+
router.registerAdapter(discord);
487+
router.registerAdapter(slack);
488+
router.registerAdapter(telegram);
475489

476490
// 3. Handle messages from any platform
477-
router.onMessage(async (message, platform) => {
478-
// Each user gets their own conversation session
479-
const sessionId = `${platform}:${message.senderId}`;
491+
router.onMessage(async (message, binding, session) => {
492+
const platform = binding.platform;
493+
const sessionId = `${platform}:${session.remoteUser ?? message.sender ?? 'anon'}`;
480494

481-
const response = await supportBot.generate(message.text, {
495+
const response = await supportBot.generate(message.text ?? '', {
482496
sessionId,
483-
context: { platform, userId: message.senderId },
497+
context: { platform, userId: session.remoteUser },
484498
});
485499

486-
await router.send(platform, message.conversationId, {
487-
blocks: [{ type: 'text', text: response.text }],
488-
});
500+
await router.sendMessage(
501+
binding.cipherId,
502+
platform,
503+
message.conversationId,
504+
{ blocks: [{ type: 'text', text: response.text }] },
505+
);
489506
});
490507

491508
console.log('Support bot listening on Discord, Slack, and Telegram...');

0 commit comments

Comments
 (0)