Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/cli/src/commands/results/report-template.ts

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions apps/cli/src/commands/results/studio-config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* config.yaml format:
* required_version: ">=4.2.0"
* dashboard:
* app_name: agentv # displayed in the Dashboard shell
* app_name: AgentV # displayed in the Dashboard shell
* threshold: 0.8 # score >= this value is considered "pass"
*
* Backward compat: reads `studio.threshold`, `studio.pass_threshold`, and
Expand Down Expand Up @@ -41,7 +41,7 @@ export interface StudioConfig {

const DEFAULTS: StudioConfig = {
threshold: DEFAULT_THRESHOLD,
appName: 'agentv',
appName: 'AgentV',
};

/**
Expand Down
2 changes: 1 addition & 1 deletion apps/cli/test/commands/results/report.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ describe('results report', () => {
expect(html).toContain('regex');
expect(html).toContain('AgentV Evaluation Report');
expect(html).toContain('class="brand-wordmark" aria-label="AgentV"');
expect(html).toContain('class="brand-middle" aria-hidden="true">GENT</span>');
expect(html).toContain('class="brand-middle" aria-hidden="true">gent</span>');
expect(html).not.toContain('<th>Progress</th>');
expect(html).not.toContain('metric-stack');
expect(html).toContain('<span class="pass-rate-track">');
Expand Down
12 changes: 6 additions & 6 deletions apps/cli/test/commands/results/studio-config.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ describe('loadStudioConfig', () => {
it('returns defaults when no config.yaml exists', () => {
const config = loadStudioConfig(tempDir);
expect(config.threshold).toBe(DEFAULT_THRESHOLD);
expect(config.appName).toBe('agentv');
expect(config.appName).toBe('AgentV');
});

it.each([
Expand Down Expand Up @@ -69,7 +69,7 @@ describe('loadStudioConfig', () => {

it('ignores blank dashboard.app_name', () => {
writeFileSync(path.join(tempDir, 'config.yaml'), 'dashboard:\n app_name: " "\n');
expect(loadStudioConfig(tempDir).appName).toBe('agentv');
expect(loadStudioConfig(tempDir).appName).toBe('AgentV');
});

it('falls back to global config.yaml for dashboard settings', () => {
Expand Down Expand Up @@ -196,7 +196,7 @@ describe('saveStudioConfig', () => {
path.join(tempDir, 'config.yaml'),
'required_version: ">=4.2.0"\npass_threshold: 0.8\ndashboard:\n pass_threshold: 0.6\nstudio:\n theme: dark\n pass_threshold: 0.5\n',
);
saveStudioConfig(tempDir, { threshold: 0.7, appName: 'agentv' });
saveStudioConfig(tempDir, { threshold: 0.7, appName: 'AgentV' });

const raw = readFileSync(path.join(tempDir, 'config.yaml'), 'utf-8');
const parsed = parseYaml(raw) as Record<string, unknown>;
Expand All @@ -207,12 +207,12 @@ describe('saveStudioConfig', () => {
expect(dashboard.theme).toBe('dark');
expect(dashboard.pass_threshold).toBeUndefined();
expect(dashboard.threshold).toBe(0.7);
expect(dashboard.app_name).toBe('agentv');
expect(dashboard.app_name).toBe('AgentV');
expect(dashboard.appName).toBeUndefined();
});

it('creates config.yaml when it does not exist', () => {
saveStudioConfig(tempDir, { threshold: 0.6, appName: 'agentv' });
saveStudioConfig(tempDir, { threshold: 0.6, appName: 'AgentV' });

const raw = readFileSync(path.join(tempDir, 'config.yaml'), 'utf-8');
const parsed = parseYaml(raw) as Record<string, unknown>;
Expand All @@ -221,7 +221,7 @@ describe('saveStudioConfig', () => {

it('creates directory if it does not exist', () => {
const nestedDir = path.join(tempDir, 'nested', '.agentv');
saveStudioConfig(nestedDir, { threshold: 0.5, appName: 'agentv' });
saveStudioConfig(nestedDir, { threshold: 0.5, appName: 'AgentV' });

const raw = readFileSync(path.join(nestedDir, 'config.yaml'), 'utf-8');
const parsed = parseYaml(raw) as Record<string, unknown>;
Expand Down
2 changes: 1 addition & 1 deletion apps/dashboard/src/components/BrandName.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ export function BrandName({ appName }: { appName: string }) {
A
</span>
<span className="av-brand-name__middle" aria-hidden="true">
GENT
gent
</span>
<span className="av-brand-name__letter" aria-hidden="true">
V
Expand Down
2 changes: 1 addition & 1 deletion apps/dashboard/src/lib/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ export function useRemoteStatus(projectId?: string) {

/** Default pass threshold matching @agentv/core DEFAULT_THRESHOLD */
export const DEFAULT_PASS_THRESHOLD = 0.8;
export const DEFAULT_APP_NAME = 'agentv';
export const DEFAULT_APP_NAME = 'AgentV';

export function isPassing(score: number, passThreshold: number = DEFAULT_PASS_THRESHOLD): boolean {
return score >= passThreshold;
Expand Down
2 changes: 1 addition & 1 deletion apps/web/src/components/BrandWordmark.astro
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const className = Astro.props.class;

<span class:list={['av-brand-wordmark', className]} aria-label="AgentV" translate="no">
<span class="av-brand-wordmark__letter" aria-hidden="true">A</span>
<span class="av-brand-wordmark__middle" aria-hidden="true">GENT</span>
<span class="av-brand-wordmark__middle" aria-hidden="true">gent</span>
<span class="av-brand-wordmark__letter" aria-hidden="true">V</span>
</span>

Expand Down
7 changes: 3 additions & 4 deletions apps/web/src/components/Lander.astro
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,9 @@ import BrandWordmark from './BrandWordmark.astro';
<div class="av-line av-line-out av-line-delay-4"><span class="av-fail">FAIL</span> division <span class="av-dim">score: 0.4</span></div>
<div class="av-line av-line-out av-line-delay-5"><span class="av-dim">Results:</span> <span class="av-pass">2 passed</span> <span class="av-fail">1 failed</span></div>
</div>
<!-- Scene 2: agentv compare -->
<!-- Scene 2: agentv results compare -->
<div class="av-scene av-scene-2">
<div class="av-line av-line-cmd"><span class="av-prompt">$</span> <span class="av-typing">agentv compare run-a run-b</span></div>
<div class="av-line av-line-cmd"><span class="av-prompt">$</span> <span class="av-typing">agentv results compare run-a run-b</span></div>
<div class="av-line av-line-out av-line-delay-1"><span class="av-dim">Comparing 2 runs...</span></div>
<div class="av-line av-line-out av-line-delay-2">correctness <span class="av-pass">+12.5%</span> <span class="av-dim">(0.72 -> 0.81)</span></div>
<div class="av-line av-line-out av-line-delay-3">latency <span class="av-pass"> -340ms</span> <span class="av-dim">(1.2s -> 0.86s)</span></div>
Expand Down Expand Up @@ -184,8 +184,7 @@ import BrandWordmark from './BrandWordmark.astro';
<div class="av-mini-terminal">
<div class="av-mini-bar"><span class="av-mini-dots"></span></div>
<pre><code>{`description: Math evaluation
execution:
target: default
target: default

tests:
- id: addition
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ system:
last_reviewed: 2026-04-24
```

The full example, including comments, is in the agentv repo at
The full example, including comments, is in the AgentV repo at
`examples/governance/ai-register/.ai-register.yaml`.

### Why these fields
Expand All @@ -71,7 +71,7 @@ The full example, including comments, is in the agentv repo at
exercised by its evals.
- **`last_reviewed`** — a date. Aggregators flag entries older than
whatever cadence your governance team works to.
- **`evals.path`** — a pointer to the agentv evals that exercise this
- **`evals.path`** — a pointer to the AgentV evals that exercise this
system. The aggregator does not run them; it just records that they exist.

## Aggregating across the org
Expand Down Expand Up @@ -111,7 +111,7 @@ That's the whole loop.

## Relationship to evaluation

agentv does not parse `.ai-register.yaml`. The convention is **orthogonal**:
AgentV does not parse `.ai-register.yaml`. The convention is **orthogonal**:

- The manifest documents **which AI systems exist**, who owns them, and
which controls they are accountable for.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ On Windows, the drive type materially affects file-write throughput during check

[Windows Dev Drive](https://learn.microsoft.com/en-us/windows/dev-drive/) uses the Resilient File System (ReFS) with a performance mode that reduces antivirus filter overhead for developer workloads. If you evaluate large repos frequently, relocating `~/.agentv` to a Dev Drive volume can meaningfully reduce per-run setup time.

To relocate the agentv home directory, set `HOME` or `USERPROFILE` to point to the Dev Drive path before running `agentv eval`:
To relocate the AgentV home directory, set `HOME` or `USERPROFILE` to point to the Dev Drive path before running `agentv eval`:

```powershell
$env:USERPROFILE = "D:\Users\$env:USERNAME"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ system:
last_reviewed: 2026-04-24
```

The full example, including comments, is in the agentv repo at
The full example, including comments, is in the AgentV repo at
`examples/governance/ai-register/.ai-register.yaml`.

### Why these fields
Expand All @@ -74,7 +74,7 @@ The full example, including comments, is in the agentv repo at
exercised by its evals.
- **`last_reviewed`** — a date. Aggregators flag entries older than
whatever cadence your governance team works to.
- **`evals.path`** — a pointer to the agentv evals that exercise this
- **`evals.path`** — a pointer to the AgentV evals that exercise this
system. The aggregator does not run them; it just records that they exist.

## Aggregating across the org
Expand Down Expand Up @@ -114,7 +114,7 @@ That's the whole loop.

## Relationship to evaluation

agentv does not parse `.ai-register.yaml`. The convention is **orthogonal**:
AgentV does not parse `.ai-register.yaml`. The convention is **orthogonal**:

- The manifest documents **which AI systems exist**, who owns them, and
which controls they are accountable for.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ On Windows, the drive type materially affects file-write throughput during check

[Windows Dev Drive](https://learn.microsoft.com/en-us/windows/dev-drive/) uses the Resilient File System (ReFS) with a performance mode that reduces antivirus filter overhead for developer workloads. If you evaluate large repos frequently, relocating `~/.agentv` to a Dev Drive volume can meaningfully reduce per-run setup time.

To relocate the agentv home directory, set `HOME` or `USERPROFILE` to point to the Dev Drive path before running `agentv eval`:
To relocate the AgentV home directory, set `HOME` or `USERPROFILE` to point to the Dev Drive path before running `agentv eval`:

```powershell
$env:USERPROFILE = "D:\Users\$env:USERNAME"
Expand Down
8 changes: 4 additions & 4 deletions examples/governance/ai-register/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,16 +51,16 @@ manifest and the aggregator workflow file.
| `limitations` | NIST RMF MEASURE-1.1; EU AI Act Annex IV §2 | Known failure modes and out-of-scope uses |
| `human_oversight` | EU AI Act Art. 14; NIST RMF GOVERN-4 | Required for `risk_tier: high`. Document override authority and escalation triggers |
| `models[]` | — | Versioned model identifiers so auditors can reconstruct which model was running at any point in time |
| `evals.path` | — | Path to agentv evals that exercise this system |
| `evals.path` | — | Path to AgentV evals that exercise this system |
| `controls[]` | — | `<FRAMEWORK>-<VERSION>:<ID>` strings; same format as eval result JSONL |
| `last_reviewed` | NIST RMF GOVERN-1.3; ISO 42001 Clause 7 | Aggregators flag entries older than your governance cadence (90 days typical) |

## Why this stays out of agentv core
## Why this stays out of AgentV core

agentv does not parse `.ai-register.yaml`. The convention is deliberately
AgentV does not parse `.ai-register.yaml`. The convention is deliberately
free-standing: if you later adopt a governance platform (Credo AI, OneTrust,
ServiceNow AI Control Tower, IBM watsonx.governance), these manifests are
your import source — not a thing you need to migrate away from.

If the convention grows, that growth happens in conversation between teams
adopting it; agentv stays lightweight.
adopting it; AgentV stays lightweight.
2 changes: 1 addition & 1 deletion examples/red-team/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Opt-in adversarial eval suites tagged against public AI-safety taxonomies. Copy
this directory into your own repo, point a target at it, and you have a starting
red-team baseline drawn from the corpora the field has converged on.

## How this fits agentv design
## How this fits AgentV design

This pack is **content, not core**. There are no changes to `packages/core` or
`apps/cli`; the suites compose existing primitives — `llm-rubric`,
Expand Down
2 changes: 1 addition & 1 deletion examples/showcase/bug-fix-benchmark/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ agentv results compare \

## Test Case: Issue #912

The eval includes a real bug from the agentv repo:
The eval includes a real bug from the AgentV repo:

- **Issue**: [#912 — CLI provider retries don't preserve workspace cwd](https://github.com/EntityProcess/agentv/issues/912)
- **Base commit**: `6e446b72` (before the fix)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ tags: [ coding, bugfix, benchmark, swe-bench ]

tests:
# Issue #912: CLI provider retries don't preserve workspace cwd
# A real bug from the agentv repo. The fix is in packages/core/src/evaluation/providers/cli.ts
# A real bug from the AgentV repo. The fix is in packages/core/src/evaluation/providers/cli.ts
# where invokeBatch() uses this.config.cwd instead of request.cwd.
#
# This is the same task that was used in the hivespec session:
Expand Down
2 changes: 1 addition & 1 deletion examples/showcase/cross-repo-sync/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Evaluates whether a coding agent can keep two public repos in sync after one cha

## Scenario

When **agentv** (EntityProcess/agentv) ships a feature, the **agentevals** (agentevals/agentevals) spec docs must be updated to reflect the change. This eval measures how well an agent handles that cross-repo synchronization.
When **AgentV** (EntityProcess/agentv) ships a feature, the **agentevals** (agentevals/agentevals) spec docs must be updated to reflect the change. This eval measures how well an agent handles that cross-repo synchronization.

## Workspace Features Demonstrated

Expand Down
8 changes: 4 additions & 4 deletions examples/showcase/cross-repo-sync/evals/suite.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name: cross-repo-sync
description: Evaluate agent ability to sync agentv implementation with agentevals spec
description: Evaluate agent ability to sync AgentV implementation with agentevals spec
version: "1.0"
tags: [ showcase, workspace, cross-repo ]

Expand All @@ -25,7 +25,7 @@ tests:
input:
- role: user
content: |
agentv just merged eval spec v2 (PR #262). Update the agentevals
AgentV just merged eval spec v2 (PR #262). Update the agentevals
spec docs to reflect: 4 new deterministic assertion types, required
gates, assert field at test/suite level, tests-as-string-path.
assert:
Expand All @@ -48,7 +48,7 @@ tests:
input:
- role: user
content: |
agentv renamed cases→tests in the eval schema (PR #240).
AgentV renamed cases→tests in the eval schema (PR #240).
Update all agentevals spec docs to match.
assert:
- metric: sync-check
Expand All @@ -68,7 +68,7 @@ tests:
input:
- role: user
content: |
agentv renamed schema fields: eval_cases→cases, expected_outcome→criteria
AgentV renamed schema fields: eval_cases→cases, expected_outcome→criteria
at case level, expected_outcome→outcome at rubric level (PR #202).
Update agentevals spec docs accordingly.
assert:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Key docs paths:

### agentv/ (EntityProcess/agentv)
TypeScript/Bun evaluation framework. Reference implementation of the agentevals spec.
Source of truth — when agentv ships features, the agentevals spec must be updated.
Source of truth — when AgentV ships features, the agentevals spec must be updated.

Key source paths:
- `packages/core/src/evaluation/types.ts`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Cross-Repo Sync

Synchronize agentevals spec docs when agentv implementation changes.
Synchronize agentevals spec docs when AgentV implementation changes.

## Process

1. **Read the prompt** to understand what changed in agentv
2. **Examine the agentv checkout** to see the actual implementation changes
1. **Read the prompt** to understand what changed in AgentV
2. **Examine the AgentV checkout** to see the actual implementation changes
3. **Find corresponding spec/docs files** in the agentevals checkout
4. **Make updates** preserving existing Starlight/MDX conventions

Expand Down
Loading