refactor(api): 使用常量替代硬编码字符串 - 在health_check接口中使用ApiResponseKey.STATUS和ApiStatus.OK常量 - 替换硬编码的状态返回值为枚举常量 refactor(core): 配置模块错误信息统一使用常量 - 从constants模块导入ConfigErrorDetail并替换CORS_ORIGINS和LEGACY_ALLOWED_QUERIES的验证错误信息 - 配置类中的默认值使用constants中定义的常量 feat(constants): 添加API响应、安全错误和配置错误常量类 - 新增ApiResponseKey用于API状态键名 - 新增ApiStatus用于API状态值 - 新增SecurityErrorDetail用于安全认证错误详情 - 新增ConfigErrorDetail用于配置验证错误详情 - 添加DEFAULT_MODEL_PROVIDER和DEFAULT_OPENCLAW_ACTION_JSON常量 refactor(security): 安全认证模块使用错误常量 - 将硬编码的安全错误信息替换为SecurityErrorDetail常量 - 包括API密钥、审批密钥和审计密钥的相关错误信息 refactor(ai-agent): AI代理适配器改进错误处理 - 将HTTP状态码替换为FastAPI状态常量 - 添加OpenClaw工具和操作的错误常量 - 修复健康检查和工具调用中的状态码比较逻辑 - 添加AIToolAuditKey用于工具审计键名 feat(ai-agent): 扩展AI代理常量定义 - 新增AIToolAuditKey用于工具审计字段 - 添加OpenClaw相关的错误常量如OPENCLAW_CHAT_PROVIDER_REQUIRED等 - 添加UNSUPPORTED_AI_SKILL_TEMPLATE模板字符串 refactor(approvals): 审批模块常量化重构 - 新增ApprovalPayloadKey用于审批载荷字段 - 添加approval_action函数和APPROVAL_ACTION_SEPARATOR分隔符 - 使用常量替换字面量值 feat(audit): 审计模块新增飞书事件动作类型 - 添加FEISHU_WEBHOOK_EVENT和FEISHU_LONG_CONNECTION_EVENT审计动作 refactor(business): 业务模块全面常量化 - 新增BusinessDomain枚举包含所有业务域 - 添加BusinessResponseKey、BusinessPayloadKey等常量类 - 重构DOMAIN_MODELS为frozenset以提高性能 - 添加normalize_domain等辅助函数用于域标准化 - 使用常量替换路由和业务服务中的硬编码字符串 - 添加业务错误常量和字段验证模板 refactor(feishu): 飞书客户端错误处理优化 - 将HTTP状态码替换为FastAPI标准状态常量 - 改进错误处理的一致性 refactor(approvals): 审批服务使用新常量结构 - 使用ApprovalPayloadKey常量重构载荷字段 - 使用approval_action函数统一动作命名格式 - 优化高风险域判断逻辑 ```
113 lines
2.7 KiB
Python
113 lines
2.7 KiB
Python
from enum import StrEnum
|
|
|
|
|
|
class FeishuReceiveIdType(StrEnum):
|
|
CHAT_ID = "chat_id"
|
|
|
|
|
|
class FeishuMessageType(StrEnum):
|
|
TEXT = "text"
|
|
INTERACTIVE = "interactive"
|
|
|
|
|
|
class FeishuEventSource(StrEnum):
|
|
WEBHOOK = "webhook"
|
|
LONG_CONNECTION = "long_connection"
|
|
|
|
|
|
class FeishuPayloadKey(StrEnum):
|
|
APP_ID = "app_id"
|
|
APP_SECRET = "app_secret"
|
|
CARD = "card"
|
|
CHALLENGE = "challenge"
|
|
CODE = "code"
|
|
CONFIG = "config"
|
|
CONTENT = "content"
|
|
DIV = "div"
|
|
ELEMENTS = "elements"
|
|
EXPIRE = "expire"
|
|
FEISHU_ERROR = "feishu_error"
|
|
HEADER = "header"
|
|
EVENT = "event"
|
|
EVENT_ID = "event_id"
|
|
EVENT_TYPE = "event_type"
|
|
LARK_MARKDOWN = "lark_md"
|
|
MESSAGE = "message"
|
|
MESSAGE_ID = "message_id"
|
|
MESSAGE_TYPE = "msg_type"
|
|
OPEN_ID = "open_id"
|
|
PLAIN_TEXT = "plain_text"
|
|
RECEIVE_ID = "receive_id"
|
|
RECEIVE_ID_TYPE = "receive_id_type"
|
|
SENDER = "sender"
|
|
SENDER_ID = "sender_id"
|
|
TAG = "tag"
|
|
TENANT_ACCESS_TOKEN = "tenant_access_token"
|
|
TEXT = "text"
|
|
TITLE = "title"
|
|
TOKEN = "token"
|
|
USER_ID = "user_id"
|
|
WIDE_SCREEN_MODE = "wide_screen_mode"
|
|
|
|
|
|
class FeishuCommandKey(StrEnum):
|
|
TEXT = "text"
|
|
CHAT_ID = "chat_id"
|
|
ACTOR = "actor"
|
|
|
|
|
|
class FeishuResponseKey(StrEnum):
|
|
OK = "ok"
|
|
ACCEPTED = "accepted"
|
|
HANDLED = "handled"
|
|
DUPLICATE = "duplicate"
|
|
RESULT = "result"
|
|
CHALLENGE = "challenge"
|
|
PROVIDER_RESPONSE = "provider_response"
|
|
|
|
|
|
class FeishuCommandResultKey(StrEnum):
|
|
COMMAND = "command"
|
|
REPLY_TYPE = "reply_type"
|
|
TITLE = "title"
|
|
CONTENT = "content"
|
|
LINES = "lines"
|
|
PROVIDER_RESPONSE = "provider_response"
|
|
|
|
|
|
class FeishuCommandName(StrEnum):
|
|
DAILY_BRIEF = "daily_brief"
|
|
PROJECT_WEEKLY = "project_weekly"
|
|
ATTENDANCE_SUMMARY = "attendance_summary"
|
|
RISK_SUMMARY = "risk_summary"
|
|
AI_ASK = "ai_ask"
|
|
FALLBACK_AI = "fallback_ai"
|
|
|
|
|
|
class FeishuReplyType(StrEnum):
|
|
CARD = "card"
|
|
TEXT = "text"
|
|
|
|
|
|
class FeishuEventReceiptKey(StrEnum):
|
|
EVENT_KEY = "event_key"
|
|
SOURCE = "source"
|
|
EVENT_ID = "event_id"
|
|
MESSAGE_ID = "message_id"
|
|
|
|
|
|
FEISHU_TENANT_TOKEN_PATH = "/auth/v3/tenant_access_token/internal"
|
|
FEISHU_MESSAGE_PATH = "/im/v1/messages"
|
|
FEISHU_DEFAULT_OPEN_API_DOMAIN = "https://open.feishu.cn"
|
|
FEISHU_AUTH_MISSING = "Feishu app credentials are not configured"
|
|
FEISHU_VERIFICATION_TOKEN_REQUIRED = "FEISHU_VERIFICATION_TOKEN is required"
|
|
FEISHU_INVALID_TOKEN = "Invalid Feishu token"
|
|
FEISHU_RECEIVE_ID_MISSING = "receive_id or FEISHU_DEFAULT_CHAT_ID is required"
|
|
FEISHU_SUCCESS_CODE = 0
|
|
FEISHU_DEFAULT_TOKEN_EXPIRE_SECONDS = 7200
|
|
FEISHU_TOKEN_EXPIRE_SAFETY_SECONDS = 300
|
|
FEISHU_AI_REPLY_TITLE = "AI 回复"
|
|
FEISHU_EMPTY_CARD_TEXT = "暂无数据"
|
|
FEISHU_MENTION_PATTERN = r"@\S+"
|
|
FEISHU_ZERO_WIDTH_SPACE = "\u200b"
|