refactor(hub): agent-first layout — hub/agents/<id>/<lang>#2060
refactor(hub): agent-first layout — hub/agents/<id>/<lang>#2060kovtcharov-amd wants to merge 8 commits into
Conversation
Move the hub from language-first (hub/agents/python/<id>/, hub/agents/npm/agent-email/) to agent-first: one directory per agent with a runtime subdir inside (hub/agents/<id>/python/, hub/agents/email/npm/). An agent's contract, binaries lock, clients, and specs now travel together, and each agent needs a single CI path filter instead of one per language×agent. All 18 python agents and the npm email client are moved with git mv (history preserved). Every live path reference is updated: CI workflows (release/ publish/test path filters and env vars), the publish matrix source (util/list_agent_packages.py), the email sidecar lock/package path resolution, email packaging scripts, the traceback framework-path filter, tests, docs, skills, and CLAUDE.md. The empty cpp/ and python/ placeholder trees are removed (cpp is now per-agent). Follow-on to #1102. Closes #2019.
|
Verdict: Approve ✅ This is a clean, mechanical refactor that flips the hub layout from language-first ( The one thing that matters for a rename like this is completeness — a single missed path filter would silently stop a CI job from firing. I checked the committed head end-to-end and it's complete: zero stale 🔍 Technical detailsCompleteness verification (on the PR head, not the dirty working tree):
Live surfaces correctly updated (spot-checked):
Minor note (non-blocking, no change requested): Strengths:
|
…rst-layout-2019 # Conflicts: # .github/workflows/email_scorecard_refresh.yml # .github/workflows/release_agent_email.yml # .github/workflows/test_email_agent_eval.yml # hub/agents/email/npm/README.md # hub/agents/email/python/CAPABILITY_MATRIX.md # hub/agents/email/python/gaia_agent_email/tools/envelope.py # hub/agents/email/python/packaging/capability_matrix.py # hub/agents/email/python/tests/test_calendar_token_path.py # hub/agents/email/python/tests/test_capability_matrix.py # hub/agents/email/python/tests/test_envelope.py # hub/agents/email/python/tests/test_eval_action_item_report.py # hub/agents/email/python/tests/test_eval_briefing_report.py # hub/agents/email/python/tests/test_eval_drafting_report.py # hub/agents/email/python/tests/test_eval_gate_report.py
Dependency ReviewThe following issues were found:
|
…DIR, id from parent dir)
… single-line rename gate test_pre_scan_summary_fix, test_api_extras, and test_release_scorecard built hub/agents/python/email/... across separate Path segments, so the rename's one-line grep gate didn't catch them. Swap to the agent-first email/python order.
|
🟡 The The This PR correctly removes that command (it would now scaffold into the wrong location). But nothing replaces it. With the new
The SKILL should document a working workaround until 🔍 Technical details
parent = Path(args.output).expanduser().resolve()
pkg_dir = parent / names.id # always <output>/<id>, never <output>/pythonThe SKILL change ( and replaces it with: The description is correct but not actionable — there's no |
…sories flagged by Dependency Review)
…rst-layout-2019 # Conflicts: # .github/workflows/email_scorecard_refresh.yml
Closes #2019. Part of the Agent UI v2 milestone.
One agent's artifacts are scattered across language-first trees (email lives in both
hub/agents/python/email/andhub/agents/npm/agent-email/). This flips to agent-first —hub/agents/<id>/{python,npm}/— so an agent's contract, binaries lock, clients, and specs travel together, and CI needs one path filter per agent instead of one per language×agent. Landing it now avoids every new per-agent v2 workflow hard-coding the old layout and widening the diff later.History-preserving
git mvof the python agents +npm/agent-emailintohub/agents/<id>/<lang>/, with every live path reference updated (CI workflows/path filters, packaging/freeze scripts, the email sidecar lock-path resolution, tests, docs,.claude/skills/,CLAUDE.md). The npm package name@amd-gaia/agent-emailand thegaia-agent-emailwheel name are unchanged — only on-disk paths move.Test plan
git grep -nE 'hub/agents/(python|npm|cpp)' -- ':!*.lock'returns no live references.Note: the breakdown-doc path rewrites are handled in #2058 (#2017) to avoid a same-file conflict, so this PR deliberately does not touch
agent-ui-v2-implementation-breakdown.md.