ForcePilot/backend/package/yuxi/channels/plugins/feishu/manifest.json
Kris 6c0d0c7bd8 feat(feishu): 完善飞书适配器的错误处理与功能适配
1.  为飞书登录、消息操作等适配器添加基础错误捕获转发
2.  新增未加密事件校验逻辑,完善会话解析文档
3.  关闭飞书原生输入指示支持,移除相关缓存逻辑
4.  新增飞书向导OAuth适配方法,修正OAuth方法命名
5.  更新插件配置项,添加bot菜单与用户访问令牌配置
6.  修正消息操作枚举匹配与文档描述
2026-07-09 04:18:24 +08:00

116 lines
6.9 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"id": "com.yuxi.channels.feishu",
"name": "飞书",
"version": "1.0.0",
"channel_type": "feishu",
"icon": "message-square",
"entry_module": "yuxi.channels.plugins.feishu.entry",
"provides": ["feishu"],
"lifecycle": ["init", "start", "stop", "pause", "resume", "unload", "reconfigure", "fail"],
"compatibility": {
"min_host_version": "1.0.0",
"feishu_api_version": "v2"
},
"failure_policy": "degrade",
"depends": [],
"critical": false,
"requires_dm_pairing": true,
"requires_outbound_delivery": true,
"credential_strategy": {
"type": "hybrid",
"acquire_method": "manual",
"required_fields": ["app_id", "app_secret"],
"optional_fields": ["user_access_token"],
"supports_rotation": false,
"supports_revocation": false
},
"max_message_length": 30720,
"supports_credential_cloning": false,
"transport_mode": "stream",
"capabilities": {
"rich_message": true,
"streaming": true,
"typing_indicator": false,
"message_edit": true,
"message_recall": true,
"supports_reaction": true,
"supports_pin": true,
"supports_card_update": true,
"supports_card_update_streaming": true,
"supports_image_inbound": true,
"supports_video_inbound": false,
"supports_image_outbound": true,
"supports_video_outbound": true,
"mention": true,
"command": true,
"directory": true,
"doctor": true,
"whitelist": true,
"wizard": true,
"tools": false,
"status": true,
"probeable": true,
"identity_resolver": true,
"lifecycle": true,
"supports_qr_login": true,
"agent_collaboration": false
},
"capability_requirements": [
["supports_image_inbound", ["app_id", "app_secret"]],
["supports_image_outbound", ["app_id", "app_secret"]],
["supports_video_outbound", ["app_id", "app_secret"]],
["rich_message", ["app_id", "app_secret"]],
["streaming", ["app_id", "app_secret"]],
["mention", ["app_id", "app_secret"]],
["directory", ["app_id", "app_secret"]],
["supports_qr_login", ["enable_qr_login", "qr_redirect_uri"]],
["lifecycle", []],
["probeable", []],
["status", []]
],
"resource_quota": {
"max_cpu": "20.0",
"max_memory": "256MB",
"max_connections": 50,
"max_calls_per_sec": 50
},
"accessible_ports": [
"ConfigPort",
"LoggerPort",
"PersistencePort",
"CachePort"
],
"injectable_pipelines": ["inbound", "outbound"],
"config_schema": [
{"key": "app_id", "type": "string", "required": true, "default": null, "hot_reloadable": false, "scope": "account", "constraints": {"pattern": "^cli_[a-zA-Z0-9]+$"}},
{"key": "app_secret", "type": "string", "required": true, "default": null, "hot_reloadable": false, "sensitive": true, "scope": "account", "constraints": {}},
{"key": "encrypt_key", "type": "string", "required": false, "default": null, "hot_reloadable": true, "sensitive": true, "scope": "account", "constraints": {}},
{"key": "verification_token", "type": "string", "required": false, "default": null, "hot_reloadable": true, "sensitive": true, "scope": "account", "constraints": {}},
{"key": "event_mode", "type": "enum", "required": true, "default": "websocket", "hot_reloadable": false, "scope": "channel", "constraints": {"values": ["websocket", "webhook"]}},
{"key": "webhook_url", "type": "string", "required": false, "default": null, "hot_reloadable": false, "scope": "channel", "constraints": {"pattern": "^https://"}},
{"key": "bot_name", "type": "string", "required": true, "default": null, "hot_reloadable": true, "scope": "channel", "constraints": {}},
{"key": "bot_open_id", "type": "string", "required": true, "default": null, "hot_reloadable": true, "scope": "account", "constraints": {"pattern": "^ou_[a-zA-Z0-9]+$"}},
{"key": "enable_qr_login", "type": "boolean", "required": false, "default": false, "hot_reloadable": true, "scope": "channel", "constraints": {}},
{"key": "qr_redirect_uri", "type": "string", "required": false, "default": null, "hot_reloadable": true, "scope": "channel", "constraints": {"pattern": "^https://"}},
{"key": "qr_timeout_ms", "type": "integer", "required": false, "default": 120000, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 30000, "max": 300000}},
{"key": "api_base_url", "type": "string", "required": false, "default": "https://open.feishu.cn", "hot_reloadable": true, "scope": "channel", "constraints": {}},
{"key": "ws_endpoint_path", "type": "string", "required": false, "default": "/open-apis/event/v1/get_ws_endpoint", "hot_reloadable": true, "scope": "channel", "constraints": {}, "description": "飞书 WS 端点 API 路径,与 api_base_url 组合获取长连接地址"},
{"key": "request_timeout_ms", "type": "integer", "required": false, "default": 30000, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 5000, "max": 60000}},
{"key": "max_retries", "type": "integer", "required": false, "default": 3, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 0, "max": 5}},
{"key": "rate_limit_per_sec", "type": "integer", "required": false, "default": 50, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 1, "max": 100}},
{"key": "user_cache_ttl_sec", "type": "integer", "required": false, "default": 1800, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 60, "max": 7200}},
{"key": "identity_cache_ttl_sec", "type": "integer", "required": false, "default": 60, "hot_reloadable": true, "scope": "channel", "constraints": {"min": 30, "max": 600}},
{"key": "bot_menu_commands", "type": "json", "required": false, "default": null, "hot_reloadable": true, "scope": "channel", "constraints": {}, "description": "飞书 Bot 菜单命令列表,每项为 {name, description, permission, is_silent}"},
{"key": "user_access_token", "type": "string", "required": false, "default": null, "hot_reloadable": false, "sensitive": true, "scope": "account", "constraints": {}, "description": "用户访问令牌OAuth 授权获取,用于用户身份操作)"}
],
"env_vars": [
{"name": "FEISHU_APP_ID", "description": "飞书应用 App ID", "required": true, "default": null, "sensitive": false},
{"name": "FEISHU_APP_SECRET", "description": "飞书应用 App Secret", "required": true, "default": null, "sensitive": true},
{"name": "FEISHU_ENCRYPT_KEY", "description": "事件加密密钥", "required": false, "default": null, "sensitive": true},
{"name": "FEISHU_VERIFICATION_TOKEN", "description": "Webhook 验证 Token", "required": false, "default": null, "sensitive": true},
{"name": "FEISHU_BOT_NAME", "description": "飞书机器人名称", "required": true, "default": null, "sensitive": false},
{"name": "FEISHU_QR_REDIRECT_URI", "description": "扫码登录回调 URI", "required": false, "default": null, "sensitive": false},
{"name": "FEISHU_QR_TIMEOUT_MS", "description": "扫码登录超时时间(毫秒)", "required": false, "default": "120000", "sensitive": false}
]
}