@netlify/axis 1.5.0 → 1.6.1
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/README.md +1 -1
- package/dist/adapters/auggie.d.ts +8 -0
- package/dist/adapters/auggie.d.ts.map +1 -0
- package/dist/adapters/auggie.js +15 -0
- package/dist/adapters/auggie.js.map +1 -0
- package/dist/adapters/blackbox.d.ts +7 -0
- package/dist/adapters/blackbox.d.ts.map +1 -0
- package/dist/adapters/blackbox.js +14 -0
- package/dist/adapters/blackbox.js.map +1 -0
- package/dist/adapters/cline.d.ts +8 -0
- package/dist/adapters/cline.d.ts.map +1 -0
- package/dist/adapters/cline.js +14 -0
- package/dist/adapters/cline.js.map +1 -0
- package/dist/adapters/codex-sdk.d.ts +12 -0
- package/dist/adapters/codex-sdk.d.ts.map +1 -0
- package/dist/adapters/codex-sdk.js +18 -0
- package/dist/adapters/codex-sdk.js.map +1 -0
- package/dist/adapters/copilot.d.ts +11 -0
- package/dist/adapters/copilot.d.ts.map +1 -0
- package/dist/adapters/copilot.js +17 -0
- package/dist/adapters/copilot.js.map +1 -0
- package/dist/adapters/cursor-agent.d.ts +11 -0
- package/dist/adapters/cursor-agent.d.ts.map +1 -0
- package/dist/adapters/cursor-agent.js +18 -0
- package/dist/adapters/cursor-agent.js.map +1 -0
- package/dist/adapters/factory-droid.d.ts +11 -0
- package/dist/adapters/factory-droid.d.ts.map +1 -0
- package/dist/adapters/factory-droid.js +17 -0
- package/dist/adapters/factory-droid.js.map +1 -0
- package/dist/adapters/fast-agent.d.ts +9 -0
- package/dist/adapters/fast-agent.d.ts.map +1 -0
- package/dist/adapters/fast-agent.js +14 -0
- package/dist/adapters/fast-agent.js.map +1 -0
- package/dist/adapters/gemini.d.ts +8 -0
- package/dist/adapters/gemini.d.ts.map +1 -1
- package/dist/adapters/gemini.js +30 -192
- package/dist/adapters/gemini.js.map +1 -1
- package/dist/adapters/kilo.d.ts +7 -0
- package/dist/adapters/kilo.d.ts.map +1 -0
- package/dist/adapters/kilo.js +13 -0
- package/dist/adapters/kilo.js.map +1 -0
- package/dist/adapters/kimi.d.ts +9 -0
- package/dist/adapters/kimi.d.ts.map +1 -0
- package/dist/adapters/kimi.js +15 -0
- package/dist/adapters/kimi.js.map +1 -0
- package/dist/adapters/kiro-cli.d.ts +8 -0
- package/dist/adapters/kiro-cli.d.ts.map +1 -0
- package/dist/adapters/kiro-cli.js +14 -0
- package/dist/adapters/kiro-cli.js.map +1 -0
- package/dist/adapters/mistral-vibe.d.ts +8 -0
- package/dist/adapters/mistral-vibe.d.ts.map +1 -0
- package/dist/adapters/mistral-vibe.js +14 -0
- package/dist/adapters/mistral-vibe.js.map +1 -0
- package/dist/adapters/opencode.d.ts +13 -0
- package/dist/adapters/opencode.d.ts.map +1 -0
- package/dist/adapters/opencode.js +19 -0
- package/dist/adapters/opencode.js.map +1 -0
- package/dist/adapters/openhands.d.ts +8 -0
- package/dist/adapters/openhands.d.ts.map +1 -0
- package/dist/adapters/openhands.js +14 -0
- package/dist/adapters/openhands.js.map +1 -0
- package/dist/adapters/poolside.d.ts +7 -0
- package/dist/adapters/poolside.d.ts.map +1 -0
- package/dist/adapters/poolside.js +14 -0
- package/dist/adapters/poolside.js.map +1 -0
- package/dist/adapters/qoder.d.ts +7 -0
- package/dist/adapters/qoder.d.ts.map +1 -0
- package/dist/adapters/qoder.js +14 -0
- package/dist/adapters/qoder.js.map +1 -0
- package/dist/adapters/qwen-code.d.ts +15 -0
- package/dist/adapters/qwen-code.d.ts.map +1 -0
- package/dist/adapters/qwen-code.js +53 -0
- package/dist/adapters/qwen-code.js.map +1 -0
- package/dist/adapters/registry.d.ts.map +1 -1
- package/dist/adapters/registry.js +38 -2
- package/dist/adapters/registry.js.map +1 -1
- package/dist/adapters/stakpak.d.ts +8 -0
- package/dist/adapters/stakpak.d.ts.map +1 -0
- package/dist/adapters/stakpak.js +14 -0
- package/dist/adapters/stakpak.js.map +1 -0
- package/dist/adapters/utils/mcp.d.ts +0 -11
- package/dist/adapters/utils/mcp.d.ts.map +1 -1
- package/dist/adapters/utils/mcp.js +0 -41
- package/dist/adapters/utils/mcp.js.map +1 -1
- package/dist/adapters/utils/resolve.d.ts.map +1 -1
- package/dist/adapters/utils/resolve.js +7 -1
- package/dist/adapters/utils/resolve.js.map +1 -1
- package/dist/adapters/vtcode.d.ts +11 -0
- package/dist/adapters/vtcode.d.ts.map +1 -0
- package/dist/adapters/vtcode.js +21 -0
- package/dist/adapters/vtcode.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/scoring/index.d.ts.map +1 -1
- package/dist/scoring/index.js +69 -0
- package/dist/scoring/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/adapters/gemini-acp.d.ts +0 -11
- package/dist/adapters/gemini-acp.d.ts.map +0 -1
- package/dist/adapters/gemini-acp.js +0 -60
- package/dist/adapters/gemini-acp.js.map +0 -1
package/dist/scoring/index.js
CHANGED
|
@@ -33,6 +33,27 @@ export async function scoreRunResult(result, options) {
|
|
|
33
33
|
if (options?.reportDir) {
|
|
34
34
|
writeScenarioRawData(options.reportDir, result, sparseIndex);
|
|
35
35
|
}
|
|
36
|
+
// Short-circuit: runs that failed entirely shouldn't be graded on process
|
|
37
|
+
// quality — there's no process to grade. Without this, empty-transcript runs
|
|
38
|
+
// get perfect-score defaults in env/service/agent because nothing was audited.
|
|
39
|
+
if (isFailedRun(result)) {
|
|
40
|
+
const score = buildZeroScore(result, weights, sparseIndex.lines.length > 0 ? sparseIndex : undefined);
|
|
41
|
+
options?.onProgress?.(result.scenarioKey, result.agentName, "done");
|
|
42
|
+
result.output.transcriptAnalysis = toTranscriptAnalysis(normalized);
|
|
43
|
+
return {
|
|
44
|
+
scenarioKey: result.scenarioKey,
|
|
45
|
+
scenarioName: result.scenarioName,
|
|
46
|
+
agentName: result.agentName,
|
|
47
|
+
prompt: result.prompt,
|
|
48
|
+
rubric: result.rubric,
|
|
49
|
+
agentConfig: result.agentConfig,
|
|
50
|
+
output: result.output,
|
|
51
|
+
score,
|
|
52
|
+
...(result.workingDirectory !== undefined ? { workingDirectory: result.workingDirectory } : {}),
|
|
53
|
+
...(result.resolvedConfig !== undefined ? { resolvedConfig: result.resolvedConfig } : {}),
|
|
54
|
+
...(result.artifacts !== undefined ? { artifacts: result.artifacts } : {}),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
36
57
|
// Step 4: Deep eval + goal achievement in parallel
|
|
37
58
|
const [deepEvalResult, goalAchievement] = await Promise.all([
|
|
38
59
|
runDeepEval(result, sparseIndex, normalized, {
|
|
@@ -109,4 +130,52 @@ export async function scoreResults(runOutput, options) {
|
|
|
109
130
|
const scoredResults = await Promise.all(runOutput.results.map((r) => scoreRunResult(r, options)));
|
|
110
131
|
return buildScoredOutput(runOutput, scoredResults);
|
|
111
132
|
}
|
|
133
|
+
function isFailedRun(result) {
|
|
134
|
+
const { exitCode, error } = result.output.metadata;
|
|
135
|
+
return exitCode !== 0 || Boolean(error);
|
|
136
|
+
}
|
|
137
|
+
function buildZeroScore(result, weights, sparseIndex) {
|
|
138
|
+
const reason = result.output.metadata.error
|
|
139
|
+
? `Run failed: ${result.output.metadata.error}`
|
|
140
|
+
: `Run failed with exit code ${result.output.metadata.exitCode}`;
|
|
141
|
+
return {
|
|
142
|
+
axisScore: 0,
|
|
143
|
+
goalAchievement: buildZeroGoalAchievement(result.rubric, reason),
|
|
144
|
+
environment: buildZeroCategoryScore("environment"),
|
|
145
|
+
service: buildZeroCategoryScore("service"),
|
|
146
|
+
agent: buildZeroCategoryScore("agent"),
|
|
147
|
+
weights,
|
|
148
|
+
...(sparseIndex ? { sparseIndex } : {}),
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
function buildZeroGoalAchievement(rubric, reason) {
|
|
152
|
+
if (typeof rubric === "string") {
|
|
153
|
+
return {
|
|
154
|
+
score: 0,
|
|
155
|
+
criteria: [{ check: rubric, weight: 1, score: 0, rationale: reason }],
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
if (Array.isArray(rubric) && rubric.length > 0) {
|
|
159
|
+
return {
|
|
160
|
+
score: 0,
|
|
161
|
+
criteria: rubric.map((c) => ({
|
|
162
|
+
check: c.check,
|
|
163
|
+
weight: c.weight ?? 1,
|
|
164
|
+
score: 0,
|
|
165
|
+
rationale: reason,
|
|
166
|
+
})),
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
return { score: 0, criteria: [] };
|
|
170
|
+
}
|
|
171
|
+
function buildZeroCategoryScore(category) {
|
|
172
|
+
return {
|
|
173
|
+
score: 0,
|
|
174
|
+
interactionCount: 0,
|
|
175
|
+
auditedCount: 0,
|
|
176
|
+
dimensions: { success: 0, speed: 0, weight: 0, relevance: 0, necessity: 0 },
|
|
177
|
+
audits: [],
|
|
178
|
+
necessity: { category, score: 0, unnecessaryIds: [], rationale: "Run failed before any interactions occurred" },
|
|
179
|
+
};
|
|
180
|
+
}
|
|
112
181
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scoring/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scoring/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@netlify/axis",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Agent
|
|
3
|
+
"version": "1.6.1",
|
|
4
|
+
"description": "Agent Experience Index Score — synthetic testing for AI agent interaction",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { AgentAdapter } from "../types/agent.js";
|
|
2
|
-
/**
|
|
3
|
-
* ACP-based Gemini adapter. Uses `gemini --acp` to launch Gemini CLI
|
|
4
|
-
* in Agent Client Protocol mode over stdio, giving us structured tool
|
|
5
|
-
* calls, plans, and permissions instead of ad-hoc NDJSON.
|
|
6
|
-
*
|
|
7
|
-
* MCP servers are passed through the ACP `session/new` call rather than
|
|
8
|
-
* written to settings.json.
|
|
9
|
-
*/
|
|
10
|
-
export declare function createGeminiAcpAdapter(): AgentAdapter;
|
|
11
|
-
//# sourceMappingURL=gemini-acp.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-acp.d.ts","sourceRoot":"","sources":["../../src/adapters/gemini-acp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAItD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,YAAY,CAkDrD"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import * as fs from "node:fs";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { createAcpBasedAdapter } from "./base/acp-adapter.js";
|
|
4
|
-
import { writeGeminiSkills } from "./utils/skills.js";
|
|
5
|
-
/**
|
|
6
|
-
* ACP-based Gemini adapter. Uses `gemini --acp` to launch Gemini CLI
|
|
7
|
-
* in Agent Client Protocol mode over stdio, giving us structured tool
|
|
8
|
-
* calls, plans, and permissions instead of ad-hoc NDJSON.
|
|
9
|
-
*
|
|
10
|
-
* MCP servers are passed through the ACP `session/new` call rather than
|
|
11
|
-
* written to settings.json.
|
|
12
|
-
*/
|
|
13
|
-
export function createGeminiAcpAdapter() {
|
|
14
|
-
return createAcpBasedAdapter({
|
|
15
|
-
name: "gemini-acp",
|
|
16
|
-
cliCommand: "gemini",
|
|
17
|
-
requiredEnv: () => ["GEMINI_API_KEY"],
|
|
18
|
-
isolationEnv: (workspace) => ({
|
|
19
|
-
GEMINI_CLI_HOME: path.join(workspace, ".gemini"),
|
|
20
|
-
GEMINI_TELEMETRY_ENABLED: "false",
|
|
21
|
-
// Unset GOOGLE_CLOUD_PROJECT to prevent interactive auth prompts in ACP mode
|
|
22
|
-
GOOGLE_CLOUD_PROJECT: "",
|
|
23
|
-
}),
|
|
24
|
-
buildArgs: (input) => {
|
|
25
|
-
const args = ["--acp"];
|
|
26
|
-
if (input.config.model)
|
|
27
|
-
args.push("--model", input.config.model);
|
|
28
|
-
const flags = input.config.flags ?? {};
|
|
29
|
-
for (const [key, value] of Object.entries(flags)) {
|
|
30
|
-
if (value === true) {
|
|
31
|
-
args.push(`--${key}`);
|
|
32
|
-
}
|
|
33
|
-
else if (value !== false) {
|
|
34
|
-
args.push(`--${key}`, String(value));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
return args;
|
|
38
|
-
},
|
|
39
|
-
prepare: (ctx) => {
|
|
40
|
-
const geminiHome = ctx.env?.GEMINI_CLI_HOME;
|
|
41
|
-
if (!geminiHome)
|
|
42
|
-
return;
|
|
43
|
-
fs.mkdirSync(geminiHome, { recursive: true });
|
|
44
|
-
// Write settings.json to disable context discovery — AXIS workspaces are
|
|
45
|
-
// ephemeral temp dirs with no meaningful project structure. MCP servers
|
|
46
|
-
// are NOT written here; they go through ACP's session/new instead.
|
|
47
|
-
const settings = {
|
|
48
|
-
context: {
|
|
49
|
-
discoveryMaxDirs: 0,
|
|
50
|
-
memoryBoundaryMarkers: [],
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
fs.writeFileSync(path.join(geminiHome, "settings.json"), JSON.stringify(settings, null, 2) + "\n");
|
|
54
|
-
if (ctx.input.resolvedSkills?.length) {
|
|
55
|
-
writeGeminiSkills(geminiHome, ctx.input.resolvedSkills);
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=gemini-acp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-acp.js","sourceRoot":"","sources":["../../src/adapters/gemini-acp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,qBAAqB,CAAC;QAC3B,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,QAAQ;QAEpB,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,gBAAgB,CAAC;QAErC,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC5B,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;YAChD,wBAAwB,EAAE,OAAO;YACjC,6EAA6E;YAC7E,oBAAoB,EAAE,EAAE;SACzB,CAAC;QAEF,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACnB,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEjE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;gBACxB,CAAC;qBAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;oBAC3B,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACf,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC;YAC5C,IAAI,CAAC,UAAU;gBAAE,OAAO;YACxB,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE9C,yEAAyE;YACzE,wEAAwE;YACxE,mEAAmE;YACnE,MAAM,QAAQ,GAAG;gBACf,OAAO,EAAE;oBACP,gBAAgB,EAAE,CAAC;oBACnB,qBAAqB,EAAE,EAAE;iBAC1B;aACF,CAAC;YACF,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAEnG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;gBACrC,iBAAiB,CAAC,UAAU,EAAE,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|