Conversation
Add a 5-step wizard (name → source → lookback → evaluators → review) for `agentcore eval batch-evaluation evaluate`, built on the shared wizard shell. Sessions are selected by a lookback window (last N days, converted to the source time window); evaluators are chosen from a live multi-select backed by listEvaluators. On submit it calls startBatchEvaluation and shows the job id plus the `get` command to poll it. - register `evaluate` as a supported TUI command and route it - add EvaluatorMultiSelect compound field (the shell ships no multi-select) - retarget the CliOnlyScreen help-group test to `simulate` (evaluate now has a screen, so it no longer renders the command-line-only help)
|
Claude Security Review: no high-confidence findings. (run) |
There was a problem hiding this comment.
AgentCore Harness Review
Verdict: Changes requested
Nice, focused wizard. One real gap:
Missing tests for the new wizard
src/handlers/eval/batch-evaluation/evaluate/screen.tsx is a brand-new interactive wizard for a WRITE operation, and it introduces a bespoke EvaluatorMultiSelect compound field with non-trivial custom input handling (windowed list, cursor clamping, space-to-toggle, "select at least one" gating, escape→back). It ships with zero tests.
The convention elsewhere in this repo is to cover screens with a *.screen.test.tsx — e.g. src/handlers/eval/batch-evaluation/batch-evaluation.screen.test.tsx, src/handlers/eval/recommendation/recommendation.screen.test.tsx, and src/handlers/project/add/runtime/runtime.screen.test.tsx all use renderScreen(...) to drive the wizard and assert against lastFrame(). Please add coverage that exercises at least:
- the happy path (fills each step, verifies
core.eval.startBatchEvaluationis called with the expectedsource/window/evaluatorIds, and shows the successnext stepsline); - the
evaluatorsstep: empty-list message, "select at least one evaluator" gating on enter with no selections, space toggling on/off, and the cursor windowing whenwithId.length > WINDOW(this is the most bug-prone piece and currently has no safety net); - the loading and error states of the
listEvaluatorsquery.
Everything else looks reasonable — the source mapping to SessionSourceValue matches what Core.startBatchEvaluation expects, the supportedTuiCommands("evaluate") addition preserves the CLI-only path for non-empty invocations, and the CliOnlyScreen help-groups test update to point at simulate is correct.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## refactor #2301 +/- ##
============================================
- Coverage 96.98% 96.73% -0.25%
============================================
Files 579 581 +2
Lines 39552 39768 +216
============================================
+ Hits 38358 38470 +112
- Misses 1194 1298 +104 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- add BatchEvaluationNameSchema to projectSchemas (mirrors the sibling eval resource name schemas) and validate the wizard name field against it, so the service name-pattern error surfaces at input instead of after submit - remove the committed demo gif from docs/ (kept out of the repo)
|
Claude Security Review: no high-confidence findings. (run) |
What
Adds an interactive TUI wizard for
agentcore eval batch-evaluation evaluate, so a batch evaluation can be started without hand-assembling flags. Built on the shared wizard shell (src/components/wizard/).Demo
Recorded end-to-end against a real account via the TUI harness: the final submit returns a job id and the
getcommand to poll it.Flow — 5 steps (agent-only)
BatchEvaluationNameSchema(letters/digits/underscores, start with a letter, max 48) live as you typenow − N days → now)listEvaluators, requires ≥1getcommand to pollEndpoint, session IDs, ground truth, online-eval config, and the raw
DataSourceConfigstay flag-only escape hatches to keep the happy path short.Notes
EvaluatorMultiSelectis a compound field (ownuseInput), following theModelFieldpattern fromproject create. Cursor is clamped on read so it never depends on a stale list length, and the list is windowed so a long roster doesn't push the footer off-screen.BatchEvaluationNameSchemainsrc/projectSchemas/, matching how the sibling eval resources (evaluator, online-eval-config) define their name schemas — surfaces the service pattern error at input rather than after submit.CliOnlyScreenhelp-group test tosimulate, sinceevaluatenow renders a screen rather than command-line-only help.Test
bun test— full suite green