mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-06 20:15:17 +02:00
refactor(agents): sink sandbox.py into filesystem subsystem
shared/sandbox.py was used only by the filesystem middleware/tools (and the boundary) -- never by main_agent or subagents as shared code. Move it next to its only agent-side consumer: multi_agent_chat/shared/sandbox.py -> multi_agent_chat/shared/middleware/filesystem/sandbox.py
This commit is contained in:
parent
24b62a63b4
commit
7d866a2279
6 changed files with 10 additions and 6 deletions
|
|
@ -8,7 +8,9 @@ from deepagents import FilesystemMiddleware
|
||||||
from langchain_core.tools import BaseTool
|
from langchain_core.tools import BaseTool
|
||||||
|
|
||||||
from app.agents.chat.multi_agent_chat.shared.filesystem_selection import FilesystemMode
|
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.middleware.filesystem.sandbox import (
|
||||||
|
is_sandbox_enabled,
|
||||||
|
)
|
||||||
from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import (
|
from app.agents.chat.multi_agent_chat.shared.state.filesystem_state import (
|
||||||
SurfSenseFilesystemState,
|
SurfSenseFilesystemState,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ 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.chat.multi_agent_chat.shared.sandbox import (
|
from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.sandbox import (
|
||||||
_evict_sandbox_cache,
|
_evict_sandbox_cache,
|
||||||
delete_sandbox,
|
delete_sandbox,
|
||||||
get_or_create_sandbox,
|
get_or_create_sandbox,
|
||||||
|
|
|
||||||
|
|
@ -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.chat.multi_agent_chat.shared.sandbox import (
|
from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.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.chat.multi_agent_chat.shared.sandbox import (
|
from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.sandbox import (
|
||||||
get_or_create_sandbox,
|
get_or_create_sandbox,
|
||||||
is_sandbox_enabled,
|
is_sandbox_enabled,
|
||||||
)
|
)
|
||||||
|
|
@ -74,7 +74,9 @@ 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.chat.multi_agent_chat.shared.sandbox import get_local_sandbox_file
|
from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.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)
|
||||||
|
|
|
||||||
|
|
@ -829,7 +829,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.chat.multi_agent_chat.shared.sandbox import (
|
from app.agents.chat.multi_agent_chat.shared.middleware.filesystem.sandbox import (
|
||||||
is_sandbox_enabled,
|
is_sandbox_enabled,
|
||||||
persist_and_delete_sandbox,
|
persist_and_delete_sandbox,
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue