ForcePilot/backend/package/yuxi/channel/extensions/slack/constants.py
Kris bfc7755137 feat(channel): 添加 Slack 渠道扩展
新增 Slack 渠道扩展,支持在 Yuxi 平台中集成 Slack 团队协作平台。

包含以下功能模块:
- config: 渠道配置管理
- gateway: SSE/WebSocket 网关接入
- outbound: 外发消息管理
- streaming: 流式消息处理
- pairing: 用户配对与绑定
- security: 安全校验
- monitor: 渠道状态监控
- status: 会话状态管理
- actions: 交互动作处理
- interactive: 交互式消息
- commands: 斜杠指令
- threading: 线程管理
- mentions: @提及
- constants: 常量定义
- types: 类型定义
2026-05-21 11:43:23 +08:00

95 lines
2.2 KiB
Python

SLACK_TEXT_LIMIT = 40000
SLACK_MEDIA_MAX_MB = 50
SLACK_STREAM_BUFFER_CHARS = 256
SLACK_PREVIEW_THROTTLE_MS = 1000
SLACK_PREVIEW_MAX_CHARS = 40000
SLACK_API_BASE = "https://slack.com/api"
SLACK_DEDUPE_TTL_SECONDS = 60
SLACK_DEDUPE_MAX_SIZE = 10000
SLACK_BOT_TOKEN_PREFIX = "xoxb-"
SLACK_APP_TOKEN_PREFIX = "xapp-"
SLACK_USER_TOKEN_PREFIX = "xoxp-"
SLACK_APP_TOKEN_PATTERN = r"^xapp-\d-[a-z0-9]+-"
SLACK_USER_ID_PATTERN = r"^U[A-Z0-9]{7,12}$"
SLACK_BOT_ID_PATTERN = r"^B[A-Z0-9]{7,12}$"
SLACK_CHANNEL_ID_PATTERN = r"^C[A-Z0-9]{7,12}$"
SLACK_PRIVATE_CHANNEL_ID_PATTERN = r"^G[A-Z0-9]{7,12}$"
SLACK_DM_ID_PATTERN = r"^D[A-Z0-9]{7,12}$"
SLACK_WORKSPACE_ID_PATTERN = r"^T[A-Z0-9]{7,12}$"
SLACK_MENTION_PATTERN = r"<@([A-Z0-9]+)>"
SLACK_REQUIRED_BOT_SCOPES = [
"chat:write",
"channels:history",
"groups:history",
"im:history",
"mpim:history",
"app_mentions:read",
"files:write",
"files:read",
"users:read",
]
SLACK_RECOMMENDED_BOT_SCOPES = [
"chat:write.customize",
"reactions:write",
"reactions:read",
"channels:read",
"groups:read",
"team:read",
]
SLACK_APP_TOKEN_SCOPE = "connections:write"
SLACK_BENIGN_FINALIZE_CODES = frozenset(
[
"user_not_found",
"team_not_found",
"missing_recipient_user_id",
]
)
SLACK_MESSAGE_SUBTYPES_SYSTEM = frozenset(
[
"channel_join",
"channel_leave",
"channel_topic",
"channel_purpose",
"channel_name",
"channel_archive",
"channel_unarchive",
"group_join",
"group_leave",
"group_topic",
"group_purpose",
"group_name",
"group_archive",
"group_unarchive",
]
)
SLACK_MAX_BUTTONS = 5
SLACK_MAX_SELECT_OPTIONS = 100
SLACK_RETRY_MAX_ATTEMPTS = 3
SLACK_RETRY_BASE_DELAY = 1.0
SLACK_RETRY_MAX_DELAY = 30.0
SLACK_NATIVE_COMMAND_HELP = "help"
SLACK_NATIVE_COMMAND_RESET = "reset"
SLACK_AGENT_PROMPT_RULES = [
"Use Slack mrkdwn, not standard Markdown.",
"Bold uses *single asterisks*.",
"Italic uses _underscores_.",
"Links use <url|label> format.",
"Code blocks use triple backticks without a language identifier.",
"Do not use markdown headings or pipe tables.",
]