Files
optimclaw/tools-src/telegram/telegram-tool.capabilities.json
T
afb49597ac feat(extensions): add OAuth setup UI for WASM tools + display name labels (#437)
Add setup.required_secrets to tool capabilities.json files so users can
configure OAuth client credentials (Google, Slack, Okta, Telegram) through
the Extensions UI Setup modal instead of environment variables.

- Add ToolSetupSchema/ToolSecretSetupSchema types to capabilities_schema.rs
- Extend get_setup_schema(), save_setup_secrets(), list() to handle WasmTool
- Extract load_tool_capabilities() helper to reduce duplication
- Auto-activate tools after saving setup secrets
- Show display_name labels (Channel/Tool/MCP) in extension cards
- Update button labels: "Setup" when unconfigured, "Reconfigure" when set
- Replace "Set" badge with checkmark in configure modal
- Fix innerHTML XSS pattern in slash autocomplete (use textContent)
- Add tests for ToolSetupSchema parsing and resolve_nested promotion
- Update registry display names (e.g. "Telegram Channel" vs "Telegram Tool")

Co-authored-by: Claude Sonnet 4.6 <[email protected]>
2026-02-28 19:57:55 -08:00

41 lines
1.2 KiB
JSON

{
"http": {
"allowlist": [
{
"host": "*.web.telegram.org",
"path_prefix": "/apiw",
"methods": ["POST"]
}
],
"rate_limit": {
"requests_per_minute": 30,
"requests_per_hour": 500
},
"timeout_secs": 60
},
"workspace": {
"allowed_prefixes": ["telegram/"]
},
"secrets": {
"allowed_names": ["telegram_api_id", "telegram_api_hash"]
},
"auth": {
"secret_name": "telegram_api_id",
"display_name": "Telegram",
"instructions": "1. Go to https://my.telegram.org/apps and create an app\n2. Store your API ID and hash in the workspace:\n - Write your numeric API ID to telegram/api_id\n - Write your API hash string to telegram/api_hash\n3. Use the 'login' action with your phone number\n4. Use 'submit_auth_code' with the code you receive\n5. Use 'submit_2fa_password' if you have 2FA enabled\n6. Save the returned session JSON to telegram/session.json",
"setup_url": "https://my.telegram.org/apps"
},
"setup": {
"required_secrets": [
{
"name": "telegram_api_id",
"prompt": "Telegram API ID (from my.telegram.org/apps)"
},
{
"name": "telegram_api_hash",
"prompt": "Telegram API Hash"
}
]
}
}