veryfront 0.1.944 → 0.1.946
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.d.ts +8 -1
- package/esm/cli/commands/eval/command.d.ts.map +1 -1
- package/esm/cli/commands/eval/command.js +18 -1
- package/esm/cli/commands/workflow/command.d.ts.map +1 -1
- package/esm/cli/commands/workflow/command.js +0 -7
- package/esm/cli/shared/project-source-context.d.ts +1 -0
- package/esm/cli/shared/project-source-context.d.ts.map +1 -1
- package/esm/cli/shared/project-source-context.js +8 -0
- package/esm/deno.js +1 -1
- package/esm/src/agent/runtime/index.d.ts.map +1 -1
- package/esm/src/agent/runtime/index.js +12 -10
- package/esm/src/eval/index.d.ts +1 -1
- package/esm/src/eval/index.d.ts.map +1 -1
- package/esm/src/eval/metrics.d.ts +7 -1
- package/esm/src/eval/metrics.d.ts.map +1 -1
- package/esm/src/eval/metrics.js +425 -1
- package/esm/src/eval/studio.d.ts +7 -7
- package/esm/src/eval/studio.d.ts.map +1 -1
- package/esm/src/eval/studio.js +5 -4
- package/esm/src/eval/types.d.ts +46 -1
- package/esm/src/eval/types.d.ts.map +1 -1
- package/esm/src/knowledge/index.d.ts +5 -3
- package/esm/src/knowledge/index.d.ts.map +1 -1
- package/esm/src/knowledge/index.js +62 -9
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { AgentResponse } from "../../../src/agent/index.js";
|
|
2
|
+
import type { VeryfrontConfig } from "../../../src/config/index.js";
|
|
3
|
+
import type { DiscoveredEval, EvalReport, EvalReportComparison, EvalToolCall } from "../../../src/eval/index.js";
|
|
2
4
|
import type { EvalArgs } from "./handler.js";
|
|
3
5
|
export interface EvalOptions extends EvalArgs {
|
|
4
6
|
}
|
|
@@ -40,6 +42,11 @@ export declare function createResultsJsonl(report: EvalReport): string;
|
|
|
40
42
|
export declare function createJunitXml(report: EvalReport): string;
|
|
41
43
|
export declare function writeEvalArtifacts(report: EvalReport, paths: EvalArtifactPaths, baseline?: EvalReportComparison): Promise<void>;
|
|
42
44
|
export declare function createEvalExitCode(report: EvalReport, baseline?: EvalReportComparison): 0 | 1;
|
|
45
|
+
type EvalRuntimeAuthConfig = Pick<VeryfrontConfig, "projectSlug" | "fs"> & {
|
|
46
|
+
projectSlug?: string;
|
|
47
|
+
};
|
|
48
|
+
export declare function hydrateEvalRuntimeAuth(projectDir: string, config: EvalRuntimeAuthConfig | null | undefined): Promise<import("../../shared/runtime-auth.js").RuntimeAuthContext>;
|
|
49
|
+
export declare function normalizeToolCalls(response: AgentResponse): EvalToolCall[];
|
|
43
50
|
export declare function evalCommand(options: EvalOptions): Promise<void>;
|
|
44
51
|
export {};
|
|
45
52
|
//# sourceMappingURL=command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/eval/command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/eval/command.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import * as dntShim from "../../../_dnt.shims.js";
|
|
|
5
5
|
import { dirname, join, relative } from "../../../deps/jsr.io/@std/path/1.1.4/mod.js";
|
|
6
6
|
import { createProjectDiscoveryConfig, discoverAll } from "../../../src/discovery/index.js";
|
|
7
7
|
import { compareEvalReports, discoverEvals, runEval } from "../../../src/eval/index.js";
|
|
8
|
+
import { applyRuntimeAuthContext } from "../../shared/runtime-auth.js";
|
|
8
9
|
import { cliLogger, exitProcess } from "../../utils/index.js";
|
|
9
10
|
import { createErrorEnvelope, createSuccessEnvelope, isJsonMode, outputJson, } from "../../shared/json-output.js";
|
|
10
11
|
import { withProjectSourceContext } from "../../shared/project-source-context.js";
|
|
@@ -164,6 +165,15 @@ export function createEvalExitCode(report, baseline) {
|
|
|
164
165
|
function resolveAgentTargetId(target) {
|
|
165
166
|
return target.startsWith("agent:") ? target.slice("agent:".length) : target;
|
|
166
167
|
}
|
|
168
|
+
function resolveEvalRuntimeProjectSlug(config) {
|
|
169
|
+
return config?.projectSlug ?? config?.fs?.veryfront?.projectSlug;
|
|
170
|
+
}
|
|
171
|
+
export async function hydrateEvalRuntimeAuth(projectDir, config) {
|
|
172
|
+
return await applyRuntimeAuthContext({
|
|
173
|
+
projectDir,
|
|
174
|
+
projectSlug: resolveEvalRuntimeProjectSlug(config),
|
|
175
|
+
});
|
|
176
|
+
}
|
|
167
177
|
function normalizeUsage(response) {
|
|
168
178
|
return response.usage
|
|
169
179
|
? {
|
|
@@ -173,11 +183,17 @@ function normalizeUsage(response) {
|
|
|
173
183
|
}
|
|
174
184
|
: {};
|
|
175
185
|
}
|
|
176
|
-
function normalizeToolCalls(response) {
|
|
186
|
+
export function normalizeToolCalls(response) {
|
|
177
187
|
return response.toolCalls.map((toolCall) => ({
|
|
188
|
+
id: toolCall.id,
|
|
178
189
|
name: toolCall.name,
|
|
179
190
|
status: toolCall.status === "error" ? "error" : "ok",
|
|
191
|
+
input: toolCall.args,
|
|
192
|
+
...(Object.hasOwn(toolCall, "result") ? { output: toolCall.result } : {}),
|
|
180
193
|
...(toolCall.error ? { error: toolCall.error } : {}),
|
|
194
|
+
...(toolCall.executionTime !== undefined
|
|
195
|
+
? { metadata: { executionTime: toolCall.executionTime } }
|
|
196
|
+
: {}),
|
|
181
197
|
}));
|
|
182
198
|
}
|
|
183
199
|
function createAgentAdapter(agent, options) {
|
|
@@ -288,6 +304,7 @@ async function outputAgentNotFound(agentId) {
|
|
|
288
304
|
export async function evalCommand(options) {
|
|
289
305
|
const projectDir = dntShim.Deno.cwd();
|
|
290
306
|
await withProjectSourceContext(projectDir, async ({ adapter, config }) => {
|
|
307
|
+
await hydrateEvalRuntimeAuth(projectDir, config);
|
|
291
308
|
const evalDiscovery = await discoverEvals({ projectDir, adapter, config });
|
|
292
309
|
if (options.debug) {
|
|
293
310
|
for (const error of evalDiscovery.errors) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/workflow/command.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/workflow/command.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,2BAA2B,EAAE,MAAM,6CAA6C,CAAC;AAO1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAKjD,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,2BAA2B;IACnC,2BAA2B,CAAC,EAAE,OAAO,2BAA2B,CAAC;CAClE;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,sBAAsB,EAAE,GAC/B,MAAM,EAAE,CAUV;AAuFD,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAE7E;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,eAAe,EACxB,YAAY,GAAE,2BAAgC,GAC7C,OAAO,CAAC,IAAI,CAAC,CA8Ff"}
|
|
@@ -2,7 +2,6 @@ import * as dntShim from "../../../_dnt.shims.js";
|
|
|
2
2
|
import { cliLogger } from "../../utils/index.js";
|
|
3
3
|
import { exitProcess } from "../../utils/index.js";
|
|
4
4
|
import { withProjectSourceContext } from "../../shared/project-source-context.js";
|
|
5
|
-
import { applyRuntimeAuthContext } from "../../shared/runtime-auth.js";
|
|
6
5
|
import { agentRegistry } from "../../../src/agent/composition/index.js";
|
|
7
6
|
import { discoverProjectAgentRuntime } from "../../../src/agent/project/agent-runtime.js";
|
|
8
7
|
import { toolRegistry } from "../../../src/tool/registry.js";
|
|
@@ -108,12 +107,6 @@ export async function runWorkflowCommand(options, dependencies = {}) {
|
|
|
108
107
|
}
|
|
109
108
|
}
|
|
110
109
|
const projectDir = options.projectDir ?? dntShim.Deno.cwd();
|
|
111
|
-
const { readConfigFile } = await import("../../shared/config.js");
|
|
112
|
-
const configFile = await readConfigFile(projectDir);
|
|
113
|
-
await applyRuntimeAuthContext({
|
|
114
|
-
projectDir,
|
|
115
|
-
projectSlug: configFile?.projectSlug,
|
|
116
|
-
});
|
|
117
110
|
const discoverRuntime = dependencies.discoverProjectAgentRuntime ??
|
|
118
111
|
discoverProjectAgentRuntime;
|
|
119
112
|
await withProjectSourceContext(projectDir, async ({ adapter, proxyContext }) => {
|
|
@@ -14,6 +14,7 @@ export interface ProjectSourceExecutionContext {
|
|
|
14
14
|
proxyContext?: ProxyProjectSourceContext;
|
|
15
15
|
}
|
|
16
16
|
export declare function getProxyProjectSourceContext(): ProxyProjectSourceContext | null;
|
|
17
|
+
export declare function applyProjectSourceRuntimeAuth(projectDir: string, config: VeryfrontConfig): Promise<import("./runtime-auth.js").RuntimeAuthContext>;
|
|
17
18
|
export declare function withProjectSourceContext<T>(projectDir: string, run: (context: ProjectSourceExecutionContext) => Promise<T>): Promise<T>;
|
|
18
19
|
export {};
|
|
19
20
|
//# sourceMappingURL=project-source-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-source-context.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/project-source-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"project-source-context.d.ts","sourceRoot":"","sources":["../../../src/cli/shared/project-source-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAKL,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAC;AAGrC,UAAU,yBAAyB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,wBAAgB,4BAA4B,IAAI,yBAAyB,GAAG,IAAI,CAkB/E;AAWD,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,eAAe,2DAMxB;AAED,wBAAsB,wBAAwB,CAAC,CAAC,EAC9C,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1D,OAAO,CAAC,CAAC,CAAC,CAyCZ"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getConfig } from "../../src/config/index.js";
|
|
2
2
|
import { enhanceAdapterWithFS, getEnv, isExtendedFSAdapter, runtime, } from "../../src/platform/index.js";
|
|
3
|
+
import { applyRuntimeAuthContext } from "./runtime-auth.js";
|
|
3
4
|
export function getProxyProjectSourceContext() {
|
|
4
5
|
const projectSlug = getEnv("VERYFRONT_PROJECT_SLUG")?.trim();
|
|
5
6
|
const token = getEnv("VERYFRONT_API_TOKEN")?.trim();
|
|
@@ -20,9 +21,16 @@ async function loadProjectConfig(projectDir, adapter, proxyContext) {
|
|
|
20
21
|
const cacheKey = proxyContext?.projectId ?? proxyContext?.projectSlug;
|
|
21
22
|
return await getConfig(projectDir, adapter, cacheKey ? { cacheKey } : undefined);
|
|
22
23
|
}
|
|
24
|
+
export async function applyProjectSourceRuntimeAuth(projectDir, config) {
|
|
25
|
+
return await applyRuntimeAuthContext({
|
|
26
|
+
projectDir,
|
|
27
|
+
projectSlug: config.projectSlug ?? config.fs?.veryfront?.projectSlug,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
23
30
|
export async function withProjectSourceContext(projectDir, run) {
|
|
24
31
|
const baseAdapter = await runtime.get();
|
|
25
32
|
const initialConfig = await getConfig(projectDir, baseAdapter);
|
|
33
|
+
await applyProjectSourceRuntimeAuth(projectDir, initialConfig);
|
|
26
34
|
const adapter = await enhanceAdapterWithFS(baseAdapter, initialConfig, projectDir);
|
|
27
35
|
const proxyContext = getProxyProjectSourceContext();
|
|
28
36
|
if (proxyContext &&
|
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/src/agent/runtime/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,7 +51,7 @@ import { supportsTemperatureParameter } from "./model-capabilities.js";
|
|
|
51
51
|
import { applySkillDelegationOverridesToToolInput, extractSkillDelegationOverrides, } from "./skill-delegation-overrides.js";
|
|
52
52
|
import { resolveAgentModelTransport } from "./model-transport.js";
|
|
53
53
|
const logger = serverLogger.component("agent");
|
|
54
|
-
function
|
|
54
|
+
function shouldHideProjectToolAfterAgentWriteSuccess(toolName) {
|
|
55
55
|
return toolName === "create_agent" || toolName === "update_agent";
|
|
56
56
|
}
|
|
57
57
|
function parseToolResultJson(result) {
|
|
@@ -583,7 +583,7 @@ export class AgentRuntime {
|
|
|
583
583
|
const remoteToolSources = getRuntimeRemoteToolSources(this.config);
|
|
584
584
|
let currentSystemPrompt = systemPrompt;
|
|
585
585
|
let currentRuntimeContext = runtimeContext;
|
|
586
|
-
let
|
|
586
|
+
let agentWriteFinalResponseToolGuardEnabled = false;
|
|
587
587
|
for (let step = 0; step < maxSteps; step++) {
|
|
588
588
|
throwIfAborted(abortSignal);
|
|
589
589
|
sendSSE(controller, encoder, { type: "step-start" });
|
|
@@ -611,8 +611,10 @@ export class AgentRuntime {
|
|
|
611
611
|
currentSystemPrompt = preparedStep.systemPrompt;
|
|
612
612
|
currentRuntimeContext = preparedStep.runtimeContext;
|
|
613
613
|
const toolContext = preparedStep.toolContext;
|
|
614
|
-
const tools =
|
|
615
|
-
|
|
614
|
+
const tools = agentWriteFinalResponseToolGuardEnabled
|
|
615
|
+
? preparedStep.tools.filter((tool) => !shouldHideProjectToolAfterAgentWriteSuccess(tool.name))
|
|
616
|
+
: preparedStep.tools;
|
|
617
|
+
const stepProviderTools = agentWriteFinalResponseToolGuardEnabled ? [] : providerTools;
|
|
616
618
|
const runtimeTools = convertToolsToRuntimeTools(tools, {
|
|
617
619
|
model: effectiveModel,
|
|
618
620
|
providerTools: stepProviderTools,
|
|
@@ -771,8 +773,8 @@ export class AgentRuntime {
|
|
|
771
773
|
: stringifyToolError(matchingResult.error);
|
|
772
774
|
toolCalls.push(toolCall);
|
|
773
775
|
if (matchingResult.error === undefined) {
|
|
774
|
-
if (
|
|
775
|
-
|
|
776
|
+
if (shouldHideProjectToolAfterAgentWriteSuccess(tc.name)) {
|
|
777
|
+
agentWriteFinalResponseToolGuardEnabled = true;
|
|
776
778
|
}
|
|
777
779
|
if (tc.name === LOAD_SKILL_TOOL_ID) {
|
|
778
780
|
activeSkillId = extractSkillId(matchingResult.output);
|
|
@@ -795,8 +797,8 @@ export class AgentRuntime {
|
|
|
795
797
|
toolCall.error = persistedError;
|
|
796
798
|
toolCalls.push(toolCall);
|
|
797
799
|
if (persistedError === undefined) {
|
|
798
|
-
if (
|
|
799
|
-
|
|
800
|
+
if (shouldHideProjectToolAfterAgentWriteSuccess(tc.name)) {
|
|
801
|
+
agentWriteFinalResponseToolGuardEnabled = true;
|
|
800
802
|
}
|
|
801
803
|
if (tc.name === LOAD_SKILL_TOOL_ID) {
|
|
802
804
|
activeSkillId = extractSkillId(persistedResult.result);
|
|
@@ -877,8 +879,8 @@ export class AgentRuntime {
|
|
|
877
879
|
hasSubmittedFormInputInLoop = true;
|
|
878
880
|
currentRuntimeContext = markSubmittedFormInputRuntimeContext(currentRuntimeContext);
|
|
879
881
|
}
|
|
880
|
-
if (
|
|
881
|
-
|
|
882
|
+
if (shouldHideProjectToolAfterAgentWriteSuccess(tc.name)) {
|
|
883
|
+
agentWriteFinalResponseToolGuardEnabled = true;
|
|
882
884
|
}
|
|
883
885
|
const dynamic = isDynamicTool(tc.name);
|
|
884
886
|
sendSSE(controller, encoder, {
|
package/esm/src/eval/index.d.ts
CHANGED
|
@@ -52,6 +52,6 @@ export { runEval } from "./runner.js";
|
|
|
52
52
|
export { deriveEvalId, discoverEvals, findEvalById } from "./discovery.js";
|
|
53
53
|
export { createEvalSourceDocument, getEvalEditableFieldSchema, getEvalRunSchema, getEvalSourceDocumentSchema, getEvalSourcePatchSchema, getEvalSourceReferenceSchema, getEvalStudioCapabilitySchema, } from "./studio.js";
|
|
54
54
|
export type { DiscoveredEval, EvalDiscoveryOptions, EvalDiscoveryResult } from "./discovery.js";
|
|
55
|
-
export type { EvalAgentAdapter, EvalAgentAdapterContext, EvalAgentAdapterResult, EvalAgentInput, EvalCheckContext, EvalDataset, EvalDatasetLoadContext, EvalDefinition, EvalDurationSummary, EvalExample, EvalExampleInput, EvalExpect, EvalExpectation, EvalFailedExampleSummary, EvalFlakeSummary, EvalGateFailureSummary, EvalMetric, EvalMetricContext, EvalMetricDeltaSummary, EvalMetricFamily, EvalMetricResult, EvalMetricSummary, EvalMetricThreshold, EvalRecord, EvalReport, EvalReportComparison, EvalReportExportConfig, EvalReportSummary, EvalSeverity, EvalSource, EvalTargetKind, EvalToolCall, EvalToolCallCountOptions, EvalToolCallMatchOptions, EvalToolCallStatus, EvalToolInputMatchMode, EvalTrace, EvalUsage, EvalUsageSummary, RunEvalOptions, } from "./types.js";
|
|
55
|
+
export type { EvalAgentAdapter, EvalAgentAdapterContext, EvalAgentAdapterResult, EvalAgentInput, EvalAnswerGroundednessMetricOptions, EvalCheckContext, EvalDataset, EvalDatasetLoadContext, EvalDefinition, EvalDurationSummary, EvalExample, EvalExampleInput, EvalExpect, EvalExpectation, EvalFailedExampleSummary, EvalFlakeSummary, EvalGateFailureSummary, EvalKnowledgeExpectedSource, EvalKnowledgeMrrMetricOptions, EvalKnowledgeRetrievalMetricOptions, EvalMetric, EvalMetricContext, EvalMetricDeltaSummary, EvalMetricFamily, EvalMetricResult, EvalMetricSummary, EvalMetricThreshold, EvalRecord, EvalReport, EvalReportComparison, EvalReportExportConfig, EvalReportSummary, EvalSeverity, EvalSource, EvalTargetKind, EvalToolCall, EvalToolCallCountOptions, EvalToolCallMatchOptions, EvalToolCallStatus, EvalToolInputMatchMode, EvalTrace, EvalUsage, EvalUsageSummary, RunEvalOptions, } from "./types.js";
|
|
56
56
|
export type { CreateEvalSourceDocumentOptions, EvalEditableField, EvalRun, EvalSourceDocument, EvalSourcePatch, EvalSourceReference, EvalStudioCapability, } from "./studio.js";
|
|
57
57
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/eval/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EAChB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAChG,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,+BAA+B,EAC/B,iBAAiB,EACjB,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/eval/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,OAAO,yBAAyB,CAAC;AAGjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,gBAAgB,EAChB,2BAA2B,EAC3B,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AAErB,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAChG,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EACd,mCAAmC,EACnC,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,6BAA6B,EAC7B,mCAAmC,EACnC,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,sBAAsB,EACtB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,+BAA+B,EAC/B,iBAAiB,EACjB,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EvalMetric, EvalToolCallCountOptions, EvalToolCallMatchOptions } from "./types.js";
|
|
1
|
+
import type { EvalAnswerGroundednessMetricOptions, EvalKnowledgeMrrMetricOptions, EvalKnowledgeRetrievalMetricOptions, EvalMetric, EvalToolCallCountOptions, EvalToolCallMatchOptions } from "./types.js";
|
|
2
2
|
type JudgeRubricInput = {
|
|
3
3
|
rubric: string;
|
|
4
4
|
judge?: (input: {
|
|
@@ -30,6 +30,7 @@ export declare const metrics: {
|
|
|
30
30
|
readonly jsonMatch: (options: {
|
|
31
31
|
expected?: unknown;
|
|
32
32
|
}) => EvalMetric;
|
|
33
|
+
readonly groundedness: (options?: EvalAnswerGroundednessMetricOptions) => EvalMetric;
|
|
33
34
|
};
|
|
34
35
|
readonly agent: {
|
|
35
36
|
readonly noFailedTools: () => EvalMetric;
|
|
@@ -37,6 +38,11 @@ export declare const metrics: {
|
|
|
37
38
|
readonly notCalledTool: (name: string) => EvalMetric;
|
|
38
39
|
readonly toolCallCount: (name: string, options: EvalToolCallCountOptions) => EvalMetric;
|
|
39
40
|
};
|
|
41
|
+
readonly knowledge: {
|
|
42
|
+
readonly recallAtK: (options: EvalKnowledgeRetrievalMetricOptions) => EvalMetric;
|
|
43
|
+
readonly precisionAtK: (options: EvalKnowledgeRetrievalMetricOptions) => EvalMetric;
|
|
44
|
+
readonly mrr: (options: EvalKnowledgeMrrMetricOptions) => EvalMetric;
|
|
45
|
+
};
|
|
40
46
|
readonly ops: {
|
|
41
47
|
readonly latency: (options: {
|
|
42
48
|
maxMs: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/src/eval/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAMV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/src/eval/metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mCAAmC,EAEnC,6BAA6B,EAC7B,mCAAmC,EACnC,UAAU,EAMV,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,YAAY,CAAC;AAkBpB,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,KAAK,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxE,CAAC;AAyDF,iBAAS,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAQ9C;AASD,iBAAS,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C;AAoXD,0FAA0F;AAC1F,eAAO,MAAM,OAAO;;mCAEF,UAAU;qCAON;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,aAAa,CAAC,EAAE,OAAO,CAAA;SAAE,KAAG,UAAU;kCAWzD;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,UAAU;sCAY5C;YAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;SAAE,KAAG,UAAU;0CAShC,mCAAmC,KAAQ,UAAU;;;sCAgD1D,UAAU;oCAgBV,MAAM,YAAY,wBAAwB,KAAG,UAAU;uCAcpD,MAAM,KAAG,UAAU;uCAcnB,MAAM,WAAW,wBAAwB,KAAG,UAAU;;;sCAgBvD,mCAAmC,KAAG,UAAU;yCAoC7C,mCAAmC,KAAG,UAAU;gCAuCzD,6BAA6B,KAAG,UAAU;;;oCA4CtC;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,KAAG,UAAU;mCAc/B;YAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,KAAG,UAAU;iCAoB3E;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,KAAG,UAAU;;;mCAiB7B,gBAAgB,KAAG,UAAU;;CAmCvC,CAAC;AAEX,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC"}
|
package/esm/src/eval/metrics.js
CHANGED
|
@@ -1,4 +1,57 @@
|
|
|
1
|
-
import { evaluateCalledTool, evaluateNotCalledTool, evaluateToolCallCount, isEvalToolFailed, } from "./tool-behavior.js";
|
|
1
|
+
import { evaluateCalledTool, evaluateNotCalledTool, evaluateToolCallCount, findEvalToolCalls, isEvalToolFailed, } from "./tool-behavior.js";
|
|
2
|
+
const DEFAULT_KNOWLEDGE_TOOL = "search_knowledge";
|
|
3
|
+
const DEFAULT_EXPECTED_KNOWLEDGE_PATH = "metadata.expectedKnowledge";
|
|
4
|
+
const DEFAULT_GROUNDEDNESS_RUBRIC = "Rate whether the answer is grounded in the retrieved evidence and avoids unsupported claims.";
|
|
5
|
+
const KNOWLEDGE_COLLECTION_KEYS = ["data", "matches", "results", "items", "chunks", "documents"];
|
|
6
|
+
const KNOWLEDGE_SOURCE_KEYS = [
|
|
7
|
+
"path",
|
|
8
|
+
"source",
|
|
9
|
+
"id",
|
|
10
|
+
"title",
|
|
11
|
+
"name",
|
|
12
|
+
"document_code",
|
|
13
|
+
"documentCode",
|
|
14
|
+
"url",
|
|
15
|
+
"href",
|
|
16
|
+
];
|
|
17
|
+
const KNOWLEDGE_CONTENT_KEYS = [
|
|
18
|
+
"content",
|
|
19
|
+
"text",
|
|
20
|
+
"text_excerpt",
|
|
21
|
+
"textExcerpt",
|
|
22
|
+
"snippet",
|
|
23
|
+
"excerpt",
|
|
24
|
+
"chunk",
|
|
25
|
+
"body",
|
|
26
|
+
"verification_quote",
|
|
27
|
+
"verificationQuote",
|
|
28
|
+
];
|
|
29
|
+
const KNOWLEDGE_MATCHED_FIELD_KEYS = ["matched_fields", "matchedFields"];
|
|
30
|
+
const KNOWLEDGE_STOP_WORDS = new Set([
|
|
31
|
+
"the",
|
|
32
|
+
"and",
|
|
33
|
+
"for",
|
|
34
|
+
"that",
|
|
35
|
+
"with",
|
|
36
|
+
"this",
|
|
37
|
+
"from",
|
|
38
|
+
"shall",
|
|
39
|
+
"must",
|
|
40
|
+
"will",
|
|
41
|
+
"have",
|
|
42
|
+
"been",
|
|
43
|
+
"being",
|
|
44
|
+
"their",
|
|
45
|
+
"which",
|
|
46
|
+
"into",
|
|
47
|
+
"also",
|
|
48
|
+
"each",
|
|
49
|
+
"they",
|
|
50
|
+
"such",
|
|
51
|
+
"should",
|
|
52
|
+
"would",
|
|
53
|
+
"could",
|
|
54
|
+
]);
|
|
2
55
|
function getOutputText(output) {
|
|
3
56
|
if (typeof output === "string")
|
|
4
57
|
return output;
|
|
@@ -31,6 +84,241 @@ function sortJsonValue(value) {
|
|
|
31
84
|
}
|
|
32
85
|
return sorted;
|
|
33
86
|
}
|
|
87
|
+
function isRecord(value) {
|
|
88
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
89
|
+
}
|
|
90
|
+
function getPathValue(value, path) {
|
|
91
|
+
return path.split(".").filter(Boolean).reduce((current, segment) => {
|
|
92
|
+
if (!isRecord(current))
|
|
93
|
+
return undefined;
|
|
94
|
+
return current[segment];
|
|
95
|
+
}, value);
|
|
96
|
+
}
|
|
97
|
+
function normalizeComparable(value) {
|
|
98
|
+
return value.trim().toLowerCase().replaceAll("\\", "/").replace(/^\.\//, "");
|
|
99
|
+
}
|
|
100
|
+
function uniqueStrings(values) {
|
|
101
|
+
const seen = new Set();
|
|
102
|
+
const unique = [];
|
|
103
|
+
for (const value of values) {
|
|
104
|
+
const normalized = normalizeComparable(value);
|
|
105
|
+
if (!normalized || seen.has(normalized))
|
|
106
|
+
continue;
|
|
107
|
+
seen.add(normalized);
|
|
108
|
+
unique.push(value);
|
|
109
|
+
}
|
|
110
|
+
return unique;
|
|
111
|
+
}
|
|
112
|
+
function collectStringField(record, key) {
|
|
113
|
+
const value = record[key];
|
|
114
|
+
return typeof value === "string" && value.trim() ? [value] : [];
|
|
115
|
+
}
|
|
116
|
+
function collectLeafStrings(value) {
|
|
117
|
+
if (typeof value === "string")
|
|
118
|
+
return value.trim() ? [value] : [];
|
|
119
|
+
if (typeof value === "number" || typeof value === "boolean")
|
|
120
|
+
return [String(value)];
|
|
121
|
+
if (Array.isArray(value))
|
|
122
|
+
return value.flatMap(collectLeafStrings);
|
|
123
|
+
if (!isRecord(value))
|
|
124
|
+
return [];
|
|
125
|
+
return Object.values(value).flatMap(collectLeafStrings);
|
|
126
|
+
}
|
|
127
|
+
function collectFrontmatterValues(value) {
|
|
128
|
+
if (!Array.isArray(value))
|
|
129
|
+
return collectLeafStrings(value);
|
|
130
|
+
const values = [];
|
|
131
|
+
for (const entry of value) {
|
|
132
|
+
if (!isRecord(entry)) {
|
|
133
|
+
values.push(...collectLeafStrings(entry));
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
const fieldValue = entry.value;
|
|
137
|
+
if (typeof fieldValue === "string" && fieldValue.trim())
|
|
138
|
+
values.push(fieldValue);
|
|
139
|
+
}
|
|
140
|
+
return values;
|
|
141
|
+
}
|
|
142
|
+
function formatFrontmatterEvidence(value) {
|
|
143
|
+
if (!value)
|
|
144
|
+
return [];
|
|
145
|
+
if (Array.isArray(value)) {
|
|
146
|
+
const pairs = value.flatMap((entry) => {
|
|
147
|
+
if (!isRecord(entry))
|
|
148
|
+
return collectLeafStrings(entry);
|
|
149
|
+
const key = typeof entry.key === "string" && entry.key.trim() ? `${entry.key}: ` : "";
|
|
150
|
+
return collectLeafStrings(entry.value).map((fieldValue) => `${key}${fieldValue}`);
|
|
151
|
+
});
|
|
152
|
+
return pairs.length > 0 ? [`frontmatter: ${pairs.join("; ")}`] : [];
|
|
153
|
+
}
|
|
154
|
+
if (isRecord(value)) {
|
|
155
|
+
const pairs = Object.entries(value).flatMap(([key, fieldValue]) => collectLeafStrings(fieldValue).map((item) => `${key}: ${item}`));
|
|
156
|
+
return pairs.length > 0 ? [`frontmatter: ${pairs.join("; ")}`] : [];
|
|
157
|
+
}
|
|
158
|
+
const values = collectLeafStrings(value);
|
|
159
|
+
return values.length > 0 ? [`frontmatter: ${values.join("; ")}`] : [];
|
|
160
|
+
}
|
|
161
|
+
function collectCompactEvidence(item) {
|
|
162
|
+
const matchedFields = KNOWLEDGE_MATCHED_FIELD_KEYS.flatMap((key) => collectLeafStrings(item[key]));
|
|
163
|
+
return [
|
|
164
|
+
...(matchedFields.length > 0 ? [`matched_fields: ${matchedFields.join("; ")}`] : []),
|
|
165
|
+
...formatFrontmatterEvidence(item.frontmatter),
|
|
166
|
+
];
|
|
167
|
+
}
|
|
168
|
+
function extractKnowledgeItems(output) {
|
|
169
|
+
if (Array.isArray(output))
|
|
170
|
+
return output;
|
|
171
|
+
if (!isRecord(output))
|
|
172
|
+
return [];
|
|
173
|
+
for (const key of KNOWLEDGE_COLLECTION_KEYS) {
|
|
174
|
+
const value = output[key];
|
|
175
|
+
if (Array.isArray(value))
|
|
176
|
+
return value;
|
|
177
|
+
}
|
|
178
|
+
return KNOWLEDGE_SOURCE_KEYS.some((key) => typeof output[key] === "string") ? [output] : [];
|
|
179
|
+
}
|
|
180
|
+
function createKnowledgeEntry(item) {
|
|
181
|
+
if (!isRecord(item)) {
|
|
182
|
+
if (typeof item === "string" && item.trim()) {
|
|
183
|
+
return {
|
|
184
|
+
source: item,
|
|
185
|
+
sourceCandidates: [item],
|
|
186
|
+
contentCandidates: [item],
|
|
187
|
+
evidenceCandidates: [item],
|
|
188
|
+
};
|
|
189
|
+
}
|
|
190
|
+
return null;
|
|
191
|
+
}
|
|
192
|
+
const sourceCandidates = uniqueStrings([
|
|
193
|
+
...KNOWLEDGE_SOURCE_KEYS.flatMap((key) => collectStringField(item, key)),
|
|
194
|
+
...collectFrontmatterValues(item.frontmatter),
|
|
195
|
+
]);
|
|
196
|
+
const contentCandidates = uniqueStrings(KNOWLEDGE_CONTENT_KEYS.flatMap((key) => collectStringField(item, key)));
|
|
197
|
+
const source = sourceCandidates[0] ?? contentCandidates[0] ?? stableStringify(item);
|
|
198
|
+
const evidenceCandidates = uniqueStrings([
|
|
199
|
+
...contentCandidates,
|
|
200
|
+
...collectCompactEvidence(item),
|
|
201
|
+
]);
|
|
202
|
+
return {
|
|
203
|
+
source,
|
|
204
|
+
sourceCandidates: sourceCandidates.length === 0 ? [source] : sourceCandidates,
|
|
205
|
+
contentCandidates,
|
|
206
|
+
evidenceCandidates: evidenceCandidates.length === 0 ? [source] : evidenceCandidates,
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
function getKnowledgeEntries(record, tool = DEFAULT_KNOWLEDGE_TOOL) {
|
|
210
|
+
return findEvalToolCalls(record, tool)
|
|
211
|
+
.filter((call) => !isEvalToolFailed(call))
|
|
212
|
+
.flatMap((call) => extractKnowledgeItems(call.output))
|
|
213
|
+
.map(createKnowledgeEntry)
|
|
214
|
+
.filter((entry) => entry !== null);
|
|
215
|
+
}
|
|
216
|
+
function expectedSourceLabel(expected) {
|
|
217
|
+
if (typeof expected === "string")
|
|
218
|
+
return expected;
|
|
219
|
+
return expected.path ?? expected.source ?? expected.documentCode ?? expected.document_code ??
|
|
220
|
+
expected.id ?? expected.title ?? expected.contentMatch ?? expected.verificationQuote ??
|
|
221
|
+
expected.content ?? expected.text ?? stableStringify(expected);
|
|
222
|
+
}
|
|
223
|
+
function normalizeExpectedKnowledgeSources(value) {
|
|
224
|
+
const values = Array.isArray(value) ? value : [value];
|
|
225
|
+
return values.filter((entry) => {
|
|
226
|
+
if (typeof entry === "string")
|
|
227
|
+
return entry.trim().length > 0;
|
|
228
|
+
if (!isRecord(entry))
|
|
229
|
+
return false;
|
|
230
|
+
return Object.keys(entry).length > 0;
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
function resolveExpectedKnowledgeSources(record, options) {
|
|
234
|
+
if (options.expected)
|
|
235
|
+
return { expected: options.expected };
|
|
236
|
+
const expectedFrom = options.expectedFrom ?? DEFAULT_EXPECTED_KNOWLEDGE_PATH;
|
|
237
|
+
return {
|
|
238
|
+
expected: normalizeExpectedKnowledgeSources(getPathValue(record, expectedFrom)),
|
|
239
|
+
expectedFrom,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
function createKnowledgeMetricConfig(options) {
|
|
243
|
+
return {
|
|
244
|
+
...options,
|
|
245
|
+
...(!options.expected
|
|
246
|
+
? { expectedFrom: options.expectedFrom ?? DEFAULT_EXPECTED_KNOWLEDGE_PATH }
|
|
247
|
+
: {}),
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
function missingExpectedKnowledgeResult(name, tool, expectedFrom, entries, k) {
|
|
251
|
+
return {
|
|
252
|
+
name,
|
|
253
|
+
family: "knowledge",
|
|
254
|
+
severity: "gate",
|
|
255
|
+
skipped: true,
|
|
256
|
+
explanation: expectedFrom
|
|
257
|
+
? `No expected knowledge sources found at ${expectedFrom}.`
|
|
258
|
+
: "No expected knowledge sources were configured.",
|
|
259
|
+
evidence: {
|
|
260
|
+
tool,
|
|
261
|
+
k,
|
|
262
|
+
retrieved: retrievedSources(entries),
|
|
263
|
+
...(expectedFrom ? { expectedFrom } : {}),
|
|
264
|
+
},
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
function matchesStringCandidate(expected, candidates) {
|
|
268
|
+
const normalizedExpected = normalizeComparable(expected);
|
|
269
|
+
return candidates.some((candidate) => normalizeComparable(candidate) === normalizedExpected);
|
|
270
|
+
}
|
|
271
|
+
function significantWords(value) {
|
|
272
|
+
return [...value.toLowerCase().matchAll(/\b[a-z0-9]{4,}\b/g)]
|
|
273
|
+
.map((match) => match[0])
|
|
274
|
+
.filter((word) => !KNOWLEDGE_STOP_WORDS.has(word))
|
|
275
|
+
.slice(0, 12);
|
|
276
|
+
}
|
|
277
|
+
function matchesContent(expected, candidates) {
|
|
278
|
+
const normalizedExpected = normalizeComparable(expected);
|
|
279
|
+
if (candidates.some((candidate) => normalizeComparable(candidate).includes(normalizedExpected))) {
|
|
280
|
+
return true;
|
|
281
|
+
}
|
|
282
|
+
const words = significantWords(expected);
|
|
283
|
+
if (words.length === 0)
|
|
284
|
+
return false;
|
|
285
|
+
return candidates.some((candidate) => {
|
|
286
|
+
const normalizedCandidate = normalizeComparable(candidate);
|
|
287
|
+
const matches = words.filter((word) => normalizedCandidate.includes(word)).length;
|
|
288
|
+
return matches / words.length >= 0.6;
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
function expectedMatchesEntry(expected, entry) {
|
|
292
|
+
if (typeof expected === "string")
|
|
293
|
+
return matchesStringCandidate(expected, entry.sourceCandidates);
|
|
294
|
+
const sourceExpectations = [
|
|
295
|
+
expected.path,
|
|
296
|
+
expected.source,
|
|
297
|
+
expected.id,
|
|
298
|
+
expected.title,
|
|
299
|
+
expected.documentCode,
|
|
300
|
+
expected.document_code,
|
|
301
|
+
].filter((value) => typeof value === "string" && value.trim().length > 0);
|
|
302
|
+
const contentExpectations = [
|
|
303
|
+
expected.contentMatch,
|
|
304
|
+
expected.verificationQuote,
|
|
305
|
+
expected.content,
|
|
306
|
+
expected.text,
|
|
307
|
+
].filter((value) => typeof value === "string" && value.trim().length > 0);
|
|
308
|
+
const sourceMatched = sourceExpectations.length === 0 ||
|
|
309
|
+
sourceExpectations.some((value) => matchesStringCandidate(value, entry.sourceCandidates));
|
|
310
|
+
const contentMatched = contentExpectations.length === 0 ||
|
|
311
|
+
contentExpectations.some((value) => matchesContent(value, entry.contentCandidates));
|
|
312
|
+
return sourceMatched && contentMatched;
|
|
313
|
+
}
|
|
314
|
+
function findMatchedExpectedSources(entries, expected) {
|
|
315
|
+
return expected
|
|
316
|
+
.filter((source) => entries.some((entry) => expectedMatchesEntry(source, entry)))
|
|
317
|
+
.map(expectedSourceLabel);
|
|
318
|
+
}
|
|
319
|
+
function retrievedSources(entries) {
|
|
320
|
+
return entries.map((entry) => entry.source);
|
|
321
|
+
}
|
|
34
322
|
function withSeverity(metric, severity, threshold) {
|
|
35
323
|
const base = { ...metric, severity, ...(threshold ? { threshold } : {}) };
|
|
36
324
|
return {
|
|
@@ -83,6 +371,9 @@ function createMetric(name, family, evaluator, config) {
|
|
|
83
371
|
};
|
|
84
372
|
return withSeverity(metric, "gate");
|
|
85
373
|
}
|
|
374
|
+
function createKnowledgeMetric(name, evaluator, config) {
|
|
375
|
+
return createMetric(name, "knowledge", evaluator, config).gate({ min: 1 });
|
|
376
|
+
}
|
|
86
377
|
function scoreResult(name, family, severity, pass, score = pass ? 1 : 0) {
|
|
87
378
|
return { name, family, severity, score, pass };
|
|
88
379
|
}
|
|
@@ -119,6 +410,48 @@ export const metrics = {
|
|
|
119
410
|
return scoreResult("answer.jsonMatch", "answer", "gate", pass);
|
|
120
411
|
}, options);
|
|
121
412
|
},
|
|
413
|
+
groundedness(options = {}) {
|
|
414
|
+
return createMetric("answer.groundedness", "answer", async (record) => {
|
|
415
|
+
const tool = options.tool ?? DEFAULT_KNOWLEDGE_TOOL;
|
|
416
|
+
const entries = getKnowledgeEntries(record, tool);
|
|
417
|
+
const evidence = uniqueStrings(entries.flatMap((entry) => entry.evidenceCandidates));
|
|
418
|
+
const sources = uniqueStrings(retrievedSources(entries));
|
|
419
|
+
if (!options.judge) {
|
|
420
|
+
return {
|
|
421
|
+
name: "answer.groundedness",
|
|
422
|
+
family: "answer",
|
|
423
|
+
severity: "gate",
|
|
424
|
+
skipped: true,
|
|
425
|
+
explanation: "No groundedness judge function was provided.",
|
|
426
|
+
evidence: { tool, evidenceCount: evidence.length, sources },
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
const output = record.output && typeof record.output === "object"
|
|
430
|
+
? record.output
|
|
431
|
+
: { text: getOutputText(record.output) };
|
|
432
|
+
const judged = await options.judge({
|
|
433
|
+
rubric: options.rubric ?? DEFAULT_GROUNDEDNESS_RUBRIC,
|
|
434
|
+
input: record.input,
|
|
435
|
+
output,
|
|
436
|
+
reference: record.reference,
|
|
437
|
+
metadata: record.metadata,
|
|
438
|
+
evidence,
|
|
439
|
+
sources,
|
|
440
|
+
});
|
|
441
|
+
return {
|
|
442
|
+
name: "answer.groundedness",
|
|
443
|
+
family: "answer",
|
|
444
|
+
severity: "gate",
|
|
445
|
+
score: judged.score,
|
|
446
|
+
pass: judged.pass ?? judged.score > 0,
|
|
447
|
+
...(judged.explanation ? { explanation: judged.explanation } : {}),
|
|
448
|
+
evidence: { tool, evidenceCount: evidence.length, sources },
|
|
449
|
+
};
|
|
450
|
+
}, {
|
|
451
|
+
...(options.tool ? { tool: options.tool } : {}),
|
|
452
|
+
rubric: options.rubric ?? DEFAULT_GROUNDEDNESS_RUBRIC,
|
|
453
|
+
});
|
|
454
|
+
},
|
|
122
455
|
},
|
|
123
456
|
agent: {
|
|
124
457
|
noFailedTools() {
|
|
@@ -159,6 +492,97 @@ export const metrics = {
|
|
|
159
492
|
}), { tool: name, ...options });
|
|
160
493
|
},
|
|
161
494
|
},
|
|
495
|
+
knowledge: {
|
|
496
|
+
recallAtK(options) {
|
|
497
|
+
return createKnowledgeMetric("knowledge.recallAtK", (record) => {
|
|
498
|
+
const tool = options.tool ?? DEFAULT_KNOWLEDGE_TOOL;
|
|
499
|
+
const entries = getKnowledgeEntries(record, tool).slice(0, options.k);
|
|
500
|
+
const { expected, expectedFrom } = resolveExpectedKnowledgeSources(record, options);
|
|
501
|
+
if (expected.length === 0) {
|
|
502
|
+
return missingExpectedKnowledgeResult("knowledge.recallAtK", tool, expectedFrom, entries, options.k);
|
|
503
|
+
}
|
|
504
|
+
const found = findMatchedExpectedSources(entries, expected);
|
|
505
|
+
const score = found.length / expected.length;
|
|
506
|
+
return {
|
|
507
|
+
name: "knowledge.recallAtK",
|
|
508
|
+
family: "knowledge",
|
|
509
|
+
severity: "gate",
|
|
510
|
+
score,
|
|
511
|
+
evidence: {
|
|
512
|
+
tool,
|
|
513
|
+
k: options.k,
|
|
514
|
+
retrieved: retrievedSources(entries),
|
|
515
|
+
expected: expected.map(expectedSourceLabel),
|
|
516
|
+
...(expectedFrom ? { expectedFrom } : {}),
|
|
517
|
+
found,
|
|
518
|
+
foundCount: found.length,
|
|
519
|
+
expectedCount: expected.length,
|
|
520
|
+
},
|
|
521
|
+
};
|
|
522
|
+
}, createKnowledgeMetricConfig(options));
|
|
523
|
+
},
|
|
524
|
+
precisionAtK(options) {
|
|
525
|
+
return createKnowledgeMetric("knowledge.precisionAtK", (record) => {
|
|
526
|
+
const tool = options.tool ?? DEFAULT_KNOWLEDGE_TOOL;
|
|
527
|
+
const entries = getKnowledgeEntries(record, tool).slice(0, options.k);
|
|
528
|
+
const { expected, expectedFrom } = resolveExpectedKnowledgeSources(record, options);
|
|
529
|
+
if (expected.length === 0) {
|
|
530
|
+
return missingExpectedKnowledgeResult("knowledge.precisionAtK", tool, expectedFrom, entries, options.k);
|
|
531
|
+
}
|
|
532
|
+
const relevantEntries = entries.filter((entry) => expected.some((source) => expectedMatchesEntry(source, entry)));
|
|
533
|
+
const retrievedCount = entries.length;
|
|
534
|
+
const score = retrievedCount === 0 ? 0 : relevantEntries.length / retrievedCount;
|
|
535
|
+
return {
|
|
536
|
+
name: "knowledge.precisionAtK",
|
|
537
|
+
family: "knowledge",
|
|
538
|
+
severity: "gate",
|
|
539
|
+
score,
|
|
540
|
+
evidence: {
|
|
541
|
+
tool,
|
|
542
|
+
k: options.k,
|
|
543
|
+
retrieved: retrievedSources(entries),
|
|
544
|
+
expected: expected.map(expectedSourceLabel),
|
|
545
|
+
...(expectedFrom ? { expectedFrom } : {}),
|
|
546
|
+
relevant: retrievedSources(relevantEntries),
|
|
547
|
+
relevantCount: relevantEntries.length,
|
|
548
|
+
retrievedCount,
|
|
549
|
+
},
|
|
550
|
+
};
|
|
551
|
+
}, createKnowledgeMetricConfig(options));
|
|
552
|
+
},
|
|
553
|
+
mrr(options) {
|
|
554
|
+
return createKnowledgeMetric("knowledge.mrr", (record) => {
|
|
555
|
+
const tool = options.tool ?? DEFAULT_KNOWLEDGE_TOOL;
|
|
556
|
+
const allEntries = getKnowledgeEntries(record, tool);
|
|
557
|
+
const k = options.k ?? allEntries.length;
|
|
558
|
+
const entries = allEntries.slice(0, k);
|
|
559
|
+
const { expected, expectedFrom } = resolveExpectedKnowledgeSources(record, options);
|
|
560
|
+
if (expected.length === 0) {
|
|
561
|
+
return missingExpectedKnowledgeResult("knowledge.mrr", tool, expectedFrom, entries, k);
|
|
562
|
+
}
|
|
563
|
+
const index = entries.findIndex((entry) => expected.some((source) => expectedMatchesEntry(source, entry)));
|
|
564
|
+
const rank = index === -1 ? null : index + 1;
|
|
565
|
+
const score = rank === null ? 0 : 1 / rank;
|
|
566
|
+
return {
|
|
567
|
+
name: "knowledge.mrr",
|
|
568
|
+
family: "knowledge",
|
|
569
|
+
severity: "gate",
|
|
570
|
+
score,
|
|
571
|
+
evidence: {
|
|
572
|
+
tool,
|
|
573
|
+
k,
|
|
574
|
+
retrieved: retrievedSources(entries),
|
|
575
|
+
expected: expected.map(expectedSourceLabel),
|
|
576
|
+
...(expectedFrom ? { expectedFrom } : {}),
|
|
577
|
+
...(rank === null ? {} : {
|
|
578
|
+
rank,
|
|
579
|
+
match: entries[index]?.source,
|
|
580
|
+
}),
|
|
581
|
+
},
|
|
582
|
+
};
|
|
583
|
+
}, createKnowledgeMetricConfig(options));
|
|
584
|
+
},
|
|
585
|
+
},
|
|
162
586
|
ops: {
|
|
163
587
|
latency(options) {
|
|
164
588
|
return createMetric("ops.latency", "ops", (record) => {
|
package/esm/src/eval/studio.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export declare const getEvalSourceDatasetSchema: () => import("../internal-agent
|
|
|
33
33
|
/** Schema for an Eval metric in Studio source documents. */
|
|
34
34
|
export declare const getEvalSourceMetricSchema: () => import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
35
35
|
name: import("../internal-agents/schema.js").Schema<string>;
|
|
36
|
-
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "check">;
|
|
36
|
+
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "knowledge" | "check">;
|
|
37
37
|
severity: import("../internal-agents/schema.js").Schema<"gate" | "soft" | "budget">;
|
|
38
38
|
threshold: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
39
39
|
min: import("../internal-agents/schema.js").Schema<number | undefined>;
|
|
@@ -46,7 +46,7 @@ export declare const getEvalSourceMetricSchema: () => import("../internal-agents
|
|
|
46
46
|
/** Schema for an Eval report metric summary in Studio run projections. */
|
|
47
47
|
export declare const getEvalRunMetricSummarySchema: () => import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
48
48
|
name: import("../internal-agents/schema.js").Schema<string>;
|
|
49
|
-
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "check">;
|
|
49
|
+
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "knowledge" | "check">;
|
|
50
50
|
severity: import("../internal-agents/schema.js").Schema<"gate" | "soft" | "budget">;
|
|
51
51
|
passed: import("../internal-agents/schema.js").Schema<number>;
|
|
52
52
|
failed: import("../internal-agents/schema.js").Schema<number>;
|
|
@@ -75,7 +75,7 @@ export declare const getEvalRunGateFailureSummarySchema: () => import("../intern
|
|
|
75
75
|
exampleId: import("../internal-agents/schema.js").Schema<string>;
|
|
76
76
|
repetition: import("../internal-agents/schema.js").Schema<number>;
|
|
77
77
|
name: import("../internal-agents/schema.js").Schema<string>;
|
|
78
|
-
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "check">;
|
|
78
|
+
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "knowledge" | "check">;
|
|
79
79
|
severity: import("../internal-agents/schema.js").Schema<"gate" | "budget">;
|
|
80
80
|
explanation: import("../internal-agents/schema.js").Schema<string | undefined>;
|
|
81
81
|
evidence: import("../internal-agents/schema.js").Schema<Record<string, unknown> | undefined>;
|
|
@@ -123,7 +123,7 @@ export declare const getEvalSourceDocumentSchema: () => import("../internal-agen
|
|
|
123
123
|
}>>;
|
|
124
124
|
metrics: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
125
125
|
name: import("../internal-agents/schema.js").Schema<string>;
|
|
126
|
-
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "check">;
|
|
126
|
+
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "knowledge" | "check">;
|
|
127
127
|
severity: import("../internal-agents/schema.js").Schema<"gate" | "soft" | "budget">;
|
|
128
128
|
threshold: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
129
129
|
min: import("../internal-agents/schema.js").Schema<number | undefined>;
|
|
@@ -170,7 +170,7 @@ export declare const getEvalSourcePatchSchema: () => import("../internal-agents/
|
|
|
170
170
|
metadata: import("../internal-agents/schema.js").Schema<Record<string, unknown> | undefined>;
|
|
171
171
|
metrics: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
172
172
|
name: import("../internal-agents/schema.js").Schema<string>;
|
|
173
|
-
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "check">;
|
|
173
|
+
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "knowledge" | "check">;
|
|
174
174
|
severity: import("../internal-agents/schema.js").Schema<"gate" | "soft" | "budget">;
|
|
175
175
|
threshold: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
176
176
|
min: import("../internal-agents/schema.js").Schema<number | undefined>;
|
|
@@ -203,7 +203,7 @@ export declare const getEvalRunSchema: () => import("../internal-agents/schema.j
|
|
|
203
203
|
skippedResults: import("../internal-agents/schema.js").Schema<number | undefined>;
|
|
204
204
|
metrics: import("../internal-agents/schema.js").Schema<import("../extensions/schema/schema-validator.js").InferShape<{
|
|
205
205
|
name: import("../internal-agents/schema.js").Schema<string>;
|
|
206
|
-
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "check">;
|
|
206
|
+
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "knowledge" | "check">;
|
|
207
207
|
severity: import("../internal-agents/schema.js").Schema<"gate" | "soft" | "budget">;
|
|
208
208
|
passed: import("../internal-agents/schema.js").Schema<number>;
|
|
209
209
|
failed: import("../internal-agents/schema.js").Schema<number>;
|
|
@@ -229,7 +229,7 @@ export declare const getEvalRunSchema: () => import("../internal-agents/schema.j
|
|
|
229
229
|
exampleId: import("../internal-agents/schema.js").Schema<string>;
|
|
230
230
|
repetition: import("../internal-agents/schema.js").Schema<number>;
|
|
231
231
|
name: import("../internal-agents/schema.js").Schema<string>;
|
|
232
|
-
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "check">;
|
|
232
|
+
family: import("../internal-agents/schema.js").Schema<"agent" | "answer" | "ops" | "judge" | "knowledge" | "check">;
|
|
233
233
|
severity: import("../internal-agents/schema.js").Schema<"gate" | "budget">;
|
|
234
234
|
explanation: import("../internal-agents/schema.js").Schema<string | undefined>;
|
|
235
235
|
evidence: import("../internal-agents/schema.js").Schema<Record<string, unknown> | undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../../src/src/eval/studio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,2CAA2C;AAC3C,eAAO,MAAM,6BAA6B,yHAEzC,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,0BAA0B,gKActC,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,4BAA4B;;;;GAMxC,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,0BAA0B;;;;;GAOtC,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,0BAA0B;;;;;;;;;;;GAQtC,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB;;;;;;;;;;;GAarC,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,6BAA6B;;;;;;;;GAUzC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,+BAA+B;;;;;;;GAS3C,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,4BAA4B;;;;;GAOxC,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,kCAAkC;;;;;;;;;GAW9C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,oCAAoC;;;;;;;GAShD,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,4BAA4B;;;;;GAOxC,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkBvC,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgBpC,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6B5B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AACjG,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC;AAC3F,8CAA8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC;AAC/F,4CAA4C;AAC5C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC;AAC7F,mDAAmD;AACnD,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;AACvF,oCAAoC;AACpC,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC;AAEvE,4EAA4E;AAC5E,MAAM,WAAW,+BAA+B;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;
|
|
1
|
+
{"version":3,"file":"studio.d.ts","sourceRoot":"","sources":["../../../src/src/eval/studio.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,2CAA2C;AAC3C,eAAO,MAAM,6BAA6B,yHAEzC,CAAC;AAEF,qDAAqD;AACrD,eAAO,MAAM,0BAA0B,gKActC,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,4BAA4B;;;;GAMxC,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,0BAA0B;;;;;GAOtC,CAAC;AAEF,6DAA6D;AAC7D,eAAO,MAAM,0BAA0B;;;;;;;;;;;GAQtC,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,yBAAyB;;;;;;;;;;;GAarC,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,6BAA6B;;;;;;;;GAUzC,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,+BAA+B;;;;;;;GAS3C,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,4BAA4B;;;;;GAOxC,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,kCAAkC;;;;;;;;;GAW9C,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,oCAAoC;;;;;;;GAShD,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,4BAA4B;;;;;GAOxC,CAAC;AAEF,yDAAyD;AACzD,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkBvC,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgBpC,CAAC;AAEF,gDAAgD;AAChD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6B5B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,oBAAoB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC;AACjG,4CAA4C;AAC5C,MAAM,MAAM,iBAAiB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,0BAA0B,CAAC,CAAC,CAAC;AAC3F,8CAA8C;AAC9C,MAAM,MAAM,mBAAmB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC,CAAC;AAC/F,4CAA4C;AAC5C,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,2BAA2B,CAAC,CAAC,CAAC;AAC7F,mDAAmD;AACnD,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAC,CAAC;AACvF,oCAAoC;AACpC,MAAM,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC;AAEvE,4EAA4E;AAC5E,MAAM,WAAW,+BAA+B;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACvC;AAwDD,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,cAAc,EAC1B,OAAO,GAAE,+BAAoC,GAC5C,kBAAkB,CAyBpB"}
|
package/esm/src/eval/studio.js
CHANGED
|
@@ -37,7 +37,7 @@ export const getEvalSourceDatasetSchema = defineSchema((v) => v.object({
|
|
|
37
37
|
/** Schema for an Eval metric in Studio source documents. */
|
|
38
38
|
export const getEvalSourceMetricSchema = defineSchema((v) => v.object({
|
|
39
39
|
name: v.string(),
|
|
40
|
-
family: v.enum(["answer", "agent", "ops", "judge", "check"]),
|
|
40
|
+
family: v.enum(["answer", "agent", "ops", "judge", "knowledge", "check"]),
|
|
41
41
|
severity: v.enum(["gate", "soft", "budget"]),
|
|
42
42
|
threshold: v.object({
|
|
43
43
|
min: v.number().optional(),
|
|
@@ -50,7 +50,7 @@ export const getEvalSourceMetricSchema = defineSchema((v) => v.object({
|
|
|
50
50
|
/** Schema for an Eval report metric summary in Studio run projections. */
|
|
51
51
|
export const getEvalRunMetricSummarySchema = defineSchema((v) => v.object({
|
|
52
52
|
name: v.string(),
|
|
53
|
-
family: v.enum(["answer", "agent", "ops", "judge", "check"]),
|
|
53
|
+
family: v.enum(["answer", "agent", "ops", "judge", "knowledge", "check"]),
|
|
54
54
|
severity: v.enum(["gate", "soft", "budget"]),
|
|
55
55
|
passed: v.number().int().nonnegative(),
|
|
56
56
|
failed: v.number().int().nonnegative(),
|
|
@@ -79,7 +79,7 @@ export const getEvalRunGateFailureSummarySchema = defineSchema((v) => v.object({
|
|
|
79
79
|
exampleId: v.string(),
|
|
80
80
|
repetition: v.number().int().positive(),
|
|
81
81
|
name: v.string(),
|
|
82
|
-
family: v.enum(["answer", "agent", "ops", "judge", "check"]),
|
|
82
|
+
family: v.enum(["answer", "agent", "ops", "judge", "knowledge", "check"]),
|
|
83
83
|
severity: v.enum(["gate", "budget"]),
|
|
84
84
|
explanation: v.string().optional(),
|
|
85
85
|
evidence: v.record(v.string(), v.unknown()).optional(),
|
|
@@ -198,7 +198,8 @@ function copyExample(example) {
|
|
|
198
198
|
};
|
|
199
199
|
}
|
|
200
200
|
function createSourceMetric(metric) {
|
|
201
|
-
const dynamic = metric.family === "judge" || metric.family === "check"
|
|
201
|
+
const dynamic = metric.family === "judge" || metric.family === "check" ||
|
|
202
|
+
metric.name === "answer.groundedness";
|
|
202
203
|
return {
|
|
203
204
|
name: metric.name,
|
|
204
205
|
family: metric.family,
|
package/esm/src/eval/types.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export type EvalTargetKind = "agent";
|
|
|
9
9
|
/** How a metric result affects the final eval result. */
|
|
10
10
|
export type EvalSeverity = "gate" | "soft" | "budget";
|
|
11
11
|
/** Metric family used for grouping report summaries. */
|
|
12
|
-
export type EvalMetricFamily = "answer" | "agent" | "ops" | "judge" | "check";
|
|
12
|
+
export type EvalMetricFamily = "answer" | "agent" | "ops" | "judge" | "knowledge" | "check";
|
|
13
13
|
/** Numeric threshold attached to score-based metrics. */
|
|
14
14
|
export type EvalMetricThreshold = {
|
|
15
15
|
min?: number;
|
|
@@ -64,6 +64,51 @@ export interface EvalToolCallCountOptions {
|
|
|
64
64
|
min?: number;
|
|
65
65
|
max?: number;
|
|
66
66
|
}
|
|
67
|
+
/** Expected knowledge source or passage for retrieval-quality metrics. */
|
|
68
|
+
export type EvalKnowledgeExpectedSource = string | {
|
|
69
|
+
path?: string;
|
|
70
|
+
source?: string;
|
|
71
|
+
id?: string;
|
|
72
|
+
title?: string;
|
|
73
|
+
documentCode?: string;
|
|
74
|
+
document_code?: string;
|
|
75
|
+
contentMatch?: string;
|
|
76
|
+
verificationQuote?: string;
|
|
77
|
+
content?: string;
|
|
78
|
+
text?: string;
|
|
79
|
+
};
|
|
80
|
+
/** Options shared by knowledge retrieval metrics. */
|
|
81
|
+
export interface EvalKnowledgeRetrievalMetricOptions {
|
|
82
|
+
expected?: EvalKnowledgeExpectedSource[];
|
|
83
|
+
expectedFrom?: string;
|
|
84
|
+
k: number;
|
|
85
|
+
tool?: string;
|
|
86
|
+
}
|
|
87
|
+
/** Options for mean reciprocal rank over retrieved knowledge. */
|
|
88
|
+
export interface EvalKnowledgeMrrMetricOptions {
|
|
89
|
+
expected?: EvalKnowledgeExpectedSource[];
|
|
90
|
+
expectedFrom?: string;
|
|
91
|
+
k?: number;
|
|
92
|
+
tool?: string;
|
|
93
|
+
}
|
|
94
|
+
/** Options for judge-backed answer grounding checks. */
|
|
95
|
+
export interface EvalAnswerGroundednessMetricOptions {
|
|
96
|
+
tool?: string;
|
|
97
|
+
rubric?: string;
|
|
98
|
+
judge?: (input: {
|
|
99
|
+
rubric: string;
|
|
100
|
+
input: unknown;
|
|
101
|
+
output: Record<string, unknown>;
|
|
102
|
+
reference?: unknown;
|
|
103
|
+
metadata: Record<string, unknown>;
|
|
104
|
+
evidence: string[];
|
|
105
|
+
sources: string[];
|
|
106
|
+
}) => EvalMaybePromise<{
|
|
107
|
+
score: number;
|
|
108
|
+
pass?: boolean;
|
|
109
|
+
explanation?: string;
|
|
110
|
+
}>;
|
|
111
|
+
}
|
|
67
112
|
/** Tool call metadata captured during one eval record. */
|
|
68
113
|
export interface EvalToolCall {
|
|
69
114
|
id?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/eval/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/src/eval/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -72,6 +72,7 @@ export interface ProjectKnowledgeLookupItem {
|
|
|
72
72
|
path: string;
|
|
73
73
|
matched_fields: string[];
|
|
74
74
|
frontmatter: ProjectKnowledgeLookupFrontmatterField[];
|
|
75
|
+
content?: string;
|
|
75
76
|
}
|
|
76
77
|
export interface ProjectKnowledgeLookupPageInfo {
|
|
77
78
|
self: string | null;
|
|
@@ -108,9 +109,10 @@ export interface ProjectKnowledge {
|
|
|
108
109
|
*/
|
|
109
110
|
index(): Promise<void>;
|
|
110
111
|
/**
|
|
111
|
-
* Search the local OKF knowledge manifest using the same compact
|
|
112
|
-
*
|
|
113
|
-
*
|
|
112
|
+
* Search the local OKF knowledge manifest using the same compact response
|
|
113
|
+
* shape as Veryfront Cloud's `search_knowledge` tool. Explicit
|
|
114
|
+
* `lookup_target` calls include document content. This does not build or
|
|
115
|
+
* query the embedding index.
|
|
114
116
|
*/
|
|
115
117
|
lookup(input: ProjectKnowledgeLookupInput): Promise<ProjectKnowledgeLookupOutput>;
|
|
116
118
|
retrieve(query: string, options?: ProjectKnowledgeRetrieveOptions): Promise<ProjectKnowledgeResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/knowledge/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EAEf,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAqBnE,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACrC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wDAAwD;AACxD,MAAM,WAAW,+BAAgC,SAAQ,gBAAgB;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,sCAAsC;IACrD,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,sCAAsC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/src/knowledge/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,7 +57,7 @@ const SEARCH_KNOWLEDGE_INPUT_SCHEMA = {
|
|
|
57
57
|
lookup_target: {
|
|
58
58
|
type: "object",
|
|
59
59
|
additionalProperties: true,
|
|
60
|
-
description: "
|
|
60
|
+
description: "Optional target such as { path } for retrieving a specific knowledge document.",
|
|
61
61
|
},
|
|
62
62
|
limit: {
|
|
63
63
|
type: "integer",
|
|
@@ -88,6 +88,9 @@ function stripTrailingSlash(path) {
|
|
|
88
88
|
function trimLeadingSlash(path) {
|
|
89
89
|
return toPosixPath(path).replace(/^\/+/, "");
|
|
90
90
|
}
|
|
91
|
+
function normalizeManifestPath(path) {
|
|
92
|
+
return trimLeadingSlash(path).replace(/^\.\//, "");
|
|
93
|
+
}
|
|
91
94
|
function buildHostedManifestPath(contentDir, filePath) {
|
|
92
95
|
const normalizedPath = trimLeadingSlash(filePath);
|
|
93
96
|
const normalizedContentDir = stripTrailingSlash(trimLeadingSlash(contentDir)).replace(/^\.\//, "");
|
|
@@ -229,6 +232,29 @@ function toSearchableEntry(entry) {
|
|
|
229
232
|
})),
|
|
230
233
|
};
|
|
231
234
|
}
|
|
235
|
+
function getLookupTargetPath(lookupTarget) {
|
|
236
|
+
if (typeof lookupTarget === "string" && lookupTarget.trim()) {
|
|
237
|
+
return normalizeManifestPath(lookupTarget);
|
|
238
|
+
}
|
|
239
|
+
if (!lookupTarget || typeof lookupTarget !== "object" || Array.isArray(lookupTarget)) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
const record = lookupTarget;
|
|
243
|
+
for (const key of ["path", "source", "id", "documentCode", "document_code"]) {
|
|
244
|
+
const value = record[key];
|
|
245
|
+
if (typeof value === "string" && value.trim())
|
|
246
|
+
return normalizeManifestPath(value);
|
|
247
|
+
}
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
function createLookupItem(entry, matchedFields, includeContent = false) {
|
|
251
|
+
return {
|
|
252
|
+
path: entry.path,
|
|
253
|
+
matched_fields: matchedFields,
|
|
254
|
+
frontmatter: entry.frontmatter,
|
|
255
|
+
...(includeContent && entry.content ? { content: entry.content } : {}),
|
|
256
|
+
};
|
|
257
|
+
}
|
|
232
258
|
function encodeCursor(state) {
|
|
233
259
|
const bytes = new TextEncoder().encode(JSON.stringify(state));
|
|
234
260
|
let binary = "";
|
|
@@ -320,7 +346,14 @@ async function getProjectKnowledgeManifest(config, context) {
|
|
|
320
346
|
for (const file of files) {
|
|
321
347
|
let parsedFrontmatter = {};
|
|
322
348
|
try {
|
|
323
|
-
|
|
349
|
+
const content = await readTextFile(file);
|
|
350
|
+
parsedFrontmatter = extract(content).attrs;
|
|
351
|
+
manifest.push({
|
|
352
|
+
path: buildManifestPath(config, file),
|
|
353
|
+
content,
|
|
354
|
+
...sanitizeFrontmatter(parsedFrontmatter),
|
|
355
|
+
});
|
|
356
|
+
continue;
|
|
324
357
|
}
|
|
325
358
|
catch {
|
|
326
359
|
parsedFrontmatter = {};
|
|
@@ -415,6 +448,7 @@ async function getHostedProjectKnowledgeManifest(config, context) {
|
|
|
415
448
|
}
|
|
416
449
|
manifest.push({
|
|
417
450
|
path: manifestPath,
|
|
451
|
+
content: file.content,
|
|
418
452
|
...sanitizeFrontmatter(parsedFrontmatter),
|
|
419
453
|
});
|
|
420
454
|
}
|
|
@@ -424,7 +458,8 @@ function lookupKnowledgeManifest(manifest, input) {
|
|
|
424
458
|
const cursorState = input.cursor ? decodeCursor(input.cursor) : null;
|
|
425
459
|
const providedQuery = input.query?.trim() ?? "";
|
|
426
460
|
const resolvedQuery = (cursorState?.query ?? providedQuery).trim();
|
|
427
|
-
|
|
461
|
+
const lookupTargetPath = cursorState ? null : getLookupTargetPath(input.lookup_target);
|
|
462
|
+
if (!resolvedQuery && !lookupTargetPath) {
|
|
428
463
|
throw new Error("search_knowledge requires a non-empty query");
|
|
429
464
|
}
|
|
430
465
|
if (cursorState && providedQuery && providedQuery !== cursorState.query) {
|
|
@@ -438,6 +473,28 @@ function lookupKnowledgeManifest(manifest, input) {
|
|
|
438
473
|
if (resolvedShardIndex < 0 || resolvedShardIndex >= resolvedShardCount) {
|
|
439
474
|
throw new Error("search_knowledge shard_index must be within shard_count");
|
|
440
475
|
}
|
|
476
|
+
if (lookupTargetPath) {
|
|
477
|
+
const entry = manifest.find((item) => normalizeManifestPath(item.path) === lookupTargetPath);
|
|
478
|
+
const data = entry ? [createLookupItem(entry, ["path"], true)] : [];
|
|
479
|
+
return {
|
|
480
|
+
query: resolvedQuery || lookupTargetPath,
|
|
481
|
+
mode: "search",
|
|
482
|
+
data,
|
|
483
|
+
page_info: {
|
|
484
|
+
self: null,
|
|
485
|
+
first: null,
|
|
486
|
+
next: null,
|
|
487
|
+
prev: null,
|
|
488
|
+
},
|
|
489
|
+
returned: data.length,
|
|
490
|
+
total_matches: data.length,
|
|
491
|
+
shard: {
|
|
492
|
+
shard_index: resolvedShardIndex,
|
|
493
|
+
shard_count: resolvedShardCount,
|
|
494
|
+
total_items: manifest.length,
|
|
495
|
+
},
|
|
496
|
+
};
|
|
497
|
+
}
|
|
441
498
|
const resolvedLimit = Math.min(Math.max(cursorState?.limit ?? input.limit ?? DEFAULT_LOOKUP_LIMIT, 1), MAX_LOOKUP_LIMIT);
|
|
442
499
|
const resolvedOffset = Math.max(cursorState?.offset ?? 0, 0);
|
|
443
500
|
const queryTokens = tokenize(resolvedQuery);
|
|
@@ -475,11 +532,7 @@ function lookupKnowledgeManifest(manifest, input) {
|
|
|
475
532
|
return {
|
|
476
533
|
query: resolvedQuery,
|
|
477
534
|
mode,
|
|
478
|
-
data: pageEntries.map(({ entry, matchedFields }) => (
|
|
479
|
-
path: entry.path,
|
|
480
|
-
matched_fields: matchedFields,
|
|
481
|
-
frontmatter: entry.frontmatter,
|
|
482
|
-
})),
|
|
535
|
+
data: pageEntries.map(({ entry, matchedFields }) => createLookupItem(entry, matchedFields)),
|
|
483
536
|
page_info: {
|
|
484
537
|
self: input.cursor ?? null,
|
|
485
538
|
first: null,
|
|
@@ -536,7 +589,7 @@ export function createSearchKnowledgeTool(options = {}) {
|
|
|
536
589
|
return tool({
|
|
537
590
|
id,
|
|
538
591
|
description: description ??
|
|
539
|
-
"Retrieve a compact, cursor-based slice of
|
|
592
|
+
"Retrieve a compact, cursor-based slice of project knowledge, or a specific document by lookup target.",
|
|
540
593
|
inputSchema: SEARCH_KNOWLEDGE_INPUT_SCHEMA,
|
|
541
594
|
execute: (input, context) => searchProjectKnowledge(coerceSearchKnowledgeInput(input), config, context),
|
|
542
595
|
});
|