Expand description
Channel implementations for the Zeph agent.
This crate provides the concrete Channel implementations used by the
Zeph agent loop. Every implementation wraps a transport-specific I/O
mechanism and exposes a uniform async interface that the agent core uses
without knowing the underlying delivery medium.
§Available channels
| Type | Feature | Transport |
|---|---|---|
CliChannel | always | stdin / stdout |
telegram::TelegramChannel | always | Telegram Bot API via teloxide |
DiscordChannel | discord | Discord gateway |
SlackChannel | slack | Slack Events API |
§Runtime dispatch
AnyChannel is an enum that implements Channel by delegating to the
active variant. The binary selects the variant at startup and passes
AnyChannel throughout; the agent core never needs to be generic over the
channel type.
§Shared timeouts
CONFIRM_TIMEOUT and ELICITATION_TIMEOUT define the deny-on-timeout
durations that all remote channel adapters must honour for interactive
dialogs. They are intentionally centralised here so that the behaviour is
consistent across Telegram, Discord, and Slack.
§Shared authorization
The auth module centralizes the fail-closed allowlist policy: every
remote adapter refuses to start when unconfigured (see
auth::require_configured_allowlist) rather than silently accepting
messages from any sender.
Re-exports§
pub use cli::CliChannel;pub use json_cli::JsonCliChannel;
Modules§
- auth
- Shared allowlist authorization primitives used by every channel adapter that gates access by sender identity (Telegram, Discord, Slack).
- cli
- CLI channel: stdin input and stdout output for interactive sessions.
- confirm
- Shared deny-on-timeout confirmation loop used by all channel adapters that
support interactive
yes/noprompts (Telegram, Discord, Slack). - json_
cli - JSON CLI channel: emits JSONL events to stdout, reads prompts from stdin.
- markdown
- Markdown-to-Telegram conversion and UTF-8-safe message chunking.
- streaming
- Shared streaming buffer and helpers used by all channel adapters that support edit-in-place streaming (Telegram, Discord, Slack).
- telegram
- Telegram channel adapter built on teloxide.
- telegram_
api_ ext - Raw HTTP client for Telegram Bot API 10.0 methods not yet exposed by teloxide.
- telegram_
moderation ReactionModerationBackendimplementation backed byTelegramApiClient.- terminal_
title - Terminal title management for CLI sessions (#3904).
Enums§
- AnyChannel
- Enum dispatch for runtime channel selection.
Constants§
- CONFIRM_
TIMEOUT - Shared timeout for interactive confirmation dialogs across all remote channels.
- ELICITATION_
TIMEOUT - Per-field timeout for interactive elicitation dialogs on remote channels.