Skip to content

Channel Adapters

Channel Adapters. Cette page décrit un composant d’architecture Commander. Le texte ci-dessous reprend la structure du monorepo en français opérationnel ; les blocs de code restent en anglais.

Métriques produit : 25 fournisseurs · 5 topologies · 18 tools · 6700+ tests.

CLI monorepo : npx tsx packages/core/src/cliEntry.ts · après build : commander

Référence

AdapterStatusFeatures
Terminal✅ Built-inFull interaction, streaming, plan mode
HTTP (REST)✅ Built-inExecute, plan, watch endpoints
SSE✅ Built-inReal-time event streaming
Telegram✅ Built-inAsync agent interaction via chat
Discord🔲 PlannedServer/channel-based interaction
Slack🔲 PlannedWorkspace integration
WebSocket🔲 PlannedBidirectional real-time communication

Contenu principal

Architecture

En pratique, Architecture s’intègre au runtime avec les portes de qualité, le DLQ et les circuit breakers. Consultez le monorepo pour le code source et la référence anglaise pour le détail exhaustif.

Telegram Adapter

En pratique, Telegram Adapter s’intègre au runtime avec les portes de qualité, le DLQ et les circuit breakers. Consultez le monorepo pour le code source et la référence anglaise pour le détail exhaustif.

Creating Custom Adapters

En pratique, Creating Custom Adapters s’intègre au runtime avec les portes de qualité, le DLQ et les circuit breakers. Consultez le monorepo pour le code source et la référence anglaise pour le détail exhaustif.

Built-in Adapters

En pratique, Built-in Adapters s’intègre au runtime avec les portes de qualité, le DLQ et les circuit breakers. Consultez le monorepo pour le code source et la référence anglaise pour le détail exhaustif.

Exemples (code inchangé)

typescript
interface ChannelAdapter {
  readonly name: string;
  send(message: OutboundMessage): Promise<void>;
  onMessage(handler: (msg: InboundMessage) => void): void;
  connect(): Promise<void>;
  disconnect(): Promise<void>;
}
typescript
import { TelegramAdapter } from '@commander/core';

const adapter = new TelegramAdapter({
  botToken: process.env.TELEGRAM_BOT_TOKEN,
  allowedChatIds: ['chat-1', 'chat-2'],
});

adapter.onMessage(async (msg) => {
  const result = await runtime.execute(msg.text);
  await adapter.send({
    chatId: msg.chatId,
    text: result.summary,
  });
});

await adapter.connect();
typescript
import { ChannelAdapter, InboundMessage, OutboundMessage } from '@commander/core';

class DiscordAdapter implements ChannelAdapter {
  readonly name = 'discord';

  async connect(): Promise<void> {
    // Initialize Discord client
  }

  async send(message: OutboundMessage): Promise<void> {
    // Send message to Discord channel
  }

  onMessage(handler: (msg: InboundMessage) => void): void {
    // Register Discord message handler
  }

  async disconnect(): Promise<void> {
    // Cleanup
  }
}

runtime.registerChannelAdapter('discord', new DiscordAdapter());

Opérations

bash
npx tsx packages/core/src/cliEntry.ts doctor
npx tsx packages/core/src/cliEntry.ts status
curl -s http://localhost:4000/health/detailed || true

Voir aussi

MIT — Conçu pour l’orchestration multi-agents.