oh-my-knowledge 0.27.0 → 0.28.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 +31 -34
- package/README.zh.md +31 -34
- package/dist/src/analysis/report-diagnostics.d.ts +2 -2
- package/dist/src/analysis/report-diagnostics.js +2 -2
- package/dist/src/analysis/sample-diagnostics.d.ts +3 -3
- package/dist/src/analysis/sample-diagnostics.js +3 -3
- package/dist/src/authoring/generator.js +1 -1
- package/dist/src/authoring/generator.js.map +1 -1
- package/dist/src/cli/commands/doctor.d.ts.map +1 -1
- package/dist/src/cli/commands/doctor.js +39 -2
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/eval.d.ts.map +1 -1
- package/dist/src/cli/commands/eval.js +0 -5
- package/dist/src/cli/commands/eval.js.map +1 -1
- package/dist/src/cli/commands/{export.d.ts → evolve.d.ts} +1 -1
- package/dist/src/cli/commands/evolve.d.ts.map +1 -0
- package/dist/src/cli/commands/{improve-skill.js → evolve.js} +3 -3
- package/dist/src/cli/commands/evolve.js.map +1 -0
- package/dist/src/cli/commands/registry.d.ts.map +1 -1
- package/dist/src/cli/commands/registry.js +4 -22
- package/dist/src/cli/commands/registry.js.map +1 -1
- package/dist/src/cli/commands/{improve.d.ts → sample.d.ts} +1 -1
- package/dist/src/cli/commands/sample.d.ts.map +1 -0
- package/dist/src/cli/commands/{improve-samples.js → sample.js} +5 -4
- package/dist/src/cli/commands/sample.js.map +1 -0
- package/dist/src/cli/i18n-dict.d.ts +2 -4
- package/dist/src/cli/i18n-dict.d.ts.map +1 -1
- package/dist/src/cli/i18n-dict.js +165 -373
- package/dist/src/cli/i18n-dict.js.map +1 -1
- package/dist/src/cli/parse-run-config.d.ts +1 -1
- package/dist/src/cli/parse-run-config.js +1 -1
- package/dist/src/doctor/health/builtin-dimensions.d.ts +11 -0
- package/dist/src/doctor/health/builtin-dimensions.d.ts.map +1 -0
- package/dist/src/doctor/health/builtin-dimensions.js +94 -0
- package/dist/src/doctor/health/builtin-dimensions.js.map +1 -0
- package/dist/src/doctor/health/composer.d.ts +19 -0
- package/dist/src/doctor/health/composer.d.ts.map +1 -0
- package/dist/src/doctor/health/composer.js +289 -0
- package/dist/src/doctor/health/composer.js.map +1 -0
- package/dist/src/doctor/health/dimension-registry.d.ts +13 -0
- package/dist/src/doctor/health/dimension-registry.d.ts.map +1 -0
- package/dist/src/doctor/health/dimension-registry.js +28 -0
- package/dist/src/doctor/health/dimension-registry.js.map +1 -0
- package/dist/src/doctor/health/dimension-spec.d.ts +46 -0
- package/dist/src/doctor/health/dimension-spec.d.ts.map +1 -0
- package/dist/src/doctor/health/dimension-spec.js +12 -0
- package/dist/src/doctor/health/dimension-spec.js.map +1 -0
- package/dist/src/doctor/health/parser.d.ts +27 -0
- package/dist/src/doctor/health/parser.d.ts.map +1 -0
- package/dist/src/doctor/health/parser.js +190 -0
- package/dist/src/doctor/health/parser.js.map +1 -0
- package/dist/src/doctor/health/prompt-builder.d.ts +22 -0
- package/dist/src/doctor/health/prompt-builder.d.ts.map +1 -0
- package/dist/src/doctor/health/prompt-builder.js +162 -0
- package/dist/src/doctor/health/prompt-builder.js.map +1 -0
- package/dist/src/doctor/health/register.d.ts +13 -0
- package/dist/src/doctor/health/register.d.ts.map +1 -0
- package/dist/src/doctor/health/register.js +20 -0
- package/dist/src/doctor/health/register.js.map +1 -0
- package/dist/src/doctor/html-renderer.d.ts +20 -0
- package/dist/src/doctor/html-renderer.d.ts.map +1 -0
- package/dist/src/doctor/html-renderer.js +366 -0
- package/dist/src/doctor/html-renderer.js.map +1 -0
- package/dist/src/doctor/index.d.ts.map +1 -1
- package/dist/src/doctor/index.js +55 -6
- package/dist/src/doctor/index.js.map +1 -1
- package/dist/src/doctor/renderer.d.ts +4 -0
- package/dist/src/doctor/renderer.d.ts.map +1 -1
- package/dist/src/doctor/renderer.js +72 -18
- package/dist/src/doctor/renderer.js.map +1 -1
- package/dist/src/doctor/rules.d.ts +6 -5
- package/dist/src/doctor/rules.d.ts.map +1 -1
- package/dist/src/doctor/rules.js +4 -3
- package/dist/src/doctor/rules.js.map +1 -1
- package/dist/src/types/doctor.d.ts +41 -3
- package/dist/src/types/doctor.d.ts.map +1 -1
- package/dist/src/types/doctor.js +3 -0
- package/dist/src/types/doctor.js.map +1 -1
- package/dist/src/types/eval.d.ts +1 -1
- package/dist/src/types/report.d.ts +2 -2
- package/dist/src/types/report.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/src/cli/commands/eval-debias.d.ts +0 -2
- package/dist/src/cli/commands/eval-debias.d.ts.map +0 -1
- package/dist/src/cli/commands/eval-debias.js +0 -88
- package/dist/src/cli/commands/eval-debias.js.map +0 -1
- package/dist/src/cli/commands/export-diff.d.ts +0 -2
- package/dist/src/cli/commands/export-diff.d.ts.map +0 -1
- package/dist/src/cli/commands/export-diff.js +0 -177
- package/dist/src/cli/commands/export-diff.js.map +0 -1
- package/dist/src/cli/commands/export-saturation.d.ts +0 -2
- package/dist/src/cli/commands/export-saturation.d.ts.map +0 -1
- package/dist/src/cli/commands/export-saturation.js +0 -59
- package/dist/src/cli/commands/export-saturation.js.map +0 -1
- package/dist/src/cli/commands/export-verdict.d.ts +0 -2
- package/dist/src/cli/commands/export-verdict.d.ts.map +0 -1
- package/dist/src/cli/commands/export-verdict.js +0 -45
- package/dist/src/cli/commands/export-verdict.js.map +0 -1
- package/dist/src/cli/commands/export.d.ts.map +0 -1
- package/dist/src/cli/commands/export.js +0 -150
- package/dist/src/cli/commands/export.js.map +0 -1
- package/dist/src/cli/commands/improve-failures.d.ts +0 -2
- package/dist/src/cli/commands/improve-failures.d.ts.map +0 -1
- package/dist/src/cli/commands/improve-failures.js +0 -59
- package/dist/src/cli/commands/improve-failures.js.map +0 -1
- package/dist/src/cli/commands/improve-plan.d.ts +0 -2
- package/dist/src/cli/commands/improve-plan.d.ts.map +0 -1
- package/dist/src/cli/commands/improve-plan.js +0 -75
- package/dist/src/cli/commands/improve-plan.js.map +0 -1
- package/dist/src/cli/commands/improve-samples.d.ts +0 -2
- package/dist/src/cli/commands/improve-samples.d.ts.map +0 -1
- package/dist/src/cli/commands/improve-samples.js.map +0 -1
- package/dist/src/cli/commands/improve-skill.d.ts +0 -2
- package/dist/src/cli/commands/improve-skill.d.ts.map +0 -1
- package/dist/src/cli/commands/improve-skill.js.map +0 -1
- package/dist/src/cli/commands/improve.d.ts.map +0 -1
- package/dist/src/cli/commands/improve.js +0 -34
- package/dist/src/cli/commands/improve.js.map +0 -1
- package/dist/src/cli/coverage-renderer.d.ts +0 -15
- package/dist/src/cli/coverage-renderer.d.ts.map +0 -1
- package/dist/src/cli/coverage-renderer.js +0 -74
- package/dist/src/cli/coverage-renderer.js.map +0 -1
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
import { resolve } from 'node:path';
|
|
2
|
-
import { CliExit } from '../cli-exit.js';
|
|
3
|
-
import { langFromArgv } from '../i18n.js';
|
|
4
|
-
import { COMMON_OPTIONS, DEFAULT_REPORTS_DIR } from '../parse-run-config.js';
|
|
5
|
-
import { parseArgsStrictOrExit } from '../parse-strict.js';
|
|
6
|
-
import { requireEvaluationReport } from './_shared.js';
|
|
7
|
-
export async function execute(argv) {
|
|
8
|
-
const lang = langFromArgv(argv);
|
|
9
|
-
const { values, positionals } = parseArgsStrictOrExit({
|
|
10
|
-
args: argv,
|
|
11
|
-
allowPositionals: true,
|
|
12
|
-
options: {
|
|
13
|
-
...COMMON_OPTIONS,
|
|
14
|
-
'reports-dir': { type: 'string', default: DEFAULT_REPORTS_DIR },
|
|
15
|
-
'regressions-only': { type: 'boolean', default: false },
|
|
16
|
-
threshold: { type: 'string' },
|
|
17
|
-
variant: { type: 'string' },
|
|
18
|
-
top: { type: 'string' },
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
if (positionals.length === 0) {
|
|
22
|
-
console.error(usage(lang));
|
|
23
|
-
throw new CliExit(1);
|
|
24
|
-
}
|
|
25
|
-
const { createFileStore } = await import('../../server/report-store.js');
|
|
26
|
-
const store = createFileStore(resolve(values['reports-dir']));
|
|
27
|
-
if (positionals.length === 1) {
|
|
28
|
-
await runSampleLevelDiff(positionals[0], store, values, lang);
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
if (positionals.length > 2) {
|
|
32
|
-
console.error(usage(lang));
|
|
33
|
-
throw new CliExit(1);
|
|
34
|
-
}
|
|
35
|
-
const [id1, id2] = positionals;
|
|
36
|
-
const r1 = requireEvaluationReport(await store.get(id1), id1, lang);
|
|
37
|
-
const r2 = requireEvaluationReport(await store.get(id2), id2, lang);
|
|
38
|
-
console.log(`\n Diff: ${id1} → ${id2}\n`);
|
|
39
|
-
const g1 = r1.meta?.gitInfo;
|
|
40
|
-
const g2 = r2.meta?.gitInfo;
|
|
41
|
-
if (g1 || g2) {
|
|
42
|
-
console.log(` Git: ${g1?.commitShort || '?'}${g1?.dirty ? '*' : ''} (${g1?.branch || '?'}) → ${g2?.commitShort || '?'}${g2?.dirty ? '*' : ''} (${g2?.branch || '?'})`);
|
|
43
|
-
}
|
|
44
|
-
const { crossReportComparabilityWarnings, formatComparabilityWarnings } = await import('../../eval-core/comparability.js');
|
|
45
|
-
const comparability = formatComparabilityWarnings(crossReportComparabilityWarnings(r1, r2), lang);
|
|
46
|
-
if (comparability)
|
|
47
|
-
process.stderr.write(`\n${comparability}\n\n`);
|
|
48
|
-
const variants = [...new Set([...(r1.meta?.variants || []), ...(r2.meta?.variants || [])])];
|
|
49
|
-
for (const variant of variants) {
|
|
50
|
-
const s1 = r1.summary?.[variant];
|
|
51
|
-
const s2 = r2.summary?.[variant];
|
|
52
|
-
if (!s1 && !s2)
|
|
53
|
-
continue;
|
|
54
|
-
console.log(`\n [${variant}]`);
|
|
55
|
-
const score1 = s1?.avgCompositeScore ?? '-';
|
|
56
|
-
const score2 = s2?.avgCompositeScore ?? '-';
|
|
57
|
-
const scoreDelta = typeof score1 === 'number' && typeof score2 === 'number'
|
|
58
|
-
? ` (${score2 > score1 ? '+' : ''}${(score2 - score1).toFixed(2)})`
|
|
59
|
-
: '';
|
|
60
|
-
console.log(` Score: ${score1} → ${score2}${scoreDelta}`);
|
|
61
|
-
console.log(` Turns: ${s1?.avgNumTurns ?? '-'} → ${s2?.avgNumTurns ?? '-'}`);
|
|
62
|
-
if (s1?.avgToolCalls != null || s2?.avgToolCalls != null) {
|
|
63
|
-
console.log(` Tools: ${s1?.avgToolCalls ?? '-'} → ${s2?.avgToolCalls ?? '-'}`);
|
|
64
|
-
const sr1 = s1?.toolSuccessRate != null ? `${(s1.toolSuccessRate * 100).toFixed(0)}%` : '-';
|
|
65
|
-
const sr2 = s2?.toolSuccessRate != null ? `${(s2.toolSuccessRate * 100).toFixed(0)}%` : '-';
|
|
66
|
-
console.log(` ToolOK: ${sr1} → ${sr2}`);
|
|
67
|
-
}
|
|
68
|
-
const cost1 = s1?.avgCostPerSample ?? 0;
|
|
69
|
-
const cost2 = s2?.avgCostPerSample ?? 0;
|
|
70
|
-
const reported1 = s1?.execCostReported !== false;
|
|
71
|
-
const reported2 = s2?.execCostReported !== false;
|
|
72
|
-
const fmtCost = (cost, reported) => reported ? `$${cost.toFixed(4)}` : '—';
|
|
73
|
-
const costPct = reported1 && reported2 && cost1 > 0
|
|
74
|
-
? ` (${cost2 > cost1 ? '+' : ''}${(((cost2 - cost1) / cost1) * 100).toFixed(0)}%)`
|
|
75
|
-
: '';
|
|
76
|
-
console.log(` Cost: ${fmtCost(cost1, reported1)} → ${fmtCost(cost2, reported2)}${costPct}`);
|
|
77
|
-
const h1 = r1.meta?.artifactHashes?.[variant];
|
|
78
|
-
const h2 = r2.meta?.artifactHashes?.[variant];
|
|
79
|
-
if (h1 && h2 && h1 !== h2) {
|
|
80
|
-
console.log(` Skill: ${h1.slice(0, 8)} → ${h2.slice(0, 8)} (changed)`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
console.log('');
|
|
84
|
-
}
|
|
85
|
-
async function runSampleLevelDiff(reportId, store, flags, lang) {
|
|
86
|
-
const report = requireEvaluationReport(await store.get(reportId), reportId, lang);
|
|
87
|
-
const { reportComparabilityWarnings, formatComparabilityWarnings } = await import('../../eval-core/comparability.js');
|
|
88
|
-
const comparability = formatComparabilityWarnings(reportComparabilityWarnings(report), lang);
|
|
89
|
-
if (comparability)
|
|
90
|
-
process.stderr.write(`\n${comparability}\n\n`);
|
|
91
|
-
const variants = report.meta?.variants ?? [];
|
|
92
|
-
if (variants.length < 2) {
|
|
93
|
-
console.error('Sample-level diff needs at least 2 variants in the report.');
|
|
94
|
-
throw new CliExit(1);
|
|
95
|
-
}
|
|
96
|
-
const control = variants[0];
|
|
97
|
-
const treatment = flags.variant ?? variants[1];
|
|
98
|
-
if (!variants.includes(treatment)) {
|
|
99
|
-
console.error(`Variant "${treatment}" not in report. Available: ${variants.join(', ')}`);
|
|
100
|
-
throw new CliExit(1);
|
|
101
|
-
}
|
|
102
|
-
const threshold = flags.threshold != null ? Number(flags.threshold) : 0;
|
|
103
|
-
const regressionsOnly = Boolean(flags['regressions-only']);
|
|
104
|
-
const topN = flags.top != null ? Math.max(1, Number(flags.top) || 0) : undefined;
|
|
105
|
-
const rows = [];
|
|
106
|
-
for (const entry of report.results ?? []) {
|
|
107
|
-
const c = entry.variants?.[control];
|
|
108
|
-
const t = entry.variants?.[treatment];
|
|
109
|
-
if (!c || !t)
|
|
110
|
-
continue;
|
|
111
|
-
const cComp = c.compositeScore ?? c.llmScore ?? 0;
|
|
112
|
-
const tComp = t.compositeScore ?? t.llmScore ?? 0;
|
|
113
|
-
rows.push({
|
|
114
|
-
id: entry.sample_id,
|
|
115
|
-
cFact: c.layeredScores?.factScore,
|
|
116
|
-
tFact: t.layeredScores?.factScore,
|
|
117
|
-
cBeh: c.layeredScores?.behaviorScore,
|
|
118
|
-
tBeh: t.layeredScores?.behaviorScore,
|
|
119
|
-
cJudge: c.layeredScores?.judgeScore,
|
|
120
|
-
tJudge: t.layeredScores?.judgeScore,
|
|
121
|
-
cComp,
|
|
122
|
-
tComp,
|
|
123
|
-
delta: Number((tComp - cComp).toFixed(3)),
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
rows.sort((a, b) => Math.abs(b.delta) - Math.abs(a.delta));
|
|
127
|
-
let filtered = rows;
|
|
128
|
-
if (regressionsOnly)
|
|
129
|
-
filtered = filtered.filter((r) => r.delta < threshold);
|
|
130
|
-
if (topN !== undefined)
|
|
131
|
-
filtered = filtered.slice(0, topN);
|
|
132
|
-
console.log(`\n Sample-level diff: ${treatment} vs ${control} (report ${reportId})`);
|
|
133
|
-
if (regressionsOnly)
|
|
134
|
-
console.log(` Filter: regressions only (Δ < ${threshold})`);
|
|
135
|
-
console.log('');
|
|
136
|
-
console.log(' sample_id Δ composite (c→t) fact (c→t) behavior (c→t) judge (c→t)');
|
|
137
|
-
console.log(' ' + '-'.repeat(100));
|
|
138
|
-
if (filtered.length === 0) {
|
|
139
|
-
console.log(regressionsOnly ? ' (no regressions found)' : ' (no shared samples)');
|
|
140
|
-
console.log('');
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
const fmtLayer = (a, b) => {
|
|
144
|
-
const av = typeof a === 'number' ? a.toFixed(2) : '—';
|
|
145
|
-
const bv = typeof b === 'number' ? b.toFixed(2) : '—';
|
|
146
|
-
return `${av} → ${bv}`.padEnd(15);
|
|
147
|
-
};
|
|
148
|
-
for (const row of filtered) {
|
|
149
|
-
const sign = row.delta > 0 ? '+' : '';
|
|
150
|
-
console.log(` ${row.id.slice(0, 18).padEnd(20)}`
|
|
151
|
-
+ `${`${sign}${row.delta.toFixed(2)}`.padEnd(7)}`
|
|
152
|
-
+ `${`${row.cComp.toFixed(2)} → ${row.tComp.toFixed(2)}`.padEnd(17)}`
|
|
153
|
-
+ `${fmtLayer(row.cFact, row.tFact)} ${fmtLayer(row.cBeh, row.tBeh)} ${fmtLayer(row.cJudge, row.tJudge)}`);
|
|
154
|
-
}
|
|
155
|
-
console.log('');
|
|
156
|
-
console.log(` Showing ${filtered.length} of ${rows.length} samples · sorted by |Δ|`);
|
|
157
|
-
if (regressionsOnly) {
|
|
158
|
-
const total = rows.length;
|
|
159
|
-
const regressions = rows.filter((r) => r.delta < threshold).length;
|
|
160
|
-
console.log(` Regression rate: ${regressions}/${total} samples (${total > 0 ? ((regressions / total) * 100).toFixed(0) : 0}%)`);
|
|
161
|
-
}
|
|
162
|
-
console.log('');
|
|
163
|
-
}
|
|
164
|
-
function usage(lang) {
|
|
165
|
-
return lang === 'zh'
|
|
166
|
-
? [
|
|
167
|
-
'用法:',
|
|
168
|
-
' omk export diff <report-id> [--variant <name>] [--regressions-only] [--top <n>]',
|
|
169
|
-
' omk export diff <report-id-a> <report-id-b>',
|
|
170
|
-
].join('\n')
|
|
171
|
-
: [
|
|
172
|
-
'Usage:',
|
|
173
|
-
' omk export diff <report-id> [--variant <name>] [--regressions-only] [--top <n>]',
|
|
174
|
-
' omk export diff <report-id-a> <report-id-b>',
|
|
175
|
-
].join('\n');
|
|
176
|
-
}
|
|
177
|
-
//# sourceMappingURL=export-diff.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export-diff.js","sourceRoot":"","sources":["../../../../src/cli/commands/export-diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export-saturation.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/export-saturation.ts"],"names":[],"mappings":"AAQA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD3D"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { resolve } from 'node:path';
|
|
2
|
-
import { CliExit } from '../cli-exit.js';
|
|
3
|
-
import { langFromArgv } from '../i18n.js';
|
|
4
|
-
import { COMMON_OPTIONS, DEFAULT_REPORTS_DIR } from '../parse-run-config.js';
|
|
5
|
-
import { parseArgsStrictOrExit } from '../parse-strict.js';
|
|
6
|
-
import { requireEvaluationReport } from './_shared.js';
|
|
7
|
-
export async function execute(argv) {
|
|
8
|
-
const lang = langFromArgv(argv);
|
|
9
|
-
const reportId = argv[0];
|
|
10
|
-
if (!reportId) {
|
|
11
|
-
console.log(lang === 'zh'
|
|
12
|
-
? '用法:omk export saturation <report-id> [--variant <name>]'
|
|
13
|
-
: 'Usage: omk export saturation <report-id> [--variant <name>]');
|
|
14
|
-
throw new CliExit(1);
|
|
15
|
-
}
|
|
16
|
-
const { values } = parseArgsStrictOrExit({
|
|
17
|
-
args: argv.slice(1),
|
|
18
|
-
options: {
|
|
19
|
-
...COMMON_OPTIONS,
|
|
20
|
-
'reports-dir': { type: 'string', default: DEFAULT_REPORTS_DIR },
|
|
21
|
-
variant: { type: 'string' },
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
const { createFileStore } = await import('../../server/report-store.js');
|
|
25
|
-
const store = createFileStore(resolve(values['reports-dir']));
|
|
26
|
-
const report = requireEvaluationReport(await store.get(reportId), reportId, lang);
|
|
27
|
-
const saturation = report.variance?.saturation;
|
|
28
|
-
if (!saturation) {
|
|
29
|
-
console.error(lang === 'zh'
|
|
30
|
-
? '该报告没有 saturation 数据,需要 --repeat ≥ 2 才会记录。'
|
|
31
|
-
: 'This report has no saturation data; it requires --repeat ≥ 2.');
|
|
32
|
-
throw new CliExit(1);
|
|
33
|
-
}
|
|
34
|
-
const targetVariants = values.variant ? [values.variant] : (report.meta.variants ?? []);
|
|
35
|
-
console.log(lang === 'zh'
|
|
36
|
-
? '\n Saturation 判定(读取报告中已持久化的数据)\n'
|
|
37
|
-
: '\n Saturation verdict (from persisted report data)\n');
|
|
38
|
-
for (const variant of targetVariants) {
|
|
39
|
-
const trace = saturation.perVariant[variant];
|
|
40
|
-
if (!trace || trace.length === 0) {
|
|
41
|
-
console.log(` ${variant}: no trace data`);
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
console.log(` ${variant}:`);
|
|
45
|
-
console.log(` checkpoints: ${trace.length} (N=${trace.map((p) => p.n).join(', ')})`);
|
|
46
|
-
const last = trace[trace.length - 1];
|
|
47
|
-
console.log(` last point mean=${last.mean.toFixed(3)}, CI=[${last.ciLow.toFixed(3)}, ${last.ciHigh.toFixed(3)}]`);
|
|
48
|
-
const persisted = saturation.verdicts?.[variant];
|
|
49
|
-
if (persisted) {
|
|
50
|
-
const result = persisted.saturated ? `saturated@N=${persisted.atN ?? '?'}` : 'not saturated';
|
|
51
|
-
console.log(` verdict (${persisted.method}): ${result} - ${persisted.reason}`);
|
|
52
|
-
}
|
|
53
|
-
else if (trace.length < 5) {
|
|
54
|
-
console.log(` verdict: only ${trace.length} data points (< 5), skipping`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
console.log('');
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=export-saturation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export-saturation.js","sourceRoot":"","sources":["../../../../src/cli/commands/export-saturation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export-verdict.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/export-verdict.ts"],"names":[],"mappings":"AAQA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC3D"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { resolve } from 'node:path';
|
|
2
|
-
import { CliExit } from '../cli-exit.js';
|
|
3
|
-
import { langFromArgv } from '../i18n.js';
|
|
4
|
-
import { COMMON_OPTIONS, DEFAULT_REPORTS_DIR } from '../parse-run-config.js';
|
|
5
|
-
import { parseArgsStrictOrExit } from '../parse-strict.js';
|
|
6
|
-
import { requireEvaluationReport } from './_shared.js';
|
|
7
|
-
export async function execute(argv) {
|
|
8
|
-
const lang = langFromArgv(argv);
|
|
9
|
-
const reportId = argv[0];
|
|
10
|
-
if (!reportId) {
|
|
11
|
-
console.log(lang === 'zh'
|
|
12
|
-
? '用法:omk export verdict <report-id> [--threshold <n>] [--trivial-diff <n>]'
|
|
13
|
-
: 'Usage: omk export verdict <report-id> [--threshold <n>] [--trivial-diff <n>]');
|
|
14
|
-
throw new CliExit(1);
|
|
15
|
-
}
|
|
16
|
-
const { values } = parseArgsStrictOrExit({
|
|
17
|
-
args: argv.slice(1),
|
|
18
|
-
options: {
|
|
19
|
-
...COMMON_OPTIONS,
|
|
20
|
-
'reports-dir': { type: 'string', default: DEFAULT_REPORTS_DIR },
|
|
21
|
-
threshold: { type: 'string' },
|
|
22
|
-
'trivial-diff': { type: 'string' },
|
|
23
|
-
verbose: { type: 'boolean', default: false },
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
const { createFileStore } = await import('../../server/report-store.js');
|
|
27
|
-
const store = createFileStore(resolve(values['reports-dir']));
|
|
28
|
-
const report = requireEvaluationReport(await store.get(reportId), reportId, lang);
|
|
29
|
-
const { computeVerdict, formatVerdictText } = await import('../../eval-core/verdict.js');
|
|
30
|
-
const { reportComparabilityWarnings, formatComparabilityWarnings } = await import('../../eval-core/comparability.js');
|
|
31
|
-
const comparability = formatComparabilityWarnings(reportComparabilityWarnings(report), lang);
|
|
32
|
-
if (comparability)
|
|
33
|
-
process.stderr.write(`${comparability}\n`);
|
|
34
|
-
const result = computeVerdict(report, {
|
|
35
|
-
gateThreshold: values.threshold != null ? Number(values.threshold) : undefined,
|
|
36
|
-
triviallySmallDiff: values['trivial-diff'] != null ? Number(values['trivial-diff']) : undefined,
|
|
37
|
-
});
|
|
38
|
-
console.log(formatVerdictText(result, { verbose: Boolean(values.verbose) }));
|
|
39
|
-
if (result.level === 'PROGRESS')
|
|
40
|
-
throw new CliExit(0);
|
|
41
|
-
if (result.level === 'SOLO' && result.headline.includes('PASS'))
|
|
42
|
-
throw new CliExit(0);
|
|
43
|
-
throw new CliExit(1);
|
|
44
|
-
}
|
|
45
|
-
//# sourceMappingURL=export-verdict.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export-verdict.js","sourceRoot":"","sources":["../../../../src/cli/commands/export-verdict.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/export.ts"],"names":[],"mappings":"AAaA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmE3D"}
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { writeFileSync } from 'node:fs';
|
|
2
|
-
import { resolve } from 'node:path';
|
|
3
|
-
import { CliExit } from '../cli-exit.js';
|
|
4
|
-
import { tCli, langFromArgv } from '../i18n.js';
|
|
5
|
-
import { COMMON_OPTIONS, DEFAULT_REPORTS_DIR } from '../parse-run-config.js';
|
|
6
|
-
import { parseArgsStrictOrExit } from '../parse-strict.js';
|
|
7
|
-
import { execute as diff } from './export-diff.js';
|
|
8
|
-
import { execute as saturation } from './export-saturation.js';
|
|
9
|
-
import { execute as verdictCommand } from './export-verdict.js';
|
|
10
|
-
export async function execute(argv) {
|
|
11
|
-
const lang = langFromArgv(argv);
|
|
12
|
-
const [sub, ...rest] = argv;
|
|
13
|
-
if (sub === 'diff') {
|
|
14
|
-
await diff(rest);
|
|
15
|
-
return;
|
|
16
|
-
}
|
|
17
|
-
if (sub === 'verdict') {
|
|
18
|
-
await verdictCommand(rest);
|
|
19
|
-
return;
|
|
20
|
-
}
|
|
21
|
-
if (sub === 'saturation') {
|
|
22
|
-
await saturation(rest);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const { values, positionals } = parseArgsStrictOrExit({
|
|
26
|
-
args: argv,
|
|
27
|
-
allowPositionals: true,
|
|
28
|
-
options: {
|
|
29
|
-
...COMMON_OPTIONS,
|
|
30
|
-
format: { type: 'string', default: 'html' },
|
|
31
|
-
out: { type: 'string' },
|
|
32
|
-
'reports-dir': { type: 'string', default: DEFAULT_REPORTS_DIR },
|
|
33
|
-
},
|
|
34
|
-
});
|
|
35
|
-
const id = positionals[0];
|
|
36
|
-
if (!id) {
|
|
37
|
-
console.log(tCli('cli.help.export', lang).trim());
|
|
38
|
-
throw new CliExit(1);
|
|
39
|
-
}
|
|
40
|
-
const format = String(values.format);
|
|
41
|
-
if (!['html', 'markdown', 'github-summary'].includes(format)) {
|
|
42
|
-
console.error(tCli('cli.export.unsupported_format', lang, { format: String(values.format) }));
|
|
43
|
-
throw new CliExit(2);
|
|
44
|
-
}
|
|
45
|
-
const { createFileStore } = await import('../../server/report-store.js');
|
|
46
|
-
const store = createFileStore(resolve(values['reports-dir']));
|
|
47
|
-
const report = await store.get(id);
|
|
48
|
-
if (!report) {
|
|
49
|
-
console.error(tCli('cli.common.report_not_found', lang, { id }));
|
|
50
|
-
throw new CliExit(1);
|
|
51
|
-
}
|
|
52
|
-
if (format === 'html') {
|
|
53
|
-
const { renderReportDocumentDetail } = await import('../../renderer/html-renderer.js');
|
|
54
|
-
const outPath = resolve(values.out ?? `${id}.html`);
|
|
55
|
-
writeFileSync(outPath, renderReportDocumentDetail(report));
|
|
56
|
-
console.log(tCli('cli.export.html_done', lang, { path: outPath }));
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
const verdict = report.kind === 'evaluation' ? await renderVerdict(report) : 'n/a';
|
|
60
|
-
const body = format === 'github-summary'
|
|
61
|
-
? renderGithubSummary(report, lang, verdict)
|
|
62
|
-
: renderMarkdown(report, lang, verdict);
|
|
63
|
-
const out = values.out;
|
|
64
|
-
if (out) {
|
|
65
|
-
const outPath = resolve(out);
|
|
66
|
-
writeFileSync(outPath, body);
|
|
67
|
-
console.log(tCli('cli.export.done', lang, { path: outPath }));
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
console.log(body);
|
|
71
|
-
}
|
|
72
|
-
async function renderVerdict(report) {
|
|
73
|
-
const { computeVerdict } = await import('../../eval-core/verdict.js');
|
|
74
|
-
return computeVerdict(report).headline;
|
|
75
|
-
}
|
|
76
|
-
function renderGithubSummary(report, lang, verdict) {
|
|
77
|
-
if (report.kind !== 'evaluation') {
|
|
78
|
-
return renderBatchMarkdown(report, lang);
|
|
79
|
-
}
|
|
80
|
-
const lines = [
|
|
81
|
-
lang === 'zh' ? '## omk 评测摘要' : '## omk Evaluation Summary',
|
|
82
|
-
'',
|
|
83
|
-
`- ${lang === 'zh' ? '报告' : 'Report'}:\`${report.id}\``,
|
|
84
|
-
`- ${lang === 'zh' ? '结论' : 'Verdict'}:${verdict}`,
|
|
85
|
-
`- ${lang === 'zh' ? '样本数' : 'Samples'}:${report.meta.sampleCount}`,
|
|
86
|
-
`- ${lang === 'zh' ? '模型' : 'Model'}:${report.meta.executor}:${report.meta.model}`,
|
|
87
|
-
`- ${lang === 'zh' ? '版本' : 'Variants'}:${report.meta.variants.join(' / ')}`,
|
|
88
|
-
'',
|
|
89
|
-
renderVariantTable(report, lang),
|
|
90
|
-
'',
|
|
91
|
-
renderAuditBlock(report, lang),
|
|
92
|
-
];
|
|
93
|
-
return lines.join('\n').trim();
|
|
94
|
-
}
|
|
95
|
-
function renderMarkdown(report, lang, verdict) {
|
|
96
|
-
if (report.kind !== 'evaluation') {
|
|
97
|
-
return renderBatchMarkdown(report, lang);
|
|
98
|
-
}
|
|
99
|
-
const lines = [
|
|
100
|
-
`# ${lang === 'zh' ? 'omk 评测报告' : 'omk Evaluation Report'}:${report.id}`,
|
|
101
|
-
'',
|
|
102
|
-
`- ${lang === 'zh' ? '结论' : 'Verdict'}:${verdict}`,
|
|
103
|
-
`- ${lang === 'zh' ? '时间' : 'Timestamp'}:${report.meta.timestamp}`,
|
|
104
|
-
`- ${lang === 'zh' ? '样本数' : 'Samples'}:${report.meta.sampleCount}`,
|
|
105
|
-
`- ${lang === 'zh' ? '执行器' : 'Executor'}:${report.meta.executor}`,
|
|
106
|
-
`- ${lang === 'zh' ? '模型' : 'Model'}:${report.meta.model}`,
|
|
107
|
-
'',
|
|
108
|
-
`## ${lang === 'zh' ? '版本摘要' : 'Variant Summary'}`,
|
|
109
|
-
'',
|
|
110
|
-
renderVariantTable(report, lang),
|
|
111
|
-
'',
|
|
112
|
-
`## ${lang === 'zh' ? '审计信息' : 'Audit Evidence'}`,
|
|
113
|
-
'',
|
|
114
|
-
renderAuditBlock(report, lang),
|
|
115
|
-
];
|
|
116
|
-
return lines.join('\n').trim();
|
|
117
|
-
}
|
|
118
|
-
function renderBatchMarkdown(report, lang) {
|
|
119
|
-
return [
|
|
120
|
-
`# ${lang === 'zh' ? 'omk 批量评测报告' : 'omk Batch Evaluation Report'}:${report.id}`,
|
|
121
|
-
'',
|
|
122
|
-
`- ${lang === 'zh' ? '类型' : 'Kind'}:${report.kind}`,
|
|
123
|
-
`- ${lang === 'zh' ? '时间' : 'Timestamp'}:${report.meta?.timestamp ?? 'n/a'}`,
|
|
124
|
-
].join('\n');
|
|
125
|
-
}
|
|
126
|
-
function renderVariantTable(report, lang) {
|
|
127
|
-
const header = lang === 'zh'
|
|
128
|
-
? '| 版本 | 样本 | 成功 | 综合分 | 成本 |\n|---|---:|---:|---:|---:|'
|
|
129
|
-
: '| Variant | Samples | Success | Score | Cost |\n|---|---:|---:|---:|---:|';
|
|
130
|
-
const rows = Object.entries(report.summary ?? {}).map(([variant, s]) => {
|
|
131
|
-
const summary = s;
|
|
132
|
-
const score = summary.avgCompositeScore != null ? summary.avgCompositeScore.toFixed(2) : '-';
|
|
133
|
-
const cost = summary.totalCostUSD != null ? `$${summary.totalCostUSD.toFixed(4)}` : '-';
|
|
134
|
-
return `| ${variant} | ${summary.totalSamples} | ${summary.successCount} | ${score} | ${cost} |`;
|
|
135
|
-
});
|
|
136
|
-
return [header, ...rows].join('\n');
|
|
137
|
-
}
|
|
138
|
-
function renderAuditBlock(report, lang) {
|
|
139
|
-
const hashes = Object.entries(report.meta.artifactHashes ?? {})
|
|
140
|
-
.map(([name, hash]) => ` - ${name}: \`${hash}\``)
|
|
141
|
-
.join('\n') || (lang === 'zh' ? ' - 未记录' : ' - not recorded');
|
|
142
|
-
return [
|
|
143
|
-
`- ${lang === 'zh' ? 'CLI 版本' : 'CLI version'}:${report.meta.cliVersion}`,
|
|
144
|
-
`- ${lang === 'zh' ? 'Node 版本' : 'Node version'}:${report.meta.nodeVersion}`,
|
|
145
|
-
`- ${lang === 'zh' ? '评委提示词指纹' : 'Judge prompt hash'}:${report.meta.judgePromptHash ?? 'n/a'}`,
|
|
146
|
-
`- ${lang === 'zh' ? '样本指纹数量' : 'Sample fingerprints'}:${Object.keys(report.meta.sampleHashes ?? {}).length}`,
|
|
147
|
-
`- ${lang === 'zh' ? 'artifact 指纹' : 'Artifact fingerprints'}:\n${hashes}`,
|
|
148
|
-
].join('\n');
|
|
149
|
-
}
|
|
150
|
-
//# sourceMappingURL=export.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../../src/cli/commands/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"improve-failures.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/improve-failures.ts"],"names":[],"mappings":"AAQA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD3D"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { CliExit } from '../cli-exit.js';
|
|
2
|
-
import { resolve } from 'node:path';
|
|
3
|
-
import { tCli, langFromArgv } from '../i18n.js';
|
|
4
|
-
import { COMMON_OPTIONS, DEFAULT_REPORTS_DIR } from '../parse-run-config.js';
|
|
5
|
-
import { parseArgsStrictOrExit } from '../parse-strict.js';
|
|
6
|
-
import { requireEvaluationReport } from './_shared.js';
|
|
7
|
-
export async function execute(argv) {
|
|
8
|
-
const lang = langFromArgv(argv);
|
|
9
|
-
const reportId = argv[0];
|
|
10
|
-
if (!reportId) {
|
|
11
|
-
console.log(tCli('cli.help.improve_failures', lang));
|
|
12
|
-
throw new CliExit(1);
|
|
13
|
-
}
|
|
14
|
-
const { values } = parseArgsStrictOrExit({
|
|
15
|
-
args: argv.slice(1),
|
|
16
|
-
options: {
|
|
17
|
-
...COMMON_OPTIONS,
|
|
18
|
-
'reports-dir': { type: 'string', default: DEFAULT_REPORTS_DIR },
|
|
19
|
-
'judge-models': { type: 'string' },
|
|
20
|
-
'max-clusters': { type: 'string', default: '5' },
|
|
21
|
-
threshold: { type: 'string', default: '3' },
|
|
22
|
-
'max-feed': { type: 'string', default: '50' },
|
|
23
|
-
},
|
|
24
|
-
});
|
|
25
|
-
// Parse --judge-models 在 load report 之前 fail-fast。
|
|
26
|
-
const { parseJudgeModelsArgOrExit: parseJudgesB } = await import('../parse-run-config.js');
|
|
27
|
-
const cliJudgeModelsB = values['judge-models'] !== undefined
|
|
28
|
-
? parseJudgesB(values['judge-models'])
|
|
29
|
-
: undefined;
|
|
30
|
-
if (cliJudgeModelsB && cliJudgeModelsB.length > 1) {
|
|
31
|
-
console.error(tCli('cli.common.judge_models_single_only', lang, { cmd: 'failures' }));
|
|
32
|
-
throw new CliExit(2);
|
|
33
|
-
}
|
|
34
|
-
const { createFileStore } = await import('../../server/report-store.js');
|
|
35
|
-
const store = createFileStore(resolve(values['reports-dir']));
|
|
36
|
-
const report = requireEvaluationReport(await store.get(reportId), reportId, lang);
|
|
37
|
-
const failuresJudges = cliJudgeModelsB
|
|
38
|
-
?? (report.meta?.judgeModels?.[0]
|
|
39
|
-
? [{ executor: report.meta.judgeModels[0].executor, model: report.meta.judgeModels[0].model }]
|
|
40
|
-
: []);
|
|
41
|
-
if (failuresJudges.length === 0) {
|
|
42
|
-
console.error(tCli('cli.common.no_judge_model', lang));
|
|
43
|
-
throw new CliExit(1);
|
|
44
|
-
}
|
|
45
|
-
const { createExecutor } = await import('../../executors/index.js');
|
|
46
|
-
const executor = createExecutor(failuresJudges[0].executor);
|
|
47
|
-
const judgeModel = failuresJudges[0].model;
|
|
48
|
-
const { clusterFailures, formatFailureClusterReport } = await import('../../analysis/failure-clusterer.js');
|
|
49
|
-
const out = await clusterFailures({
|
|
50
|
-
report,
|
|
51
|
-
executor,
|
|
52
|
-
judgeModel,
|
|
53
|
-
maxClusters: Number(values['max-clusters']) || 5,
|
|
54
|
-
failureThreshold: Number(values.threshold) || 3,
|
|
55
|
-
maxFailuresFed: Number(values['max-feed']) || 50,
|
|
56
|
-
});
|
|
57
|
-
console.log(formatFailureClusterReport(out));
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=improve-failures.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"improve-failures.js","sourceRoot":"","sources":["../../../../src/cli/commands/improve-failures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"improve-plan.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/improve-plan.ts"],"names":[],"mappings":"AAUA,wBAAsB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsE3D"}
|