agentv 4.3.3 → 4.4.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.
@@ -29,12 +29,12 @@ import {
29
29
  subscribeToCopilotCliLogEntries,
30
30
  subscribeToCopilotSdkLogEntries,
31
31
  subscribeToPiLogEntries
32
- } from "./chunk-HMOXP7T5.js";
32
+ } from "./chunk-63NDZ6UC.js";
33
33
 
34
34
  // package.json
35
35
  var package_default = {
36
36
  name: "agentv",
37
- version: "4.3.3",
37
+ version: "4.4.0",
38
38
  description: "CLI entry point for AgentV",
39
39
  type: "module",
40
40
  repository: {
@@ -2485,6 +2485,40 @@ var ASSERTION_TYPES_WITH_ARRAY_VALUE = /* @__PURE__ */ new Set([
2485
2485
  "icontains-all"
2486
2486
  ]);
2487
2487
  var VALID_TEST_FILE_EXTENSIONS = /* @__PURE__ */ new Set([".yaml", ".yml", ".jsonl"]);
2488
+ var KNOWN_TOP_LEVEL_FIELDS = /* @__PURE__ */ new Set([
2489
+ "$schema",
2490
+ "name",
2491
+ "description",
2492
+ "version",
2493
+ "author",
2494
+ "tags",
2495
+ "license",
2496
+ "requires",
2497
+ "input",
2498
+ "input_files",
2499
+ "tests",
2500
+ "eval_cases",
2501
+ "target",
2502
+ "execution",
2503
+ "assertions",
2504
+ "evaluators",
2505
+ "workspace"
2506
+ ]);
2507
+ var KNOWN_TEST_FIELDS = /* @__PURE__ */ new Set([
2508
+ "id",
2509
+ "criteria",
2510
+ "input",
2511
+ "input_files",
2512
+ "expected_output",
2513
+ "assertions",
2514
+ "evaluators",
2515
+ "execution",
2516
+ "workspace",
2517
+ "metadata",
2518
+ "conversation_id",
2519
+ "dataset",
2520
+ "note"
2521
+ ]);
2488
2522
  var NAME_PATTERN = /^[a-z0-9-]+$/;
2489
2523
  function isObject(value) {
2490
2524
  return typeof value === "object" && value !== null && !Array.isArray(value);
@@ -2523,6 +2557,16 @@ async function validateEvalFile(filePath) {
2523
2557
  };
2524
2558
  }
2525
2559
  validateMetadata(parsed, absolutePath, errors);
2560
+ for (const key of Object.keys(parsed)) {
2561
+ if (!KNOWN_TOP_LEVEL_FIELDS.has(key)) {
2562
+ errors.push({
2563
+ severity: "warning",
2564
+ filePath: absolutePath,
2565
+ location: key,
2566
+ message: `Unknown field '${key}'. This field will be ignored.`
2567
+ });
2568
+ }
2569
+ }
2526
2570
  const suiteInput = parsed.input;
2527
2571
  if (suiteInput !== void 0) {
2528
2572
  if (typeof suiteInput === "string") {
@@ -2611,6 +2655,16 @@ async function validateEvalFile(filePath) {
2611
2655
  });
2612
2656
  continue;
2613
2657
  }
2658
+ for (const key of Object.keys(evalCase)) {
2659
+ if (!KNOWN_TEST_FIELDS.has(key)) {
2660
+ errors.push({
2661
+ severity: "warning",
2662
+ filePath: absolutePath,
2663
+ location: `${location}.${key}`,
2664
+ message: `Unknown field '${key}'. This field will be ignored.`
2665
+ });
2666
+ }
2667
+ }
2614
2668
  const id = evalCase.id;
2615
2669
  if (typeof id !== "string" || id.trim().length === 0) {
2616
2670
  errors.push({
@@ -2620,16 +2674,7 @@ async function validateEvalFile(filePath) {
2620
2674
  message: "Missing or invalid 'id' field (must be a non-empty string)"
2621
2675
  });
2622
2676
  }
2623
- let criteria = evalCase.criteria;
2624
- if (criteria === void 0 && "expected_outcome" in evalCase) {
2625
- criteria = evalCase.expected_outcome;
2626
- errors.push({
2627
- severity: "warning",
2628
- filePath: absolutePath,
2629
- location: `${location}.expected_outcome`,
2630
- message: "'expected_outcome' is deprecated. Use 'criteria' instead."
2631
- });
2632
- }
2677
+ const criteria = evalCase.criteria;
2633
2678
  if (criteria !== void 0 && (typeof criteria !== "string" || criteria.trim().length === 0)) {
2634
2679
  errors.push({
2635
2680
  severity: "error",
@@ -2681,7 +2726,7 @@ async function validateEvalFile(filePath) {
2681
2726
  });
2682
2727
  }
2683
2728
  }
2684
- const assertField = evalCase.assertions ?? evalCase.assert;
2729
+ const assertField = evalCase.assertions;
2685
2730
  if (assertField !== void 0) {
2686
2731
  validateAssertArray(assertField, location, absolutePath, errors);
2687
2732
  }
@@ -3554,7 +3599,13 @@ async function validateConfigFile(filePath) {
3554
3599
  });
3555
3600
  }
3556
3601
  }
3557
- const allowedFields = /* @__PURE__ */ new Set(["$schema", "eval_patterns", "required_version", "execution"]);
3602
+ const allowedFields = /* @__PURE__ */ new Set([
3603
+ "$schema",
3604
+ "eval_patterns",
3605
+ "required_version",
3606
+ "execution",
3607
+ "studio"
3608
+ ]);
3558
3609
  const unexpectedFields = Object.keys(config).filter((key) => !allowedFields.has(key));
3559
3610
  if (unexpectedFields.length > 0) {
3560
3611
  errors.push({
@@ -4435,7 +4486,7 @@ async function runEvalCommand(input) {
4435
4486
  const useFileExport = !!options.otelFile;
4436
4487
  if (options.exportOtel || useFileExport) {
4437
4488
  try {
4438
- const { OtelTraceExporter, OTEL_BACKEND_PRESETS } = await import("./dist-M7R6II6Y.js");
4489
+ const { OtelTraceExporter, OTEL_BACKEND_PRESETS } = await import("./dist-P74O2P2I.js");
4439
4490
  let endpoint = process.env.OTEL_EXPORTER_OTLP_ENDPOINT;
4440
4491
  let headers = {};
4441
4492
  if (options.otelBackend) {
@@ -4827,4 +4878,4 @@ export {
4827
4878
  selectTarget,
4828
4879
  runEvalCommand
4829
4880
  };
4830
- //# sourceMappingURL=chunk-EW4COQU2.js.map
4881
+ //# sourceMappingURL=chunk-BAYNXTX6.js.map