Skip to content

feat(workspace): add agentv workspace deps subcommand#960

Merged
christso merged 6 commits intomainfrom
feat/959-workspace-deps
Apr 7, 2026
Merged

feat(workspace): add agentv workspace deps subcommand#960
christso merged 6 commits intomainfrom
feat/959-workspace-deps

Conversation

@christso
Copy link
Copy Markdown
Collaborator

@christso christso commented Apr 7, 2026

Summary

  • Adds agentv workspace deps <eval-paths...> — a lightweight scanner that extracts git repo dependencies from eval YAML workspace configs
  • Outputs a JSON manifest of unique repos needed, so CI can decide what to clone before running evals
  • Does not use loadTestSuite — only parses workspace-related YAML fields for speed

Example

$ agentv workspace deps examples/features/workspace-multi-repo/evals/dataset.eval.yaml
{
  "repos": [
    {
      "url": "https://github.com/EntityProcess/agentv.git",
      "ref": "main",
      "clone": { "depth": 1 },
      "checkout": { "resolve": "local" },
      "used_by": ["examples/features/workspace-multi-repo/evals/dataset.eval.yaml"]
    }
  ]
}

CI can pipe this to jq and clone/fetch only what's needed.

Test plan

  • 12 unit tests covering: suite-level repos, per-test repos, deduplication, different refs, local source skipping, external workspace file refs, missing files, sparse/checkout options
  • Build passes
  • Lint passes
  • Functional test against real eval files in examples/

Closes #959

🤖 Generated with Claude Code

christso and others added 2 commits April 7, 2026 04:57
…epo dependencies

Adds a lightweight scanner that extracts git repo dependencies from eval
YAML workspace configs without full test/grader parsing. CI pipelines can
use this to determine which repos to clone before running evals.

Closes #959

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented Apr 7, 2026

Deploying agentv with  Cloudflare Pages  Cloudflare Pages

Latest commit: fd2a0ca
Status: ✅  Deploy successful!
Preview URL: https://dd1fbdb3.agentv.pages.dev
Branch Preview URL: https://feat-959-workspace-deps.agentv.pages.dev

View logs

christso and others added 4 commits April 7, 2026 05:13
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Extract shared repo config parsers into repo-config-parser.ts (DRY)
- Remove duplicated parseRepoSource/Checkout/Clone from deps-scanner
- Update yaml-parser.ts to import from shared module
- Make used_by paths relative to cwd for CI portability
- Normalize git URLs for dedup (strip trailing .git, lowercase host)
- Remove unused _baseDir parameter
- Use RepoSource type instead of inline union
- Add tests: env var interpolation, malformed YAML, broken workspace
  file ref, URL normalization dedup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Keep the default JSON output minimal for CI piping. The --used-by flag
includes the list of eval files that reference each repo when needed
for debugging.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@christso christso marked this pull request as ready for review April 7, 2026 05:40
@christso christso merged commit 5cdddc0 into main Apr 7, 2026
4 checks passed
@christso christso deleted the feat/959-workspace-deps branch April 7, 2026 05:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(workspace): add agentv workspace deps to scan eval files for repo dependencies

1 participant