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.
- package/esm/cli/commands/eval/command-help.d.ts +3 -0
- package/esm/cli/commands/eval/command-help.d.ts.map +1 -0
- package/esm/cli/commands/eval/command-help.js +42 -0
- package/esm/cli/commands/eval/command.d.ts +21 -0
- package/esm/cli/commands/eval/command.d.ts.map +1 -0
- package/esm/cli/commands/eval/command.js +289 -0
- package/esm/cli/commands/eval/handler.d.ts +26 -0
- package/esm/cli/commands/eval/handler.d.ts.map +1 -0
- package/esm/cli/commands/eval/handler.js +28 -0
- package/esm/cli/help/command-definitions.d.ts.map +1 -1
- package/esm/cli/help/command-definitions.js +2 -0
- package/esm/cli/router.d.ts.map +1 -1
- package/esm/cli/router.js +2 -0
- package/esm/deno.d.ts +3 -2
- package/esm/deno.js +5 -4
- package/esm/src/agent/runtime/client-profile.d.ts.map +1 -1
- package/esm/src/agent/runtime/client-profile.js +10 -1
- package/esm/src/config/schemas/config.schema.d.ts +12 -0
- package/esm/src/config/schemas/config.schema.d.ts.map +1 -1
- package/esm/src/config/schemas/config.schema.js +12 -0
- package/esm/src/discovery/discovery-engine.d.ts.map +1 -1
- package/esm/src/discovery/discovery-engine.js +6 -1
- package/esm/src/discovery/handlers/eval-handler.d.ts +7 -0
- package/esm/src/discovery/handlers/eval-handler.d.ts.map +1 -0
- package/esm/src/discovery/handlers/eval-handler.js +16 -0
- package/esm/src/discovery/handlers/index.d.ts +1 -0
- package/esm/src/discovery/handlers/index.d.ts.map +1 -1
- package/esm/src/discovery/handlers/index.js +1 -0
- package/esm/src/discovery/handlers/work-handler.d.ts.map +1 -1
- package/esm/src/discovery/handlers/work-handler.js +9 -2
- package/esm/src/discovery/import-rewriter.d.ts +1 -1
- package/esm/src/discovery/import-rewriter.d.ts.map +1 -1
- package/esm/src/discovery/import-rewriter.js +1 -0
- package/esm/src/discovery/project-discovery-config.d.ts +2 -0
- package/esm/src/discovery/project-discovery-config.d.ts.map +1 -1
- package/esm/src/discovery/project-discovery-config.js +2 -0
- package/esm/src/discovery/transpiler.d.ts.map +1 -1
- package/esm/src/discovery/transpiler.js +2 -0
- package/esm/src/discovery/types.d.ts +3 -0
- package/esm/src/discovery/types.d.ts.map +1 -1
- package/esm/src/eval/datasets.d.ts +8 -0
- package/esm/src/eval/datasets.d.ts.map +1 -0
- package/esm/src/eval/datasets.js +66 -0
- package/esm/src/eval/discovery.d.ts +43 -0
- package/esm/src/eval/discovery.d.ts.map +1 -0
- package/esm/src/eval/discovery.js +123 -0
- package/esm/src/eval/expect.d.ts +16 -0
- package/esm/src/eval/expect.d.ts.map +1 -0
- package/esm/src/eval/expect.js +62 -0
- package/esm/src/eval/factory.d.ts +6 -0
- package/esm/src/eval/factory.d.ts.map +1 -0
- package/esm/src/eval/factory.js +50 -0
- package/esm/src/eval/index.d.ts +33 -0
- package/esm/src/eval/index.d.ts.map +1 -0
- package/esm/src/eval/index.js +29 -0
- package/esm/src/eval/metrics.d.ts +55 -0
- package/esm/src/eval/metrics.d.ts.map +1 -0
- package/esm/src/eval/metrics.js +223 -0
- package/esm/src/eval/report.d.ts +12 -0
- package/esm/src/eval/report.d.ts.map +1 -0
- package/esm/src/eval/report.js +64 -0
- package/esm/src/eval/runner.d.ts +4 -0
- package/esm/src/eval/runner.d.ts.map +1 -0
- package/esm/src/eval/runner.js +101 -0
- package/esm/src/eval/studio.d.ts +177 -0
- package/esm/src/eval/studio.d.ts.map +1 -0
- package/esm/src/eval/studio.js +176 -0
- package/esm/src/eval/types.d.ts +221 -0
- package/esm/src/eval/types.d.ts.map +1 -0
- package/esm/src/eval/types.js +6 -0
- package/esm/src/eval/validation.d.ts +4 -0
- package/esm/src/eval/validation.d.ts.map +1 -0
- package/esm/src/eval/validation.js +41 -0
- package/esm/src/runs/index.d.ts +1 -1
- package/esm/src/runs/index.js +1 -1
- package/esm/src/runs/schemas.d.ts +9 -9
- package/esm/src/runs/schemas.d.ts.map +1 -1
- package/esm/src/runs/schemas.js +1 -1
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/esm/src/work/factory.d.ts.map +1 -1
- package/esm/src/work/factory.js +9 -7
- package/esm/src/work/index.d.ts +2 -2
- package/esm/src/work/index.d.ts.map +1 -1
- package/esm/src/work/index.js +1 -1
- package/esm/src/work/prompt-augmentation.js +3 -3
- package/esm/src/work/types.d.ts +16 -6
- package/esm/src/work/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/esm/src/agent/testing/agent-tester.d.ts +0 -53
- package/esm/src/agent/testing/agent-tester.d.ts.map +0 -1
- package/esm/src/agent/testing/agent-tester.js +0 -132
- package/esm/src/agent/testing/durable-run-canaries/cli-runner.d.ts +0 -21
- package/esm/src/agent/testing/durable-run-canaries/cli-runner.d.ts.map +0 -1
- package/esm/src/agent/testing/durable-run-canaries/cli-runner.js +0 -66
- package/esm/src/agent/testing/durable-run-canaries/environment.d.ts +0 -14
- package/esm/src/agent/testing/durable-run-canaries/environment.d.ts.map +0 -1
- package/esm/src/agent/testing/durable-run-canaries/environment.js +0 -15
- package/esm/src/agent/testing/durable-run-canaries/index.d.ts +0 -5
- package/esm/src/agent/testing/durable-run-canaries/index.d.ts.map +0 -1
- package/esm/src/agent/testing/durable-run-canaries/index.js +0 -4
- package/esm/src/agent/testing/durable-run-canaries/runner.d.ts +0 -118
- package/esm/src/agent/testing/durable-run-canaries/runner.d.ts.map +0 -1
- package/esm/src/agent/testing/durable-run-canaries/runner.js +0 -391
- package/esm/src/agent/testing/durable-run-canaries/validation.d.ts +0 -12
- package/esm/src/agent/testing/durable-run-canaries/validation.d.ts.map +0 -1
- package/esm/src/agent/testing/durable-run-canaries/validation.js +0 -71
- package/esm/src/agent/testing/index.d.ts +0 -10
- package/esm/src/agent/testing/index.d.ts.map +0 -1
- package/esm/src/agent/testing/index.js +0 -9
- package/esm/src/agent/testing/live-evals/api-client.d.ts +0 -102
- package/esm/src/agent/testing/live-evals/api-client.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/api-client.js +0 -313
- package/esm/src/agent/testing/live-evals/cli-runner.d.ts +0 -40
- package/esm/src/agent/testing/live-evals/cli-runner.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/cli-runner.js +0 -144
- package/esm/src/agent/testing/live-evals/environment.d.ts +0 -15
- package/esm/src/agent/testing/live-evals/environment.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/environment.js +0 -20
- package/esm/src/agent/testing/live-evals/formatting.d.ts +0 -15
- package/esm/src/agent/testing/live-evals/formatting.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/formatting.js +0 -75
- package/esm/src/agent/testing/live-evals/index.d.ts +0 -12
- package/esm/src/agent/testing/live-evals/index.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/index.js +0 -11
- package/esm/src/agent/testing/live-evals/metadata.d.ts +0 -34
- package/esm/src/agent/testing/live-evals/metadata.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/metadata.js +0 -116
- package/esm/src/agent/testing/live-evals/performance.d.ts +0 -19
- package/esm/src/agent/testing/live-evals/performance.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/performance.js +0 -22
- package/esm/src/agent/testing/live-evals/preflight.d.ts +0 -12
- package/esm/src/agent/testing/live-evals/preflight.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/preflight.js +0 -27
- package/esm/src/agent/testing/live-evals/report.d.ts +0 -55
- package/esm/src/agent/testing/live-evals/report.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/report.js +0 -79
- package/esm/src/agent/testing/live-evals/request.d.ts +0 -31
- package/esm/src/agent/testing/live-evals/request.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/request.js +0 -48
- package/esm/src/agent/testing/live-evals/result.d.ts +0 -56
- package/esm/src/agent/testing/live-evals/result.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/result.js +0 -36
- package/esm/src/agent/testing/live-evals/runner.d.ts +0 -135
- package/esm/src/agent/testing/live-evals/runner.d.ts.map +0 -1
- package/esm/src/agent/testing/live-evals/runner.js +0 -396
|
@@ -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("&", "&")
|
|
14
|
+
.replaceAll("<", "<")
|
|
15
|
+
.replaceAll(">", ">")
|
|
16
|
+
.replaceAll('"', """)
|
|
17
|
+
.replaceAll("'", "'");
|
|
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;
|
|
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,
|
package/esm/cli/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/cli/router.ts"],"names":[],"mappings":"
|
|
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
|
-
"./
|
|
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.
|
|
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
|
-
"./
|
|
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,
|
|
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: [
|
|
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":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAiChF,eAAO,MAAM,wBAAwB;;;;;QAQ3B,2GAA2G;;;;;;;;;;;;;;;IAuB/G,wFAAwF;;IAExF,0FAA0F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAyCtF;;;;;;;;;;;;;;;;;WAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAgDH;;;;;;;;;;WAUG;;;;;;;;;;QAaH;;;;;WAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YA4HC,kFAAkF;;YAElF,oFAAoF;;YAEpF,+EAA+E;;YAE/E,mEAAmE;;;;;;;;;;;;;;;;;YA8BnE,mCAAmC;;YAEnC,8CAA8C;;YAE9C,sBAAsB;;YAEtB,mDAAmD
|
|
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(),
|