diff --git a/surfsense_backend/app/agents/runtime/__init__.py b/surfsense_backend/app/agents/runtime/__init__.py new file mode 100644 index 000000000..eee94d84c --- /dev/null +++ b/surfsense_backend/app/agents/runtime/__init__.py @@ -0,0 +1,6 @@ +"""Agent runtime infrastructure wired by the boundary (not agent code). + +Modules here are cross-agent infra used to *run* agents (e.g. the LangGraph +Postgres checkpointer), as opposed to ``app/agents/shared/`` which holds code +imported by 2+ sibling agent packages. +""" diff --git a/surfsense_backend/app/agents/shared/checkpointer.py b/surfsense_backend/app/agents/runtime/checkpointer.py similarity index 100% rename from surfsense_backend/app/agents/shared/checkpointer.py rename to surfsense_backend/app/agents/runtime/checkpointer.py diff --git a/surfsense_backend/app/app.py b/surfsense_backend/app/app.py index 7990f5099..d2bf459b7 100644 --- a/surfsense_backend/app/app.py +++ b/surfsense_backend/app/app.py @@ -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.shared.checkpointer import ( +from app.agents.runtime.checkpointer import ( close_checkpointer, setup_checkpointer_tables, ) diff --git a/surfsense_backend/app/agents/shared/system_prompt.py b/surfsense_backend/app/prompts/default_system_instructions.py similarity index 90% rename from surfsense_backend/app/agents/shared/system_prompt.py rename to surfsense_backend/app/prompts/default_system_instructions.py index 11caaa024..fd0a8e186 100644 --- a/surfsense_backend/app/agents/shared/system_prompt.py +++ b/surfsense_backend/app/prompts/default_system_instructions.py @@ -1,5 +1,5 @@ """ -Thin compatibility wrapper around :mod:`app.agents.shared.prompts.composer`. +Thin compatibility wrapper around :mod:`app.prompts.system_prompt_composer.composer`. The composer split the previous monolithic prompt string into a fragment tree under ``prompts/`` plus a model-family dispatch step (see the @@ -11,7 +11,7 @@ that existing call sites — the multi-agent chat factory, anonymous chat routes, and the configurable-prompt admin path — keep working without churn. For new call sites prefer importing ``compose_system_prompt`` directly -from :mod:`app.agents.shared.prompts.composer`. +from :mod:`app.prompts.system_prompt_composer.composer`. """ from __future__ import annotations @@ -20,7 +20,7 @@ from datetime import UTC, datetime from app.db import ChatVisibility -from .prompts.composer import ( +from .system_prompt_composer.composer import ( _read_fragment, compose_system_prompt, detect_provider_variant, @@ -55,7 +55,7 @@ def build_surfsense_system_prompt( ) -> str: """Build the default SurfSense system prompt (citations on, defaults). - See :func:`app.agents.shared.prompts.composer.compose_system_prompt` + See :func:`app.prompts.system_prompt_composer.composer.compose_system_prompt` for full parameter docs. """ return compose_system_prompt( @@ -84,7 +84,7 @@ def build_configurable_system_prompt( ) -> str: """Build a configurable SurfSense system prompt (NewLLMConfig path). - See :func:`app.agents.shared.prompts.composer.compose_system_prompt` + See :func:`app.prompts.system_prompt_composer.composer.compose_system_prompt` for full parameter docs. """ return compose_system_prompt( @@ -108,7 +108,9 @@ def get_default_system_instructions() -> str: The output reflects the current fragment tree, not a baked-in constant. """ resolved_today = datetime.now(UTC).date().isoformat() - from .prompts.composer import _build_system_instructions # local import + from .system_prompt_composer.composer import ( + _build_system_instructions, # local import + ) return _build_system_instructions( visibility=ChatVisibility.PRIVATE, diff --git a/surfsense_backend/app/agents/shared/prompts/__init__.py b/surfsense_backend/app/prompts/system_prompt_composer/__init__.py similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/__init__.py rename to surfsense_backend/app/prompts/system_prompt_composer/__init__.py diff --git a/surfsense_backend/app/agents/shared/prompts/base/__init__.py b/surfsense_backend/app/prompts/system_prompt_composer/base/__init__.py similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/__init__.py rename to surfsense_backend/app/prompts/system_prompt_composer/base/__init__.py diff --git a/surfsense_backend/app/agents/shared/prompts/base/agent_private.md b/surfsense_backend/app/prompts/system_prompt_composer/base/agent_private.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/agent_private.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/agent_private.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/agent_team.md b/surfsense_backend/app/prompts/system_prompt_composer/base/agent_team.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/agent_team.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/agent_team.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/citations_off.md b/surfsense_backend/app/prompts/system_prompt_composer/base/citations_off.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/citations_off.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/citations_off.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/citations_on.md b/surfsense_backend/app/prompts/system_prompt_composer/base/citations_on.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/citations_on.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/citations_on.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/kb_only_policy_private.md b/surfsense_backend/app/prompts/system_prompt_composer/base/kb_only_policy_private.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/kb_only_policy_private.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/kb_only_policy_private.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/kb_only_policy_team.md b/surfsense_backend/app/prompts/system_prompt_composer/base/kb_only_policy_team.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/kb_only_policy_team.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/kb_only_policy_team.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/memory_protocol_private.md b/surfsense_backend/app/prompts/system_prompt_composer/base/memory_protocol_private.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/memory_protocol_private.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/memory_protocol_private.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/memory_protocol_team.md b/surfsense_backend/app/prompts/system_prompt_composer/base/memory_protocol_team.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/memory_protocol_team.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/memory_protocol_team.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/parameter_resolution.md b/surfsense_backend/app/prompts/system_prompt_composer/base/parameter_resolution.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/parameter_resolution.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/parameter_resolution.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/tool_routing_private.md b/surfsense_backend/app/prompts/system_prompt_composer/base/tool_routing_private.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/tool_routing_private.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/tool_routing_private.md diff --git a/surfsense_backend/app/agents/shared/prompts/base/tool_routing_team.md b/surfsense_backend/app/prompts/system_prompt_composer/base/tool_routing_team.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/base/tool_routing_team.md rename to surfsense_backend/app/prompts/system_prompt_composer/base/tool_routing_team.md diff --git a/surfsense_backend/app/agents/shared/prompts/composer.py b/surfsense_backend/app/prompts/system_prompt_composer/composer.py similarity index 99% rename from surfsense_backend/app/agents/shared/prompts/composer.py rename to surfsense_backend/app/prompts/system_prompt_composer/composer.py index 26640a864..3849af313 100644 --- a/surfsense_backend/app/agents/shared/prompts/composer.py +++ b/surfsense_backend/app/prompts/system_prompt_composer/composer.py @@ -2,7 +2,7 @@ Prompt composer for the SurfSense ``new_chat`` agent. This module assembles the agent's system prompt from the markdown fragments -under :mod:`app.agents.shared.prompts`. It replaces the monolithic +under :mod:`app.prompts.system_prompt_composer`. It replaces the monolithic ``system_prompt.py`` with a clean, fragment-based composition: :: @@ -119,7 +119,7 @@ def detect_provider_variant(model_name: str | None) -> ProviderVariant: # ----------------------------------------------------------------------------- -_PROMPTS_PACKAGE = "app.agents.shared.prompts" +_PROMPTS_PACKAGE = "app.prompts.system_prompt_composer" def _read_fragment(subpath: str) -> str: diff --git a/surfsense_backend/app/agents/shared/prompts/examples/__init__.py b/surfsense_backend/app/prompts/system_prompt_composer/examples/__init__.py similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/__init__.py rename to surfsense_backend/app/prompts/system_prompt_composer/examples/__init__.py diff --git a/surfsense_backend/app/agents/shared/prompts/examples/generate_image.md b/surfsense_backend/app/prompts/system_prompt_composer/examples/generate_image.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/generate_image.md rename to surfsense_backend/app/prompts/system_prompt_composer/examples/generate_image.md diff --git a/surfsense_backend/app/agents/shared/prompts/examples/generate_podcast.md b/surfsense_backend/app/prompts/system_prompt_composer/examples/generate_podcast.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/generate_podcast.md rename to surfsense_backend/app/prompts/system_prompt_composer/examples/generate_podcast.md diff --git a/surfsense_backend/app/agents/shared/prompts/examples/generate_report.md b/surfsense_backend/app/prompts/system_prompt_composer/examples/generate_report.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/generate_report.md rename to surfsense_backend/app/prompts/system_prompt_composer/examples/generate_report.md diff --git a/surfsense_backend/app/agents/shared/prompts/examples/generate_resume.md b/surfsense_backend/app/prompts/system_prompt_composer/examples/generate_resume.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/generate_resume.md rename to surfsense_backend/app/prompts/system_prompt_composer/examples/generate_resume.md diff --git a/surfsense_backend/app/agents/shared/prompts/examples/generate_video_presentation.md b/surfsense_backend/app/prompts/system_prompt_composer/examples/generate_video_presentation.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/generate_video_presentation.md rename to surfsense_backend/app/prompts/system_prompt_composer/examples/generate_video_presentation.md diff --git a/surfsense_backend/app/agents/shared/prompts/examples/scrape_webpage.md b/surfsense_backend/app/prompts/system_prompt_composer/examples/scrape_webpage.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/scrape_webpage.md rename to surfsense_backend/app/prompts/system_prompt_composer/examples/scrape_webpage.md diff --git a/surfsense_backend/app/agents/shared/prompts/examples/update_memory_private.md b/surfsense_backend/app/prompts/system_prompt_composer/examples/update_memory_private.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/update_memory_private.md rename to surfsense_backend/app/prompts/system_prompt_composer/examples/update_memory_private.md diff --git a/surfsense_backend/app/agents/shared/prompts/examples/update_memory_team.md b/surfsense_backend/app/prompts/system_prompt_composer/examples/update_memory_team.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/update_memory_team.md rename to surfsense_backend/app/prompts/system_prompt_composer/examples/update_memory_team.md diff --git a/surfsense_backend/app/agents/shared/prompts/examples/web_search.md b/surfsense_backend/app/prompts/system_prompt_composer/examples/web_search.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/examples/web_search.md rename to surfsense_backend/app/prompts/system_prompt_composer/examples/web_search.md diff --git a/surfsense_backend/app/agents/shared/prompts/providers/__init__.py b/surfsense_backend/app/prompts/system_prompt_composer/providers/__init__.py similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/__init__.py rename to surfsense_backend/app/prompts/system_prompt_composer/providers/__init__.py diff --git a/surfsense_backend/app/agents/shared/prompts/providers/anthropic.md b/surfsense_backend/app/prompts/system_prompt_composer/providers/anthropic.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/anthropic.md rename to surfsense_backend/app/prompts/system_prompt_composer/providers/anthropic.md diff --git a/surfsense_backend/app/agents/shared/prompts/providers/deepseek.md b/surfsense_backend/app/prompts/system_prompt_composer/providers/deepseek.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/deepseek.md rename to surfsense_backend/app/prompts/system_prompt_composer/providers/deepseek.md diff --git a/surfsense_backend/app/agents/shared/prompts/providers/default.md b/surfsense_backend/app/prompts/system_prompt_composer/providers/default.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/default.md rename to surfsense_backend/app/prompts/system_prompt_composer/providers/default.md diff --git a/surfsense_backend/app/agents/shared/prompts/providers/google.md b/surfsense_backend/app/prompts/system_prompt_composer/providers/google.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/google.md rename to surfsense_backend/app/prompts/system_prompt_composer/providers/google.md diff --git a/surfsense_backend/app/agents/shared/prompts/providers/grok.md b/surfsense_backend/app/prompts/system_prompt_composer/providers/grok.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/grok.md rename to surfsense_backend/app/prompts/system_prompt_composer/providers/grok.md diff --git a/surfsense_backend/app/agents/shared/prompts/providers/kimi.md b/surfsense_backend/app/prompts/system_prompt_composer/providers/kimi.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/kimi.md rename to surfsense_backend/app/prompts/system_prompt_composer/providers/kimi.md diff --git a/surfsense_backend/app/agents/shared/prompts/providers/openai_classic.md b/surfsense_backend/app/prompts/system_prompt_composer/providers/openai_classic.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/openai_classic.md rename to surfsense_backend/app/prompts/system_prompt_composer/providers/openai_classic.md diff --git a/surfsense_backend/app/agents/shared/prompts/providers/openai_codex.md b/surfsense_backend/app/prompts/system_prompt_composer/providers/openai_codex.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/openai_codex.md rename to surfsense_backend/app/prompts/system_prompt_composer/providers/openai_codex.md diff --git a/surfsense_backend/app/agents/shared/prompts/providers/openai_reasoning.md b/surfsense_backend/app/prompts/system_prompt_composer/providers/openai_reasoning.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/providers/openai_reasoning.md rename to surfsense_backend/app/prompts/system_prompt_composer/providers/openai_reasoning.md diff --git a/surfsense_backend/app/agents/shared/prompts/routing/__init__.py b/surfsense_backend/app/prompts/system_prompt_composer/routing/__init__.py similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/routing/__init__.py rename to surfsense_backend/app/prompts/system_prompt_composer/routing/__init__.py diff --git a/surfsense_backend/app/agents/shared/prompts/routing/jira.md b/surfsense_backend/app/prompts/system_prompt_composer/routing/jira.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/routing/jira.md rename to surfsense_backend/app/prompts/system_prompt_composer/routing/jira.md diff --git a/surfsense_backend/app/agents/shared/prompts/routing/linear.md b/surfsense_backend/app/prompts/system_prompt_composer/routing/linear.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/routing/linear.md rename to surfsense_backend/app/prompts/system_prompt_composer/routing/linear.md diff --git a/surfsense_backend/app/agents/shared/prompts/routing/slack.md b/surfsense_backend/app/prompts/system_prompt_composer/routing/slack.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/routing/slack.md rename to surfsense_backend/app/prompts/system_prompt_composer/routing/slack.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/__init__.py b/surfsense_backend/app/prompts/system_prompt_composer/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/__init__.py rename to surfsense_backend/app/prompts/system_prompt_composer/tools/__init__.py diff --git a/surfsense_backend/app/agents/shared/prompts/tools/_preamble.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/_preamble.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/_preamble.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/_preamble.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/generate_image.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/generate_image.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/generate_image.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/generate_image.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/generate_podcast.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/generate_podcast.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/generate_podcast.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/generate_podcast.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/generate_report.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/generate_report.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/generate_report.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/generate_report.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/generate_resume.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/generate_resume.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/generate_resume.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/generate_resume.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/generate_video_presentation.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/generate_video_presentation.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/generate_video_presentation.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/generate_video_presentation.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/scrape_webpage.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/scrape_webpage.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/scrape_webpage.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/scrape_webpage.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/update_memory_private.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/update_memory_private.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/update_memory_private.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/update_memory_private.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/update_memory_team.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/update_memory_team.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/update_memory_team.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/update_memory_team.md diff --git a/surfsense_backend/app/agents/shared/prompts/tools/web_search.md b/surfsense_backend/app/prompts/system_prompt_composer/tools/web_search.md similarity index 100% rename from surfsense_backend/app/agents/shared/prompts/tools/web_search.md rename to surfsense_backend/app/prompts/system_prompt_composer/tools/web_search.md diff --git a/surfsense_backend/app/routes/anonymous_chat_routes.py b/surfsense_backend/app/routes/anonymous_chat_routes.py index 0adb545ee..e9c9a9079 100644 --- a/surfsense_backend/app/routes/anonymous_chat_routes.py +++ b/surfsense_backend/app/routes/anonymous_chat_routes.py @@ -352,7 +352,7 @@ async def stream_anonymous_chat( from langchain_core.messages import AIMessage, HumanMessage from app.agents.anonymous_chat import create_anonymous_chat_agent - from app.agents.shared.checkpointer import get_checkpointer + from app.agents.runtime.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 diff --git a/surfsense_backend/app/routes/new_chat_routes.py b/surfsense_backend/app/routes/new_chat_routes.py index 31344293b..0e8ede3ba 100644 --- a/surfsense_backend/app/routes/new_chat_routes.py +++ b/surfsense_backend/app/routes/new_chat_routes.py @@ -1934,7 +1934,7 @@ async def regenerate_response( """ from langchain_core.messages import HumanMessage - from app.agents.shared.checkpointer import get_checkpointer + from app.agents.runtime.checkpointer import get_checkpointer try: # Verify thread exists and user has permission diff --git a/surfsense_backend/app/routes/new_llm_config_routes.py b/surfsense_backend/app/routes/new_llm_config_routes.py index 7d9af7b0c..84d66bb13 100644 --- a/surfsense_backend/app/routes/new_llm_config_routes.py +++ b/surfsense_backend/app/routes/new_llm_config_routes.py @@ -13,7 +13,6 @@ from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select -from app.agents.shared.system_prompt import get_default_system_instructions from app.config import config from app.db import ( NewLLMConfig, @@ -21,6 +20,7 @@ from app.db import ( User, get_async_session, ) +from app.prompts.default_system_instructions import get_default_system_instructions from app.schemas import ( DefaultSystemInstructionsResponse, GlobalNewLLMConfigRead, diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/shared/pre_stream_setup.py b/surfsense_backend/app/tasks/chat/streaming/flows/shared/pre_stream_setup.py index 316500abb..4376046d6 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/shared/pre_stream_setup.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/shared/pre_stream_setup.py @@ -4,7 +4,7 @@ from __future__ import annotations from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.shared.checkpointer import get_checkpointer +from app.agents.runtime.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.shared.checkpointer.get_checkpointer`` so + Thin wrapper around ``app.agents.runtime.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. """ diff --git a/surfsense_backend/tests/unit/agents/new_chat/prompts/test_composer.py b/surfsense_backend/tests/unit/agents/new_chat/prompts/test_composer.py index e2cfaf610..4f0369e12 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/prompts/test_composer.py +++ b/surfsense_backend/tests/unit/agents/new_chat/prompts/test_composer.py @@ -6,12 +6,12 @@ from datetime import UTC, datetime import pytest -from app.agents.shared.prompts.composer import ( +from app.db import ChatVisibility +from app.prompts.system_prompt_composer.composer import ( ALL_TOOL_NAMES_ORDERED, compose_system_prompt, detect_provider_variant, ) -from app.db import ChatVisibility pytestmark = pytest.mark.unit @@ -64,7 +64,7 @@ class TestProviderVariantDetection: ``gpt-5`` reasoning regex first. Codex is the more specialised prompt and mirrors OpenCode's dispatch order. """ - from app.agents.shared.prompts.composer import detect_provider_variant + from app.prompts.system_prompt_composer.composer import detect_provider_variant assert detect_provider_variant("openai:gpt-5-codex") == "openai_codex" assert detect_provider_variant("openai:gpt-5") == "openai_reasoning"