新增完整的 channels 限界上下文模块,包含契约层、领域核心层、应用服务、管道编排、插件体系、基础设施组合根等全层级代码,新增飞书与微信 iLink 渠道插件基础结构,补充各类 DTO、端口协议与领域服务实现。
91 lines
3.8 KiB
Python
91 lines
3.8 KiB
Python
"""能力 DTO。
|
||
|
||
定义渠道能力相关的不可变值对象,包括渠道能力集合与能力探测结果。
|
||
所有 DTO 均为 ``dataclass(frozen=True)``,仅依赖标准库,用于渠道
|
||
能力声明、探测与降级决策。
|
||
"""
|
||
|
||
from __future__ import annotations
|
||
|
||
from dataclasses import dataclass
|
||
|
||
|
||
@dataclass(frozen=True)
|
||
class ChannelCapabilities:
|
||
"""渠道能力集合。
|
||
|
||
描述渠道支持的能力集合,包括富消息、流式、输入指示、消息编辑、
|
||
消息撤回、提及、命令、目录查询、配置诊断、白名单管理与消息操作能力
|
||
(表情反应 / 置顶 / 卡片更新),媒体能力(入站/出站图片/视频),
|
||
以及渠道级内容长度上限,用于适配器能力声明与降级决策。
|
||
|
||
字段:
|
||
rich_message: 是否支持富消息(默认 False)。
|
||
streaming: 是否支持流式(默认 False)。
|
||
typing_indicator: 是否支持输入指示(默认 False)。
|
||
message_edit: 是否支持消息编辑(默认 False)。
|
||
message_recall: 是否支持消息撤回(默认 False)。
|
||
mention: 是否支持提及(默认 False)。
|
||
command: 是否支持命令(默认 False,FR-15)。
|
||
directory: 是否支持目录查询(默认 False,FR-14)。
|
||
doctor: 是否支持配置诊断与自动修复(默认 False,FR-17)。
|
||
whitelist: 是否支持白名单管理(默认 False,FR-18)。
|
||
supports_reaction: 是否支持表情反应(默认 False,FR-12)。
|
||
supports_pin: 是否支持置顶(默认 False,FR-12)。
|
||
supports_card_update: 是否支持卡片更新(默认 False,FR-12)。
|
||
supports_image_inbound: 是否支持入站图片(默认 False,FR-43)。
|
||
supports_video_inbound: 是否支持入站视频(默认 False,FR-43)。
|
||
supports_image_outbound: 是否支持出站图片(默认 False,FR-43)。
|
||
supports_video_outbound: 是否支持出站视频(默认 False,FR-43)。
|
||
max_message_length: 单条消息最大文本长度(FR19-P0-5 渠道级内容
|
||
长度校验,默认 4096)。出站管道据此对超长内容做截断或分片
|
||
决策,未声明的渠道沿用默认值。
|
||
lifecycle: 是否实现账户生命周期适配器(默认 False,AL-01)。
|
||
supports_qr_login: 是否支持扫码登录(默认 False,QR-02)。
|
||
agent_collaboration: 是否支持多 Agent 协作(默认 False,
|
||
FR-AgentCollab)。声明为 True 时要求 mention_adapters 非空
|
||
(FR-21 契约一致性)。
|
||
"""
|
||
|
||
rich_message: bool = False
|
||
streaming: bool = False
|
||
typing_indicator: bool = False
|
||
message_edit: bool = False
|
||
message_recall: bool = False
|
||
mention: bool = False
|
||
command: bool = False
|
||
directory: bool = False
|
||
doctor: bool = False
|
||
whitelist: bool = False
|
||
supports_reaction: bool = False
|
||
supports_pin: bool = False
|
||
supports_card_update: bool = False
|
||
supports_image_inbound: bool = False
|
||
supports_video_inbound: bool = False
|
||
supports_image_outbound: bool = False
|
||
supports_video_outbound: bool = False
|
||
max_message_length: int = 4096
|
||
lifecycle: bool = False
|
||
supports_qr_login: bool = False
|
||
agent_collaboration: bool = False
|
||
|
||
|
||
@dataclass(frozen=True)
|
||
class CapabilityResult:
|
||
"""能力探测结果。
|
||
|
||
描述单项能力的探测结果,包括声明层、证明层与降级标记,用于能力
|
||
探测流程的决策与审计。
|
||
|
||
字段:
|
||
capability: 能力名称。
|
||
declared: 声明层是否支持。
|
||
proven: 证明层是否验证通过(默认 False)。
|
||
degraded: 是否降级(默认 False)。
|
||
"""
|
||
|
||
capability: str
|
||
declared: bool
|
||
proven: bool = False
|
||
degraded: bool = False
|