ForcePilot/backend/package/yuxi/channel/extensions/googlechat/plugin.json
Kris c4e301a5e0 feat(googlechat): 新增Google Chat渠道完整实现
新增Google Chat插件的所有核心功能模块,包括账户配置、消息收发、权限控制、媒体处理、会话管理等完整能力
2026-05-21 10:49:33 +08:00

183 lines
5.3 KiB
JSON

{
"id": "googlechat",
"name": "Google Chat",
"version": "1.0.0",
"description": "Google Chat 渠道插件,支持通过 Google Chat API 收发消息、卡片交互和线程对话。",
"author": "Yuxi Team",
"license": "MIT",
"entry_point": "yuxi.channel.extensions.googlechat",
"capabilities": {
"chat_types": ["direct", "group", "thread"],
"message_types": ["text", "image", "file", "video"],
"interactions": [],
"reactions": true,
"typing_indicator": true,
"threads": true,
"edit": true,
"unsend": true,
"reply": true,
"media": true,
"native_commands": false,
"polls": false,
"group_management": false,
"streaming": false,
"streaming_mode": null,
"block_streaming": true,
"block_streaming_chunk_min_chars": 4000,
"block_streaming_chunk_max_chars": 4000,
"block_streaming_coalesce_min_chars": 1500,
"block_streaming_coalesce_max_chars": 4000,
"adaptive_cards": true,
"sse_support": false
},
"config_schema": {
"type": "object",
"properties": {
"service_account_json": {
"type": "string",
"title": "Service Account JSON",
"description": "Google Cloud Service Account 凭证 JSON 字符串或文件路径",
"format": "textarea"
},
"space_allowlist": {
"type": "array",
"title": "Space Allowlist",
"description": "允许访问的 Google Chat Space ID 列表",
"items": {
"type": "string"
}
},
"dm_policy": {
"type": "string",
"title": "DM Policy",
"description": "私信访问控制策略",
"enum": ["open", "pairing", "closed"],
"default": "pairing"
},
"group_policy": {
"type": "string",
"title": "Group Policy",
"description": "群组访问控制策略",
"enum": ["open", "allowlist", "closed"],
"default": "allowlist"
},
"webhook_secret": {
"type": "string",
"title": "Webhook Secret",
"description": "Google Chat webhook 验证密钥",
"format": "password"
},
"bot_name": {
"type": "string",
"title": "Bot Name",
"description": "机器人在 Google Chat 中显示的名称",
"default": "Yuxi Bot"
},
"avatar_url": {
"type": "string",
"title": "Avatar URL",
"description": "机器人头像 URL",
"format": "uri"
},
"auto_join_spaces": {
"type": "boolean",
"title": "Auto Join Spaces",
"description": "是否自动加入邀请的 Space",
"default": true
},
"card_response_enabled": {
"type": "boolean",
"title": "Card Response Enabled",
"description": "是否启用卡片消息响应",
"default": true
},
"threading_enabled": {
"type": "boolean",
"title": "Threading Enabled",
"description": "是否启用线程对话支持",
"default": true
},
"mention_required_in_groups": {
"type": "boolean",
"title": "Mention Required in Groups",
"description": "群组中是否需要 @提及 机器人才响应",
"default": true
},
"max_message_length": {
"type": "integer",
"title": "Max Message Length",
"description": "单条消息最大字符数",
"default": 4096,
"minimum": 100,
"maximum": 4096
},
"rate_limit_per_minute": {
"type": "integer",
"title": "Rate Limit Per Minute",
"description": "每分钟最大请求数",
"default": 60,
"minimum": 10,
"maximum": 300
}
},
"required": ["service_account_json"]
},
"webhook": {
"enabled": true,
"path": "/webhooks/googlechat",
"methods": ["POST"],
"auth_type": "hmac",
"secret_header": "X-Goog-Signature"
},
"dependencies": ["httpx", "google-auth"],
"min_api_version": "1.0.0",
"documentation_url": "https://developers.google.com/chat",
"icon": "googlechat",
"color": "#00832d",
"tags": ["google", "chat", "workspace", "enterprise"],
"features": {
"rich_text": false,
"markdown_support": true,
"html_support": true,
"emoji_support": true,
"file_sharing": true,
"voice_messages": false,
"video_messages": false,
"location_sharing": false,
"contact_cards": false,
"message_search": true,
"threaded_replies": true,
"message_editing": true,
"message_deletion": true,
"typing_indicators": true,
"read_receipts": false,
"delivery_receipts": true,
"bot_commands": true,
"slash_commands": true,
"interactive_cards": true,
"buttons": true,
"quick_replies": false,
"menus": false,
"forms": true,
"polls": false,
"scheduling": false,
"reminders": false,
"notifications": true,
"mentions": true,
"hashtags": false,
"custom_status": false,
"presence_indicators": false,
"user_profiles": true,
"group_profiles": true,
"channel_directory": false,
"guest_access": true,
"single_sign_on": true,
"two_factor_auth": true,
"end_to_end_encryption": false,
"data_residency": true,
"gdpr_compliant": true,
"hipaa_compliant": false,
"soc2_compliant": true,
"iso27001_compliant": true
}
}