mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-15 17:25:26 -04:00
f7ae85590b
* refactor(tools): consolidate duplicated _truncate and get_mcp_manager into src/tool_utils
Move all copies of _truncate(), get_mcp_manager(), and set_mcp_manager()
into a single leaf module (src/tool_utils.py) that imports only from
src.constants. This eliminates the lazy-import hack
('from src import agent_tools' inside function bodies) in tool_execution.py
and tool_implementations.py, and fixes a latent bug: the _truncate copy in
tool_execution.py was missing the isinstance guard and would crash on None.
Also deletes mcp_servers/_common.py — it was dead code with zero callers
anywhere in the codebase, containing its own copy of truncate() and
constants that already exist in src/constants.py.
* fix(tools): route remaining get_mcp_manager imports to src.tool_utils
The maintainer's feedback flagged src/task_scheduler.py:1857 and
routes/task_routes.py:977. A project-wide search found a third call site
in src/agent_loop.py that also imported get_mcp_manager from
src.agent_tools instead of src.tool_utils.
All three are now sourced from the canonical location in src.tool_utils.
---------
Co-authored-by: mcnoliveira <mcnoliveira@gmail.com>
23 lines
856 B
Python
23 lines
856 B
Python
"""Verify src.tool_utils has no project imports beyond src.constants.
|
|
|
|
If someone adds an import from src.settings, src.database, or any other
|
|
project module inside tool_utils.py, the circular import that this module
|
|
exists to break will silently return a partially-initialized module.
|
|
This test catches that statically.
|
|
"""
|
|
|
|
import ast
|
|
import pathlib
|
|
|
|
|
|
def test_tool_utils_has_no_project_imports():
|
|
src = pathlib.Path("src/tool_utils.py").read_text()
|
|
tree = ast.parse(src)
|
|
for node in ast.walk(tree):
|
|
if isinstance(node, (ast.Import, ast.ImportFrom)):
|
|
if isinstance(node, ast.ImportFrom) and node.module:
|
|
msg = f"Illegal project import in tool_utils.py: {node.module}"
|
|
assert node.module in ("src.constants",) or not node.module.startswith(
|
|
"src."
|
|
), msg
|