oh-my-knowledge 0.26.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 +105 -346
- package/README.zh.md +142 -375
- 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.d.ts.map +1 -1
- package/dist/src/authoring/generator.js +9 -8
- package/dist/src/authoring/generator.js.map +1 -1
- package/dist/src/cli/cli-exit.d.ts +15 -0
- package/dist/src/cli/cli-exit.d.ts.map +1 -0
- package/dist/src/cli/cli-exit.js +19 -0
- package/dist/src/cli/cli-exit.js.map +1 -0
- package/dist/src/cli/commands/_shared.d.ts +12 -0
- package/dist/src/cli/commands/_shared.d.ts.map +1 -0
- package/dist/src/cli/commands/_shared.js +26 -0
- package/dist/src/cli/commands/_shared.js.map +1 -0
- package/dist/src/cli/commands/doctor.d.ts +2 -0
- package/dist/src/cli/commands/doctor.d.ts.map +1 -0
- package/dist/src/cli/commands/doctor.js +174 -0
- package/dist/src/cli/commands/doctor.js.map +1 -0
- package/dist/src/cli/commands/eval-gold.d.ts +2 -0
- package/dist/src/cli/commands/eval-gold.d.ts.map +1 -0
- package/dist/src/cli/commands/eval-gold.js +137 -0
- package/dist/src/cli/commands/eval-gold.js.map +1 -0
- package/dist/src/cli/commands/eval-runner.d.ts +2 -0
- package/dist/src/cli/commands/eval-runner.d.ts.map +1 -0
- package/dist/src/cli/commands/eval-runner.js +299 -0
- package/dist/src/cli/commands/eval-runner.js.map +1 -0
- package/dist/src/cli/commands/eval.d.ts +2 -0
- package/dist/src/cli/commands/eval.d.ts.map +1 -0
- package/dist/src/cli/commands/eval.js +11 -0
- package/dist/src/cli/commands/eval.js.map +1 -0
- package/dist/src/cli/commands/evolve.d.ts +2 -0
- package/dist/src/cli/commands/evolve.d.ts.map +1 -0
- package/dist/src/cli/commands/evolve.js +115 -0
- package/dist/src/cli/commands/evolve.js.map +1 -0
- package/dist/src/cli/commands/init.d.ts +2 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -0
- package/dist/src/cli/commands/init.js +110 -0
- package/dist/src/cli/commands/init.js.map +1 -0
- package/dist/src/cli/commands/observe.d.ts +2 -0
- package/dist/src/cli/commands/observe.d.ts.map +1 -0
- package/dist/src/cli/commands/observe.js +77 -0
- package/dist/src/cli/commands/observe.js.map +1 -0
- package/dist/src/cli/commands/registry.d.ts +11 -0
- package/dist/src/cli/commands/registry.d.ts.map +1 -0
- package/dist/src/cli/commands/registry.js +24 -0
- package/dist/src/cli/commands/registry.js.map +1 -0
- package/dist/src/cli/commands/sample.d.ts +2 -0
- package/dist/src/cli/commands/sample.d.ts.map +1 -0
- package/dist/src/cli/commands/sample.js +121 -0
- package/dist/src/cli/commands/sample.js.map +1 -0
- package/dist/src/cli/commands/studio.d.ts +2 -0
- package/dist/src/cli/commands/studio.d.ts.map +1 -0
- package/dist/src/cli/commands/studio.js +76 -0
- package/dist/src/cli/commands/studio.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 +461 -675
- package/dist/src/cli/i18n-dict.js.map +1 -1
- package/dist/src/cli/index.js +43 -1516
- package/dist/src/cli/index.js.map +1 -1
- package/dist/src/cli/parse-run-config.d.ts +3 -4
- package/dist/src/cli/parse-run-config.d.ts.map +1 -1
- package/dist/src/cli/parse-run-config.js +5 -5
- package/dist/src/cli/parse-run-config.js.map +1 -1
- package/dist/src/cli/parse-strict.d.ts +0 -13
- package/dist/src/cli/parse-strict.d.ts.map +1 -1
- package/dist/src/cli/parse-strict.js +2 -1
- package/dist/src/cli/parse-strict.js.map +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 +1 -1
- package/dist/src/doctor/index.d.ts.map +1 -1
- package/dist/src/doctor/index.js +57 -8
- package/dist/src/doctor/index.js.map +1 -1
- package/dist/src/doctor/preflight.d.ts +2 -2
- package/dist/src/doctor/preflight.js +2 -2
- 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/eval-core/fact-checker.js +1 -1
- package/dist/src/eval-core/fact-checker.js.map +1 -1
- package/dist/src/eval-core/layer-gates.d.ts +1 -1
- package/dist/src/eval-core/layer-gates.js +1 -1
- package/dist/src/eval-core/verdict.d.ts +4 -4
- package/dist/src/eval-core/verdict.d.ts.map +1 -1
- package/dist/src/eval-core/verdict.js +2 -2
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts +15 -2
- package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts.map +1 -1
- package/dist/src/eval-workflows/batch-evaluation-workflow.js +13 -2
- package/dist/src/eval-workflows/batch-evaluation-workflow.js.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts +6 -3
- package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
- package/dist/src/eval-workflows/evaluation-pipeline.js +10 -9
- package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.d.ts +1 -1
- package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
- package/dist/src/eval-workflows/run-evaluation.js +13 -6
- package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
- package/dist/src/executors/script.d.ts.map +1 -1
- package/dist/src/executors/script.js +16 -3
- package/dist/src/executors/script.js.map +1 -1
- package/dist/src/grading/debias-validate.d.ts +2 -2
- package/dist/src/grading/debias-validate.js +2 -2
- package/dist/src/grading/gold-cli.d.ts +2 -5
- package/dist/src/grading/gold-cli.d.ts.map +1 -1
- package/dist/src/grading/gold-cli.js +4 -8
- package/dist/src/grading/gold-cli.js.map +1 -1
- package/dist/src/grading/judge.d.ts +1 -1
- package/dist/src/renderer/html-renderer.js +1 -1
- package/dist/src/renderer/layout.js +5 -5
- package/dist/src/renderer/layout.js.map +1 -1
- package/dist/src/renderer/skill-health-renderer.d.ts +1 -1
- package/dist/src/renderer/skill-health-renderer.js +1 -1
- package/dist/src/renderer/summary.js +8 -8
- package/dist/src/server/report-server.d.ts.map +1 -1
- package/dist/src/server/report-server.js +8 -7
- package/dist/src/server/report-server.js.map +1 -1
- package/dist/src/types/doctor.d.ts +44 -6
- 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/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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-renderer.js","sourceRoot":"","sources":["../../../src/doctor/html-renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* 对每个 artifact 顺序跑全部 rules,聚合为 DoctorReport。
|
|
6
6
|
*
|
|
7
7
|
* fatal-fail 不中断后续 rule 执行(让用户一次看到全貌),但 report.outcome='failed',
|
|
8
|
-
* CLI 据此 exit 1 / abort
|
|
8
|
+
* CLI 据此 exit 1 / abort eval。
|
|
9
9
|
*/
|
|
10
10
|
import type { Artifact, DoctorReport, DoctorRunOptions } from '../types/index.js';
|
|
11
11
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACV,QAAQ,EAGR,YAAY,EAGZ,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAQ3B;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAkC/F;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/doctor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EACV,QAAQ,EAGR,YAAY,EAGZ,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAQ3B;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAkC/F;AA2HD,wBAAsB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CA2E7E"}
|
package/dist/src/doctor/index.js
CHANGED
|
@@ -5,12 +5,12 @@
|
|
|
5
5
|
* 对每个 artifact 顺序跑全部 rules,聚合为 DoctorReport。
|
|
6
6
|
*
|
|
7
7
|
* fatal-fail 不中断后续 rule 执行(让用户一次看到全貌),但 report.outcome='failed',
|
|
8
|
-
* CLI 据此 exit 1 / abort
|
|
8
|
+
* CLI 据此 exit 1 / abort eval。
|
|
9
9
|
*/
|
|
10
10
|
import { existsSync, statSync } from 'node:fs';
|
|
11
11
|
import { basename, dirname, join, resolve } from 'node:path';
|
|
12
12
|
import { discoverVariants, resolveArtifacts } from '../inputs/skill-loader.js';
|
|
13
|
-
import { DOCTOR_REPORT_SCHEMA_VERSION } from '../types/doctor.js';
|
|
13
|
+
import { DOCTOR_REPORT_SCHEMA_VERSION, isComposerRule } from '../types/doctor.js';
|
|
14
14
|
import { getRegisteredRules } from './rules.js';
|
|
15
15
|
// ---------------------------------------------------------------------------
|
|
16
16
|
// Target resolution
|
|
@@ -59,13 +59,22 @@ export function resolveDoctorTargets(target, cwd) {
|
|
|
59
59
|
// Rule execution
|
|
60
60
|
// ---------------------------------------------------------------------------
|
|
61
61
|
function classifySkillStatus(results) {
|
|
62
|
+
// status=fail 时按 severity 分流:fatal 升 skill fail,非 fatal(warn / info)
|
|
63
|
+
// 至少 roll up 到 skill warn — 否则 health composer 对 warn 级维度产出
|
|
64
|
+
// status=fail 会被错误聚合成 pass,gate 静默放行。status=warn 一律 roll
|
|
65
|
+
// 到 skill warn(severity 不再作权重二次降级)。
|
|
62
66
|
let hasFatalFail = false;
|
|
63
67
|
let hasWarn = false;
|
|
64
68
|
for (const r of results) {
|
|
65
|
-
if (r.
|
|
66
|
-
|
|
67
|
-
|
|
69
|
+
if (r.status === 'fail') {
|
|
70
|
+
if (r.severity === 'fatal')
|
|
71
|
+
hasFatalFail = true;
|
|
72
|
+
else
|
|
73
|
+
hasWarn = true;
|
|
74
|
+
}
|
|
75
|
+
else if (r.status === 'warn') {
|
|
68
76
|
hasWarn = true;
|
|
77
|
+
}
|
|
69
78
|
}
|
|
70
79
|
if (hasFatalFail)
|
|
71
80
|
return 'fail';
|
|
@@ -75,10 +84,50 @@ function classifySkillStatus(results) {
|
|
|
75
84
|
}
|
|
76
85
|
async function runRulesOnArtifact(artifact, rules, ctxBase) {
|
|
77
86
|
const results = [];
|
|
87
|
+
const ctx = { ...ctxBase, artifact };
|
|
78
88
|
for (const rule of rules) {
|
|
79
89
|
const start = Date.now();
|
|
90
|
+
if (isComposerRule(rule)) {
|
|
91
|
+
// ComposerRule: 一次 checkAll() 产出多条 outcome,展开成 N+1 条 result,
|
|
92
|
+
// 共享同一个 groupId(= composer.id),renderer 用它把多条 result 视为
|
|
93
|
+
// 一个组(eg. 健康度体检的 7+1 个 sub-result)。
|
|
94
|
+
try {
|
|
95
|
+
const outcomes = await rule.checkAll(ctx);
|
|
96
|
+
const took = Date.now() - start;
|
|
97
|
+
for (const oc of outcomes) {
|
|
98
|
+
results.push({
|
|
99
|
+
ruleId: `${rule.id}:${oc.subId}`,
|
|
100
|
+
groupId: rule.id,
|
|
101
|
+
severity: oc.severity ?? rule.severity,
|
|
102
|
+
labelKey: oc.labelKey ?? rule.labelKey,
|
|
103
|
+
status: oc.status,
|
|
104
|
+
message: oc.message,
|
|
105
|
+
hint: oc.hint,
|
|
106
|
+
detail: oc.detail,
|
|
107
|
+
// composer 只给整体耗时一次;均摊到每条 result 没意义,直接复用。
|
|
108
|
+
durationMs: took,
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
114
|
+
results.push({
|
|
115
|
+
ruleId: `${rule.id}:_summary`,
|
|
116
|
+
groupId: rule.id,
|
|
117
|
+
severity: rule.severity,
|
|
118
|
+
labelKey: rule.labelKey,
|
|
119
|
+
status: 'fail',
|
|
120
|
+
message: `composer crashed: ${message.slice(0, 160)}`,
|
|
121
|
+
hint: undefined,
|
|
122
|
+
detail: { ruleCrash: true, error: message },
|
|
123
|
+
durationMs: Date.now() - start,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
// 普通 DoctorRule(原路径)
|
|
80
129
|
try {
|
|
81
|
-
const outcome = await rule.check(
|
|
130
|
+
const outcome = await rule.check(ctx);
|
|
82
131
|
results.push({
|
|
83
132
|
ruleId: rule.id,
|
|
84
133
|
severity: rule.severity,
|
|
@@ -89,7 +138,6 @@ async function runRulesOnArtifact(artifact, rules, ctxBase) {
|
|
|
89
138
|
}
|
|
90
139
|
catch (err) {
|
|
91
140
|
const message = err instanceof Error ? err.message : String(err);
|
|
92
|
-
// rule 自身崩溃也算 fail,不让 doctor 整体挂掉
|
|
93
141
|
results.push({
|
|
94
142
|
ruleId: rule.id,
|
|
95
143
|
severity: rule.severity,
|
|
@@ -128,7 +176,7 @@ function readCliVersion() {
|
|
|
128
176
|
export async function runDoctor(opts) {
|
|
129
177
|
// 默认规则 = 内置 + registerRule() 注册的 custom。test 注入走 opts.rules。
|
|
130
178
|
const effectiveRules = opts.rules && opts.rules.length > 0 ? opts.rules : getRegisteredRules();
|
|
131
|
-
// artifacts 显式提供时跳过 target
|
|
179
|
+
// artifacts 显式提供时跳过 target 解析(嵌入 eval 的路径用,
|
|
132
180
|
// 避免扫整个 skillDir)。空数组合法且明确 — 表示"本次评测没 skill 需要 doctor"
|
|
133
181
|
// (e.g. baseline-only 或纯 runtime-context-only run), doctor 不该再扫
|
|
134
182
|
// skillDir 找无关草稿。只有 artifacts 完全 undefined 时才 fallback 到 target 解析。
|
|
@@ -152,6 +200,7 @@ export async function runDoctor(opts) {
|
|
|
152
200
|
dependencyCwd,
|
|
153
201
|
lang: opts.lang,
|
|
154
202
|
timeoutMs: opts.timeoutMs,
|
|
203
|
+
runHealthCheck: opts.runHealthCheck ?? false,
|
|
155
204
|
};
|
|
156
205
|
const skillReports = [];
|
|
157
206
|
const totals = { pass: 0, warn: 0, fail: 0 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAY/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/doctor/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* doctor preflight context builder。
|
|
3
3
|
*
|
|
4
4
|
* 把「评测前 doctor 要检查什么 + 路径上下文锚到哪里」从评测引擎里抽出来,
|
|
5
|
-
* 让 doctor engine 只消费 ctx
|
|
5
|
+
* 让 doctor engine 只消费 ctx,不再自己猜 eval 的路径语义。
|
|
6
6
|
*
|
|
7
7
|
* Bench 路径语义本来就复杂(.md / SKILL.md 目录 / git: / 绝对路径 / name@cwd /
|
|
8
8
|
* runtime-context-only / batch paired samples), doctor 嵌入需要用而不是旁路重建。
|
|
9
|
-
* 任何
|
|
9
|
+
* 任何 eval 路径推断的边界变化,只需改这一处,doctor engine 零修改。
|
|
10
10
|
*
|
|
11
11
|
* 不服务 standalone `omk doctor [path]` — 那条路径是用户视角的 target 解析,
|
|
12
12
|
* 由 src/doctor/index.ts:resolveDoctorTargets() 单独负责。
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* doctor preflight context builder。
|
|
3
3
|
*
|
|
4
4
|
* 把「评测前 doctor 要检查什么 + 路径上下文锚到哪里」从评测引擎里抽出来,
|
|
5
|
-
* 让 doctor engine 只消费 ctx
|
|
5
|
+
* 让 doctor engine 只消费 ctx,不再自己猜 eval 的路径语义。
|
|
6
6
|
*
|
|
7
7
|
* Bench 路径语义本来就复杂(.md / SKILL.md 目录 / git: / 绝对路径 / name@cwd /
|
|
8
8
|
* runtime-context-only / batch paired samples), doctor 嵌入需要用而不是旁路重建。
|
|
9
|
-
* 任何
|
|
9
|
+
* 任何 eval 路径推断的边界变化,只需改这一处,doctor engine 零修改。
|
|
10
10
|
*
|
|
11
11
|
* 不服务 standalone `omk doctor [path]` — 那条路径是用户视角的 target 解析,
|
|
12
12
|
* 由 src/doctor/index.ts:resolveDoctorTargets() 单独负责。
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
* - renderDoctorReportText: 终端友好,符号 + 标签 + 消息 + hint。stream 写到给定
|
|
6
6
|
* write 函数(默认 stderr,因为 doctor 用 --json 模式时 stdout 应该是结构化 JSON)。
|
|
7
7
|
* - renderDoctorReportJson: 直接 JSON.stringify。CI 消费。
|
|
8
|
+
*
|
|
9
|
+
* groupId 分组:由 ComposerRule 产出的多条 result 共享同一 groupId(= composer.id)。
|
|
10
|
+
* renderer 按 groupId 把它们渲染成一个段落:先打 group header,再缩进打子项。
|
|
11
|
+
* 普通 rule 不带 groupId,逐行渲染。
|
|
8
12
|
*/
|
|
9
13
|
import { type CliLang } from '../cli/i18n.js';
|
|
10
14
|
import type { DoctorReport } from '../types/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/doctor/renderer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../../src/doctor/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAQ,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,mBAAmB,CAAC;AAyF3B,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,YAAY,EACpB,IAAI,EAAE,OAAO,EACb,KAAK,GAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAqC,GAC1D,IAAI,CAkCN;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEnE"}
|
|
@@ -5,6 +5,10 @@
|
|
|
5
5
|
* - renderDoctorReportText: 终端友好,符号 + 标签 + 消息 + hint。stream 写到给定
|
|
6
6
|
* write 函数(默认 stderr,因为 doctor 用 --json 模式时 stdout 应该是结构化 JSON)。
|
|
7
7
|
* - renderDoctorReportJson: 直接 JSON.stringify。CI 消费。
|
|
8
|
+
*
|
|
9
|
+
* groupId 分组:由 ComposerRule 产出的多条 result 共享同一 groupId(= composer.id)。
|
|
10
|
+
* renderer 按 groupId 把它们渲染成一个段落:先打 group header,再缩进打子项。
|
|
11
|
+
* 普通 rule 不带 groupId,逐行渲染。
|
|
8
12
|
*/
|
|
9
13
|
import { tCli } from '../cli/i18n.js';
|
|
10
14
|
import { CLI_DICT } from './../cli/i18n-dict.js';
|
|
@@ -14,22 +18,73 @@ const STATUS_SYMBOL = {
|
|
|
14
18
|
fail: '✗',
|
|
15
19
|
skipped: '⊙',
|
|
16
20
|
};
|
|
21
|
+
/** 维度子项排序权重:fail 最先,warn 次,pass,skipped 最后。
|
|
22
|
+
* groupId 内部用,体现"问题严重的排前面"。 */
|
|
23
|
+
const STATUS_RANK = {
|
|
24
|
+
fail: 0, warn: 1, pass: 2, skipped: 3,
|
|
25
|
+
};
|
|
17
26
|
function statusLabel(status, lang) {
|
|
18
27
|
if (lang === 'zh') {
|
|
19
28
|
return { pass: '通过', warn: '警告', fail: '失败', skipped: '跳过' }[status];
|
|
20
29
|
}
|
|
21
30
|
return { pass: 'PASS', warn: 'WARN', fail: 'FAIL', skipped: 'SKIP' }[status];
|
|
22
31
|
}
|
|
23
|
-
function
|
|
32
|
+
function renderRuleLabel(result, lang) {
|
|
33
|
+
const key = result.labelKey;
|
|
34
|
+
if (key in CLI_DICT)
|
|
35
|
+
return tCli(key, lang);
|
|
36
|
+
return result.ruleId;
|
|
37
|
+
}
|
|
38
|
+
function renderRuleLine(result, ruleLabel, lang, indent = ' ') {
|
|
24
39
|
const sym = STATUS_SYMBOL[result.status];
|
|
25
40
|
const sLabel = statusLabel(result.status, lang);
|
|
26
|
-
|
|
27
|
-
let line = ` ${sym} [${sLabel}] ${ruleLabel} — ${result.message}`;
|
|
41
|
+
let line = `${indent}${sym} [${sLabel}] ${ruleLabel} — ${result.message}`;
|
|
28
42
|
if (result.hint) {
|
|
29
|
-
line += `\n
|
|
43
|
+
line += `\n${indent} 💡 ${result.hint}`;
|
|
30
44
|
}
|
|
31
45
|
return line;
|
|
32
46
|
}
|
|
47
|
+
function segmentResults(results) {
|
|
48
|
+
const segs = [];
|
|
49
|
+
const groupSegMap = new Map();
|
|
50
|
+
for (const r of results) {
|
|
51
|
+
const gid = r.groupId ?? null;
|
|
52
|
+
if (gid === null) {
|
|
53
|
+
segs.push({ groupId: null, results: [r] });
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
let seg = groupSegMap.get(gid);
|
|
57
|
+
if (!seg) {
|
|
58
|
+
seg = { groupId: gid, results: [] };
|
|
59
|
+
groupSegMap.set(gid, seg);
|
|
60
|
+
segs.push(seg);
|
|
61
|
+
}
|
|
62
|
+
seg.results.push(r);
|
|
63
|
+
}
|
|
64
|
+
return segs;
|
|
65
|
+
}
|
|
66
|
+
function renderGroupHeader(groupId, results, lang) {
|
|
67
|
+
// group label 取首条 result 的 labelKey 翻译;但若有 _summary 子项,优先用它
|
|
68
|
+
// 的 labelKey(eg. composer 主标题"健康度体检",而不是某维度名)。
|
|
69
|
+
// 注意:第一条 result 通常是 7 个维度之一,labelKey 是维度名;summary 在末尾。
|
|
70
|
+
const summaryRow = results.find((r) => r.ruleId.endsWith(':_summary'));
|
|
71
|
+
const headerLabelResult = summaryRow ?? results[0];
|
|
72
|
+
const label = renderRuleLabel(headerLabelResult, lang);
|
|
73
|
+
// Group 整体 status 取最坏(fail > warn > pass > skipped)
|
|
74
|
+
const worstStatus = results.reduce((acc, r) => {
|
|
75
|
+
return STATUS_RANK[r.status] < STATUS_RANK[acc] ? r.status : acc;
|
|
76
|
+
}, 'pass');
|
|
77
|
+
const sym = STATUS_SYMBOL[worstStatus];
|
|
78
|
+
const sLabel = statusLabel(worstStatus, lang);
|
|
79
|
+
return ` ${sym} [${sLabel}] ━━ ${label} ━━ (${groupId})`;
|
|
80
|
+
}
|
|
81
|
+
function sortGroupResults(results) {
|
|
82
|
+
// _summary 永远放最后(信息性);其它按 status 严重度排序,fail 最先
|
|
83
|
+
const summaryRows = results.filter((r) => r.ruleId.endsWith(':_summary'));
|
|
84
|
+
const dimRows = results.filter((r) => !r.ruleId.endsWith(':_summary'));
|
|
85
|
+
dimRows.sort((a, b) => STATUS_RANK[a.status] - STATUS_RANK[b.status]);
|
|
86
|
+
return [...dimRows, ...summaryRows];
|
|
87
|
+
}
|
|
33
88
|
export function renderDoctorReportText(report, lang, write = (s) => process.stderr.write(s)) {
|
|
34
89
|
const header = lang === 'zh'
|
|
35
90
|
? `omk doctor 健康检查 — ${report.cwd}`
|
|
@@ -42,27 +97,26 @@ export function renderDoctorReportText(report, lang, write = (s) => process.stde
|
|
|
42
97
|
}
|
|
43
98
|
for (const skill of report.skills) {
|
|
44
99
|
write(`\n[${skill.skillName}] ${skill.skillPath}\n`);
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
100
|
+
const segments = segmentResults(skill.results);
|
|
101
|
+
for (const seg of segments) {
|
|
102
|
+
if (seg.groupId === null) {
|
|
103
|
+
const r = seg.results[0];
|
|
104
|
+
write(renderRuleLine(r, renderRuleLabel(r, lang), lang) + '\n');
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
// ComposerRule group: header + 子项缩进展示
|
|
108
|
+
write(renderGroupHeader(seg.groupId, seg.results, lang) + '\n');
|
|
109
|
+
const sorted = sortGroupResults(seg.results);
|
|
110
|
+
for (const r of sorted) {
|
|
111
|
+
write(renderRuleLine(r, renderRuleLabel(r, lang), lang, ' ') + '\n');
|
|
112
|
+
}
|
|
48
113
|
}
|
|
49
114
|
}
|
|
50
|
-
// 总览
|
|
51
115
|
const summary = lang === 'zh'
|
|
52
116
|
? `\n总览: ${report.totals.pass} 通过 / ${report.totals.warn} 警告 / ${report.totals.fail} 失败\n`
|
|
53
117
|
: `\nSummary: ${report.totals.pass} pass / ${report.totals.warn} warn / ${report.totals.fail} fail\n`;
|
|
54
118
|
write(summary);
|
|
55
119
|
}
|
|
56
|
-
/** 用 result.labelKey 翻译 rule 标题。已知 i18n key 走 tCli; 自定义 rule 用未注册的
|
|
57
|
-
* key 时直接显示 ruleId 作为 fallback (而不是错挂到 skill_readable 的标题)。 */
|
|
58
|
-
function renderRuleLabel(result, lang) {
|
|
59
|
-
const key = result.labelKey;
|
|
60
|
-
// labelKey 是已注册的 CliMessageKey 时走 i18n; 否则 fallback 用 ruleId
|
|
61
|
-
if (key in CLI_DICT) {
|
|
62
|
-
return tCli(key, lang);
|
|
63
|
-
}
|
|
64
|
-
return result.ruleId;
|
|
65
|
-
}
|
|
66
120
|
export function renderDoctorReportJson(report) {
|
|
67
121
|
return JSON.stringify(report, null, 2);
|
|
68
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/doctor/renderer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/doctor/renderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* omk doctor 内置规则注册表。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* evaluation preflight
|
|
4
|
+
* BUILTIN_RULES 是**纯静态/低成本检查**, 不碰 LLM 连通性 — executor / judge
|
|
5
|
+
* 连通性由 evaluation preflight 负责。用户入口 `omk doctor` 默认还会跑
|
|
6
|
+
* skill_health composer 做 LLM 审计;`--static-only` 只暴露这里的静态规则。
|
|
6
7
|
*
|
|
7
8
|
* 每条 rule 回答一个独立的「skill 能不能被有意义评测」子问题:
|
|
8
9
|
* - skill_readable: 文件能读、内容非空且有最小长度
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
* 扩展接口预留: registerRule() 允许业务方注入自定义 rule(v0.22 不暴露 CLI flag,
|
|
17
18
|
* 仅作为 library API 占位)。
|
|
18
19
|
*/
|
|
19
|
-
import type { DoctorRule } from '../types/doctor.js';
|
|
20
|
+
import type { DoctorRule, DoctorRuleLike } from '../types/doctor.js';
|
|
20
21
|
export declare const skillReadableRule: DoctorRule;
|
|
21
22
|
export declare const skillMetadataRule: DoctorRule;
|
|
22
23
|
export declare const dependenciesPresentRule: DoctorRule;
|
|
@@ -24,7 +25,7 @@ export declare const samplesContractAlignedRule: DoctorRule;
|
|
|
24
25
|
/** v0.22 内置规则注册表。执行顺序即此处定义顺序。
|
|
25
26
|
* doctor 不包含 executor 连通性检查 — 该职责属于 evaluation preflight。 */
|
|
26
27
|
export declare const BUILTIN_RULES: DoctorRule[];
|
|
27
|
-
export declare function registerRule(rule:
|
|
28
|
-
export declare function getRegisteredRules():
|
|
28
|
+
export declare function registerRule(rule: DoctorRuleLike): void;
|
|
29
|
+
export declare function getRegisteredRules(): DoctorRuleLike[];
|
|
29
30
|
export declare function __resetCustomRulesForTest(): void;
|
|
30
31
|
//# sourceMappingURL=rules.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/doctor/rules.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAQH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAGf,MAAM,oBAAoB,CAAC;AA8D5B,eAAO,MAAM,iBAAiB,EAAE,UA0C/B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAiC/B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,UAuCrC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,UAkCxC,CAAC;AAMF;8DAC8D;AAC9D,eAAO,MAAM,aAAa,EAAE,UAAU,EAKrC,CAAC;AAKF,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAKvD;AAED,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
package/dist/src/doctor/rules.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* omk doctor 内置规则注册表。
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* evaluation preflight
|
|
4
|
+
* BUILTIN_RULES 是**纯静态/低成本检查**, 不碰 LLM 连通性 — executor / judge
|
|
5
|
+
* 连通性由 evaluation preflight 负责。用户入口 `omk doctor` 默认还会跑
|
|
6
|
+
* skill_health composer 做 LLM 审计;`--static-only` 只暴露这里的静态规则。
|
|
6
7
|
*
|
|
7
8
|
* 每条 rule 回答一个独立的「skill 能不能被有意义评测」子问题:
|
|
8
9
|
* - skill_readable: 文件能读、内容非空且有最小长度
|
|
@@ -239,7 +240,7 @@ export const BUILTIN_RULES = [
|
|
|
239
240
|
dependenciesPresentRule,
|
|
240
241
|
samplesContractAlignedRule,
|
|
241
242
|
];
|
|
242
|
-
/** 扩展 hook
|
|
243
|
+
/** 扩展 hook。可注册普通 DoctorRule 或 ComposerRule(健康度体检走 composer)。 */
|
|
243
244
|
const customRules = [];
|
|
244
245
|
export function registerRule(rule) {
|
|
245
246
|
if (BUILTIN_RULES.some((r) => r.id === rule.id) || customRules.some((r) => r.id === rule.id)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/doctor/rules.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/doctor/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ const PATH_PATTERNS = [
|
|
|
11
11
|
// .claude paths
|
|
12
12
|
/\.claude\/[a-zA-Z0-9_/.@-]+/g,
|
|
13
13
|
// Paths with file extensions mentioned in text
|
|
14
|
-
/[a-zA-Z0-9_/-]+\.(?:ts|js|tsx|jsx|md|json|yaml|yml|sh)\b/g,
|
|
14
|
+
/[a-zA-Z0-9_/-]+\.(?:ts|js|tsx|jsx|md|json|yaml|yml|sh)\b(?!\s*\()/g,
|
|
15
15
|
];
|
|
16
16
|
// Paths to ignore (too generic or always present)
|
|
17
17
|
const IGNORE_PATTERNS = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fact-checker.js","sourceRoot":"","sources":["../../../src/eval-core/fact-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,+DAA+D;AAC/D,MAAM,aAAa,GAAG;IACpB,iEAAiE;IACjE,qEAAqE;IACrE,gBAAgB;IAChB,8BAA8B;IAC9B,+CAA+C;IAC/C,
|
|
1
|
+
{"version":3,"file":"fact-checker.js","sourceRoot":"","sources":["../../../src/eval-core/fact-checker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgBpC,+DAA+D;AAC/D,MAAM,aAAa,GAAG;IACpB,iEAAiE;IACjE,qEAAqE;IACrE,gBAAgB;IAChB,8BAA8B;IAC9B,+CAA+C;IAC/C,oEAAoE;CACrE,CAAC;AAEF,kDAAkD;AAClD,MAAM,eAAe,GAAG;IACtB,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;IACjB,SAAS;IACT,UAAU;IACV,cAAc;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAEhC,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;QACpC,mCAAmC;QACnC,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,6BAA6B;YAC7B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACxC,gCAAgC;YAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAClE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,GAAW;IACpD,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE7C,MAAM,MAAM,GAAgB,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpC,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,MAAM;YAChB,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,YAAY,EAAE,CAAC;SACtD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,MAAM,YAAY,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1F,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAC7D,CAAC"}
|
|
@@ -11,7 +11,7 @@ export interface LayerGateResult {
|
|
|
11
11
|
* 三层都缺(eval-samples 既没定义断言也没定义 rubric)时直接 FAIL + 引导,
|
|
12
12
|
* 不走 composite fallback——符合 0-1 窗口期不做兼容原则。
|
|
13
13
|
*
|
|
14
|
-
*
|
|
14
|
+
* 抽为纯函数便于单测;commands/eval-runner.ts 负责 IO(读 config、打印、退出码)。
|
|
15
15
|
*/
|
|
16
16
|
export declare function evaluateLayerGates(summary: Record<string, VariantSummary>, threshold: number): LayerGateResult;
|
|
17
17
|
//# sourceMappingURL=layer-gates.d.ts.map
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* 三层都缺(eval-samples 既没定义断言也没定义 rubric)时直接 FAIL + 引导,
|
|
7
7
|
* 不走 composite fallback——符合 0-1 窗口期不做兼容原则。
|
|
8
8
|
*
|
|
9
|
-
*
|
|
9
|
+
* 抽为纯函数便于单测;commands/eval-runner.ts 负责 IO(读 config、打印、退出码)。
|
|
10
10
|
*/
|
|
11
11
|
export function evaluateLayerGates(summary, threshold) {
|
|
12
12
|
let allPass = true;
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* - **SOLO** single-variant report; nothing to compare against
|
|
20
20
|
*
|
|
21
21
|
* The output is intentionally text-template-driven so the same rule engine
|
|
22
|
-
* powers both `omk
|
|
22
|
+
* powers both `omk eval` (CLI, terse) and the HTML report's
|
|
23
23
|
* top-of-page "verdict pill" ("verdict pill" surface). Both surfaces must agree.
|
|
24
24
|
*
|
|
25
25
|
* Subjectivity caveat: the ship recommendation is rule-based, not statistically
|
|
@@ -39,7 +39,7 @@ export interface VerdictResult {
|
|
|
39
39
|
level: VerdictLevel;
|
|
40
40
|
headline: string;
|
|
41
41
|
}>;
|
|
42
|
-
/** Detail bullets shown by `omk
|
|
42
|
+
/** Detail bullets shown by `omk eval` verbose output. */
|
|
43
43
|
rationale: {
|
|
44
44
|
significance?: string;
|
|
45
45
|
layerWinners?: string;
|
|
@@ -54,7 +54,7 @@ export interface VerdictResult {
|
|
|
54
54
|
variants: string[];
|
|
55
55
|
}
|
|
56
56
|
export interface VerdictOptions {
|
|
57
|
-
/** Three-layer ci-gate threshold; defaults to 3.5 (matches `omk
|
|
57
|
+
/** Three-layer ci-gate threshold; defaults to 3.5 (matches `omk eval`). */
|
|
58
58
|
gateThreshold?: number;
|
|
59
59
|
/**
|
|
60
60
|
* Magnitude (in raw score points) below which a "significant" diff is treated
|
|
@@ -68,7 +68,7 @@ export interface VerdictOptions {
|
|
|
68
68
|
*/
|
|
69
69
|
export declare function computeVerdict(report: Report, options?: VerdictOptions): VerdictResult;
|
|
70
70
|
/**
|
|
71
|
-
* Plain-text formatter for `omk
|
|
71
|
+
* Plain-text formatter for the `omk eval` verdict. Stays under 6 lines per the
|
|
72
72
|
* spec — one verdict + four rationale bullets + one ship recommendation.
|
|
73
73
|
*/
|
|
74
74
|
export declare function formatVerdictText(result: VerdictResult, options?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verdict.d.ts","sourceRoot":"","sources":["../../../src/eval-core/verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAyC,MAAM,mBAAmB,CAAC;AAGvF,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,UAAU,GACV,SAAS,GACT,OAAO,GACP,cAAc,GACd,MAAM,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,
|
|
1
|
+
{"version":3,"file":"verdict.d.ts","sourceRoot":"","sources":["../../../src/eval-core/verdict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAyC,MAAM,mBAAmB,CAAC;AAGvF,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,UAAU,GACV,SAAS,GACT,OAAO,GACP,cAAc,GACd,MAAM,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/F,yDAAyD;IACzD,SAAS,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB;6CACqC;QACrC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,gEAAgE;IAChE,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa,CAwE1F;AAsND;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,CAiBpG"}
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* - **SOLO** single-variant report; nothing to compare against
|
|
20
20
|
*
|
|
21
21
|
* The output is intentionally text-template-driven so the same rule engine
|
|
22
|
-
* powers both `omk
|
|
22
|
+
* powers both `omk eval` (CLI, terse) and the HTML report's
|
|
23
23
|
* top-of-page "verdict pill" ("verdict pill" surface). Both surfaces must agree.
|
|
24
24
|
*
|
|
25
25
|
* Subjectivity caveat: the ship recommendation is rule-based, not statistically
|
|
@@ -293,7 +293,7 @@ function recommendation(level, _perPair) {
|
|
|
293
293
|
}
|
|
294
294
|
}
|
|
295
295
|
/**
|
|
296
|
-
* Plain-text formatter for `omk
|
|
296
|
+
* Plain-text formatter for the `omk eval` verdict. Stays under 6 lines per the
|
|
297
297
|
* spec — one verdict + four rationale bullets + one ship recommendation.
|
|
298
298
|
*/
|
|
299
299
|
export function formatVerdictText(result, options = {}) {
|