fix: worktree-aware minisweagent path discovery + clean up requirements check (#1248)
Salvage of PR #1246 by ChatGPT (teknium1 session), resolved against current main which already includes #1239. Changes: - Add minisweagent_path.py: worktree-aware helper that finds mini-swe-agent/src from either the current checkout or the main checkout behind a git worktree - Use the helper in tools/terminal_tool.py and mini_swe_runner.py instead of naive path-relative lookup that fails in worktrees - Clean up check_terminal_requirements(): - local: return True (no minisweagent dep, per #1239) - singularity/ssh: remove unnecessary minisweagent imports - docker/modal: use importlib.util.find_spec with clear error - Add regression tests for worktree path discovery and tool resolution
This commit is contained in:
parent
21422dba44
commit
a20d373945
5 changed files with 186 additions and 18 deletions
28
tests/tools/test_terminal_tool_requirements.py
Normal file
28
tests/tools/test_terminal_tool_requirements.py
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
"""Tests for terminal/file tool availability in local dev environments."""
|
||||
|
||||
import importlib
|
||||
|
||||
from model_tools import get_tool_definitions
|
||||
|
||||
terminal_tool_module = importlib.import_module("tools.terminal_tool")
|
||||
|
||||
|
||||
class TestTerminalRequirements:
|
||||
def test_local_backend_does_not_require_minisweagent_package(self, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
terminal_tool_module,
|
||||
"_get_env_config",
|
||||
lambda: {"env_type": "local"},
|
||||
)
|
||||
assert terminal_tool_module.check_terminal_requirements() is True
|
||||
|
||||
def test_terminal_and_file_tools_resolve_for_local_backend(self, monkeypatch):
|
||||
monkeypatch.setattr(
|
||||
terminal_tool_module,
|
||||
"_get_env_config",
|
||||
lambda: {"env_type": "local"},
|
||||
)
|
||||
tools = get_tool_definitions(enabled_toolsets=["terminal", "file"], quiet_mode=True)
|
||||
names = {tool["function"]["name"] for tool in tools}
|
||||
assert "terminal" in names
|
||||
assert {"read_file", "write_file", "patch", "search_files"}.issubset(names)
|
||||
Loading…
Add table
Add a link
Reference in a new issue