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.
@@ -1,4 +1,6 @@
1
- import type { DiscoveredEval, EvalReport, EvalReportComparison } from "../../../src/eval/index.js";
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":"AAQA,OAAO,KAAK,EACV,cAAc,EAId,UAAU,EACV,oBAAoB,EAGrB,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;AAEF,KAAK,iBAAiB,GAAG;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IAChC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAoBF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,CAM5E;AAmCD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAErD;AAQD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAKhG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CASjE;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,UAAU,GAAG,cAAc,CAWxE;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,mBAAmB,CAarB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAG7D;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA0CzD;AAQD,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,iBAAiB,EACxB,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAOf;AAMD,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,UAAU,EAClB,QAAQ,CAAC,EAAE,oBAAoB,GAC9B,CAAC,GAAG,CAAC,CAEP;AAsJD,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA+GrE"}
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":"AAMA,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,CAoGf"}
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;AAErC,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,wBAAwB,CAAC,CAAC,EAC9C,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,CAAC,OAAO,EAAE,6BAA6B,KAAK,OAAO,CAAC,CAAC,CAAC,GAC1D,OAAO,CAAC,CAAC,CAAC,CAwCZ"}
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,6 +1,6 @@
1
1
  export default {
2
2
  "name": "veryfront",
3
- "version": "0.1.944",
3
+ "version": "0.1.946",
4
4
  "license": "Apache-2.0",
5
5
  "nodeModulesDir": "auto",
6
6
  "minimumDependencyAge": {
@@ -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 shouldDisableToolsForFinalResponseAfterToolSuccess(toolName) {
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 toolsDisabledForFinalResponse = false;
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 = toolsDisabledForFinalResponse ? [] : preparedStep.tools;
615
- const stepProviderTools = toolsDisabledForFinalResponse ? [] : providerTools;
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 (shouldDisableToolsForFinalResponseAfterToolSuccess(tc.name)) {
775
- toolsDisabledForFinalResponse = true;
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 (shouldDisableToolsForFinalResponseAfterToolSuccess(tc.name)) {
799
- toolsDisabledForFinalResponse = true;
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 (shouldDisableToolsForFinalResponseAfterToolSuccess(tc.name)) {
881
- toolsDisabledForFinalResponse = true;
882
+ if (shouldHideProjectToolAfterAgentWriteSuccess(tc.name)) {
883
+ agentWriteFinalResponseToolGuardEnabled = true;
882
884
  }
883
885
  const dynamic = isDynamicTool(tc.name);
884
886
  sendSSE(controller, encoder, {
@@ -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;AAUpB,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;AAEF,iBAAS,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAQ9C;AASD,iBAAS,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE/C;AAuFD,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;;;sCAWrC,UAAU;oCAgBV,MAAM,YAAY,wBAAwB,KAAG,UAAU;uCAcpD,MAAM,KAAG,UAAU;uCAcnB,MAAM,WAAW,wBAAwB,KAAG,UAAU;;;oCAgBzD;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"}
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"}
@@ -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) => {
@@ -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;AAuDD,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,cAAc,EAC1B,OAAO,GAAE,+BAAoC,GAC5C,kBAAkB,CAyBpB"}
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"}
@@ -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,
@@ -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":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AAErC,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC;AAErC,yDAAyD;AACzD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEtD,wDAAwD;AACxD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,WAAW,GAAG,OAAO,CAAC;AAE5F,yDAAyD;AACzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEjD,mEAAmE;AACnE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,0DAA0D;AAC1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,yCAAyC;AACzC,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,iDAAiD;AACjD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,IAAI,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAC/D;AAED,yDAAyD;AACzD,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wEAAwE;AACxE,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvE,sEAAsE;AACtE,MAAM,MAAM,sBAAsB,GAAG,OAAO,GAAG,SAAS,CAAC;AAEzD,iDAAiD;AACjD,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,sBAAsB,CAAC;CAChC;AAED,wDAAwD;AACxD,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,0EAA0E;AAC1E,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,qDAAqD;AACrD,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,iEAAiE;AACjE,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wDAAwD;AACxD,MAAM,WAAW,mCAAmC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,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;QAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,KAAK,gBAAgB,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjF;AAED,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,mDAAmD;AACnD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,SAAS,EAAE,YAAY,EAAE,CAAC;CAC3B;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,SAAS,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,4DAA4D;AAC5D,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,gDAAgD;AAChD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IAC9F,IAAI,CAAC,SAAS,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC;IAClD,IAAI,CAAC,SAAS,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC;IAClD,MAAM,CAAC,SAAS,CAAC,EAAE,mBAAmB,GAAG,UAAU,CAAC;CACrD;AAED,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,SAAS,CAAC,EAAE,mBAAmB,GAAG,gBAAgB,CAAC;IACxD,IAAI,CAAC,SAAS,CAAC,EAAE,mBAAmB,GAAG,gBAAgB,CAAC;IACxD,MAAM,CAAC,SAAS,CAAC,EAAE,mBAAmB,GAAG,gBAAgB,CAAC;CAC3D;AAED,6DAA6D;AAC7D,MAAM,WAAW,UAAU;IACzB,SAAS,IAAI,eAAe,CAAC;IAC7B,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IAC9C,aAAa,IAAI,eAAe,CAAC;IACjC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,eAAe,CAAC;IAC9E,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAC;IAC7C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,wBAAwB,GAAG,eAAe,CAAC;CACjF;AAED,+DAA+D;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,kEAAkE;AAClE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,CAAC;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,qCAAqC;AACrC,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,GAAG,gBAAgB,EAAE,CAAC;IAC1C,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC;CAC/D;AAED,6EAA6E;AAC7E,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,EAAE,WAAW,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,6DAA6D;AAC7D,MAAM,MAAM,gBAAgB,GAAG,CAC7B,OAAO,EAAE,uBAAuB,KAC7B,gBAAgB,CAAC,MAAM,GAAG,sBAAsB,CAAC,CAAC;AAEvD,2CAA2C;AAC3C,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE;QACR,KAAK,EAAE,gBAAgB,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,wDAAwD;AACxD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,0BAA0B,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6CAA6C;AAC7C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,uCAAuC;AACvC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qDAAqD;AACrD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,kEAAkE;AAClE,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,uDAAuD;AACvD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,4EAA4E;AAC5E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACvC,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,iDAAiD;IACjD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,mCAAmC;IACnC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,uEAAuE;IACvE,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACxC,oEAAoE;IACpE,cAAc,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC5C,6CAA6C;IAC7C,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,sDAAsD;AACtD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,aAAa,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,cAAc,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;CACpC"}
@@ -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
- * frontmatter-only response shape as Veryfront Cloud's `search_knowledge`
113
- * tool. This does not build or query the embedding index.
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":"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"}
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: "Hosted lookup target accepted for API parity and ignored locally.",
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
- parsedFrontmatter = extract(await readTextFile(file)).attrs;
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
- if (!resolvedQuery) {
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 the project knowledge manifest.",
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
  });
@@ -1,3 +1,3 @@
1
1
  /** Shared version value. */
2
- export declare const VERSION = "0.1.944";
2
+ export declare const VERSION = "0.1.946";
3
3
  //# sourceMappingURL=version-constant.d.ts.map
@@ -1,4 +1,4 @@
1
1
  // Keep in sync with deno.json version.
2
2
  // scripts/release.ts updates this constant during releases.
3
3
  /** Shared version value. */
4
- export const VERSION = "0.1.944";
4
+ export const VERSION = "0.1.946";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "veryfront",
3
- "version": "0.1.944",
3
+ "version": "0.1.946",
4
4
  "description": "The simplest way to build AI-powered apps",
5
5
  "keywords": [
6
6
  "react",