Skip to content

feat(studio): move agent eval over to evaluator endpoints - #775

Merged
nv-odrulea merged 8 commits into
mainfrom
od/agent-evals-refactor-evaluator
Jul 21, 2026
Merged

feat(studio): move agent eval over to evaluator endpoints#775
nv-odrulea merged 8 commits into
mainfrom
od/agent-evals-refactor-evaluator

Conversation

@nv-odrulea

@nv-odrulea nv-odrulea commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

New Eval Modal: Use premade example - will save eval config to new Fileset

Screenshot 2026-07-20 at 2 55 09 PM

New Eval Modal: Use saved eval config from an existing Fileset

Screenshot 2026-07-20 at 2 55 28 PM

Completed Eval

Screenshot 2026-07-20 at 2 54 38 PM

Highlights

  • Move Studio agent eval to nemo-evaluator endpoints — drop old /apis/agents/.../jobs/evaluate path + local types; use generated evaluator SDK, POST {spec:{tasks,target}} to /agent-evaluate/jobs.
  • Reusable eval configs in Filesets — pick an existing config or "Create new". Modal redesign: "Use Example" / "Choose Fileset", judge-model picker, agent target.
  • Saved fileset config now runnable as-is — persist the transformed yardstick spec (tasks carry metrics, judge model baked in), not the raw sample. "Choose Fileset" = passthru; only the agent target is injected at submit. Judge no longer drifts on reuse.
  • Results view — read AgentEvalResult.scores[]; new scores panel; handle serialized NaN + aggregate coverage.
  • Sample agents — email-phishing + calculator eval-config.json; drop legacy dataset-driven ref file.
  • Agent /generate — workaround for NAT agent bug where streaming response was not supported within eval process
  • DatasetFileSeelct — add optional date_update to right slot to help pick among random generated names which appear in alphabetical order

Summary by CodeRabbit

Summary

  • New Features

    • Added optional “updated at” timestamps to dataset/upload pickers and the upload modal.
    • Expanded Studio agent evaluations with new job submission flow, job status tracking, and detailed per-task results including rubric + aggregate scores.
    • Added new sample evaluation configs for the calculator and email-phishing-analyzer.
  • Bug Fixes

    • Improved handling of missing job fields (e.g., creation time) and non-finite score values in evaluation displays.
  • Documentation

    • Added comprehensive Studio documentation for task-based agent evaluations.

@nv-odrulea
nv-odrulea requested review from a team as code owners July 17, 2026 22:11
@github-actions github-actions Bot added the feat label Jul 17, 2026
@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Changes

Agent evaluation workflow

Layer / File(s) Summary
Evaluation configs and sample selection
web/packages/studio/public/sample-agents/*, web/packages/studio/src/api/evaluation/eval-config-fileset.ts, web/packages/studio/src/constants/sampleAgents.ts, web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md
Adds reusable evaluation configs, fileset seeding, evaluation sample helpers, evaluator mocks, shared imports, and workflow documentation.
Agent evaluation request construction
web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.ts, web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/SubmitEvaluationModal.tsx, web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.test.ts
Builds agent-evaluate/jobs requests from parsed configs, injects judge models, validates mode-specific fields, and submits example or fileset configurations.
Evaluation jobs and result bundles
web/packages/studio/src/api/evaluation/agent-evaluations.ts, web/packages/studio/src/api/evaluation/agent-evaluations.test.ts
Adds job operations, aggregate-result loading, JSONL bundle downloads, task joining, and tests.
Evaluation list, detail, and result panels
web/packages/studio/src/routes/agents/AgentEvaluationsRoute/*, web/packages/studio/src/components/sidePanels/AgentPanels/AgentPanel/*
Updates evaluation routes to consume the shared API, display aggregate and task-level results, and tolerate missing job fields.

Upload picker timestamps

Layer / File(s) Summary
Upload picker update-time display
web/packages/common/src/components/DatasetFileSelect/*, web/packages/common/src/components/UploadModal/*
Adds showUpdatedAt propagation and conditionally renders fileset update times in dataset options.

Phishing-agent token limits

Layer / File(s) Summary
Phishing-agent LLM configuration
plugins/nemo-agents/examples/email-phishing-analyzer/src/nat_email_phishing_analyzer/email-phishing-agent.yml, web/packages/studio/public/sample-agents/email-phishing-analyzer/agent.yml
Raises the OpenAI max_tokens limit from 512 to 1024 and updates related comments.

Sequence Diagram(s)

sequenceDiagram
  participant SubmitEvaluationModal
  participant EvaluationHelpers
  participant EvaluatorJobsAPI
  participant ResultFilesAPI
  SubmitEvaluationModal->>EvaluationHelpers: parse eval-config.json and build request
  EvaluationHelpers->>EvaluatorJobsAPI: submit agent-evaluate job
  EvaluatorJobsAPI-->>SubmitEvaluationModal: return job
  SubmitEvaluationModal->>EvaluatorJobsAPI: fetch terminal result
  EvaluationHelpers->>ResultFilesAPI: download task bundle JSONL
  ResultFilesAPI-->>EvaluationHelpers: return tasks, trials, and scores
Loading
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: Studio agent evaluations now use evaluator endpoints.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch od/agent-evals-refactor-evaluator

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 16

🧹 Nitpick comments (1)
web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md (1)

1-5: 📐 Maintainability & Code Quality | 🔵 Trivial | 🏗️ Heavy lift

Split explanation from API reference and add the required page framing.

This page mixes conceptual explanation with endpoint, payload, result, and legacy reference specifications. Keep one Diataxis quadrant, move reference material to a linked page, list prerequisites first, and add Next Steps.

As per coding guidelines, each page must fit one Diataxis quadrant, list prerequisites at the top, and end with Next Steps.

Also applies to: 70-110, 229-307

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md` around
lines 1 - 5, Restructure the Agent Evaluation documentation to keep this page
focused on conceptual explanation: add a prerequisites section near the top,
move endpoint, payload, result, and legacy specifications into a separate linked
API reference page, and finish with a Next Steps section. Apply the same
separation and framing to the referenced sections while preserving the existing
evaluation guidance.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In
`@web/packages/common/src/components/UploadModal/Context/useUploadModalReducer.ts`:
- Line 55: Update the RESET handling in useUploadModalReducer so the reset state
preserves the existing showUpdatedAt option alongside acceptableFileTypes and
allowNewDataset. Ensure consumers that enabled updated-at timestamps retain that
setting after RESET.

In `@web/packages/studio/public/sample-agents/calculator/eval-config.json`:
- Around line 58-59: Remove the embedded judge model and max_concurrent_tasks
bindings from the reusable evaluation configs. In
web/packages/studio/public/sample-agents/calculator/eval-config.json at lines
58-59 and 88, and
web/packages/studio/public/sample-agents/email-phishing-analyzer/eval-config.json
at lines 167-168 and 198, delete those fields while preserving the surrounding
configuration so submission can inject the selected judge model and effective
concurrency.

In
`@web/packages/studio/public/sample-agents/email-phishing-analyzer/eval-config-dataset.json`:
- Around line 2-10: Update
web/packages/studio/public/sample-agents/email-phishing-analyzer/eval-config-dataset.json
lines 2-10 to remove dataset_file and prompt_template, replacing them with
inline tasks[] entries compatible with agent-evaluate. Update
web/packages/studio/src/api/evaluation/eval-config-fileset.ts lines 27-68 to
replace the seeded react-eval.yml with an agent-evaluate-compatible
configuration using inline tasks[] and an inline metric; do not reference a
dataset, Fileset, or Taskset.

In
`@web/packages/studio/public/sample-agents/email-phishing-analyzer/eval-spec.wip.json`:
- Around line 12-50: Update the eval spec’s metrics configuration, including all
remaining task metric blocks, to use a single root inline metric with type
“llm-judge” instead of per-task “answer_accuracy” metrics. Remove embedded judge
model, target, and concurrency settings from the spec; rely on submission-time
injection for the judge model, agent target, and effective max_concurrent_tasks.

In `@web/packages/studio/src/api/evaluation/agent-evaluations.ts`:
- Around line 236-260: Update the trial-to-score join in the surrounding mapping
logic so scores are matched by trial_id rather than task_id alone. Either return
separate details for each trial or, if retaining one selected trial per task,
filter taskScores to that trial before building scores and diagnostics, ensuring
responseText and attached scores come from the same trial.
- Around line 42-46: Update agentNameForJob to remove only the current job
workspace prefix from the returned agent name before useAgentPanel compares it
with the bare name. Preserve the existing target validation and return null
behavior, and avoid stripping unrelated portions of the agent name.

In `@web/packages/studio/src/api/evaluation/eval-config-fileset.ts`:
- Around line 124-127: Update the catch block in the fileset creation flow to
re-throw every creation error except an explicit HTTP 409 conflict; retain
cancellation propagation and only ignore the confirmed concurrent-creation
conflict, rather than treating 403 or 5xx responses as successful.

In
`@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AgentEvaluationDetailRoute.tsx`:
- Around line 194-202: Replace empty-string fallbacks passed to RelativeTime
with conditional rendering: in
web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AgentEvaluationDetailRoute.tsx
lines 194-202, render each KVPair fallback when created_at or updated_at is
absent; in
web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AgentEvaluationsListRoute.tsx
line 213 and
web/packages/studio/src/components/sidePanels/AgentPanels/AgentPanel/AgentDetailsContent.tsx
line 212, render — instead of RelativeTime when created_at is absent.
- Around line 89-100: Update the result and bundle queries in
AgentEvaluationDetailRoute to use a bounded refetch interval whenever their
respective data is null, allowing newly available artifacts to be discovered
after a terminal job. Stop polling once non-null data is returned, while
preserving the existing query gating and fetch behavior.

In `@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md`:
- Around line 38-53: Update all JSON examples in AGENTS.md, including the shared
metric and task examples, to be valid executable JSON by removing comments and
non-JSON placeholders; use concrete representative values where needed rather
than changing the fences to jsonc. Apply this consistently to the referenced
example sections.
- Line 3: Replace every hardcoded “Studio” product-name reference in AGENTS.md,
including the introductory text and the additional referenced sections, with the
repository’s configured Sphinx product-name substitution. Preserve the existing
wording and formatting aside from using the substitution consistently.

In
`@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/AgentEvalScoresPanel.tsx`:
- Around line 23-40: Update the score rendering in AgentEvalScoresPanel’s
scores.map callback to branch on each score’s score_type. For rubric scores,
render the rubric_distribution and mode_category data in addition to the shared
numeric statistics, while preserving the existing numeric-score rendering. Add
or update a rubric-focused test covering these fields.

In
`@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/SubmitEvaluationModal.tsx`:
- Around line 118-131: Update the MODE_DEFAULT branch in SubmitEvaluationModal
so name collisions are rejected rather than returning the newly selected sample
content after ensureEvalConfigFileset preserves an existing eval-config.json.
Validate that the fileset name is available before submission and surface the
existing validation/error path, or retrieve and return the persisted file
content when the name already exists; ensure the submitted content always
matches the referenced fileset.
- Around line 189-208: Update SubmitEvaluationModal’s submission and validation
flow to derive the metric type from the config being submitted, including
fileset mode, rather than relying only on the preview query. Keep the judge
selector visible and required for llm-judge metrics, block submission while the
metric type/config is unresolved, and inject the selected judge model into the
submitted config at submission time.

In
`@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.ts`:
- Around line 120-129: Update buildAgentEvalRequestBody so
spec.max_concurrent_tasks is injected at submission with an effective value of
1, rather than reading config.max_concurrent_tasks or
DEFAULT_MAX_CONCURRENT_TASKS from the reusable EvalConfig. Keep the remaining
request construction unchanged.
- Around line 132-145: Update parseEvalConfig to fully validate the parsed
EvalConfig before returning it: reject malformed task entries, invalid inline
payload structures, unsupported metric types, and numeric options outside their
allowed bounds. Ensure invalid metric payloads and task definitions fail at this
JSON boundary rather than reaching request construction, while preserving the
existing required non-empty tasks and metric checks.

---

Nitpick comments:
In `@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md`:
- Around line 1-5: Restructure the Agent Evaluation documentation to keep this
page focused on conceptual explanation: add a prerequisites section near the
top, move endpoint, payload, result, and legacy specifications into a separate
linked API reference page, and finish with a Next Steps section. Apply the same
separation and framing to the referenced sections while preserving the existing
evaluation guidance.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2f7fd330-bbcc-4d83-9d1b-e2b8426f41a5

📥 Commits

Reviewing files that changed from the base of the PR and between 425bfdb and 365e6f4.

📒 Files selected for processing (44)
  • plugins/nemo-agents/examples/email-phishing-analyzer/src/nat_email_phishing_analyzer/email-phishing-agent.yml
  • web/packages/common/src/components/DatasetFileSelect/ControlledDatasetFileSelect.tsx
  • web/packages/common/src/components/DatasetFileSelect/DatasetFileSelect.tsx
  • web/packages/common/src/components/UploadModal/Context/useUploadModalReducer.ts
  • web/packages/common/src/components/UploadModal/DatasetUploader/Select.tsx
  • web/packages/common/src/components/UploadModal/InlineUploadPicker.tsx
  • web/packages/common/src/components/UploadModal/types.ts
  • web/packages/studio/public/sample-agents/calculator/eval-config.json
  • web/packages/studio/public/sample-agents/email-phishing-analyzer/agent.yml
  • web/packages/studio/public/sample-agents/email-phishing-analyzer/eval-config-dataset.json
  • web/packages/studio/public/sample-agents/email-phishing-analyzer/eval-config.json
  • web/packages/studio/public/sample-agents/email-phishing-analyzer/eval-spec.wip.json
  • web/packages/studio/src/api/evaluation/agent-evaluations.test.ts
  • web/packages/studio/src/api/evaluation/agent-evaluations.ts
  • web/packages/studio/src/api/evaluation/eval-config-fileset.ts
  • web/packages/studio/src/components/agents/AgentBlockingInput/EvalConfigBlockingInput.test.tsx
  • web/packages/studio/src/components/agents/AgentBlockingInput/EvalConfigBlockingInput.tsx
  • web/packages/studio/src/components/evaluation/JudgeModelSelect.tsx
  • web/packages/studio/src/components/sidePanels/AgentPanels/AgentPanel/AgentDetailsContent.tsx
  • web/packages/studio/src/components/sidePanels/AgentPanels/AgentPanel/index.test.tsx
  • web/packages/studio/src/components/sidePanels/AgentPanels/AgentPanel/useAgentPanel.ts
  • web/packages/studio/src/constants/sampleAgents.test.ts
  • web/packages/studio/src/constants/sampleAgents.ts
  • web/packages/studio/src/mocks/handlers.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AgentEvaluationDetailRoute.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AgentEvaluationsListRoute.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/api.test.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/api.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/AgentEvalScoresPanel.test.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/AgentEvalScoresPanel.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/AgentEvalTaskResultsPanel.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/EvalConfigFilesPanel.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/EvaluatorOutputPanel.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/EvaluatorReasoning.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/SubmitEvaluationModal.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/WorkflowOutputPanel.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.test.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.ts
  • web/packages/studio/src/routes/agents/AgentSuggestionsRoute/api.ts
  • web/packages/studio/src/routes/agents/AgentSuggestionsRoute/constants.ts
  • web/packages/studio/src/routes/agents/AgentSuggestionsRoute/useOptimizerSuggestions.test.tsx
  • web/packages/studio/src/routes/agents/AgentSuggestionsRoute/useOptimizerSuggestions.ts
  • web/packages/studio/src/routes/agents/AgentSuggestionsRoute/utils.ts
💤 Files with no reviewable changes (8)
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/EvaluatorReasoning.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/EvalConfigFilesPanel.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/api.test.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/EvaluatorOutputPanel.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/WorkflowOutputPanel.tsx
  • web/packages/studio/src/routes/agents/AgentSuggestionsRoute/constants.ts
  • web/packages/studio/src/routes/agents/AgentSuggestionsRoute/api.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/api.ts

Comment thread web/packages/studio/src/api/evaluation/agent-evaluations.ts Outdated
@github-actions

github-actions Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor
Suite Lines Covered Line Rate Branch Rate
Unit Tests 26391/34046 77.5% 61.7%
Integration Tests 15162/32671 46.4% 18.6%

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.ts (1)

113-121: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Declare the request-body return contract.

buildAgentEvalRequestBody is an exported API with a cross-layer payload contract, but has no explicit return type. Co-locate a named request-body interface and annotate it.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.ts`
around lines 113 - 121, Define a named interface for the request body returned
by buildAgentEvalRequestBody, colocated with that function, covering the
description field and nested spec payload. Annotate buildAgentEvalRequestBody
with this interface as its explicit return type while preserving the existing
payload construction.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In
`@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.ts`:
- Around line 113-121: Define a named interface for the request body returned by
buildAgentEvalRequestBody, colocated with that function, covering the
description field and nested spec payload. Annotate buildAgentEvalRequestBody
with this interface as its explicit return type while preserving the existing
payload construction.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 8b80d453-524a-47d4-b01b-0286c024b2b3

📥 Commits

Reviewing files that changed from the base of the PR and between 365e6f4 and 8008ddd.

📒 Files selected for processing (8)
  • plugins/nemo-agents/examples/email-phishing-analyzer/src/nat_email_phishing_analyzer/email-phishing-agent.yml
  • web/packages/common/src/components/UploadModal/Context/useUploadModalReducer.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/AgentEvalScoresPanel.test.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/AgentEvalScoresPanel.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/SubmitEvaluationModal.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.test.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.ts
💤 Files with no reviewable changes (1)
  • plugins/nemo-agents/examples/email-phishing-analyzer/src/nat_email_phishing_analyzer/email-phishing-agent.yml
🚧 Files skipped from review as they are similar to previous changes (3)
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/AgentEvalScoresPanel.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/SubmitEvaluationModal.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.test.ts (1)

19-51: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Rename module fixtures to SCREAMING_SNAKE_CASE.

metric and config are constants and violate the project naming rule.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.test.ts`
around lines 19 - 51, Rename the module-level fixtures `metric` and `config` to
`SCREAMING_SNAKE_CASE` constants, updating every reference including
`configWithBakedJudge` and any test usages while preserving their values and
behavior.

Source: Coding guidelines

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In
`@web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.test.ts`:
- Around line 19-51: Rename the module-level fixtures `metric` and `config` to
`SCREAMING_SNAKE_CASE` constants, updating every reference including
`configWithBakedJudge` and any test usages while preserving their values and
behavior.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 43942fb8-5343-4875-81e5-a0975dc247c1

📥 Commits

Reviewing files that changed from the base of the PR and between 8008ddd and a6a00f9.

📒 Files selected for processing (4)
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/SubmitEvaluationModal.tsx
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.test.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/AGENTS.md
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/submitEvaluationSpec.ts
  • web/packages/studio/src/routes/agents/AgentEvaluationsRoute/components/SubmitEvaluationModal.tsx

@nv-odrulea
nv-odrulea force-pushed the od/agent-evals-refactor-evaluator branch from a6a00f9 to 5d5a07f Compare July 20, 2026 21:54
Comment thread web/packages/studio/public/sample-agents/email-phishing-analyzer/agent.yml Outdated
Comment thread web/packages/studio/src/api/evaluation/agent-evaluations.ts Outdated
Comment thread web/packages/studio/src/api/evaluation/agent-evaluations.ts
Comment thread web/packages/studio/src/api/evaluation/agent-evaluations.ts Outdated
Comment thread web/packages/studio/src/mocks/handlers.ts Outdated
Signed-off-by: Octavian Drulea <odrulea@nvidia.com>
Signed-off-by: Octavian Drulea <odrulea@nvidia.com>
Signed-off-by: Octavian Drulea <odrulea@nvidia.com>
Signed-off-by: Octavian Drulea <odrulea@nvidia.com>
Signed-off-by: Octavian Drulea <odrulea@nvidia.com>
Signed-off-by: Octavian Drulea <odrulea@nvidia.com>
Signed-off-by: Octavian Drulea <odrulea@nvidia.com>
Signed-off-by: Octavian Drulea <odrulea@nvidia.com>
@nv-odrulea
nv-odrulea force-pushed the od/agent-evals-refactor-evaluator branch from 5e5eab8 to 6a6555c Compare July 21, 2026 20:18
@nv-odrulea
nv-odrulea enabled auto-merge July 21, 2026 20:19
@nv-odrulea
nv-odrulea added this pull request to the merge queue Jul 21, 2026
Merged via the queue into main with commit 7c6ceb9 Jul 21, 2026
57 of 58 checks passed
@nv-odrulea
nv-odrulea deleted the od/agent-evals-refactor-evaluator branch July 21, 2026 20:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants