diff --git a/surfsense_backend/app/agents/chat/__init__.py b/surfsense_backend/app/agents/chat/__init__.py new file mode 100644 index 000000000..4f6b7d07f --- /dev/null +++ b/surfsense_backend/app/agents/chat/__init__.py @@ -0,0 +1,5 @@ +"""Chat agents category. + +Groups the conversational agents that share a kernel: ``anonymous_chat`` and +``multi_agent_chat``. Code shared by *both* lives in ``chat/shared/``. +""" diff --git a/surfsense_backend/app/agents/anonymous_chat/__init__.py b/surfsense_backend/app/agents/chat/anonymous_chat/__init__.py similarity index 90% rename from surfsense_backend/app/agents/anonymous_chat/__init__.py rename to surfsense_backend/app/agents/chat/anonymous_chat/__init__.py index 91d857dc5..ba3b2a6f1 100644 --- a/surfsense_backend/app/agents/anonymous_chat/__init__.py +++ b/surfsense_backend/app/agents/chat/anonymous_chat/__init__.py @@ -6,7 +6,7 @@ subagents, skills, memory) and answers with an optional ``web_search`` tool and an optional read-only uploaded document. See :mod:`.agent` for details. """ -from app.agents.anonymous_chat.agent import ( +from app.agents.chat.anonymous_chat.agent import ( build_anonymous_system_prompt, create_anonymous_chat_agent, ) diff --git a/surfsense_backend/app/agents/anonymous_chat/agent.py b/surfsense_backend/app/agents/chat/anonymous_chat/agent.py similarity index 97% rename from surfsense_backend/app/agents/anonymous_chat/agent.py rename to surfsense_backend/app/agents/chat/anonymous_chat/agent.py index 24ad6487c..250b4c158 100644 --- a/surfsense_backend/app/agents/anonymous_chat/agent.py +++ b/surfsense_backend/app/agents/chat/anonymous_chat/agent.py @@ -27,12 +27,12 @@ from langchain.agents.middleware import ( from langchain_core.language_models import BaseChatModel from langgraph.types import Checkpointer -from app.agents.shared.context import SurfSenseContextSchema -from app.agents.shared.middleware import ( +from app.agents.chat.shared.context import SurfSenseContextSchema +from app.agents.chat.shared.middleware import ( RetryAfterMiddleware, create_surfsense_compaction_middleware, ) -from app.agents.shared.tools.web_search import create_web_search_tool +from app.agents.chat.shared.tools.web_search import create_web_search_tool # Cap how much of an uploaded document we inline into the system prompt. The # upload endpoint allows files up to several MB, but the doc is re-sent on diff --git a/surfsense_backend/app/agents/multi_agent_chat/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/constants.py b/surfsense_backend/app/agents/chat/multi_agent_chat/constants.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/constants.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/constants.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/context_prune/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/context_prune/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/context_prune/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/context_prune/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/context_prune/prune_tool_names.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/context_prune/prune_tool_names.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/context_prune/prune_tool_names.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/context_prune/prune_tool_names.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/graph/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/graph/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/graph/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/graph/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/graph/compile_graph_sync.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/graph/compile_graph_sync.py similarity index 89% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/graph/compile_graph_sync.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/graph/compile_graph_sync.py index 001316f52..2755d5d96 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/graph/compile_graph_sync.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/graph/compile_graph_sync.py @@ -11,12 +11,12 @@ from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool from langgraph.types import Checkpointer -from app.agents.multi_agent_chat.main_agent.middleware.stack import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.stack import ( build_main_agent_deepagent_middleware, ) -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.shared.context import SurfSenseContextSchema +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.shared.context import SurfSenseContextSchema from app.db import ChatVisibility diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/action_log/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/action_log/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/action_log/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/action_log/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/action_log/builder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/action_log/builder.py similarity index 86% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/action_log/builder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/action_log/builder.py index c6c470aad..9213f1339 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/action_log/builder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/action_log/builder.py @@ -4,8 +4,8 @@ from __future__ import annotations import logging -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.flags import enabled +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.flags import enabled from .middleware import ActionLogMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/action_log/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/action_log/middleware.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/action_log/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/action_log/middleware.py index 1a983515e..c383ae12f 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/action_log/middleware.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/action_log/middleware.py @@ -34,7 +34,7 @@ from langchain.agents.middleware import AgentMiddleware from langchain_core.callbacks import adispatch_custom_event from langchain_core.messages import ToolMessage -from app.agents.multi_agent_chat.shared.feature_flags import get_flags +from app.agents.chat.multi_agent_chat.shared.feature_flags import get_flags if TYPE_CHECKING: # pragma: no cover - type-only from langchain.agents.middleware.types import ToolCallRequest diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/anonymous_document/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/anonymous_document/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/anonymous_document/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/anonymous_document/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/anonymous_document/builder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/anonymous_document/builder.py similarity index 83% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/anonymous_document/builder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/anonymous_document/builder.py index 3b5477000..f03543124 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/anonymous_document/builder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/anonymous_document/builder.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode from .middleware import AnonymousDocumentMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/anonymous_document/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/anonymous_document/middleware.py similarity index 95% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/anonymous_document/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/anonymous_document/middleware.py index cfe8b3d83..6479f99e3 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/anonymous_document/middleware.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/anonymous_document/middleware.py @@ -24,11 +24,11 @@ from typing import Any from langchain.agents.middleware import AgentMiddleware, AgentState from langgraph.runtime import Runtime -from app.agents.multi_agent_chat.shared.path_resolver import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import ( DOCUMENTS_ROOT, safe_filename, ) -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/busy_mutex.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/busy_mutex.py new file mode 100644 index 000000000..c550a1207 --- /dev/null +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/busy_mutex.py @@ -0,0 +1,13 @@ +"""Per-thread cooperative lock around the whole turn.""" + +from __future__ import annotations + +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.busy_mutex import ( + BusyMutexMiddleware, +) +from app.agents.chat.multi_agent_chat.shared.middleware.flags import enabled + + +def build_busy_mutex_mw(flags: AgentFeatureFlags) -> BusyMutexMiddleware | None: + return BusyMutexMiddleware() if enabled(flags, "enable_busy_mutex") else None diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/config.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/config.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/config.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/config.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/constants.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/constants.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/constants.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/constants.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/middleware.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/middleware.py index 6cc71f252..a1545ba33 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/middleware.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/middleware.py @@ -16,7 +16,7 @@ from langchain.agents import create_agent from langchain.chat_models import init_chat_model from langgraph.types import Checkpointer -from app.agents.multi_agent_chat.subagents.shared.spec import ( +from app.agents.chat.multi_agent_chat.subagents.shared.spec import ( SURF_CONTEXT_HINT_PROVIDER_KEY, ) from app.utils.perf import get_perf_logger diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/propagation.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/propagation.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/propagation.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/propagation.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/resume.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/resume.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/resume.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/resume.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/resume_routing.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/resume_routing.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/resume_routing.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/resume_routing.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/spawn_paused.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/spawn_paused.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/spawn_paused.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/spawn_paused.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_description.py similarity index 80% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_description.py index 73afa6823..3464b889a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_description.py @@ -6,7 +6,7 @@ and the ```` block render from the same source. from __future__ import annotations -from app.agents.multi_agent_chat.main_agent.system_prompt.builder.load_md import ( +from app.agents.chat.multi_agent_chat.main_agent.system_prompt.builder.load_md import ( read_prompt_md, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_tool.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_tool.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_tool.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_tool.py index eaed9a55f..4c8791db6 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_tool.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/checkpointed_subagent_middleware/task_tool.py @@ -23,7 +23,7 @@ from langchain_core.tools import StructuredTool from langgraph.errors import GraphInterrupt from langgraph.types import Command, Interrupt -from app.agents.multi_agent_chat.subagents.shared.spec import ( +from app.agents.chat.multi_agent_chat.subagents.shared.spec import ( SURF_CONTEXT_HINT_PROVIDER_KEY, ContextHintProvider, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/context_editing/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/context_editing/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/context_editing/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/context_editing/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/context_editing/builder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/context_editing/builder.py similarity index 84% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/context_editing/builder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/context_editing/builder.py index 178633220..1d7a2f47f 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/context_editing/builder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/context_editing/builder.py @@ -7,11 +7,11 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.main_agent.context_prune.prune_tool_names import ( +from app.agents.chat.multi_agent_chat.main_agent.context_prune.prune_tool_names import ( safe_exclude_tools, ) -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.flags import enabled +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.flags import enabled from .middleware import ( ClearToolUsesEdit, diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/context_editing/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/context_editing/middleware.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/context_editing/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/context_editing/middleware.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/dedup_hitl.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/dedup_hitl.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/dedup_hitl.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/dedup_hitl.py index 4ea5f3c2e..7710731ab 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/dedup_hitl.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/dedup_hitl.py @@ -29,7 +29,7 @@ from langchain.agents.middleware import AgentMiddleware, AgentState from langchain_core.tools import BaseTool from langgraph.runtime import Runtime -from app.agents.multi_agent_chat.shared.middleware.dedup_tool_calls import ( +from app.agents.chat.multi_agent_chat.shared.middleware.dedup_tool_calls import ( DedupResolver, wrap_dedup_key_by_arg_name, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/doom_loop/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/doom_loop/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/doom_loop/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/doom_loop/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/doom_loop/builder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/doom_loop/builder.py similarity index 67% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/doom_loop/builder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/doom_loop/builder.py index 4b3850545..96024adfd 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/doom_loop/builder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/doom_loop/builder.py @@ -2,8 +2,8 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.flags import enabled +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.flags import enabled from .middleware import DoomLoopMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/doom_loop/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/doom_loop/middleware.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/doom_loop/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/doom_loop/middleware.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/kb_persistence.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/kb_persistence.py similarity index 78% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/kb_persistence.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/kb_persistence.py index 105a38e7b..5a64d993c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/kb_persistence.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/kb_persistence.py @@ -2,8 +2,8 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.middleware.kb_persistence import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.middleware.kb_persistence import ( KnowledgeBasePersistenceMiddleware, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_priority.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_priority.py similarity index 84% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_priority.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_priority.py index 55b0e08df..310dd676c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_priority.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_priority.py @@ -4,8 +4,8 @@ from __future__ import annotations from langchain_core.language_models import BaseChatModel -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.middleware.knowledge_search import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.middleware.knowledge_search import ( KnowledgePriorityMiddleware, ) from app.services.llm_service import get_planner_llm diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_tree/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_tree/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_tree/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_tree/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_tree/builder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_tree/builder.py similarity index 87% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_tree/builder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_tree/builder.py index fb80e2ffc..644d1e55a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_tree/builder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_tree/builder.py @@ -4,7 +4,7 @@ from __future__ import annotations from langchain_core.language_models import BaseChatModel -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode from .middleware import KnowledgeTreeMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_tree/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_tree/middleware.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_tree/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_tree/middleware.py index f9d68f064..c0461626c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/knowledge_tree/middleware.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/knowledge_tree/middleware.py @@ -33,14 +33,14 @@ from langchain_core.messages import SystemMessage from langgraph.runtime import Runtime from sqlalchemy import select -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.path_resolver import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.path_resolver import ( DOCUMENTS_ROOT, PathIndex, build_path_index, doc_to_virtual_path, ) -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) from app.db import Document, shielded_async_session diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/noop_injection/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/noop_injection/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/noop_injection/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/noop_injection/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/noop_injection/builder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/noop_injection/builder.py similarity index 68% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/noop_injection/builder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/noop_injection/builder.py index f02141701..774cb0f46 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/noop_injection/builder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/noop_injection/builder.py @@ -2,8 +2,8 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.flags import enabled +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.flags import enabled from .middleware import NoopInjectionMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/noop_injection/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/noop_injection/middleware.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/noop_injection/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/noop_injection/middleware.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/otel_span/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/otel_span/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/otel_span/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/otel_span/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/otel_span/builder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/otel_span/builder.py similarity index 62% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/otel_span/builder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/otel_span/builder.py index 344aed680..fe3bce4c5 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/otel_span/builder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/otel_span/builder.py @@ -2,8 +2,8 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.flags import enabled +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.flags import enabled from .middleware import OtelSpanMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/otel_span/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/otel_span/middleware.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/otel_span/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/otel_span/middleware.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/plugins.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/plugins.py similarity index 88% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/plugins.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/plugins.py index 347ed8a42..43f4136ec 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/plugins.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/plugins.py @@ -7,8 +7,8 @@ from typing import Any from langchain_core.language_models import BaseChatModel -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.flags import enabled +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.flags import enabled from app.db import ChatVisibility from ..plugins.loader import ( diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/skills.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/skills.py similarity index 78% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/skills.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/skills.py index a65370a8e..13c62e817 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/skills.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/skills.py @@ -6,9 +6,9 @@ import logging from deepagents.middleware.skills import SkillsMiddleware -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.middleware.flags import enabled +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.middleware.flags import enabled from ..skills.backends import build_skills_backend_factory, default_skills_sources diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/stack.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/stack.py similarity index 85% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/stack.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/stack.py index a3a62d07d..d56b6c41f 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/stack.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/stack.py @@ -20,38 +20,40 @@ from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool from langgraph.types import Checkpointer -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.middleware.anthropic_cache import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.middleware.anthropic_cache import ( build_anthropic_cache_mw, ) -from app.agents.multi_agent_chat.shared.middleware.compaction import build_compaction_mw -from app.agents.multi_agent_chat.shared.middleware.kb_context_projection import ( +from app.agents.chat.multi_agent_chat.shared.middleware.compaction import ( + build_compaction_mw, +) +from app.agents.chat.multi_agent_chat.shared.middleware.kb_context_projection import ( build_kb_context_projection_mw, ) -from app.agents.multi_agent_chat.shared.middleware.memory import build_memory_mw -from app.agents.multi_agent_chat.shared.middleware.patch_tool_calls import ( +from app.agents.chat.multi_agent_chat.shared.middleware.memory import build_memory_mw +from app.agents.chat.multi_agent_chat.shared.middleware.patch_tool_calls import ( build_patch_tool_calls_mw, ) -from app.agents.multi_agent_chat.shared.middleware.permissions import ( +from app.agents.chat.multi_agent_chat.shared.middleware.permissions import ( build_permission_mw, ) -from app.agents.multi_agent_chat.shared.middleware.resilience import ( +from app.agents.chat.multi_agent_chat.shared.middleware.resilience import ( build_resilience_middlewares, ) -from app.agents.multi_agent_chat.shared.middleware.todos import build_todos_mw -from app.agents.multi_agent_chat.subagents import ( +from app.agents.chat.multi_agent_chat.shared.middleware.todos import build_todos_mw +from app.agents.chat.multi_agent_chat.subagents import ( build_subagents, get_subagents_to_exclude, ) -from app.agents.multi_agent_chat.subagents.builtins.knowledge_base.agent import ( +from app.agents.chat.multi_agent_chat.subagents.builtins.knowledge_base.agent import ( READONLY_NAME as KB_READONLY_NAME, build_readonly_subagent as build_kb_readonly_subagent, ) -from app.agents.multi_agent_chat.subagents.builtins.knowledge_base.ask_knowledge_base_tool import ( +from app.agents.chat.multi_agent_chat.subagents.builtins.knowledge_base.ask_knowledge_base_tool import ( build_ask_knowledge_base_tool, ) -from app.agents.multi_agent_chat.subagents.shared.middleware.middleware_stack import ( +from app.agents.chat.multi_agent_chat.subagents.shared.middleware.middleware_stack import ( build_subagent_middleware_stack, ) from app.db import ChatVisibility diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/tool_call_repair/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/tool_call_repair/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/tool_call_repair/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/tool_call_repair/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/tool_call_repair/builder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/tool_call_repair/builder.py similarity index 87% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/tool_call_repair/builder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/tool_call_repair/builder.py index 4f8f89e4f..a1cc558b2 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/tool_call_repair/builder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/tool_call_repair/builder.py @@ -6,8 +6,8 @@ from collections.abc import Sequence from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.flags import enabled +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.flags import enabled from .middleware import ToolCallNameRepairMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/tool_call_repair/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/tool_call_repair/middleware.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/tool_call_repair/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/tool_call_repair/middleware.py index 93130ab30..260e5cbd4 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/tool_call_repair/middleware.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/middleware/tool_call_repair/middleware.py @@ -120,7 +120,7 @@ class ToolCallNameRepairMiddleware( # Stage 2 — invalid fallback # Local import keeps the middleware module import-light and avoids any # tools <-> middleware import-order coupling at module scope. - from app.agents.multi_agent_chat.main_agent.tools.invalid_tool import ( + from app.agents.chat.multi_agent_chat.main_agent.tools.invalid_tool import ( INVALID_TOOL_NAME, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/plugins/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/plugins/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/plugins/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/plugins/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/plugins/loader.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/plugins/loader.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/plugins/loader.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/plugins/loader.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/plugins/year_substituter.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/plugins/year_substituter.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/plugins/year_substituter.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/plugins/year_substituter.py index bc0ef87a1..f6564fe6e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/plugins/year_substituter.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/plugins/year_substituter.py @@ -17,7 +17,7 @@ Wire-up in ``pyproject.toml`` (illustrative; the in-repo plugin doesn't need this -- it's already on the import path):: [project.entry-points."surfsense.plugins"] - year_substituter = "app.agents.multi_agent_chat.main_agent.plugins.year_substituter:make_middleware" + year_substituter = "app.agents.chat.multi_agent_chat.main_agent.plugins.year_substituter:make_middleware" """ from __future__ import annotations diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/agent_cache.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/agent_cache.py similarity index 95% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/agent_cache.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/agent_cache.py index 3fd370553..65fa02749 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/agent_cache.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/agent_cache.py @@ -10,8 +10,8 @@ from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool from langgraph.types import Checkpointer -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode from app.db import ChatVisibility from ..graph.compile_graph_sync import build_compiled_agent_graph_sync diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/agent_cache_store.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/agent_cache_store.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/agent_cache_store.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/agent_cache_store.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/connector_searchable_types.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/connector_searchable_types.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/connector_searchable_types.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/connector_searchable_types.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/factory.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/factory.py similarity index 95% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/factory.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/factory.py index 58054488d..01af5e362 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/runtime/factory.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/runtime/factory.py @@ -12,26 +12,26 @@ from langchain_core.tools import BaseTool from langgraph.types import Checkpointer from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.feature_flags import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import ( AgentFeatureFlags, get_flags, ) -from app.agents.multi_agent_chat.shared.filesystem_selection import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( FilesystemMode, FilesystemSelection, ) -from app.agents.multi_agent_chat.shared.llm_config import AgentConfig -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( +from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( build_backend_resolver, ) -from app.agents.multi_agent_chat.shared.prompt_caching import ( +from app.agents.chat.multi_agent_chat.shared.prompt_caching import ( apply_litellm_prompt_caching, ) -from app.agents.multi_agent_chat.subagents import ( +from app.agents.chat.multi_agent_chat.subagents import ( get_subagents_to_exclude, main_prompt_registry_subagent_lines, ) -from app.agents.multi_agent_chat.subagents.mcp_tools.index import ( +from app.agents.chat.multi_agent_chat.subagents.mcp_tools.index import ( load_mcp_tools_by_connector, ) from app.db import ChatVisibility diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/backends.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/backends.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/backends.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/backends.py index 4b6179158..31620fe9b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/backends.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/backends.py @@ -47,7 +47,7 @@ from deepagents.backends.state import StateBackend if TYPE_CHECKING: from langchain.tools import ToolRuntime - from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( + from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) @@ -310,7 +310,7 @@ def build_skills_backend_factory( # Imported lazily to avoid a hard dependency at module import time: # ``KBPostgresBackend`` pulls in DB models, which are unnecessary for # the unit-tested builtin path. - from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( + from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/email-drafting/SKILL.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/email-drafting/SKILL.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/email-drafting/SKILL.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/email-drafting/SKILL.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/kb-research/SKILL.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/kb-research/SKILL.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/kb-research/SKILL.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/kb-research/SKILL.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/meeting-prep/SKILL.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/meeting-prep/SKILL.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/meeting-prep/SKILL.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/meeting-prep/SKILL.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/report-writing/SKILL.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/report-writing/SKILL.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/report-writing/SKILL.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/report-writing/SKILL.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/slack-summary/SKILL.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/slack-summary/SKILL.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/skills/builtin/slack-summary/SKILL.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/skills/builtin/slack-summary/SKILL.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/compose.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/compose.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/compose.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/compose.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/load_md.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/load_md.py similarity index 85% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/load_md.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/load_md.py index 61e30b1c7..fae45f520 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/load_md.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/load_md.py @@ -4,7 +4,7 @@ from __future__ import annotations from importlib import resources -_PROMPTS_PACKAGE = "app.agents.multi_agent_chat.main_agent.system_prompt.prompts" +_PROMPTS_PACKAGE = "app.agents.chat.multi_agent_chat.main_agent.system_prompt.prompts" def read_prompt_md(filename: str) -> str: diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/citations.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/citations.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/citations.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/citations.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/dynamic_context.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/dynamic_context.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/dynamic_context.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/dynamic_context.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/identity.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/identity.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/identity.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/identity.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/memory_protocol.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/memory_protocol.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/memory_protocol.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/memory_protocol.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/specialists.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/specialists.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/specialists.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/specialists.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/tools.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/tools.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/sections/tools.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/sections/tools.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/tool_instruction_block.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/tool_instruction_block.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/builder/tool_instruction_block.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/builder/tool_instruction_block.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/citations/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/citations/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/citations/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/citations/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/citations/off.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/citations/off.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/citations/off.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/citations/off.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/citations/on.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/citations/on.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/citations/on.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/citations/on.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/core_behavior.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/core_behavior.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/core_behavior.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/core_behavior.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/private.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/private.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/private.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/private.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/team.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/team.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/team.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/dynamic_context/team.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/identity/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/identity/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/identity/private.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/private.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/identity/private.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/private.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/identity/team.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/team.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/identity/team.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/identity/team.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/kb_first.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/kb_first.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/kb_first.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/kb_first.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/private.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/private.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/private.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/private.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/team.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/team.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/team.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/memory_protocol/team.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/output_format.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/output_format.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/output_format.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/output_format.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/anthropic.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/anthropic.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/anthropic.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/anthropic.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/deepseek.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/deepseek.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/deepseek.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/deepseek.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/default.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/default.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/default.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/default.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/google.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/google.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/google.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/google.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/grok.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/grok.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/grok.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/grok.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/kimi.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/kimi.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/kimi.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/kimi.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_classic.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_classic.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_classic.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_classic.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_codex.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_codex.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_codex.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_codex.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_reasoning.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_reasoning.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_reasoning.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/providers/openai_reasoning.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/refusal_and_limits.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/refusal_and_limits.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/refusal_and_limits.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/refusal_and_limits.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/reminder.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/reminder.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/reminder.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/reminder.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/routing.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/routing.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/routing.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/routing.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/example.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/example.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/example.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/create_automation/example.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/example.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/example.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/example.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/scrape_webpage/example.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/example.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/example.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/example.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/task/example.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/example.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/example.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/example.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/private/example.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/example.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/example.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/example.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/update_memory/team/example.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/example.md b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/example.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/example.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/system_prompt/prompts/tools/web_search/example.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/automation/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/automation/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/automation/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/automation/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/automation/create.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/automation/create.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/automation/create.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/automation/create.py index 62d39fcf2..4472a11ac 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/automation/create.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/automation/create.py @@ -27,7 +27,7 @@ from langchain_core.messages import HumanMessage from langchain_core.tools import tool from pydantic import ValidationError -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.automations.schemas.api import AutomationCreate diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/automation/prompt.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/automation/prompt.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/automation/prompt.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/automation/prompt.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/index.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/index.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/invalid_tool.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/invalid_tool.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/invalid_tool.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/invalid_tool.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/registry.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/registry.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/registry.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/registry.py index 515e88eb3..9e2e20d35 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/registry.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/registry.py @@ -2,14 +2,14 @@ The main agent exposes only a small, fixed set of SurfSense tools to its LLM; connector integrations, MCP, and deliverables are delegated to ``task`` -subagents (see :mod:`app.agents.multi_agent_chat.main_agent.tools.index`). +subagents (see :mod:`app.agents.chat.multi_agent_chat.main_agent.tools.index`). This module is the *building* counterpart to that name list: it owns the factories for those few tools and nothing else, so the main agent's tool surface stays self-contained and connector-free. Tool *display* metadata for the whole app (the ``/agent/tools`` listing -endpoint) lives separately in :mod:`app.agents.multi_agent_chat.shared.tools.catalog`, a +endpoint) lives separately in :mod:`app.agents.chat.multi_agent_chat.shared.tools.catalog`, a pure-data module that imports no connectors. This registry only governs what the main agent actually builds and binds. """ @@ -21,7 +21,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.shared.tools.web_search import create_web_search_tool +from app.agents.chat.shared.tools.web_search import create_web_search_tool from app.db import ChatVisibility from .scrape_webpage import create_scrape_webpage_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/scrape_webpage.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/scrape_webpage.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/scrape_webpage.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/scrape_webpage.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/update_memory.py b/surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/update_memory.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/main_agent/tools/update_memory.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/main_agent/tools/update_memory.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/date_filters.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/date_filters.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/date_filters.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/date_filters.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/errors.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/errors.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/errors.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/errors.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/feature_flags.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/feature_flags.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/feature_flags.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/feature_flags.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/filesystem_selection.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/filesystem_selection.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/filesystem_selection.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/filesystem_selection.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/llm_config.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/llm_config.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/shared/llm_config.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/llm_config.py index d4228df46..453942b9e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/llm_config.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/llm_config.py @@ -27,7 +27,7 @@ from litellm import get_model_info from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.prompt_caching import ( +from app.agents.chat.multi_agent_chat.shared.prompt_caching import ( apply_litellm_prompt_caching, ) from app.services.llm_router_service import ( diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/mention_resolver.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/mention_resolver.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/shared/mention_resolver.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/mention_resolver.py index 908a2db04..83a2c6c69 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/mention_resolver.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/mention_resolver.py @@ -36,7 +36,7 @@ from dataclasses import dataclass, field from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.path_resolver import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import ( DOCUMENTS_ROOT, build_path_index, doc_to_virtual_path, diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/anthropic_cache.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/anthropic_cache.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/anthropic_cache.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/anthropic_cache.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/busy_mutex.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/busy_mutex.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/busy_mutex.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/busy_mutex.py index 5d15b063d..4b397e2ca 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/busy_mutex.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/busy_mutex.py @@ -20,7 +20,7 @@ What this provides: tools can poll to abort cooperatively. The event is reset between turns. Tools should check ``runtime.context.cancel_event.is_set()`` in tight inner loops. -- A typed :class:`~app.agents.multi_agent_chat.shared.errors.BusyError` raised when a +- A typed :class:`~app.agents.chat.multi_agent_chat.shared.errors.BusyError` raised when a second turn arrives while the lock is held. Note: SurfSense's ``stream_new_chat`` is the call site that should @@ -46,7 +46,7 @@ from langchain.agents.middleware.types import ( from langgraph.config import get_config from langgraph.runtime import Runtime -from app.agents.multi_agent_chat.shared.errors import BusyError +from app.agents.chat.multi_agent_chat.shared.errors import BusyError logger = logging.getLogger(__name__) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/compaction.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/compaction.py similarity index 80% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/compaction.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/compaction.py index b5ca1afb4..c1d26429e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/compaction.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/compaction.py @@ -7,7 +7,7 @@ from typing import Any from deepagents.backends import StateBackend from langchain_core.language_models import BaseChatModel -from app.agents.shared.middleware import create_surfsense_compaction_middleware +from app.agents.chat.shared.middleware import create_surfsense_compaction_middleware def build_compaction_mw(llm: BaseChatModel) -> Any: diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/dedup_tool_calls.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/dedup_tool_calls.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/dedup_tool_calls.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/dedup_tool_calls.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/document_xml.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/document_xml.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/document_xml.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/document_xml.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/kb_postgres.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/kb_postgres.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/kb_postgres.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/kb_postgres.py index ac2d77010..20ac0b9b8 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/kb_postgres.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/kb_postgres.py @@ -42,10 +42,10 @@ from langchain.tools import ToolRuntime from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.document_xml import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.document_xml import ( build_document_xml, ) -from app.agents.multi_agent_chat.shared.path_resolver import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import ( DOCUMENTS_ROOT, build_path_index, doc_to_virtual_path, diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/local_folder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/local_folder.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/local_folder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/local_folder.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/multi_root_local_folder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/multi_root_local_folder.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/multi_root_local_folder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/multi_root_local_folder.py index e443995f4..db84a17eb 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/multi_root_local_folder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/multi_root_local_folder.py @@ -15,7 +15,7 @@ from deepagents.backends.protocol import ( WriteResult, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.local_folder import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.local_folder import ( LocalFolderBackend, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/resolver.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/resolver.py similarity index 87% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/resolver.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/resolver.py index 0e4ed5150..6c35f369f 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/backends/resolver.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/backends/resolver.py @@ -9,14 +9,14 @@ from deepagents.backends.protocol import BackendProtocol from deepagents.backends.state import StateBackend from langgraph.prebuilt.tool_node import ToolRuntime -from app.agents.multi_agent_chat.shared.filesystem_selection import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( FilesystemMode, FilesystemSelection, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( MultiRootLocalFolderBackend, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/index.py similarity index 88% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/index.py index 179a2e170..91bc4db7c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/index.py @@ -4,7 +4,7 @@ from __future__ import annotations from typing import Any -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode from .middleware import SurfSenseFilesystemMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/async_dispatch.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/async_dispatch.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/async_dispatch.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/async_dispatch.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/index.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/index.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/middleware.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/middleware.py similarity index 93% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/middleware.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/middleware.py index 5dc87beab..553ef495e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/middleware.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/middleware.py @@ -7,9 +7,9 @@ from typing import Any from deepagents import FilesystemMiddleware from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.sandbox import is_sandbox_enabled -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.sandbox import is_sandbox_enabled +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/mode.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/mode.py similarity index 68% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/mode.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/mode.py index a52346196..b3253b7de 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/mode.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/mode.py @@ -2,8 +2,8 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT def is_cloud(mode: FilesystemMode) -> bool: diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/namespace_policy.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/namespace_policy.py similarity index 90% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/namespace_policy.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/namespace_policy.py index 3a42f3edd..368c013e4 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/namespace_policy.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/namespace_policy.py @@ -11,8 +11,8 @@ from typing import TYPE_CHECKING from langchain.tools import ToolRuntime -from app.agents.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/path_resolution.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/path_resolution.py similarity index 95% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/path_resolution.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/path_resolution.py index f8021551a..2650d9c34 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/path_resolution.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/path_resolution.py @@ -7,11 +7,11 @@ from typing import TYPE_CHECKING from langchain.tools import ToolRuntime -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( MultiRootLocalFolderBackend, ) -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/read_only_policy.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/read_only_policy.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/middleware/read_only_policy.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/middleware/read_only_policy.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/shared/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/shared/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/shared/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/shared/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/shared/paths.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/shared/paths.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/shared/paths.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/shared/paths.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/cloud.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/cloud.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/cloud.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/cloud.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/common.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/common.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/common.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/common.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/desktop.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/desktop.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/desktop.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/desktop.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/index.py similarity index 86% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/index.py index 05c41eed4..491b5a762 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/system_prompt/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/system_prompt/index.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode from .cloud import BODY as CLOUD_BODY from .common import HEADER, SANDBOX_ADDENDUM diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/cd/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/cd/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/cd/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/cd/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/cd/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/cd/description.py similarity index 83% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/cd/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/cd/description.py index de0b1128c..bc106efcf 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/cd/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/cd/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _DESCRIPTION = """Changes the current working directory (cwd). diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/cd/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/cd/index.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/cd/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/cd/index.py index 5fd8965ed..8203b68b0 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/cd/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/cd/index.py @@ -10,8 +10,8 @@ from langchain_core.messages import ToolMessage from langchain_core.tools import BaseTool, StructuredTool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/description.py similarity index 89% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/description.py index c8798c2a7..5c474e2f8 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _CLOUD_DESCRIPTION = """Performs exact string replacements in files. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/index.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/index.py index ba489913b..775469531 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/edit_file/index.py @@ -11,10 +11,10 @@ from langchain_core.messages import ToolMessage from langchain_core.tools import BaseTool, StructuredTool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/description.py similarity index 86% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/description.py index 180fe9b36..ae19b977e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _DESCRIPTION = """Executes Python code in an isolated sandbox environment. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/helpers.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/helpers.py similarity index 95% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/helpers.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/helpers.py index b57fe10d2..58896f46c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/helpers.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/helpers.py @@ -14,12 +14,12 @@ from typing import TYPE_CHECKING from daytona.common.errors import DaytonaError from langchain.tools import ToolRuntime -from app.agents.multi_agent_chat.shared.sandbox import ( +from app.agents.chat.multi_agent_chat.shared.sandbox import ( _evict_sandbox_cache, delete_sandbox, get_or_create_sandbox, ) -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/index.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/index.py index db5e6edfa..b530c91f2 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/execute_code/index.py @@ -7,7 +7,7 @@ from typing import TYPE_CHECKING, Annotated from langchain.tools import ToolRuntime from langchain_core.tools import BaseTool, StructuredTool -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/glob/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/glob/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/glob/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/glob/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/glob/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/glob/description.py similarity index 77% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/glob/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/glob/description.py index c1fd6f0b2..7c9fafa36 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/glob/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/glob/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _DESCRIPTION = """Find files matching a glob pattern. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/grep/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/grep/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/grep/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/grep/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/grep/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/grep/description.py similarity index 89% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/grep/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/grep/description.py index 47c0ddb33..4b34ac60b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/grep/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/grep/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _CLOUD_DESCRIPTION = """Search for a literal text pattern across files. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/description.py similarity index 93% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/description.py index 308032944..619a639d1 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _CLOUD_DESCRIPTION = """Lists files/folders recursively in a single bounded call. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/index.py similarity index 95% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/index.py index f3440f0e9..21bba1fc3 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/list_tree/index.py @@ -9,10 +9,10 @@ from deepagents.backends.utils import validate_path from langchain.tools import ToolRuntime from langchain_core.tools import BaseTool, StructuredTool -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/ls/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/ls/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/ls/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/ls/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/ls/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/ls/description.py similarity index 91% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/ls/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/ls/description.py index 823e42f20..f49a64772 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/ls/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/ls/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _CLOUD_DESCRIPTION = """Lists files and directories at the given path. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/ls/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/ls/index.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/ls/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/ls/index.py index 149a20da8..e45a279d7 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/ls/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/ls/index.py @@ -8,10 +8,10 @@ from deepagents.backends.utils import validate_path from langchain.tools import ToolRuntime from langchain_core.tools import BaseTool, StructuredTool -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( paginate_listing, ) -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/description.py similarity index 89% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/description.py index a26c8ea7e..94eb49d2d 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _CLOUD_DESCRIPTION = """Creates a directory under `/documents/`. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/index.py similarity index 95% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/index.py index d95d401fd..85de65ee1 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/mkdir/index.py @@ -11,8 +11,8 @@ from langchain_core.messages import ToolMessage from langchain_core.tools import BaseTool, StructuredTool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/description.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/description.py index 3a9bfb7f7..520692697 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _CLOUD_DESCRIPTION = """Moves or renames a file or folder. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/helpers.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/helpers.py similarity index 91% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/helpers.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/helpers.py index dc824d457..8ac9c0501 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/helpers.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/helpers.py @@ -8,14 +8,14 @@ from langchain.tools import ToolRuntime from langchain_core.messages import ToolMessage from langgraph.types import Command -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) -from app.agents.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) -from app.agents.multi_agent_chat.shared.state.reducers import _CLEAR +from app.agents.chat.multi_agent_chat.shared.state.reducers import _CLEAR if TYPE_CHECKING: from ...middleware import SurfSenseFilesystemMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/index.py similarity index 97% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/index.py index 46a299a81..b7345b1a0 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/move_file/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/move_file/index.py @@ -11,7 +11,7 @@ from langchain_core.messages import ToolMessage from langchain_core.tools import BaseTool, StructuredTool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/pwd/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/pwd/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/pwd/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/pwd/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/pwd/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/pwd/description.py similarity index 72% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/pwd/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/pwd/description.py index 695e1db21..11f0b9f91 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/pwd/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/pwd/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _DESCRIPTION = """Prints the current working directory.""" diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/pwd/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/pwd/index.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/pwd/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/pwd/index.py index d503c9506..2c220efca 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/pwd/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/pwd/index.py @@ -7,7 +7,7 @@ from typing import TYPE_CHECKING from langchain.tools import ToolRuntime from langchain_core.tools import BaseTool, StructuredTool -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/read_file/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/read_file/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/read_file/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/read_file/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/read_file/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/read_file/description.py similarity index 89% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/read_file/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/read_file/description.py index 4cd8b60d4..b10ca4acc 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/read_file/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/read_file/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _DESCRIPTION = """Reads a file from the filesystem. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/read_file/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/read_file/index.py similarity index 95% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/read_file/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/read_file/index.py index f16332712..5c20619d6 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/read_file/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/read_file/index.py @@ -10,10 +10,10 @@ from langchain_core.messages import ToolMessage from langchain_core.tools import BaseTool, StructuredTool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/description.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/description.py index 8d814c73f..7a8e96c09 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _CLOUD_DESCRIPTION = """Deletes a single file under `/documents/`. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/helpers.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/helpers.py similarity index 93% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/helpers.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/helpers.py index c1c9239f2..73cb0b6ad 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/helpers.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/helpers.py @@ -12,14 +12,14 @@ from langchain.tools import ToolRuntime from langchain_core.messages import ToolMessage from langgraph.types import Command -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) -from app.agents.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) -from app.agents.multi_agent_chat.shared.state.reducers import _CLEAR +from app.agents.chat.multi_agent_chat.shared.state.reducers import _CLEAR if TYPE_CHECKING: from ...middleware import SurfSenseFilesystemMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/index.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/index.py index 677b88a9a..099079476 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rm/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rm/index.py @@ -9,7 +9,7 @@ from langchain.tools import ToolRuntime from langchain_core.tools import BaseTool, StructuredTool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/description.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/description.py index ce34597ab..0880b4d22 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _CLOUD_DESCRIPTION = """Deletes an empty directory under `/documents/`. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/helpers.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/helpers.py similarity index 93% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/helpers.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/helpers.py index 4948c4fe0..2f25479c1 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/helpers.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/helpers.py @@ -13,14 +13,14 @@ from langchain.tools import ToolRuntime from langchain_core.messages import ToolMessage from langgraph.types import Command -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) -from app.agents.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) -from app.agents.multi_agent_chat.shared.state.reducers import _CLEAR +from app.agents.chat.multi_agent_chat.shared.state.reducers import _CLEAR from ...middleware.path_resolution import current_cwd from ...shared.paths import is_ancestor_of diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/index.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/index.py index d2b7954dd..4c52f68ae 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/rmdir/index.py @@ -9,7 +9,7 @@ from langchain.tools import ToolRuntime from langchain_core.tools import BaseTool, StructuredTool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/write_file/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/write_file/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/write_file/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/write_file/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/write_file/description.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/write_file/description.py similarity index 93% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/write_file/description.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/write_file/description.py index bf29a8fa5..933ba2caf 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/write_file/description.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/write_file/description.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode _CLOUD_DESCRIPTION = """Writes a new text file to the workspace. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/write_file/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/write_file/index.py similarity index 97% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/write_file/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/write_file/index.py index 5e0de1566..5aa250143 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/filesystem/tools/write_file/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/filesystem/tools/write_file/index.py @@ -11,7 +11,7 @@ from langchain_core.messages import ToolMessage from langchain_core.tools import BaseTool, StructuredTool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/flags.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/flags.py similarity index 78% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/flags.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/flags.py index 342dbdf7c..dfbf3e6ee 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/flags.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/flags.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags def enabled(flags: AgentFeatureFlags, attr: str) -> bool: diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/kb_context_projection.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/kb_context_projection.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/kb_context_projection.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/kb_context_projection.py index 2502e38ca..4667441ab 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/kb_context_projection.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/kb_context_projection.py @@ -9,7 +9,7 @@ from langchain.agents.middleware import AgentMiddleware, AgentState from langchain_core.messages import SystemMessage from langgraph.runtime import Runtime -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) from app.utils.perf import get_perf_logger diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/kb_persistence.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/kb_persistence.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/kb_persistence.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/kb_persistence.py index 4eab0550c..164bb370a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/kb_persistence.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/kb_persistence.py @@ -45,19 +45,22 @@ from sqlalchemy import delete, select, update from sqlalchemy.exc import IntegrityError from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.feature_flags import get_flags -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.path_resolver import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import get_flags +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.path_resolver import ( DOCUMENTS_ROOT, parse_documents_path, safe_folder_segment, virtual_path_to_doc, ) -from app.agents.multi_agent_chat.shared.receipts.receipt import Receipt, make_receipt -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import ( + Receipt, + make_receipt, +) +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) -from app.agents.multi_agent_chat.shared.state.reducers import _CLEAR +from app.agents.chat.multi_agent_chat.shared.state.reducers import _CLEAR from app.db import ( AgentActionLog, Chunk, diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/knowledge_search.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/knowledge_search.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/knowledge_search.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/knowledge_search.py index 2650a38f5..38e8be7bb 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/knowledge_search.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/knowledge_search.py @@ -41,18 +41,18 @@ from litellm import token_counter from pydantic import BaseModel, Field, ValidationError from sqlalchemy import select -from app.agents.multi_agent_chat.shared.date_filters import ( +from app.agents.chat.multi_agent_chat.shared.date_filters import ( parse_date_or_datetime, resolve_date_range, ) -from app.agents.multi_agent_chat.shared.feature_flags import get_flags -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.path_resolver import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import get_flags +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.path_resolver import ( PathIndex, build_path_index, doc_to_virtual_path, ) -from app.agents.multi_agent_chat.shared.state.filesystem_state import ( +from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import ( SurfSenseFilesystemState, ) from app.db import ( @@ -639,7 +639,7 @@ class KnowledgePriorityMiddleware(AgentMiddleware): # type: ignore[type-arg] if not flags.enable_kb_planner_runnable or flags.disable_new_agent_stack: return None - from app.agents.shared.middleware.retry_after import RetryAfterMiddleware + from app.agents.chat.shared.middleware.retry_after import RetryAfterMiddleware try: self._planner = create_agent( diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/memory.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/memory.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/memory.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/memory.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/memory_injection.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/memory_injection.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/memory_injection.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/memory_injection.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/patch_tool_calls.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/patch_tool_calls.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/patch_tool_calls.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/patch_tool_calls.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/decision.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/decision.py similarity index 97% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/decision.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/decision.py index f507e85ff..e77f16c35 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/decision.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/decision.py @@ -17,7 +17,7 @@ from __future__ import annotations import logging from typing import Any -from app.agents.multi_agent_chat.subagents.shared.hitl.wire import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.wire import ( LC_DECISION_APPROVE, LC_DECISION_EDIT, LC_DECISION_REJECT, diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/edit/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/edit/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/edit/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/edit/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/edit/merge.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/edit/merge.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/edit/merge.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/edit/merge.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/payload.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/payload.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/payload.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/payload.py index 89f91b6df..38c1f419b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/payload.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/payload.py @@ -6,8 +6,8 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Rule -from app.agents.multi_agent_chat.subagents.shared.hitl.wire import ( +from app.agents.chat.multi_agent_chat.shared.permissions import Rule +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.wire import ( LC_DECISION_APPROVE, LC_DECISION_EDIT, LC_DECISION_REJECT, diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/request.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/request.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/request.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/request.py index c63d10a20..58e81f1b7 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/ask/request.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/ask/request.py @@ -16,7 +16,7 @@ from typing import Any from langchain_core.tools import BaseTool from langgraph.types import interrupt -from app.agents.multi_agent_chat.shared.permissions import Rule +from app.agents.chat.multi_agent_chat.shared.permissions import Rule from app.observability import metrics as ot_metrics, otel as ot from .decision import normalize_permission_decision diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/deny.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/deny.py similarity index 88% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/deny.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/deny.py index 5397719ae..0811aed77 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/deny.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/deny.py @@ -11,8 +11,8 @@ from typing import Any from langchain_core.messages import ToolMessage -from app.agents.multi_agent_chat.shared.errors import StreamingError -from app.agents.multi_agent_chat.shared.permissions import Rule +from app.agents.chat.multi_agent_chat.shared.errors import StreamingError +from app.agents.chat.multi_agent_chat.shared.permissions import Rule def build_deny_message(tool_call: dict[str, Any], rule: Rule) -> ToolMessage: diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/core.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/core.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/core.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/core.py index 0f0eb5f9f..4f5f551fd 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/core.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/core.py @@ -26,8 +26,8 @@ from langchain_core.messages import AIMessage, ToolMessage from langchain_core.tools import BaseTool from langgraph.runtime import Runtime -from app.agents.multi_agent_chat.shared.errors import CorrectedError, RejectedError -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.errors import CorrectedError, RejectedError +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from app.services.user_tool_allowlist import TrustedToolSaver from ..ask.edit import merge_edited_args diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/evaluation.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/evaluation.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/evaluation.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/evaluation.py index 7ed2c0289..5a0d3396a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/evaluation.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/evaluation.py @@ -16,7 +16,7 @@ from __future__ import annotations import logging from typing import Any -from app.agents.multi_agent_chat.shared.permissions import ( +from app.agents.chat.multi_agent_chat.shared.permissions import ( Rule, RuleAction, Ruleset, diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/factory.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/factory.py similarity index 95% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/factory.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/factory.py index b222d7f4b..d3017d381 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/factory.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/factory.py @@ -27,8 +27,8 @@ from collections.abc import Sequence from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset from app.services.user_tool_allowlist import TrustedToolSaver from .core import PermissionMiddleware diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/pattern_resolver.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/pattern_resolver.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/pattern_resolver.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/pattern_resolver.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/ruleset_view.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/ruleset_view.py similarity index 93% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/ruleset_view.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/ruleset_view.py index 713d23da1..b3b16fbbd 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/ruleset_view.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/ruleset_view.py @@ -9,7 +9,7 @@ newly-promoted rules apply to subsequent calls. from __future__ import annotations -from app.agents.multi_agent_chat.shared.permissions import ( +from app.agents.chat.multi_agent_chat.shared.permissions import ( Ruleset, aggregate_action, evaluate_many, diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/runtime_promote.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/runtime_promote.py similarity index 88% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/runtime_promote.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/runtime_promote.py index b5b0d9c6f..062065a35 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/permissions/middleware/runtime_promote.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/permissions/middleware/runtime_promote.py @@ -7,7 +7,7 @@ is the streaming layer's job — this module keeps the in-memory copy only. from __future__ import annotations -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset def persist_always( diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/bundle.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/bundle.py similarity index 90% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/bundle.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/bundle.py index 74fb38d8a..8b83c9b27 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/bundle.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/bundle.py @@ -10,8 +10,8 @@ from langchain.agents.middleware import ( ToolCallLimitMiddleware, ) -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.shared.middleware import RetryAfterMiddleware +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.shared.middleware import RetryAfterMiddleware from .fallback import build_fallback_mw from .model_call_limit import build_model_call_limit_mw diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/fallback.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/fallback.py similarity index 88% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/fallback.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/fallback.py index 4d796c61a..5b7dcc6ce 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/fallback.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/fallback.py @@ -4,7 +4,7 @@ from __future__ import annotations import logging -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags from ..flags import enabled from .scoped_model_fallback import ( diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/model_call_limit.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/model_call_limit.py similarity index 85% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/model_call_limit.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/model_call_limit.py index a7cf63a96..2565a4b13 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/model_call_limit.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/model_call_limit.py @@ -4,7 +4,7 @@ from __future__ import annotations from langchain.agents.middleware import ModelCallLimitMiddleware -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags from ..flags import enabled diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/retry.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/retry.py similarity index 69% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/retry.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/retry.py index f5c197183..b0ce3e324 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/retry.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/retry.py @@ -2,8 +2,8 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.shared.middleware import RetryAfterMiddleware +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.shared.middleware import RetryAfterMiddleware from ..flags import enabled diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/scoped_model_fallback.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/scoped_model_fallback.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/scoped_model_fallback.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/scoped_model_fallback.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/tool_call_limit.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/tool_call_limit.py similarity index 85% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/tool_call_limit.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/tool_call_limit.py index 699351146..0e4708849 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/resilience/tool_call_limit.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/resilience/tool_call_limit.py @@ -4,7 +4,7 @@ from __future__ import annotations from langchain.agents.middleware import ToolCallLimitMiddleware -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags from ..flags import enabled diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/middleware/todos.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/todos.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/middleware/todos.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/middleware/todos.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/path_resolver.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/path_resolver.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/path_resolver.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/path_resolver.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/permissions.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/permissions.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/permissions.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/permissions.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/prompt_caching.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/prompt_caching.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/shared/prompt_caching.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/prompt_caching.py index ba5b150f0..3534b37bf 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/prompt_caching.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/prompt_caching.py @@ -68,7 +68,7 @@ from typing import TYPE_CHECKING, Any from langchain_core.language_models import BaseChatModel if TYPE_CHECKING: - from app.agents.multi_agent_chat.shared.llm_config import AgentConfig + from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig logger = logging.getLogger(__name__) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/receipts/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/receipts/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/receipts/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/receipts/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/receipts/command.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/receipts/command.py similarity index 88% rename from surfsense_backend/app/agents/multi_agent_chat/shared/receipts/command.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/receipts/command.py index 13ec63f0a..d31df998c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/receipts/command.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/receipts/command.py @@ -6,7 +6,7 @@ participate in the verification teaching from ``multi_agent_chat/subagents/shared/snippets/verifiable_handle.md`` those tools now also need to write a :class:`Receipt` into the parent's ``state['receipts']`` list (declared on -:class:`~app.agents.multi_agent_chat.shared.state.filesystem_state.SurfSenseFilesystemState` +:class:`~app.agents.chat.multi_agent_chat.shared.state.filesystem_state.SurfSenseFilesystemState` and backed by the append reducer). :func:`with_receipt` wraps both behaviours: it returns the tool payload as @@ -24,7 +24,7 @@ from typing import Any from langchain_core.messages import ToolMessage from langgraph.types import Command -from app.agents.multi_agent_chat.shared.receipts.receipt import Receipt +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import Receipt def _content_to_text(payload: dict[str, Any] | str) -> str: @@ -51,7 +51,7 @@ def with_receipt( """Return a Command that ships ``payload`` as a ToolMessage AND appends ``receipt``. The append happens via the ``_list_append_reducer`` on the ``receipts`` - field of :class:`~app.agents.multi_agent_chat.shared.state.filesystem_state.SurfSenseFilesystemState`, + field of :class:`~app.agents.chat.multi_agent_chat.shared.state.filesystem_state.SurfSenseFilesystemState`, so concurrent subagent batches (item 4 in the plan) won't clobber each other's receipts. """ diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/receipts/receipt.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/receipts/receipt.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/receipts/receipt.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/receipts/receipt.py index 18c952c39..b1986a224 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/receipts/receipt.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/receipts/receipt.py @@ -5,7 +5,7 @@ delegate_tool.py:1663-1697``) for our 5 deliverable types + 15 connectors + KB writes. The supervisor reads the Receipt to verify what actually happened without round-tripping through LLM paraphrase. -**Why this lives under ``app.agents.shared`` and not under either of the +**Why this lives under ``app.agents.chat.shared`` and not under either of the two agent packages:** the Receipt is a *contract* shared between ``multi_agent_chat`` (where mutating tools emit it) and ``new_chat`` (where ``filesystem_state.SurfSenseFilesystemState`` declares the @@ -23,7 +23,7 @@ the receipt into the parent's ``receipts`` state via the append reducer. The KB write path is the one exception: file-tool calls cannot emit a durable receipt because the actual DB writes happen end-of-turn inside -:class:`app.agents.multi_agent_chat.shared.middleware.kb_persistence.KnowledgeBasePersistenceMiddleware`. +:class:`app.agents.chat.multi_agent_chat.shared.middleware.kb_persistence.KnowledgeBasePersistenceMiddleware`. KB tools therefore emit a *provisional* receipt with ``status="pending"``; the persistence middleware flips it to ``"success"`` or ``"failed"`` before returning control to the parent. diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/sandbox.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/sandbox.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/sandbox.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/sandbox.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/state/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/state/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/state/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/state/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/state/filesystem_state.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/state/filesystem_state.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/state/filesystem_state.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/state/filesystem_state.py index be24ab910..41bed9d62 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/state/filesystem_state.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/state/filesystem_state.py @@ -20,7 +20,7 @@ extra fields needed to implement Postgres-backed virtual filesystem semantics: * ``workspace_tree_text`` — pre-rendered ```` body for the turn. Tools mutate these fields ONLY via ``Command(update=...)`` returns; the -reducers in :mod:`app.agents.multi_agent_chat.shared.state.reducers` handle merging. +reducers in :mod:`app.agents.chat.multi_agent_chat.shared.state.reducers` handle merging. """ from __future__ import annotations @@ -30,8 +30,8 @@ from typing import Annotated, Any, NotRequired from deepagents.middleware.filesystem import FilesystemState from typing_extensions import TypedDict -from app.agents.multi_agent_chat.shared.receipts.receipt import Receipt -from app.agents.multi_agent_chat.shared.state.reducers import ( +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import Receipt +from app.agents.chat.multi_agent_chat.shared.state.reducers import ( _add_unique_reducer, _dict_merge_with_tombstones_reducer, _int_counter_merge_reducer, @@ -190,7 +190,7 @@ class SurfSenseFilesystemState(FilesystemState): Each mutating tool (deliverables, every connector, KB writes via the persistence middleware) wraps its native return into a - :class:`~app.agents.multi_agent_chat.shared.receipts.receipt.Receipt` + :class:`~app.agents.chat.multi_agent_chat.shared.receipts.receipt.Receipt` and returns it under the ``"receipt"`` key alongside its existing payload. The subagent's tool-call middleware folds the receipt into this list, and ``_return_command_with_state_update`` in diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/state/reducers.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/state/reducers.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/state/reducers.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/state/reducers.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/catalog.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/catalog.py similarity index 97% rename from surfsense_backend/app/agents/multi_agent_chat/shared/tools/catalog.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/catalog.py index 73a4070ab..1aff733b2 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/catalog.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/catalog.py @@ -8,8 +8,8 @@ graph — and so connector packages stay independently deletable. The single live consumer is the ``GET /agent/tools`` endpoint, which renders the tool picker in the web UI. Tool *construction* lives elsewhere: -* main-agent tools -> ``app.agents.multi_agent_chat.main_agent.tools.registry`` -* subagent / connector tools -> ``app.agents.multi_agent_chat.subagents.*`` +* main-agent tools -> ``app.agents.chat.multi_agent_chat.main_agent.tools.registry`` +* subagent / connector tools -> ``app.agents.chat.multi_agent_chat.subagents.*`` """ from __future__ import annotations diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/hitl.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/hitl.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/shared/tools/hitl.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/hitl.py index b779c0a31..f5023737a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/hitl.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/hitl.py @@ -6,7 +6,7 @@ shared by every sensitive tool (native connectors and MCP tools alike). Usage inside a tool:: - from app.agents.multi_agent_chat.shared.tools.hitl import request_approval + from app.agents.chat.multi_agent_chat.shared.tools.hitl import request_approval result = request_approval( action_type="gmail_email_send", diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/cache.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/cache.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/cache.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/cache.py index bb4e40d5b..d088fac0b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/cache.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/cache.py @@ -112,7 +112,7 @@ def refresh_mcp_tools_cache_for_connector( when an event loop is available. Neither path raises. """ try: - from app.agents.multi_agent_chat.shared.tools.mcp.tool import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.tool import ( invalidate_mcp_tools_cache, ) @@ -135,7 +135,7 @@ def refresh_mcp_tools_cache_for_connector( async def _run_connector_prefetch(connector_id: int) -> None: - from app.agents.multi_agent_chat.shared.tools.mcp.tool import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.tool import ( discover_single_mcp_connector, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/client.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/client.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/client.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/client.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/tool.py b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/tool.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/tool.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/tool.py index 7f6bca273..a1240391b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/shared/tools/mcp/tool.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/shared/tools/mcp/tool.py @@ -33,16 +33,16 @@ from sqlalchemy import cast, select from sqlalchemy.dialects.postgresql import JSONB from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.middleware.dedup_tool_calls import ( +from app.agents.chat.multi_agent_chat.shared.middleware.dedup_tool_calls import ( dedup_key_full_args, ) -from app.agents.multi_agent_chat.shared.tools.hitl import request_approval -from app.agents.multi_agent_chat.shared.tools.mcp.cache import ( +from app.agents.chat.multi_agent_chat.shared.tools.hitl import request_approval +from app.agents.chat.multi_agent_chat.shared.tools.mcp.cache import ( CachedMCPTools, read_cached_tools, write_cached_tools, ) -from app.agents.multi_agent_chat.shared.tools.mcp.client import MCPClient +from app.agents.chat.multi_agent_chat.shared.tools.mcp.client import MCPClient from app.db import SearchSourceConnector from app.services.mcp_oauth.registry import MCP_SERVICES, get_service_by_connector_type from app.utils.perf import get_perf_logger diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/agent.py index 396e0ec79..b483b8578 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/deliverable_wait.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/deliverable_wait.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/deliverable_wait.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/deliverable_wait.py index 6f00a6c41..2fcc98385 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/deliverable_wait.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/deliverable_wait.py @@ -1,6 +1,6 @@ """Shared poll-until-terminal helper for Celery-backed deliverables. -Lives in ``app.agents.shared`` (neutral kernel package, no dependency on +Lives in ``app.agents.chat.shared`` (neutral kernel package, no dependency on ``multi_agent_chat``) so both the shared tools under ``app/agents/shared/tools/`` and the multi-agent subagent tools under ``app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/`` can import diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/generate_image.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/generate_image.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/generate_image.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/generate_image.py index 0672fda4c..5ed5f2ad6 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/generate_image.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/generate_image.py @@ -11,8 +11,8 @@ from litellm import aimage_generation from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.receipts.command import with_receipt -from app.agents.multi_agent_chat.shared.receipts.receipt import make_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.command import with_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import make_receipt from app.config import config from app.db import ( ImageGeneration, diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/index.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/index.py index a23cc19e8..b968c1701 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .generate_image import create_generate_image_tool from .podcast import create_generate_podcast_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/knowledge_base.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/knowledge_base.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/knowledge_base.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/knowledge_base.py index 6b4b9b5a9..a7c994c3f 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/knowledge_base.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/knowledge_base.py @@ -692,7 +692,7 @@ async def search_knowledge_base_raw_async( # Preserve the public signature for compatibility even if values are unused. _ = (db_session, connector_service) - from app.agents.multi_agent_chat.shared.date_filters import resolve_date_range + from app.agents.chat.multi_agent_chat.shared.date_filters import resolve_date_range resolved_start_date, resolved_end_date = resolve_date_range( start_date=start_date, diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/podcast.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/podcast.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/podcast.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/podcast.py index 52a3393bb..03850010e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/podcast.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/podcast.py @@ -16,9 +16,9 @@ from langchain_core.tools import tool from langgraph.types import Command from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.receipts.command import with_receipt -from app.agents.multi_agent_chat.shared.receipts.receipt import make_receipt -from app.agents.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait import ( +from app.agents.chat.multi_agent_chat.shared.receipts.command import with_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import make_receipt +from app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait import ( wait_for_deliverable, ) from app.db import Podcast, PodcastStatus, shielded_async_session @@ -98,7 +98,7 @@ def create_generate_podcast_tool( # Wait until the Celery worker flips the row to a terminal # state. The wait is bounded only by the subagent invoke # timeout (multi-agent) or HTTP lifetime (single-agent) — - # see app.agents.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait for details. + # see app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait for details. terminal_status, columns, elapsed = await wait_for_deliverable( model=Podcast, row_id=podcast_id, diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/report.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/report.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/report.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/report.py index 5db43bf55..d9a941021 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/report.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/report.py @@ -12,8 +12,8 @@ from langchain_core.messages import HumanMessage from langchain_core.tools import tool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.receipts.command import with_receipt -from app.agents.multi_agent_chat.shared.receipts.receipt import make_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.command import with_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import make_receipt from app.db import Report, shielded_async_session from app.services.connector_service import ConnectorService from app.services.llm_service import get_document_summary_llm diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/resume.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/resume.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/resume.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/resume.py index 05359c515..6a43193e9 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/resume.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/resume.py @@ -14,8 +14,8 @@ from langchain_core.messages import HumanMessage from langchain_core.tools import tool from langgraph.types import Command -from app.agents.multi_agent_chat.shared.receipts.command import with_receipt -from app.agents.multi_agent_chat.shared.receipts.receipt import make_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.command import with_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import make_receipt from app.db import Report, shielded_async_session from app.services.llm_service import get_document_summary_llm diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/video_presentation.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/video_presentation.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/video_presentation.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/video_presentation.py index f6bb39c18..5c71ebf33 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/deliverables/tools/video_presentation.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/deliverables/tools/video_presentation.py @@ -17,9 +17,9 @@ from langchain_core.tools import tool from langgraph.types import Command from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.receipts.command import with_receipt -from app.agents.multi_agent_chat.shared.receipts.receipt import make_receipt -from app.agents.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait import ( +from app.agents.chat.multi_agent_chat.shared.receipts.command import with_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import make_receipt +from app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait import ( wait_for_deliverable, ) from app.db import VideoPresentation, VideoPresentationStatus, shielded_async_session @@ -85,7 +85,7 @@ def create_generate_video_presentation_tool( # Wait until the Celery worker flips the row to a terminal # state. The wait is bounded only by the subagent invoke # timeout (multi-agent) or HTTP lifetime (single-agent) — - # see app.agents.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait for details. + # see app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait for details. terminal_status, _columns, elapsed = await wait_for_deliverable( model=VideoPresentation, row_id=video_pres_id, diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/agent.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/agent.py index 3094e1c8a..2720589ef 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/agent.py @@ -13,9 +13,9 @@ from deepagents import SubAgent from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec from .middleware_stack import build_kb_middleware from .prompts import load_description, load_readonly_system_prompt, load_system_prompt diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/ask_knowledge_base_tool.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/ask_knowledge_base_tool.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/ask_knowledge_base_tool.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/ask_knowledge_base_tool.py index db2fa1f4f..5360b37b3 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/ask_knowledge_base_tool.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/ask_knowledge_base_tool.py @@ -10,10 +10,10 @@ from langchain_core.runnables import Runnable from langchain_core.tools import StructuredTool from langgraph.types import Command -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.config import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.config import ( subagent_invoke_config, ) -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.constants import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.constants import ( EXCLUDED_STATE_KEYS, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/description_readonly.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/description_readonly.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/description_readonly.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/description_readonly.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/middleware_stack.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/middleware_stack.py similarity index 83% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/middleware_stack.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/middleware_stack.py index 1e391fa08..e5d8a0d25 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/middleware_stack.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/middleware_stack.py @@ -10,27 +10,27 @@ from typing import Any from langchain_core.language_models import BaseChatModel -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.middleware.anthropic_cache import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.middleware.anthropic_cache import ( build_anthropic_cache_mw, ) -from app.agents.multi_agent_chat.shared.middleware.compaction import ( +from app.agents.chat.multi_agent_chat.shared.middleware.compaction import ( build_compaction_mw, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem import ( build_filesystem_mw, ) -from app.agents.multi_agent_chat.shared.middleware.kb_context_projection import ( +from app.agents.chat.multi_agent_chat.shared.middleware.kb_context_projection import ( build_kb_context_projection_mw, ) -from app.agents.multi_agent_chat.shared.middleware.patch_tool_calls import ( +from app.agents.chat.multi_agent_chat.shared.middleware.patch_tool_calls import ( build_patch_tool_calls_mw, ) -from app.agents.multi_agent_chat.shared.middleware.permissions import ( +from app.agents.chat.multi_agent_chat.shared.middleware.permissions import ( build_permission_mw, ) -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset def _kb_user_allowlist( diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/prompts.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/prompts.py similarity index 83% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/prompts.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/prompts.py index 604a6e347..ea9ae4706 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/prompts.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/prompts.py @@ -2,8 +2,10 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) def load_system_prompt(filesystem_mode: FilesystemMode) -> str: diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_cloud.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_cloud.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_cloud.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_cloud.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_desktop.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_desktop.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_desktop.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_desktop.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_readonly_cloud.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_readonly_cloud.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_readonly_cloud.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_readonly_cloud.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_readonly_desktop.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_readonly_desktop.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_readonly_desktop.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/system_prompt_readonly_desktop.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/tools/index.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/knowledge_base/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/knowledge_base/tools/index.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/agent.py similarity index 78% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/agent.py index 84ab0c2fb..4038b13de 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/agent.py @@ -7,9 +7,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/tools/index.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/tools/index.py index d909f48f4..0afce9dec 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/tools/index.py @@ -6,7 +6,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from app.db import ChatVisibility from .update_memory import create_update_memory_tool, create_update_team_memory_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/tools/update_memory.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/tools/update_memory.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/memory/tools/update_memory.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/memory/tools/update_memory.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/agent.py similarity index 78% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/agent.py index 37026bebd..9a694872b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/agent.py @@ -7,9 +7,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/tools/index.py similarity index 91% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/tools/index.py index 9cc5282eb..1e823fafa 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/tools/index.py @@ -6,7 +6,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .scrape_webpage import create_scrape_webpage_tool from .web_search import create_web_search_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/tools/scrape_webpage.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/tools/scrape_webpage.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/tools/scrape_webpage.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/tools/scrape_webpage.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/tools/web_search.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/tools/web_search.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/builtins/research/tools/web_search.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/builtins/research/tools/web_search.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/agent.py similarity index 80% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/agent.py index d7648d407..87391371a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/tools/index.py similarity index 90% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/tools/index.py index 49ec1996a..52cc8be2d 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/airtable/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/airtable/tools/index.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset NAME = "airtable" diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/agent.py index 7ef706c3d..b9b7b553a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/create_event.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/create_event.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/create_event.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/create_event.py index e5262bd43..91a50b3cc 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/create_event.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/create_event.py @@ -8,7 +8,7 @@ from googleapiclient.discovery import build from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.services.google_calendar import GoogleCalendarToolMetadataService diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/delete_event.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/delete_event.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/delete_event.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/delete_event.py index 2f907e746..7682dae33 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/delete_event.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/delete_event.py @@ -8,7 +8,7 @@ from googleapiclient.discovery import build from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.services.google_calendar import GoogleCalendarToolMetadataService diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/index.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/index.py index 41aa177d2..b087105d4 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/index.py @@ -10,7 +10,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .create_event import create_create_calendar_event_tool from .delete_event import create_delete_calendar_event_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/search_events.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/search_events.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/search_events.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/search_events.py index e0cb8c789..68189a99f 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/search_events.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/search_events.py @@ -5,7 +5,7 @@ from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select -from app.agents.multi_agent_chat.subagents.connectors.gmail.tools._helpers import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.gmail.tools._helpers import ( _build_credentials, ) from app.db import SearchSourceConnector, SearchSourceConnectorType diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/update_event.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/update_event.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/update_event.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/update_event.py index e6f9f098e..78d3b147b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/calendar/tools/update_event.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/calendar/tools/update_event.py @@ -8,7 +8,7 @@ from googleapiclient.discovery import build from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.services.google_calendar import GoogleCalendarToolMetadataService diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/agent.py similarity index 80% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/agent.py index e1308a100..dd6ea6503 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/tools/index.py similarity index 90% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/tools/index.py index 7a192bfc0..c64da647a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/clickup/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/clickup/tools/index.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset NAME = "clickup" diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/agent.py index 5e95c876d..8322d901b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/create_page.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/create_page.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/create_page.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/create_page.py index f33dc8e23..17497eee2 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/create_page.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/create_page.py @@ -5,7 +5,7 @@ from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm.attributes import flag_modified -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.confluence_history import ConfluenceHistoryConnector diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/delete_page.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/delete_page.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/delete_page.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/delete_page.py index 7a3a4f2c7..5e2bd9868 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/delete_page.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/delete_page.py @@ -5,7 +5,7 @@ from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm.attributes import flag_modified -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.confluence_history import ConfluenceHistoryConnector diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/index.py similarity index 93% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/index.py index 4746bf63c..73350974e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .create_page import create_create_confluence_page_tool from .delete_page import create_delete_confluence_page_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/update_page.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/update_page.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/update_page.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/update_page.py index 7a8207a00..7db9a24dc 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/confluence/tools/update_page.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/confluence/tools/update_page.py @@ -5,7 +5,7 @@ from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm.attributes import flag_modified -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.confluence_history import ConfluenceHistoryConnector diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/agent.py index 567e72973..fe8f0df1e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/_auth.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/_auth.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/_auth.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/_auth.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/index.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/index.py index 260531c70..fcef3401a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .list_channels import create_list_discord_channels_tool from .read_messages import create_read_discord_messages_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/list_channels.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/list_channels.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/list_channels.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/list_channels.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/read_messages.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/read_messages.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/read_messages.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/read_messages.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/send_message.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/send_message.py similarity index 97% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/send_message.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/send_message.py index 95890ed10..59ea1de30 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/discord/tools/send_message.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/discord/tools/send_message.py @@ -5,7 +5,7 @@ import httpx from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/agent.py index d3ae6dc83..841bcba6e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/create_file.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/create_file.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/create_file.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/create_file.py index 2de7c301f..7732c35e5 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/create_file.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/create_file.py @@ -8,7 +8,7 @@ from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.dropbox.client import DropboxClient diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/index.py similarity index 91% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/index.py index eb97bde0f..440b4583c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .create_file import create_create_dropbox_file_tool from .trash_file import create_delete_dropbox_file_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/trash_file.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/trash_file.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/trash_file.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/trash_file.py index 7cb652d5d..c713bdd00 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/dropbox/tools/trash_file.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/dropbox/tools/trash_file.py @@ -6,7 +6,7 @@ from sqlalchemy import String, and_, cast, func from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.dropbox.client import DropboxClient diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/agent.py index 082400eb9..be8adc17c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/_helpers.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/_helpers.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/_helpers.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/_helpers.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/create_draft.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/create_draft.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/create_draft.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/create_draft.py index fb1461d7c..3f25305c5 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/create_draft.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/create_draft.py @@ -8,7 +8,7 @@ from typing import Any from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.services.gmail import GmailToolMetadataService diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/index.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/index.py index 864e03483..60405dcf7 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .create_draft import create_create_gmail_draft_tool from .read_email import create_read_gmail_email_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/read_email.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/read_email.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/read_email.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/read_email.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/search_emails.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/search_emails.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/search_emails.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/search_emails.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/send_email.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/send_email.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/send_email.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/send_email.py index 57255be05..3431a2bc3 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/send_email.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/send_email.py @@ -10,9 +10,9 @@ from langchain_core.tools import tool from langgraph.types import Command from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.receipts.command import with_receipt -from app.agents.multi_agent_chat.shared.receipts.receipt import make_receipt -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.shared.receipts.command import with_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import make_receipt +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.services.gmail import GmailToolMetadataService diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/trash_email.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/trash_email.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/trash_email.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/trash_email.py index b24e9ebe4..ef5882074 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/trash_email.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/trash_email.py @@ -6,7 +6,7 @@ from typing import Any from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.services.gmail import GmailToolMetadataService diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/update_draft.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/update_draft.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/update_draft.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/update_draft.py index 1ab9d30cf..ef7839a1a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/gmail/tools/update_draft.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/gmail/tools/update_draft.py @@ -8,7 +8,7 @@ from typing import Any from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.services.gmail import GmailToolMetadataService diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/agent.py index fb4a24ddd..1597d025e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/create_file.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/create_file.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/create_file.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/create_file.py index 70f5eea74..9de4e0a4b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/create_file.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/create_file.py @@ -5,7 +5,7 @@ from googleapiclient.errors import HttpError from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.google_drive.client import GoogleDriveClient diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/index.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/index.py index 07b57cf83..caf06d6ba 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .create_file import create_create_google_drive_file_tool from .trash_file import create_delete_google_drive_file_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/trash_file.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/trash_file.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/trash_file.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/trash_file.py index 7fbcd74a3..c89b54c8e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/google_drive/tools/trash_file.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/google_drive/tools/trash_file.py @@ -5,7 +5,7 @@ from googleapiclient.errors import HttpError from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.google_drive.client import GoogleDriveClient diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/agent.py similarity index 80% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/agent.py index ff71d4cf7..693d5980a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/tools/index.py similarity index 93% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/tools/index.py index 6accb99aa..20c67671b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/jira/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/jira/tools/index.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset NAME = "jira" diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/agent.py similarity index 80% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/agent.py index d9b282f2b..d88ec03f1 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/tools/index.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/tools/index.py index 002b650cd..a06b33359 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/linear/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/linear/tools/index.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset NAME = "linear" diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/agent.py index d84efaed8..49973d08c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/_auth.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/_auth.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/_auth.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/_auth.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/create_event.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/create_event.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/create_event.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/create_event.py index e3e1126fd..0dffb2d2c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/create_event.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/create_event.py @@ -5,7 +5,7 @@ import httpx from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/index.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/index.py index c9910bc8f..a479331bb 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .create_event import create_create_luma_event_tool from .list_events import create_list_luma_events_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/list_events.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/list_events.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/list_events.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/list_events.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/read_event.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/read_event.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/luma/tools/read_event.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/luma/tools/read_event.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/agent.py index 8de86b2d8..a4b2d61cf 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/create_page.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/create_page.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/create_page.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/create_page.py index 20862eb56..49ee0f3aa 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/create_page.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/create_page.py @@ -4,7 +4,7 @@ from typing import Any from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.notion_history import NotionAPIError, NotionHistoryConnector diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/delete_page.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/delete_page.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/delete_page.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/delete_page.py index d6e1a9a69..a187b2cbc 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/delete_page.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/delete_page.py @@ -6,9 +6,9 @@ from langchain_core.tools import tool from langgraph.types import Command from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.receipts.command import with_receipt -from app.agents.multi_agent_chat.shared.receipts.receipt import make_receipt -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.shared.receipts.command import with_receipt +from app.agents.chat.multi_agent_chat.shared.receipts.receipt import make_receipt +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.notion_history import NotionAPIError, NotionHistoryConnector diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/index.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/index.py index 7d03fedb9..b8f662b03 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .create_page import create_create_notion_page_tool from .delete_page import create_delete_notion_page_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/update_page.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/update_page.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/update_page.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/update_page.py index 2b9ce3a6c..6950f0abd 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/notion/tools/update_page.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/notion/tools/update_page.py @@ -4,7 +4,7 @@ from typing import Any from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.notion_history import NotionAPIError, NotionHistoryConnector diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/agent.py index f7634d8ef..e2fcdac90 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/create_file.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/create_file.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/create_file.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/create_file.py index 41fa65787..11160650d 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/create_file.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/create_file.py @@ -8,7 +8,7 @@ from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.onedrive.client import OneDriveClient diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/index.py similarity index 91% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/index.py index 7848bbb03..4f0a2a7d6 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .create_file import create_create_onedrive_file_tool from .trash_file import create_delete_onedrive_file_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/trash_file.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/trash_file.py similarity index 99% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/trash_file.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/trash_file.py index 1f7c51ac5..7b4e0b98c 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/onedrive/tools/trash_file.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/onedrive/tools/trash_file.py @@ -6,7 +6,7 @@ from sqlalchemy import String, and_, cast, func from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) from app.connectors.onedrive.client import OneDriveClient diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/agent.py similarity index 80% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/agent.py index e16956b25..9951a63f0 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/tools/index.py similarity index 89% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/tools/index.py index ad95cb794..a26b537a6 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/slack/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/slack/tools/index.py @@ -2,7 +2,7 @@ from __future__ import annotations -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset NAME = "slack" diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/agent.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/agent.py similarity index 81% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/agent.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/agent.py index ab808b745..ab927654b 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/agent.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/agent.py @@ -12,9 +12,13 @@ from typing import Any from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import read_md_file -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import pack_subagent +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) from .tools.index import NAME, RULESET, load_tools diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/description.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/description.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/description.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/description.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/system_prompt.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/system_prompt.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/system_prompt.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/system_prompt.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/_auth.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/_auth.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/_auth.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/_auth.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/index.py similarity index 92% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/index.py index 0516a2a19..d144eee82 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/index.py @@ -9,7 +9,7 @@ from typing import Any from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset from .list_channels import create_list_teams_channels_tool from .read_messages import create_read_teams_messages_tool diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/list_channels.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/list_channels.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/list_channels.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/list_channels.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/read_messages.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/read_messages.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/read_messages.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/read_messages.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/send_message.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/send_message.py similarity index 97% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/send_message.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/send_message.py index f1469e3e1..c4491e82e 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/connectors/teams/tools/send_message.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/connectors/teams/tools/send_message.py @@ -5,7 +5,7 @@ import httpx from langchain_core.tools import tool from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/mcp_tools/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/mcp_tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/mcp_tools/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/mcp_tools/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/mcp_tools/index.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/mcp_tools/index.py similarity index 96% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/mcp_tools/index.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/mcp_tools/index.py index bc3329727..436b13aea 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/mcp_tools/index.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/mcp_tools/index.py @@ -18,10 +18,10 @@ from sqlalchemy import cast, select from sqlalchemy.dialects.postgresql import JSONB from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.constants import ( +from app.agents.chat.multi_agent_chat.constants import ( CONNECTOR_TYPE_TO_CONNECTOR_AGENT_MAPS, ) -from app.agents.multi_agent_chat.shared.tools.mcp.tool import load_mcp_tools +from app.agents.chat.multi_agent_chat.shared.tools.mcp.tool import load_mcp_tools from app.db import SearchSourceConnector logger = logging.getLogger(__name__) diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/registry.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/registry.py similarity index 77% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/registry.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/registry.py index 27c147672..cec9eee3a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/registry.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/registry.py @@ -8,70 +8,70 @@ from deepagents import SubAgent from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.constants import ( +from app.agents.chat.multi_agent_chat.constants import ( SUBAGENT_TO_REQUIRED_CONNECTOR_MAP, ) -from app.agents.multi_agent_chat.subagents.builtins.deliverables.agent import ( +from app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.agent import ( build_subagent as build_deliverables_subagent, ) -from app.agents.multi_agent_chat.subagents.builtins.knowledge_base.agent import ( +from app.agents.chat.multi_agent_chat.subagents.builtins.knowledge_base.agent import ( build_subagent as build_knowledge_base_subagent, ) -from app.agents.multi_agent_chat.subagents.builtins.memory.agent import ( +from app.agents.chat.multi_agent_chat.subagents.builtins.memory.agent import ( build_subagent as build_memory_subagent, ) -from app.agents.multi_agent_chat.subagents.builtins.research.agent import ( +from app.agents.chat.multi_agent_chat.subagents.builtins.research.agent import ( build_subagent as build_research_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.airtable.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.airtable.agent import ( build_subagent as build_airtable_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.calendar.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.calendar.agent import ( build_subagent as build_calendar_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.clickup.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.clickup.agent import ( build_subagent as build_clickup_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.confluence.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.confluence.agent import ( build_subagent as build_confluence_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.discord.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.discord.agent import ( build_subagent as build_discord_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.dropbox.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.dropbox.agent import ( build_subagent as build_dropbox_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.gmail.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.gmail.agent import ( build_subagent as build_gmail_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.google_drive.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.google_drive.agent import ( build_subagent as build_google_drive_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.jira.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.jira.agent import ( build_subagent as build_jira_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.linear.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.linear.agent import ( build_subagent as build_linear_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.luma.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.luma.agent import ( build_subagent as build_luma_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.notion.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.notion.agent import ( build_subagent as build_notion_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.onedrive.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.onedrive.agent import ( build_subagent as build_onedrive_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.slack.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.slack.agent import ( build_subagent as build_slack_subagent, ) -from app.agents.multi_agent_chat.subagents.connectors.teams.agent import ( +from app.agents.chat.multi_agent_chat.subagents.connectors.teams.agent import ( build_subagent as build_teams_subagent, ) -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import ( +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( read_md_file, ) -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec class SubagentBuilder(Protocol): diff --git a/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/__init__.py new file mode 100644 index 000000000..4ed3a5d8e --- /dev/null +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/__init__.py @@ -0,0 +1,17 @@ +"""Cross-slice helpers for route subagents.""" + +from __future__ import annotations + +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( + read_md_file, +) +from app.agents.chat.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( + pack_subagent, +) + +__all__ = [ + "SurfSenseSubagentSpec", + "pack_subagent", + "read_md_file", +] diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/auto_approved.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/auto_approved.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/auto_approved.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/auto_approved.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/request.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/request.py similarity index 98% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/request.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/request.py index 2f7e3cd35..8771b1506 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/request.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/request.py @@ -19,7 +19,7 @@ from typing import Any from langgraph.types import interrupt -from app.agents.multi_agent_chat.subagents.shared.hitl.wire import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.wire import ( LC_DECISION_APPROVE, LC_DECISION_EDIT, LC_DECISION_REJECT, diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/result.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/result.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/result.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/result.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/wire/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/wire/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/wire/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/wire/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/wire/decision.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/wire/decision.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/wire/decision.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/wire/decision.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/wire/payload.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/wire/payload.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/hitl/wire/payload.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/hitl/wire/payload.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/md_file_reader.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/md_file_reader.py similarity index 90% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/md_file_reader.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/md_file_reader.py index 5694e4326..786086f60 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/md_file_reader.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/md_file_reader.py @@ -5,7 +5,7 @@ from __future__ import annotations from functools import lru_cache from importlib import resources -_SHARED_SNIPPETS_PACKAGE = "app.agents.multi_agent_chat.subagents.shared.snippets" +_SHARED_SNIPPETS_PACKAGE = "app.agents.chat.multi_agent_chat.subagents.shared.snippets" def read_md_file(package: str, stem: str) -> str: diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/middleware/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/middleware/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/middleware/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/middleware/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/middleware/middleware_stack.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/middleware/middleware_stack.py similarity index 84% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/middleware/middleware_stack.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/middleware/middleware_stack.py index 1c4128280..25edf838a 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/middleware/middleware_stack.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/middleware/middleware_stack.py @@ -14,14 +14,14 @@ from __future__ import annotations from typing import Any -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.permissions import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.permissions import ( build_permission_mw, ) -from app.agents.multi_agent_chat.shared.middleware.resilience import ( +from app.agents.chat.multi_agent_chat.shared.middleware.resilience import ( ResilienceMiddlewares, ) -from app.agents.multi_agent_chat.shared.middleware.todos import build_todos_mw +from app.agents.chat.multi_agent_chat.shared.middleware.todos import build_todos_mw def build_subagent_middleware_stack( diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/snippets/__init__.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/snippets/__init__.py similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/snippets/__init__.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/snippets/__init__.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/snippets/output_contract_base.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/snippets/output_contract_base.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/snippets/output_contract_base.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/snippets/output_contract_base.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/snippets/verifiable_handle.md b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/snippets/verifiable_handle.md similarity index 100% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/snippets/verifiable_handle.md rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/snippets/verifiable_handle.md diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/spec.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/spec.py similarity index 97% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/spec.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/spec.py index 7cf9d5aba..6bace8ca4 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/spec.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/spec.py @@ -8,7 +8,7 @@ from typing import Any from deepagents import SubAgent -from app.agents.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset # A context-hint provider receives the parent-agent ``runtime.state`` mapping # and the ``description`` the orchestrator wrote, and returns a short string diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/subagent_builder.py b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/subagent_builder.py similarity index 94% rename from surfsense_backend/app/agents/multi_agent_chat/subagents/shared/subagent_builder.py rename to surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/subagent_builder.py index fba02307e..afdc1815d 100644 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/subagent_builder.py +++ b/surfsense_backend/app/agents/chat/multi_agent_chat/subagents/shared/subagent_builder.py @@ -11,14 +11,14 @@ from deepagents.middleware.patch_tool_calls import PatchToolCallsMiddleware from langchain_core.language_models import BaseChatModel from langchain_core.tools import BaseTool -from app.agents.multi_agent_chat.shared.middleware.permissions import ( +from app.agents.chat.multi_agent_chat.shared.middleware.permissions import ( build_permission_mw, ) -from app.agents.multi_agent_chat.shared.permissions import Ruleset -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import ( +from app.agents.chat.multi_agent_chat.shared.permissions import Ruleset +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( read_shared_snippet, ) -from app.agents.multi_agent_chat.subagents.shared.spec import ( +from app.agents.chat.multi_agent_chat.subagents.shared.spec import ( SURF_CONTEXT_HINT_PROVIDER_KEY, ContextHintProvider, SurfSenseSubagentSpec, diff --git a/surfsense_backend/app/agents/shared/__init__.py b/surfsense_backend/app/agents/chat/shared/__init__.py similarity index 79% rename from surfsense_backend/app/agents/shared/__init__.py rename to surfsense_backend/app/agents/chat/shared/__init__.py index 7c46c65ff..e84bc7543 100644 --- a/surfsense_backend/app/agents/shared/__init__.py +++ b/surfsense_backend/app/agents/chat/shared/__init__.py @@ -2,7 +2,7 @@ Symbols here are intentionally framework-light (no LangGraph / deepagents internals) so they can be imported from both ``app.agents.new_chat`` and -``app.agents.multi_agent_chat`` without creating a circular dependency +``app.agents.chat.multi_agent_chat`` without creating a circular dependency between the two packages. See ``receipt.py`` for the rationale. """ diff --git a/surfsense_backend/app/agents/shared/context.py b/surfsense_backend/app/agents/chat/shared/context.py similarity index 100% rename from surfsense_backend/app/agents/shared/context.py rename to surfsense_backend/app/agents/chat/shared/context.py diff --git a/surfsense_backend/app/agents/shared/middleware/__init__.py b/surfsense_backend/app/agents/chat/shared/middleware/__init__.py similarity index 66% rename from surfsense_backend/app/agents/shared/middleware/__init__.py rename to surfsense_backend/app/agents/chat/shared/middleware/__init__.py index b50707472..90339137b 100644 --- a/surfsense_backend/app/agents/shared/middleware/__init__.py +++ b/surfsense_backend/app/agents/chat/shared/middleware/__init__.py @@ -1,10 +1,10 @@ """Shared middleware components for the SurfSense chat agents.""" -from app.agents.shared.middleware.compaction import ( +from app.agents.chat.shared.middleware.compaction import ( SurfSenseCompactionMiddleware, create_surfsense_compaction_middleware, ) -from app.agents.shared.middleware.retry_after import RetryAfterMiddleware +from app.agents.chat.shared.middleware.retry_after import RetryAfterMiddleware __all__ = [ "RetryAfterMiddleware", diff --git a/surfsense_backend/app/agents/shared/middleware/compaction.py b/surfsense_backend/app/agents/chat/shared/middleware/compaction.py similarity index 100% rename from surfsense_backend/app/agents/shared/middleware/compaction.py rename to surfsense_backend/app/agents/chat/shared/middleware/compaction.py diff --git a/surfsense_backend/app/agents/shared/middleware/retry_after.py b/surfsense_backend/app/agents/chat/shared/middleware/retry_after.py similarity index 100% rename from surfsense_backend/app/agents/shared/middleware/retry_after.py rename to surfsense_backend/app/agents/chat/shared/middleware/retry_after.py diff --git a/surfsense_backend/app/agents/shared/tools/__init__.py b/surfsense_backend/app/agents/chat/shared/tools/__init__.py similarity index 100% rename from surfsense_backend/app/agents/shared/tools/__init__.py rename to surfsense_backend/app/agents/chat/shared/tools/__init__.py diff --git a/surfsense_backend/app/agents/shared/tools/web_search.py b/surfsense_backend/app/agents/chat/shared/tools/web_search.py similarity index 100% rename from surfsense_backend/app/agents/shared/tools/web_search.py rename to surfsense_backend/app/agents/chat/shared/tools/web_search.py diff --git a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/busy_mutex.py b/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/busy_mutex.py deleted file mode 100644 index 9a66cbc9c..000000000 --- a/surfsense_backend/app/agents/multi_agent_chat/main_agent/middleware/busy_mutex.py +++ /dev/null @@ -1,11 +0,0 @@ -"""Per-thread cooperative lock around the whole turn.""" - -from __future__ import annotations - -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.busy_mutex import BusyMutexMiddleware -from app.agents.multi_agent_chat.shared.middleware.flags import enabled - - -def build_busy_mutex_mw(flags: AgentFeatureFlags) -> BusyMutexMiddleware | None: - return BusyMutexMiddleware() if enabled(flags, "enable_busy_mutex") else None diff --git a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/__init__.py b/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/__init__.py deleted file mode 100644 index 70d3dfe39..000000000 --- a/surfsense_backend/app/agents/multi_agent_chat/subagents/shared/__init__.py +++ /dev/null @@ -1,17 +0,0 @@ -"""Cross-slice helpers for route subagents.""" - -from __future__ import annotations - -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import ( - read_md_file, -) -from app.agents.multi_agent_chat.subagents.shared.spec import SurfSenseSubagentSpec -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import ( - pack_subagent, -) - -__all__ = [ - "SurfSenseSubagentSpec", - "pack_subagent", - "read_md_file", -] diff --git a/surfsense_backend/app/app.py b/surfsense_backend/app/app.py index d2bf459b7..6178bc2c5 100644 --- a/surfsense_backend/app/app.py +++ b/surfsense_backend/app/app.py @@ -487,7 +487,7 @@ async def _warm_agent_jit_caches() -> None: ) from langchain_core.tools import tool - from app.agents.shared.context import SurfSenseContextSchema + from app.agents.chat.shared.context import SurfSenseContextSchema # Minimal LLM stub. ``FakeListChatModel`` satisfies # ``BaseChatModel`` without any network or auth — perfect for diff --git a/surfsense_backend/app/automations/actions/builtin/agent_task/invoke.py b/surfsense_backend/app/automations/actions/builtin/agent_task/invoke.py index 8536afc2f..15ad3e3be 100644 --- a/surfsense_backend/app/automations/actions/builtin/agent_task/invoke.py +++ b/surfsense_backend/app/automations/actions/builtin/agent_task/invoke.py @@ -10,12 +10,12 @@ from langchain_core.messages import HumanMessage from langgraph.types import Command from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat import create_multi_agent_chat_deep_agent -from app.agents.multi_agent_chat.shared.mention_resolver import ( +from app.agents.chat.multi_agent_chat import create_multi_agent_chat_deep_agent +from app.agents.chat.multi_agent_chat.shared.mention_resolver import ( resolve_mentions, substitute_in_text, ) -from app.agents.shared.context import SurfSenseContextSchema +from app.agents.chat.shared.context import SurfSenseContextSchema from app.db import ChatVisibility, async_session_maker from app.schemas.new_chat import MentionedDocumentInfo diff --git a/surfsense_backend/app/automations/services/model_policy.py b/surfsense_backend/app/automations/services/model_policy.py index 9c1171898..1981653ea 100644 --- a/surfsense_backend/app/automations/services/model_policy.py +++ b/surfsense_backend/app/automations/services/model_policy.py @@ -39,7 +39,7 @@ def _is_premium_global(kind: ModelKind, config_id: int) -> bool: cfg: dict | None = None if kind == "llm": - from app.agents.multi_agent_chat.shared.llm_config import ( + from app.agents.chat.multi_agent_chat.shared.llm_config import ( load_global_llm_config_by_id, ) diff --git a/surfsense_backend/app/routes/agent_action_log_route.py b/surfsense_backend/app/routes/agent_action_log_route.py index dfddad02a..9a55fdec3 100644 --- a/surfsense_backend/app/routes/agent_action_log_route.py +++ b/surfsense_backend/app/routes/agent_action_log_route.py @@ -28,7 +28,7 @@ from pydantic import BaseModel from sqlalchemy import func, select from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.feature_flags import get_flags +from app.agents.chat.multi_agent_chat.shared.feature_flags import get_flags from app.db import ( AgentActionLog, NewChatThread, diff --git a/surfsense_backend/app/routes/agent_flags_route.py b/surfsense_backend/app/routes/agent_flags_route.py index b0743d52d..e97608cbe 100644 --- a/surfsense_backend/app/routes/agent_flags_route.py +++ b/surfsense_backend/app/routes/agent_flags_route.py @@ -22,7 +22,7 @@ from dataclasses import asdict from fastapi import APIRouter, Depends from pydantic import BaseModel -from app.agents.multi_agent_chat.shared.feature_flags import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import ( AgentFeatureFlags, get_flags, ) diff --git a/surfsense_backend/app/routes/agent_permissions_route.py b/surfsense_backend/app/routes/agent_permissions_route.py index 23e4bb1f4..0c07eeb9c 100644 --- a/surfsense_backend/app/routes/agent_permissions_route.py +++ b/surfsense_backend/app/routes/agent_permissions_route.py @@ -30,7 +30,7 @@ from sqlalchemy import select from sqlalchemy.exc import IntegrityError from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.feature_flags import get_flags +from app.agents.chat.multi_agent_chat.shared.feature_flags import get_flags from app.db import ( AgentPermissionRule, NewChatThread, diff --git a/surfsense_backend/app/routes/agent_revert_route.py b/surfsense_backend/app/routes/agent_revert_route.py index 8db9d7eb4..ce21de69d 100644 --- a/surfsense_backend/app/routes/agent_revert_route.py +++ b/surfsense_backend/app/routes/agent_revert_route.py @@ -32,7 +32,7 @@ from sqlalchemy import select from sqlalchemy.exc import IntegrityError from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.feature_flags import get_flags +from app.agents.chat.multi_agent_chat.shared.feature_flags import get_flags from app.db import ( AgentActionLog, User, diff --git a/surfsense_backend/app/routes/anonymous_chat_routes.py b/surfsense_backend/app/routes/anonymous_chat_routes.py index e9c9a9079..982814dee 100644 --- a/surfsense_backend/app/routes/anonymous_chat_routes.py +++ b/surfsense_backend/app/routes/anonymous_chat_routes.py @@ -236,7 +236,7 @@ async def stream_anonymous_chat( detail="No-login mode is not enabled.", ) - from app.agents.multi_agent_chat.shared.llm_config import ( + from app.agents.chat.multi_agent_chat.shared.llm_config import ( AgentConfig, create_chat_litellm_from_agent_config, ) @@ -351,7 +351,7 @@ async def stream_anonymous_chat( async def _generate(): from langchain_core.messages import AIMessage, HumanMessage - from app.agents.anonymous_chat import create_anonymous_chat_agent + from app.agents.chat.anonymous_chat import create_anonymous_chat_agent from app.agents.runtime.checkpointer import get_checkpointer from app.db import shielded_async_session from app.services.new_streaming_service import VercelStreamingService diff --git a/surfsense_backend/app/routes/documents_routes.py b/surfsense_backend/app/routes/documents_routes.py index 9b05ff6f0..366ddad74 100644 --- a/surfsense_backend/app/routes/documents_routes.py +++ b/surfsense_backend/app/routes/documents_routes.py @@ -7,7 +7,7 @@ from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select from sqlalchemy.orm import selectinload -from app.agents.multi_agent_chat.shared.path_resolver import virtual_path_to_doc +from app.agents.chat.multi_agent_chat.shared.path_resolver import virtual_path_to_doc from app.db import ( Chunk, Document, diff --git a/surfsense_backend/app/routes/mcp_oauth_route.py b/surfsense_backend/app/routes/mcp_oauth_route.py index 4b7132064..fdeb6ecfd 100644 --- a/surfsense_backend/app/routes/mcp_oauth_route.py +++ b/surfsense_backend/app/routes/mcp_oauth_route.py @@ -665,7 +665,7 @@ def _refresh_mcp_cache(connector_id: int, space_id: int) -> None: isolated from the OAuth response flow. """ try: - from app.agents.multi_agent_chat.shared.tools.mcp.cache import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.cache import ( refresh_mcp_tools_cache_for_connector, ) diff --git a/surfsense_backend/app/routes/new_chat_routes.py b/surfsense_backend/app/routes/new_chat_routes.py index 0d8c8d461..465d83cac 100644 --- a/surfsense_backend/app/routes/new_chat_routes.py +++ b/surfsense_backend/app/routes/new_chat_routes.py @@ -24,13 +24,13 @@ from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select from sqlalchemy.orm import selectinload -from app.agents.multi_agent_chat.shared.filesystem_selection import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( ClientPlatform, FilesystemMode, FilesystemSelection, LocalFilesystemMount, ) -from app.agents.multi_agent_chat.shared.middleware.busy_mutex import ( +from app.agents.chat.multi_agent_chat.shared.middleware.busy_mutex import ( get_cancel_state, is_cancel_requested, manager, @@ -476,7 +476,7 @@ async def _revert_turns_for_regenerate( def _try_delete_sandbox(thread_id: int) -> None: """Fire-and-forget sandbox + local file deletion so the HTTP response isn't blocked.""" - from app.agents.multi_agent_chat.shared.sandbox import ( + from app.agents.chat.multi_agent_chat.shared.sandbox import ( delete_local_sandbox_files, delete_sandbox, is_sandbox_enabled, @@ -1668,7 +1668,7 @@ async def list_agent_tools( Hidden (WIP) tools are excluded from the response. """ - from app.agents.multi_agent_chat.shared.tools.catalog import TOOL_CATALOG + from app.agents.chat.multi_agent_chat.shared.tools.catalog import TOOL_CATALOG return [ AgentToolInfo( diff --git a/surfsense_backend/app/routes/sandbox_routes.py b/surfsense_backend/app/routes/sandbox_routes.py index 8c9cc1836..e9d2be7fa 100644 --- a/surfsense_backend/app/routes/sandbox_routes.py +++ b/surfsense_backend/app/routes/sandbox_routes.py @@ -51,7 +51,7 @@ async def download_sandbox_file( ): """Download a file from the Daytona sandbox associated with a chat thread.""" - from app.agents.multi_agent_chat.shared.sandbox import ( + from app.agents.chat.multi_agent_chat.shared.sandbox import ( get_or_create_sandbox, is_sandbox_enabled, ) @@ -74,7 +74,7 @@ async def download_sandbox_file( "You don't have permission to access files in this thread", ) - from app.agents.multi_agent_chat.shared.sandbox import get_local_sandbox_file + from app.agents.chat.multi_agent_chat.shared.sandbox import get_local_sandbox_file # Prefer locally-persisted copy (sandbox may already be deleted) local_content = get_local_sandbox_file(thread_id, path) diff --git a/surfsense_backend/app/routes/search_source_connectors_routes.py b/surfsense_backend/app/routes/search_source_connectors_routes.py index 1c39eee06..dc26b4c02 100644 --- a/surfsense_backend/app/routes/search_source_connectors_routes.py +++ b/surfsense_backend/app/routes/search_source_connectors_routes.py @@ -675,7 +675,7 @@ async def delete_search_source_connector( await session.commit() if is_mcp: - from app.agents.multi_agent_chat.shared.tools.mcp.tool import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.tool import ( invalidate_mcp_tools_cache, ) @@ -2689,7 +2689,7 @@ async def create_mcp_connector( f"for user {user.id} in search space {search_space_id}" ) - from app.agents.multi_agent_chat.shared.tools.mcp.cache import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.cache import ( refresh_mcp_tools_cache_for_connector, ) @@ -2869,7 +2869,7 @@ async def update_mcp_connector( logger.info(f"Updated MCP connector {connector_id}") - from app.agents.multi_agent_chat.shared.tools.mcp.cache import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.cache import ( refresh_mcp_tools_cache_for_connector, ) @@ -2929,7 +2929,7 @@ async def delete_mcp_connector( await session.delete(connector) await session.commit() - from app.agents.multi_agent_chat.shared.tools.mcp.tool import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.tool import ( invalidate_mcp_tools_cache, ) @@ -2970,7 +2970,7 @@ async def test_mcp_server_connection( Connection status and list of available tools """ try: - from app.agents.multi_agent_chat.shared.tools.mcp.client import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.client import ( test_mcp_connection, test_mcp_http_connection, ) @@ -3161,7 +3161,7 @@ async def trust_mcp_tool( connectors (``LINEAR_CONNECTOR``, ``JIRA_CONNECTOR``, ...) — the storage primitive is the same JSON list under ``config.trusted_tools``. """ - from app.agents.multi_agent_chat.shared.tools.mcp.tool import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.tool import ( invalidate_mcp_tools_cache, ) from app.services.user_tool_allowlist import add_user_trust @@ -3203,7 +3203,7 @@ async def untrust_mcp_tool( The tool will require HITL approval again on subsequent calls. """ - from app.agents.multi_agent_chat.shared.tools.mcp.tool import ( + from app.agents.chat.multi_agent_chat.shared.tools.mcp.tool import ( invalidate_mcp_tools_cache, ) from app.services.user_tool_allowlist import remove_user_trust diff --git a/surfsense_backend/app/services/llm_service.py b/surfsense_backend/app/services/llm_service.py index 7293fed46..b86562a20 100644 --- a/surfsense_backend/app/services/llm_service.py +++ b/surfsense_backend/app/services/llm_service.py @@ -204,7 +204,9 @@ async def validate_llm_config( if litellm_params: litellm_kwargs.update(litellm_params) - from app.agents.multi_agent_chat.shared.llm_config import SanitizedChatLiteLLM + from app.agents.chat.multi_agent_chat.shared.llm_config import ( + SanitizedChatLiteLLM, + ) llm = SanitizedChatLiteLLM(**litellm_kwargs) @@ -379,7 +381,7 @@ async def get_search_space_llm_instance( if disable_streaming: litellm_kwargs["disable_streaming"] = True - from app.agents.multi_agent_chat.shared.llm_config import ( + from app.agents.chat.multi_agent_chat.shared.llm_config import ( SanitizedChatLiteLLM, ) @@ -460,7 +462,9 @@ async def get_search_space_llm_instance( if disable_streaming: litellm_kwargs["disable_streaming"] = True - from app.agents.multi_agent_chat.shared.llm_config import SanitizedChatLiteLLM + from app.agents.chat.multi_agent_chat.shared.llm_config import ( + SanitizedChatLiteLLM, + ) return SanitizedChatLiteLLM(**litellm_kwargs) @@ -582,7 +586,7 @@ async def get_vision_llm( if global_cfg.get("litellm_params"): litellm_kwargs.update(global_cfg["litellm_params"]) - from app.agents.multi_agent_chat.shared.llm_config import ( + from app.agents.chat.multi_agent_chat.shared.llm_config import ( SanitizedChatLiteLLM, ) @@ -638,7 +642,9 @@ async def get_vision_llm( if vision_cfg.litellm_params: litellm_kwargs.update(vision_cfg.litellm_params) - from app.agents.multi_agent_chat.shared.llm_config import SanitizedChatLiteLLM + from app.agents.chat.multi_agent_chat.shared.llm_config import ( + SanitizedChatLiteLLM, + ) return SanitizedChatLiteLLM(**litellm_kwargs) @@ -683,7 +689,7 @@ def get_planner_llm() -> ChatLiteLLM | None: Callers MUST fall back to their chat LLM when this returns ``None`` so deployments without a planner config keep working unchanged. """ - from app.agents.multi_agent_chat.shared.llm_config import ( + from app.agents.chat.multi_agent_chat.shared.llm_config import ( create_chat_litellm_from_config, ) diff --git a/surfsense_backend/app/services/provider_capabilities.py b/surfsense_backend/app/services/provider_capabilities.py index bd96851a8..36e0299eb 100644 --- a/surfsense_backend/app/services/provider_capabilities.py +++ b/surfsense_backend/app/services/provider_capabilities.py @@ -53,7 +53,7 @@ logger = logging.getLogger(__name__) # # Owned here because ``app.services.provider_capabilities`` is the # only edge that's safe to call from ``app.config``'s YAML loader at -# class-body init time. ``app.agents.multi_agent_chat.shared.llm_config`` re-exports +# class-body init time. ``app.agents.chat.multi_agent_chat.shared.llm_config`` re-exports # this constant under the historical ``PROVIDER_MAP`` name; placing the # map there directly would re-introduce the # ``app.config -> ... -> deliverables/tools/generate_image -> diff --git a/surfsense_backend/app/services/revert_service.py b/surfsense_backend/app/services/revert_service.py index 9251a93a7..59b4c0072 100644 --- a/surfsense_backend/app/services/revert_service.py +++ b/surfsense_backend/app/services/revert_service.py @@ -38,7 +38,7 @@ from typing import Any, Literal from sqlalchemy import delete, select from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.path_resolver import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import ( DOCUMENTS_ROOT, safe_filename, safe_folder_segment, diff --git a/surfsense_backend/app/services/user_tool_allowlist.py b/surfsense_backend/app/services/user_tool_allowlist.py index a65f4ceea..9b87fbdea 100644 --- a/surfsense_backend/app/services/user_tool_allowlist.py +++ b/surfsense_backend/app/services/user_tool_allowlist.py @@ -16,10 +16,10 @@ from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm.attributes import flag_modified -from app.agents.multi_agent_chat.constants import ( +from app.agents.chat.multi_agent_chat.constants import ( CONNECTOR_TYPE_TO_CONNECTOR_AGENT_MAPS, ) -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset from app.db import SearchSourceConnector, async_session_maker logger = logging.getLogger(__name__) diff --git a/surfsense_backend/app/tasks/chat/streaming/agent/builder.py b/surfsense_backend/app/tasks/chat/streaming/agent/builder.py index 27fa1334d..31662b20a 100644 --- a/surfsense_backend/app/tasks/chat/streaming/agent/builder.py +++ b/surfsense_backend/app/tasks/chat/streaming/agent/builder.py @@ -9,8 +9,10 @@ from __future__ import annotations from typing import Any -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemSelection -from app.agents.multi_agent_chat.shared.llm_config import AgentConfig +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( + FilesystemSelection, +) +from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig from app.db import ChatVisibility from app.services.connector_service import ConnectorService diff --git a/surfsense_backend/app/tasks/chat/streaming/agent/event_loop.py b/surfsense_backend/app/tasks/chat/streaming/agent/event_loop.py index 82e126d54..853368783 100644 --- a/surfsense_backend/app/tasks/chat/streaming/agent/event_loop.py +++ b/surfsense_backend/app/tasks/chat/streaming/agent/event_loop.py @@ -11,8 +11,8 @@ from __future__ import annotations from collections.abc import AsyncGenerator from typing import Any -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.middleware.kb_persistence import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.middleware.kb_persistence import ( commit_staged_filesystem_state, ) from app.services.new_streaming_service import VercelStreamingService diff --git a/surfsense_backend/app/tasks/chat/streaming/errors/classifier.py b/surfsense_backend/app/tasks/chat/streaming/errors/classifier.py index f7d9ea009..bb0c10084 100644 --- a/surfsense_backend/app/tasks/chat/streaming/errors/classifier.py +++ b/surfsense_backend/app/tasks/chat/streaming/errors/classifier.py @@ -7,8 +7,8 @@ import logging import time from typing import Any, Literal -from app.agents.multi_agent_chat.shared.errors import BusyError -from app.agents.multi_agent_chat.shared.middleware.busy_mutex import ( +from app.agents.chat.multi_agent_chat.shared.errors import BusyError +from app.agents.chat.multi_agent_chat.shared.middleware.busy_mutex import ( get_cancel_state, is_cancel_requested, ) diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/input_state.py b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/input_state.py index dee39ef9e..9ee102e2e 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/input_state.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/input_state.py @@ -28,8 +28,8 @@ from langchain_core.messages import HumanMessage from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.mention_resolver import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.mention_resolver import ( resolve_mentions, substitute_in_text, ) diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/llm_capability.py b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/llm_capability.py index d72e351c0..d7b830e65 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/llm_capability.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/llm_capability.py @@ -15,7 +15,7 @@ tells the user what to change. from __future__ import annotations -from app.agents.multi_agent_chat.shared.llm_config import AgentConfig +from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig from app.observability import otel as ot diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/orchestrator.py b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/orchestrator.py index b47ea9406..a978cd33a 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/orchestrator.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/orchestrator.py @@ -29,12 +29,12 @@ from typing import Any, Literal import anyio -from app.agents.multi_agent_chat import create_multi_agent_chat_deep_agent -from app.agents.multi_agent_chat.shared.filesystem_selection import ( +from app.agents.chat.multi_agent_chat import create_multi_agent_chat_deep_agent +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( FilesystemMode, FilesystemSelection, ) -from app.agents.multi_agent_chat.shared.middleware.busy_mutex import end_turn +from app.agents.chat.multi_agent_chat.shared.middleware.busy_mutex import end_turn from app.db import ChatVisibility, async_session_maker from app.observability import otel as ot from app.services.new_streaming_service import VercelStreamingService @@ -829,7 +829,7 @@ async def stream_new_chat( # downloadable after the Daytona sandbox auto-deletes. if stream_result and stream_result.sandbox_files: with contextlib.suppress(Exception): - from app.agents.multi_agent_chat.shared.sandbox import ( + from app.agents.chat.multi_agent_chat.shared.sandbox import ( is_sandbox_enabled, persist_and_delete_sandbox, ) diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/runtime_context.py b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/runtime_context.py index e93eff241..195a16b1e 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/runtime_context.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/runtime_context.py @@ -8,7 +8,7 @@ mention lists / request ids / turn ids without rebuilding the graph. from __future__ import annotations -from app.agents.shared.context import SurfSenseContextSchema +from app.agents.chat.shared.context import SurfSenseContextSchema def build_new_chat_runtime_context( diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/title_gen.py b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/title_gen.py index 2ca0b7f52..f85b56b28 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/title_gen.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/new_chat/title_gen.py @@ -30,7 +30,7 @@ from app.prompts import TITLE_GENERATION_PROMPT from app.services.new_streaming_service import VercelStreamingService if TYPE_CHECKING: - from app.agents.multi_agent_chat.shared.llm_config import AgentConfig + from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig from app.services.token_tracking_service import TokenAccumulator diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/orchestrator.py b/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/orchestrator.py index 4b1c0b6e0..327a2376e 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/orchestrator.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/orchestrator.py @@ -23,12 +23,12 @@ from uuid import UUID import anyio -from app.agents.multi_agent_chat import create_multi_agent_chat_deep_agent -from app.agents.multi_agent_chat.shared.filesystem_selection import ( +from app.agents.chat.multi_agent_chat import create_multi_agent_chat_deep_agent +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( FilesystemMode, FilesystemSelection, ) -from app.agents.multi_agent_chat.shared.middleware.busy_mutex import end_turn +from app.agents.chat.multi_agent_chat.shared.middleware.busy_mutex import end_turn from app.db import ChatVisibility, async_session_maker from app.observability import otel as ot from app.services.chat_session_state_service import set_ai_responding diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/resume_routing.py b/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/resume_routing.py index 306b557b6..d9877c9b0 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/resume_routing.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/resume_routing.py @@ -41,7 +41,7 @@ async def build_resume_routing( ``surfsense_resume_value`` configurable; parallel siblings each pop their own entry so they never race. """ - from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( + from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( build_lg_resume_map, collect_pending_tool_calls, slice_decisions_by_tool_call, diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/runtime_context.py b/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/runtime_context.py index 765e7b84d..54f0dfba0 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/runtime_context.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/resume_chat/runtime_context.py @@ -7,7 +7,7 @@ can rely on ``runtime.context`` always being populated. from __future__ import annotations -from app.agents.shared.context import SurfSenseContextSchema +from app.agents.chat.shared.context import SurfSenseContextSchema def build_resume_chat_runtime_context( diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/shared/llm_bundle.py b/surfsense_backend/app/tasks/chat/streaming/flows/shared/llm_bundle.py index 7b1eaea05..09eb4efcd 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/shared/llm_bundle.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/shared/llm_bundle.py @@ -14,7 +14,7 @@ from typing import Any from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.llm_config import ( +from app.agents.chat.multi_agent_chat.shared.llm_config import ( AgentConfig, create_chat_litellm_from_agent_config, create_chat_litellm_from_config, diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/shared/premium_quota.py b/surfsense_backend/app/tasks/chat/streaming/flows/shared/premium_quota.py index dfc75a633..fcabbc6d5 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/shared/premium_quota.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/shared/premium_quota.py @@ -19,7 +19,7 @@ from dataclasses import dataclass from typing import TYPE_CHECKING from uuid import UUID -from app.agents.multi_agent_chat.shared.llm_config import AgentConfig +from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig from app.db import shielded_async_session if TYPE_CHECKING: diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/shared/rate_limit_recovery.py b/surfsense_backend/app/tasks/chat/streaming/flows/shared/rate_limit_recovery.py index 638bba0bf..b059828bf 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/shared/rate_limit_recovery.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/shared/rate_limit_recovery.py @@ -17,7 +17,7 @@ from typing import Literal from sqlalchemy.ext.asyncio import AsyncSession -from app.agents.multi_agent_chat.shared.middleware.busy_mutex import end_turn +from app.agents.chat.multi_agent_chat.shared.middleware.busy_mutex import end_turn from app.observability import otel as ot from app.services.auto_model_pin_service import ( mark_runtime_cooldown, diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/shared/stream_loop.py b/surfsense_backend/app/tasks/chat/streaming/flows/shared/stream_loop.py index 3e279815c..f455a8ffd 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/shared/stream_loop.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/shared/stream_loop.py @@ -15,7 +15,7 @@ from __future__ import annotations from collections.abc import AsyncGenerator, Awaitable, Callable from typing import Any -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode from app.services.new_streaming_service import VercelStreamingService from app.tasks.chat.streaming.agent.event_loop import stream_agent_events from app.tasks.chat.streaming.shared.stream_result import StreamResult diff --git a/surfsense_backend/app/tasks/chat/streaming/flows/shared/terminal_error.py b/surfsense_backend/app/tasks/chat/streaming/flows/shared/terminal_error.py index 09aa242f2..7e627e64e 100644 --- a/surfsense_backend/app/tasks/chat/streaming/flows/shared/terminal_error.py +++ b/surfsense_backend/app/tasks/chat/streaming/flows/shared/terminal_error.py @@ -14,7 +14,7 @@ import traceback from collections.abc import Iterator from typing import Any, Literal -from app.agents.multi_agent_chat.shared.errors import BusyError +from app.agents.chat.multi_agent_chat.shared.errors import BusyError from app.observability import metrics as ot_metrics, otel as ot from app.services.new_streaming_service import VercelStreamingService from app.tasks.chat.streaming.errors.classifier import classify_stream_exception diff --git a/surfsense_backend/app/tasks/chat/streaming/handlers/tool_end.py b/surfsense_backend/app/tasks/chat/streaming/handlers/tool_end.py index e0be1ddbd..ae04c2823 100644 --- a/surfsense_backend/app/tasks/chat/streaming/handlers/tool_end.py +++ b/surfsense_backend/app/tasks/chat/streaming/handlers/tool_end.py @@ -26,7 +26,7 @@ def _unwrap_command_output(raw_output: Any) -> Any: """Replace a ``Command`` from a tool return with its inner ``ToolMessage``. Tools that participate in receipt-style state writes (see - ``app.agents.multi_agent_chat.shared.receipts.command.with_receipt``) return a + ``app.agents.chat.multi_agent_chat.shared.receipts.command.with_receipt``) return a ``Command(update={"messages": [ToolMessage(...)], "receipts": [...]})``. LangChain's ``on_tool_end`` event surfaces that ``Command`` verbatim as ``data.output``, which the rest of this handler can't introspect: it has diff --git a/surfsense_backend/app/tasks/chat/streaming/handlers/tools/deliverables/generate_video_presentation/emission.py b/surfsense_backend/app/tasks/chat/streaming/handlers/tools/deliverables/generate_video_presentation/emission.py index 95aed2b85..34283bcdb 100644 --- a/surfsense_backend/app/tasks/chat/streaming/handlers/tools/deliverables/generate_video_presentation/emission.py +++ b/surfsense_backend/app/tasks/chat/streaming/handlers/tools/deliverables/generate_video_presentation/emission.py @@ -21,7 +21,7 @@ def iter_completion_emission_frames( # ``ready`` is the live success status now that the tool waits for the # Celery worker to reach a terminal state. ``pending`` is retained as a # legacy branch for old saved chats that pre-date the wait-for-terminal - # change (see ``app.agents.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait``). + # change (see ``app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.deliverable_wait``). if status == "ready": yield ctx.streaming_service.format_terminal_info( f"Video presentation generated successfully: {out.get('title', 'Presentation')}", diff --git a/surfsense_backend/tests/e2e/fakes/mcp_runtime.py b/surfsense_backend/tests/e2e/fakes/mcp_runtime.py index 77328735c..5e4ef403f 100644 --- a/surfsense_backend/tests/e2e/fakes/mcp_runtime.py +++ b/surfsense_backend/tests/e2e/fakes/mcp_runtime.py @@ -137,10 +137,10 @@ def install(active_patches: list[Any]) -> None: """Patch production MCP streamable-HTTP boundaries exactly once.""" targets = [ ( - "app.agents.multi_agent_chat.shared.tools.mcp.tool.streamablehttp_client", + "app.agents.chat.multi_agent_chat.shared.tools.mcp.tool.streamablehttp_client", _fake_streamablehttp_client, ), - ("app.agents.multi_agent_chat.shared.tools.mcp.tool.ClientSession", _FakeClientSession), + ("app.agents.chat.multi_agent_chat.shared.tools.mcp.tool.ClientSession", _FakeClientSession), ] for target, replacement in targets: p = patch(target, replacement) diff --git a/surfsense_backend/tests/e2e/fakes/native_google.py b/surfsense_backend/tests/e2e/fakes/native_google.py index eae30546e..1afcaf9c3 100644 --- a/surfsense_backend/tests/e2e/fakes/native_google.py +++ b/surfsense_backend/tests/e2e/fakes/native_google.py @@ -430,15 +430,15 @@ def install(active_patches: list[Any]) -> None: ("app.connectors.google_gmail_connector.build", _fake_build), ("app.connectors.google_calendar_connector.build", _fake_build), ( - "app.agents.multi_agent_chat.subagents.connectors.calendar.tools.create_event.build", + "app.agents.chat.multi_agent_chat.subagents.connectors.calendar.tools.create_event.build", _fake_build, ), ( - "app.agents.multi_agent_chat.subagents.connectors.calendar.tools.update_event.build", + "app.agents.chat.multi_agent_chat.subagents.connectors.calendar.tools.update_event.build", _fake_build, ), ( - "app.agents.multi_agent_chat.subagents.connectors.calendar.tools.delete_event.build", + "app.agents.chat.multi_agent_chat.subagents.connectors.calendar.tools.delete_event.build", _fake_build, ), ("googleapiclient.http.MediaIoBaseDownload", _FakeMediaIoBaseDownload), diff --git a/surfsense_backend/tests/e2e/run_backend.py b/surfsense_backend/tests/e2e/run_backend.py index 68dcacceb..860bf7e68 100644 --- a/surfsense_backend/tests/e2e/run_backend.py +++ b/surfsense_backend/tests/e2e/run_backend.py @@ -239,11 +239,11 @@ def _patch_llm_bindings() -> None: chat_targets = [ ( - "app.agents.multi_agent_chat.shared.llm_config.create_chat_litellm_from_agent_config", + "app.agents.chat.multi_agent_chat.shared.llm_config.create_chat_litellm_from_agent_config", fake_create_chat_litellm_from_agent_config, ), ( - "app.agents.multi_agent_chat.shared.llm_config.create_chat_litellm_from_config", + "app.agents.chat.multi_agent_chat.shared.llm_config.create_chat_litellm_from_config", fake_create_chat_litellm_from_config, ), ( diff --git a/surfsense_backend/tests/e2e/run_celery.py b/surfsense_backend/tests/e2e/run_celery.py index a71045185..fa9b1aa25 100644 --- a/surfsense_backend/tests/e2e/run_celery.py +++ b/surfsense_backend/tests/e2e/run_celery.py @@ -212,11 +212,11 @@ def _patch_llm_bindings() -> None: chat_targets = [ ( - "app.agents.multi_agent_chat.shared.llm_config.create_chat_litellm_from_agent_config", + "app.agents.chat.multi_agent_chat.shared.llm_config.create_chat_litellm_from_agent_config", fake_create_chat_litellm_from_agent_config, ), ( - "app.agents.multi_agent_chat.shared.llm_config.create_chat_litellm_from_config", + "app.agents.chat.multi_agent_chat.shared.llm_config.create_chat_litellm_from_config", fake_create_chat_litellm_from_config, ), ( diff --git a/surfsense_backend/tests/integration/agents/multi_agent_chat/test_agent_turn.py b/surfsense_backend/tests/integration/agents/multi_agent_chat/test_agent_turn.py index f8677c2e8..b30744177 100644 --- a/surfsense_backend/tests/integration/agents/multi_agent_chat/test_agent_turn.py +++ b/surfsense_backend/tests/integration/agents/multi_agent_chat/test_agent_turn.py @@ -16,7 +16,7 @@ import pytest from langchain_core.messages import AIMessage, HumanMessage, ToolMessage from langgraph.checkpoint.memory import InMemorySaver -from app.agents.multi_agent_chat import create_multi_agent_chat_deep_agent +from app.agents.chat.multi_agent_chat import create_multi_agent_chat_deep_agent from app.services.connector_service import ConnectorService from tests.integration.harness import ( ScriptedTurn, diff --git a/surfsense_backend/tests/integration/agents/multi_agent_chat/test_kb_filesystem_cloud.py b/surfsense_backend/tests/integration/agents/multi_agent_chat/test_kb_filesystem_cloud.py index 1b08d4562..878473f55 100644 --- a/surfsense_backend/tests/integration/agents/multi_agent_chat/test_kb_filesystem_cloud.py +++ b/surfsense_backend/tests/integration/agents/multi_agent_chat/test_kb_filesystem_cloud.py @@ -20,14 +20,14 @@ from langchain.agents import create_agent from langchain_core.messages import HumanMessage, ToolMessage from langgraph.checkpoint.memory import InMemorySaver -from app.agents.multi_agent_chat.shared.filesystem_selection import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( FilesystemMode, FilesystemSelection, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem import ( build_filesystem_mw, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( build_backend_resolver, ) from tests.integration.harness import ScriptedTurn, build_scripted_harness diff --git a/surfsense_backend/tests/integration/agents/multi_agent_chat/test_kb_filesystem_desktop.py b/surfsense_backend/tests/integration/agents/multi_agent_chat/test_kb_filesystem_desktop.py index 033766763..4c624d80d 100644 --- a/surfsense_backend/tests/integration/agents/multi_agent_chat/test_kb_filesystem_desktop.py +++ b/surfsense_backend/tests/integration/agents/multi_agent_chat/test_kb_filesystem_desktop.py @@ -1,10 +1,10 @@ """Real-behavior tests for the LIVE knowledge-base filesystem middleware (B). -These exercise ``app.agents.multi_agent_chat.shared.middleware.filesystem`` — +These exercise ``app.agents.chat.multi_agent_chat.shared.middleware.filesystem`` — the decomposed middleware + tools that production actually mounts on the knowledge_base subagent (via ``build_filesystem_mw``). The previous ``tests/unit/middleware/test_filesystem_*.py`` suite asserts a *dead twin* -(``app.agents.shared.middleware.filesystem``) that is never instantiated, so the +(``app.agents.chat.shared.middleware.filesystem``) that is never instantiated, so the live tool path had no real coverage. Strategy: mount the production ``build_filesystem_mw`` on a minimal @@ -23,15 +23,15 @@ from langchain.agents import create_agent from langchain_core.messages import HumanMessage, ToolMessage from langgraph.checkpoint.memory import InMemorySaver -from app.agents.multi_agent_chat.shared.filesystem_selection import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( FilesystemMode, FilesystemSelection, LocalFilesystemMount, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem import ( build_filesystem_mw, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( build_backend_resolver, ) from tests.integration.harness import ScriptedTurn, build_scripted_harness diff --git a/surfsense_backend/tests/integration/google_unification/conftest.py b/surfsense_backend/tests/integration/google_unification/conftest.py index df07c4841..390442fdd 100644 --- a/surfsense_backend/tests/integration/google_unification/conftest.py +++ b/surfsense_backend/tests/integration/google_unification/conftest.py @@ -239,7 +239,7 @@ def patched_shielded_session(async_engine, monkeypatch): yield session monkeypatch.setattr( - "app.agents.multi_agent_chat.subagents.builtins.deliverables.tools.knowledge_base.shielded_async_session", + "app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.tools.knowledge_base.shielded_async_session", _test_shielded, ) diff --git a/surfsense_backend/tests/integration/google_unification/test_browse_includes_legacy_docs.py b/surfsense_backend/tests/integration/google_unification/test_browse_includes_legacy_docs.py index 1afa72d11..f0d5c6c6c 100644 --- a/surfsense_backend/tests/integration/google_unification/test_browse_includes_legacy_docs.py +++ b/surfsense_backend/tests/integration/google_unification/test_browse_includes_legacy_docs.py @@ -17,7 +17,7 @@ async def test_browse_recent_documents_with_list_type_returns_both( committed_google_data, patched_shielded_session ): """_browse_recent_documents returns docs of all types when given a list.""" - from app.agents.multi_agent_chat.subagents.builtins.deliverables.tools.knowledge_base import ( + from app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.tools.knowledge_base import ( _browse_recent_documents, ) diff --git a/surfsense_backend/tests/integration/retriever/test_knowledge_search_date_filters.py b/surfsense_backend/tests/integration/retriever/test_knowledge_search_date_filters.py index 5937af196..ce076b147 100644 --- a/surfsense_backend/tests/integration/retriever/test_knowledge_search_date_filters.py +++ b/surfsense_backend/tests/integration/retriever/test_knowledge_search_date_filters.py @@ -8,8 +8,8 @@ from datetime import UTC, datetime, timedelta import numpy as np import pytest -from app.agents.multi_agent_chat.shared.middleware import knowledge_search as ks -from app.agents.multi_agent_chat.shared.middleware.knowledge_search import ( +from app.agents.chat.multi_agent_chat.shared.middleware import knowledge_search as ks +from app.agents.chat.multi_agent_chat.shared.middleware.knowledge_search import ( search_knowledge_base, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_hitl_bridge.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_hitl_bridge.py index d1cc22426..dc5a6d1fa 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_hitl_bridge.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_hitl_bridge.py @@ -14,14 +14,14 @@ from langgraph.graph import END, START, StateGraph from langgraph.types import Command, interrupt from typing_extensions import TypedDict -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.config import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.config import ( subagent_invoke_config, ) -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( collect_pending_tool_calls, slice_decisions_by_tool_call, ) -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( build_task_tool_with_parent_config, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_heterogeneous_decisions.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_heterogeneous_decisions.py index b2f355e7a..dd895c54e 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_heterogeneous_decisions.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_heterogeneous_decisions.py @@ -40,12 +40,12 @@ from langgraph.graph.message import add_messages from langgraph.types import Command, Send, interrupt from typing_extensions import TypedDict -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( build_lg_resume_map, collect_pending_tool_calls, slice_decisions_by_tool_call, ) -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( build_task_tool_with_parent_config, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_partial_pause_routing.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_partial_pause_routing.py index 044d49fba..7ac7686e9 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_partial_pause_routing.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_partial_pause_routing.py @@ -47,12 +47,12 @@ from langgraph.graph.message import add_messages from langgraph.types import Command, Send, interrupt from typing_extensions import TypedDict -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( build_lg_resume_map, collect_pending_tool_calls, slice_decisions_by_tool_call, ) -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( build_task_tool_with_parent_config, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_reject_only_routing.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_reject_only_routing.py index e195497e3..a1bbb9e7a 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_reject_only_routing.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_reject_only_routing.py @@ -37,12 +37,12 @@ from langgraph.graph.message import add_messages from langgraph.types import Command, Send, interrupt from typing_extensions import TypedDict -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( build_lg_resume_map, collect_pending_tool_calls, slice_decisions_by_tool_call, ) -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( build_task_tool_with_parent_config, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_resume_command_keying.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_resume_command_keying.py index 5add68d10..b082119e3 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_resume_command_keying.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_resume_command_keying.py @@ -37,12 +37,12 @@ from langgraph.graph.message import add_messages from langgraph.types import Command, Send, interrupt from typing_extensions import TypedDict -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( build_lg_resume_map, collect_pending_tool_calls, slice_decisions_by_tool_call, ) -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( build_task_tool_with_parent_config, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_self_and_middleware_gated.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_self_and_middleware_gated.py index 4d279f4ac..4e2f88847 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_self_and_middleware_gated.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_self_and_middleware_gated.py @@ -35,19 +35,19 @@ from langgraph.graph.message import add_messages from langgraph.types import Command, Send from typing_extensions import TypedDict -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( build_lg_resume_map, collect_pending_tool_calls, slice_decisions_by_tool_call, ) -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( build_task_tool_with_parent_config, ) -from app.agents.multi_agent_chat.shared.middleware.permissions.ask.request import ( +from app.agents.chat.multi_agent_chat.shared.middleware.permissions.ask.request import ( request_permission_decision, ) -from app.agents.multi_agent_chat.shared.permissions import Rule -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.shared.permissions import Rule +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_tasks.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_tasks.py index f6ff83244..836822d34 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_tasks.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_parallel_tasks.py @@ -18,7 +18,7 @@ from langgraph.graph import END, START, StateGraph from langgraph.types import Command from typing_extensions import TypedDict -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( build_task_tool_with_parent_config, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_pending_interrupt.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_pending_interrupt.py index 2fc1ffd45..ec757bcf0 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_pending_interrupt.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_pending_interrupt.py @@ -9,7 +9,7 @@ from __future__ import annotations from types import SimpleNamespace -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume import ( get_first_pending_subagent_interrupt, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_resume_decision_routing.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_resume_decision_routing.py index 58a65bc7d..62f33addc 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_resume_decision_routing.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_resume_decision_routing.py @@ -17,7 +17,7 @@ from types import SimpleNamespace import pytest -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.resume_routing import ( collect_pending_tool_calls, slice_decisions_by_tool_call, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_resume_helpers.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_resume_helpers.py index 0ca3ce38d..ba9d163a4 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_resume_helpers.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_resume_helpers.py @@ -4,7 +4,7 @@ from __future__ import annotations from langchain.tools import ToolRuntime -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.config import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.config import ( consume_surfsense_resume, has_surfsense_resume, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_subagent_interrupt_stamping.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_subagent_interrupt_stamping.py index 9d35ba289..4bc0ecace 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_subagent_interrupt_stamping.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_subagent_interrupt_stamping.py @@ -30,7 +30,7 @@ from langgraph.graph import END, START, StateGraph from langgraph.types import Send, interrupt from typing_extensions import TypedDict -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( build_task_tool_with_parent_config, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_subagent_invoke_config.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_subagent_invoke_config.py index 87cbbc7d1..1fe7058d0 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_subagent_invoke_config.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/checkpointed_subagent_middleware/test_subagent_invoke_config.py @@ -16,7 +16,7 @@ from __future__ import annotations from langchain.tools import ToolRuntime -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.config import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.config import ( subagent_invoke_config, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_lc_hitl_wire.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_lc_hitl_wire.py index 0c21b81f4..2a6c1a5b1 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_lc_hitl_wire.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_lc_hitl_wire.py @@ -16,10 +16,10 @@ from langgraph.graph import END, START, StateGraph from langgraph.types import Command from typing_extensions import TypedDict -from app.agents.multi_agent_chat.shared.middleware.permissions.ask.request import ( +from app.agents.chat.multi_agent_chat.shared.middleware.permissions.ask.request import ( request_permission_decision, ) -from app.agents.multi_agent_chat.shared.permissions import Rule +from app.agents.chat.multi_agent_chat.shared.permissions import Rule class _State(TypedDict, total=False): diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_permission_ask_mcp_context.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_permission_ask_mcp_context.py index 3889217ba..1a2b40391 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_permission_ask_mcp_context.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_permission_ask_mcp_context.py @@ -13,14 +13,14 @@ from langgraph.graph.message import add_messages from pydantic import BaseModel from typing_extensions import TypedDict -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.permissions import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.permissions import ( build_permission_mw, ) -from app.agents.multi_agent_chat.shared.middleware.permissions.ask.payload import ( +from app.agents.chat.multi_agent_chat.shared.middleware.permissions.ask.payload import ( build_permission_ask_payload, ) -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset class _NoArgs(BaseModel): diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_subagent_owned_ruleset.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_subagent_owned_ruleset.py index 7acee99b7..d2351c105 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_subagent_owned_ruleset.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_subagent_owned_ruleset.py @@ -23,11 +23,11 @@ from langgraph.graph.message import add_messages from langgraph.types import Command from typing_extensions import TypedDict -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.permissions import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.permissions import ( build_permission_mw, ) -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset def _kb_style_ruleset() -> Ruleset: diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_trusted_tool_save_on_always.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_trusted_tool_save_on_always.py index 3ff304b51..575f31369 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_trusted_tool_save_on_always.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/middleware/shared/permissions/test_trusted_tool_save_on_always.py @@ -14,11 +14,11 @@ from langgraph.types import Command from pydantic import BaseModel from typing_extensions import TypedDict -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.permissions import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.permissions import ( build_permission_mw, ) -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset class _NoArgs(BaseModel): diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/test_lc_hitl_wire.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/test_lc_hitl_wire.py index 195b1bc01..a33d11358 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/test_lc_hitl_wire.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/hitl/approvals/self_gated/test_lc_hitl_wire.py @@ -22,7 +22,7 @@ from langgraph.graph import END, START, StateGraph from langgraph.types import Command from typing_extensions import TypedDict -from app.agents.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.approvals.self_gated import ( request_approval, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/hitl/wire/test_hitl_wire.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/hitl/wire/test_hitl_wire.py index c06f9a627..cdaa4d71d 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/hitl/wire/test_hitl_wire.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/hitl/wire/test_hitl_wire.py @@ -18,7 +18,7 @@ These tests pin the shape: from __future__ import annotations -from app.agents.multi_agent_chat.subagents.shared.hitl.wire import ( +from app.agents.chat.multi_agent_chat.subagents.shared.hitl.wire import ( LC_DECISION_APPROVE, LC_DECISION_EDIT, LC_DECISION_REJECT, diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/test_subagent_builder.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/test_subagent_builder.py index 0fb9bd4dc..ffe5b5c86 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/test_subagent_builder.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/subagents/shared/test_subagent_builder.py @@ -19,12 +19,12 @@ from langchain_core.language_models.fake_chat_models import ( from langchain_core.messages import AIMessage, BaseMessage, HumanMessage from langchain_core.outputs import ChatGeneration, ChatResult -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags -from app.agents.multi_agent_chat.shared.middleware.permissions.middleware.core import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.middleware.permissions.middleware.core import ( PermissionMiddleware, ) -from app.agents.multi_agent_chat.shared.permissions import Rule, Ruleset, evaluate -from app.agents.multi_agent_chat.subagents.shared.subagent_builder import ( +from app.agents.chat.multi_agent_chat.shared.permissions import Rule, Ruleset, evaluate +from app.agents.chat.multi_agent_chat.subagents.shared.subagent_builder import ( pack_subagent, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/test_prompt_resources.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/test_prompt_resources.py index c724fd76f..ccdfc0b98 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/test_prompt_resources.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/test_prompt_resources.py @@ -14,14 +14,14 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.main_agent.system_prompt.builder.load_md import ( +from app.agents.chat.multi_agent_chat.main_agent.system_prompt.builder.load_md import ( read_prompt_md, ) -from app.agents.multi_agent_chat.subagents.registry import ( +from app.agents.chat.multi_agent_chat.subagents.registry import ( SUBAGENT_BUILDERS_BY_NAME, _route_resource_package, ) -from app.agents.multi_agent_chat.subagents.shared.md_file_reader import ( +from app.agents.chat.multi_agent_chat.subagents.shared.md_file_reader import ( read_md_file, read_shared_snippet, ) diff --git a/surfsense_backend/tests/unit/agents/multi_agent_chat/test_subagent_composition.py b/surfsense_backend/tests/unit/agents/multi_agent_chat/test_subagent_composition.py index 00ed65b50..157f1703b 100644 --- a/surfsense_backend/tests/unit/agents/multi_agent_chat/test_subagent_composition.py +++ b/surfsense_backend/tests/unit/agents/multi_agent_chat/test_subagent_composition.py @@ -10,10 +10,10 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.constants import ( +from app.agents.chat.multi_agent_chat.constants import ( SUBAGENT_TO_REQUIRED_CONNECTOR_MAP, ) -from app.agents.multi_agent_chat.subagents.registry import ( +from app.agents.chat.multi_agent_chat.subagents.registry import ( SUBAGENT_BUILDERS_BY_NAME, ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/middleware/test_scoped_model_fallback.py b/surfsense_backend/tests/unit/agents/new_chat/middleware/test_scoped_model_fallback.py index 8ba4d7c91..361a23f41 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/middleware/test_scoped_model_fallback.py +++ b/surfsense_backend/tests/unit/agents/new_chat/middleware/test_scoped_model_fallback.py @@ -87,7 +87,7 @@ class RateLimitError(Exception): def _build_agent(primary: BaseChatModel, fallback: BaseChatModel): from langchain.agents import create_agent - from app.agents.multi_agent_chat.shared.middleware.resilience.scoped_model_fallback import ( + from app.agents.chat.multi_agent_chat.shared.middleware.resilience.scoped_model_fallback import ( ScopedModelFallbackMiddleware, ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_action_log.py b/surfsense_backend/tests/unit/agents/new_chat/test_action_log.py index 4fcbbdb2f..e476538bd 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_action_log.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_action_log.py @@ -10,11 +10,11 @@ import pytest from langchain_core.messages import ToolMessage from langchain_core.tools import tool -from app.agents.multi_agent_chat.main_agent.middleware.action_log.middleware import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.action_log.middleware import ( ActionLogMiddleware, ToolDefinition, ) -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags @dataclass @@ -60,7 +60,7 @@ def _disabled_flags() -> AgentFeatureFlags: def patch_get_flags(): def _patch(flags: AgentFeatureFlags): return patch( - "app.agents.multi_agent_chat.main_agent.middleware.action_log.middleware.get_flags", + "app.agents.chat.multi_agent_chat.main_agent.middleware.action_log.middleware.get_flags", return_value=flags, ) @@ -362,7 +362,7 @@ class TestActionLogDispatch: patch_get_flags(_enabled_flags()), patch("app.db.shielded_async_session", side_effect=lambda: factory()), patch( - "app.agents.multi_agent_chat.main_agent.middleware.action_log.middleware.adispatch_custom_event", + "app.agents.chat.multi_agent_chat.main_agent.middleware.action_log.middleware.adispatch_custom_event", dispatch_mock, ), ): @@ -397,7 +397,7 @@ class TestActionLogDispatch: patch_get_flags(_enabled_flags()), patch("app.db.shielded_async_session", side_effect=_exploding_session), patch( - "app.agents.multi_agent_chat.main_agent.middleware.action_log.middleware.adispatch_custom_event", + "app.agents.chat.multi_agent_chat.main_agent.middleware.action_log.middleware.adispatch_custom_event", dispatch_mock, ), ): diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_agent_cache.py b/surfsense_backend/tests/unit/agents/new_chat/test_agent_cache.py index d50d7b91c..ecc5a1a83 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_agent_cache.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_agent_cache.py @@ -16,7 +16,7 @@ from dataclasses import dataclass import pytest -from app.agents.multi_agent_chat.main_agent.runtime.agent_cache_store import ( +from app.agents.chat.multi_agent_chat.main_agent.runtime.agent_cache_store import ( flags_signature, reload_for_tests, stable_hash, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_busy_mutex.py b/surfsense_backend/tests/unit/agents/new_chat/test_busy_mutex.py index aaf28e3be..4553371ff 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_busy_mutex.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_busy_mutex.py @@ -4,8 +4,8 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.shared.errors import BusyError -from app.agents.multi_agent_chat.shared.middleware.busy_mutex import ( +from app.agents.chat.multi_agent_chat.shared.errors import BusyError +from app.agents.chat.multi_agent_chat.shared.middleware.busy_mutex import ( BusyMutexMiddleware, end_turn, get_cancel_event, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_compaction.py b/surfsense_backend/tests/unit/agents/new_chat/test_compaction.py index cf33f2260..2ac462959 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_compaction.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_compaction.py @@ -10,7 +10,7 @@ from langchain_core.messages import ( ToolMessage, ) -from app.agents.shared.middleware.compaction import ( +from app.agents.chat.shared.middleware.compaction import ( PROTECTED_SYSTEM_PREFIXES, _is_protected_system_message, _sanitize_message_content, @@ -72,7 +72,7 @@ class TestPartitionMessages: # SurfSenseCompactionMiddleware without a real model, but the # override path needs ``_lc_helper`` to delegate to. We mock # that with a simple slicing partitioner equivalent to the real one. - from app.agents.shared.middleware.compaction import ( + from app.agents.chat.shared.middleware.compaction import ( SurfSenseCompactionMiddleware, ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_context_editing.py b/surfsense_backend/tests/unit/agents/new_chat/test_context_editing.py index 71b91bf18..9632fd14d 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_context_editing.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_context_editing.py @@ -7,7 +7,7 @@ from typing import Any import pytest from langchain_core.messages import AIMessage, HumanMessage, ToolMessage -from app.agents.multi_agent_chat.main_agent.middleware.context_editing.middleware import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.context_editing.middleware import ( SpillToBackendEdit, _build_spill_placeholder, ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_dedup_tool_calls.py b/surfsense_backend/tests/unit/agents/new_chat/test_dedup_tool_calls.py index 52485449c..61a04c1c1 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_dedup_tool_calls.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_dedup_tool_calls.py @@ -6,7 +6,7 @@ import pytest from langchain_core.messages import AIMessage from langchain_core.tools import StructuredTool -from app.agents.multi_agent_chat.main_agent.middleware.dedup_hitl import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.dedup_hitl import ( DedupHITLToolCallsMiddleware, ) @@ -115,7 +115,7 @@ def test_full_args_dedup_keeps_distinct_calls_sharing_a_field() -> None: With :func:`dedup_key_full_args` only fully identical arg dicts dedup. """ - from app.agents.multi_agent_chat.shared.middleware.dedup_tool_calls import ( + from app.agents.chat.multi_agent_chat.shared.middleware.dedup_tool_calls import ( dedup_key_full_args, ) @@ -159,7 +159,7 @@ def test_full_args_dedup_keeps_distinct_calls_sharing_a_field() -> None: def test_full_args_dedup_drops_only_exact_duplicates() -> None: - from app.agents.multi_agent_chat.shared.middleware.dedup_tool_calls import ( + from app.agents.chat.multi_agent_chat.shared.middleware.dedup_tool_calls import ( dedup_key_full_args, ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_default_permissions_layering.py b/surfsense_backend/tests/unit/agents/new_chat/test_default_permissions_layering.py index 8f5face70..b6341bfec 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_default_permissions_layering.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_default_permissions_layering.py @@ -17,7 +17,7 @@ caused two production-painful behaviors: read-only tool calls, raising ``RejectedError("ls")``. * Mutating connector tools got *double* prompted — once via the middleware ``ask`` and again via the per-tool ``interrupt()`` in - ``app.agents.multi_agent_chat.shared.tools.hitl``. + ``app.agents.chat.multi_agent_chat.shared.tools.hitl``. These tests pin the layering so a refactor that drops the default ruleset fails loud. @@ -27,7 +27,7 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.shared.permissions import ( +from app.agents.chat.multi_agent_chat.shared.permissions import ( Rule, Ruleset, aggregate_action, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_desktop_safety_rules.py b/surfsense_backend/tests/unit/agents/new_chat/test_desktop_safety_rules.py index d9c5410d7..62712e797 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_desktop_safety_rules.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_desktop_safety_rules.py @@ -10,7 +10,7 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.shared.permissions import ( +from app.agents.chat.multi_agent_chat.shared.permissions import ( Rule, Ruleset, aggregate_action, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_doom_loop.py b/surfsense_backend/tests/unit/agents/new_chat/test_doom_loop.py index 6f6c32271..47e962242 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_doom_loop.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_doom_loop.py @@ -5,7 +5,7 @@ from __future__ import annotations import pytest from langchain_core.messages import AIMessage -from app.agents.multi_agent_chat.main_agent.middleware.doom_loop.middleware import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.doom_loop.middleware import ( DoomLoopMiddleware, _signature, ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_feature_flags.py b/surfsense_backend/tests/unit/agents/new_chat/test_feature_flags.py index 16c39cf27..e715a80c6 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_feature_flags.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_feature_flags.py @@ -4,7 +4,7 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.shared.feature_flags import ( +from app.agents.chat.multi_agent_chat.shared.feature_flags import ( AgentFeatureFlags, reload_for_tests, ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_hitl_auto_approve.py b/surfsense_backend/tests/unit/agents/new_chat/test_hitl_auto_approve.py index 5f7ee63f8..9c19cbd6b 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_hitl_auto_approve.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_hitl_auto_approve.py @@ -10,7 +10,7 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.shared.tools.hitl import ( +from app.agents.chat.multi_agent_chat.shared.tools.hitl import ( DEFAULT_AUTO_APPROVED_TOOLS, HITLResult, request_approval, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_mention_resolver.py b/surfsense_backend/tests/unit/agents/new_chat/test_mention_resolver.py index 5600dc7d4..b22ca2775 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_mention_resolver.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_mention_resolver.py @@ -15,14 +15,17 @@ from unittest.mock import AsyncMock, MagicMock import pytest -from app.agents.multi_agent_chat.shared.mention_resolver import ( +from app.agents.chat.multi_agent_chat.shared import mention_resolver +from app.agents.chat.multi_agent_chat.shared.mention_resolver import ( ResolvedMention, ResolvedMentionSet, resolve_mentions, substitute_in_text, ) -from app.agents.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT, PathIndex -from app.agents.multi_agent_chat.shared import mention_resolver +from app.agents.chat.multi_agent_chat.shared.path_resolver import ( + DOCUMENTS_ROOT, + PathIndex, +) from app.schemas.new_chat import MentionedDocumentInfo pytestmark = pytest.mark.unit diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_noop_injection.py b/surfsense_backend/tests/unit/agents/new_chat/test_noop_injection.py index bc52052d2..42df4eecf 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_noop_injection.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_noop_injection.py @@ -5,7 +5,7 @@ from __future__ import annotations import pytest from langchain_core.messages import AIMessage, HumanMessage -from app.agents.multi_agent_chat.main_agent.middleware.noop_injection.middleware import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.noop_injection.middleware import ( NOOP_TOOL_NAME, NoopInjectionMiddleware, _last_ai_has_tool_calls, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_otel_span.py b/surfsense_backend/tests/unit/agents/new_chat/test_otel_span.py index 8a4ed7f75..e2978d277 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_otel_span.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_otel_span.py @@ -8,7 +8,7 @@ from unittest.mock import MagicMock import pytest from langchain_core.messages import AIMessage, ToolMessage -from app.agents.multi_agent_chat.main_agent.middleware.otel_span.middleware import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.otel_span.middleware import ( OtelSpanMiddleware, _annotate_model_response, _annotate_tool_result, @@ -206,13 +206,13 @@ class TestMiddlewareIntegration: duration_calls: list[dict[str, Any]] = [] token_calls: list[dict[str, Any]] = [] monkeypatch.setattr( - "app.agents.multi_agent_chat.main_agent.middleware.otel_span.middleware.ot_metrics.record_model_call_duration", + "app.agents.chat.multi_agent_chat.main_agent.middleware.otel_span.middleware.ot_metrics.record_model_call_duration", lambda duration_ms, **attrs: duration_calls.append( {"duration_ms": duration_ms, **attrs} ), ) monkeypatch.setattr( - "app.agents.multi_agent_chat.main_agent.middleware.otel_span.middleware.ot_metrics.record_model_token_usage", + "app.agents.chat.multi_agent_chat.main_agent.middleware.otel_span.middleware.ot_metrics.record_model_token_usage", lambda **attrs: token_calls.append(attrs), ) @@ -257,11 +257,11 @@ class TestMiddlewareIntegration: errors: list[str] = [] monkeypatch.setattr( - "app.agents.multi_agent_chat.main_agent.middleware.otel_span.middleware.ot_metrics.record_tool_call_error", + "app.agents.chat.multi_agent_chat.main_agent.middleware.otel_span.middleware.ot_metrics.record_tool_call_error", lambda *, tool_name: errors.append(tool_name), ) monkeypatch.setattr( - "app.agents.multi_agent_chat.main_agent.middleware.otel_span.middleware.ot_metrics.record_tool_call_duration", + "app.agents.chat.multi_agent_chat.main_agent.middleware.otel_span.middleware.ot_metrics.record_tool_call_duration", lambda *args, **kwargs: None, ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_path_resolver.py b/surfsense_backend/tests/unit/agents/new_chat/test_path_resolver.py index be65b0a5e..f73e06f37 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_path_resolver.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_path_resolver.py @@ -7,7 +7,7 @@ from unittest.mock import AsyncMock, MagicMock import pytest -from app.agents.multi_agent_chat.shared.path_resolver import ( +from app.agents.chat.multi_agent_chat.shared.path_resolver import ( DOCUMENTS_ROOT, PathIndex, doc_to_virtual_path, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_permissions.py b/surfsense_backend/tests/unit/agents/new_chat/test_permissions.py index 01736974f..e680a955b 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_permissions.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_permissions.py @@ -4,7 +4,7 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.shared.permissions import ( +from app.agents.chat.multi_agent_chat.shared.permissions import ( Rule, Ruleset, aggregate_action, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_plugin_loader.py b/surfsense_backend/tests/unit/agents/new_chat/test_plugin_loader.py index 2a1b4c51b..3aae7cc75 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_plugin_loader.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_plugin_loader.py @@ -6,13 +6,13 @@ from unittest.mock import MagicMock, patch from langchain.agents.middleware import AgentMiddleware -from app.agents.multi_agent_chat.main_agent.plugins.loader import ( +from app.agents.chat.multi_agent_chat.main_agent.plugins.loader import ( PLUGIN_ENTRY_POINT_GROUP, PluginContext, load_allowed_plugin_names_from_env, load_plugin_middlewares, ) -from app.agents.multi_agent_chat.main_agent.plugins.year_substituter import ( +from app.agents.chat.multi_agent_chat.main_agent.plugins.year_substituter import ( _YearSubstituterMiddleware, make_middleware as year_substituter_factory, ) @@ -66,7 +66,7 @@ class TestPluginLoaderBasics: ep = _FakeEntryPoint("dangerous_plugin", factory) with patch( - "app.agents.multi_agent_chat.main_agent.plugins.loader.entry_points", + "app.agents.chat.multi_agent_chat.main_agent.plugins.loader.entry_points", return_value=[ep], ): result = load_plugin_middlewares( @@ -78,7 +78,7 @@ class TestPluginLoaderBasics: def test_loads_allowlisted_plugin(self) -> None: ep = _FakeEntryPoint("year_substituter", year_substituter_factory) with patch( - "app.agents.multi_agent_chat.main_agent.plugins.loader.entry_points", + "app.agents.chat.multi_agent_chat.main_agent.plugins.loader.entry_points", return_value=[ep], ): result = load_plugin_middlewares( @@ -95,7 +95,7 @@ class TestPluginLoaderIsolation: ep = _FakeEntryPoint("buggy", crashing_factory) with patch( - "app.agents.multi_agent_chat.main_agent.plugins.loader.entry_points", + "app.agents.chat.multi_agent_chat.main_agent.plugins.loader.entry_points", return_value=[ep], ): result = load_plugin_middlewares(_ctx(), allowed_plugin_names={"buggy"}) @@ -107,7 +107,7 @@ class TestPluginLoaderIsolation: ep = _FakeEntryPoint("liar", bad_factory) with patch( - "app.agents.multi_agent_chat.main_agent.plugins.loader.entry_points", + "app.agents.chat.multi_agent_chat.main_agent.plugins.loader.entry_points", return_value=[ep], ): result = load_plugin_middlewares(_ctx(), allowed_plugin_names={"liar"}) @@ -121,7 +121,7 @@ class TestPluginLoaderIsolation: raise ImportError("cannot import") with patch( - "app.agents.multi_agent_chat.main_agent.plugins.loader.entry_points", + "app.agents.chat.multi_agent_chat.main_agent.plugins.loader.entry_points", return_value=[_BrokenEP()], ): result = load_plugin_middlewares(_ctx(), allowed_plugin_names={"broken"}) @@ -137,7 +137,7 @@ class TestPluginLoaderIsolation: _FakeEntryPoint("crashing", crashing_factory), _FakeEntryPoint("ok", year_substituter_factory), ] - with patch("app.agents.multi_agent_chat.main_agent.plugins.loader.entry_points", return_value=eps): + with patch("app.agents.chat.multi_agent_chat.main_agent.plugins.loader.entry_points", return_value=eps): result = load_plugin_middlewares( _ctx(), allowed_plugin_names={"crashing", "ok"} ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_prompt_caching.py b/surfsense_backend/tests/unit/agents/new_chat/test_prompt_caching.py index 39f2b81fb..45219ff17 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_prompt_caching.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_prompt_caching.py @@ -1,5 +1,5 @@ r"""Tests for ``apply_litellm_prompt_caching`` in -:mod:`app.agents.multi_agent_chat.shared.prompt_caching`. +:mod:`app.agents.chat.multi_agent_chat.shared.prompt_caching`. The helper replaces the legacy ``AnthropicPromptCachingMiddleware`` (which never activated for our LiteLLM stack) with LiteLLM-native multi-provider @@ -34,8 +34,8 @@ from typing import Any import pytest -from app.agents.multi_agent_chat.shared.llm_config import AgentConfig -from app.agents.multi_agent_chat.shared.prompt_caching import ( +from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig +from app.agents.chat.multi_agent_chat.shared.prompt_caching import ( apply_litellm_prompt_caching, ) diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_retry_after.py b/surfsense_backend/tests/unit/agents/new_chat/test_retry_after.py index b5890f65e..b70718ff9 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_retry_after.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_retry_after.py @@ -4,7 +4,7 @@ from __future__ import annotations import pytest -from app.agents.shared.middleware.retry_after import ( +from app.agents.chat.shared.middleware.retry_after import ( RetryAfterMiddleware, _extract_retry_after_seconds, _is_non_retryable, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_skills_backends.py b/surfsense_backend/tests/unit/agents/new_chat/test_skills_backends.py index 477b4f7fc..1c497d99b 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_skills_backends.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_skills_backends.py @@ -7,7 +7,7 @@ from pathlib import Path import pytest -from app.agents.multi_agent_chat.main_agent.skills.backends import ( +from app.agents.chat.multi_agent_chat.main_agent.skills.backends import ( SKILLS_BUILTIN_PREFIX, SKILLS_SPACE_PREFIX, BuiltinSkillsBackend, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_state_reducers.py b/surfsense_backend/tests/unit/agents/new_chat/test_state_reducers.py index 752d53514..637a10704 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_state_reducers.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_state_reducers.py @@ -4,7 +4,7 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.shared.state.reducers import ( +from app.agents.chat.multi_agent_chat.shared.state.reducers import ( _CLEAR, _add_unique_reducer, _dict_merge_with_tombstones_reducer, diff --git a/surfsense_backend/tests/unit/agents/new_chat/test_tool_call_repair.py b/surfsense_backend/tests/unit/agents/new_chat/test_tool_call_repair.py index 042f044bb..1e11e39ce 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/test_tool_call_repair.py +++ b/surfsense_backend/tests/unit/agents/new_chat/test_tool_call_repair.py @@ -5,10 +5,12 @@ from __future__ import annotations import pytest from langchain_core.messages import AIMessage -from app.agents.multi_agent_chat.main_agent.middleware.tool_call_repair.middleware import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.tool_call_repair.middleware import ( ToolCallNameRepairMiddleware, ) -from app.agents.multi_agent_chat.main_agent.tools.invalid_tool import INVALID_TOOL_NAME +from app.agents.chat.multi_agent_chat.main_agent.tools.invalid_tool import ( + INVALID_TOOL_NAME, +) pytestmark = pytest.mark.unit diff --git a/surfsense_backend/tests/unit/agents/new_chat/tools/test_mcp_tools_cache.py b/surfsense_backend/tests/unit/agents/new_chat/tools/test_mcp_tools_cache.py index 2ec08056a..7d9d35b55 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/tools/test_mcp_tools_cache.py +++ b/surfsense_backend/tests/unit/agents/new_chat/tools/test_mcp_tools_cache.py @@ -7,7 +7,7 @@ from types import SimpleNamespace import pytest -from app.agents.multi_agent_chat.shared.tools.mcp.cache import ( +from app.agents.chat.multi_agent_chat.shared.tools.mcp.cache import ( CachedMCPToolDef, CachedMCPTools, read_cached_tools, diff --git a/surfsense_backend/tests/unit/agents/new_chat/tools/test_resume_page_limits.py b/surfsense_backend/tests/unit/agents/new_chat/tools/test_resume_page_limits.py index 5c4c41b64..3dbe0c4af 100644 --- a/surfsense_backend/tests/unit/agents/new_chat/tools/test_resume_page_limits.py +++ b/surfsense_backend/tests/unit/agents/new_chat/tools/test_resume_page_limits.py @@ -15,7 +15,7 @@ import pypdf import pytest from langchain.tools import ToolRuntime -from app.agents.multi_agent_chat.subagents.builtins.deliverables.tools import ( +from app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.tools import ( resume as resume_tool, ) diff --git a/surfsense_backend/tests/unit/automations/services/test_model_policy.py b/surfsense_backend/tests/unit/automations/services/test_model_policy.py index 0be509e21..fab4abd65 100644 --- a/surfsense_backend/tests/unit/automations/services/test_model_policy.py +++ b/surfsense_backend/tests/unit/automations/services/test_model_policy.py @@ -44,7 +44,7 @@ def patched_globals(monkeypatch: pytest.MonkeyPatch): -2: {"id": -2, "billing_tier": "free"}, } monkeypatch.setattr( - "app.agents.multi_agent_chat.shared.llm_config.load_global_llm_config_by_id", + "app.agents.chat.multi_agent_chat.shared.llm_config.load_global_llm_config_by_id", lambda cid: llm_configs.get(cid), ) diff --git a/surfsense_backend/tests/unit/middleware/test_b_filesystem_path_resolution.py b/surfsense_backend/tests/unit/middleware/test_b_filesystem_path_resolution.py index 9c9308e41..a4e23c39f 100644 --- a/surfsense_backend/tests/unit/middleware/test_b_filesystem_path_resolution.py +++ b/surfsense_backend/tests/unit/middleware/test_b_filesystem_path_resolution.py @@ -6,9 +6,9 @@ Ported from the dead-twin suites: * ``tests/unit/middleware/test_filesystem_verification.py`` (desktop multi-root mount-prefix normalization) -Both exercised ``app.agents.shared.middleware.filesystem`` (dead). This drives +Both exercised ``app.agents.chat.shared.middleware.filesystem`` (dead). This drives the production free functions in -``app.agents.multi_agent_chat.shared.middleware.filesystem.middleware`` instead. +``app.agents.chat.multi_agent_chat.shared.middleware.filesystem.middleware`` instead. The functions only touch ``mw._filesystem_mode`` and ``mw._get_backend`` so we pass a lightweight fake ``mw`` rather than constructing the full middleware. """ @@ -20,17 +20,17 @@ from types import SimpleNamespace import pytest -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( MultiRootLocalFolderBackend, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.middleware.mode import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.middleware.mode import ( default_cwd, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.middleware.namespace_policy import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.middleware.namespace_policy import ( check_cloud_write_namespace, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.middleware.path_resolution import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.middleware.path_resolution import ( current_cwd, get_contract_suggested_path, normalize_local_mount_path, diff --git a/surfsense_backend/tests/unit/middleware/test_b_filesystem_rm_rmdir_cloud.py b/surfsense_backend/tests/unit/middleware/test_b_filesystem_rm_rmdir_cloud.py index aa0428510..898ec3765 100644 --- a/surfsense_backend/tests/unit/middleware/test_b_filesystem_rm_rmdir_cloud.py +++ b/surfsense_backend/tests/unit/middleware/test_b_filesystem_rm_rmdir_cloud.py @@ -1,9 +1,9 @@ """Cloud-mode ``rm``/``rmdir`` staging tests for the LIVE filesystem middleware. Ported from the former ``tests/unit/agents/new_chat/test_rm_rmdir_cloud.py``, -which exercised the *dead twin* ``app.agents.shared.middleware.filesystem``. +which exercised the *dead twin* ``app.agents.chat.shared.middleware.filesystem``. This drives the production decomposed tools -(``app.agents.multi_agent_chat.shared.middleware.filesystem``) instead: it +(``app.agents.chat.multi_agent_chat.shared.middleware.filesystem``) instead: it builds the real middleware via ``build_filesystem_mw``, pulls the real ``rm`` / ``rmdir`` tools off it, and invokes their coroutines with a stubbed ``KBPostgresBackend`` + runtime so we can assert the end-of-turn staging @@ -19,20 +19,20 @@ from unittest.mock import AsyncMock import pytest -from app.agents.multi_agent_chat.shared.filesystem_selection import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( FilesystemMode, FilesystemSelection, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem import ( build_filesystem_mw, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.kb_postgres import ( KBPostgresBackend, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( build_backend_resolver, ) -from app.agents.multi_agent_chat.shared.state.reducers import _CLEAR +from app.agents.chat.multi_agent_chat.shared.state.reducers import _CLEAR pytestmark = pytest.mark.unit diff --git a/surfsense_backend/tests/unit/middleware/test_b_filesystem_system_prompt.py b/surfsense_backend/tests/unit/middleware/test_b_filesystem_system_prompt.py index 3207a3099..b68dc5b4b 100644 --- a/surfsense_backend/tests/unit/middleware/test_b_filesystem_system_prompt.py +++ b/surfsense_backend/tests/unit/middleware/test_b_filesystem_system_prompt.py @@ -2,7 +2,7 @@ Ported from ``TestModeSpecificPrompts`` in the former ``tests/unit/middleware/test_filesystem_middleware.py`` (which exercised the -dead twin ``app.agents.shared.middleware.filesystem._build_filesystem_system_prompt``). +dead twin ``app.agents.chat.shared.middleware.filesystem._build_filesystem_system_prompt``). These drive the production ``build_system_prompt`` so the prompt the model actually receives stays mode-scoped: cloud rules don't leak into desktop @@ -18,8 +18,8 @@ from __future__ import annotations import pytest -from app.agents.multi_agent_chat.shared.filesystem_selection import FilesystemMode -from app.agents.multi_agent_chat.shared.middleware.filesystem.system_prompt import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.system_prompt import ( build_system_prompt, ) diff --git a/surfsense_backend/tests/unit/middleware/test_dedup_hitl_tool_calls.py b/surfsense_backend/tests/unit/middleware/test_dedup_hitl_tool_calls.py index 08ec57707..91b6bcf3c 100644 --- a/surfsense_backend/tests/unit/middleware/test_dedup_hitl_tool_calls.py +++ b/surfsense_backend/tests/unit/middleware/test_dedup_hitl_tool_calls.py @@ -2,10 +2,10 @@ import pytest from langchain_core.messages import AIMessage from langchain_core.tools import StructuredTool -from app.agents.multi_agent_chat.main_agent.middleware.dedup_hitl import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.dedup_hitl import ( DedupHITLToolCallsMiddleware, ) -from app.agents.multi_agent_chat.shared.middleware.dedup_tool_calls import ( +from app.agents.chat.multi_agent_chat.shared.middleware.dedup_tool_calls import ( wrap_dedup_key_by_arg_name, ) diff --git a/surfsense_backend/tests/unit/middleware/test_filesystem_backends.py b/surfsense_backend/tests/unit/middleware/test_filesystem_backends.py index 6bd7a10fa..dafda17d2 100644 --- a/surfsense_backend/tests/unit/middleware/test_filesystem_backends.py +++ b/surfsense_backend/tests/unit/middleware/test_filesystem_backends.py @@ -2,16 +2,16 @@ from pathlib import Path import pytest -from app.agents.multi_agent_chat.shared.filesystem_selection import ( +from app.agents.chat.multi_agent_chat.shared.filesystem_selection import ( ClientPlatform, FilesystemMode, FilesystemSelection, LocalFilesystemMount, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( MultiRootLocalFolderBackend, ) -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.resolver import ( build_backend_resolver, ) diff --git a/surfsense_backend/tests/unit/middleware/test_kb_persistence_filesystem_parity.py b/surfsense_backend/tests/unit/middleware/test_kb_persistence_filesystem_parity.py index 1b3f0ba43..b7f9b9d10 100644 --- a/surfsense_backend/tests/unit/middleware/test_kb_persistence_filesystem_parity.py +++ b/surfsense_backend/tests/unit/middleware/test_kb_persistence_filesystem_parity.py @@ -15,7 +15,7 @@ from unittest.mock import AsyncMock import numpy as np import pytest -from app.agents.multi_agent_chat.shared.middleware import kb_persistence +from app.agents.chat.multi_agent_chat.shared.middleware import kb_persistence from app.db import Document diff --git a/surfsense_backend/tests/unit/middleware/test_kb_persistence_revisions.py b/surfsense_backend/tests/unit/middleware/test_kb_persistence_revisions.py index 0dbcf0211..b25f84a62 100644 --- a/surfsense_backend/tests/unit/middleware/test_kb_persistence_revisions.py +++ b/surfsense_backend/tests/unit/middleware/test_kb_persistence_revisions.py @@ -21,7 +21,7 @@ from unittest.mock import AsyncMock, MagicMock import pytest -from app.agents.multi_agent_chat.shared.middleware import kb_persistence +from app.agents.chat.multi_agent_chat.shared.middleware import kb_persistence pytestmark = pytest.mark.unit diff --git a/surfsense_backend/tests/unit/middleware/test_knowledge_search.py b/surfsense_backend/tests/unit/middleware/test_knowledge_search.py index 79e2d9050..25de7308d 100644 --- a/surfsense_backend/tests/unit/middleware/test_knowledge_search.py +++ b/surfsense_backend/tests/unit/middleware/test_knowledge_search.py @@ -5,11 +5,11 @@ import json import pytest from langchain_core.messages import AIMessage, HumanMessage -from app.agents.multi_agent_chat.shared.middleware import knowledge_search as ks -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.document_xml import ( +from app.agents.chat.multi_agent_chat.shared.middleware import knowledge_search as ks +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.document_xml import ( build_document_xml as _build_document_xml, ) -from app.agents.multi_agent_chat.shared.middleware.knowledge_search import ( +from app.agents.chat.multi_agent_chat.shared.middleware.knowledge_search import ( KBSearchPlan, KnowledgePriorityMiddleware, _normalize_optional_date_range, diff --git a/surfsense_backend/tests/unit/middleware/test_knowledge_tree.py b/surfsense_backend/tests/unit/middleware/test_knowledge_tree.py index 6d251a3a1..78986ef31 100644 --- a/surfsense_backend/tests/unit/middleware/test_knowledge_tree.py +++ b/surfsense_backend/tests/unit/middleware/test_knowledge_tree.py @@ -9,10 +9,10 @@ contract cannot silently regress. from __future__ import annotations -from app.agents.multi_agent_chat.main_agent.middleware.knowledge_tree.middleware import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.knowledge_tree.middleware import ( KnowledgeTreeMiddleware, ) -from app.agents.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT +from app.agents.chat.multi_agent_chat.shared.path_resolver import DOCUMENTS_ROOT def _compute(folder_paths: list[str], doc_paths: list[str]) -> set[str]: @@ -88,7 +88,7 @@ class TestFormatTreeRendering: folder_paths: list[str], doc_specs: list[dict], ) -> str: - from app.agents.multi_agent_chat.shared.path_resolver import PathIndex + from app.agents.chat.multi_agent_chat.shared.path_resolver import PathIndex index = PathIndex( folder_paths={i + 1: p for i, p in enumerate(folder_paths)}, diff --git a/surfsense_backend/tests/unit/middleware/test_local_folder_backend.py b/surfsense_backend/tests/unit/middleware/test_local_folder_backend.py index 7ceb19fa8..aaa3b47fb 100644 --- a/surfsense_backend/tests/unit/middleware/test_local_folder_backend.py +++ b/surfsense_backend/tests/unit/middleware/test_local_folder_backend.py @@ -2,7 +2,7 @@ from pathlib import Path import pytest -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.local_folder import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.local_folder import ( LocalFolderBackend, ) diff --git a/surfsense_backend/tests/unit/middleware/test_multi_root_local_folder_backend.py b/surfsense_backend/tests/unit/middleware/test_multi_root_local_folder_backend.py index dbfbb6ac7..b2d545f27 100644 --- a/surfsense_backend/tests/unit/middleware/test_multi_root_local_folder_backend.py +++ b/surfsense_backend/tests/unit/middleware/test_multi_root_local_folder_backend.py @@ -2,7 +2,7 @@ from pathlib import Path import pytest -from app.agents.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( +from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.backends.multi_root_local_folder import ( MultiRootLocalFolderBackend, ) diff --git a/surfsense_backend/tests/unit/routes/test_revert_turn_route.py b/surfsense_backend/tests/unit/routes/test_revert_turn_route.py index ed61967e4..35d409a40 100644 --- a/surfsense_backend/tests/unit/routes/test_revert_turn_route.py +++ b/surfsense_backend/tests/unit/routes/test_revert_turn_route.py @@ -18,7 +18,7 @@ from unittest.mock import AsyncMock, patch import pytest -from app.agents.multi_agent_chat.shared.feature_flags import AgentFeatureFlags +from app.agents.chat.multi_agent_chat.shared.feature_flags import AgentFeatureFlags from app.routes import agent_revert_route from app.services.revert_service import RevertOutcome diff --git a/surfsense_backend/tests/unit/services/test_image_gen_api_base_defense.py b/surfsense_backend/tests/unit/services/test_image_gen_api_base_defense.py index 6ba66ec57..571e7d15b 100644 --- a/surfsense_backend/tests/unit/services/test_image_gen_api_base_defense.py +++ b/surfsense_backend/tests/unit/services/test_image_gen_api_base_defense.py @@ -91,7 +91,7 @@ async def test_global_openrouter_image_gen_sets_api_base_when_config_empty(): async def test_generate_image_tool_global_sets_api_base_when_config_empty(): """Same defense at the agent tool entry point — both surfaces share the same OpenRouter config payloads.""" - from app.agents.multi_agent_chat.subagents.builtins.deliverables.tools import ( + from app.agents.chat.multi_agent_chat.subagents.builtins.deliverables.tools import ( generate_image as gi_module, ) diff --git a/surfsense_backend/tests/unit/services/test_supports_image_input.py b/surfsense_backend/tests/unit/services/test_supports_image_input.py index 5ec470e2a..ab23ab5a5 100644 --- a/surfsense_backend/tests/unit/services/test_supports_image_input.py +++ b/surfsense_backend/tests/unit/services/test_supports_image_input.py @@ -227,7 +227,7 @@ global_llm_configs: def test_agent_config_from_yaml_explicit_overrides_resolver(): - from app.agents.multi_agent_chat.shared.llm_config import AgentConfig + from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig cfg_text_only = AgentConfig.from_yaml_config( { @@ -256,7 +256,7 @@ def test_agent_config_from_yaml_explicit_overrides_resolver(): def test_agent_config_from_yaml_unannotated_uses_resolver(): """Without an explicit YAML key, AgentConfig defers to the catalog resolver — for ``gpt-4o`` LiteLLM's map says supports_vision=True.""" - from app.agents.multi_agent_chat.shared.llm_config import AgentConfig + from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig cfg = AgentConfig.from_yaml_config( { @@ -275,7 +275,7 @@ def test_agent_config_auto_mode_supports_image_input(): so users can keep their selection on Auto with a vision-capable deployment somewhere in the pool. The router's own `allowed_fails` handles non-vision deployments via fallback.""" - from app.agents.multi_agent_chat.shared.llm_config import AgentConfig + from app.agents.chat.multi_agent_chat.shared.llm_config import AgentConfig auto = AgentConfig.from_auto_mode() assert auto.supports_image_input is True diff --git a/surfsense_backend/tests/unit/services/test_vision_llm_api_base_defense.py b/surfsense_backend/tests/unit/services/test_vision_llm_api_base_defense.py index 458e638a1..661766bb9 100644 --- a/surfsense_backend/tests/unit/services/test_vision_llm_api_base_defense.py +++ b/surfsense_backend/tests/unit/services/test_vision_llm_api_base_defense.py @@ -61,7 +61,7 @@ async def test_get_vision_llm_global_openrouter_sets_api_base(): return_value=cfg, ), patch( - "app.agents.multi_agent_chat.shared.llm_config.SanitizedChatLiteLLM", + "app.agents.chat.multi_agent_chat.shared.llm_config.SanitizedChatLiteLLM", new=FakeSanitized, ), ): diff --git a/surfsense_backend/tests/unit/tasks/chat/streaming/test_interrupt_inspector_all.py b/surfsense_backend/tests/unit/tasks/chat/streaming/test_interrupt_inspector_all.py index 0d93040e3..4457f4768 100644 --- a/surfsense_backend/tests/unit/tasks/chat/streaming/test_interrupt_inspector_all.py +++ b/surfsense_backend/tests/unit/tasks/chat/streaming/test_interrupt_inspector_all.py @@ -18,7 +18,7 @@ from langgraph.graph import END, START, StateGraph from langgraph.types import Send, interrupt from typing_extensions import TypedDict -from app.agents.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( +from app.agents.chat.multi_agent_chat.main_agent.middleware.checkpointed_subagent_middleware.task_tool import ( build_task_tool_with_parent_config, ) from app.tasks.chat.streaming.helpers.interrupt_inspector import (