veryfront 0.1.870 → 0.1.872

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 (146) hide show
  1. package/esm/cli/commands/eval/command-help.d.ts +3 -0
  2. package/esm/cli/commands/eval/command-help.d.ts.map +1 -0
  3. package/esm/cli/commands/eval/command-help.js +42 -0
  4. package/esm/cli/commands/eval/command.d.ts +21 -0
  5. package/esm/cli/commands/eval/command.d.ts.map +1 -0
  6. package/esm/cli/commands/eval/command.js +289 -0
  7. package/esm/cli/commands/eval/handler.d.ts +26 -0
  8. package/esm/cli/commands/eval/handler.d.ts.map +1 -0
  9. package/esm/cli/commands/eval/handler.js +28 -0
  10. package/esm/cli/help/command-definitions.d.ts.map +1 -1
  11. package/esm/cli/help/command-definitions.js +2 -0
  12. package/esm/cli/router.d.ts.map +1 -1
  13. package/esm/cli/router.js +2 -0
  14. package/esm/deno.d.ts +3 -2
  15. package/esm/deno.js +5 -4
  16. package/esm/src/agent/runtime/client-profile.d.ts.map +1 -1
  17. package/esm/src/agent/runtime/client-profile.js +10 -1
  18. package/esm/src/config/schemas/config.schema.d.ts +12 -0
  19. package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
  20. package/esm/src/config/schemas/config.schema.js +12 -0
  21. package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
  22. package/esm/src/discovery/discovery-engine.js +6 -1
  23. package/esm/src/discovery/handlers/eval-handler.d.ts +7 -0
  24. package/esm/src/discovery/handlers/eval-handler.d.ts.map +1 -0
  25. package/esm/src/discovery/handlers/eval-handler.js +16 -0
  26. package/esm/src/discovery/handlers/index.d.ts +1 -0
  27. package/esm/src/discovery/handlers/index.d.ts.map +1 -1
  28. package/esm/src/discovery/handlers/index.js +1 -0
  29. package/esm/src/discovery/handlers/work-handler.d.ts.map +1 -1
  30. package/esm/src/discovery/handlers/work-handler.js +9 -2
  31. package/esm/src/discovery/import-rewriter.d.ts +1 -1
  32. package/esm/src/discovery/import-rewriter.d.ts.map +1 -1
  33. package/esm/src/discovery/import-rewriter.js +1 -0
  34. package/esm/src/discovery/project-discovery-config.d.ts +2 -0
  35. package/esm/src/discovery/project-discovery-config.d.ts.map +1 -1
  36. package/esm/src/discovery/project-discovery-config.js +2 -0
  37. package/esm/src/discovery/transpiler.d.ts.map +1 -1
  38. package/esm/src/discovery/transpiler.js +2 -0
  39. package/esm/src/discovery/types.d.ts +3 -0
  40. package/esm/src/discovery/types.d.ts.map +1 -1
  41. package/esm/src/eval/datasets.d.ts +8 -0
  42. package/esm/src/eval/datasets.d.ts.map +1 -0
  43. package/esm/src/eval/datasets.js +66 -0
  44. package/esm/src/eval/discovery.d.ts +43 -0
  45. package/esm/src/eval/discovery.d.ts.map +1 -0
  46. package/esm/src/eval/discovery.js +123 -0
  47. package/esm/src/eval/expect.d.ts +16 -0
  48. package/esm/src/eval/expect.d.ts.map +1 -0
  49. package/esm/src/eval/expect.js +62 -0
  50. package/esm/src/eval/factory.d.ts +6 -0
  51. package/esm/src/eval/factory.d.ts.map +1 -0
  52. package/esm/src/eval/factory.js +50 -0
  53. package/esm/src/eval/index.d.ts +33 -0
  54. package/esm/src/eval/index.d.ts.map +1 -0
  55. package/esm/src/eval/index.js +29 -0
  56. package/esm/src/eval/metrics.d.ts +55 -0
  57. package/esm/src/eval/metrics.d.ts.map +1 -0
  58. package/esm/src/eval/metrics.js +223 -0
  59. package/esm/src/eval/report.d.ts +12 -0
  60. package/esm/src/eval/report.d.ts.map +1 -0
  61. package/esm/src/eval/report.js +64 -0
  62. package/esm/src/eval/runner.d.ts +4 -0
  63. package/esm/src/eval/runner.d.ts.map +1 -0
  64. package/esm/src/eval/runner.js +101 -0
  65. package/esm/src/eval/studio.d.ts +177 -0
  66. package/esm/src/eval/studio.d.ts.map +1 -0
  67. package/esm/src/eval/studio.js +176 -0
  68. package/esm/src/eval/types.d.ts +221 -0
  69. package/esm/src/eval/types.d.ts.map +1 -0
  70. package/esm/src/eval/types.js +6 -0
  71. package/esm/src/eval/validation.d.ts +4 -0
  72. package/esm/src/eval/validation.d.ts.map +1 -0
  73. package/esm/src/eval/validation.js +41 -0
  74. package/esm/src/runs/index.d.ts +1 -1
  75. package/esm/src/runs/index.js +1 -1
  76. package/esm/src/runs/schemas.d.ts +9 -9
  77. package/esm/src/runs/schemas.d.ts.map +1 -1
  78. package/esm/src/runs/schemas.js +1 -1
  79. package/esm/src/utils/version-constant.d.ts +1 -1
  80. package/esm/src/utils/version-constant.js +1 -1
  81. package/esm/src/work/factory.d.ts.map +1 -1
  82. package/esm/src/work/factory.js +9 -7
  83. package/esm/src/work/index.d.ts +2 -2
  84. package/esm/src/work/index.d.ts.map +1 -1
  85. package/esm/src/work/index.js +1 -1
  86. package/esm/src/work/prompt-augmentation.js +3 -3
  87. package/esm/src/work/types.d.ts +16 -6
  88. package/esm/src/work/types.d.ts.map +1 -1
  89. package/package.json +4 -4
  90. package/esm/src/agent/testing/agent-tester.d.ts +0 -53
  91. package/esm/src/agent/testing/agent-tester.d.ts.map +0 -1
  92. package/esm/src/agent/testing/agent-tester.js +0 -132
  93. package/esm/src/agent/testing/durable-run-canaries/cli-runner.d.ts +0 -21
  94. package/esm/src/agent/testing/durable-run-canaries/cli-runner.d.ts.map +0 -1
  95. package/esm/src/agent/testing/durable-run-canaries/cli-runner.js +0 -66
  96. package/esm/src/agent/testing/durable-run-canaries/environment.d.ts +0 -14
  97. package/esm/src/agent/testing/durable-run-canaries/environment.d.ts.map +0 -1
  98. package/esm/src/agent/testing/durable-run-canaries/environment.js +0 -15
  99. package/esm/src/agent/testing/durable-run-canaries/index.d.ts +0 -5
  100. package/esm/src/agent/testing/durable-run-canaries/index.d.ts.map +0 -1
  101. package/esm/src/agent/testing/durable-run-canaries/index.js +0 -4
  102. package/esm/src/agent/testing/durable-run-canaries/runner.d.ts +0 -118
  103. package/esm/src/agent/testing/durable-run-canaries/runner.d.ts.map +0 -1
  104. package/esm/src/agent/testing/durable-run-canaries/runner.js +0 -391
  105. package/esm/src/agent/testing/durable-run-canaries/validation.d.ts +0 -12
  106. package/esm/src/agent/testing/durable-run-canaries/validation.d.ts.map +0 -1
  107. package/esm/src/agent/testing/durable-run-canaries/validation.js +0 -71
  108. package/esm/src/agent/testing/index.d.ts +0 -10
  109. package/esm/src/agent/testing/index.d.ts.map +0 -1
  110. package/esm/src/agent/testing/index.js +0 -9
  111. package/esm/src/agent/testing/live-evals/api-client.d.ts +0 -102
  112. package/esm/src/agent/testing/live-evals/api-client.d.ts.map +0 -1
  113. package/esm/src/agent/testing/live-evals/api-client.js +0 -313
  114. package/esm/src/agent/testing/live-evals/cli-runner.d.ts +0 -40
  115. package/esm/src/agent/testing/live-evals/cli-runner.d.ts.map +0 -1
  116. package/esm/src/agent/testing/live-evals/cli-runner.js +0 -144
  117. package/esm/src/agent/testing/live-evals/environment.d.ts +0 -15
  118. package/esm/src/agent/testing/live-evals/environment.d.ts.map +0 -1
  119. package/esm/src/agent/testing/live-evals/environment.js +0 -20
  120. package/esm/src/agent/testing/live-evals/formatting.d.ts +0 -15
  121. package/esm/src/agent/testing/live-evals/formatting.d.ts.map +0 -1
  122. package/esm/src/agent/testing/live-evals/formatting.js +0 -75
  123. package/esm/src/agent/testing/live-evals/index.d.ts +0 -12
  124. package/esm/src/agent/testing/live-evals/index.d.ts.map +0 -1
  125. package/esm/src/agent/testing/live-evals/index.js +0 -11
  126. package/esm/src/agent/testing/live-evals/metadata.d.ts +0 -34
  127. package/esm/src/agent/testing/live-evals/metadata.d.ts.map +0 -1
  128. package/esm/src/agent/testing/live-evals/metadata.js +0 -116
  129. package/esm/src/agent/testing/live-evals/performance.d.ts +0 -19
  130. package/esm/src/agent/testing/live-evals/performance.d.ts.map +0 -1
  131. package/esm/src/agent/testing/live-evals/performance.js +0 -22
  132. package/esm/src/agent/testing/live-evals/preflight.d.ts +0 -12
  133. package/esm/src/agent/testing/live-evals/preflight.d.ts.map +0 -1
  134. package/esm/src/agent/testing/live-evals/preflight.js +0 -27
  135. package/esm/src/agent/testing/live-evals/report.d.ts +0 -55
  136. package/esm/src/agent/testing/live-evals/report.d.ts.map +0 -1
  137. package/esm/src/agent/testing/live-evals/report.js +0 -79
  138. package/esm/src/agent/testing/live-evals/request.d.ts +0 -31
  139. package/esm/src/agent/testing/live-evals/request.d.ts.map +0 -1
  140. package/esm/src/agent/testing/live-evals/request.js +0 -48
  141. package/esm/src/agent/testing/live-evals/result.d.ts +0 -56
  142. package/esm/src/agent/testing/live-evals/result.d.ts.map +0 -1
  143. package/esm/src/agent/testing/live-evals/result.js +0 -36
  144. package/esm/src/agent/testing/live-evals/runner.d.ts +0 -135
  145. package/esm/src/agent/testing/live-evals/runner.d.ts.map +0 -1
  146. package/esm/src/agent/testing/live-evals/runner.js +0 -396
@@ -0,0 +1,3 @@
1
+ import type { CommandHelp } from "../../help/types.js";
2
+ export declare const evalHelp: CommandHelp;
3
+ //# sourceMappingURL=command-help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-help.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/eval/command-help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,eAAO,MAAM,QAAQ,EAAE,WAyCtB,CAAC"}
@@ -0,0 +1,42 @@
1
+ export const evalHelp = {
2
+ name: "eval",
3
+ category: "ai",
4
+ description: "Discover and run eval definitions",
5
+ usage: "veryfront eval [eval-id] [options]",
6
+ options: [
7
+ {
8
+ flag: "-l, --list",
9
+ description: "List discovered evals",
10
+ },
11
+ {
12
+ flag: "--dataset-base <path>",
13
+ description: "Base directory for JSON and JSONL datasets",
14
+ },
15
+ {
16
+ flag: "--report <path>",
17
+ description: "Write the raw eval report JSON to a file",
18
+ },
19
+ {
20
+ flag: "--junit <path>",
21
+ description: "Write a JUnit XML report to a file",
22
+ },
23
+ {
24
+ flag: "--model <provider/model>",
25
+ description: "Override the target agent model",
26
+ },
27
+ {
28
+ flag: "--max-output-tokens <count>",
29
+ description: "Limit target agent output tokens",
30
+ },
31
+ {
32
+ flag: "--debug",
33
+ description: "Show discovery warnings",
34
+ },
35
+ ],
36
+ examples: [
37
+ "veryfront eval --list",
38
+ "veryfront eval deep-research",
39
+ "veryfront eval eval:deep-research --report .veryfront/evals/deep-research.json --junit .veryfront/evals/deep-research.xml",
40
+ "veryfront eval deep-research --json",
41
+ ],
42
+ };
@@ -0,0 +1,21 @@
1
+ import type { EvalReport } from "../../../src/eval/index.js";
2
+ import type { EvalArgs } from "./handler.js";
3
+ export interface EvalOptions extends EvalArgs {
4
+ }
5
+ type CliEvalSummary = {
6
+ runId: string;
7
+ evalId: string;
8
+ target: string;
9
+ records: number;
10
+ passed: number;
11
+ failed: number;
12
+ passRate: number;
13
+ metrics: EvalReport["summary"]["metrics"];
14
+ };
15
+ export declare function normalizeEvalCliId(id: string): string;
16
+ export declare function normalizeEvalInputForAgent(input: unknown): string;
17
+ export declare function summarizeReportForCli(report: EvalReport): CliEvalSummary;
18
+ export declare function createJunitXml(report: EvalReport): string;
19
+ export declare function evalCommand(options: EvalOptions): Promise<void>;
20
+ export {};
21
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/eval/command.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAKV,UAAU,EAEX,MAAM,4BAA4B,CAAC;AAWpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,WAAY,SAAQ,QAAQ;CAAG;AAEhD,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC;CAC3C,CAAC;AAiDF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASjE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAWxE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA0CzD;AAmHD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6FrE"}
@@ -0,0 +1,289 @@
1
+ /**
2
+ * Eval command - Discover and run eval definitions from the evals/ directory.
3
+ */
4
+ import * as dntShim from "../../../_dnt.shims.js";
5
+ import { dirname, relative } from "../../../deps/jsr.io/@std/path/1.1.4/mod.js";
6
+ import { createProjectDiscoveryConfig, discoverAll } from "../../../src/discovery/index.js";
7
+ import { discoverEvals, runEval } from "../../../src/eval/index.js";
8
+ import { cliLogger, exitProcess } from "../../utils/index.js";
9
+ import { createErrorEnvelope, createSuccessEnvelope, isJsonMode, outputJson, } from "../../shared/json-output.js";
10
+ import { withProjectSourceContext } from "../../shared/project-source-context.js";
11
+ function xmlEscape(value) {
12
+ return value
13
+ .replaceAll("&", "&amp;")
14
+ .replaceAll("<", "&lt;")
15
+ .replaceAll(">", "&gt;")
16
+ .replaceAll('"', "&quot;")
17
+ .replaceAll("'", "&apos;");
18
+ }
19
+ function stripFileProtocol(path) {
20
+ if (!path.startsWith("file://"))
21
+ return path;
22
+ return decodeURIComponent(new URL(path).pathname);
23
+ }
24
+ function displaySourcePath(filePath, projectDir) {
25
+ const normalized = stripFileProtocol(filePath);
26
+ if (normalized.startsWith(projectDir)) {
27
+ return relative(projectDir, normalized);
28
+ }
29
+ return normalized;
30
+ }
31
+ function blockingResults(record) {
32
+ return [...(record.metrics ?? []), ...(record.checks ?? [])].filter((result) => !result.skipped && result.pass === false &&
33
+ (result.severity === "gate" || result.severity === "budget"));
34
+ }
35
+ function skippedResults(record) {
36
+ return [...(record.metrics ?? []), ...(record.checks ?? [])].filter((result) => result.skipped);
37
+ }
38
+ function testcaseName(record) {
39
+ return `${record.exampleId}#${record.repetition}`;
40
+ }
41
+ function failureMessage(result) {
42
+ return `${result.name} failed`;
43
+ }
44
+ function failureBody(result) {
45
+ if (result.explanation)
46
+ return result.explanation;
47
+ if (result.evidence)
48
+ return JSON.stringify(result.evidence);
49
+ return failureMessage(result);
50
+ }
51
+ export function normalizeEvalCliId(id) {
52
+ return id.startsWith("eval:") ? id : `eval:${id}`;
53
+ }
54
+ export function normalizeEvalInputForAgent(input) {
55
+ if (typeof input === "string")
56
+ return input;
57
+ if (input && typeof input === "object") {
58
+ const record = input;
59
+ for (const key of ["prompt", "question", "input"]) {
60
+ if (typeof record[key] === "string")
61
+ return record[key];
62
+ }
63
+ }
64
+ return JSON.stringify(input);
65
+ }
66
+ export function summarizeReportForCli(report) {
67
+ return {
68
+ runId: report.runId,
69
+ evalId: report.definitionId,
70
+ target: report.target,
71
+ records: report.summary.records,
72
+ passed: report.summary.passed,
73
+ failed: report.summary.failed,
74
+ passRate: report.summary.passRate,
75
+ metrics: report.summary.metrics,
76
+ };
77
+ }
78
+ export function createJunitXml(report) {
79
+ const skipped = report.records.reduce((count, record) => count + skippedResults(record).length, 0);
80
+ const lines = [
81
+ '<?xml version="1.0" encoding="UTF-8"?>',
82
+ `<testsuite name="${xmlEscape(report.definitionId)}" tests="${report.summary.records}" failures="${report.summary.failed}" skipped="${skipped}">`,
83
+ ];
84
+ for (const record of report.records) {
85
+ const failures = blockingResults(record);
86
+ const skips = skippedResults(record);
87
+ const attrs = `classname="${xmlEscape(report.definitionId)}" name="${xmlEscape(testcaseName(record))}" time="${(record.durationMs / 1000).toFixed(3)}"`;
88
+ if (failures.length === 0 && skips.length === 0) {
89
+ lines.push(` <testcase ${attrs} />`);
90
+ continue;
91
+ }
92
+ lines.push(` <testcase ${attrs}>`);
93
+ for (const failure of failures) {
94
+ lines.push(` <failure message="${xmlEscape(failureMessage(failure))}">${xmlEscape(failureBody(failure))}</failure>`);
95
+ }
96
+ for (const skip of skips) {
97
+ lines.push(` <skipped message="${xmlEscape(skip.explanation ?? `${skip.name} skipped`)}" />`);
98
+ }
99
+ lines.push(" </testcase>");
100
+ }
101
+ lines.push("</testsuite>");
102
+ return `${lines.join("\n")}\n`;
103
+ }
104
+ async function writeTextFileEnsuringDir(path, content) {
105
+ const dir = dirname(path);
106
+ if (dir && dir !== ".")
107
+ await dntShim.Deno.mkdir(dir, { recursive: true });
108
+ await dntShim.Deno.writeTextFile(path, content);
109
+ }
110
+ function resolveAgentTargetId(target) {
111
+ return target.startsWith("agent:") ? target.slice("agent:".length) : target;
112
+ }
113
+ function normalizeUsage(response) {
114
+ return response.usage
115
+ ? {
116
+ inputTokens: response.usage.promptTokens,
117
+ outputTokens: response.usage.completionTokens,
118
+ totalTokens: response.usage.totalTokens,
119
+ }
120
+ : {};
121
+ }
122
+ function normalizeToolCalls(response) {
123
+ return response.toolCalls.map((toolCall) => ({
124
+ name: toolCall.name,
125
+ status: toolCall.status === "error" ? "error" : "ok",
126
+ ...(toolCall.error ? { error: toolCall.error } : {}),
127
+ }));
128
+ }
129
+ function createAgentAdapter(agent, options) {
130
+ return async ({ example }) => {
131
+ const started = Date.now();
132
+ const response = await agent.generate({
133
+ input: normalizeEvalInputForAgent(example.input),
134
+ ...(options.model ? { model: options.model } : {}),
135
+ ...(options.maxOutputTokens ? { maxOutputTokens: options.maxOutputTokens } : {}),
136
+ });
137
+ return {
138
+ text: response.text,
139
+ trace: {
140
+ events: response.messages,
141
+ toolCalls: normalizeToolCalls(response),
142
+ },
143
+ usage: normalizeUsage(response),
144
+ durationMs: Date.now() - started,
145
+ completed: response.status === "completed",
146
+ ...(response.status === "error" ? { error: response.text } : {}),
147
+ };
148
+ };
149
+ }
150
+ function listEvals(evals, projectDir) {
151
+ return evals.map((item) => ({
152
+ id: item.id,
153
+ name: item.name,
154
+ target: item.definition.target,
155
+ source: {
156
+ filePath: displaySourcePath(item.filePath, projectDir),
157
+ exportName: item.exportName,
158
+ },
159
+ }));
160
+ }
161
+ function printReport(report) {
162
+ cliLogger.info(`Eval ${report.definitionId}`);
163
+ cliLogger.info(`Target: ${report.target}`);
164
+ cliLogger.info(`Result: ${report.summary.passed}/${report.summary.records} passed (${Math.round(report.summary.passRate * 100)}%)`);
165
+ for (const metric of report.summary.metrics) {
166
+ cliLogger.info(` ${metric.name}: ${metric.passed}/${metric.passed + metric.failed} passed (${Math.round(metric.passRate * 100)}%)`);
167
+ }
168
+ }
169
+ async function outputEvalNotFound(id, evals) {
170
+ if (isJsonMode()) {
171
+ await outputJson(createErrorEnvelope("eval", {
172
+ code: "NOT_FOUND",
173
+ slug: "eval-not-found",
174
+ message: `Eval "${id}" not found`,
175
+ context: { available: evals.map((item) => item.id) },
176
+ }));
177
+ }
178
+ else {
179
+ cliLogger.error(`Eval "${id}" not found.`);
180
+ if (evals.length > 0) {
181
+ cliLogger.info("Available evals:");
182
+ for (const item of evals)
183
+ cliLogger.info(` - ${item.id}`);
184
+ }
185
+ else {
186
+ cliLogger.info("No evals found. Create an eval file in evals/.");
187
+ }
188
+ }
189
+ exitProcess(1);
190
+ }
191
+ async function outputAgentNotFound(agentId) {
192
+ if (isJsonMode()) {
193
+ await outputJson(createErrorEnvelope("eval", {
194
+ code: "NOT_FOUND",
195
+ slug: "eval-agent-not-found",
196
+ message: `Agent "${agentId}" not found`,
197
+ }));
198
+ }
199
+ else {
200
+ cliLogger.error(`Agent "${agentId}" not found for eval target.`);
201
+ }
202
+ exitProcess(1);
203
+ }
204
+ export async function evalCommand(options) {
205
+ const projectDir = dntShim.Deno.cwd();
206
+ await withProjectSourceContext(projectDir, async ({ adapter, config }) => {
207
+ const evalDiscovery = await discoverEvals({ projectDir, adapter, config });
208
+ if (options.debug) {
209
+ for (const error of evalDiscovery.errors) {
210
+ cliLogger.warn(`Eval discovery warning: ${error.filePath}: ${error.error}`);
211
+ }
212
+ }
213
+ if (options.list) {
214
+ const evals = listEvals(evalDiscovery.evals, projectDir);
215
+ if (isJsonMode()) {
216
+ await outputJson(createSuccessEnvelope("eval", { evals, errors: evalDiscovery.errors }));
217
+ return;
218
+ }
219
+ if (evals.length === 0) {
220
+ cliLogger.info("No evals found.");
221
+ return;
222
+ }
223
+ cliLogger.info("Evals:");
224
+ for (const item of evals) {
225
+ cliLogger.info(` - ${item.id} (${item.target})`);
226
+ }
227
+ return;
228
+ }
229
+ if (!options.id) {
230
+ if (isJsonMode()) {
231
+ await outputJson(createErrorEnvelope("eval", {
232
+ code: "USAGE_ERROR",
233
+ slug: "eval-id-required",
234
+ message: "Eval id is required",
235
+ }));
236
+ }
237
+ else {
238
+ cliLogger.error("Eval id is required. Usage: veryfront eval <eval-id>");
239
+ }
240
+ exitProcess(2);
241
+ return;
242
+ }
243
+ const evalId = normalizeEvalCliId(options.id);
244
+ const evalItem = evalDiscovery.evals.find((item) => item.id === evalId);
245
+ if (!evalItem) {
246
+ await outputEvalNotFound(evalId, evalDiscovery.evals);
247
+ return;
248
+ }
249
+ const discoveryConfig = createProjectDiscoveryConfig({
250
+ projectDir,
251
+ config,
252
+ fsAdapter: adapter.fs,
253
+ verbose: options.debug,
254
+ });
255
+ const projectDiscovery = await discoverAll(discoveryConfig);
256
+ const agentId = resolveAgentTargetId(evalItem.definition.target);
257
+ const agent = projectDiscovery.agents.get(agentId);
258
+ if (!agent) {
259
+ await outputAgentNotFound(agentId);
260
+ return;
261
+ }
262
+ const report = await runEval(evalItem.definition, {
263
+ baseDir: options.datasetBase ?? projectDir,
264
+ adapters: {
265
+ agent: createAgentAdapter(agent, options),
266
+ },
267
+ });
268
+ if (options.report) {
269
+ await writeTextFileEnsuringDir(options.report, JSON.stringify(report, null, 2));
270
+ }
271
+ if (options.junit) {
272
+ await writeTextFileEnsuringDir(options.junit, createJunitXml(report));
273
+ }
274
+ if (isJsonMode()) {
275
+ await outputJson(createSuccessEnvelope("eval", {
276
+ report,
277
+ summary: summarizeReportForCli(report),
278
+ }));
279
+ }
280
+ else {
281
+ printReport(report);
282
+ if (options.report)
283
+ cliLogger.info(`Report: ${options.report}`);
284
+ if (options.junit)
285
+ cliLogger.info(`JUnit: ${options.junit}`);
286
+ }
287
+ exitProcess(report.summary.failed === 0 ? 0 : 1);
288
+ });
289
+ }
@@ -0,0 +1,26 @@
1
+ import type { InferSchema } from "../../../src/extensions/schema/index.js";
2
+ import type { ParsedArgs } from "../../shared/types.js";
3
+ declare const getEvalArgsSchema: () => import("../../../src/internal-agents/schema.js").Schema<import("../../../src/extensions/schema/schema-validator.js").InferShape<{
4
+ id: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
5
+ list: import("../../../src/internal-agents/schema.js").Schema<boolean>;
6
+ datasetBase: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
7
+ report: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
8
+ junit: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
9
+ debug: import("../../../src/internal-agents/schema.js").Schema<boolean>;
10
+ model: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
11
+ maxOutputTokens: import("../../../src/internal-agents/schema.js").Schema<number | undefined>;
12
+ }>>;
13
+ export type EvalArgs = InferSchema<ReturnType<typeof getEvalArgsSchema>>;
14
+ export declare const parseEvalArgs: (args: ParsedArgs) => import("../../shared/args.js").SafeParseResult<import("../../../src/extensions/schema/schema-validator.js").InferShape<{
15
+ id: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
16
+ list: import("../../../src/internal-agents/schema.js").Schema<boolean>;
17
+ datasetBase: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
18
+ report: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
19
+ junit: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
20
+ debug: import("../../../src/internal-agents/schema.js").Schema<boolean>;
21
+ model: import("../../../src/internal-agents/schema.js").Schema<string | undefined>;
22
+ maxOutputTokens: import("../../../src/internal-agents/schema.js").Schema<number | undefined>;
23
+ }>>;
24
+ export declare function handleEvalCommand(args: ParsedArgs): Promise<void>;
25
+ export {};
26
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/eval/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,QAAA,MAAM,iBAAiB;;;;;;;;;GAWtB,CAAC;AAIF,MAAM,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAEzE,eAAO,MAAM,aAAa;;;;;;;;;GASxB,CAAC;AAEH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAIvE"}
@@ -0,0 +1,28 @@
1
+ import { defineSchema, lazySchema } from "../../../src/schemas/index.js";
2
+ import { createArgParser, parseArgsOrThrow } from "../../shared/args.js";
3
+ const getEvalArgsSchema = defineSchema((v) => v.object({
4
+ id: v.string().optional(),
5
+ list: v.boolean().default(false),
6
+ datasetBase: v.string().optional(),
7
+ report: v.string().optional(),
8
+ junit: v.string().optional(),
9
+ debug: v.boolean().default(false),
10
+ model: v.string().optional(),
11
+ maxOutputTokens: v.number().int().positive().optional(),
12
+ }));
13
+ const EvalArgsSchema = lazySchema(getEvalArgsSchema);
14
+ export const parseEvalArgs = createArgParser(EvalArgsSchema, {
15
+ id: { keys: ["id"], type: "string", positional: 0 },
16
+ list: { keys: ["list", "l"], type: "boolean" },
17
+ datasetBase: { keys: ["dataset-base"], type: "string" },
18
+ report: { keys: ["report"], type: "string" },
19
+ junit: { keys: ["junit"], type: "string" },
20
+ debug: { keys: ["debug"], type: "boolean" },
21
+ model: { keys: ["model"], type: "string" },
22
+ maxOutputTokens: { keys: ["max-output-tokens"], type: "number" },
23
+ });
24
+ export async function handleEvalCommand(args) {
25
+ const opts = parseArgsOrThrow(parseEvalArgs, "eval", args);
26
+ const { evalCommand } = await import("./command.js");
27
+ await evalCommand(opts);
28
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"command-definitions.d.ts","sourceRoot":"","sources":["../../../src/cli/help/command-definitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA2ClD;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,eAyCtB,CAAC"}
1
+ {"version":3,"file":"command-definitions.d.ts","sourceRoot":"","sources":["../../../src/cli/help/command-definitions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA4ClD;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,eA0CtB,CAAC"}
@@ -34,6 +34,7 @@ import { mcpHelp } from "../commands/mcp/command-help.js";
34
34
  import { issuesHelp } from "../commands/issues/command-help.js";
35
35
  import { startHelp } from "../commands/start/command-help.js";
36
36
  import { taskHelp } from "../commands/task/command-help.js";
37
+ import { evalHelp } from "../commands/eval/command-help.js";
37
38
  import { workerHelp } from "../commands/worker/command-help.js";
38
39
  import { workflowHelp } from "../commands/workflow/command-help.js";
39
40
  import { schemaHelp } from "../commands/schema/command-help.js";
@@ -79,6 +80,7 @@ export const COMMANDS = {
79
80
  issues: issuesHelp,
80
81
  start: startHelp,
81
82
  task: taskHelp,
83
+ eval: evalHelp,
82
84
  worker: workerHelp,
83
85
  workflow: workflowHelp,
84
86
  schema: schemaHelp,
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/cli/router.ts"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAgHpD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyHlE"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/cli/router.ts"],"names":[],"mappings":"AA6DA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAiHpD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAyHlE"}
package/esm/cli/router.js CHANGED
@@ -33,6 +33,7 @@ import { handleStudioCommand } from "./commands/studio/handler.js";
33
33
  import { handleStylesCommand } from "./commands/styles/handler.js";
34
34
  import { handleUpCommand } from "./commands/up/index.js";
35
35
  import { handleTaskCommand } from "./commands/task/handler.js";
36
+ import { handleEvalCommand } from "./commands/eval/handler.js";
36
37
  import { handleWorkflowCommand } from "./commands/workflow/handler.js";
37
38
  import { handleWorkerCommand } from "./commands/worker/handler.js";
38
39
  import { handleSchemaCommand } from "./commands/schema/handler.js";
@@ -114,6 +115,7 @@ const commands = {
114
115
  "issues": handleIssuesCommand,
115
116
  "start": handleStartCommand,
116
117
  "task": handleTaskCommand,
118
+ "eval": handleEvalCommand,
117
119
  "workflow": handleWorkflowCommand,
118
120
  "worker": handleWorkerCommand,
119
121
  "schema": handleSchemaCommand,
package/esm/deno.d.ts CHANGED
@@ -22,7 +22,7 @@ declare namespace _default {
22
22
  "./mdx": string;
23
23
  "./agent": string;
24
24
  "./agent/identity": string;
25
- "./agent/testing": string;
25
+ "./eval": string;
26
26
  "./channels/control-plane": string;
27
27
  "./channels/invoke": string;
28
28
  "./tool": string;
@@ -89,9 +89,9 @@ declare namespace _default {
89
89
  "veryfront/sandbox": string;
90
90
  "veryfront/embedding": string;
91
91
  "veryfront/runs": string;
92
+ "veryfront/eval": string;
92
93
  "veryfront/agent/identity": string;
93
94
  "veryfront/agent/react": string;
94
- "veryfront/agent/testing": string;
95
95
  "veryfront/agent/middleware": string;
96
96
  "veryfront/workflow/react": string;
97
97
  "veryfront/workflow/executor": string;
@@ -168,6 +168,7 @@ declare namespace _default {
168
168
  "#veryfront/discovery": string;
169
169
  "#veryfront/data": string;
170
170
  "#veryfront/errors": string;
171
+ "#veryfront/eval": string;
171
172
  "#veryfront/html": string;
172
173
  "#veryfront/mcp": string;
173
174
  "#veryfront/middleware": string;
package/esm/deno.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.870",
3
+ "version": "0.1.872",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -77,7 +77,7 @@ export default {
77
77
  "./mdx": "./src/mdx/index.ts",
78
78
  "./agent": "./src/agent/index.ts",
79
79
  "./agent/identity": "./src/agent/identity-contracts.ts",
80
- "./agent/testing": "./src/agent/testing/index.ts",
80
+ "./eval": "./src/eval/index.ts",
81
81
  "./channels/control-plane": "./src/channels/control-plane.ts",
82
82
  "./channels/invoke": "./src/channels/invoke.ts",
83
83
  "./tool": "./src/tool/index.ts",
@@ -144,9 +144,9 @@ export default {
144
144
  "veryfront/sandbox": "./src/sandbox/index.ts",
145
145
  "veryfront/embedding": "./src/embedding/index.ts",
146
146
  "veryfront/runs": "./src/runs/index.ts",
147
+ "veryfront/eval": "./src/eval/index.ts",
147
148
  "veryfront/agent/identity": "./src/agent/identity-contracts.ts",
148
149
  "veryfront/agent/react": "./src/agent/react/index.ts",
149
- "veryfront/agent/testing": "./src/agent/testing/index.ts",
150
150
  "veryfront/agent/middleware": "./src/agent/middleware/index.ts",
151
151
  "veryfront/workflow/react": "./src/workflow/react/index.ts",
152
152
  "veryfront/workflow/executor": "./src/workflow/executor/index.ts",
@@ -223,6 +223,7 @@ export default {
223
223
  "#veryfront/discovery": "./src/discovery/index.ts",
224
224
  "#veryfront/data": "./src/data/index.ts",
225
225
  "#veryfront/errors": "./src/errors/index.ts",
226
+ "#veryfront/eval": "./src/eval/index.ts",
226
227
  "#veryfront/html": "./src/html/index.ts",
227
228
  "#veryfront/mcp": "./src/mcp/index.ts",
228
229
  "#veryfront/middleware": "./src/middleware/index.ts",
@@ -373,7 +374,7 @@ export default {
373
374
  "lint": "DENO_NO_PACKAGE_JSON=1 deno lint src/ cli/ react/ && deno lint --config=scripts/test.deno.json scripts/test/ scripts/build/npm-package-metadata.test.ts",
374
375
  "fmt": "deno fmt src/ cli/ react/ && deno fmt --config=scripts/test.deno.json scripts/test/",
375
376
  "fmt:check": "deno fmt --check src/ cli/ react/ && deno fmt --check --config=scripts/test.deno.json scripts/test/",
376
- "typecheck": "deno task generate:manifests:check && deno check src/index.ts cli/main.ts src/server/index.ts src/routing/api/index.ts src/rendering/index.ts src/platform/index.ts src/platform/adapters/index.ts src/build/index.ts src/build/production-build/index.ts src/transforms/index.ts src/config/index.ts src/utils/index.ts src/data/index.ts src/security/index.ts src/middleware/index.ts src/server/handlers/dev/index.ts src/server/handlers/request/api/index.ts src/rendering/cache/index.ts src/rendering/cache/stores/index.ts src/rendering/rsc/actions/index.ts src/html/index.ts src/modules/index.ts src/proxy/main.ts src/chat/index.ts src/markdown/index.ts src/mdx/index.ts src/fs/index.ts src/oauth/index.ts src/agent/index.ts src/agent/service/route-export.check.ts src/tool/index.ts src/workflow/index.ts src/work/index.ts src/prompt/index.ts src/resource/index.ts src/runs/index.ts src/mcp/index.ts src/provider/index.ts",
377
+ "typecheck": "deno task generate:manifests:check && deno check src/index.ts cli/main.ts src/server/index.ts src/routing/api/index.ts src/rendering/index.ts src/platform/index.ts src/platform/adapters/index.ts src/build/index.ts src/build/production-build/index.ts src/transforms/index.ts src/config/index.ts src/utils/index.ts src/data/index.ts src/security/index.ts src/middleware/index.ts src/server/handlers/dev/index.ts src/server/handlers/request/api/index.ts src/rendering/cache/index.ts src/rendering/cache/stores/index.ts src/rendering/rsc/actions/index.ts src/html/index.ts src/modules/index.ts src/proxy/main.ts src/chat/index.ts src/markdown/index.ts src/mdx/index.ts src/fs/index.ts src/oauth/index.ts src/agent/index.ts src/agent/service/route-export.check.ts src/eval/index.ts src/tool/index.ts src/workflow/index.ts src/work/index.ts src/prompt/index.ts src/resource/index.ts src/runs/index.ts src/mcp/index.ts src/provider/index.ts",
377
378
  "verify": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:validate && deno task typecheck && deno task test && deno task test:e2e:binary",
378
379
  "verify:quick": "deno task generate:manifests:check && deno task fmt:check && deno task lint && deno task lint:style && deno task lint:cli-boundary && deno task lint:wildcard-exports && deno task lint:barrel-jsdoc && deno task lint:ban-test-only && deno task lint:sanitizer-baseline && deno task lint:skipped-tests && deno task lint:ban-zod && deno task lint:core-deps && deno task lint:dependency-boundaries && deno task lint:extension-contracts && deno task lint:extension-capabilities && deno task docs:validate && deno task typecheck",
379
380
  "docs": "deno run --allow-read --allow-write --allow-run --allow-env scripts/docs/generate-api-reference.ts",
@@ -1 +1 @@
1
- {"version":3,"file":"client-profile.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/client-profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,8CAA8C;AAC9C,eAAO,MAAM,0BAA0B,gEAEtC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,gCAAgC,gEAO5C,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,6BAA6B;;;;;GAOzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,0DAAyC,CAAC;AAC9E;;GAEG;AACH,eAAO,MAAM,6BAA6B,0DAA+C,CAAC;AAC1F;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;GAA4C,CAAC;AAEpF,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC;AAC3F,yDAAyD;AACzD,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAC/C,UAAU,CAAC,OAAO,gCAAgC,CAAC,CACpD,CAAC;AACF,sDAAsD;AACtD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AA0CjG,uCAAuC;AACvC,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAClD,oBAAoB,GAAG,IAAI,CA4B7B;AAED,uCAAuC;AACvC,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACrD,OAAO,CAUT"}
1
+ {"version":3,"file":"client-profile.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/client-profile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAEpE,8CAA8C;AAC9C,eAAO,MAAM,0BAA0B,gEAEtC,CAAC;AAEF,oDAAoD;AACpD,eAAO,MAAM,gCAAgC,gEAS5C,CAAC;AAEF,iDAAiD;AACjD,eAAO,MAAM,6BAA6B;;;;;GAOzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,uBAAuB,0DAAyC,CAAC;AAC9E;;GAEG;AACH,eAAO,MAAM,6BAA6B,0DAA+C,CAAC;AAC1F;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;GAA4C,CAAC;AAEpF,mDAAmD;AACnD,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC;AAC3F,yDAAyD;AACzD,MAAM,MAAM,uBAAuB,GAAG,WAAW,CAC/C,UAAU,CAAC,OAAO,gCAAgC,CAAC,CACpD,CAAC;AACF,sDAAsD;AACtD,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AAiDjG,uCAAuC;AACvC,wBAAgB,2BAA2B,CACzC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAClD,oBAAoB,GAAG,IAAI,CA4B7B;AAED,uCAAuC;AACvC,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,GACrD,OAAO,CAUT"}
@@ -7,6 +7,8 @@ export const getRuntimeClientCapabilitySchema = defineSchema((v) => v.enum([
7
7
  "form_input",
8
8
  "media_display",
9
9
  "project_switching",
10
+ "project.evals.read",
11
+ "project.evals.write",
10
12
  ]));
11
13
  /** Zod schema for get runtime client profile. */
12
14
  export const getRuntimeClientProfileSchema = defineSchema((v) => v.object({
@@ -44,7 +46,14 @@ const getClientEnvelopeSchema = defineSchema((v) => v.object({
44
46
  const FIRST_PARTY_CLIENTS = {
45
47
  "veryfront-studio": {
46
48
  type: "web",
47
- capabilities: ["ui_panels", "form_input", "media_display", "project_switching"],
49
+ capabilities: [
50
+ "ui_panels",
51
+ "form_input",
52
+ "media_display",
53
+ "project_switching",
54
+ "project.evals.read",
55
+ "project.evals.write",
56
+ ],
48
57
  },
49
58
  "veryfront-cli": {
50
59
  type: "cli",
@@ -313,6 +313,12 @@ export declare const getVeryfrontConfigSchema: () => import("../../internal-agen
313
313
  paths: import("../../internal-agents/schema.js").Schema<string[] | undefined>;
314
314
  }>> | undefined>;
315
315
  }>> | undefined>;
316
+ evals: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
317
+ discovery: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
318
+ enabled: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
319
+ paths: import("../../internal-agents/schema.js").Schema<string[] | undefined>;
320
+ }>> | undefined>;
321
+ }>> | undefined>;
316
322
  mcp: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
317
323
  enabled: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
318
324
  port: import("../../internal-agents/schema.js").Schema<number | undefined>;
@@ -717,6 +723,12 @@ export declare const veryfrontConfigSchema: import("../../internal-agents/schema
717
723
  paths: import("../../internal-agents/schema.js").Schema<string[] | undefined>;
718
724
  }>> | undefined>;
719
725
  }>> | undefined>;
726
+ evals: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
727
+ discovery: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
728
+ enabled: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
729
+ paths: import("../../internal-agents/schema.js").Schema<string[] | undefined>;
730
+ }>> | undefined>;
731
+ }>> | undefined>;
720
732
  mcp: import("../../internal-agents/schema.js").Schema<Partial<import("../../extensions/schema/schema-validator.js").InferShape<{
721
733
  enabled: import("../../internal-agents/schema.js").Schema<boolean | undefined>;
722
734
  port: import("../../internal-agents/schema.js").Schema<number | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/config/schemas/config.schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.schema.d.ts","sourceRoot":"","sources":["../../../../src/src/config/schemas/config.schema.ts"],"names":[],"mappings":"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"}
@@ -479,6 +479,18 @@ export const getVeryfrontConfigSchema = defineSchema((v) => v
479
479
  })
480
480
  .partial()
481
481
  .optional(),
482
+ evals: v
483
+ .object({
484
+ discovery: v
485
+ .object({
486
+ enabled: v.boolean().optional(),
487
+ paths: v.array(v.string()).optional(),
488
+ })
489
+ .partial()
490
+ .optional(),
491
+ })
492
+ .partial()
493
+ .optional(),
482
494
  mcp: v
483
495
  .object({
484
496
  enabled: v.boolean().optional(),