"""企业微信渠道插件共享常量。 集中定义在多个模块间共享的配置默认值、依赖标识与渠道标识,避免重复 定义导致的不一致风险。 仅汇集真正跨模块共享的常量;仅单一模块使用的常量仍保留在各自模块内。 所有常量值需与 ``manifest.json`` 中 ``config_schema`` 的 ``default`` 字段 及 ``resource_quota`` 保持一致(F-03 manifest 单真相源),本模块的常量 作为 ConfigPort 未命中时的本地回退默认值。 依赖方向:仅标准库,不 import 任何框架层或同插件模块,避免循环依赖。 """ from __future__ import annotations # --------------------------------------------------------------------------- # 渠道与依赖标识 # --------------------------------------------------------------------------- # 渠道标识,用于 ConfigPort CHANNEL 作用域 target(与 manifest.json # channel_type / provides 对齐) CHANNEL_TARGET = "wecom" # 企业微信 API 依赖标识,统一用于 ``DependencyError.dep`` 字段 WECOM_API_DEP = "wecom_api" # --------------------------------------------------------------------------- # HTTP 客户端配置(lifecycle 与 wecom_client 共享) # --------------------------------------------------------------------------- # HTTP 客户端默认超时(秒),对齐 manifest.json config_schema # request_timeout_ms.default=30000 HTTP_TIMEOUT_SECONDS = 30.0 # HTTP 连接池最大连接数,对齐 manifest.json # resource_quota.max_connections=50 HTTP_MAX_CONNECTIONS = 50 # HTTP 连接池 keepalive 连接数上限 HTTP_MAX_KEEPALIVE_CONNECTIONS = 10 # --------------------------------------------------------------------------- # Token 缓存与刷新 # --------------------------------------------------------------------------- # token 提前刷新时间(秒),企业微信 access_token 有效期 7200s TOKEN_REFRESH_LEAD_TIME_SEC = 60 # 企业微信 token 缓存默认 TTL(秒) TOKEN_CACHE_TTL_SEC = 7200 # 流式会话缓存 key 前缀(与 streaming_adapter._streaming_key / _buf_key 对齐) STREAMING_CACHE_KEY_PREFIX = "wecom:streaming:" # 流式缓冲区缓存 key 前缀(与 streaming_adapter._buf_key 对齐) STREAMING_BUF_CACHE_KEY_PREFIX = "wecom:streaming:buf:" # 身份解析缓存 TTL(秒),契约规定 60s IDENTITY_CACHE_TTL_SEC = 60 # 用户信息缓存 TTL(秒),保守 30 分钟 USER_CACHE_TTL_SEC = 1800 # 模板卡片 response_code 缓存 TTL(秒),72 小时 RESPONSE_CODE_CACHE_TTL_SEC = 72 * 3600 # 消息反向映射缓存 TTL(秒),1 天 MSG_CACHE_TTL_SEC = 86400 # --------------------------------------------------------------------------- # 企业微信 API 常量 # --------------------------------------------------------------------------- # 企业微信回调 Webhook 超时(秒),5 秒内必须响应 WEBHOOK_TIMEOUT_SEC = 5 # 消息重复检查默认间隔(秒) DUPLICATE_CHECK_INTERVAL_SEC = 1800 # 模板卡片 response_code 有效期(小时),72 小时 RESPONSE_CODE_VALID_HOURS = 72 __all__ = [ "CHANNEL_TARGET", "WECOM_API_DEP", "HTTP_TIMEOUT_SECONDS", "HTTP_MAX_CONNECTIONS", "HTTP_MAX_KEEPALIVE_CONNECTIONS", "TOKEN_REFRESH_LEAD_TIME_SEC", "TOKEN_CACHE_TTL_SEC", "STREAMING_CACHE_KEY_PREFIX", "STREAMING_BUF_CACHE_KEY_PREFIX", "IDENTITY_CACHE_TTL_SEC", "USER_CACHE_TTL_SEC", "RESPONSE_CODE_CACHE_TTL_SEC", "MSG_CACHE_TTL_SEC", "WEBHOOK_TIMEOUT_SEC", "DUPLICATE_CHECK_INTERVAL_SEC", "RESPONSE_CODE_VALID_HOURS", ]