mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-10-20 04:21:58 +00:00
Root cause: terminal availability checks still imported minisweagent for the local backend even though local/singularity now use Hermes wrappers directly. In git worktrees, the local submodule path may also be an empty placeholder, so direct path insertion could miss the populated mini-swe-agent checkout. This change: - adds a helper to discover mini-swe-agent from the current checkout or the main checkout behind a worktree - uses that helper in terminal_tool and mini_swe_runner - stops requiring minisweagent for the local backend requirements check - adds regression tests and validates terminal/file tool resolution again
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
"""Tests for minisweagent_path.py."""
|
|
|
|
from pathlib import Path
|
|
|
|
from minisweagent_path import discover_minisweagent_src
|
|
|
|
|
|
def test_discover_minisweagent_src_in_current_checkout(tmp_path):
|
|
repo = tmp_path / "repo"
|
|
src = repo / "mini-swe-agent" / "src"
|
|
src.mkdir(parents=True)
|
|
|
|
assert discover_minisweagent_src(repo) == src.resolve()
|
|
|
|
|
|
def test_discover_minisweagent_src_falls_back_from_worktree_to_main_checkout(tmp_path):
|
|
main_repo = tmp_path / "main-repo"
|
|
(main_repo / ".git" / "worktrees" / "wt1").mkdir(parents=True)
|
|
main_src = main_repo / "mini-swe-agent" / "src"
|
|
main_src.mkdir(parents=True)
|
|
|
|
worktree = tmp_path / "worktree"
|
|
worktree.mkdir()
|
|
(worktree / ".git").write_text(f"gitdir: {main_repo / '.git' / 'worktrees' / 'wt1'}\n", encoding="utf-8")
|
|
(worktree / "mini-swe-agent").mkdir() # empty placeholder, no src/
|
|
|
|
assert discover_minisweagent_src(worktree) == main_src.resolve()
|
|
|
|
|
|
def test_discover_minisweagent_src_returns_none_when_missing(tmp_path):
|
|
repo = tmp_path / "repo"
|
|
repo.mkdir()
|
|
|
|
assert discover_minisweagent_src(repo) is None
|