mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 07:27:15 +08:00
refactor(messaging): 拆分用户交互模块到 application/messaging 层
- 新增 application/messaging 交互层:router.py 统一会话优先级与回调分发, site/subscribe/skill/media/plugin 各交互状态与视图从 Chain 迁出 - MessageChain 改为通过 InteractionRouter 派发文本会话与按钮回调, 新增结构化 callback_data 通道(兼容 CALLBACK: 文本前缀) - Transfer 失败重试/AI 接管回调归入 TransferChain - MediaInteractionChain 拆出为 app/chain/interaction.py(旧路径保留兼容别名) - WebAgent Endpoint 去重,统一使用 agent.py 回调协议函数 - 删除 app/chain/skills.py(交互逻辑并入 SkillInteractionHandler) - 同步更新架构文档与测试,全量 4476 通过
This commit is contained in:
@@ -34,7 +34,8 @@ from app.runtime.events import Event
|
||||
from app.db.oper.agentchat import AgentChatOper
|
||||
from app.db.models.agentchat import AgentChat
|
||||
from app.application.messaging.agent import build_web_agent_message_update_event
|
||||
from app.application.messaging.interaction import AgentInteractionOption, agent_interaction_manager, skills_interaction_manager
|
||||
from app.application.messaging.agent import AgentInteractionOption, agent_interaction_manager
|
||||
from app.application.messaging.skill import skill_interaction_manager
|
||||
from app.chain.message import MessageChain
|
||||
from app.schemas.message import ChannelCapability, ChannelCapabilityManager
|
||||
from app.schemas.types import EventType, MessageChannel, NotificationType
|
||||
@@ -340,9 +341,9 @@ def test_build_web_agent_display_message_from_events_marks_done():
|
||||
|
||||
def test_has_web_agent_traditional_interaction_detects_pending_skills():
|
||||
"""WebAgent 应能识别命令后的传统交互上下文。"""
|
||||
skills_interaction_manager.clear()
|
||||
skill_interaction_manager.clear()
|
||||
try:
|
||||
skills_interaction_manager.create_or_replace(
|
||||
skill_interaction_manager.create_or_replace(
|
||||
user_id="1",
|
||||
channel=MessageChannel.WebAgent,
|
||||
source="web-agent",
|
||||
@@ -352,7 +353,7 @@ def test_has_web_agent_traditional_interaction_detects_pending_skills():
|
||||
assert _has_web_agent_traditional_interaction("1") is True
|
||||
assert _has_web_agent_traditional_interaction("2") is False
|
||||
finally:
|
||||
skills_interaction_manager.clear()
|
||||
skill_interaction_manager.clear()
|
||||
|
||||
|
||||
def test_web_agent_admin_context_uses_current_user_id():
|
||||
|
||||
Reference in New Issue
Block a user