refactor(agents): move checkpointer + mention_resolver to app/agents/shared (slice 5b)

Two independent leaf modules (no intra-new_chat deps, no frozen importer),
consumed only by flows/routes/tests. Flipped 8 importers across both the
dotted-path and module-style (from app.agents.new_chat import mention_resolver)
forms. No shims needed.
This commit is contained in:
CREDO23 2026-06-04 12:52:54 +02:00
parent dcdf8f776b
commit 6f488d9564
10 changed files with 11 additions and 11 deletions

View file

@ -23,7 +23,7 @@ from starlette.requests import Request as StarletteRequest
from starlette.responses import Response as StarletteResponse
from uvicorn.middleware.proxy_headers import ProxyHeadersMiddleware
from app.agents.new_chat.checkpointer import (
from app.agents.shared.checkpointer import (
close_checkpointer,
setup_checkpointer_tables,
)

View file

@ -12,7 +12,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
from app.agents.multi_agent_chat import create_multi_agent_chat_deep_agent
from app.agents.shared.context import SurfSenseContextSchema
from app.agents.new_chat.mention_resolver import resolve_mentions, substitute_in_text
from app.agents.shared.mention_resolver import resolve_mentions, substitute_in_text
from app.db import ChatVisibility, async_session_maker
from app.schemas.new_chat import MentionedDocumentInfo

View file

@ -352,7 +352,7 @@ async def stream_anonymous_chat(
from langchain_core.messages import AIMessage, HumanMessage
from app.agents.new_chat.anonymous_agent import create_anonymous_chat_agent
from app.agents.new_chat.checkpointer import get_checkpointer
from app.agents.shared.checkpointer import get_checkpointer
from app.db import shielded_async_session
from app.services.new_streaming_service import VercelStreamingService
from app.services.token_tracking_service import start_turn

View file

@ -1934,7 +1934,7 @@ async def regenerate_response(
"""
from langchain_core.messages import HumanMessage
from app.agents.new_chat.checkpointer import get_checkpointer
from app.agents.shared.checkpointer import get_checkpointer
try:
# Verify thread exists and user has permission

View file

@ -28,7 +28,7 @@ from sqlalchemy.future import select
from app.agents.multi_agent_chat import create_multi_agent_chat_deep_agent
from app.agents.new_chat.chat_deepagent import create_surfsense_deep_agent
from app.agents.new_chat.checkpointer import get_checkpointer
from app.agents.shared.checkpointer import get_checkpointer
from app.agents.shared.context import SurfSenseContextSchema
from app.agents.shared.errors import BusyError
from app.agents.shared.filesystem_selection import FilesystemMode, FilesystemSelection
@ -39,7 +39,7 @@ from app.agents.shared.llm_config import (
load_agent_config,
load_global_llm_config_by_id,
)
from app.agents.new_chat.mention_resolver import resolve_mentions, substitute_in_text
from app.agents.shared.mention_resolver import resolve_mentions, substitute_in_text
from app.agents.new_chat.middleware.busy_mutex import (
end_turn,
get_cancel_state,

View file

@ -29,7 +29,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.future import select
from app.agents.shared.filesystem_selection import FilesystemMode
from app.agents.new_chat.mention_resolver import resolve_mentions, substitute_in_text
from app.agents.shared.mention_resolver import resolve_mentions, substitute_in_text
from app.db import (
ChatVisibility,
NewChatThread,

View file

@ -4,7 +4,7 @@ from __future__ import annotations
from sqlalchemy.ext.asyncio import AsyncSession
from app.agents.new_chat.checkpointer import get_checkpointer
from app.agents.shared.checkpointer import get_checkpointer
from app.db import SearchSourceConnectorType
from app.services.connector_service import ConnectorService
@ -33,7 +33,7 @@ async def setup_connector_and_firecrawl(
async def get_chat_checkpointer():
"""Resolve the PostgreSQL checkpointer for persistent conversation memory.
Thin wrapper around ``app.agents.new_chat.checkpointer.get_checkpointer`` so
Thin wrapper around ``app.agents.shared.checkpointer.get_checkpointer`` so
flow orchestrators can rely on a streaming-local symbol and we have a hook
point if the checkpointer source ever needs to vary per flow.
"""

View file

@ -15,8 +15,8 @@ from unittest.mock import AsyncMock, MagicMock
import pytest
from app.agents.new_chat import mention_resolver
from app.agents.new_chat.mention_resolver import (
from app.agents.shared import mention_resolver
from app.agents.shared.mention_resolver import (
ResolvedMention,
ResolvedMentionSet,
resolve_mentions,