fix(providers): remove ~anthropic, skip ~ prefixes in sync script (#69)
* fix(providers): remove ~anthropic, skip ~ prefixes in sync script
OpenRouter uses ~ prefixes for internal auto-routing aliases (e.g. ~anthropic).
These are not real providers — they already route through openrouter.toml.
The generated ~anthropic.toml was confusing (looked like a stale backup)
and redundant with the existing openrouter provider.
- Delete providers/~anthropic.toml
- Skip provider IDs starting with ~ in sync-pricing.py --create-missing
* fix(providers): remove morph, aider, kwaipilot
- morph: specialized code-editing/patching tool, not a general LLM provider
- aider: CLI meta-tool wrapper (base_url empty), redundant with claude-code/codex-cli/gemini-cli/qwen-code
- kwaipilot: Kwai internal coding assistant routed via OpenRouter, niche
* fix(sync): add morph/aider/kwaipilot to SKIP_PROVIDERS to prevent re-creation
* feat(sync): merge OpenRouter-only providers into openrouter.toml
Instead of generating standalone .toml files that just wrap the OpenRouter
endpoint, merge their models directly into openrouter.toml with the
standard 'openrouter/{provider}/{model}' ID convention.
- Add _build_model_fields() and _model_lines() helpers to deduplicate
model rendering between standalone and merged paths
- Add merge_into_openrouter() that appends new models idempotently
- generate_provider_toml() now only runs for providers in PROVIDER_API
- --create-missing routes OpenRouter-only providers to merge_into_openrouter
* fix(providers): remove 14 OpenRouter-only standalone files
These providers have no direct public API and all route through
openrouter.ai/api/v1. Per the new sync-pricing.py policy, their models
will be merged into openrouter.toml on the next CI run instead of
living in separate files that just wrap the OpenRouter endpoint.
Removed: allenai, deepcogito, essentialai, inclusionai, inflection,
liquid, meituan, nex-agi, nousresearch, prime-intellect, relace,
switchpoint, tngtech, writer
* fix(providers): remove 7 niche providers with no driver support
No dedicated LLM driver code exists for these providers — they rely
purely on OpenAI-compatible passthrough with no special handling.
Removing them reduces registry noise; users can still reach them via
openrouter.toml if needed.
Removed: microsoft, ibm-granite, xiaomi, upstage, inception, aion-labs, arcee-ai
* fix(providers): remove ai21, chutes, venice
All three use ApiFormat::OpenAI with no special handling — pure passthrough.
No registry entry needed; users can reach them via openrouter.toml or by
adding a custom provider.
* docs(providers): rewrite README with full provider catalog and inclusion criteria
- List all 46 providers grouped by category with descriptions
- Document why each provider exists (direct API, unique endpoint, dedicated driver, local, CLI)
- Add inclusion criteria section explaining when to create standalone files vs merging into openrouter.toml
- Document sync script routing logic
- Update model counts: 49→46 providers, 339→232 models
* docs: add comprehensive READMEs for all registry sections + deepinfra provider
- agents/README.md: 32 agents across 7 categories with capability field reference
- channels/README.md: 44 channels across 5 categories with protocol reference table
- hands/README.md: 18 hands across 5 categories with HAND.toml format guide
- mcp/README.md: 33 MCP servers across 5 categories with transport/auth format
- plugins/README.md: 12 plugins with hook protocol documentation
- skills/README.md: 60 skills across 9 categories with SKILL.md format guide
- providers/deepinfra.toml: add DeepInfra serverless inference (5 models)
This commit is contained in:
38 files changed
+1146
-1215
No files matched your search
+142
-3
@@ -1,7 +1,146 @@
|
||||
# Channel Adapters Registry
|
||||
|
||||
This directory contains TOML metadata files for all supported LibreFang channel adapters.
|
||||
Channel adapters connect LibreFang agents to external messaging platforms. Each adapter in this directory is a flat `.toml` file describing the platform, its communication protocol, and any credentials required to operate.
|
||||
|
||||
Each `.toml` file describes a single channel adapter including its name, description, category, protocol, and relevant links. These files are used by the LibreFang registry to discover and display available channel integrations.
|
||||
Once a channel is configured, agents can receive messages from and send messages to that platform without any code changes — the adapter handles protocol translation.
|
||||
|
||||
See `../templates/channel.toml` for the file format template.
|
||||
## File Format
|
||||
|
||||
Each channel is a single `.toml` file. The filename (without `.toml`) must match the `id` field.
|
||||
|
||||
```toml
|
||||
id = "telegram"
|
||||
name = "Telegram"
|
||||
description = "Telegram Bot API adapter for sending and receiving messages"
|
||||
category = "messaging" # messaging | enterprise | social | developer | iot
|
||||
tags = ["popular"]
|
||||
icon = "lucide:smartphone"
|
||||
protocol = "bot-api" # see Protocol Reference below
|
||||
|
||||
[i18n.zh]
|
||||
name = "Telegram"
|
||||
description = "Telegram Bot API 适配器,收发消息"
|
||||
|
||||
[metadata]
|
||||
url = "https://telegram.org"
|
||||
docs = "https://core.telegram.org/bots/api"
|
||||
```
|
||||
|
||||
## Protocol Reference
|
||||
|
||||
| Protocol | Description |
|
||||
|----------|-------------|
|
||||
| `bot-api` | Platform-specific bot HTTP API (e.g. Telegram Bot API) |
|
||||
| `websocket` | Long-lived WebSocket connection (e.g. Slack RTM, Discord Gateway) |
|
||||
| `webhook` | Agent receives POST requests from the platform |
|
||||
| `rest-api` | Polling or push via generic HTTP REST |
|
||||
| `imap` | Email protocols (IMAP for receive, SMTP for send) |
|
||||
| `irc` | Internet Relay Chat protocol |
|
||||
| `matrix` | Matrix client-server API |
|
||||
| `mqtt` | MQTT pub/sub protocol for IoT messaging |
|
||||
| `xmpp` | Extensible Messaging and Presence Protocol |
|
||||
|
||||
## Configuring a Channel
|
||||
|
||||
```bash
|
||||
# List all available channel adapters
|
||||
librefang catalog channels
|
||||
|
||||
# Install a channel adapter
|
||||
librefang channel install telegram
|
||||
|
||||
# Configure credentials for a channel
|
||||
librefang channel configure telegram
|
||||
|
||||
# Attach a channel to an agent
|
||||
librefang channel attach telegram --agent assistant
|
||||
|
||||
# List configured channels
|
||||
librefang channel list
|
||||
|
||||
# Remove a channel
|
||||
librefang channel remove telegram
|
||||
```
|
||||
|
||||
## All Channel Adapters (45 total)
|
||||
|
||||
### Messaging
|
||||
|
||||
| ID | Name | Protocol | Description |
|
||||
|----|------|----------|-------------|
|
||||
| discord | Discord | websocket | Discord bot adapter for sending and receiving messages in Discord servers and channels |
|
||||
| email | Email | imap | Email adapter for sending and receiving messages via SMTP and IMAP protocols |
|
||||
| irc | IRC | irc | IRC adapter for connecting to Internet Relay Chat networks and channels |
|
||||
| keybase | Keybase | rest-api | Keybase adapter for encrypted messaging via the Keybase chat API |
|
||||
| line | LINE | webhook | LINE Messaging API adapter for sending and receiving messages on the LINE platform |
|
||||
| matrix | Matrix | matrix | Matrix adapter for decentralized messaging via the Matrix client-server API |
|
||||
| messenger | Facebook Messenger | webhook | Facebook Messenger adapter for sending and receiving messages via the Messenger Platform |
|
||||
| nostr | Nostr | websocket | Nostr adapter for publishing and reading events on the Nostr decentralized protocol |
|
||||
| qq | QQ | websocket | QQ bot adapter for messaging within Tencent QQ groups and channels |
|
||||
| signal | Signal | rest-api | Signal adapter for secure end-to-end encrypted messaging via Signal CLI |
|
||||
| telegram | Telegram | bot-api | Telegram Bot API adapter for sending and receiving messages |
|
||||
| threema | Threema | rest-api | Threema Gateway adapter for secure messaging via the Threema platform |
|
||||
| viber | Viber | webhook | Viber bot adapter for sending and receiving messages via the Viber Bot API |
|
||||
| wechat | WeChat | rest-api | WeChat Official Account adapter for messaging on the WeChat platform |
|
||||
| whatsapp | WhatsApp | rest-api | WhatsApp Business API adapter for sending and receiving messages on WhatsApp |
|
||||
| xmpp | XMPP | xmpp | XMPP adapter for messaging via the Extensible Messaging and Presence Protocol |
|
||||
|
||||
### Enterprise
|
||||
|
||||
| ID | Name | Protocol | Description |
|
||||
|----|------|----------|-------------|
|
||||
| dingtalk | DingTalk | webhook | DingTalk bot adapter for sending messages to DingTalk groups and conversations |
|
||||
| feishu | Feishu (Lark) | webhook | Feishu (Lark) bot adapter for messaging within the Feishu collaboration platform |
|
||||
| flock | Flock | webhook | Flock bot adapter for team messaging and notifications in Flock workspaces |
|
||||
| google_chat | Google Chat | webhook | Google Chat adapter for sending messages and cards to Google Workspace conversations |
|
||||
| guilded | Guilded | websocket | Guilded bot adapter for messaging in Guilded servers and channels |
|
||||
| mattermost | Mattermost | websocket | Mattermost adapter for team messaging and notifications in Mattermost workspaces |
|
||||
| pumble | Pumble | webhook | Pumble adapter for team messaging and notifications in Pumble workspaces |
|
||||
| rocketchat | Rocket.Chat | rest-api | Rocket.Chat adapter for messaging in self-hosted Rocket.Chat instances |
|
||||
| slack | Slack | websocket | Slack bot adapter for sending and receiving messages in Slack workspaces |
|
||||
| teams | Microsoft Teams | webhook | Microsoft Teams adapter for messaging and notifications in Teams channels |
|
||||
| twist | Twist | rest-api | Twist adapter for async team communication in Twist workspaces |
|
||||
| webex | Cisco Webex | webhook | Cisco Webex adapter for messaging and notifications in Webex spaces |
|
||||
| wecom | WeCom (WeChat Work) | webhook | WeCom (WeChat Work) adapter for enterprise messaging within WeCom organizations |
|
||||
| zulip | Zulip | rest-api | Zulip adapter for topic-based team messaging in Zulip organizations |
|
||||
|
||||
### Social
|
||||
|
||||
| ID | Name | Protocol | Description |
|
||||
|----|------|----------|-------------|
|
||||
| bluesky | Bluesky | rest-api | Bluesky AT Protocol adapter for posting and reading from the decentralized social network |
|
||||
| linkedin | LinkedIn | rest-api | LinkedIn adapter for posting updates and messages via the LinkedIn API |
|
||||
| mastodon | Mastodon | rest-api | Mastodon adapter for posting toots and reading timelines on Mastodon instances |
|
||||
| reddit | Reddit | rest-api | Reddit adapter for posting and reading content via the Reddit API |
|
||||
| twitch | Twitch | irc | Twitch adapter for reading and sending messages in Twitch stream chats |
|
||||
|
||||
### Developer
|
||||
|
||||
| ID | Name | Protocol | Description |
|
||||
|----|------|----------|-------------|
|
||||
| discourse | Discourse | rest-api | Discourse forum adapter for posting topics and replies via the Discourse API |
|
||||
| gitter | Gitter | rest-api | Gitter adapter for developer chat rooms linked to GitHub repositories |
|
||||
| revolt | Revolt | websocket | Revolt adapter for messaging in the open-source Revolt chat platform |
|
||||
| webhook | Webhook | webhook | Generic webhook adapter for sending and receiving messages via HTTP callbacks |
|
||||
|
||||
### IoT / Self-Hosted
|
||||
|
||||
| ID | Name | Protocol | Description |
|
||||
|----|------|----------|-------------|
|
||||
| gotify | Gotify | rest-api | Gotify adapter for sending push notifications to a self-hosted Gotify server |
|
||||
| mqtt | MQTT | mqtt | MQTT adapter for publishing and subscribing to messages on MQTT brokers |
|
||||
| mumble | Mumble | websocket | Mumble adapter for text messaging in Mumble voice communication servers |
|
||||
| nextcloud | Nextcloud Talk | rest-api | Nextcloud Talk adapter for messaging within self-hosted Nextcloud instances |
|
||||
| ntfy | ntfy | rest-api | ntfy adapter for sending push notifications via the ntfy pub-sub service |
|
||||
|
||||
## Adding a New Channel Adapter
|
||||
|
||||
1. Create `channels/<name>.toml` — the filename must match the `id` field.
|
||||
2. Set `category` to one of: `messaging`, `enterprise`, `social`, `developer`, `iot`.
|
||||
3. Set `protocol` to the appropriate value from the Protocol Reference table above.
|
||||
4. Add `[metadata]` with `url` and `docs` links.
|
||||
5. Add `[i18n.*]` blocks for supported locales.
|
||||
6. Run `python scripts/validate.py`.
|
||||
7. Submit a PR.
|
||||
|
||||
See [CONTRIBUTING.md](../CONTRIBUTING.md) for the full guide.
|
||||
Reference in new issue
Block a user