[eric] backend: rename single-export modules to match their export (naming convention sweep)

This commit is contained in:
ciregenz
2026-06-24 01:30:04 -07:00
parent 6bf543831f
commit 755862b7b5
35 changed files with 39 additions and 41 deletions
@@ -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__)
@@ -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
@@ -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__)
@@ -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).
@@ -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,
)
@@ -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 (
@@ -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__)
@@ -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,
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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] = []
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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):
+2 -2
View File
@@ -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
+1 -1
View File
@@ -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")
+1 -1
View File
@@ -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):
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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:
+4 -4
View File
@@ -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))
+1 -1
View File
@@ -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):
+2 -2
View File
@@ -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: