ForcePilot/backend/package/yuxi/channels/contract/dtos/capability.py
Kris b88c0ae29e feat(channels): 批量新增多渠道网关限界上下文基础代码与契约
新增完整的 channels 限界上下文模块,包含契约层、领域核心层、应用服务、管道编排、插件体系、基础设施组合根等全层级代码,新增飞书与微信 iLink 渠道插件基础结构,补充各类 DTO、端口协议与领域服务实现。
2026-07-02 03:22:12 +08:00

91 lines
3.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""能力 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: 是否支持命令(默认 FalseFR-15
directory: 是否支持目录查询(默认 FalseFR-14
doctor: 是否支持配置诊断与自动修复(默认 FalseFR-17
whitelist: 是否支持白名单管理(默认 FalseFR-18
supports_reaction: 是否支持表情反应(默认 FalseFR-12
supports_pin: 是否支持置顶(默认 FalseFR-12
supports_card_update: 是否支持卡片更新(默认 FalseFR-12
supports_image_inbound: 是否支持入站图片(默认 FalseFR-43
supports_video_inbound: 是否支持入站视频(默认 FalseFR-43
supports_image_outbound: 是否支持出站图片(默认 FalseFR-43
supports_video_outbound: 是否支持出站视频(默认 FalseFR-43
max_message_length: 单条消息最大文本长度FR19-P0-5 渠道级内容
长度校验,默认 4096。出站管道据此对超长内容做截断或分片
决策,未声明的渠道沿用默认值。
lifecycle: 是否实现账户生命周期适配器(默认 FalseAL-01
supports_qr_login: 是否支持扫码登录(默认 FalseQR-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