From 755862b7b511776631b50b36ef722d42e181ac70 Mon Sep 17 00:00:00 2001 From: ciregenz Date: Wed, 24 Jun 2026 01:30:04 -0700 Subject: [PATCH] [eric] backend: rename single-export modules to match their export (naming convention sweep) --- backend/apps/agents/browser/browser_playbook.py | 2 +- .../browser/{seed_playbooks.py => seed_for.py} | 0 backend/apps/agents/manager/MessagingMixin.py | 4 ++-- ...provider_env.py => configure_provider_env.py} | 0 ...ve_tools.py => build_effective_tool_lists.py} | 0 .../agents/manager/permissions/gate_hooks.py | 2 +- ...m_prompt.py => compose_turn_system_prompt.py} | 0 .../apps/agents/manager/run/RunOptionsMixin.py | 12 ++++++------ .../apps/agents/manager/run/TurnRunnerMixin.py | 16 +++++++--------- ...wser_dispatch.py => run_browser_fast_path.py} | 0 .../manager/session/SessionLifecycleMixin.py | 2 +- .../{cloud_sync.py => sync_session_close.py} | 0 .../{hook_context.py => HookContext.py} | 0 ...nt_message.py => handle_assistant_message.py} | 0 ...esult_message.py => handle_result_message.py} | 0 .../{stream_event.py => handle_stream_event.py} | 0 .../{tool_result_hook.py => post_tool_hook.py} | 2 +- .../apps/agents/manager/streaming/stop_hook.py | 2 +- backend/apps/agents/providers/registry.py | 2 +- .../{thinking.py => thinking_params_for.py} | 0 backend/apps/swarm/closure.py | 2 +- .../{sessions.py => SessionExportable.py} | 0 backend/apps/swarm/registry.py | 2 +- .../apps/swarm/{review.py => scan_app_files.py} | 0 backend/tests/test_assistant_message.py | 2 +- backend/tests/test_browser_dispatch.py | 4 ++-- backend/tests/test_browser_playbook.py | 2 +- backend/tests/test_effective_tools.py | 2 +- backend/tests/test_gate_hooks.py | 2 +- backend/tests/test_result_message.py | 2 +- backend/tests/test_stop_hook.py | 2 +- backend/tests/test_stream_event.py | 2 +- backend/tests/test_swarm_bundle.py | 8 ++++---- backend/tests/test_system_prompt.py | 2 +- backend/tests/test_tool_result_hook.py | 4 ++-- 35 files changed, 39 insertions(+), 41 deletions(-) rename backend/apps/agents/browser/{seed_playbooks.py => seed_for.py} (100%) rename backend/apps/agents/manager/{provider_env.py => configure_provider_env.py} (100%) rename backend/apps/agents/manager/permissions/{effective_tools.py => build_effective_tool_lists.py} (100%) rename backend/apps/agents/manager/prompt/{system_prompt.py => compose_turn_system_prompt.py} (100%) rename backend/apps/agents/manager/{browser_dispatch.py => run_browser_fast_path.py} (100%) rename backend/apps/agents/manager/session/{cloud_sync.py => sync_session_close.py} (100%) rename backend/apps/agents/manager/streaming/{hook_context.py => HookContext.py} (100%) rename backend/apps/agents/manager/streaming/{assistant_message.py => handle_assistant_message.py} (100%) rename backend/apps/agents/manager/streaming/{result_message.py => handle_result_message.py} (100%) rename backend/apps/agents/manager/streaming/{stream_event.py => handle_stream_event.py} (100%) rename backend/apps/agents/manager/streaming/{tool_result_hook.py => post_tool_hook.py} (99%) rename backend/apps/agents/providers/{thinking.py => thinking_params_for.py} (100%) rename backend/apps/swarm/entities/{sessions.py => SessionExportable.py} (100%) rename backend/apps/swarm/{review.py => scan_app_files.py} (100%) diff --git a/backend/apps/agents/browser/browser_playbook.py b/backend/apps/agents/browser/browser_playbook.py index 8055de6f..2d9d46ff 100644 --- a/backend/apps/agents/browser/browser_playbook.py +++ b/backend/apps/agents/browser/browser_playbook.py @@ -34,7 +34,7 @@ import tempfile import time from urllib.parse import urlparse -from backend.apps.agents.browser.seed_playbooks import seed_for +from backend.apps.agents.browser.seed_for import seed_for logger = logging.getLogger(__name__) diff --git a/backend/apps/agents/browser/seed_playbooks.py b/backend/apps/agents/browser/seed_for.py similarity index 100% rename from backend/apps/agents/browser/seed_playbooks.py rename to backend/apps/agents/browser/seed_for.py diff --git a/backend/apps/agents/manager/MessagingMixin.py b/backend/apps/agents/manager/MessagingMixin.py index ef9f3b13..be27e70d 100644 --- a/backend/apps/agents/manager/MessagingMixin.py +++ b/backend/apps/agents/manager/MessagingMixin.py @@ -12,7 +12,7 @@ from uuid import uuid4 from backend.apps.agents.core.models import AgentSession, Message, MessageBranch from backend.apps.agents.core.ws_manager import ws_manager from backend.apps.settings.settings import load_settings -from backend.apps.agents.manager import browser_dispatch +from backend.apps.agents.manager.run_browser_fast_path import run_browser_fast_path from backend.apps.agents.manager.session.session_store import load_session_data from backend.apps.agents.manager.session.apply_context_window import apply_context_window from backend.apps.agents.manager.prompt.tool_catalog import get_all_tool_names @@ -152,7 +152,7 @@ class MessagingMixin: logger.warning(f"[browser-fast-path] gate error, normal path: {e}") if fast_verdict != "no": - task = asyncio.create_task(browser_dispatch.run_browser_fast_path(session, session_id, prompt, selected_browser_ids, fast_brief, fast_verdict)) + task = asyncio.create_task(run_browser_fast_path(session, session_id, prompt, selected_browser_ids, fast_brief, fast_verdict)) else: task = asyncio.create_task(self.run_agent_loop(session_id, prompt, images=images, context_paths=context_paths, forced_tools=forced_tools, attached_skills=attached_skills, selected_browser_ids=selected_browser_ids, selected_app_output_ids=selected_app_output_ids, selected_setting_ids=selected_setting_ids)) self.tasks[session_id] = task diff --git a/backend/apps/agents/manager/provider_env.py b/backend/apps/agents/manager/configure_provider_env.py similarity index 100% rename from backend/apps/agents/manager/provider_env.py rename to backend/apps/agents/manager/configure_provider_env.py diff --git a/backend/apps/agents/manager/permissions/effective_tools.py b/backend/apps/agents/manager/permissions/build_effective_tool_lists.py similarity index 100% rename from backend/apps/agents/manager/permissions/effective_tools.py rename to backend/apps/agents/manager/permissions/build_effective_tool_lists.py diff --git a/backend/apps/agents/manager/permissions/gate_hooks.py b/backend/apps/agents/manager/permissions/gate_hooks.py index 6cad7919..1c71c9e1 100644 --- a/backend/apps/agents/manager/permissions/gate_hooks.py +++ b/backend/apps/agents/manager/permissions/gate_hooks.py @@ -21,7 +21,7 @@ from backend.apps.agents.manager.prompt.prompt_context import ( TOOLSEARCH_LOOP_THRESHOLD, toolsearch_loop_redirect, ) -from backend.apps.agents.manager.streaming.hook_context import HookContext +from backend.apps.agents.manager.streaming.HookContext import HookContext logger = logging.getLogger(__name__) diff --git a/backend/apps/agents/manager/prompt/system_prompt.py b/backend/apps/agents/manager/prompt/compose_turn_system_prompt.py similarity index 100% rename from backend/apps/agents/manager/prompt/system_prompt.py rename to backend/apps/agents/manager/prompt/compose_turn_system_prompt.py diff --git a/backend/apps/agents/manager/run/RunOptionsMixin.py b/backend/apps/agents/manager/run/RunOptionsMixin.py index 67ecd016..b7c2992a 100644 --- a/backend/apps/agents/manager/run/RunOptionsMixin.py +++ b/backend/apps/agents/manager/run/RunOptionsMixin.py @@ -15,15 +15,15 @@ from backend.apps.settings.settings import load_settings from backend.apps.tools_lib.tools_lib import load_all_tools, sanitize_server_name from backend.apps.agents.tools.web import should_register_web_mcp from backend.apps.agents.manager.permissions import gate_hooks -from backend.apps.agents.manager.streaming import tool_result_hook +from backend.apps.agents.manager.streaming import post_tool_hook as post_tool_hook_mod from backend.apps.agents.manager.streaming import stop_hook as stop_hook_mod -from backend.apps.agents.manager.streaming.hook_context import HookContext -from backend.apps.agents.manager.permissions.effective_tools import build_effective_tool_lists +from backend.apps.agents.manager.streaming.HookContext import HookContext +from backend.apps.agents.manager.permissions.build_effective_tool_lists import build_effective_tool_lists from backend.apps.agents.manager.register_builtin_mcp_servers import register_builtin_mcp_servers -from backend.apps.agents.manager.provider_env import configure_provider_env +from backend.apps.agents.manager.configure_provider_env import configure_provider_env from backend.apps.agents.manager.session.workspace_git import ensure_cwd_git_repo from backend.apps.agents.manager.session.history_compaction import build_history_prefix, get_branch_messages -from backend.apps.agents.manager.prompt.system_prompt import compose_turn_system_prompt +from backend.apps.agents.manager.prompt.compose_turn_system_prompt import compose_turn_system_prompt from backend.apps.agents.manager.prompt.tool_catalog import get_all_tool_names from backend.apps.agents.manager.prompt.prompt_context import resolve_mode from backend.apps.agents.manager.run.run_options_helpers import ( @@ -63,7 +63,7 @@ class RunOptionsMixin: return await gate_hooks.pre_tool_hook(hook_ctx, input_data, tool_use_id, context) async def post_tool_hook(input_data, tool_use_id, context): - return await tool_result_hook.post_tool_hook(hook_ctx, input_data, tool_use_id, context) + return await post_tool_hook_mod.post_tool_hook(hook_ctx, input_data, tool_use_id, context) _, mode_sys_prompt, _ = resolve_mode(session.mode, get_all_tool_names) # Reconcile active_mcps against currently-enabled tools (Phase 3). diff --git a/backend/apps/agents/manager/run/TurnRunnerMixin.py b/backend/apps/agents/manager/run/TurnRunnerMixin.py index 250641d8..fe0bd4ce 100644 --- a/backend/apps/agents/manager/run/TurnRunnerMixin.py +++ b/backend/apps/agents/manager/run/TurnRunnerMixin.py @@ -13,12 +13,10 @@ from backend.apps.agents.core.models import AgentSession from backend.apps.agents.core.ws_manager import ws_manager from backend.apps.agents.core.error_classify import CAPACITY_BACKOFFS, capacity_retry_wait from backend.apps.agents.manager.streaming.state import ThinkingState, TurnState -from backend.apps.agents.manager.streaming import ( - stream_event, - assistant_message, - result_message, - thinking as thinking_mod, -) +from backend.apps.agents.manager.streaming.handle_stream_event import handle_stream_event +from backend.apps.agents.manager.streaming.handle_assistant_message import handle_assistant_message +from backend.apps.agents.manager.streaming.handle_result_message import handle_result_message +from backend.apps.agents.manager.streaming import thinking as thinking_mod from backend.apps.settings.models import AppSettings logger = logging.getLogger(__name__) @@ -116,16 +114,16 @@ class TurnRunnerMixin: logger.info(f"[MCP-DEBUG] SystemMessage: {raw}") if isinstance(message, StreamEvent): - await stream_event.handle_stream_event( + await handle_stream_event( message, session, session_id, turn, thinking, self.live_partial ) elif isinstance(message, AssistantMessage): - await assistant_message.handle_assistant_message( + await handle_assistant_message( message, session, session_id, turn, thinking, self.live_partial, self.sessions ) elif isinstance(message, ResultMessage): - await result_message.handle_result_message( + await handle_result_message( message, session, session_id, turn, thinking, self.sessions, resolved_model, api_type, global_settings, ) diff --git a/backend/apps/agents/manager/browser_dispatch.py b/backend/apps/agents/manager/run_browser_fast_path.py similarity index 100% rename from backend/apps/agents/manager/browser_dispatch.py rename to backend/apps/agents/manager/run_browser_fast_path.py diff --git a/backend/apps/agents/manager/session/SessionLifecycleMixin.py b/backend/apps/agents/manager/session/SessionLifecycleMixin.py index 374b0df0..9d079550 100644 --- a/backend/apps/agents/manager/session/SessionLifecycleMixin.py +++ b/backend/apps/agents/manager/session/SessionLifecycleMixin.py @@ -17,7 +17,7 @@ from backend.apps.agents.manager.session.session_store import ( save_session, build_search_text, ) -from backend.apps.agents.manager.session.cloud_sync import sync_session_close +from backend.apps.agents.manager.session.sync_session_close import sync_session_close from backend.apps.agents.manager.session.apply_context_window import apply_context_window from backend.apps.agents.manager.session import lifecycle from backend.apps.agents.manager.view_builder_state import ( diff --git a/backend/apps/agents/manager/session/cloud_sync.py b/backend/apps/agents/manager/session/sync_session_close.py similarity index 100% rename from backend/apps/agents/manager/session/cloud_sync.py rename to backend/apps/agents/manager/session/sync_session_close.py diff --git a/backend/apps/agents/manager/streaming/hook_context.py b/backend/apps/agents/manager/streaming/HookContext.py similarity index 100% rename from backend/apps/agents/manager/streaming/hook_context.py rename to backend/apps/agents/manager/streaming/HookContext.py diff --git a/backend/apps/agents/manager/streaming/assistant_message.py b/backend/apps/agents/manager/streaming/handle_assistant_message.py similarity index 100% rename from backend/apps/agents/manager/streaming/assistant_message.py rename to backend/apps/agents/manager/streaming/handle_assistant_message.py diff --git a/backend/apps/agents/manager/streaming/result_message.py b/backend/apps/agents/manager/streaming/handle_result_message.py similarity index 100% rename from backend/apps/agents/manager/streaming/result_message.py rename to backend/apps/agents/manager/streaming/handle_result_message.py diff --git a/backend/apps/agents/manager/streaming/stream_event.py b/backend/apps/agents/manager/streaming/handle_stream_event.py similarity index 100% rename from backend/apps/agents/manager/streaming/stream_event.py rename to backend/apps/agents/manager/streaming/handle_stream_event.py diff --git a/backend/apps/agents/manager/streaming/tool_result_hook.py b/backend/apps/agents/manager/streaming/post_tool_hook.py similarity index 99% rename from backend/apps/agents/manager/streaming/tool_result_hook.py rename to backend/apps/agents/manager/streaming/post_tool_hook.py index 1a97c63a..9590b88f 100644 --- a/backend/apps/agents/manager/streaming/tool_result_hook.py +++ b/backend/apps/agents/manager/streaming/post_tool_hook.py @@ -18,7 +18,7 @@ from backend.apps.agents.core.models import AgentSession, Message from backend.apps.agents.core.ws_manager import ws_manager from backend.apps.agents.manager.session.apply_context_window import apply_context_window from backend.apps.agents.manager.session.history_compaction import truncate_large_tool_result -from backend.apps.agents.manager.streaming.hook_context import HookContext +from backend.apps.agents.manager.streaming.HookContext import HookContext from backend.apps.agents.manager.view_builder_state import view_builder_dirty_sessions logger = logging.getLogger(__name__) diff --git a/backend/apps/agents/manager/streaming/stop_hook.py b/backend/apps/agents/manager/streaming/stop_hook.py index 020dd3ae..7d034d71 100644 --- a/backend/apps/agents/manager/streaming/stop_hook.py +++ b/backend/apps/agents/manager/streaming/stop_hook.py @@ -9,7 +9,7 @@ from typing import Dict from typeguard import typechecked -from backend.apps.agents.manager.streaming.hook_context import HookContext +from backend.apps.agents.manager.streaming.HookContext import HookContext from backend.apps.agents.manager.view_builder_state import ( VIEW_BUILDER_RENDER_MAX_RETRIES, view_builder_render_retry_counts, diff --git a/backend/apps/agents/providers/registry.py b/backend/apps/agents/providers/registry.py index 46f0758d..df08d293 100644 --- a/backend/apps/agents/providers/registry.py +++ b/backend/apps/agents/providers/registry.py @@ -23,7 +23,7 @@ from .pricing import ( compute_tiers, heuristic_tiers, ) -from .thinking import thinking_params_for +from .thinking_params_for import thinking_params_for if TYPE_CHECKING: from backend.apps.settings.models import AppSettings diff --git a/backend/apps/agents/providers/thinking.py b/backend/apps/agents/providers/thinking_params_for.py similarity index 100% rename from backend/apps/agents/providers/thinking.py rename to backend/apps/agents/providers/thinking_params_for.py diff --git a/backend/apps/swarm/closure.py b/backend/apps/swarm/closure.py index 6eee6259..a3691bd3 100644 --- a/backend/apps/swarm/closure.py +++ b/backend/apps/swarm/closure.py @@ -316,7 +316,7 @@ def review_bundle(sandbox: str, manifest: Manifest): """Safety read of any app code in the staged bundle. Returns None when the bundle contains no apps (nothing to review).""" from .models import ReviewSummary - from .review import scan_app_files + from .scan_app_files import scan_app_files findings: list[str] = [] scanned: list[str] = [] diff --git a/backend/apps/swarm/entities/sessions.py b/backend/apps/swarm/entities/SessionExportable.py similarity index 100% rename from backend/apps/swarm/entities/sessions.py rename to backend/apps/swarm/entities/SessionExportable.py diff --git a/backend/apps/swarm/registry.py b/backend/apps/swarm/registry.py index 73554543..e4ccb566 100644 --- a/backend/apps/swarm/registry.py +++ b/backend/apps/swarm/registry.py @@ -3,7 +3,7 @@ order import walks. Adding a shareable type is one entry here plus its module."" from .entities.apps import AppExportable from .entities.dashboards import DashboardExportable from .entities.modes import ModeExportable -from .entities.sessions import SessionExportable +from .entities.SessionExportable import SessionExportable from .entities.skills import SkillExportable from .entities.workflows import WorkflowExportable from .models import EntityType diff --git a/backend/apps/swarm/review.py b/backend/apps/swarm/scan_app_files.py similarity index 100% rename from backend/apps/swarm/review.py rename to backend/apps/swarm/scan_app_files.py diff --git a/backend/tests/test_assistant_message.py b/backend/tests/test_assistant_message.py index 29a3fb48..163a0d5a 100644 --- a/backend/tests/test_assistant_message.py +++ b/backend/tests/test_assistant_message.py @@ -10,7 +10,7 @@ from claude_agent_sdk.types import TextBlock, ToolUseBlock from backend.apps.agents.core.models import AgentSession from backend.apps.agents.manager.streaming.state import TurnState, ThinkingState -from backend.apps.agents.manager.streaming import assistant_message +from backend.apps.agents.manager.streaming import handle_assistant_message as assistant_message def p_asst(blocks, usage=None): diff --git a/backend/tests/test_browser_dispatch.py b/backend/tests/test_browser_dispatch.py index 71ea7be3..4b864e6b 100644 --- a/backend/tests/test_browser_dispatch.py +++ b/backend/tests/test_browser_dispatch.py @@ -1,10 +1,10 @@ -"""Drives the moved browser fast-path dispatch (manager/browser_dispatch.py) end to end +"""Drives the moved browser fast-path dispatch (manager/run_browser_fast_path.py) end to end with a real AgentSession + a mocked browser sub-agent. This path was never directly tested before it was lifted out of agent_manager, so this pins its actual behavior.""" import asyncio -import backend.apps.agents.manager.browser_dispatch as bd +import backend.apps.agents.manager.run_browser_fast_path as bd import backend.apps.agents.browser.browser_agent as browser_agent_mod from backend.apps.agents.core.models import AgentSession diff --git a/backend/tests/test_browser_playbook.py b/backend/tests/test_browser_playbook.py index 76c162ab..d5cab78d 100644 --- a/backend/tests/test_browser_playbook.py +++ b/backend/tests/test_browser_playbook.py @@ -173,7 +173,7 @@ async def test_forget_and_list_hosts_for_ux(): def test_seed_playbook_fallback_and_supersede(): - from backend.apps.agents.browser.seed_playbooks import seed_for + from backend.apps.agents.browser.seed_for import seed_for # pure lookup: www-normalized, canonical key, unknown -> empty assert seed_for("www.amazon.com") == seed_for("amazon.com") != [] assert seed_for("x.com") diff --git a/backend/tests/test_effective_tools.py b/backend/tests/test_effective_tools.py index 6968d9f2..c7b7a901 100644 --- a/backend/tests/test_effective_tools.py +++ b/backend/tests/test_effective_tools.py @@ -5,7 +5,7 @@ builtin allow/deny resolution and the web-MCP suppression of the native WebSearc import pytest from backend.apps.agents.core.models import AgentSession -from backend.apps.agents.manager.permissions.effective_tools import build_effective_tool_lists +from backend.apps.agents.manager.permissions.build_effective_tool_lists import build_effective_tool_lists def p_session(allowed): diff --git a/backend/tests/test_gate_hooks.py b/backend/tests/test_gate_hooks.py index c6edcf28..48efbdfa 100644 --- a/backend/tests/test_gate_hooks.py +++ b/backend/tests/test_gate_hooks.py @@ -8,7 +8,7 @@ from unittest.mock import patch, AsyncMock from claude_agent_sdk import PermissionResultAllow, PermissionResultDeny from backend.apps.agents.core.models import AgentSession -from backend.apps.agents.manager.streaming.hook_context import HookContext +from backend.apps.agents.manager.streaming.HookContext import HookContext from backend.apps.agents.manager.permissions import gate_hooks from backend.apps.agents.manager.permissions.ApprovalDecision import ApprovalDecision from backend.apps.agents.manager.prompt.prompt_context import TOOLSEARCH_LOOP_THRESHOLD diff --git a/backend/tests/test_result_message.py b/backend/tests/test_result_message.py index d08eef5b..916ab2a4 100644 --- a/backend/tests/test_result_message.py +++ b/backend/tests/test_result_message.py @@ -10,7 +10,7 @@ from claude_agent_sdk import ResultMessage from backend.apps.agents.core.models import AgentSession from backend.apps.agents.manager.streaming.state import TurnState, ThinkingState -from backend.apps.agents.manager.streaming import result_message +from backend.apps.agents.manager.streaming import handle_result_message as result_message from backend.apps.settings.settings import load_settings diff --git a/backend/tests/test_stop_hook.py b/backend/tests/test_stop_hook.py index 396d8b17..875d3c53 100644 --- a/backend/tests/test_stop_hook.py +++ b/backend/tests/test_stop_hook.py @@ -6,7 +6,7 @@ import pytest from unittest.mock import patch, MagicMock from backend.apps.agents.core.models import AgentSession -from backend.apps.agents.manager.streaming.hook_context import HookContext +from backend.apps.agents.manager.streaming.HookContext import HookContext from backend.apps.agents.manager.streaming import stop_hook as stop_hook_mod from backend.apps.agents.manager import view_builder_state diff --git a/backend/tests/test_stream_event.py b/backend/tests/test_stream_event.py index 8005c07e..99a10c94 100644 --- a/backend/tests/test_stream_event.py +++ b/backend/tests/test_stream_event.py @@ -9,7 +9,7 @@ from claude_agent_sdk.types import StreamEvent from backend.apps.agents.core.models import AgentSession from backend.apps.agents.manager.streaming.state import TurnState, ThinkingState -from backend.apps.agents.manager.streaming import stream_event +from backend.apps.agents.manager.streaming import handle_stream_event as stream_event def p_ev(event: dict) -> StreamEvent: diff --git a/backend/tests/test_swarm_bundle.py b/backend/tests/test_swarm_bundle.py index 86b26c17..be52fd30 100644 --- a/backend/tests/test_swarm_bundle.py +++ b/backend/tests/test_swarm_bundle.py @@ -169,7 +169,7 @@ def test_workflow_unavailable_on_this_branch(): def test_session_export_carries_transcript_drops_runtime_and_secrets(): - from backend.apps.swarm.entities.sessions import SessionExportable + from backend.apps.swarm.entities.SessionExportable import SessionExportable from backend.apps.swarm.redact import scrub_payload data = { "name": "A", "provider": "anthropic", "model": "sonnet", "mode": "agent", @@ -200,7 +200,7 @@ def test_session_export_carries_transcript_drops_runtime_and_secrets(): def test_session_import_restores_transcript_without_granting_mcp(monkeypatch): - from backend.apps.swarm.entities.sessions import SessionExportable + from backend.apps.swarm.entities.SessionExportable import SessionExportable from backend.apps.swarm.exportable import RemapTable from backend.apps.agents.manager.session import session_store saved: dict = {} @@ -226,7 +226,7 @@ def test_session_import_restores_transcript_without_granting_mcp(monkeypatch): def test_session_import_old_bundle_without_transcript(monkeypatch): # A bundle made before transcripts were carried has no messages; it must # still import as a valid empty-history agent (single main branch), not crash. - from backend.apps.swarm.entities.sessions import SessionExportable + from backend.apps.swarm.entities.SessionExportable import SessionExportable from backend.apps.swarm.exportable import RemapTable from backend.apps.agents.manager.session import session_store saved: dict = {} @@ -241,7 +241,7 @@ def test_session_load_prefers_live_memory_over_stale_disk(tmp_path, monkeypatch) # The freshest transcript lives in memory; a disk-only load would ship a # stale one. load() must read the live session first, disk only as fallback. from backend.apps.agents import agent_manager as am - from backend.apps.swarm.entities.sessions import SessionExportable + from backend.apps.swarm.entities.SessionExportable import SessionExportable sdir = tmp_path / "sessions" sdir.mkdir() monkeypatch.setattr(am, "SESSIONS_DIR", str(sdir)) diff --git a/backend/tests/test_system_prompt.py b/backend/tests/test_system_prompt.py index 8499a5b7..2b431f76 100644 --- a/backend/tests/test_system_prompt.py +++ b/backend/tests/test_system_prompt.py @@ -7,7 +7,7 @@ import pytest from unittest.mock import patch from backend.apps.agents.core.models import AgentSession -from backend.apps.agents.manager.prompt import system_prompt as sp +from backend.apps.agents.manager.prompt import compose_turn_system_prompt as sp def p_compose(session: AgentSession): diff --git a/backend/tests/test_tool_result_hook.py b/backend/tests/test_tool_result_hook.py index 3d12d9ec..ad260ea8 100644 --- a/backend/tests/test_tool_result_hook.py +++ b/backend/tests/test_tool_result_hook.py @@ -7,8 +7,8 @@ import pytest from unittest.mock import patch, AsyncMock from backend.apps.agents.core.models import AgentSession -from backend.apps.agents.manager.streaming.hook_context import HookContext -from backend.apps.agents.manager.streaming import tool_result_hook +from backend.apps.agents.manager.streaming.HookContext import HookContext +from backend.apps.agents.manager.streaming import post_tool_hook as tool_result_hook def p_ctx(registry: dict) -> HookContext: