mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-06 20:15:17 +02:00
refactor(agents): move filesystem_state, path_resolver, sandbox to app/agents/shared (slice 3b)
Relocate three leaf filesystem-cluster modules to the shared kernel and flip all 38 importers. No re-export shims needed (no frozen single-agent importer). This also resolves the pre-existing shared->new_chat back-edge from shared/receipt_command.py onto filesystem_state. filesystem_backends is intentionally deferred to slice 5: it depends on new_chat middleware (kb_postgres_backend, multi_root_local_folder_backend) that have not yet moved, so relocating it now would create a shared->new_chat edge.
This commit is contained in:
parent
1b536b8aee
commit
3efe51e6ec
41 changed files with 55 additions and 55 deletions
|
|
@ -8,8 +8,8 @@ from deepagents import FilesystemMiddleware
|
||||||
from langchain_core.tools import BaseTool
|
from langchain_core.tools import BaseTool
|
||||||
|
|
||||||
from app.agents.shared.filesystem_selection import FilesystemMode
|
from app.agents.shared.filesystem_selection import FilesystemMode
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.sandbox import is_sandbox_enabled
|
from app.agents.shared.sandbox import is_sandbox_enabled
|
||||||
|
|
||||||
from ..system_prompt import build_system_prompt
|
from ..system_prompt import build_system_prompt
|
||||||
from ..tools import (
|
from ..tools import (
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from app.agents.shared.filesystem_selection import FilesystemMode
|
from app.agents.shared.filesystem_selection import FilesystemMode
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT
|
||||||
|
|
||||||
|
|
||||||
def is_cloud(mode: FilesystemMode) -> bool:
|
def is_cloud(mode: FilesystemMode) -> bool:
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@ from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from langchain.tools import ToolRuntime
|
from langchain.tools import ToolRuntime
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT
|
||||||
|
|
||||||
from ..shared.paths import TEMP_PREFIX, basename
|
from ..shared.paths import TEMP_PREFIX, basename
|
||||||
from .mode import is_cloud
|
from .mode import is_cloud
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ from typing import TYPE_CHECKING
|
||||||
from langchain.tools import ToolRuntime
|
from langchain.tools import ToolRuntime
|
||||||
|
|
||||||
from app.agents.shared.filesystem_selection import FilesystemMode
|
from app.agents.shared.filesystem_selection import FilesystemMode
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.multi_root_local_folder_backend import (
|
from app.agents.new_chat.middleware.multi_root_local_folder_backend import (
|
||||||
MultiRootLocalFolderBackend,
|
MultiRootLocalFolderBackend,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ from langchain_core.messages import ToolMessage
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
from ...middleware.path_resolution import resolve_relative
|
from ...middleware.path_resolution import resolve_relative
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ from langchain_core.messages import ToolMessage
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
|
|
|
||||||
|
|
@ -14,8 +14,8 @@ from typing import TYPE_CHECKING
|
||||||
from daytona.common.errors import DaytonaError
|
from daytona.common.errors import DaytonaError
|
||||||
from langchain.tools import ToolRuntime
|
from langchain.tools import ToolRuntime
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.sandbox import (
|
from app.agents.shared.sandbox import (
|
||||||
_evict_sandbox_cache,
|
_evict_sandbox_cache,
|
||||||
delete_sandbox,
|
delete_sandbox,
|
||||||
get_or_create_sandbox,
|
get_or_create_sandbox,
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ from typing import TYPE_CHECKING, Annotated
|
||||||
from langchain.tools import ToolRuntime
|
from langchain.tools import ToolRuntime
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
from .description import select_description
|
from .description import select_description
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ from deepagents.backends.utils import validate_path
|
||||||
from langchain.tools import ToolRuntime
|
from langchain.tools import ToolRuntime
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ from deepagents.backends.utils import validate_path
|
||||||
from langchain.tools import ToolRuntime
|
from langchain.tools import ToolRuntime
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.kb_postgres_backend import paginate_listing
|
from app.agents.new_chat.middleware.kb_postgres_backend import paginate_listing
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
|
|
|
||||||
|
|
@ -11,8 +11,8 @@ from langchain_core.messages import ToolMessage
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
from ...middleware.mode import is_cloud
|
from ...middleware.mode import is_cloud
|
||||||
|
|
|
||||||
|
|
@ -8,9 +8,9 @@ from langchain.tools import ToolRuntime
|
||||||
from langchain_core.messages import ToolMessage
|
from langchain_core.messages import ToolMessage
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT
|
||||||
from app.agents.shared.state_reducers import _CLEAR
|
from app.agents.shared.state_reducers import _CLEAR
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ from langchain_core.messages import ToolMessage
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
from ...middleware.mode import is_cloud
|
from ...middleware.mode import is_cloud
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ from typing import TYPE_CHECKING
|
||||||
from langchain.tools import ToolRuntime
|
from langchain.tools import ToolRuntime
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
|
|
||||||
from ...middleware.path_resolution import current_cwd
|
from ...middleware.path_resolution import current_cwd
|
||||||
from .description import select_description
|
from .description import select_description
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ from langchain_core.messages import ToolMessage
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
|
|
|
||||||
|
|
@ -12,9 +12,9 @@ from langchain.tools import ToolRuntime
|
||||||
from langchain_core.messages import ToolMessage
|
from langchain_core.messages import ToolMessage
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT
|
||||||
from app.agents.shared.state_reducers import _CLEAR
|
from app.agents.shared.state_reducers import _CLEAR
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ from langchain.tools import ToolRuntime
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
from ...middleware.mode import is_cloud
|
from ...middleware.mode import is_cloud
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,9 @@ from langchain.tools import ToolRuntime
|
||||||
from langchain_core.messages import ToolMessage
|
from langchain_core.messages import ToolMessage
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT
|
||||||
from app.agents.shared.state_reducers import _CLEAR
|
from app.agents.shared.state_reducers import _CLEAR
|
||||||
|
|
||||||
from ...middleware.path_resolution import current_cwd
|
from ...middleware.path_resolution import current_cwd
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ from langchain.tools import ToolRuntime
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
from ...middleware.mode import is_cloud
|
from ...middleware.mode import is_cloud
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ from langchain_core.messages import ToolMessage
|
||||||
from langchain_core.tools import BaseTool, StructuredTool
|
from langchain_core.tools import BaseTool, StructuredTool
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
|
|
||||||
from ...middleware.async_dispatch import run_async_blocking
|
from ...middleware.async_dispatch import run_async_blocking
|
||||||
from ...middleware.mode import is_cloud
|
from ...middleware.mode import is_cloud
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ from langchain.agents.middleware import AgentMiddleware, AgentState
|
||||||
from langchain_core.messages import SystemMessage
|
from langchain_core.messages import SystemMessage
|
||||||
from langgraph.runtime import Runtime
|
from langgraph.runtime import Runtime
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.knowledge_search import _render_priority_message
|
from app.agents.new_chat.middleware.knowledge_search import _render_priority_message
|
||||||
from app.utils.perf import get_perf_logger
|
from app.utils.perf import get_perf_logger
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ from dataclasses import dataclass, field
|
||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.path_resolver import (
|
from app.agents.shared.path_resolver import (
|
||||||
DOCUMENTS_ROOT,
|
DOCUMENTS_ROOT,
|
||||||
build_path_index,
|
build_path_index,
|
||||||
doc_to_virtual_path,
|
doc_to_virtual_path,
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,8 @@ from typing import Any
|
||||||
from langchain.agents.middleware import AgentMiddleware, AgentState
|
from langchain.agents.middleware import AgentMiddleware, AgentState
|
||||||
from langgraph.runtime import Runtime
|
from langgraph.runtime import Runtime
|
||||||
|
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT, safe_filename
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT, safe_filename
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -47,7 +47,7 @@ from langchain_core.tools import BaseTool, StructuredTool
|
||||||
from langgraph.types import Command
|
from langgraph.types import Command
|
||||||
|
|
||||||
from app.agents.shared.filesystem_selection import FilesystemMode
|
from app.agents.shared.filesystem_selection import FilesystemMode
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.middleware.kb_postgres_backend import (
|
from app.agents.new_chat.middleware.kb_postgres_backend import (
|
||||||
KBPostgresBackend,
|
KBPostgresBackend,
|
||||||
paginate_listing,
|
paginate_listing,
|
||||||
|
|
@ -55,8 +55,8 @@ from app.agents.new_chat.middleware.kb_postgres_backend import (
|
||||||
from app.agents.new_chat.middleware.multi_root_local_folder_backend import (
|
from app.agents.new_chat.middleware.multi_root_local_folder_backend import (
|
||||||
MultiRootLocalFolderBackend,
|
MultiRootLocalFolderBackend,
|
||||||
)
|
)
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT
|
||||||
from app.agents.new_chat.sandbox import (
|
from app.agents.shared.sandbox import (
|
||||||
_evict_sandbox_cache,
|
_evict_sandbox_cache,
|
||||||
delete_sandbox,
|
delete_sandbox,
|
||||||
get_or_create_sandbox,
|
get_or_create_sandbox,
|
||||||
|
|
|
||||||
|
|
@ -47,8 +47,8 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.shared.feature_flags import get_flags
|
from app.agents.shared.feature_flags import get_flags
|
||||||
from app.agents.shared.filesystem_selection import FilesystemMode
|
from app.agents.shared.filesystem_selection import FilesystemMode
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.path_resolver import (
|
from app.agents.shared.path_resolver import (
|
||||||
DOCUMENTS_ROOT,
|
DOCUMENTS_ROOT,
|
||||||
parse_documents_path,
|
parse_documents_path,
|
||||||
safe_folder_segment,
|
safe_folder_segment,
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ from sqlalchemy import select
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.document_xml import build_document_xml
|
from app.agents.new_chat.document_xml import build_document_xml
|
||||||
from app.agents.new_chat.path_resolver import (
|
from app.agents.shared.path_resolver import (
|
||||||
DOCUMENTS_ROOT,
|
DOCUMENTS_ROOT,
|
||||||
build_path_index,
|
build_path_index,
|
||||||
doc_to_virtual_path,
|
doc_to_virtual_path,
|
||||||
|
|
|
||||||
|
|
@ -43,8 +43,8 @@ from sqlalchemy import select
|
||||||
|
|
||||||
from app.agents.shared.feature_flags import get_flags
|
from app.agents.shared.feature_flags import get_flags
|
||||||
from app.agents.shared.filesystem_selection import FilesystemMode
|
from app.agents.shared.filesystem_selection import FilesystemMode
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.path_resolver import (
|
from app.agents.shared.path_resolver import (
|
||||||
PathIndex,
|
PathIndex,
|
||||||
build_path_index,
|
build_path_index,
|
||||||
doc_to_virtual_path,
|
doc_to_virtual_path,
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,8 @@ from langgraph.runtime import Runtime
|
||||||
from sqlalchemy import select
|
from sqlalchemy import select
|
||||||
|
|
||||||
from app.agents.shared.filesystem_selection import FilesystemMode
|
from app.agents.shared.filesystem_selection import FilesystemMode
|
||||||
from app.agents.new_chat.filesystem_state import SurfSenseFilesystemState
|
from app.agents.shared.filesystem_state import SurfSenseFilesystemState
|
||||||
from app.agents.new_chat.path_resolver import (
|
from app.agents.shared.path_resolver import (
|
||||||
DOCUMENTS_ROOT,
|
DOCUMENTS_ROOT,
|
||||||
PathIndex,
|
PathIndex,
|
||||||
build_path_index,
|
build_path_index,
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ participate in the verification teaching from
|
||||||
``multi_agent_chat/subagents/shared/snippets/verifiable_handle.md`` those
|
``multi_agent_chat/subagents/shared/snippets/verifiable_handle.md`` those
|
||||||
tools now also need to write a :class:`Receipt` into the parent's
|
tools now also need to write a :class:`Receipt` into the parent's
|
||||||
``state['receipts']`` list (declared on
|
``state['receipts']`` list (declared on
|
||||||
:class:`~app.agents.new_chat.filesystem_state.SurfSenseFilesystemState`
|
:class:`~app.agents.shared.filesystem_state.SurfSenseFilesystemState`
|
||||||
and backed by the append reducer).
|
and backed by the append reducer).
|
||||||
|
|
||||||
:func:`with_receipt` wraps both behaviours: it returns the tool payload as
|
:func:`with_receipt` wraps both behaviours: it returns the tool payload as
|
||||||
|
|
@ -51,7 +51,7 @@ def with_receipt(
|
||||||
"""Return a Command that ships ``payload`` as a ToolMessage AND appends ``receipt``.
|
"""Return a Command that ships ``payload`` as a ToolMessage AND appends ``receipt``.
|
||||||
|
|
||||||
The append happens via the ``_list_append_reducer`` on the ``receipts``
|
The append happens via the ``_list_append_reducer`` on the ``receipts``
|
||||||
field of :class:`~app.agents.new_chat.filesystem_state.SurfSenseFilesystemState`,
|
field of :class:`~app.agents.shared.filesystem_state.SurfSenseFilesystemState`,
|
||||||
so concurrent subagent batches (item 4 in the plan) won't clobber each
|
so concurrent subagent batches (item 4 in the plan) won't clobber each
|
||||||
other's receipts.
|
other's receipts.
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.future import select
|
from sqlalchemy.future import select
|
||||||
from sqlalchemy.orm import selectinload
|
from sqlalchemy.orm import selectinload
|
||||||
|
|
||||||
from app.agents.new_chat.path_resolver import virtual_path_to_doc
|
from app.agents.shared.path_resolver import virtual_path_to_doc
|
||||||
from app.db import (
|
from app.db import (
|
||||||
Chunk,
|
Chunk,
|
||||||
Document,
|
Document,
|
||||||
|
|
|
||||||
|
|
@ -476,7 +476,7 @@ async def _revert_turns_for_regenerate(
|
||||||
|
|
||||||
def _try_delete_sandbox(thread_id: int) -> None:
|
def _try_delete_sandbox(thread_id: int) -> None:
|
||||||
"""Fire-and-forget sandbox + local file deletion so the HTTP response isn't blocked."""
|
"""Fire-and-forget sandbox + local file deletion so the HTTP response isn't blocked."""
|
||||||
from app.agents.new_chat.sandbox import (
|
from app.agents.shared.sandbox import (
|
||||||
delete_local_sandbox_files,
|
delete_local_sandbox_files,
|
||||||
delete_sandbox,
|
delete_sandbox,
|
||||||
is_sandbox_enabled,
|
is_sandbox_enabled,
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ async def download_sandbox_file(
|
||||||
):
|
):
|
||||||
"""Download a file from the Daytona sandbox associated with a chat thread."""
|
"""Download a file from the Daytona sandbox associated with a chat thread."""
|
||||||
|
|
||||||
from app.agents.new_chat.sandbox import get_or_create_sandbox, is_sandbox_enabled
|
from app.agents.shared.sandbox import get_or_create_sandbox, is_sandbox_enabled
|
||||||
|
|
||||||
if not is_sandbox_enabled():
|
if not is_sandbox_enabled():
|
||||||
raise HTTPException(status_code=404, detail="Sandbox is not enabled")
|
raise HTTPException(status_code=404, detail="Sandbox is not enabled")
|
||||||
|
|
@ -71,7 +71,7 @@ async def download_sandbox_file(
|
||||||
"You don't have permission to access files in this thread",
|
"You don't have permission to access files in this thread",
|
||||||
)
|
)
|
||||||
|
|
||||||
from app.agents.new_chat.sandbox import get_local_sandbox_file
|
from app.agents.shared.sandbox import get_local_sandbox_file
|
||||||
|
|
||||||
# Prefer locally-persisted copy (sandbox may already be deleted)
|
# Prefer locally-persisted copy (sandbox may already be deleted)
|
||||||
local_content = get_local_sandbox_file(thread_id, path)
|
local_content = get_local_sandbox_file(thread_id, path)
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ from typing import Any, Literal
|
||||||
from sqlalchemy import delete, select
|
from sqlalchemy import delete, select
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
from app.agents.new_chat.path_resolver import (
|
from app.agents.shared.path_resolver import (
|
||||||
DOCUMENTS_ROOT,
|
DOCUMENTS_ROOT,
|
||||||
safe_filename,
|
safe_filename,
|
||||||
safe_folder_segment,
|
safe_folder_segment,
|
||||||
|
|
|
||||||
|
|
@ -2175,7 +2175,7 @@ async def stream_new_chat(
|
||||||
# remain downloadable after the Daytona sandbox auto-deletes.
|
# remain downloadable after the Daytona sandbox auto-deletes.
|
||||||
if stream_result and stream_result.sandbox_files:
|
if stream_result and stream_result.sandbox_files:
|
||||||
with contextlib.suppress(Exception):
|
with contextlib.suppress(Exception):
|
||||||
from app.agents.new_chat.sandbox import (
|
from app.agents.shared.sandbox import (
|
||||||
is_sandbox_enabled,
|
is_sandbox_enabled,
|
||||||
persist_and_delete_sandbox,
|
persist_and_delete_sandbox,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -833,7 +833,7 @@ async def stream_new_chat(
|
||||||
# downloadable after the Daytona sandbox auto-deletes.
|
# downloadable after the Daytona sandbox auto-deletes.
|
||||||
if stream_result and stream_result.sandbox_files:
|
if stream_result and stream_result.sandbox_files:
|
||||||
with contextlib.suppress(Exception):
|
with contextlib.suppress(Exception):
|
||||||
from app.agents.new_chat.sandbox import (
|
from app.agents.shared.sandbox import (
|
||||||
is_sandbox_enabled,
|
is_sandbox_enabled,
|
||||||
persist_and_delete_sandbox,
|
persist_and_delete_sandbox,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ from app.agents.new_chat.mention_resolver import (
|
||||||
resolve_mentions,
|
resolve_mentions,
|
||||||
substitute_in_text,
|
substitute_in_text,
|
||||||
)
|
)
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT, PathIndex
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT, PathIndex
|
||||||
from app.schemas.new_chat import MentionedDocumentInfo
|
from app.schemas.new_chat import MentionedDocumentInfo
|
||||||
|
|
||||||
pytestmark = pytest.mark.unit
|
pytestmark = pytest.mark.unit
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@ from unittest.mock import AsyncMock, MagicMock
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from app.agents.new_chat.path_resolver import (
|
from app.agents.shared.path_resolver import (
|
||||||
DOCUMENTS_ROOT,
|
DOCUMENTS_ROOT,
|
||||||
PathIndex,
|
PathIndex,
|
||||||
doc_to_virtual_path,
|
doc_to_virtual_path,
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ contract cannot silently regress.
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from app.agents.new_chat.middleware.knowledge_tree import KnowledgeTreeMiddleware
|
from app.agents.new_chat.middleware.knowledge_tree import KnowledgeTreeMiddleware
|
||||||
from app.agents.new_chat.path_resolver import DOCUMENTS_ROOT
|
from app.agents.shared.path_resolver import DOCUMENTS_ROOT
|
||||||
|
|
||||||
|
|
||||||
def _compute(folder_paths: list[str], doc_paths: list[str]) -> set[str]:
|
def _compute(folder_paths: list[str], doc_paths: list[str]) -> set[str]:
|
||||||
|
|
@ -86,7 +86,7 @@ class TestFormatTreeRendering:
|
||||||
folder_paths: list[str],
|
folder_paths: list[str],
|
||||||
doc_specs: list[dict],
|
doc_specs: list[dict],
|
||||||
) -> str:
|
) -> str:
|
||||||
from app.agents.new_chat.path_resolver import PathIndex
|
from app.agents.shared.path_resolver import PathIndex
|
||||||
|
|
||||||
index = PathIndex(
|
index = PathIndex(
|
||||||
folder_paths={i + 1: p for i, p in enumerate(folder_paths)},
|
folder_paths={i + 1: p for i, p in enumerate(folder_paths)},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue