refactor(agents): colocate main_agent-only kernel into main_agent/

Move modules out of agents/shared/ that are consumed by a single package
(main_agent), placing each next to its only consumer instead of in a
"shared" grab-bag:

- agent_cache.py        -> main_agent/runtime/agent_cache_store.py
- connector_searchable_types.py -> main_agent/runtime/
- plugin_loader.py + plugins/    -> main_agent/plugins/
- skills/ + skills_backends.py   -> main_agent/skills/
- tools/invalid_tool.py          -> main_agent/tools/

Drop the skills_backends re-export from the shared middleware barrel and
repoint all consumers + tests. No behavior change; import-all,
error-contract, and the moved tests stay green.
This commit is contained in:
CREDO23 2026-06-04 21:25:39 +02:00
parent c51aca6ccc
commit a7d7155039
24 changed files with 33 additions and 46 deletions

View file

@ -16,7 +16,7 @@ from dataclasses import dataclass
import pytest
from app.agents.shared.agent_cache import (
from app.agents.multi_agent_chat.main_agent.runtime.agent_cache_store import (
flags_signature,
reload_for_tests,
stable_hash,

View file

@ -6,13 +6,13 @@ from unittest.mock import MagicMock, patch
from langchain.agents.middleware import AgentMiddleware
from app.agents.shared.plugin_loader import (
from app.agents.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.shared.plugins.year_substituter import (
from app.agents.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.shared.plugin_loader.entry_points",
"app.agents.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.shared.plugin_loader.entry_points",
"app.agents.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.shared.plugin_loader.entry_points",
"app.agents.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.shared.plugin_loader.entry_points",
"app.agents.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.shared.plugin_loader.entry_points",
"app.agents.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.shared.plugin_loader.entry_points", return_value=eps):
with patch("app.agents.multi_agent_chat.main_agent.plugins.loader.entry_points", return_value=eps):
result = load_plugin_middlewares(
_ctx(), allowed_plugin_names={"crashing", "ok"}
)

View file

@ -7,7 +7,7 @@ from pathlib import Path
import pytest
from app.agents.shared.middleware.skills_backends import (
from app.agents.multi_agent_chat.main_agent.skills.backends import (
SKILLS_BUILTIN_PREFIX,
SKILLS_SPACE_PREFIX,
BuiltinSkillsBackend,

View file

@ -5,10 +5,10 @@ from __future__ import annotations
import pytest
from langchain_core.messages import AIMessage
from app.agents.multi_agent_chat.main_agent.tools.invalid_tool import INVALID_TOOL_NAME
from app.agents.shared.middleware.tool_call_repair import (
ToolCallNameRepairMiddleware,
)
from app.agents.shared.tools.invalid_tool import INVALID_TOOL_NAME
pytestmark = pytest.mark.unit