@captra-ai/core 0.9.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/evals.d.ts +66 -3
- package/dist/evals.d.ts.map +1 -1
- package/dist/evals.js +91 -14
- package/dist/evals.js.map +1 -1
- package/package.json +1 -1
package/dist/evals.d.ts
CHANGED
|
@@ -1,11 +1,34 @@
|
|
|
1
1
|
import type { CapabilityResult, ExecutionIdentity, Runtime } from './core.js';
|
|
2
|
+
export type EvaluationScore = {
|
|
3
|
+
name: string;
|
|
4
|
+
value: number;
|
|
5
|
+
passed: boolean;
|
|
6
|
+
detail?: string;
|
|
7
|
+
};
|
|
8
|
+
export type EvaluationScorer = {
|
|
9
|
+
name: string;
|
|
10
|
+
score: (result: CapabilityResult, test: EvaluationCase) => number | EvaluationScore | Promise<number | EvaluationScore>;
|
|
11
|
+
threshold?: number;
|
|
12
|
+
};
|
|
2
13
|
export type EvaluationCase = {
|
|
3
14
|
name: string;
|
|
4
15
|
capability: string;
|
|
5
16
|
input: unknown;
|
|
6
17
|
identity: ExecutionIdentity;
|
|
7
18
|
assert?: (result: CapabilityResult) => boolean | Promise<boolean>;
|
|
19
|
+
scorers?: readonly EvaluationScorer[];
|
|
8
20
|
tags?: readonly string[];
|
|
21
|
+
limits?: {
|
|
22
|
+
maxDurationMs?: number;
|
|
23
|
+
maxTokens?: number;
|
|
24
|
+
maxCostUsd?: number;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export type EvaluationSuite = {
|
|
28
|
+
version: 1;
|
|
29
|
+
name: string;
|
|
30
|
+
cases: readonly EvaluationCase[];
|
|
31
|
+
metadata?: Readonly<Record<string, string>>;
|
|
9
32
|
};
|
|
10
33
|
export type EvaluationResult = {
|
|
11
34
|
name: string;
|
|
@@ -14,18 +37,58 @@ export type EvaluationResult = {
|
|
|
14
37
|
runId?: string;
|
|
15
38
|
error?: string;
|
|
16
39
|
tags: readonly string[];
|
|
40
|
+
tokens: number;
|
|
41
|
+
costUsd: number;
|
|
42
|
+
scores: readonly EvaluationScore[];
|
|
17
43
|
};
|
|
18
44
|
export type EvaluationReport = {
|
|
45
|
+
suite?: string;
|
|
46
|
+
variant?: string;
|
|
19
47
|
results: EvaluationResult[];
|
|
20
48
|
passed: number;
|
|
21
49
|
failed: number;
|
|
22
50
|
passRate: number;
|
|
23
51
|
durationMs: number;
|
|
52
|
+
tokens: number;
|
|
53
|
+
costUsd: number;
|
|
54
|
+
p95DurationMs: number;
|
|
55
|
+
scoreAverages: Record<string, number>;
|
|
24
56
|
};
|
|
25
|
-
export
|
|
26
|
-
export declare function enforceEvaluation(report: EvaluationReport, thresholds: {
|
|
57
|
+
export type EvaluationThresholds = {
|
|
27
58
|
minPassRate?: number;
|
|
28
59
|
maxFailures?: number;
|
|
29
60
|
maxDurationMs?: number;
|
|
30
|
-
|
|
61
|
+
maxP95DurationMs?: number;
|
|
62
|
+
maxTokens?: number;
|
|
63
|
+
maxCostUsd?: number;
|
|
64
|
+
minScores?: Readonly<Record<string, number>>;
|
|
65
|
+
};
|
|
66
|
+
export type EvaluationVariant = {
|
|
67
|
+
name: string;
|
|
68
|
+
runtime: Runtime;
|
|
69
|
+
};
|
|
70
|
+
export type EvaluationComparison = {
|
|
71
|
+
baseline: string;
|
|
72
|
+
reports: EvaluationReport[];
|
|
73
|
+
deltas: Array<{
|
|
74
|
+
variant: string;
|
|
75
|
+
passRate: number;
|
|
76
|
+
durationMs: number;
|
|
77
|
+
tokens: number;
|
|
78
|
+
costUsd: number;
|
|
79
|
+
scores: Record<string, number>;
|
|
80
|
+
}>;
|
|
81
|
+
};
|
|
82
|
+
export declare class EvaluationRegressionError extends Error {
|
|
83
|
+
readonly failures: readonly string[];
|
|
84
|
+
readonly report: EvaluationReport;
|
|
85
|
+
readonly code = "evaluation_regression";
|
|
86
|
+
constructor(failures: readonly string[], report: EvaluationReport);
|
|
87
|
+
}
|
|
88
|
+
export declare function runEvaluation(runtime: Runtime, casesOrSuite: readonly EvaluationCase[] | EvaluationSuite, options?: {
|
|
89
|
+
variant?: string;
|
|
90
|
+
}): Promise<EvaluationReport>;
|
|
91
|
+
export declare function compareEvaluations(variants: readonly EvaluationVariant[], casesOrSuite: readonly EvaluationCase[] | EvaluationSuite, baseline?: string): Promise<EvaluationComparison>;
|
|
92
|
+
export declare function enforceEvaluation(report: EvaluationReport, thresholds: EvaluationThresholds): EvaluationReport;
|
|
93
|
+
export declare function formatEvaluation(report: EvaluationReport, format?: 'json' | 'markdown' | 'junit'): string;
|
|
31
94
|
//# sourceMappingURL=evals.d.ts.map
|
package/dist/evals.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evals.d.ts","sourceRoot":"","sources":["../src/evals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAC,iBAAiB,EAAC,OAAO,EAAE,MAAM,WAAW,CAAA;AAE3E,MAAM,MAAM,cAAc,GAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAA,UAAU,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC,OAAO,CAAC;IAAA,QAAQ,EAAC,iBAAiB,CAAC;IAAA,MAAM,CAAC,EAAC,CAAC,MAAM,EAAC,gBAAgB,KAAG,OAAO,GAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAAA,IAAI,CAAC,EAAC,SAAS,MAAM,EAAE,CAAA;CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"evals.d.ts","sourceRoot":"","sources":["../src/evals.ts"],"names":[],"mappings":"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"}
|
package/dist/evals.js
CHANGED
|
@@ -1,18 +1,95 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
export class EvaluationRegressionError extends Error {
|
|
2
|
+
failures;
|
|
3
|
+
report;
|
|
4
|
+
code = 'evaluation_regression';
|
|
5
|
+
constructor(failures, report) {
|
|
6
|
+
super(`Evaluation regression: ${failures.join('; ')}`);
|
|
7
|
+
this.failures = failures;
|
|
8
|
+
this.report = report;
|
|
9
|
+
this.name = 'EvaluationRegressionError';
|
|
7
10
|
}
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
}
|
|
12
|
+
export async function runEvaluation(runtime, casesOrSuite, options = {}) {
|
|
13
|
+
const suite = Array.isArray(casesOrSuite) ? undefined : casesOrSuite, cases = Array.isArray(casesOrSuite) ? casesOrSuite : casesOrSuite.cases, started = Date.now(), results = [];
|
|
14
|
+
for (const test of cases) {
|
|
15
|
+
const caseStarted = Date.now();
|
|
16
|
+
try {
|
|
17
|
+
const result = await runtime.execute({ capability: test.capability, input: test.input, identity: test.identity }), durationMs = Date.now() - caseStarted, usage = usageFrom(result), scores = await scoreResult(result, test), failures = [];
|
|
18
|
+
if (test.assert && !(await test.assert(result)))
|
|
19
|
+
failures.push('Assertion returned false');
|
|
20
|
+
for (const score of scores)
|
|
21
|
+
if (!score.passed)
|
|
22
|
+
failures.push(`${score.name} score ${score.value} is below threshold`);
|
|
23
|
+
if (durationMs > (test.limits?.maxDurationMs ?? Number.POSITIVE_INFINITY))
|
|
24
|
+
failures.push(`duration ${durationMs}ms exceeds ${test.limits?.maxDurationMs}ms`);
|
|
25
|
+
if (usage.tokens > (test.limits?.maxTokens ?? Number.POSITIVE_INFINITY))
|
|
26
|
+
failures.push(`tokens ${usage.tokens} exceeds ${test.limits?.maxTokens}`);
|
|
27
|
+
if (usage.costUsd > (test.limits?.maxCostUsd ?? Number.POSITIVE_INFINITY))
|
|
28
|
+
failures.push(`cost $${usage.costUsd.toFixed(6)} exceeds $${test.limits?.maxCostUsd}`);
|
|
29
|
+
results.push({ name: test.name, passed: failures.length === 0 && result.run.status === 'completed', durationMs, runId: result.run.id, tags: test.tags ?? [], tokens: usage.tokens, costUsd: usage.costUsd, scores, ...(failures.length ? { error: failures.join('; ') } : {}) });
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
results.push({ name: test.name, passed: false, durationMs: Date.now() - caseStarted, error: error instanceof Error ? error.message : String(error), tags: test.tags ?? [], tokens: 0, costUsd: 0, scores: [] });
|
|
33
|
+
}
|
|
10
34
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
35
|
+
return reportFrom(results, { suite: suite?.name, variant: options.variant, durationMs: Date.now() - started });
|
|
36
|
+
}
|
|
37
|
+
export async function compareEvaluations(variants, casesOrSuite, baseline = variants[0]?.name) {
|
|
38
|
+
if (!variants.length)
|
|
39
|
+
throw new Error('At least one evaluation variant is required');
|
|
40
|
+
if (!variants.some(variant => variant.name === baseline))
|
|
41
|
+
throw new Error(`Unknown evaluation baseline: ${baseline}`);
|
|
42
|
+
const reports = [];
|
|
43
|
+
for (const variant of variants)
|
|
44
|
+
reports.push(await runEvaluation(variant.runtime, casesOrSuite, { variant: variant.name }));
|
|
45
|
+
const base = reports.find(report => report.variant === baseline);
|
|
46
|
+
return { baseline: baseline, reports, deltas: reports.filter(report => report !== base).map(report => ({ variant: report.variant, passRate: report.passRate - base.passRate, durationMs: report.durationMs - base.durationMs, tokens: report.tokens - base.tokens, costUsd: report.costUsd - base.costUsd, scores: scoreDeltas(report.scoreAverages, base.scoreAverages) })) };
|
|
47
|
+
}
|
|
48
|
+
export function enforceEvaluation(report, thresholds) {
|
|
49
|
+
const failures = [];
|
|
50
|
+
if (report.passRate < (thresholds.minPassRate ?? 0))
|
|
51
|
+
failures.push(`pass rate ${percent(report.passRate)} is below ${percent(thresholds.minPassRate ?? 0)}`);
|
|
52
|
+
if (report.failed > (thresholds.maxFailures ?? Number.MAX_SAFE_INTEGER))
|
|
53
|
+
failures.push(`${report.failed} failures exceeds ${thresholds.maxFailures}`);
|
|
54
|
+
if (report.durationMs > (thresholds.maxDurationMs ?? Number.MAX_SAFE_INTEGER))
|
|
55
|
+
failures.push(`duration ${report.durationMs}ms exceeds ${thresholds.maxDurationMs}ms`);
|
|
56
|
+
if (report.p95DurationMs > (thresholds.maxP95DurationMs ?? Number.MAX_SAFE_INTEGER))
|
|
57
|
+
failures.push(`p95 duration ${report.p95DurationMs}ms exceeds ${thresholds.maxP95DurationMs}ms`);
|
|
58
|
+
if (report.tokens > (thresholds.maxTokens ?? Number.MAX_SAFE_INTEGER))
|
|
59
|
+
failures.push(`${report.tokens} tokens exceeds ${thresholds.maxTokens}`);
|
|
60
|
+
if (report.costUsd > (thresholds.maxCostUsd ?? Number.POSITIVE_INFINITY))
|
|
61
|
+
failures.push(`cost $${report.costUsd.toFixed(6)} exceeds $${thresholds.maxCostUsd}`);
|
|
62
|
+
for (const [name, minimum] of Object.entries(thresholds.minScores ?? {}))
|
|
63
|
+
if ((report.scoreAverages[name] ?? 0) < minimum)
|
|
64
|
+
failures.push(`${name} score ${report.scoreAverages[name] ?? 0} is below ${minimum}`);
|
|
65
|
+
if (failures.length)
|
|
66
|
+
throw new EvaluationRegressionError(failures, report);
|
|
67
|
+
return report;
|
|
68
|
+
}
|
|
69
|
+
export function formatEvaluation(report, format = 'markdown') {
|
|
70
|
+
if (format === 'json')
|
|
71
|
+
return JSON.stringify(report, null, 2);
|
|
72
|
+
if (format === 'junit')
|
|
73
|
+
return junit(report);
|
|
74
|
+
const heading = `# ${report.suite ?? 'Captra evaluation'}${report.variant ? ` — ${report.variant}` : ''}`, summary = `${report.passed}/${report.results.length} passed · ${percent(report.passRate)} · ${report.tokens} tokens · $${report.costUsd.toFixed(4)} · p95 ${report.p95DurationMs}ms`, rows = report.results.map(result => `| ${result.passed ? '✓' : '✗'} | ${escapeCell(result.name)} | ${result.durationMs}ms | ${result.tokens} | $${result.costUsd.toFixed(4)} | ${escapeCell(result.error ?? '')} |`);
|
|
75
|
+
return [heading, '', summary, '', '| | Case | Duration | Tokens | Cost | Failure |', '|---|---|---:|---:|---:|---|', ...rows].join('\n');
|
|
76
|
+
}
|
|
77
|
+
async function scoreResult(result, test) { const scores = []; for (const scorer of test.scorers ?? []) {
|
|
78
|
+
const value = await scorer.score(result, test), score = typeof value === 'number' ? { name: scorer.name, value, passed: value >= (scorer.threshold ?? 0) } : { ...value, name: value.name || scorer.name };
|
|
79
|
+
scores.push(score);
|
|
80
|
+
} return scores; }
|
|
81
|
+
function usageFrom(result) { let tokens = 0, costUsd = 0; for (const event of result.trace)
|
|
82
|
+
if (event.type === 'budget.committed') {
|
|
83
|
+
tokens += numberFrom(event.data, 'tokens');
|
|
84
|
+
costUsd += numberFrom(event.data, 'costUsd');
|
|
85
|
+
} return { tokens, costUsd }; }
|
|
86
|
+
function reportFrom(results, extra) { const passed = results.filter(result => result.passed).length, durations = results.map(result => result.durationMs).sort((a, b) => a - b), scoreGroups = new Map(); for (const result of results)
|
|
87
|
+
for (const score of result.scores)
|
|
88
|
+
scoreGroups.set(score.name, [...(scoreGroups.get(score.name) ?? []), score.value]); return { ...extra, results, passed, failed: results.length - passed, passRate: results.length ? passed / results.length : 1, tokens: results.reduce((total, result) => total + result.tokens, 0), costUsd: results.reduce((total, result) => total + result.costUsd, 0), p95DurationMs: durations.length ? durations[Math.min(durations.length - 1, Math.ceil(durations.length * .95) - 1)] : 0, scoreAverages: Object.fromEntries([...scoreGroups].map(([name, values]) => [name, values.reduce((sum, value) => sum + value, 0) / values.length])) }; }
|
|
89
|
+
function scoreDeltas(current, baseline) { return Object.fromEntries([...new Set([...Object.keys(current), ...Object.keys(baseline)])].map(name => [name, (current[name] ?? 0) - (baseline[name] ?? 0)])); }
|
|
90
|
+
function junit(report) { const cases = report.results.map(result => ` <testcase name="${xml(result.name)}" time="${(result.durationMs / 1000).toFixed(3)}">${result.passed ? '' : `<failure message="${xml(result.error ?? 'Evaluation failed')}"/>`}</testcase>`).join('\n'); return `<?xml version="1.0" encoding="UTF-8"?>\n<testsuite name="${xml(report.suite ?? 'Captra evaluation')}" tests="${report.results.length}" failures="${report.failed}" time="${(report.durationMs / 1000).toFixed(3)}">\n${cases}\n</testsuite>`; }
|
|
91
|
+
function numberFrom(data, key) { const value = data && typeof data === 'object' ? data[key] : 0; return typeof value === 'number' ? value : 0; }
|
|
92
|
+
function escapeCell(value) { return value.replaceAll('|', '\\|').replaceAll('\n', ' '); }
|
|
93
|
+
function xml(value) { return value.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"'); }
|
|
17
94
|
const percent = (value) => `${(value * 100).toFixed(1)}%`;
|
|
18
95
|
//# sourceMappingURL=evals.js.map
|
package/dist/evals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evals.js","sourceRoot":"","sources":["../src/evals.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evals.js","sourceRoot":"","sources":["../src/evals.ts"],"names":[],"mappings":"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"}
|