新增 Webex、微信 iLink、微信小程序三个渠道扩展。 Webex 渠道扩展功能模块: - config: 渠道配置管理 - gateway: SSE/WebSocket 网关接入 - webhook: Webhook 事件处理 - outbound: 外发消息管理 - streaming: 流式消息处理 - pairing: 用户配对与绑定 - security: 安全校验 - dedupe: 消息去重 - monitor: 渠道状态监控 - status: 会话状态管理 - media: 媒体资源处理 微信 iLink 渠道扩展功能模块: - config: 渠道配置管理 - gateway: SSE/WebSocket 网关接入 - outbound: 外发消息管理 - streaming: 流式消息处理 - pairing: 用户配对与绑定 - security: 安全校验 - dedupe: 消息去重 - monitor: 渠道状态监控 - status: 会话状态管理 - context_store: 上下文存储 - aes_ecb: AES-ECB 加解密 - media: 媒体资源处理 - typing: 输入状态 微信小程序渠道扩展功能模块: - config: 渠道配置管理 - gateway: SSE/WebSocket 网关接入 - webhook: Webhook 事件处理 - outbound: 外发消息管理 - streaming: 流式消息处理 - pairing: 用户配对与绑定 - security: 安全校验 - crypto: 加解密处理 - dedupe: 消息去重 - message: 消息处理 - passive_reply: 被动回复 - media: 媒体资源处理 - status: 会话状态管理
28 lines
953 B
Python
28 lines
953 B
Python
import re
|
|
|
|
_WEBEX_MENTION_RE = re.compile(r"<@personEmail:[^>]+>|<@personId:[^>]+>")
|
|
_WEBEX_HTML_TAG_RE = re.compile(r"</?[a-zA-Z][^>]*>")
|
|
|
|
|
|
def sanitize_text(text: str, payload=None) -> str:
|
|
text = _WEBEX_HTML_TAG_RE.sub("", text)
|
|
text = text.replace("\r\n", "\n").replace("\r", "\n")
|
|
return text
|
|
|
|
|
|
def markdown_to_native(md_text: str) -> str:
|
|
normalized = md_text
|
|
normalized = re.sub(r"^\s*#{1,6}\s+(.+)", r"**\1**", normalized, flags=re.MULTILINE)
|
|
normalized = re.sub(r"^- \[ \]", "-", normalized, flags=re.MULTILINE)
|
|
normalized = re.sub(r"^- \[x\]", "- [DONE]", normalized, flags=re.MULTILINE)
|
|
return normalized
|
|
|
|
|
|
def strip_mentions(text: str, ctx=None, config: dict | None = None, agent_id: str | None = None) -> str:
|
|
stripped = _WEBEX_MENTION_RE.sub("", text)
|
|
stripped = re.sub(r"\s+", " ", stripped).strip()
|
|
return stripped
|
|
|
|
|
|
STRIP_PATTERNS: list[str] = [r"<@personEmail:[^>]+>", r"<@personId:[^>]+>"]
|