@netlify/axis 1.14.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Netlify
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,18 +1,28 @@
1
- # AXIS - Agent Experience Index Score
2
-
3
- Full documentation lives at **https://axis.run**:
4
-
5
- AXIS is a synthetic testing framework for measuring how well systems support AI agent interaction. Think [Lighthouse](https://developer.chrome.com/docs/lighthouse), but instead of scoring user experience, AXIS scores **agent experience**.
6
-
7
- Given a scenario, an agent, and a prompt, AXIS runs the agent, captures a full transcript of the interaction, and produces a graded score across four independent dimensions: Goal Achievement, Environment, Service, and Agent.
1
+ <div align="center">
2
+ <a href="https://axis.run">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/76547bab-3a2e-498a-b556-99c58b3c553b">
5
+ <img alt="AXIS logo" src="https://github.com/user-attachments/assets/76547bab-3a2e-498a-b556-99c58b3c553b" height="128">
6
+ </picture>
7
+ </a>
8
+ <h1>AXIS — Agent Experience Index Score</h1>
9
+ <a href="https://www.npmjs.com/package/@netlify/axis"><img alt="NPM version" src="https://img.shields.io/npm/v/@netlify/axis?style=for-the-badge&labelColor=000000"></a>
10
+ <a href="https://github.com/netlify/axis/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/netlify/axis?style=for-the-badge&labelColor=000000"></a>
11
+ <a href="https://github.com/netlify/axis/issues"><img alt="Contribute" src="https://img.shields.io/badge/CONTRIBUTE-blueviolet.svg?style=for-the-badge&labelColor=000000"></a>
12
+ </div>
13
+ <br />
14
+
15
+ AXIS is an open source tooling and a scoring framework to measure how well services work for AI agents. Think [Lighthouse](https://developer.chrome.com/docs/lighthouse), but for agent experience.
16
+
17
+ Give AXIS a scenario, an agent, and a prompt. It runs the agent, captures a full transcript, and produces a graded score across four independent dimensions: Goal Achievement, Environment, Service, and Agent.
8
18
 
9
19
  ## Why AXIS
10
20
 
11
- The web has Lighthouse. APIs have contract testing. Performance has k6. But there's no standardized way to answer: _"How well does my system work when an AI agent tries to use it?"_
21
+ The web has Lighthouse. APIs have contract testing. Performance has k6. But there's no standardized way to answer: "How well does my system work when an AI agent tries to use it?".
12
22
 
13
- As agents become a primary interface for interacting with websites, APIs, and developer platforms, the systems they interact with need to be measured and optimized for that experience, just like we optimize for page load time or accessibility.
23
+ As agents become a primary interface for interacting with sites, APIs, and developer platforms, the systems they interact with need to be measured and optimized for that experience just like we optimize for page load time or accessibility. AXIS is that measurement.
14
24
 
15
- ## Quick Start
25
+ ## Quick start
16
26
 
17
27
  ```bash
18
28
  npm install @netlify/axis
@@ -31,7 +41,7 @@ npm install @netlify/axis
31
41
 
32
42
  ```json
33
43
  {
34
- "name": "Hello World",
44
+ "name": "Hello world",
35
45
  "prompt": "Navigate to https://example.com and describe what you see on the page.",
36
46
  "judge": [
37
47
  { "check": "Agent visited the target URL", "weight": 0.5 },
@@ -48,29 +58,17 @@ AXIS executes the scenario, scores the result, and writes a report to `.axis/rep
48
58
 
49
59
  ## Documentation
50
60
 
51
- Full documentation lives at **https://axis.run**:
61
+ Full documentation lives at **[axis.run](https://axis.run)**:
52
62
 
53
- - [Overview](https://axis.run/) - what AXIS measures and why
54
- - [Quick Start](https://axis.run/quickstart) - install through your first scored run
63
+ - [Quick start](https://axis.run/quickstart) - install through your first scored run
55
64
  - [Configuration](https://axis.run/configuration) - `axis.config.json`, scenarios, MCP servers, skills
56
- - [CLI Reference](https://axis.run/cli) - `axis run`, `axis reports`, `axis baseline`
57
- - [Running Tests](https://axis.run/running) - execution model, workspace isolation, custom adapters, CI integration
58
- - [Scoring Framework](https://axis.run/scoring) - the four dimensions, signals, calibration
65
+ - [CLI reference](https://axis.run/cli) - `axis run`, `axis reports`, `axis baseline`
66
+ - [Running tests](https://axis.run/running) - execution model, workspace isolation, custom adapters, CI integration
67
+ - [Scoring framework](https://axis.run/scoring) - the four dimensions, signals, calibration
59
68
 
60
69
  ## Programmatic API
61
70
 
62
- `@netlify/axis` exports its core functionality for use as a library:
63
-
64
- ```typescript
65
- import { run, scoreResults } from "@netlify/axis";
66
-
67
- const output = await run({ configPath: "axis.config.json" });
68
- const scored = await scoreResults(output);
69
-
70
- console.log(`Average AXIS Result: ${scored.summary.averageAxisScore}`);
71
- ```
72
-
73
- The package also exports `loadConfig`, `discoverScenarios`, `setBaseline`, `compareBaseline`, `createAgentAdapter`, `registerAdapter`, and the underlying scoring primitives (`buildSparseIndex`, `categorizeInteraction`, `normalizeTranscript`). See [`src/index.ts`](./src/index.ts) for the full surface.
71
+ Use the programmatic API when you want to integrate AXIS into an existing test runner, build tool, or CI pipeline rather than calling the CLI directly.
74
72
 
75
73
  ## Roadmap
76
74
 
@@ -79,7 +77,22 @@ Delivered: scenario runner, four-dimension scoring pipeline, baselines with regr
79
77
  Planned:
80
78
 
81
79
  - **Historical trending** - score regression detection over time
82
- - **AXIS Badge** - embeddable score badge for READMEs
80
+ - **AXIS badge** - embeddable score badge for READMEs
83
81
  - **Configurable judge** - separate adapter/model for scoring, independent of the agent under test
84
82
  - **Score thresholds** - CI gating with configurable pass/fail thresholds
85
83
  - **Human interruption detection** - penalize agent requests for human intervention
84
+
85
+ ## Contributing
86
+
87
+ AXIS is built in the open. Contributions are welcome. New scenarios, agent adapters,
88
+ bug fixes, and documentation improvements all help.
89
+ <br />
90
+ <br />
91
+
92
+ ---
93
+
94
+ AXIS is open source under the MIT license, created by [Netlify](https://www.netlify.com)
95
+ and developed with founding contributors including [Auth0](https://auth0.com) and
96
+ [Resend](https://resend.com).
97
+
98
+ Full docs: [axis.run](https://axis.run)
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStatus.d.ts","sourceRoot":"","sources":["../../src/ui/LiveStatus.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKnD,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,YAAgB,EAAE,EAAE,eAAe,2CA2CrE"}
1
+ {"version":3,"file":"LiveStatus.d.ts","sourceRoot":"","sources":["../../src/ui/LiveStatus.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAKnD,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAQD,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,YAAgB,EAAE,EAAE,eAAe,2CA8CrE"}
@@ -1,23 +1,43 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Box, Text } from "ink";
3
3
  import { getBaseKey, getVariantName, STATUS_ICONS, STATUS_LABELS } from "./format.js";
4
4
  import { AnimatedTokens } from "./AnimatedTokens.js";
5
5
  import { LiveDuration } from "./LiveDuration.js";
6
+ /** A job is "active" when it's mid-flight — counts toward the live scenario list. */
7
+ function isActive(job) {
8
+ if (job.inTeardown)
9
+ return true;
10
+ return job.status === "setup" || job.status === "running" || job.status === "teardown" || job.status === "scoring";
11
+ }
6
12
  export function LiveStatus({ jobs, skippedCount = 0 }) {
7
13
  const done = jobs.filter((j) => j.status === "done").length;
8
14
  const failed = jobs.filter((j) => j.status === "failed").length;
15
+ const pending = jobs.filter((j) => j.status === "pending").length;
9
16
  const scoring = jobs.filter((j) => j.status === "scoring").length;
10
17
  const tearingDown = jobs.filter((j) => j.inTeardown).length;
11
18
  const total = jobs.length;
12
- const scenarios = groupByScenario(jobs);
13
- const scenarioCount = scenarios.length;
19
+ const scenarioCount = new Set(jobs.map((j) => getBaseKey(j.scenarioKey))).size;
14
20
  const agentCount = new Set(jobs.map((j) => j.agentName)).size;
21
+ const activeScenarios = groupByScenario(jobs.filter(isActive));
15
22
  const allFinished = done + failed === total && total > 0;
16
23
  const scoredJobs = jobs.filter((j) => j.axisScore !== undefined);
17
24
  const avgScore = scoredJobs.length > 0 ? Math.round(scoredJobs.reduce((sum, j) => sum + j.axisScore, 0) / scoredJobs.length) : null;
18
- return (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, children: [_jsx(Text, { children: " " }), _jsxs(Text, { bold: true, children: ["AXIS \u2014 ", scenarioCount, " scenario", scenarioCount !== 1 ? "s" : "", " \u00B7 ", agentCount, " agent", agentCount !== 1 ? "s" : ""] }), _jsx(Text, { children: "─".repeat(50) }), scenarios.map(({ scenarioKey, agents }) => (_jsx(ScenarioGroup, { scenarioKey: scenarioKey, agents: agents }, scenarioKey))), _jsx(Text, { children: "─".repeat(50) }), allFinished && avgScore !== null ? (_jsxs(Text, { bold: true, children: ["Average AXIS Result: ", avgScore, " / 100"] })) : (_jsxs(Text, { children: [done + failed, "/", total, " complete", scoring > 0 ? ` · scoring ${scoring} result${scoring !== 1 ? "s" : ""}…` : "", tearingDown > 0
19
- ? ` · tearing down ${tearingDown} scenario${tearingDown !== 1 ? "s" : ""}…`
20
- : ""] })), skippedCount > 0 ? _jsxs(Text, { dimColor: true, children: [skippedCount, " marked to be skipped"] }) : null, _jsx(Text, { children: " " })] }));
25
+ return (_jsxs(Box, { flexDirection: "column", paddingLeft: 2, children: [_jsx(Text, { children: " " }), _jsxs(Text, { bold: true, children: ["AXIS \u2014 ", scenarioCount, " scenario", scenarioCount !== 1 ? "s" : "", " \u00B7 ", agentCount, " agent", agentCount !== 1 ? "s" : ""] }), _jsx(Text, { children: "─".repeat(50) }), activeScenarios.length > 0 ? (activeScenarios.map(({ scenarioKey, agents }) => (_jsx(ScenarioGroup, { scenarioKey: scenarioKey, agents: agents }, scenarioKey)))) : allFinished ? null : (_jsxs(_Fragment, { children: [_jsx(Text, { dimColor: true, children: "Waiting for scenarios to start\u2026" }), _jsx(Text, { children: " " })] })), _jsx(Text, { children: "─".repeat(50) }), allFinished && avgScore !== null ? (_jsxs(Text, { bold: true, children: ["Average AXIS Result: ", avgScore, " / 100"] })) : (_jsx(Text, { children: formatProgress({ done, failed, pending, total, scoring, tearingDown }) })), skippedCount > 0 ? _jsxs(Text, { dimColor: true, children: [skippedCount, " marked to be skipped"] }) : null, _jsx(Text, { children: " " })] }));
26
+ }
27
+ function formatProgress(counts) {
28
+ const { done, failed, pending, total, scoring, tearingDown } = counts;
29
+ const parts = [`${done + failed}/${total} complete`];
30
+ if (done > 0)
31
+ parts.push(`${done} passed`);
32
+ if (failed > 0)
33
+ parts.push(`${failed} failed`);
34
+ if (pending > 0)
35
+ parts.push(`${pending} pending`);
36
+ if (scoring > 0)
37
+ parts.push(`scoring ${scoring}…`);
38
+ if (tearingDown > 0)
39
+ parts.push(`tearing down ${tearingDown}…`);
40
+ return parts.join(" · ");
21
41
  }
22
42
  function ScenarioGroup({ scenarioKey, agents }) {
23
43
  return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { bold: true, children: scenarioKey }), agents.map((job) => (_jsx(AgentRow, { job: job }, `${job.scenarioKey}:${job.agentName}`))), _jsx(Text, { children: " " })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"LiveStatus.js","sourceRoot":"","sources":["../../src/ui/LiveStatus.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LiveStatus.js","sourceRoot":"","sources":["../../src/ui/LiveStatus.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,8 +3,9 @@
3
3
  "workspaces": [
4
4
  "src/docs-site"
5
5
  ],
6
- "version": "1.14.0",
7
- "description": "Agent Experience Index Score synthetic testing for AI agent interaction",
6
+ "version": "1.15.0",
7
+ "description": "Open source tooling and scoring framework to measure how well services work for AI agents.",
8
+ "license": "MIT",
8
9
  "type": "module",
9
10
  "main": "./dist/index.js",
10
11
  "types": "./dist/index.d.ts",