本提交新增了全渠道SDK核心模块: 1. 异步锁、目标解析、动作调度等基础工具 2. 消息动作注册与统一调度系统 3. 测试套件与契约测试框架 4. 完整的目标解析流水线与工具函数 5. 资源依赖注入与生命周期管理
49 lines
1.3 KiB
Python
49 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
|
|
from yuxi.channel.capabilities import ChannelCapabilities
|
|
|
|
|
|
@dataclass
|
|
class FixtureFactory:
|
|
@staticmethod
|
|
def capabilities(**overrides) -> ChannelCapabilities:
|
|
defaults = {
|
|
"chat_types": ["direct", "group"],
|
|
"message_types": ["text"],
|
|
"streaming": False,
|
|
"streaming_mode": None,
|
|
"block_streaming": False,
|
|
}
|
|
defaults.update(overrides)
|
|
return ChannelCapabilities(**defaults)
|
|
|
|
@staticmethod
|
|
def preview_streaming_caps() -> ChannelCapabilities:
|
|
return FixtureFactory.capabilities(
|
|
streaming=True,
|
|
streaming_mode=None,
|
|
)
|
|
|
|
@staticmethod
|
|
def block_streaming_caps() -> ChannelCapabilities:
|
|
return FixtureFactory.capabilities(
|
|
streaming=True,
|
|
streaming_mode="block",
|
|
block_streaming=True,
|
|
)
|
|
|
|
@staticmethod
|
|
def card_kit_caps() -> ChannelCapabilities:
|
|
return FixtureFactory.capabilities(
|
|
streaming=True,
|
|
streaming_mode="card_kit",
|
|
adaptive_cards=True,
|
|
)
|
|
|
|
@staticmethod
|
|
def no_streaming_caps() -> ChannelCapabilities:
|
|
return FixtureFactory.capabilities(
|
|
streaming=False,
|
|
) |