refactor(agents): move filesystem_selection to app/agents/shared (slice 3a)

Promote the filesystem mode contracts (FilesystemMode, FilesystemSelection,
ClientPlatform, LocalFilesystemMount) out of `new_chat` into the cross-agent
`app/agents/shared` kernel.

Pure leaf consumed across the whole multi-agent filesystem middleware/tool tree,
the chat flows/monolith, routes and tests. git mv (content unchanged) + flipped
all ~48 importers. A re-export shim remains at new_chat/filesystem_selection.py
only for the not-yet-retired single-agent (chat_deepagent).

Also updated the stream parity test's annotation normalizer to strip the new
app.agents.shared.filesystem_selection. prefix (the dataclasses' __module__
changed with the move), keeping monolith<->flows signature parity intact.

Behavior-preserving: only import paths change. 1326 tests green.
This commit is contained in:
CREDO23 2026-06-04 12:28:20 +02:00
parent a975754e7d
commit 1b536b8aee
51 changed files with 110 additions and 86 deletions

View file

@ -20,7 +20,7 @@ from unittest.mock import AsyncMock
import pytest
from app.agents.new_chat.filesystem_selection import FilesystemMode
from app.agents.shared.filesystem_selection import FilesystemMode
from app.agents.new_chat.middleware.filesystem import SurfSenseFilesystemMiddleware
from app.agents.new_chat.middleware.kb_postgres_backend import KBPostgresBackend

View file

@ -3,7 +3,7 @@ from pathlib import Path
import pytest
from app.agents.new_chat.filesystem_backends import build_backend_resolver
from app.agents.new_chat.filesystem_selection import (
from app.agents.shared.filesystem_selection import (
ClientPlatform,
FilesystemMode,
FilesystemSelection,

View file

@ -18,7 +18,7 @@ from types import SimpleNamespace
import pytest
from app.agents.new_chat.filesystem_selection import FilesystemMode
from app.agents.shared.filesystem_selection import FilesystemMode
from app.agents.new_chat.middleware.filesystem import (
SurfSenseFilesystemMiddleware,
_build_filesystem_system_prompt,

View file

@ -2,7 +2,7 @@ from pathlib import Path
import pytest
from app.agents.new_chat.filesystem_selection import FilesystemMode
from app.agents.shared.filesystem_selection import FilesystemMode
from app.agents.new_chat.middleware.filesystem import SurfSenseFilesystemMiddleware
from app.agents.new_chat.middleware.multi_root_local_folder_backend import (
MultiRootLocalFolderBackend,

View file

@ -97,7 +97,7 @@ def _normalize_annotation(ann: Any) -> str:
raw.replace("typing.", "")
.replace("collections.abc.", "")
.replace("app.db.", "")
.replace("app.agents.new_chat.filesystem_selection.", "")
.replace("app.agents.shared.filesystem_selection.", "")
.replace("app.agents.shared.context.", "")
)
# Unwrap ``<class 'int'>`` → ``int`` (legacy-side type objects).