oh-my-knowledge 0.23.0 → 0.24.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/README.md +63 -64
- package/README.zh.md +64 -63
- package/dist/src/analysis/report-diagnostics.d.ts +3 -2
- package/dist/src/analysis/report-diagnostics.d.ts.map +1 -1
- package/dist/src/analysis/report-diagnostics.js +107 -80
- package/dist/src/analysis/report-diagnostics.js.map +1 -1
- package/dist/src/analysis/sample-diagnostics.d.ts +4 -1
- package/dist/src/analysis/sample-diagnostics.d.ts.map +1 -1
- package/dist/src/analysis/sample-diagnostics.js +123 -29
- package/dist/src/analysis/sample-diagnostics.js.map +1 -1
- package/dist/src/authoring/evolver.d.ts +5 -0
- package/dist/src/authoring/evolver.d.ts.map +1 -1
- package/dist/src/authoring/evolver.js +20 -3
- package/dist/src/authoring/evolver.js.map +1 -1
- package/dist/src/cli/i18n-dict.d.ts +1 -1
- package/dist/src/cli/i18n-dict.d.ts.map +1 -1
- package/dist/src/cli/i18n-dict.js +28 -24
- package/dist/src/cli/i18n-dict.js.map +1 -1
- package/dist/src/cli/index.js +80 -66
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/parse-run-config.d.ts.map +1 -1
- package/dist/src/cli/parse-run-config.js +4 -4
- package/dist/src/cli/parse-run-config.js.map +1 -1
- package/dist/src/cli/progress.d.ts +1 -0
- package/dist/src/cli/progress.d.ts.map +1 -1
- package/dist/src/cli/progress.js +8 -1
- package/dist/src/cli/progress.js.map +1 -1
- package/dist/src/eval-core/cache.d.ts +7 -5
- package/dist/src/eval-core/cache.d.ts.map +1 -1
- package/dist/src/eval-core/cache.js +11 -7
- package/dist/src/eval-core/cache.js.map +1 -1
- package/dist/src/eval-core/comparability.d.ts +11 -0
- package/dist/src/eval-core/comparability.d.ts.map +1 -0
- package/dist/src/eval-core/comparability.js +271 -0
- package/dist/src/eval-core/comparability.js.map +1 -0
- package/dist/src/eval-core/evaluation-execution.d.ts +4 -1
- package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-execution.js +25 -17
- package/dist/src/eval-core/evaluation-execution.js.map +1 -1
- package/dist/src/eval-core/evaluation-job.d.ts +2 -2
- package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-job.js +2 -2
- package/dist/src/eval-core/evaluation-job.js.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts +3 -1
- package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
- package/dist/src/eval-core/evaluation-reporting.js +64 -4
- package/dist/src/eval-core/evaluation-reporting.js.map +1 -1
- package/dist/src/eval-core/execution-strategy.js +2 -2
- package/dist/src/eval-core/execution-strategy.js.map +1 -1
- package/dist/src/eval-core/schema.d.ts.map +1 -1
- package/dist/src/eval-core/schema.js +13 -0
- package/dist/src/eval-core/schema.js.map +1 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts +111 -0
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts.map +1 -0
- package/dist/src/eval-workflows/batch-evaluation-workflow.js +215 -0
- package/dist/src/eval-workflows/batch-evaluation-workflow.js.map +1 -0
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts +5 -3
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.js +6 -5
- package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.d.ts +8 -6
- package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-preparation.js +8 -4
- package/dist/src/eval-workflows/evaluation-preparation.js.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.d.ts +20 -17
- package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.js +25 -15
- package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
- package/dist/src/executors/claude-cli.d.ts.map +1 -1
- package/dist/src/executors/claude-cli.js +11 -6
- package/dist/src/executors/claude-cli.js.map +1 -1
- package/dist/src/executors/codex-cli-trace.d.ts +10 -0
- package/dist/src/executors/codex-cli-trace.d.ts.map +1 -0
- package/dist/src/executors/codex-cli-trace.js +123 -0
- package/dist/src/executors/codex-cli-trace.js.map +1 -0
- package/dist/src/executors/codex-cli.d.ts +18 -0
- package/dist/src/executors/codex-cli.d.ts.map +1 -0
- package/dist/src/executors/codex-cli.js +254 -0
- package/dist/src/executors/codex-cli.js.map +1 -0
- package/dist/src/executors/codex-sdk.d.ts +18 -0
- package/dist/src/executors/codex-sdk.d.ts.map +1 -0
- package/dist/src/executors/codex-sdk.js +214 -0
- package/dist/src/executors/codex-sdk.js.map +1 -0
- package/dist/src/executors/gemini.d.ts.map +1 -1
- package/dist/src/executors/gemini.js +28 -24
- package/dist/src/executors/gemini.js.map +1 -1
- package/dist/src/executors/index.d.ts.map +1 -1
- package/dist/src/executors/index.js +7 -2
- package/dist/src/executors/index.js.map +1 -1
- package/dist/src/executors/runtime-fingerprint.d.ts +7 -0
- package/dist/src/executors/runtime-fingerprint.d.ts.map +1 -0
- package/dist/src/executors/runtime-fingerprint.js +277 -0
- package/dist/src/executors/runtime-fingerprint.js.map +1 -0
- package/dist/src/executors/script.d.ts.map +1 -1
- package/dist/src/executors/script.js +47 -55
- package/dist/src/executors/script.js.map +1 -1
- package/dist/src/executors/shared.d.ts +78 -1
- package/dist/src/executors/shared.d.ts.map +1 -1
- package/dist/src/executors/shared.js +203 -1
- package/dist/src/executors/shared.js.map +1 -1
- package/dist/src/grading/assertions.d.ts.map +1 -1
- package/dist/src/grading/assertions.js +18 -3
- package/dist/src/grading/assertions.js.map +1 -1
- package/dist/src/grading/index.d.ts.map +1 -1
- package/dist/src/grading/index.js +11 -0
- package/dist/src/grading/index.js.map +1 -1
- package/dist/src/grading/judge.d.ts.map +1 -1
- package/dist/src/grading/judge.js +75 -6
- package/dist/src/grading/judge.js.map +1 -1
- package/dist/src/inputs/skill-loader.d.ts +1 -1
- package/dist/src/inputs/skill-loader.d.ts.map +1 -1
- package/dist/src/inputs/skill-loader.js +1 -1
- package/dist/src/inputs/skill-loader.js.map +1 -1
- package/dist/src/renderer/html-renderer.d.ts +5 -4
- package/dist/src/renderer/html-renderer.d.ts.map +1 -1
- package/dist/src/renderer/html-renderer.js +217 -93
- package/dist/src/renderer/html-renderer.js.map +1 -1
- package/dist/src/renderer/layout.d.ts +2 -1
- package/dist/src/renderer/layout.d.ts.map +1 -1
- package/dist/src/renderer/layout.js +30 -42
- package/dist/src/renderer/layout.js.map +1 -1
- package/dist/src/renderer/summary.d.ts +3 -3
- package/dist/src/renderer/summary.d.ts.map +1 -1
- package/dist/src/renderer/summary.js +232 -42
- package/dist/src/renderer/summary.js.map +1 -1
- package/dist/src/renderer/trends.d.ts.map +1 -1
- package/dist/src/renderer/trends.js +5 -3
- package/dist/src/renderer/trends.js.map +1 -1
- package/dist/src/server/report-server.js +4 -4
- package/dist/src/server/report-server.js.map +1 -1
- package/dist/src/server/report-store.d.ts +7 -5
- package/dist/src/server/report-store.d.ts.map +1 -1
- package/dist/src/server/report-store.js +39 -11
- package/dist/src/server/report-store.js.map +1 -1
- package/dist/src/types/eval.d.ts +4 -2
- package/dist/src/types/eval.d.ts.map +1 -1
- package/dist/src/types/executor.d.ts +5 -0
- package/dist/src/types/executor.d.ts.map +1 -1
- package/dist/src/types/judge.d.ts +10 -0
- package/dist/src/types/judge.d.ts.map +1 -1
- package/dist/src/types/report.d.ts +120 -24
- package/dist/src/types/report.d.ts.map +1 -1
- package/dist/src/types/storage.d.ts +7 -7
- package/dist/src/types/storage.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist/src/eval-workflows/each-evaluation-workflow.d.ts +0 -153
- package/dist/src/eval-workflows/each-evaluation-workflow.d.ts.map +0 -1
- package/dist/src/eval-workflows/each-evaluation-workflow.js +0 -178
- package/dist/src/eval-workflows/each-evaluation-workflow.js.map +0 -1
- package/dist/src/executors/openai-cli.d.ts +0 -3
- package/dist/src/executors/openai-cli.d.ts.map +0 -1
- package/dist/src/executors/openai-cli.js +0 -60
- package/dist/src/executors/openai-cli.js.map +0 -1
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
function stableStringify(value) {
|
|
2
|
+
if (value === null || typeof value !== 'object')
|
|
3
|
+
return JSON.stringify(value);
|
|
4
|
+
if (Array.isArray(value))
|
|
5
|
+
return '[' + value.map(stableStringify).join(',') + ']';
|
|
6
|
+
const entries = Object.keys(value).sort();
|
|
7
|
+
return '{' + entries.map((k) => JSON.stringify(k) + ':' + stableStringify(value[k])).join(',') + '}';
|
|
8
|
+
}
|
|
9
|
+
function runtimeLabel(runtime) {
|
|
10
|
+
if (!runtime)
|
|
11
|
+
return 'missing';
|
|
12
|
+
const bits = [`${runtime.executor}:${runtime.model}`, `fp=${runtime.fingerprint}`];
|
|
13
|
+
if (runtime.binary?.version)
|
|
14
|
+
bits.push(`binary=${runtime.binary.version}`);
|
|
15
|
+
if (runtime.sdk?.version)
|
|
16
|
+
bits.push(`sdk=${runtime.sdk.version}`);
|
|
17
|
+
return bits.join(' ');
|
|
18
|
+
}
|
|
19
|
+
function push(warnings, code, zh, en) {
|
|
20
|
+
warnings.push({ code, severity: 'warning', zh, en });
|
|
21
|
+
}
|
|
22
|
+
function sorted(values) {
|
|
23
|
+
return [...(values ?? [])].sort();
|
|
24
|
+
}
|
|
25
|
+
function hasJudge(meta) {
|
|
26
|
+
return Boolean(meta.judgeModel || (meta.judgeModels && meta.judgeModels.length > 0));
|
|
27
|
+
}
|
|
28
|
+
function effectiveJudgeRepeat(meta) {
|
|
29
|
+
return meta.judgeRepeat ?? 1;
|
|
30
|
+
}
|
|
31
|
+
function packageReasons(pkg, label) {
|
|
32
|
+
if (!pkg)
|
|
33
|
+
return [`${label} missing`];
|
|
34
|
+
const reasons = [];
|
|
35
|
+
if (pkg.error)
|
|
36
|
+
reasons.push(`${label} probe failed`);
|
|
37
|
+
if (!pkg.version)
|
|
38
|
+
reasons.push(`${label} version missing`);
|
|
39
|
+
return reasons;
|
|
40
|
+
}
|
|
41
|
+
function runtimeUnverifiableReasons(runtime) {
|
|
42
|
+
const reasons = [];
|
|
43
|
+
if (runtime.kind === 'api')
|
|
44
|
+
return reasons;
|
|
45
|
+
if (runtime.kind === 'agent-sdk') {
|
|
46
|
+
reasons.push(...packageReasons(runtime.sdk, 'sdk'));
|
|
47
|
+
}
|
|
48
|
+
const binary = runtime.binary;
|
|
49
|
+
if (!binary) {
|
|
50
|
+
reasons.push('binary missing');
|
|
51
|
+
return reasons;
|
|
52
|
+
}
|
|
53
|
+
if (binary.error)
|
|
54
|
+
reasons.push('binary probe failed');
|
|
55
|
+
if (binary.source === 'path') {
|
|
56
|
+
if (!binary.path)
|
|
57
|
+
reasons.push('binary path missing');
|
|
58
|
+
if (!binary.version)
|
|
59
|
+
reasons.push('binary version missing');
|
|
60
|
+
}
|
|
61
|
+
else if (binary.source === 'bundled') {
|
|
62
|
+
if (!binary.version && !binary.package?.version)
|
|
63
|
+
reasons.push('bundled binary version missing');
|
|
64
|
+
if (binary.package)
|
|
65
|
+
reasons.push(...packageReasons(binary.package, 'bundled package').filter((r) => r !== 'bundled package missing'));
|
|
66
|
+
}
|
|
67
|
+
else if (binary.source === 'unknown') {
|
|
68
|
+
reasons.push('binary source unknown');
|
|
69
|
+
}
|
|
70
|
+
if (runtime.kind === 'unknown')
|
|
71
|
+
reasons.push('runtime kind unknown');
|
|
72
|
+
return [...new Set(reasons)];
|
|
73
|
+
}
|
|
74
|
+
function pushRuntimeUnverifiable(warnings, code, zhSubject, enSubject, runtime) {
|
|
75
|
+
if (!runtime)
|
|
76
|
+
return;
|
|
77
|
+
const reasons = runtimeUnverifiableReasons(runtime);
|
|
78
|
+
if (reasons.length === 0)
|
|
79
|
+
return;
|
|
80
|
+
push(warnings, code, `${zhSubject} runtime 指纹不可完全审计: ${runtimeLabel(runtime)} (${reasons.join('; ')})。`, `${enSubject} runtime fingerprint is not fully verifiable: ${runtimeLabel(runtime)} (${reasons.join('; ')}).`);
|
|
81
|
+
}
|
|
82
|
+
function runtimeMapKeys(meta) {
|
|
83
|
+
return sorted(meta.executorRuntimes ? Object.keys(meta.executorRuntimes) : undefined);
|
|
84
|
+
}
|
|
85
|
+
function reportExecutorRuntimeWarnings(report, warnings) {
|
|
86
|
+
const runtimes = report.meta.executorRuntimes;
|
|
87
|
+
if (runtimes && Object.keys(runtimes).length > 0) {
|
|
88
|
+
const missing = report.meta.variants.filter((variant) => !runtimes[variant]);
|
|
89
|
+
if (missing.length > 0) {
|
|
90
|
+
push(warnings, 'executor_runtime_missing', `报告缺少部分 variant 的 executor runtime 指纹: ${missing.join(', ')}。`, `Report is missing executor runtime fingerprints for variants: ${missing.join(', ')}.`);
|
|
91
|
+
}
|
|
92
|
+
for (const [variant, runtime] of Object.entries(runtimes)) {
|
|
93
|
+
pushRuntimeUnverifiable(warnings, 'executor_runtime_unverifiable', `variant ${variant} executor`, `Variant ${variant} executor`, runtime);
|
|
94
|
+
}
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (!report.meta.executorRuntime) {
|
|
98
|
+
push(warnings, 'executor_runtime_missing', '报告缺少 executor runtime 指纹;无法审计 binary / SDK 版本,跨报告严格比较需谨慎。', 'Report is missing executor runtime fingerprint; binary / SDK versions cannot be audited for strict cross-report comparison.');
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (report.meta.variants.length > 1) {
|
|
102
|
+
push(warnings, 'executor_runtimes_missing', '报告缺少 per-variant executor runtime 指纹;多 variant run 无法审计每个分组实际使用的 binary / SDK 版本。', 'Report is missing per-variant executor runtime fingerprints; multi-variant runs cannot audit each group’s actual binary / SDK version.');
|
|
103
|
+
}
|
|
104
|
+
pushRuntimeUnverifiable(warnings, 'executor_runtime_unverifiable', 'executor', 'Executor', report.meta.executorRuntime);
|
|
105
|
+
}
|
|
106
|
+
function countSampleHashMismatches(a, b) {
|
|
107
|
+
const ah = a.meta.sampleHashes;
|
|
108
|
+
const bh = b.meta.sampleHashes;
|
|
109
|
+
if (!ah || !bh)
|
|
110
|
+
return null;
|
|
111
|
+
let mismatched = 0;
|
|
112
|
+
let missing = 0;
|
|
113
|
+
let common = 0;
|
|
114
|
+
const ids = new Set([...Object.keys(ah), ...Object.keys(bh)]);
|
|
115
|
+
for (const id of ids) {
|
|
116
|
+
if (ah[id] == null || bh[id] == null) {
|
|
117
|
+
missing++;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
common++;
|
|
121
|
+
if (ah[id] !== bh[id])
|
|
122
|
+
mismatched++;
|
|
123
|
+
}
|
|
124
|
+
return { mismatched, missing, common };
|
|
125
|
+
}
|
|
126
|
+
export function reportComparabilityWarnings(report) {
|
|
127
|
+
const warnings = [];
|
|
128
|
+
reportExecutorRuntimeWarnings(report, warnings);
|
|
129
|
+
if (hasJudge(report.meta) && !report.meta.judgePromptHash) {
|
|
130
|
+
push(warnings, 'judge_prompt_hash_missing', '报告缺少评委提示词指纹;无法确认 LLM 评分语义是否一致。', 'Report is missing judge prompt fingerprint; LLM scoring semantics cannot be verified.');
|
|
131
|
+
}
|
|
132
|
+
if (report.meta.judgeModel && !report.meta.judgeRuntime) {
|
|
133
|
+
push(warnings, 'judge_runtime_missing', '报告缺少评委 runtime 指纹;无法审计评委 executor 的 binary / SDK 版本。', 'Report is missing judge runtime fingerprint; judge executor binary / SDK versions cannot be audited.');
|
|
134
|
+
}
|
|
135
|
+
else if (report.meta.judgeRuntime) {
|
|
136
|
+
pushRuntimeUnverifiable(warnings, 'judge_runtime_unverifiable', '评委', 'Judge', report.meta.judgeRuntime);
|
|
137
|
+
}
|
|
138
|
+
const judgeModels = sorted(report.meta.judgeModels);
|
|
139
|
+
if (judgeModels.length >= 2) {
|
|
140
|
+
if (!report.meta.judgeRuntimes) {
|
|
141
|
+
push(warnings, 'judge_runtime_missing', '报告缺少多评委 ensemble 的 runtime 指纹;无法审计每个评委 executor 的 binary / SDK 版本。', 'Report is missing multi-judge ensemble runtime fingerprints; each judge executor binary / SDK version cannot be audited.');
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
const missing = judgeModels.filter((model) => !report.meta.judgeRuntimes?.[model]);
|
|
145
|
+
if (missing.length > 0) {
|
|
146
|
+
push(warnings, 'judge_runtime_missing', `多评委 ensemble 缺少 runtime 指纹: ${missing.join(', ')}。`, `Multi-judge ensemble is missing runtime fingerprints: ${missing.join(', ')}.`);
|
|
147
|
+
}
|
|
148
|
+
for (const key of judgeModels) {
|
|
149
|
+
pushRuntimeUnverifiable(warnings, 'judge_runtime_unverifiable', `评委 ${key}`, `Judge ${key}`, report.meta.judgeRuntimes[key]);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
if (!report.meta.sampleHashes) {
|
|
154
|
+
push(warnings, 'sample_hashes_missing', '报告缺少用例指纹;无法确认不同 run 是否测的是同一组用例。', 'Report is missing sample fingerprints; runs cannot be verified to use the same test cases.');
|
|
155
|
+
}
|
|
156
|
+
if (!report.meta.skillIsolation) {
|
|
157
|
+
push(warnings, 'skill_isolation_missing', '报告缺少 skill isolation 快照;baseline 是否被 skill 污染不可审计。', 'Report is missing skill-isolation snapshot; baseline contamination cannot be audited.');
|
|
158
|
+
}
|
|
159
|
+
return warnings;
|
|
160
|
+
}
|
|
161
|
+
export function crossReportComparabilityWarnings(before, after) {
|
|
162
|
+
const warnings = [];
|
|
163
|
+
const b = before.meta;
|
|
164
|
+
const a = after.meta;
|
|
165
|
+
if (b.model !== a.model) {
|
|
166
|
+
push(warnings, 'model_mismatch', `任务执行模型不同: ${b.model} → ${a.model}。`, `Task execution model changed: ${b.model} → ${a.model}.`);
|
|
167
|
+
}
|
|
168
|
+
if (b.executor !== a.executor) {
|
|
169
|
+
push(warnings, 'executor_mismatch', `executor 不同: ${b.executor} → ${a.executor}。`, `Executor changed: ${b.executor} → ${a.executor}.`);
|
|
170
|
+
}
|
|
171
|
+
const bExecutorRuntimeKeys = runtimeMapKeys(b);
|
|
172
|
+
const aExecutorRuntimeKeys = runtimeMapKeys(a);
|
|
173
|
+
const hasExecutorRuntimeMap = bExecutorRuntimeKeys.length > 0 || aExecutorRuntimeKeys.length > 0;
|
|
174
|
+
if (hasExecutorRuntimeMap) {
|
|
175
|
+
const keys = sorted([...new Set([...b.variants, ...a.variants, ...bExecutorRuntimeKeys, ...aExecutorRuntimeKeys])]);
|
|
176
|
+
const missing = keys.filter((key) => !b.executorRuntimes?.[key] || !a.executorRuntimes?.[key]);
|
|
177
|
+
if (missing.length > 0) {
|
|
178
|
+
push(warnings, 'executor_runtime_missing', `至少一份报告缺少 per-variant executor runtime 指纹: ${missing.join(', ')}。`, `At least one report is missing per-variant executor runtime fingerprints: ${missing.join(', ')}.`);
|
|
179
|
+
}
|
|
180
|
+
for (const key of keys) {
|
|
181
|
+
const beforeRuntime = b.executorRuntimes?.[key];
|
|
182
|
+
const afterRuntime = a.executorRuntimes?.[key];
|
|
183
|
+
if (beforeRuntime?.fingerprint && afterRuntime?.fingerprint && beforeRuntime.fingerprint !== afterRuntime.fingerprint) {
|
|
184
|
+
push(warnings, 'executor_runtime_mismatch', `variant ${key} executor runtime 指纹不同: ${runtimeLabel(beforeRuntime)} → ${runtimeLabel(afterRuntime)}。`, `Variant ${key} executor runtime fingerprint changed: ${runtimeLabel(beforeRuntime)} → ${runtimeLabel(afterRuntime)}.`);
|
|
185
|
+
}
|
|
186
|
+
pushRuntimeUnverifiable(warnings, 'executor_runtime_unverifiable', `before variant ${key} executor`, `Before variant ${key} executor`, beforeRuntime);
|
|
187
|
+
pushRuntimeUnverifiable(warnings, 'executor_runtime_unverifiable', `after variant ${key} executor`, `After variant ${key} executor`, afterRuntime);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
else if (b.executorRuntime?.fingerprint && a.executorRuntime?.fingerprint) {
|
|
191
|
+
if (b.executorRuntime.fingerprint !== a.executorRuntime.fingerprint) {
|
|
192
|
+
push(warnings, 'executor_runtime_mismatch', `executor runtime 指纹不同: ${runtimeLabel(b.executorRuntime)} → ${runtimeLabel(a.executorRuntime)}。`, `Executor runtime fingerprint changed: ${runtimeLabel(b.executorRuntime)} → ${runtimeLabel(a.executorRuntime)}.`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
push(warnings, 'executor_runtime_missing', '至少一份报告缺少 executor runtime 指纹;无法确认 binary / SDK 版本一致。', 'At least one report is missing executor runtime fingerprint; binary / SDK version parity cannot be verified.');
|
|
197
|
+
}
|
|
198
|
+
if (!hasExecutorRuntimeMap) {
|
|
199
|
+
pushRuntimeUnverifiable(warnings, 'executor_runtime_unverifiable', 'before executor', 'Before executor', b.executorRuntime);
|
|
200
|
+
pushRuntimeUnverifiable(warnings, 'executor_runtime_unverifiable', 'after executor', 'After executor', a.executorRuntime);
|
|
201
|
+
}
|
|
202
|
+
const bJudgeModels = sorted(b.judgeModels);
|
|
203
|
+
const aJudgeModels = sorted(a.judgeModels);
|
|
204
|
+
const ensembleInEither = bJudgeModels.length > 0 || aJudgeModels.length > 0;
|
|
205
|
+
if (!ensembleInEither && (b.judgeModel || a.judgeModel) && b.judgeModel !== a.judgeModel) {
|
|
206
|
+
push(warnings, 'judge_model_mismatch', `评委模型不同: ${b.judgeModel ?? 'none'} → ${a.judgeModel ?? 'none'}。`, `Judge model changed: ${b.judgeModel ?? 'none'} → ${a.judgeModel ?? 'none'}.`);
|
|
207
|
+
}
|
|
208
|
+
if (ensembleInEither && stableStringify(bJudgeModels) !== stableStringify(aJudgeModels)) {
|
|
209
|
+
push(warnings, 'judge_models_mismatch', `多评委 ensemble 配置不同: ${bJudgeModels.join(', ') || 'none'} → ${aJudgeModels.join(', ') || 'none'}。`, `Multi-judge ensemble changed: ${bJudgeModels.join(', ') || 'none'} → ${aJudgeModels.join(', ') || 'none'}.`);
|
|
210
|
+
}
|
|
211
|
+
if (effectiveJudgeRepeat(b) !== effectiveJudgeRepeat(a)) {
|
|
212
|
+
push(warnings, 'judge_repeat_mismatch', `每条用例评委评价次数不同: ${effectiveJudgeRepeat(b)} → ${effectiveJudgeRepeat(a)}。`, `Judge repeat count changed: ${effectiveJudgeRepeat(b)} → ${effectiveJudgeRepeat(a)}.`);
|
|
213
|
+
}
|
|
214
|
+
if (ensembleInEither) {
|
|
215
|
+
const keys = sorted([...new Set([...bJudgeModels, ...aJudgeModels])]);
|
|
216
|
+
const missing = keys.filter((key) => !b.judgeRuntimes?.[key] || !a.judgeRuntimes?.[key]);
|
|
217
|
+
if (missing.length > 0) {
|
|
218
|
+
push(warnings, 'judge_runtime_missing', `至少一份报告缺少多评委 runtime 指纹: ${missing.join(', ')}。`, `At least one report is missing multi-judge runtime fingerprints: ${missing.join(', ')}.`);
|
|
219
|
+
}
|
|
220
|
+
for (const key of keys) {
|
|
221
|
+
const beforeRuntime = b.judgeRuntimes?.[key];
|
|
222
|
+
const afterRuntime = a.judgeRuntimes?.[key];
|
|
223
|
+
if (beforeRuntime?.fingerprint && afterRuntime?.fingerprint && beforeRuntime.fingerprint !== afterRuntime.fingerprint) {
|
|
224
|
+
push(warnings, 'judge_runtime_mismatch', `评委 ${key} runtime 指纹不同: ${runtimeLabel(beforeRuntime)} → ${runtimeLabel(afterRuntime)}。`, `Judge ${key} runtime fingerprint changed: ${runtimeLabel(beforeRuntime)} → ${runtimeLabel(afterRuntime)}.`);
|
|
225
|
+
}
|
|
226
|
+
pushRuntimeUnverifiable(warnings, 'judge_runtime_unverifiable', `before 评委 ${key}`, `Before judge ${key}`, beforeRuntime);
|
|
227
|
+
pushRuntimeUnverifiable(warnings, 'judge_runtime_unverifiable', `after 评委 ${key}`, `After judge ${key}`, afterRuntime);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
else if (b.judgeRuntime?.fingerprint && a.judgeRuntime?.fingerprint) {
|
|
231
|
+
if (b.judgeRuntime.fingerprint !== a.judgeRuntime.fingerprint) {
|
|
232
|
+
push(warnings, 'judge_runtime_mismatch', `评委 runtime 指纹不同: ${runtimeLabel(b.judgeRuntime)} → ${runtimeLabel(a.judgeRuntime)}。`, `Judge runtime fingerprint changed: ${runtimeLabel(b.judgeRuntime)} → ${runtimeLabel(a.judgeRuntime)}.`);
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
else if (b.judgeModel || a.judgeModel) {
|
|
236
|
+
push(warnings, 'judge_runtime_missing', '至少一份报告缺少评委 runtime 指纹;无法确认评委 binary / SDK 版本一致。', 'At least one report is missing judge runtime fingerprint; judge binary / SDK version parity cannot be verified.');
|
|
237
|
+
}
|
|
238
|
+
if (!ensembleInEither) {
|
|
239
|
+
pushRuntimeUnverifiable(warnings, 'judge_runtime_unverifiable', 'before 评委', 'Before judge', b.judgeRuntime);
|
|
240
|
+
pushRuntimeUnverifiable(warnings, 'judge_runtime_unverifiable', 'after 评委', 'After judge', a.judgeRuntime);
|
|
241
|
+
}
|
|
242
|
+
if ((hasJudge(b) || hasJudge(a)) && (!b.judgePromptHash || !a.judgePromptHash)) {
|
|
243
|
+
push(warnings, 'judge_prompt_hash_missing', `至少一份报告缺少评委提示词指纹: ${b.judgePromptHash ?? 'missing'} → ${a.judgePromptHash ?? 'missing'}。`, `At least one report is missing judge prompt hash: ${b.judgePromptHash ?? 'missing'} → ${a.judgePromptHash ?? 'missing'}.`);
|
|
244
|
+
}
|
|
245
|
+
else if ((b.judgePromptHash || a.judgePromptHash) && b.judgePromptHash !== a.judgePromptHash) {
|
|
246
|
+
push(warnings, 'judge_prompt_hash_mismatch', `评委提示词指纹不同: ${b.judgePromptHash ?? 'missing'} → ${a.judgePromptHash ?? 'missing'}。`, `Judge prompt hash changed: ${b.judgePromptHash ?? 'missing'} → ${a.judgePromptHash ?? 'missing'}.`);
|
|
247
|
+
}
|
|
248
|
+
if ((b.evaluationFramework || a.evaluationFramework) && b.evaluationFramework !== a.evaluationFramework) {
|
|
249
|
+
push(warnings, 'evaluation_framework_mismatch', `统计框架不同: ${b.evaluationFramework ?? 'legacy'} → ${a.evaluationFramework ?? 'legacy'}。`, `Evaluation framework changed: ${b.evaluationFramework ?? 'legacy'} → ${a.evaluationFramework ?? 'legacy'}.`);
|
|
250
|
+
}
|
|
251
|
+
if (stableStringify(b.skillIsolation ?? null) !== stableStringify(a.skillIsolation ?? null)) {
|
|
252
|
+
push(warnings, 'skill_isolation_mismatch', 'skill isolation 快照不同;baseline 污染边界不一致,严格比较需谨慎。', 'Skill-isolation snapshots differ; baseline contamination boundaries are not equivalent.');
|
|
253
|
+
}
|
|
254
|
+
const sampleHashDiff = countSampleHashMismatches(before, after);
|
|
255
|
+
if (!sampleHashDiff) {
|
|
256
|
+
push(warnings, 'sample_hashes_missing', '至少一份报告缺少用例指纹;无法确认两次 run 使用同一组用例。', 'At least one report is missing sample fingerprints; test-case parity cannot be verified.');
|
|
257
|
+
}
|
|
258
|
+
else if (sampleHashDiff.mismatched > 0 || sampleHashDiff.missing > 0) {
|
|
259
|
+
push(warnings, 'sample_hashes_mismatch', `用例指纹不一致: ${sampleHashDiff.mismatched} 条内容变化,${sampleHashDiff.missing} 条只出现在其中一份报告。`, `Sample fingerprints differ: ${sampleHashDiff.mismatched} content mismatches, ${sampleHashDiff.missing} samples only appear in one report.`);
|
|
260
|
+
}
|
|
261
|
+
return warnings;
|
|
262
|
+
}
|
|
263
|
+
export function formatComparabilityWarnings(warnings, lang = 'zh') {
|
|
264
|
+
if (warnings.length === 0)
|
|
265
|
+
return '';
|
|
266
|
+
const header = lang === 'zh'
|
|
267
|
+
? '可比性提示: 以下差异会影响 strict comparison / construct validity'
|
|
268
|
+
: 'Comparability warnings: the following differences affect strict comparison / construct validity';
|
|
269
|
+
return [header, ...warnings.map((warning) => ` - ${lang === 'zh' ? warning.zh : warning.en}`)].join('\n');
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=comparability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparability.js","sourceRoot":"","sources":["../../../src/eval-core/comparability.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,9 @@ import type { ExecutorFn, ProgressCallback, Task, VariantResult } from '../types
|
|
|
2
2
|
export interface ExecuteTasksOptions {
|
|
3
3
|
tasks: Task[];
|
|
4
4
|
executor: ExecutorFn;
|
|
5
|
+
/** Executor name (e.g. 'claude' / 'codex' / 'openai-api'). Used in cache key
|
|
6
|
+
* to prevent cross-executor pollution when same model name is used. */
|
|
7
|
+
executorName?: string;
|
|
5
8
|
judgeExecutor: ExecutorFn;
|
|
6
9
|
model: string;
|
|
7
10
|
judgeModel: string;
|
|
@@ -30,7 +33,7 @@ export interface ExecuteTasksOptions {
|
|
|
30
33
|
* tasks as failed. */
|
|
31
34
|
budget?: import('../types/index.js').EvalBudget;
|
|
32
35
|
}
|
|
33
|
-
export declare function executeTasks({ tasks, executor, judgeExecutor, model, judgeModel, noJudge, samplesPath, concurrency, timeoutMs, noCache, verbose, onProgress, retry, existingResults, judgeRepeat, judgeModels, judgeExecutors, lengthDebias, budget, }: ExecuteTasksOptions): Promise<{
|
|
36
|
+
export declare function executeTasks({ tasks, executor, executorName, judgeExecutor, model, judgeModel, noJudge, samplesPath, concurrency, timeoutMs, noCache, verbose, onProgress, retry, existingResults, judgeRepeat, judgeModels, judgeExecutors, lengthDebias, budget, }: ExecuteTasksOptions): Promise<{
|
|
34
37
|
results: Record<string, Record<string, VariantResult>>;
|
|
35
38
|
totalCostUSD: number;
|
|
36
39
|
skipped: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-execution.d.ts","sourceRoot":"","sources":["../../../src/eval-core/evaluation-execution.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evaluation-execution.d.ts","sourceRoot":"","sources":["../../../src/eval-core/evaluation-execution.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAEV,UAAU,EAGV,gBAAgB,EAChB,IAAI,EACJ,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,QAAQ,EAAE,UAAU,CAAC;IACrB;4EACwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,UAAU,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAChE,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,CAAC,EAAE,OAAO,mBAAmB,EAAE,WAAW,EAAE,CAAC;IACxD,uEAAuE;IACvE,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C,wFAAwF;IACxF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;2BAGuB;IACvB,MAAM,CAAC,EAAE,OAAO,mBAAmB,EAAE,UAAU,CAAC;CACjD;AAmCD,wBAAsB,YAAY,CAAC,EACjC,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,aAAa,EACb,KAAK,EACL,UAAU,EACV,OAAO,EACP,WAAW,EACX,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,KAAS,EACT,eAAe,EACf,WAAe,EACf,WAAW,EACX,cAAc,EACd,YAAmB,EACnB,MAAM,GACP,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,OAAO,CAAA;CAAE,CAAC,CA2M5J;AAED,wBAAsB,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,GAAE,MAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAW7G"}
|
|
@@ -3,6 +3,7 @@ import { buildVariantResult } from './schema.js';
|
|
|
3
3
|
import { grade } from '../grading/index.js';
|
|
4
4
|
import { checkFacts } from './fact-checker.js';
|
|
5
5
|
import { resolveExecutionStrategy } from './execution-strategy.js';
|
|
6
|
+
import { getExecutorRuntimeFingerprint } from '../executors/runtime-fingerprint.js';
|
|
6
7
|
import { resolve, join, dirname } from 'node:path';
|
|
7
8
|
import { homedir } from 'node:os';
|
|
8
9
|
async function runWithConcurrency(tasks, concurrency, fn) {
|
|
@@ -35,7 +36,7 @@ function makeErrorResult(error) {
|
|
|
35
36
|
function sleep(ms) {
|
|
36
37
|
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
37
38
|
}
|
|
38
|
-
export async function executeTasks({ tasks, executor, judgeExecutor, model, judgeModel, noJudge, samplesPath, concurrency, timeoutMs, noCache, verbose, onProgress, retry = 0, existingResults, judgeRepeat = 1, judgeModels, judgeExecutors, lengthDebias = true, budget, }) {
|
|
39
|
+
export async function executeTasks({ tasks, executor, executorName, judgeExecutor, model, judgeModel, noJudge, samplesPath, concurrency, timeoutMs, noCache, verbose, onProgress, retry = 0, existingResults, judgeRepeat = 1, judgeModels, judgeExecutors, lengthDebias = true, budget, }) {
|
|
39
40
|
const results = {};
|
|
40
41
|
let started = 0;
|
|
41
42
|
let completed = 0;
|
|
@@ -74,10 +75,15 @@ export async function executeTasks({ tasks, executor, judgeExecutor, model, judg
|
|
|
74
75
|
const total = tasks.length;
|
|
75
76
|
onProgress?.({ phase: 'start', completed: idx, total, sample_id: task.sample_id, variant: task.variant });
|
|
76
77
|
const executionPlan = resolveExecutionStrategy(task, model, timeoutMs, verbose);
|
|
78
|
+
const effectiveExecutorName = executorName || 'claude';
|
|
79
|
+
const executorRuntime = getExecutorRuntimeFingerprint(effectiveExecutorName, model, {
|
|
80
|
+
skillDir: executionPlan.input.skillDir,
|
|
81
|
+
});
|
|
77
82
|
let execResult;
|
|
78
83
|
// include allowedSkills in cache key so isolation-on / isolation-off runs
|
|
79
|
-
// don't share cache entries
|
|
80
|
-
|
|
84
|
+
// don't share cache entries, and include runtime fingerprint so a binary/SDK bump
|
|
85
|
+
// cannot replay old-runtime outputs under new-runtime report metadata.
|
|
86
|
+
const key = cacheKey(model, executionPlan.cacheSystem, executionPlan.input.prompt, executionPlan.input.cwd, task.artifact.allowedSkills, effectiveExecutorName, executorRuntime.fingerprint);
|
|
81
87
|
const cached = cache?.get(key);
|
|
82
88
|
const execStart = Date.now();
|
|
83
89
|
if (cached) {
|
|
@@ -167,20 +173,6 @@ export async function executeTasks({ tasks, executor, judgeExecutor, model, judg
|
|
|
167
173
|
totalCostUSD += gradeResult.judgeCostUSD;
|
|
168
174
|
}
|
|
169
175
|
}
|
|
170
|
-
completed++;
|
|
171
|
-
onProgress?.({
|
|
172
|
-
phase: 'done',
|
|
173
|
-
strategy: executionPlan.strategy,
|
|
174
|
-
completed,
|
|
175
|
-
total,
|
|
176
|
-
sample_id: task.sample_id,
|
|
177
|
-
variant: task.variant,
|
|
178
|
-
durationMs: execResult.durationMs,
|
|
179
|
-
inputTokens: execResult.inputTokens,
|
|
180
|
-
outputTokens: execResult.outputTokens,
|
|
181
|
-
costUSD: execResult.costUSD,
|
|
182
|
-
score: gradeResult?.compositeScore,
|
|
183
|
-
});
|
|
184
176
|
let factCheck;
|
|
185
177
|
if (execResult.ok && execResult.output && task.cwd) {
|
|
186
178
|
factCheck = checkFacts(execResult.output, resolve(task.cwd));
|
|
@@ -200,6 +192,22 @@ export async function executeTasks({ tasks, executor, judgeExecutor, model, judg
|
|
|
200
192
|
variantResult.error = `budget overrun: per-sample latency ${execMs + (gradeMs ?? 0)}ms > cap ${budget.perSampleMs}ms`;
|
|
201
193
|
}
|
|
202
194
|
results[task.sample_id][task.variant] = variantResult;
|
|
195
|
+
completed++;
|
|
196
|
+
onProgress?.({
|
|
197
|
+
phase: 'done',
|
|
198
|
+
strategy: executionPlan.strategy,
|
|
199
|
+
completed,
|
|
200
|
+
total,
|
|
201
|
+
sample_id: task.sample_id,
|
|
202
|
+
variant: task.variant,
|
|
203
|
+
durationMs: variantResult.durationMs,
|
|
204
|
+
inputTokens: variantResult.inputTokens,
|
|
205
|
+
outputTokens: variantResult.outputTokens,
|
|
206
|
+
costUSD: variantResult.execCostUSD,
|
|
207
|
+
score: gradeResult?.compositeScore,
|
|
208
|
+
ok: variantResult.ok,
|
|
209
|
+
error: variantResult.error,
|
|
210
|
+
});
|
|
203
211
|
// total-USD budget enforcement. Once the global cap is exceeded,
|
|
204
212
|
// flip the abort flag so subsequent tasks short-circuit. The current task
|
|
205
213
|
// is kept (already paid for it).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-execution.js","sourceRoot":"","sources":["../../../src/eval-core/evaluation-execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"evaluation-execution.js","sourceRoot":"","sources":["../../../src/eval-core/evaluation-execution.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Artifact, EvaluationErrorCategory, EvaluationJob, EvaluationRequest, EvaluationRun, JudgeConfig } from '../types/index.js';
|
|
2
|
-
export declare function buildEvaluationRequest({ samplesPath, skillDir, artifacts, model, judgeModel, executor, judgeExecutor, noJudge, concurrency, timeoutMs, noCache, dryRun, blind, project, owner, tags, repeat,
|
|
2
|
+
export declare function buildEvaluationRequest({ samplesPath, skillDir, artifacts, model, judgeModel, executor, judgeExecutor, noJudge, concurrency, timeoutMs, noCache, dryRun, blind, project, owner, tags, repeat, batch, judgeRepeat, judgeModels, bootstrap, bootstrapSamples, lengthDebias, budget, }: {
|
|
3
3
|
samplesPath: string;
|
|
4
4
|
skillDir: string;
|
|
5
5
|
artifacts: Artifact[];
|
|
@@ -17,7 +17,7 @@ export declare function buildEvaluationRequest({ samplesPath, skillDir, artifact
|
|
|
17
17
|
owner?: string;
|
|
18
18
|
tags?: string[];
|
|
19
19
|
repeat?: number;
|
|
20
|
-
|
|
20
|
+
batch?: boolean;
|
|
21
21
|
judgeRepeat?: number;
|
|
22
22
|
judgeModels?: JudgeConfig[];
|
|
23
23
|
bootstrap?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-job.d.ts","sourceRoot":"","sources":["../../../src/eval-core/evaluation-job.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMzI,wBAAgB,sBAAsB,CAAC,EACrC,WAAW,EACX,QAAQ,EACR,SAAS,EACT,KAAK,EACL,UAAU,EACV,QAAQ,EACR,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"evaluation-job.d.ts","sourceRoot":"","sources":["../../../src/eval-core/evaluation-job.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
function nowIso() {
|
|
2
2
|
return new Date().toISOString();
|
|
3
3
|
}
|
|
4
|
-
export function buildEvaluationRequest({ samplesPath, skillDir, artifacts, model, judgeModel, executor, judgeExecutor, noJudge, concurrency, timeoutMs, noCache, dryRun, blind, project, owner, tags, repeat,
|
|
4
|
+
export function buildEvaluationRequest({ samplesPath, skillDir, artifacts, model, judgeModel, executor, judgeExecutor, noJudge, concurrency, timeoutMs, noCache, dryRun, blind, project, owner, tags, repeat, batch, judgeRepeat, judgeModels, bootstrap, bootstrapSamples, lengthDebias, budget, }) {
|
|
5
5
|
return {
|
|
6
6
|
samplesPath,
|
|
7
7
|
skillDir,
|
|
@@ -20,7 +20,7 @@ export function buildEvaluationRequest({ samplesPath, skillDir, artifacts, model
|
|
|
20
20
|
owner,
|
|
21
21
|
tags,
|
|
22
22
|
repeat,
|
|
23
|
-
|
|
23
|
+
batch,
|
|
24
24
|
judgeRepeat,
|
|
25
25
|
judgeModels,
|
|
26
26
|
bootstrap,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-job.js","sourceRoot":"","sources":["../../../src/eval-core/evaluation-job.ts"],"names":[],"mappings":"AAEA,SAAS,MAAM;IACb,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,EACrC,WAAW,EACX,QAAQ,EACR,SAAS,EACT,KAAK,EACL,UAAU,EACV,QAAQ,EACR,aAAa,EACb,OAAO,EACP,WAAW,EACX,SAAS,EACT,OAAO,EACP,MAAM,EACN,KAAK,EACL,OAAO,EACP,KAAK,EACL,IAAI,EACJ,MAAM,EACN,
|
|
1
|
+
{"version":3,"file":"evaluation-job.js","sourceRoot":"","sources":["../../../src/eval-core/evaluation-job.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type { Artifact, Report, Sample, Task, VariantResult, EvaluationJob, EvaluationRequest, EvaluationRun } from '../types/index.js';
|
|
1
|
+
import type { Artifact, Report, Sample, Task, VariantResult, GitInfo, EvaluationJob, EvaluationRequest, EvaluationRun } from '../types/index.js';
|
|
2
2
|
export declare const DEFAULT_OUTPUT_DIR: string;
|
|
3
|
+
export declare function getCliVersion(): string;
|
|
4
|
+
export declare function getGitInfo(): GitInfo | null;
|
|
3
5
|
interface AggregateReportOptions {
|
|
4
6
|
runId: string;
|
|
5
7
|
variants: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluation-reporting.d.ts","sourceRoot":"","sources":["../../../src/eval-core/evaluation-reporting.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evaluation-reporting.d.ts","sourceRoot":"","sources":["../../../src/eval-core/evaluation-reporting.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,QAAQ,EACR,MAAM,EACN,MAAM,EACN,IAAI,EACJ,aAAa,EAGb,OAAO,EACP,aAAa,EACb,iBAAiB,EACjB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAgB3B,eAAO,MAAM,kBAAkB,EAAE,MAAuD,CAAC;AAmCzF,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,UAAU,IAAI,OAAO,GAAG,IAAI,CAS3C;AAqDD,UAAU,sBAAsB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,eAAe,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,KAAK,EACL,UAAU,EACV,OAAO,EACP,YAAY,EACZ,OAAO,EACP,KAAK,EACL,OAAO,EACP,YAAY,EACZ,SAAS,EACT,OAAO,EACP,GAAG,EACH,GAAG,EACH,YAAY,GACb,EAAE,sBAAsB,GAAG,MAAM,CA8HjC;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAwC1F;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAMhG;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CASxD"}
|