ForcePilot/backend/package/yuxi/channel/extensions/webex/format.py
Kris 7b5d1e5c69 feat(channel): 添加 Webex、微信 iLink 和微信小程序渠道扩展
新增 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: 会话状态管理
2026-05-21 11:59:04 +08:00

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:[^>]+>"]