@netlify/axis 1.1.7 → 1.5.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.
Files changed (69) hide show
  1. package/README.md +8 -8
  2. package/dist/adapters/base/agent-adapter.d.ts.map +1 -1
  3. package/dist/adapters/base/agent-adapter.js +43 -2
  4. package/dist/adapters/base/agent-adapter.js.map +1 -1
  5. package/dist/adapters/registry.d.ts +2 -0
  6. package/dist/adapters/registry.d.ts.map +1 -1
  7. package/dist/adapters/registry.js +6 -2
  8. package/dist/adapters/registry.js.map +1 -1
  9. package/dist/cli.js +126 -9
  10. package/dist/cli.js.map +1 -1
  11. package/dist/config/loader.d.ts +2 -2
  12. package/dist/config/loader.d.ts.map +1 -1
  13. package/dist/config/loader.js +232 -28
  14. package/dist/config/loader.js.map +1 -1
  15. package/dist/config/validator.d.ts +9 -1
  16. package/dist/config/validator.d.ts.map +1 -1
  17. package/dist/config/validator.js +91 -6
  18. package/dist/config/validator.js.map +1 -1
  19. package/dist/report-ui/index.html +319 -151
  20. package/dist/reports/html.d.ts.map +1 -1
  21. package/dist/reports/html.js +2 -1
  22. package/dist/reports/html.js.map +1 -1
  23. package/dist/reports/writer.d.ts.map +1 -1
  24. package/dist/reports/writer.js +19 -1
  25. package/dist/reports/writer.js.map +1 -1
  26. package/dist/runner/artifacts.d.ts +31 -0
  27. package/dist/runner/artifacts.d.ts.map +1 -0
  28. package/dist/runner/artifacts.js +213 -0
  29. package/dist/runner/artifacts.js.map +1 -0
  30. package/dist/runner/lifecycle.d.ts +14 -0
  31. package/dist/runner/lifecycle.d.ts.map +1 -1
  32. package/dist/runner/lifecycle.js +55 -0
  33. package/dist/runner/lifecycle.js.map +1 -1
  34. package/dist/runner/runner.d.ts +6 -0
  35. package/dist/runner/runner.d.ts.map +1 -1
  36. package/dist/runner/runner.js +225 -39
  37. package/dist/runner/runner.js.map +1 -1
  38. package/dist/scoring/index.d.ts.map +1 -1
  39. package/dist/scoring/index.js +7 -1
  40. package/dist/scoring/index.js.map +1 -1
  41. package/dist/scoring/judge.js +1 -1
  42. package/dist/scoring/judge.js.map +1 -1
  43. package/dist/scoring/sparse-index.d.ts +6 -1
  44. package/dist/scoring/sparse-index.d.ts.map +1 -1
  45. package/dist/scoring/sparse-index.js +43 -15
  46. package/dist/scoring/sparse-index.js.map +1 -1
  47. package/dist/transcript/extract.d.ts.map +1 -1
  48. package/dist/transcript/extract.js +33 -3
  49. package/dist/transcript/extract.js.map +1 -1
  50. package/dist/types/agent.d.ts +4 -0
  51. package/dist/types/agent.d.ts.map +1 -1
  52. package/dist/types/config.d.ts +34 -2
  53. package/dist/types/config.d.ts.map +1 -1
  54. package/dist/types/output.d.ts +31 -2
  55. package/dist/types/output.d.ts.map +1 -1
  56. package/dist/types/output.js.map +1 -1
  57. package/dist/types/report.d.ts +9 -1
  58. package/dist/types/report.d.ts.map +1 -1
  59. package/dist/types/scenario.d.ts +23 -2
  60. package/dist/types/scenario.d.ts.map +1 -1
  61. package/dist/types/scoring.d.ts +4 -0
  62. package/dist/types/scoring.d.ts.map +1 -1
  63. package/dist/ui/LiveStatus.js +10 -5
  64. package/dist/ui/LiveStatus.js.map +1 -1
  65. package/dist/ui/format.d.ts +4 -0
  66. package/dist/ui/format.d.ts.map +1 -1
  67. package/dist/ui/format.js +34 -18
  68. package/dist/ui/format.js.map +1 -1
  69. package/package.json +5 -3
@@ -1,9 +1,65 @@
1
1
  import * as fs from "node:fs/promises";
2
2
  import * as path from "node:path";
3
+ import { pathToFileURL } from "node:url";
4
+ import { createJiti } from "jiti";
3
5
  import { validateConfig, validateScenario } from "./validator.js";
4
6
  import { formatError } from "../types/output.js";
7
+ /** Extensions probed when no explicit config path is given, in priority order. */
8
+ const DEFAULT_CONFIG_EXTENSIONS = [".ts", ".js", ".mjs", ".json"];
9
+ const DEFAULT_CONFIG_BASENAME = "axis.config";
10
+ const JS_EXTENSIONS = new Set([".js", ".mjs", ".cjs"]);
11
+ const TS_EXTENSIONS = new Set([".ts", ".mts", ".cts"]);
5
12
  export async function loadConfig(configPath) {
6
- const resolvedPath = path.resolve(configPath ?? "axis.config.json");
13
+ const resolvedPath = await resolveConfigPath(configPath);
14
+ const ext = path.extname(resolvedPath).toLowerCase();
15
+ let parsed;
16
+ if (ext === ".json" || ext === "") {
17
+ parsed = await loadJsonConfig(resolvedPath);
18
+ }
19
+ else if (JS_EXTENSIONS.has(ext) || TS_EXTENSIONS.has(ext)) {
20
+ parsed = await loadModuleConfig(resolvedPath);
21
+ }
22
+ else {
23
+ throw new Error(`Unsupported config file extension "${ext}" at ${resolvedPath}`);
24
+ }
25
+ // Support a default export that is either the config object or a (sync/async) function returning it.
26
+ if (typeof parsed === "function") {
27
+ parsed = await parsed();
28
+ }
29
+ validateConfig(parsed, resolvedPath);
30
+ normalizeConfigAgents(parsed);
31
+ // Default the scenarios source when omitted; downstream code can assume it is set.
32
+ if (parsed.scenarios === undefined) {
33
+ parsed.scenarios = "./scenarios";
34
+ }
35
+ return {
36
+ config: parsed,
37
+ configDir: path.dirname(resolvedPath),
38
+ };
39
+ }
40
+ async function resolveConfigPath(configPath) {
41
+ if (configPath) {
42
+ return path.resolve(configPath);
43
+ }
44
+ for (const ext of DEFAULT_CONFIG_EXTENSIONS) {
45
+ const candidate = path.resolve(`${DEFAULT_CONFIG_BASENAME}${ext}`);
46
+ if (await fileExists(candidate)) {
47
+ return candidate;
48
+ }
49
+ }
50
+ // Nothing found — fall back to .json so the existing "Could not read" error fires with the expected path.
51
+ return path.resolve(`${DEFAULT_CONFIG_BASENAME}.json`);
52
+ }
53
+ async function fileExists(filePath) {
54
+ try {
55
+ const stat = await fs.stat(filePath);
56
+ return stat.isFile();
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ }
62
+ async function loadJsonConfig(resolvedPath) {
7
63
  let raw;
8
64
  try {
9
65
  raw = await fs.readFile(resolvedPath, "utf-8");
@@ -11,34 +67,72 @@ export async function loadConfig(configPath) {
11
67
  catch (err) {
12
68
  throw new Error(`Could not read config file at ${resolvedPath}: ${formatError(err)}`);
13
69
  }
14
- let parsed;
15
70
  try {
16
- parsed = JSON.parse(raw);
71
+ return JSON.parse(raw);
17
72
  }
18
73
  catch {
19
74
  throw new Error(`Failed to parse JSON in ${resolvedPath}`);
20
75
  }
21
- validateConfig(parsed, resolvedPath);
22
- return {
23
- config: parsed,
24
- configDir: path.dirname(resolvedPath),
25
- };
26
76
  }
27
- export async function discoverScenarios(configDir, scenariosPath, filter) {
28
- const rootDir = path.resolve(configDir, scenariosPath);
29
- let stat;
77
+ async function loadModuleConfig(resolvedPath) {
78
+ if (!(await fileExists(resolvedPath))) {
79
+ throw new Error(`Could not read config file at ${resolvedPath}: file not found`);
80
+ }
81
+ let mod;
30
82
  try {
31
- stat = await fs.stat(rootDir);
83
+ mod = await importModule(resolvedPath);
32
84
  }
33
85
  catch (err) {
34
- throw new Error(`Could not read scenarios directory at ${rootDir}: ${formatError(err)}`);
86
+ throw new Error(`Failed to load config at ${resolvedPath}: ${formatError(err)}`);
35
87
  }
36
- if (!stat.isDirectory()) {
37
- throw new Error(`Scenarios path is not a directory: ${rootDir}`);
88
+ if (!mod || typeof mod !== "object" || !("default" in mod) || mod.default === undefined) {
89
+ throw new Error(`Config at ${resolvedPath} must have a default export`);
90
+ }
91
+ return mod.default;
92
+ }
93
+ /**
94
+ * Imports a JS or TS file by extension. Native dynamic import for `.js`/`.mjs`/`.cjs`,
95
+ * jiti for `.ts`/`.mts`/`.cts`. Returns the module namespace; callers extract `default`.
96
+ */
97
+ async function importModule(filePath) {
98
+ const ext = path.extname(filePath).toLowerCase();
99
+ if (JS_EXTENSIONS.has(ext)) {
100
+ return (await import(pathToFileURL(filePath).href));
38
101
  }
102
+ if (TS_EXTENSIONS.has(ext)) {
103
+ const jiti = createJiti(import.meta.url, { interopDefault: false });
104
+ return (await jiti.import(filePath));
105
+ }
106
+ throw new Error(`Unsupported module extension "${ext}" at ${filePath}`);
107
+ }
108
+ /** Lowercase all agent names in a validated config (mutates in place). */
109
+ function normalizeConfigAgents(config) {
110
+ for (let i = 0; i < config.agents.length; i++) {
111
+ const entry = config.agents[i];
112
+ if (typeof entry === "string") {
113
+ config.agents[i] = entry.toLowerCase();
114
+ }
115
+ else {
116
+ entry.agent = entry.agent.toLowerCase();
117
+ }
118
+ }
119
+ }
120
+ export async function discoverScenarios(configDir, scenariosInput, filter) {
121
+ // When omitted, fall back to the default scenarios directory.
122
+ const resolvedInput = scenariosInput ?? "./scenarios";
123
+ const entries = Array.isArray(resolvedInput) ? resolvedInput : [resolvedInput];
39
124
  const scenarios = [];
40
- await walkDir(rootDir, rootDir, scenarios);
41
- // Check for duplicate keys (can happen when variant keys collide with other scenario keys)
125
+ for (const entry of entries) {
126
+ if (typeof entry === "string") {
127
+ await collectFromPath(path.resolve(configDir, entry), scenarios);
128
+ }
129
+ else {
130
+ // Inline scenarios are validated by validateConfig; here we just normalize and expand.
131
+ scenarios.push(...expandInline(entry));
132
+ }
133
+ }
134
+ // Check for duplicate keys (can happen when variant keys collide with other scenario keys
135
+ // or when inline keys collide with on-disk keys)
42
136
  const seen = new Set();
43
137
  for (const s of scenarios) {
44
138
  if (seen.has(s.key)) {
@@ -54,20 +148,80 @@ export async function discoverScenarios(configDir, scenariosPath, filter) {
54
148
  }
55
149
  return scenarios;
56
150
  }
151
+ /** File extensions recognized by the scenarios walker. */
152
+ const SCENARIO_EXTENSIONS = new Set([".json", ".js", ".mjs", ".cjs", ".ts", ".mts", ".cts"]);
153
+ const SCENARIO_EXT_RE = /\.(json|js|mjs|cjs|ts|mts|cts)$/;
154
+ async function collectFromPath(absolutePath, scenarios) {
155
+ let stat;
156
+ try {
157
+ stat = await fs.stat(absolutePath);
158
+ }
159
+ catch (err) {
160
+ throw new Error(`Could not read scenarios path at ${absolutePath}: ${formatError(err)}`);
161
+ }
162
+ if (stat.isDirectory()) {
163
+ await walkDir(absolutePath, absolutePath, scenarios);
164
+ return;
165
+ }
166
+ if (!stat.isFile()) {
167
+ throw new Error(`Scenarios path must be a directory or scenario file: ${absolutePath}`);
168
+ }
169
+ const ext = path.extname(absolutePath).toLowerCase();
170
+ if (!SCENARIO_EXTENSIONS.has(ext)) {
171
+ throw new Error(`Scenario file must end in one of ${[...SCENARIO_EXTENSIONS].join(", ")}: ${absolutePath}`);
172
+ }
173
+ // Single-file entry is explicit, so missing default exports are an error (not silent skip).
174
+ const baseKey = path.basename(absolutePath, ext);
175
+ const loaded = await loadScenarioFromPath(absolutePath, baseKey, false);
176
+ if (loaded)
177
+ scenarios.push(...loaded);
178
+ }
57
179
  async function walkDir(dir, rootDir, scenarios) {
58
180
  const entries = await fs.readdir(dir, { withFileTypes: true });
59
181
  for (const entry of entries) {
60
182
  const fullPath = path.join(dir, entry.name);
61
183
  if (entry.isDirectory()) {
62
184
  await walkDir(fullPath, rootDir, scenarios);
185
+ continue;
63
186
  }
64
- else if (entry.isFile() && entry.name.endsWith(".json")) {
65
- const loaded = await loadScenarioFile(fullPath, rootDir);
187
+ if (!entry.isFile())
188
+ continue;
189
+ const ext = path.extname(entry.name).toLowerCase();
190
+ if (!SCENARIO_EXTENSIONS.has(ext))
191
+ continue;
192
+ // Derive key from path relative to the walk root: scenarios/cms/create-post.ts → "cms/create-post"
193
+ const baseKey = path
194
+ .relative(rootDir, fullPath)
195
+ .replace(SCENARIO_EXT_RE, "")
196
+ .split(path.sep)
197
+ .join("/");
198
+ // Walking a directory: silently skip module files that don't default-export a scenario object,
199
+ // so user-authored helpers/utilities can live alongside scenarios without special handling.
200
+ const loaded = await loadScenarioFromPath(fullPath, baseKey, true);
201
+ if (loaded)
66
202
  scenarios.push(...loaded);
67
- }
68
203
  }
69
204
  }
70
- async function loadScenarioFile(filePath, rootDir) {
205
+ /**
206
+ * Loads a single scenario from disk, dispatching by extension.
207
+ *
208
+ * @param silentSkip When true, JS/TS modules without a default object export return null
209
+ * instead of throwing. Used when walking a directory so non-scenario
210
+ * helper modules can coexist with scenario files.
211
+ */
212
+ async function loadScenarioFromPath(filePath, baseKey, silentSkip) {
213
+ const ext = path.extname(filePath).toLowerCase();
214
+ if (ext === ".json") {
215
+ return loadJsonScenario(filePath, baseKey);
216
+ }
217
+ if (JS_EXTENSIONS.has(ext) || TS_EXTENSIONS.has(ext)) {
218
+ return loadModuleScenario(filePath, baseKey, silentSkip);
219
+ }
220
+ if (silentSkip)
221
+ return null;
222
+ throw new Error(`Unsupported scenario file extension "${ext}" at ${filePath}`);
223
+ }
224
+ async function loadJsonScenario(filePath, baseKey) {
71
225
  const raw = await fs.readFile(filePath, "utf-8");
72
226
  let parsed;
73
227
  try {
@@ -76,14 +230,37 @@ async function loadScenarioFile(filePath, rootDir) {
76
230
  catch {
77
231
  throw new Error(`Failed to parse JSON in scenario file ${filePath}`);
78
232
  }
79
- validateScenario(parsed, filePath);
80
- // Derive key from relative path: scenarios/cms/create-post.json → "cms/create-post"
81
- const relativePath = path.relative(rootDir, filePath);
82
- const baseKey = relativePath
83
- .replace(/\.json$/, "")
84
- .split(path.sep)
85
- .join("/");
233
+ return finalizeScenarioObject(parsed, filePath, baseKey);
234
+ }
235
+ async function loadModuleScenario(filePath, baseKey, silentSkip) {
236
+ let mod;
237
+ try {
238
+ mod = await importModule(filePath);
239
+ }
240
+ catch (err) {
241
+ throw new Error(`Failed to load scenario module at ${filePath}: ${formatError(err)}`);
242
+ }
243
+ let def = mod && typeof mod === "object" ? mod.default : undefined;
244
+ if (typeof def === "function") {
245
+ def = await def();
246
+ }
247
+ if (def === undefined || def === null || typeof def !== "object" || Array.isArray(def)) {
248
+ if (silentSkip)
249
+ return null;
250
+ throw new Error(`Scenario module at ${filePath} must default-export an object (or function returning one)`);
251
+ }
252
+ return finalizeScenarioObject(def, filePath, baseKey);
253
+ }
254
+ function finalizeScenarioObject(parsed, filePath, baseKey) {
255
+ validateScenario(parsed, filePath, "file");
256
+ normalizeScenarioAgents(parsed);
86
257
  const scenario = parsed;
258
+ // If the file declares a key, it must match the key derived from its path.
259
+ // The path-derived key is always authoritative; this surfaces drift after a rename.
260
+ if (scenario.key !== undefined && scenario.key !== baseKey) {
261
+ throw new Error(`Scenario at ${filePath}: declared key "${scenario.key}" does not match path-derived key "${baseKey}". ` +
262
+ `Either remove the "key" field or set it to "${baseKey}".`);
263
+ }
87
264
  if (!scenario.variants || scenario.variants.length === 0) {
88
265
  scenario.key = baseKey;
89
266
  return [scenario];
@@ -91,6 +268,27 @@ async function loadScenarioFile(filePath, rootDir) {
91
268
  // Expand variants: each becomes a standalone Scenario, base does not run
92
269
  return scenario.variants.map((variant) => expandVariant(scenario, variant, baseKey));
93
270
  }
271
+ function expandInline(input) {
272
+ // Shallow clone so we don't mutate the caller's config object.
273
+ const scenario = { ...input };
274
+ normalizeScenarioAgents(scenario);
275
+ if (!scenario.variants || scenario.variants.length === 0) {
276
+ return [scenario];
277
+ }
278
+ return scenario.variants.map((variant) => expandVariant(scenario, variant, scenario.key));
279
+ }
280
+ /** Lowercase agent-name entries in a scenario and any variants (mutates in place). */
281
+ function normalizeScenarioAgents(scenario) {
282
+ if (scenario.agents) {
283
+ scenario.agents = scenario.agents.map((a) => a.toLowerCase());
284
+ }
285
+ if (scenario.variants) {
286
+ for (const v of scenario.variants) {
287
+ if (v.agents)
288
+ v.agents = v.agents.map((a) => a.toLowerCase());
289
+ }
290
+ }
291
+ }
94
292
  function expandVariant(parent, variant, baseKey) {
95
293
  const expanded = {
96
294
  key: `${baseKey}@${variant.name}`,
@@ -105,6 +303,8 @@ function expandVariant(parent, variant, baseKey) {
105
303
  mcp_servers: variant.mcp_servers !== undefined
106
304
  ? { ...parent.mcp_servers, ...variant.mcp_servers }
107
305
  : parent.mcp_servers,
306
+ limits: variant.limits ?? parent.limits,
307
+ artifacts: variant.artifacts !== undefined ? variant.artifacts : parent.artifacts,
108
308
  };
109
309
  // Strip undefined optional fields to keep objects clean
110
310
  if (expanded.skip === undefined)
@@ -119,6 +319,10 @@ function expandVariant(parent, variant, baseKey) {
119
319
  delete expanded.skills;
120
320
  if (expanded.mcp_servers === undefined)
121
321
  delete expanded.mcp_servers;
322
+ if (expanded.limits === undefined)
323
+ delete expanded.limits;
324
+ if (expanded.artifacts === undefined)
325
+ delete expanded.artifacts;
122
326
  return expanded;
123
327
  }
124
328
  function matchesFilter(key, filter) {
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,15 @@
1
1
  import type { AxisConfig } from "../types/config.js";
2
2
  import type { RubricCriterion, Scenario } from "../types/scenario.js";
3
3
  export declare function validateConfig(data: unknown, filePath: string): asserts data is AxisConfig;
4
- export declare function validateScenario(data: unknown, filePath: string): asserts data is Scenario;
4
+ /**
5
+ * Validates a scenario object.
6
+ *
7
+ * @param mode "file" — loaded from a JSON scenario file; the loader will assign
8
+ * the `key` from the file path and rejects any user-supplied `key`.
9
+ * "inline" — declared inline in `axis.config.*`; the user must
10
+ * provide a non-empty `key` string.
11
+ */
12
+ export declare function validateScenario(data: unknown, filePath: string, mode?: "file" | "inline"): asserts data is Scenario;
5
13
  export declare function validateMcpServers(data: unknown, filePath: string): void;
6
14
  /**
7
15
  * Resolve optional weights on rubric entries. Entries with explicit weights
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEtE,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAuD1F;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAgE1F;AAwFD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAqDxE;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAajF"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEtE,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAsE1F;AAwBD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,MAAM,GAAG,QAAiB,GAC/B,OAAO,CAAC,IAAI,IAAI,QAAQ,CAuF1B;AAgGD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAqDxE;AAQD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAajF"}
@@ -3,9 +3,7 @@ export function validateConfig(data, filePath) {
3
3
  throw new Error(`Invalid config at ${filePath}: must be a JSON object`);
4
4
  }
5
5
  const obj = data;
6
- if (typeof obj.scenarios !== "string") {
7
- throw new Error(`Invalid config at ${filePath}: "scenarios" must be a string path`);
8
- }
6
+ validateScenariosField(obj.scenarios, filePath);
9
7
  if (!Array.isArray(obj.agents)) {
10
8
  throw new Error(`Invalid config at ${filePath}: "agents" must be an array`);
11
9
  }
@@ -17,8 +15,8 @@ export function validateConfig(data, filePath) {
17
15
  throw new Error(`Invalid config at ${filePath}: agents[${i}] must be a string or object`);
18
16
  }
19
17
  const agentObj = entry;
20
- if (typeof agentObj.adapter !== "string") {
21
- throw new Error(`Invalid config at ${filePath}: agents[${i}] must have an "adapter" string`);
18
+ if (typeof agentObj.agent !== "string") {
19
+ throw new Error(`Invalid config at ${filePath}: agents[${i}] must have an "agent" string`);
22
20
  }
23
21
  if (agentObj.scenarios !== undefined && !Array.isArray(agentObj.scenarios)) {
24
22
  throw new Error(`Invalid config at ${filePath}: agents[${i}].scenarios must be an array`);
@@ -39,18 +37,72 @@ export function validateConfig(data, filePath) {
39
37
  throw new Error(`Invalid config at ${filePath}: "settings.concurrency" must be a positive integer`);
40
38
  }
41
39
  }
40
+ if (settings?.limits !== undefined) {
41
+ const limits = settings.limits;
42
+ if (typeof limits !== "object" || limits === null || Array.isArray(limits)) {
43
+ throw new Error(`Invalid config at ${filePath}: "settings.limits" must be an object`);
44
+ }
45
+ if (limits.run !== undefined) {
46
+ validateLimits(limits.run, filePath, "settings.limits.run");
47
+ }
48
+ if (limits.scenario !== undefined) {
49
+ validateLimits(limits.scenario, filePath, "settings.limits.scenario");
50
+ }
51
+ }
42
52
  if (obj.mcp_servers !== undefined) {
43
53
  validateMcpServers(obj.mcp_servers, filePath);
44
54
  }
45
55
  if (obj.skills !== undefined) {
46
56
  validateSkillsSources(obj.skills, filePath, "skills");
47
57
  }
58
+ if (obj.artifacts !== undefined) {
59
+ validateArtifactPatterns(obj.artifacts, filePath, "artifacts");
60
+ }
61
+ }
62
+ function validateScenariosField(data, filePath) {
63
+ if (data === undefined)
64
+ return; // optional — loader fills in the default
65
+ if (typeof data === "string")
66
+ return;
67
+ if (!Array.isArray(data)) {
68
+ throw new Error(`Invalid config at ${filePath}: "scenarios" must be a string path or an array of paths and/or scenario objects`);
69
+ }
70
+ for (let i = 0; i < data.length; i++) {
71
+ const entry = data[i];
72
+ if (typeof entry === "string")
73
+ continue;
74
+ if (typeof entry !== "object" || entry === null) {
75
+ throw new Error(`Invalid config at ${filePath}: scenarios[${i}] must be a string path or a scenario object`);
76
+ }
77
+ validateScenario(entry, `${filePath} (scenarios[${i}])`, "inline");
78
+ }
48
79
  }
49
- export function validateScenario(data, filePath) {
80
+ /**
81
+ * Validates a scenario object.
82
+ *
83
+ * @param mode "file" — loaded from a JSON scenario file; the loader will assign
84
+ * the `key` from the file path and rejects any user-supplied `key`.
85
+ * "inline" — declared inline in `axis.config.*`; the user must
86
+ * provide a non-empty `key` string.
87
+ */
88
+ export function validateScenario(data, filePath, mode = "file") {
50
89
  if (typeof data !== "object" || data === null) {
51
90
  throw new Error(`Invalid scenario at ${filePath}: must be a JSON object`);
52
91
  }
53
92
  const obj = data;
93
+ if (mode === "inline") {
94
+ if (typeof obj.key !== "string" || obj.key.length === 0) {
95
+ throw new Error(`Invalid scenario at ${filePath}: inline scenarios must include a non-empty "key" string`);
96
+ }
97
+ }
98
+ else if (obj.key !== undefined) {
99
+ // File-mode: an explicit `key` is allowed (helpers like `withSharedVariants` may
100
+ // require it on their input), but it must be a non-empty string. The loader
101
+ // verifies it matches the path-derived key — see finalizeScenarioObject in loader.ts.
102
+ if (typeof obj.key !== "string" || obj.key.length === 0) {
103
+ throw new Error(`Invalid scenario at ${filePath}: "key" must be a non-empty string`);
104
+ }
105
+ }
54
106
  if (typeof obj.name !== "string") {
55
107
  throw new Error(`Invalid scenario at ${filePath}: missing required field "name"`);
56
108
  }
@@ -95,12 +147,18 @@ export function validateScenario(data, filePath) {
95
147
  if (obj.mcp_servers !== undefined) {
96
148
  validateMcpServers(obj.mcp_servers, filePath);
97
149
  }
150
+ if (obj.limits !== undefined) {
151
+ validateLimits(obj.limits, filePath, "limits");
152
+ }
98
153
  if (obj.setup !== undefined) {
99
154
  validateLifecycleActions(obj.setup, filePath, "setup");
100
155
  }
101
156
  if (obj.teardown !== undefined) {
102
157
  validateLifecycleActions(obj.teardown, filePath, "teardown");
103
158
  }
159
+ if (obj.artifacts !== undefined) {
160
+ validateArtifactPatterns(obj.artifacts, filePath, "artifacts");
161
+ }
104
162
  if (obj.variants !== undefined) {
105
163
  validateVariants(obj.variants, filePath);
106
164
  }
@@ -171,6 +229,12 @@ function validateVariants(data, filePath) {
171
229
  if (variant.teardown !== undefined) {
172
230
  validateLifecycleActions(variant.teardown, filePath, `variants[${i}].teardown`);
173
231
  }
232
+ if (variant.limits !== undefined) {
233
+ validateLimits(variant.limits, filePath, `variants[${i}].limits`);
234
+ }
235
+ if (variant.artifacts !== undefined) {
236
+ validateArtifactPatterns(variant.artifacts, filePath, `variants[${i}].artifacts`);
237
+ }
174
238
  }
175
239
  }
176
240
  export function validateMcpServers(data, filePath) {
@@ -245,6 +309,27 @@ export function resolveRubricWeights(rubric) {
245
309
  const share = unspecified.length > 0 ? remaining / unspecified.length : 0;
246
310
  return rubric.map((r) => (r.weight !== undefined ? r : { ...r, weight: share }));
247
311
  }
312
+ function validateLimits(data, filePath, field) {
313
+ if (typeof data !== "object" || data === null || Array.isArray(data)) {
314
+ throw new Error(`Invalid config at ${filePath}: "${field}" must be an object`);
315
+ }
316
+ const obj = data;
317
+ if (obj.time_minutes !== undefined) {
318
+ if (typeof obj.time_minutes !== "number" || obj.time_minutes <= 0) {
319
+ throw new Error(`Invalid config at ${filePath}: "${field}.time_minutes" must be a positive number`);
320
+ }
321
+ }
322
+ if (obj.tokens !== undefined) {
323
+ if (typeof obj.tokens !== "number" || !Number.isInteger(obj.tokens) || obj.tokens <= 0) {
324
+ throw new Error(`Invalid config at ${filePath}: "${field}.tokens" must be a positive integer`);
325
+ }
326
+ }
327
+ }
328
+ function validateArtifactPatterns(data, filePath, field) {
329
+ if (!Array.isArray(data) || !data.every((v) => typeof v === "string" && v.length > 0)) {
330
+ throw new Error(`Invalid config at ${filePath}: "${field}" must be an array of non-empty glob strings`);
331
+ }
332
+ }
248
333
  function validateLifecycleActions(data, filePath, field) {
249
334
  if (!Array.isArray(data)) {
250
335
  throw new Error(`Invalid scenario at ${filePath}: "${field}" must be an array`);
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/config/validator.ts"],"names":[],"mappings":"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"}