ForcePilot/backend/package/yuxi/channel/extensions/line/plugin.json
Kris 7fd658af57 feat(channel): 添加 LINE 渠道扩展
新增 LINE 渠道扩展,支持在 Yuxi 平台中集成 LINE 即时通讯渠道。

包含以下功能模块:
- bot: LINE Bot 客户端封装
- config: 渠道配置管理
- gateway: SSE/WebSocket 网关接入
- webhook: Webhook 事件处理
- outbound: 外发消息管理
- streaming: 流式消息处理
- pairing: 用户配对与绑定
- security: 安全校验
- signature: 请求签名验证
- token_manager: Token 管理
- dedupe: 消息去重
- monitor: 渠道状态监控
- status: 会话状态管理
- session: 会话管理
- flex_templates: Flex 模板消息
- card_command: 卡片指令处理
- template_messages: 模板消息
- rich_menu: 富菜单管理
- actions: 动作处理
- directives: 指令处理
- delivery: 消息送达确认
- loading: 加载动画
- media: 媒体资源处理
- types: 类型定义
2026-05-21 11:16:16 +08:00

229 lines
6.8 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": "line",
"name": "LINE",
"version": "1.0.0",
"description": "LINE 渠道插件,支持 Messaging API 收发消息、Rich Menu、Flex Message、Quick Replies 等高级功能。",
"author": "Yuxi Team",
"license": "MIT",
"entry_point": "yuxi.channel.extensions.line",
"capabilities": {
"chat_types": ["direct", "group", "room"],
"message_types": ["text", "image", "video", "audio", "file", "location", "sticker", "template", "flex"],
"interactions": ["button", "quick_reply", "carousel", "image_carousel", "confirm"],
"reactions": false,
"typing_indicator": false,
"threads": false,
"edit": false,
"unsend": false,
"reply": true,
"media": true,
"native_commands": false,
"polls": false,
"group_management": false,
"streaming": true,
"streaming_mode": "block",
"block_streaming": true,
"block_streaming_chunk_min_chars": 800,
"block_streaming_chunk_max_chars": 1200,
"block_streaming_chunk_break_preference": "paragraph",
"block_streaming_coalesce_min_chars": 400,
"block_streaming_coalesce_max_chars": 800,
"block_streaming_coalesce_idle_ms": 500,
"tts": null
},
"config_schema": {
"type": "object",
"properties": {
"channel_access_token": {
"type": "string",
"title": "Channel Access Token",
"description": "LINE Channel Access Token长期或短期令牌",
"format": "password"
},
"channel_secret": {
"type": "string",
"title": "Channel Secret",
"description": "LINE Channel Secret用于验证 webhook 签名",
"format": "password"
},
"channel_id": {
"type": "string",
"title": "Channel ID",
"description": "LINE Channel ID"
},
"liff_id": {
"type": "string",
"title": "LIFF App ID",
"description": "LINE Front-end Framework App ID可选"
},
"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"
},
"allow_from": {
"type": "array",
"title": "Allow From",
"description": "允许访问的用户 ID 列表",
"items": {
"type": "string"
}
},
"group_allowlist": {
"type": "array",
"title": "Group Allowlist",
"description": "允许访问的群组/聊天室 ID 列表",
"items": {
"type": "string"
}
},
"auto_reply_enabled": {
"type": "boolean",
"title": "Auto Reply Enabled",
"description": "是否启用自动回复",
"default": true
},
"greeting_message": {
"type": "string",
"title": "Greeting Message",
"description": "用户添加好友时的欢迎消息",
"default": "Hello! Thanks for adding me as a friend. How can I help you today?"
},
"rich_menu_enabled": {
"type": "boolean",
"title": "Rich Menu Enabled",
"description": "是否启用 Rich Menu 功能",
"default": false
},
"rich_menu_config": {
"type": "object",
"title": "Rich Menu Config",
"description": "Rich Menu 配置对象"
},
"flex_message_enabled": {
"type": "boolean",
"title": "Flex Message Enabled",
"description": "是否启用 Flex Message 功能",
"default": true
},
"quick_reply_enabled": {
"type": "boolean",
"title": "Quick Reply Enabled",
"description": "是否启用 Quick Reply 功能",
"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": 2000,
"minimum": 100,
"maximum": 5000
},
"rate_limit_per_minute": {
"type": "integer",
"title": "Rate Limit Per Minute",
"description": "每分钟最大请求数",
"default": 1000,
"minimum": 100,
"maximum": 5000
},
"api_timeout_seconds": {
"type": "integer",
"title": "API Timeout Seconds",
"description": "API 请求超时时间(秒)",
"default": 30,
"minimum": 5,
"maximum": 120
},
"loading_animation_enabled": {
"type": "boolean",
"title": "Loading Animation Enabled",
"description": "是否启用加载动画",
"default": true
},
"emoji_conversion_enabled": {
"type": "boolean",
"title": "Emoji Conversion Enabled",
"description": "是否启用 Unicode Emoji 自动转换",
"default": true
}
},
"required": ["channel_access_token", "channel_secret"]
},
"webhook": {
"enabled": true,
"path": "/webhooks/line",
"methods": ["POST"],
"auth_type": "signature",
"signature_header": "X-Line-Signature",
"signature_algorithm": "HMAC-SHA256"
},
"dependencies": [],
"min_api_version": "1.0.0",
"documentation_url": "https://developers.line.biz/en/docs/messaging-api/",
"icon": "line",
"color": "#06C755",
"tags": ["line", "messaging-api", "japan", "asia", "mobile"],
"features": {
"rich_text": false,
"markdown_support": false,
"html_support": false,
"emoji_support": true,
"file_sharing": true,
"voice_messages": true,
"video_messages": true,
"location_sharing": true,
"contact_cards": true,
"message_search": false,
"threaded_replies": false,
"message_editing": false,
"message_deletion": true,
"typing_indicators": true,
"read_receipts": false,
"delivery_receipts": true,
"bot_commands": false,
"slash_commands": false,
"interactive_cards": true,
"buttons": true,
"quick_replies": true,
"menus": true,
"forms": false,
"polls": false,
"scheduling": false,
"reminders": false,
"notifications": true,
"mentions": true,
"hashtags": false,
"custom_status": false,
"presence_indicators": false,
"user_profiles": true,
"group_profiles": false,
"channel_directory": false,
"guest_access": false,
"single_sign_on": false,
"two_factor_auth": false,
"end_to_end_encryption": true,
"data_residency": true,
"gdpr_compliant": true,
"hipaa_compliant": false,
"soc2_compliant": true,
"iso27001_compliant": true
}
}