refactor(layout): group ACP agents under acp/ (acp/ + ai-sdk/ + omnigent/) - #19
Merged
Conversation
…dk/ + omnigent/); recursive loader already discovers them Move the 11 ACP agent dirs (claude-agent-acp, codex-acp, gemini, mimo, mimo-acp, opencode, openclaw, openhands, pi-acp, mini-swe-acp, mini-swe-code) under a single acp/ category dir, leaving ai-sdk/ and omnigent/ as the other two top-level agent groups and contract/, docs/, skills/, .github/ + root files as infra. The benchflow loader (manifest.discover_manifests) already rglobs manifest.toml recursively and 'acp' is not in _DISCOVERY_SKIP_DIRS, so load_agents_from_dir discovers the exact same agent-name set + identical manifest content (sha256 per manifest) before and after this move (verified). Path refs in workflows, contract tests, and docs are repointed flat <dir> -> acp/<dir>; agent names in prose are left alone. contract/test_manifest.py's repo-manifest glob is made recursive-bounded so it keeps validating the moved manifests instead of silently skipping. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EWyhqJ7GvkQRvEFynmKF5h
|
Too many files changed for review. ( |
Yiminnn
added a commit
that referenced
this pull request
Jun 27, 2026
) Follow-up to #19. The acp/ subtree's own pip-install subdirectory= commands and pyproject Documentation URLs still pointed at the pre-move repo-root paths; repoint them to acp/<dir>. No discovery/manifest impact (contract suite unaffected). Co-authored-by: symphony-bot <symphony@benchflow.ai>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Group the repo's ACP agents under a single top-level
acp/directory, so the layout becomes three agent buckets + infra:acp/— the 11 ACP agents:claude-agent-acp,codex-acp,gemini,mimo,mimo-acp,opencode,openclaw,openhands,pi-acp,mini-swe-acp,mini-swe-codeai-sdk/— the Vercel AI SDK harness group (unchanged)omnigent/— the Databricks Omnigent session-factory agent (unchanged)contract/,docs/,skills/,.github/, plus rootREADME.md/CONTRIBUTING.md/LICENSE/ config filesAll agent dirs move via
git mv(renames, history preserved): 169 files renamed, 10 files edited for path refs.Why this is backward-compatible
The benchflow loader already discovers agents recursively:
benchflow.agents.manifest.discover_manifestswalksroot.rglob("manifest.toml")and skips only_DISCOVERY_SKIP_DIRS(build/vendor/VCS dirs) —acpis not in that set. Nesting agents one level deeper underacp/therefore does not hide them; the loader's own docstring already anticipates nested families (e.g.ai-sdk/acp/manifest.tomlalongsideacp/<agent>/manifest.toml).Verified empirically against
load_agents_from_dir(): the discovered agent-name set is identical before and after the move, and every manifest's content hash (sha256) is byte-identical (puregit mv, no content change).['claude-agent-acp', 'codex-acp', 'gemini', 'mimo', 'openclaw', 'opencode', 'openhands', 'pi-acp']['claude-agent-acp', 'codex-acp', 'gemini', 'mimo', 'openclaw', 'opencode', 'openhands', 'pi-acp']Path refs updated
Every filesystem path reference to a moved dir is repointed
<dir>/->acp/<dir>/. Agent names in prose and model ids are deliberately left untouched (e.g. "use BenchFlow's nativecodex-acp" stays — that's an agent name, not a path)..github/workflows/—lint.yaml(working-directory:), andtest-mimo-acp.yaml/test-mini-swe-acp.yaml/test-mini-swe-code.yaml(paths:filters +working-directory:)contract/—manifest.pydocstring example;test_manifest_launcher_freshness.py_MANIFESTconstant (nowacp/pi-acp/manifest.toml); andtest_manifest.py's repo-manifest glob made recursive-bounded (*/manifest.toml+*/*/manifest.toml) so it keeps validating the moved manifests instead of silentlypytest.skip-ing under the new depthREADME.md(agent-table links, quickstartcd, pip#subdirectory=, repository-layout block, license table),CONTRIBUTING.md(dev-setupcd+ themini-swe-code/...file paths),docs/adaptation.md(themini-swe-acpworked-example link)Tests
contract/suite: 20 passed — incl.test_repo_manifests_validatenow finding all 9acp/<name>/manifest.toml(no skip) and the pi-acp launcher-freshness tests readingacp/pi-acp/manifest.tomlruff check+ruff format --checkclean oncontract/Follow-ups (out of scope here)
acp/,ai-sdk/,omnigent/) and add a deprecation path for the old flat layout.acp/mimo/andacp/mimo-acp/both declarename = "mimo", soload_agents_from_dirraises a duplicate-name error over the whole tree — identical behavior before and after this move. Worth de-duping separately.🤖 Generated with Claude Code