oh-my-knowledge 0.22.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.
Files changed (184) hide show
  1. package/README.md +63 -63
  2. package/README.zh.md +64 -62
  3. package/dist/src/analysis/report-diagnostics.d.ts +28 -3
  4. package/dist/src/analysis/report-diagnostics.d.ts.map +1 -1
  5. package/dist/src/analysis/report-diagnostics.js +201 -81
  6. package/dist/src/analysis/report-diagnostics.js.map +1 -1
  7. package/dist/src/analysis/sample-diagnostics.d.ts +9 -2
  8. package/dist/src/analysis/sample-diagnostics.d.ts.map +1 -1
  9. package/dist/src/analysis/sample-diagnostics.js +224 -25
  10. package/dist/src/analysis/sample-diagnostics.js.map +1 -1
  11. package/dist/src/authoring/evolver.d.ts +7 -2
  12. package/dist/src/authoring/evolver.d.ts.map +1 -1
  13. package/dist/src/authoring/evolver.js +43 -9
  14. package/dist/src/authoring/evolver.js.map +1 -1
  15. package/dist/src/authoring/generator.d.ts +24 -0
  16. package/dist/src/authoring/generator.d.ts.map +1 -1
  17. package/dist/src/authoring/generator.js +67 -5
  18. package/dist/src/authoring/generator.js.map +1 -1
  19. package/dist/src/cli/coverage-renderer.d.ts +15 -0
  20. package/dist/src/cli/coverage-renderer.d.ts.map +1 -0
  21. package/dist/src/cli/coverage-renderer.js +74 -0
  22. package/dist/src/cli/coverage-renderer.js.map +1 -0
  23. package/dist/src/cli/i18n-dict.d.ts +1 -1
  24. package/dist/src/cli/i18n-dict.d.ts.map +1 -1
  25. package/dist/src/cli/i18n-dict.js +62 -40
  26. package/dist/src/cli/i18n-dict.js.map +1 -1
  27. package/dist/src/cli/index.d.ts +3 -0
  28. package/dist/src/cli/index.d.ts.map +1 -0
  29. package/dist/src/{cli.js → cli/index.js} +123 -384
  30. package/dist/src/cli/index.js.map +1 -0
  31. package/dist/src/cli/parse-run-config.d.ts +56 -0
  32. package/dist/src/cli/parse-run-config.d.ts.map +1 -0
  33. package/dist/src/cli/parse-run-config.js +195 -0
  34. package/dist/src/cli/parse-run-config.js.map +1 -0
  35. package/dist/src/cli/progress.d.ts +25 -0
  36. package/dist/src/cli/progress.d.ts.map +1 -0
  37. package/dist/src/cli/progress.js +62 -0
  38. package/dist/src/cli/progress.js.map +1 -0
  39. package/dist/src/cli/update-check.d.ts +3 -0
  40. package/dist/src/cli/update-check.d.ts.map +1 -0
  41. package/dist/src/cli/update-check.js +37 -0
  42. package/dist/src/cli/update-check.js.map +1 -0
  43. package/dist/src/eval-core/cache.d.ts +7 -5
  44. package/dist/src/eval-core/cache.d.ts.map +1 -1
  45. package/dist/src/eval-core/cache.js +11 -7
  46. package/dist/src/eval-core/cache.js.map +1 -1
  47. package/dist/src/eval-core/comparability.d.ts +11 -0
  48. package/dist/src/eval-core/comparability.d.ts.map +1 -0
  49. package/dist/src/eval-core/comparability.js +271 -0
  50. package/dist/src/eval-core/comparability.js.map +1 -0
  51. package/dist/src/eval-core/dependency-checker.d.ts +1 -1
  52. package/dist/src/eval-core/dependency-checker.js +1 -1
  53. package/dist/src/eval-core/evaluation-execution.d.ts +5 -2
  54. package/dist/src/eval-core/evaluation-execution.d.ts.map +1 -1
  55. package/dist/src/eval-core/evaluation-execution.js +29 -21
  56. package/dist/src/eval-core/evaluation-execution.js.map +1 -1
  57. package/dist/src/eval-core/evaluation-job.d.ts +2 -2
  58. package/dist/src/eval-core/evaluation-job.d.ts.map +1 -1
  59. package/dist/src/eval-core/evaluation-job.js +2 -2
  60. package/dist/src/eval-core/evaluation-job.js.map +1 -1
  61. package/dist/src/eval-core/evaluation-reporting.d.ts +3 -1
  62. package/dist/src/eval-core/evaluation-reporting.d.ts.map +1 -1
  63. package/dist/src/eval-core/evaluation-reporting.js +65 -5
  64. package/dist/src/eval-core/evaluation-reporting.js.map +1 -1
  65. package/dist/src/eval-core/execution-strategy.js +6 -6
  66. package/dist/src/eval-core/execution-strategy.js.map +1 -1
  67. package/dist/src/eval-core/schema.d.ts.map +1 -1
  68. package/dist/src/eval-core/schema.js +14 -1
  69. package/dist/src/eval-core/schema.js.map +1 -1
  70. package/dist/src/eval-core/verdict.d.ts +3 -3
  71. package/dist/src/eval-core/verdict.js +3 -3
  72. package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts +111 -0
  73. package/dist/src/eval-workflows/batch-evaluation-workflow.d.ts.map +1 -0
  74. package/dist/src/eval-workflows/batch-evaluation-workflow.js +215 -0
  75. package/dist/src/eval-workflows/batch-evaluation-workflow.js.map +1 -0
  76. package/dist/src/eval-workflows/evaluation-pipeline.d.ts +7 -5
  77. package/dist/src/eval-workflows/evaluation-pipeline.d.ts.map +1 -1
  78. package/dist/src/eval-workflows/evaluation-pipeline.js +13 -8
  79. package/dist/src/eval-workflows/evaluation-pipeline.js.map +1 -1
  80. package/dist/src/eval-workflows/evaluation-preparation.d.ts +10 -8
  81. package/dist/src/eval-workflows/evaluation-preparation.d.ts.map +1 -1
  82. package/dist/src/eval-workflows/evaluation-preparation.js +8 -4
  83. package/dist/src/eval-workflows/evaluation-preparation.js.map +1 -1
  84. package/dist/src/eval-workflows/run-evaluation.d.ts +23 -20
  85. package/dist/src/eval-workflows/run-evaluation.d.ts.map +1 -1
  86. package/dist/src/eval-workflows/run-evaluation.js +34 -25
  87. package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
  88. package/dist/src/executors/claude-cli.d.ts.map +1 -1
  89. package/dist/src/executors/claude-cli.js +12 -7
  90. package/dist/src/executors/claude-cli.js.map +1 -1
  91. package/dist/src/executors/claude-sdk.d.ts +1 -1
  92. package/dist/src/executors/claude-sdk.js +1 -1
  93. package/dist/src/executors/codex-cli-trace.d.ts +10 -0
  94. package/dist/src/executors/codex-cli-trace.d.ts.map +1 -0
  95. package/dist/src/executors/codex-cli-trace.js +123 -0
  96. package/dist/src/executors/codex-cli-trace.js.map +1 -0
  97. package/dist/src/executors/codex-cli.d.ts +18 -0
  98. package/dist/src/executors/codex-cli.d.ts.map +1 -0
  99. package/dist/src/executors/codex-cli.js +254 -0
  100. package/dist/src/executors/codex-cli.js.map +1 -0
  101. package/dist/src/executors/codex-sdk.d.ts +18 -0
  102. package/dist/src/executors/codex-sdk.d.ts.map +1 -0
  103. package/dist/src/executors/codex-sdk.js +214 -0
  104. package/dist/src/executors/codex-sdk.js.map +1 -0
  105. package/dist/src/executors/gemini.d.ts.map +1 -1
  106. package/dist/src/executors/gemini.js +28 -24
  107. package/dist/src/executors/gemini.js.map +1 -1
  108. package/dist/src/executors/index.d.ts.map +1 -1
  109. package/dist/src/executors/index.js +7 -2
  110. package/dist/src/executors/index.js.map +1 -1
  111. package/dist/src/executors/runtime-fingerprint.d.ts +7 -0
  112. package/dist/src/executors/runtime-fingerprint.d.ts.map +1 -0
  113. package/dist/src/executors/runtime-fingerprint.js +277 -0
  114. package/dist/src/executors/runtime-fingerprint.js.map +1 -0
  115. package/dist/src/executors/script.d.ts.map +1 -1
  116. package/dist/src/executors/script.js +48 -56
  117. package/dist/src/executors/script.js.map +1 -1
  118. package/dist/src/executors/shared.d.ts +78 -1
  119. package/dist/src/executors/shared.d.ts.map +1 -1
  120. package/dist/src/executors/shared.js +203 -1
  121. package/dist/src/executors/shared.js.map +1 -1
  122. package/dist/src/grading/assertions.d.ts.map +1 -1
  123. package/dist/src/grading/assertions.js +21 -6
  124. package/dist/src/grading/assertions.js.map +1 -1
  125. package/dist/src/grading/gold-dataset.d.ts +1 -1
  126. package/dist/src/grading/gold-dataset.js +1 -1
  127. package/dist/src/grading/index.d.ts.map +1 -1
  128. package/dist/src/grading/index.js +11 -0
  129. package/dist/src/grading/index.js.map +1 -1
  130. package/dist/src/grading/judge.d.ts.map +1 -1
  131. package/dist/src/grading/judge.js +75 -6
  132. package/dist/src/grading/judge.js.map +1 -1
  133. package/dist/src/inputs/eval-config.js +2 -2
  134. package/dist/src/inputs/eval-config.js.map +1 -1
  135. package/dist/src/inputs/load-samples.d.ts.map +1 -1
  136. package/dist/src/inputs/load-samples.js +30 -4
  137. package/dist/src/inputs/load-samples.js.map +1 -1
  138. package/dist/src/inputs/skill-loader.d.ts +2 -2
  139. package/dist/src/inputs/skill-loader.d.ts.map +1 -1
  140. package/dist/src/inputs/skill-loader.js +2 -2
  141. package/dist/src/inputs/skill-loader.js.map +1 -1
  142. package/dist/src/renderer/html-renderer.d.ts +5 -4
  143. package/dist/src/renderer/html-renderer.d.ts.map +1 -1
  144. package/dist/src/renderer/html-renderer.js +217 -93
  145. package/dist/src/renderer/html-renderer.js.map +1 -1
  146. package/dist/src/renderer/layout.d.ts +2 -1
  147. package/dist/src/renderer/layout.d.ts.map +1 -1
  148. package/dist/src/renderer/layout.js +30 -42
  149. package/dist/src/renderer/layout.js.map +1 -1
  150. package/dist/src/renderer/summary.d.ts +3 -3
  151. package/dist/src/renderer/summary.d.ts.map +1 -1
  152. package/dist/src/renderer/summary.js +232 -55
  153. package/dist/src/renderer/summary.js.map +1 -1
  154. package/dist/src/renderer/trends.d.ts.map +1 -1
  155. package/dist/src/renderer/trends.js +5 -3
  156. package/dist/src/renderer/trends.js.map +1 -1
  157. package/dist/src/server/report-server.js +4 -4
  158. package/dist/src/server/report-server.js.map +1 -1
  159. package/dist/src/server/report-store.d.ts +7 -5
  160. package/dist/src/server/report-store.d.ts.map +1 -1
  161. package/dist/src/server/report-store.js +39 -11
  162. package/dist/src/server/report-store.js.map +1 -1
  163. package/dist/src/types/eval.d.ts +27 -5
  164. package/dist/src/types/eval.d.ts.map +1 -1
  165. package/dist/src/types/executor.d.ts +5 -0
  166. package/dist/src/types/executor.d.ts.map +1 -1
  167. package/dist/src/types/judge.d.ts +10 -0
  168. package/dist/src/types/judge.d.ts.map +1 -1
  169. package/dist/src/types/report.d.ts +151 -29
  170. package/dist/src/types/report.d.ts.map +1 -1
  171. package/dist/src/types/storage.d.ts +7 -7
  172. package/dist/src/types/storage.d.ts.map +1 -1
  173. package/package.json +14 -5
  174. package/dist/src/cli.d.ts +0 -3
  175. package/dist/src/cli.d.ts.map +0 -1
  176. package/dist/src/cli.js.map +0 -1
  177. package/dist/src/eval-workflows/each-evaluation-workflow.d.ts +0 -153
  178. package/dist/src/eval-workflows/each-evaluation-workflow.d.ts.map +0 -1
  179. package/dist/src/eval-workflows/each-evaluation-workflow.js +0 -178
  180. package/dist/src/eval-workflows/each-evaluation-workflow.js.map +0 -1
  181. package/dist/src/executors/openai-cli.d.ts +0 -3
  182. package/dist/src/executors/openai-cli.d.ts.map +0 -1
  183. package/dist/src/executors/openai-cli.js +0 -60
  184. package/dist/src/executors/openai-cli.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * HTML report renderer — orchestrates sub-modules.
3
3
  */
4
- import { e, fmtCost, fmtDuration, COLORS, DEFAULT_LANG, t, layout } from './layout.js';
4
+ import { e, fmtCost, fmtDuration, fmtKnownCost, COLORS, DEFAULT_LANG, t, layout } from './layout.js';
5
5
  import { renderAgentOverview, renderAnalysis, renderHumanAgreement, renderKnowledgeInteractionSection, renderPairwiseDiff, renderSaturationCurve, renderSummaryCards, renderVarianceComparisons, renderVerdictPill, levelLabel, levelTooltip, } from './summary.js';
6
6
  import { renderSampleTable } from './table.js';
7
7
  import { renderTrendsBody } from './trends.js';
@@ -19,6 +19,89 @@ function levelDot(level) {
19
19
  case 'SOLO': return '○';
20
20
  }
21
21
  }
22
+ function isEvaluationReport(document) {
23
+ return document.kind === 'evaluation';
24
+ }
25
+ function scoreOf(summary) {
26
+ return summary?.avgCompositeScore ?? summary?.avgLlmScore ?? null;
27
+ }
28
+ function improvementOf(baselineScore, skillScore) {
29
+ if (typeof baselineScore !== 'number' || typeof skillScore !== 'number' || baselineScore <= 0)
30
+ return '-';
31
+ const delta = ((skillScore - baselineScore) / baselineScore * 100).toFixed(0);
32
+ return skillScore >= baselineScore ? `+${delta}%` : `${delta}%`;
33
+ }
34
+ function renderRuntimeTag(runtime, label, lang) {
35
+ if (!runtime)
36
+ return '';
37
+ const versions = [];
38
+ if (runtime.binary?.version)
39
+ versions.push(`${lang === 'zh' ? '二进制' : 'binary'} ${runtime.binary.version}`);
40
+ if (runtime.sdk?.version)
41
+ versions.push(`sdk ${runtime.sdk.version}`);
42
+ const versionText = versions.length > 0 ? ` · ${versions.map(e).join(' · ')}` : '';
43
+ const title = lang === 'zh'
44
+ ? [
45
+ `executor=${runtime.executor}`,
46
+ `model=${runtime.model}`,
47
+ `kind=${runtime.kind}`,
48
+ `system=${runtime.capabilities.systemPrompt}`,
49
+ `cost=${runtime.capabilities.costUSD}`,
50
+ `trace=${runtime.capabilities.trace}`,
51
+ `skillIsolation=${runtime.capabilities.skillIsolation}`,
52
+ ].join('; ')
53
+ : [
54
+ `executor=${runtime.executor}`,
55
+ `model=${runtime.model}`,
56
+ `kind=${runtime.kind}`,
57
+ `system=${runtime.capabilities.systemPrompt}`,
58
+ `cost=${runtime.capabilities.costUSD}`,
59
+ `trace=${runtime.capabilities.trace}`,
60
+ `skillIsolation=${runtime.capabilities.skillIsolation}`,
61
+ ].join('; ');
62
+ return `<span class="meta-tag" title="${e(title)}">${e(label)}: <code>${e(runtime.fingerprint)}</code>${versionText}</span>`;
63
+ }
64
+ function costCompletenessTooltip(lang) {
65
+ return lang === 'zh'
66
+ ? '部分 executor 或评委不回传 USD 成本。这里显示的是已上报成本下界,真实花费可能更高。'
67
+ : 'Some executors or judges do not report USD cost. This is a lower bound from reported costs; actual spend may be higher.';
68
+ }
69
+ function renderDebiasModeTag(modes, lang) {
70
+ if (!modes || modes.length === 0)
71
+ return '';
72
+ const labels = modes.map((mode) => {
73
+ if (mode === 'length')
74
+ return lang === 'zh' ? '长度偏差' : 'length bias';
75
+ if (mode === 'position')
76
+ return lang === 'zh' ? '位置偏差' : 'position bias';
77
+ return mode;
78
+ });
79
+ const title = lang === 'zh'
80
+ ? '评委评分偏差控制:长度偏差=提醒评委不要因为答案更长就给更高分;位置偏差=随机化多评委顺序'
81
+ : 'Judge scoring bias controls: length bias = do not reward longer answers; position bias = randomize ensemble order';
82
+ return `<span class="meta-tag" title="${e(title)}">${lang === 'zh' ? '评分偏差控制' : 'Judge bias control'}: ${labels.map(e).join(' · ')}</span>`;
83
+ }
84
+ function pluralizeEn(count, singular, plural = `${singular}s`) {
85
+ return `${count} ${count === 1 ? singular : plural}`;
86
+ }
87
+ function renderJudgeRuntimeTags(meta, lang) {
88
+ if (meta.judgeRuntimes && Object.keys(meta.judgeRuntimes).length > 0) {
89
+ return Object.entries(meta.judgeRuntimes)
90
+ .sort(([a], [b]) => a.localeCompare(b))
91
+ .map(([key, runtime]) => renderRuntimeTag(runtime, lang === 'zh' ? `评委指纹 ${key}` : `Judge runtime ${key}`, lang))
92
+ .join('');
93
+ }
94
+ return renderRuntimeTag(meta.judgeRuntime, lang === 'zh' ? '评委指纹' : 'Judge runtime', lang);
95
+ }
96
+ function renderExecutorRuntimeTags(meta, lang) {
97
+ if (meta.executorRuntimes && Object.keys(meta.executorRuntimes).length > 0) {
98
+ return Object.entries(meta.executorRuntimes)
99
+ .sort(([a], [b]) => a.localeCompare(b))
100
+ .map(([key, runtime]) => renderRuntimeTag(runtime, lang === 'zh' ? `执行器指纹 ${key}` : `Executor runtime ${key}`, lang))
101
+ .join('');
102
+ }
103
+ return renderRuntimeTag(meta.executorRuntime, lang === 'zh' ? '执行器指纹' : 'Executor runtime', lang);
104
+ }
22
105
  export function renderRunList(runs, lang = DEFAULT_LANG) {
23
106
  const langQ = lang === DEFAULT_LANG ? '' : `?lang=${lang}`;
24
107
  const skillHealthLink = `<a href="/analyses${langQ}" style="color:var(--text-muted);font-size:12px;text-decoration:none;border:1px solid var(--border);padding:4px 10px;border-radius:var(--radius);display:inline-block">📊 <span data-i18n="skillHealthTitle">${t('skillHealthTitle', lang)}</span> →</a>`;
@@ -33,6 +116,38 @@ export function renderRunList(runs, lang = DEFAULT_LANG) {
33
116
  `, lang);
34
117
  }
35
118
  const rows = runs.map((run) => {
119
+ if (run.kind === 'batch-evaluation') {
120
+ const m = run.meta;
121
+ const scoreCol = run.items.length > 0
122
+ ? run.items.map((item) => {
123
+ const baselineScore = scoreOf(item.summary.baseline);
124
+ const skillScore = scoreOf(item.summary[item.name]);
125
+ const score = skillScore ?? baselineScore;
126
+ if (score == null)
127
+ return `<span style="color:var(--text-muted)">${e(item.name)}: -</span>`;
128
+ const color = score >= 4 ? 'var(--green)' : score >= 3 ? 'var(--yellow)' : 'var(--red)';
129
+ const barW = Math.round((score / 5) * 100);
130
+ return `<div style="display:flex;align-items:center;gap:6px;margin:2px 0">` +
131
+ `<span title="${e(item.name)}" style="font-size:11px;color:var(--text-muted);width:56px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0">${e(item.name)}</span>` +
132
+ `<div style="width:64px;height:6px;background:var(--bg-surface);border-radius:3px;flex-shrink:0">` +
133
+ `<div style="width:${barW}%;height:100%;background:${color};border-radius:3px"></div></div>` +
134
+ `<span style="font-size:12px;font-weight:600;color:${color};min-width:24px">${score.toFixed(2)}</span></div>`;
135
+ }).join('')
136
+ : '<div style="color:var(--text-faint);font-size:0.6875rem;text-align:center">no score</div>';
137
+ const allCostReported = run.items.every((item) => Object.values(item.summary || {}).every((v) => v.execCostReported !== false && v.judgeCostReported !== false));
138
+ const totalCostReported = m.totalCostReported !== false && allCostReported;
139
+ const totalDurationMs = run.items.reduce((sum, item) => (sum + Object.values(item.summary || {}).reduce((inner, v) => inner + (v.avgDurationMs || 0) * (v.successCount || 0), 0)), 0);
140
+ const statusPill = `<span class="run-status" title="${lang === 'zh' ? '批量评测' : 'batch evaluation'}"><span class="run-status-dot" aria-hidden="true">◇</span>${lang === 'zh' ? '批量' : 'Batch'}</span>`;
141
+ return `<tr>
142
+ <td>${statusPill}<a href="/reports/${e(run.id)}${langQ}"><span style="color:var(--text-primary)">${e(run.id)}</span><br><span style="font-size:0.6875rem;color:var(--text-muted)">${m.timestamp ? new Date(m.timestamp).toLocaleString('zh-CN', { month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' }) : e(run.id)}</span></a></td>
143
+ <td>${e(m.model || '-')}</td>
144
+ <td>${m.sampleCount || 0}</td>
145
+ <td>${scoreCol}</td>
146
+ <td title="${totalCostReported ? '' : e(costCompletenessTooltip(lang))}">${fmtKnownCost(m.totalCostUSD || 0, totalCostReported)}</td>
147
+ <td>${fmtDuration(totalDurationMs)}</td>
148
+ <td style="white-space:nowrap"><button onclick="deleteRun('${e(run.id)}',this)" class="btn-danger" data-i18n="deleteBtnText">${t('deleteBtnText', lang)}</button></td>
149
+ </tr>`;
150
+ }
36
151
  const m = run.meta;
37
152
  const hasScores = Object.values(run.summary || {}).some((s) => typeof s.avgCompositeScore === 'number' || typeof s.avgLlmScore === 'number');
38
153
  const scoreCol = hasScores
@@ -52,9 +167,8 @@ export function renderRunList(runs, lang = DEFAULT_LANG) {
52
167
  const badges = ''; // TODO: artifact kind 体系完善后,按 kind 显示评测类型标签
53
168
  // v0.21 B.4 — 列表页 verdict pill: 一眼分辨 progress / regress / noise.
54
169
  // computeVerdict 是同步纯函数(report -> level),per row 跑成本 O(samples).
55
- // each mode 或脏老报告会让 layer-gates 访问 undefined.avgFactScore 抛 NPE,
56
- // try/catch 兜底, 失败的 row 不显示 pill(不要让一个坏 report 把整个列表
57
- // 撤掉). verdict.ts 的 defensive 修复另立 task.
170
+ // 脏报告可能让 layer-gates 访问 undefined.avgFactScore 抛 NPE。
171
+ // try/catch 兜底,失败的 row 不显示 pill,避免一个坏 report 撤掉整页。
58
172
  let statusPill = '';
59
173
  try {
60
174
  const verdict = computeVerdict(run);
@@ -63,7 +177,7 @@ export function renderRunList(runs, lang = DEFAULT_LANG) {
63
177
  }
64
178
  catch { /* skip pill on this row */ }
65
179
  return `<tr>
66
- <td>${statusPill}<a href="/reports/${e(run.id)}"><span style="color:var(--text-primary)">${e(run.id)}${badges}</span><br><span style="font-size:0.6875rem;color:var(--text-muted)">${(() => {
180
+ <td>${statusPill}<a href="/reports/${e(run.id)}${langQ}"><span style="color:var(--text-primary)">${e(run.id)}${badges}</span><br><span style="font-size:0.6875rem;color:var(--text-muted)">${(() => {
67
181
  // Extract date/time from report ID: ...-YYYYMMDD-HHmm
68
182
  const idMatch = run.id.match(/(\d{4})(\d{2})(\d{2})-(\d{2})(\d{2})$/);
69
183
  if (idMatch)
@@ -73,17 +187,43 @@ export function renderRunList(runs, lang = DEFAULT_LANG) {
73
187
  <td>${e(m.model || '-')}</td>
74
188
  <td>${m.sampleCount || 0}</td>
75
189
  <td>${scoreCol}</td>
76
- <td>${fmtCost(Object.values(run.summary || {}).reduce((s, v) => s + (v.totalExecCostUSD || 0), 0))}</td>
190
+ <td>${(() => {
191
+ const cost = Object.values(run.summary || {}).reduce((s, v) => s + (v.totalExecCostUSD || 0), 0);
192
+ const reported = Object.values(run.summary || {}).every((v) => v.execCostReported !== false);
193
+ return fmtCost(cost, reported);
194
+ })()}</td>
77
195
  <td>${fmtDuration(Object.values(run.summary || {}).reduce((s, v) => s + (v.avgDurationMs || 0) * (v.successCount || 0), 0))}</td>
78
196
  <td style="white-space:nowrap"><button onclick="deleteRun('${e(run.id)}',this)" class="btn-danger" data-i18n="deleteBtnText">${t('deleteBtnText', lang)}</button></td>
79
197
  </tr>`;
80
198
  }).join('');
81
199
  const runCount = lang === 'zh' ? `${runs.length} 次评测` : `${runs.length} runs`;
82
- const totalCost = runs.reduce((s, r) => s + Object.values(r.summary || {}).reduce((sv, v) => sv + (v.totalExecCostUSD || 0), 0), 0);
83
- const costLabel = lang === 'zh' ? `累计 ${fmtCost(totalCost)}` : `Total ${fmtCost(totalCost)}`;
200
+ // 列表累计:只 sum 那些"全 variant 都报告了 cost"的 run,跳过任一 variant not reported 的。
201
+ // 排除 not reported(而不是把整体压成「—」)是因为列表常含数十个 run 仅 1-2 个是 codex,
202
+ // 把全部 sum 抹成「—」会丢掉绝大多数有效成本信息。
203
+ const evaluationRuns = runs.filter(isEvaluationReport);
204
+ const reportableRuns = evaluationRuns.filter((r) => Object.values(r.summary || {}).every((v) => v.execCostReported !== false));
205
+ const unmeasuredRunsCount = evaluationRuns.length - reportableRuns.length;
206
+ const totalCost = reportableRuns.reduce((s, r) => s + Object.values(r.summary || {}).reduce((sv, v) => sv + (v.totalExecCostUSD || 0), 0), 0);
207
+ // partial:有 reported 就显示数字 + tooltip;全部 not reported 才显示「—」;
208
+ // 全 reported(unmeasuredRunsCount=0)走老格式不包 span,保持 HTML snapshot 向后兼容。
209
+ // X/N 限定信息只放 tooltip,不挂在显眼位置 — 累计行视觉应该是单纯的数字。
210
+ const allUnmeasured = reportableRuns.length === 0 && runs.length > 0;
211
+ const baseLabel = lang === 'zh' ? '累计' : 'Total';
212
+ const costNumber = fmtCost(totalCost, !allUnmeasured);
213
+ let costLabel;
214
+ if (unmeasuredRunsCount === 0) {
215
+ // 全 reported → 跟旧版字节级一致,不破 snapshot
216
+ costLabel = `${baseLabel} ${costNumber}`;
217
+ }
218
+ else {
219
+ const tip = lang === 'zh'
220
+ ? `${reportableRuns.length}/${evaluationRuns.length} 次单次报告了 USD 成本;${unmeasuredRunsCount} 次 executor 不报(如 codex CLI),batch index 不计入累计以避免重复`
221
+ : `${reportableRuns.length}/${evaluationRuns.length} evaluation reports reported USD cost; ${unmeasuredRunsCount} excluded (executor doesn't report, e.g. codex CLI); batch indexes are excluded to avoid double counting`;
222
+ costLabel = `<span title="${e(tip)}">${baseLabel} ${costNumber}</span>`;
223
+ }
84
224
  // Collect variants with ≥2 reports for trend links
85
225
  const variantCounts = {};
86
- for (const run of runs) {
226
+ for (const run of evaluationRuns) {
87
227
  for (const v of (run.meta?.variants || [])) {
88
228
  if (v === 'baseline')
89
229
  continue;
@@ -92,28 +232,13 @@ export function renderRunList(runs, lang = DEFAULT_LANG) {
92
232
  }
93
233
  const trendLinks = Object.entries(variantCounts)
94
234
  .filter(([, count]) => count >= 2)
95
- .map(([v]) => `<a href="/trends/${encodeURIComponent(v)}" style="display:inline-block;margin:4px 6px 4px 0;padding:3px 10px;font-size:12px;border:1px solid var(--border);border-radius:var(--radius);color:var(--accent);text-decoration:none">${e(v)} (${variantCounts[v]})</a>`)
235
+ .map(([v]) => `<a href="/trends/${encodeURIComponent(v)}${langQ}" style="display:inline-block;margin:4px 6px 4px 0;padding:3px 10px;font-size:12px;border:1px solid var(--border);border-radius:var(--radius);color:var(--accent);text-decoration:none">${e(v)} (${variantCounts[v]})</a>`)
96
236
  .join('');
97
237
  const trendsSection = trendLinks ? `<div style="margin:12px 0"><span style="font-size:12px;color:var(--text-muted);margin-right:8px">${lang === 'zh' ? '📈 趋势:' : '📈 Trends:'}</span>${trendLinks}</div>` : '';
98
- // v0.21 B.4 — verdict 图例条. 默认展示, × 关闭后 localStorage 记忆.
99
- // 按 verdict.ts 的 worst-case roll-up 顺序排列 (REGRESS / CAUTIOUS /
100
- // UNDERPOWERED / NOISE / PROGRESS), 让用户从最严重的状态开始扫.
101
- const legendLevels = ['PROGRESS', 'CAUTIOUS', 'NOISE', 'REGRESS', 'UNDERPOWERED', 'SOLO'];
102
- const legendItems = legendLevels.map((lvl) => `<span class="verdict-legend-item verdict-${lvl}" title="${e(levelTooltip(lvl, lang))}"><span class="verdict-legend-dot" aria-hidden="true">${levelDot(lvl)}</span>${e(levelLabel(lvl, lang))}</span>`).join('');
103
- const legendHtml = `<div id="verdict-legend" class="verdict-legend" role="region" aria-label="${e(t('verdictLegendLabel', lang))}">
104
- <span class="verdict-legend-prefix">${e(t('verdictLegendLabel', lang))}</span>
105
- ${legendItems}
106
- <button class="verdict-legend-close" onclick="dismissVerdictLegend()" aria-label="${e(t('verdictLegendClose', lang))}">×</button>
107
- </div>
108
- <script>
109
- (function(){var el=document.getElementById('verdict-legend');if(el&&localStorage.getItem('omk-verdict-legend-dismissed')==='1')el.hidden=true;})();
110
- window.dismissVerdictLegend=function(){var el=document.getElementById('verdict-legend');if(el)el.hidden=true;try{localStorage.setItem('omk-verdict-legend-dismissed','1');}catch(e){}};
111
- </script>`;
112
238
  return layout(t('title', lang), `
113
239
  <main>
114
240
  <h1>${t('title', lang)}</h1>
115
241
  <p class="subtitle" data-i18n="subtitle">${t('subtitle', lang)} &middot; ${runCount} &middot; ${costLabel}</p>
116
- ${legendHtml}
117
242
  ${trendsSection}
118
243
  <div style="margin:12px 0">${skillHealthLink}</div>
119
244
  <div style="margin:12px 0;display:flex;gap:8px;align-items:center">
@@ -164,10 +289,11 @@ export function renderRunList(runs, lang = DEFAULT_LANG) {
164
289
  `, lang);
165
290
  }
166
291
  export function renderRunDetail(report, lang = DEFAULT_LANG) {
292
+ const langQ = lang === DEFAULT_LANG ? '' : `?lang=${lang}`;
167
293
  if (!report) {
168
294
  return layout(t('title', lang), `
169
295
  <main>
170
- <nav class="nav"><a href="/">${t('backToList', lang)}</a></nav>
296
+ <nav class="nav"><a href="/${langQ}">${t('backToList', lang)}</a></nav>
171
297
  <h1>Run not found</h1>
172
298
  </main>
173
299
  `, lang);
@@ -183,6 +309,10 @@ export function renderRunDetail(report, lang = DEFAULT_LANG) {
183
309
  const verdictPill = renderVerdictPill(report, lang);
184
310
  const sampleTable = renderSampleTable(variants, results, lang);
185
311
  const totalExecCost = Object.values(summary).reduce((s, v) => s + (v.totalExecCostUSD || 0), 0);
312
+ // 任一 variant exec cost 未报告 → 总 cost 不可靠,renderer 显示「—」+ tooltip。
313
+ // 全部 reported(undefined / true)才正常显示 USD 数字。
314
+ const execCostReported = Object.values(summary).every((v) => v.execCostReported !== false);
315
+ const totalCostReported = m.totalCostReported !== false && Object.values(summary).every((v) => v.execCostReported !== false && v.judgeCostReported !== false);
186
316
  const totalDurationMs = Object.values(summary).reduce((s, v) => s + (v.avgDurationMs || 0) * (v.successCount || 0), 0);
187
317
  const sourceLabels = {
188
318
  zh: { 'variant-name': '本地文件', 'file-path': '本地文件', git: 'Git 版本', inline: '内联', baseline: '无', custom: '自定义' },
@@ -196,6 +326,10 @@ export function renderRunDetail(report, lang = DEFAULT_LANG) {
196
326
  zh: { baseline: '无注入', 'system-prompt': '系统提示词', 'user-prompt': '用户提示词', 'agent-session': 'Agent 会话', 'workflow-session': '工作流会话' },
197
327
  en: { baseline: 'None', 'system-prompt': 'System prompt', 'user-prompt': 'User prompt', 'agent-session': 'Agent session', 'workflow-session': 'Workflow session' },
198
328
  };
329
+ const artifactKindLabels = {
330
+ zh: { baseline: '基线', skill: 'Skill', prompt: 'Prompt', agent: 'Agent', workflow: 'Workflow' },
331
+ en: { baseline: 'Baseline', skill: 'Skill', prompt: 'Prompt', agent: 'Agent', workflow: 'Workflow' },
332
+ };
199
333
  const variantConfigRows = (m.variantConfigs || []).map((config, i) => {
200
334
  const expTypeRaw = config.experimentType || '-';
201
335
  const expType = (typeLabels[lang] || typeLabels.en)[String(expTypeRaw)] || expTypeRaw;
@@ -211,7 +345,7 @@ export function renderRunDetail(report, lang = DEFAULT_LANG) {
211
345
  return `<tr>
212
346
  <td style="border-left:3px solid ${color};padding-left:12px"><strong>${e(config.variant)}</strong></td>
213
347
  <td>${e(expType)}</td>
214
- <td>${e(config.artifactKind)}</td>
348
+ <td>${e((artifactKindLabels[lang] || artifactKindLabels.en)[config.artifactKind] || config.artifactKind)}</td>
215
349
  <td>${e(source)}</td>
216
350
  <td>${e(strategy)}</td>
217
351
  <td title="${e(cwdRaw)}">${e(runtimeContext)}</td>
@@ -223,7 +357,7 @@ export function renderRunDetail(report, lang = DEFAULT_LANG) {
223
357
  : '';
224
358
  const experimentSummary = lang === 'zh'
225
359
  ? `${m.sampleCount} 个测评用例 × ${variants.length} 组实验${repeatSuffix}`
226
- : `${m.sampleCount} samples × ${variants.length} variants${repeatSuffix}`;
360
+ : `${pluralizeEn(m.sampleCount, 'sample')} × ${pluralizeEn(variants.length, 'variant')}${repeatSuffix}`;
227
361
  const variantConfigSection = variantConfigRows ? `
228
362
  <section style="margin:20px 0">
229
363
  <h2 style="display:flex;align-items:center;gap:4px">${t('variantConfig', lang)} <button type="button" class="hint-btn" onclick="openModal('${configModalId}')" aria-label="${e(t('variantConfigDesc', lang))}" aria-haspopup="dialog">?</button></h2>
@@ -271,7 +405,7 @@ export function renderRunDetail(report, lang = DEFAULT_LANG) {
271
405
  ` : '';
272
406
  return layout(`${report.id}`, `
273
407
  <main>
274
- <nav class="nav"><a href="/" data-i18n="backToList">${t('backToList', lang)}</a></nav>
408
+ <nav class="nav"><a href="/${langQ}" data-i18n="backToList">${t('backToList', lang)}</a></nav>
275
409
  <h1>${e(report.id)}</h1>
276
410
  ${verdictPill}
277
411
  <div class="meta-tags">
@@ -281,13 +415,14 @@ export function renderRunDetail(report, lang = DEFAULT_LANG) {
281
415
  : `<span class="meta-tag">${t('judge', lang)}: ${e(m.judgeModel || 'none')}</span>`}
282
416
  ${m.judgeRepeat && m.judgeRepeat > 1 ? `<span class="meta-tag" title="${t('judgeStddevDesc', lang)}">${t('judgeRepeatLabel', lang)}: ${m.judgeRepeat}</span>` : ''}
283
417
  <span class="meta-tag">${t('executor', lang)}: ${e(m.executor || 'claude')}</span>
284
- <span class="meta-tag">${t('cost', lang)}: ${fmtCost(totalExecCost)}</span>
285
- <span class="meta-tag">${lang === 'zh' ? '耗时' : 'duration'}: ${fmtDuration(totalDurationMs)}</span>
286
- ${m.gitInfo ? `<span class="meta-tag">commit: ${e(m.gitInfo.commitShort)}${m.gitInfo.dirty ? '*' : ''} (${e(m.gitInfo.branch)})</span>` : ''}
287
- ${m.judgePromptHash ? `<span class="meta-tag" title="${t('judgePromptHashDesc', lang)}">${t('judgePromptHashLabel', lang)}: <code>${e(m.judgePromptHash)}</code></span>` : ''}
418
+ <span class="meta-tag"${execCostReported ? '' : ` title="${e(lang === 'zh' ? 'executor 不报 USD 成本(如 codex CLI),无法估算' : 'executor does not report USD cost (e.g. codex CLI); not measurable')}"`}>${t('cost', lang)}: ${fmtCost(totalExecCost, execCostReported)}</span>
419
+ <span class="meta-tag"${totalCostReported ? '' : ` title="${e(costCompletenessTooltip(lang))}"`}>${t('totalCost', lang)}: ${fmtKnownCost(m.totalCostUSD, totalCostReported)}</span>
420
+ <span class="meta-tag">${lang === 'zh' ? '耗时' : 'Duration'}: ${fmtDuration(totalDurationMs)}</span>
421
+ ${m.gitInfo ? `<span class="meta-tag">${lang === 'zh' ? '提交' : 'commit'}: ${e(m.gitInfo.commitShort)}${m.gitInfo.dirty ? '*' : ''} (${e(m.gitInfo.branch)})</span>` : ''}
422
+ ${m.judgePromptHash ? `<span class="meta-tag" title="${t('judgePromptHashDesc', lang)}">${t('judgePromptHashLabel', lang)}: <code>${e(m.judgePromptHash)}</code></span>` : ''}${renderExecutorRuntimeTags(m, lang)}${renderJudgeRuntimeTags(m, lang)}
288
423
  ${m.sampleHashes ? `<span class="meta-tag" style="color:var(--text-muted)" title="${t('sampleHashCountDesc', lang)}">${t('sampleHashCount', lang)}: ${Object.keys(m.sampleHashes).length}/${m.sampleCount}</span>` : ''}
289
424
  ${m.evaluationFramework ? `<span class="meta-tag" title="${t('evalFrameworkDesc', lang)}">${t('evalFrameworkLabel', lang)}: ${m.evaluationFramework === 'bootstrap' ? t('evalFrameworkBootstrap', lang) : m.evaluationFramework === 'both' ? t('evalFrameworkBoth', lang) : t('evalFrameworkTTest', lang)}</span>` : ''}
290
- ${m.debiasMode && m.debiasMode.length > 0 ? `<span class="meta-tag" style="color:var(--green)" title="${lang === 'zh' ? 'judge bias 校正模式 (Phase 3):length=substance-not-length 提示;position=ensemble 顺序随机化' : 'Judge bias debias modes (Phase 3): length = substance-not-length prompt; position = randomized ensemble order'}">${lang === 'zh' ? '校正' : 'debias'}: ${m.debiasMode.join(' · ')}</span>` : ''}
425
+ ${renderDebiasModeTag(m.debiasMode, lang)}
291
426
  ${m.blind ? `<span class="meta-tag" style="color:var(--green)" data-i18n="blindLabel">${t('blindLabel', lang)}</span>` : ''}
292
427
  </div>
293
428
  ${m.blind ? `
@@ -302,9 +437,9 @@ export function renderRunDetail(report, lang = DEFAULT_LANG) {
302
437
 
303
438
  <section>${cards}${pairwiseDiff}${humanAgreement}${saturationCurve}</section>
304
439
 
305
- ${renderVarianceComparisons(report.variance, lang, Boolean(report.meta.layeredStats))}
440
+ ${renderVarianceComparisons(report.variance, lang, Boolean(report.meta.layeredStats), summary)}
306
441
 
307
- ${renderAnalysis(report.analysis, lang)}
442
+ ${renderAnalysis(report, lang)}
308
443
 
309
444
  ${renderAgentOverview(variants, summary, lang)}
310
445
 
@@ -315,97 +450,86 @@ export function renderRunDetail(report, lang = DEFAULT_LANG) {
315
450
  </main>
316
451
  `, lang);
317
452
  }
318
- export function renderEachRunDetail(report, lang = DEFAULT_LANG) {
453
+ export function renderBatchEvaluationDetail(report, lang = DEFAULT_LANG) {
454
+ const langQ = lang === DEFAULT_LANG ? '' : `?lang=${lang}`;
319
455
  if (!report) {
320
456
  return layout(t('title', lang), `
321
457
  <main>
322
- <nav class="nav"><a href="/">${t('backToList', lang)}</a></nav>
458
+ <nav class="nav"><a href="/${langQ}">${t('backToList', lang)}</a></nav>
323
459
  <h1>Run not found</h1>
324
460
  </main>
325
461
  `, lang);
326
462
  }
327
463
  const m = report.meta;
328
- const overview = report.overview || null;
329
- const eachArtifacts = report.artifacts || [];
330
- // Overview table
331
- const overviewRows = (overview?.artifacts || []).map((sk) => {
332
- const bs = typeof sk.baselineScore === 'number' ? sk.baselineScore.toFixed(2) : '-';
333
- const ss = typeof sk.artifactScore === 'number' ? sk.artifactScore.toFixed(2) : '-';
334
- const imp = sk.improvement || '-';
335
- const impColor = imp.startsWith('+') ? 'var(--green)' : imp.startsWith('-') ? 'var(--red)' : 'var(--text-muted)';
336
- return `<tr>
337
- <td><a href="#skill-${e(sk.name)}">${e(sk.name)}</a></td>
338
- <td>${bs}</td>
339
- <td>${ss}</td>
340
- <td style="color:${impColor};font-weight:600">${imp}</td>
341
- </tr>`;
342
- }).join('');
343
- // Per-artifact detail sections
344
- const skillSections = eachArtifacts.map((sk) => {
345
- const variants = ['baseline', 'skill'];
346
- const summary = sk.summary || {};
347
- // 传 sk.variance 给 summaryCards, 稳定性 CV 列才有数据 (非 each 模式是传 report.variance)
348
- const cards = renderSummaryCards(variants, summary, lang, sk.variance);
349
- const sampleTable = renderSampleTable(variants, sk.results, lang);
350
- // --each --repeat N 时每个 skill 有自己的 variance; 复用 bench 的 renderVarianceComparisons
351
- const varianceBlock = sk.variance
352
- ? renderVarianceComparisons(sk.variance, lang, Boolean(report.meta.layeredStats))
353
- : '';
354
- const hashShort = sk.artifactHash ? e(sk.artifactHash).slice(0, 12) : '-';
355
- const hashBlock = sk.artifactHash
356
- ? `<span title="${t('artifactHashTooltip', lang)}"><span data-i18n="artifactHashLabel">${t('artifactHashLabel', lang)}</span>: <code style="font-family:ui-monospace,SFMono-Regular,Menlo,monospace">${hashShort}</code></span>`
357
- : '';
358
- return `
359
- <section id="skill-${e(sk.name)}" style="margin-top:36px;padding-top:20px;border-top:1px solid var(--border)">
360
- <h2>${e(sk.name)}</h2>
361
- <p style="font-size:12px;color:var(--text-muted)">${t('samples', lang)}: ${sk.sampleCount}${hashBlock ? ' &middot; ' + hashBlock : ''}</p>
362
- ${cards}
363
- ${varianceBlock}
364
- ${sampleTable}
365
- </section>
366
- `;
367
- }).join('');
368
- // 轮次信息放总览。统一用 · 分隔(each 下 skills×samples 不是严格乘法,避免 × 的误导)
464
+ const allCostReported = report.items.every((item) => Object.values(item.summary || {}).every((v) => v.execCostReported !== false && v.judgeCostReported !== false));
465
+ const totalCostReported = m.totalCostReported !== false && allCostReported;
369
466
  const repeatN = report.meta.request?.repeat;
370
467
  const repeatSegment = repeatN && repeatN > 1
371
468
  ? (lang === 'zh' ? ` · ${repeatN} 轮重复` : ` · ${repeatN} runs`)
372
469
  : '';
373
470
  const overviewSubtitle = lang === 'zh'
374
- ? `${overview?.totalArtifacts || 0} 个 Skill · ${overview?.totalSamples || 0} 个用例${repeatSegment} · ${fmtCost(overview?.totalCostUSD || 0)}`
375
- : `${overview?.totalArtifacts || 0} skills · ${overview?.totalSamples || 0} samples${repeatSegment} · ${fmtCost(overview?.totalCostUSD || 0)}`;
471
+ ? `${m.totalArtifacts || report.items.length} 个 Skill · ${m.sampleCount || 0} 个评测用例${repeatSegment} · ${fmtKnownCost(m.totalCostUSD || 0, totalCostReported)}`
472
+ : `${pluralizeEn(m.totalArtifacts || report.items.length, 'skill')} · ${pluralizeEn(m.sampleCount || 0, 'sample')}${repeatSegment} · ${fmtKnownCost(m.totalCostUSD || 0, totalCostReported)}`;
473
+ const rows = report.items.map((item) => {
474
+ const baselineScore = scoreOf(item.summary.baseline);
475
+ const skillScore = scoreOf(item.summary[item.name]);
476
+ const improvement = improvementOf(baselineScore, skillScore);
477
+ const impColor = improvement.startsWith('+') ? 'var(--green)' : improvement.startsWith('-') ? 'var(--red)' : 'var(--text-muted)';
478
+ const hashShort = item.artifactHash ? e(item.artifactHash).slice(0, 12) : '-';
479
+ return `<tr>
480
+ <td><a href="/reports/${encodeURIComponent(item.reportId)}${langQ}">${e(item.name)}</a></td>
481
+ <td>${typeof baselineScore === 'number' ? baselineScore.toFixed(2) : '-'}</td>
482
+ <td>${typeof skillScore === 'number' ? skillScore.toFixed(2) : '-'}</td>
483
+ <td style="color:${impColor};font-weight:600">${improvement}</td>
484
+ <td>${item.sampleCount}</td>
485
+ <td>${fmtCost(item.totalCostUSD, allCostReported)}</td>
486
+ <td><code style="font-family:ui-monospace,SFMono-Regular,Menlo,monospace">${hashShort}</code></td>
487
+ </tr>`;
488
+ }).join('');
376
489
  return layout(`${t('reportTitle', lang)} - ${report.id}`, `
377
490
  <main>
378
- <nav class="nav"><a href="/" data-i18n="backToList">${t('backToList', lang)}</a></nav>
491
+ <nav class="nav"><a href="/${langQ}" data-i18n="backToList">${t('backToList', lang)}</a></nav>
379
492
  <h1>${e(report.id)}</h1>
380
493
  <div class="meta-tags">
494
+ <span class="meta-tag">${lang === 'zh' ? '类型' : 'type'}: batch evaluation</span>
381
495
  <span class="meta-tag">${t('model', lang)}: ${e(m.model)}</span>
382
- <span class="meta-tag">${t('judge', lang)}: ${e(m.judgeModel || 'none')}</span>
496
+ ${m.judgeModels && m.judgeModels.length >= 2
497
+ ? `<span class="meta-tag" title="${t('ensembleDesc', lang)}">${t('judgeModelsLabel', lang)}: ${m.judgeModels.map((j) => e(j)).join(' · ')}</span>`
498
+ : `<span class="meta-tag">${t('judge', lang)}: ${e(m.judgeModel || 'none')}</span>`}
383
499
  <span class="meta-tag">${t('executor', lang)}: ${e(m.executor || 'claude')}</span>
384
- <span class="meta-tag">${t('cost', lang)}: ${fmtCost(m.totalCostUSD)}</span>
500
+ ${renderExecutorRuntimeTags(m, lang)}${renderJudgeRuntimeTags(m, lang)}
501
+ <span class="meta-tag"${totalCostReported ? '' : ` title="${e(costCompletenessTooltip(lang))}"`}>${t('totalCost', lang)}: ${fmtKnownCost(m.totalCostUSD, totalCostReported)}</span>
385
502
  </div>
386
503
 
387
504
  <section>
388
- <h2>${t('eachOverview', lang)}</h2>
389
-
505
+ <h2>${t('batchOverview', lang)}</h2>
390
506
  <p style="font-size:13px;color:var(--text-muted)">${overviewSubtitle}</p>
391
507
  <div class="table-wrap">
392
508
  <table>
393
509
  <thead><tr>
394
- <th>${t('eachSkill', lang)}</th>
395
- <th>${t('eachBaseline', lang)}</th>
396
- <th>${t('eachWithSkill', lang)}</th>
397
- <th>${t('eachImprovement', lang)}</th>
510
+ <th>${t('batchSkill', lang)}</th>
511
+ <th>${t('batchBaseline', lang)}</th>
512
+ <th>${t('batchWithSkill', lang)}</th>
513
+ <th>${t('batchImprovement', lang)}</th>
514
+ <th>${t('samples', lang)}</th>
515
+ <th>${t('cost', lang)}</th>
516
+ <th>${t('artifactHashLabel', lang)}</th>
398
517
  </tr></thead>
399
- <tbody>${overviewRows}</tbody>
518
+ <tbody>${rows}</tbody>
400
519
  </table>
401
520
  </div>
402
521
  </section>
403
522
 
404
- ${skillSections}
405
-
406
523
  </main>
407
524
  `, lang);
408
525
  }
526
+ export function renderReportDocumentDetail(report, lang = DEFAULT_LANG) {
527
+ if (!report)
528
+ return renderRunDetail(null, lang);
529
+ return report.kind === 'batch-evaluation'
530
+ ? renderBatchEvaluationDetail(report, lang)
531
+ : renderRunDetail(report, lang);
532
+ }
409
533
  export function renderTrendsPage(variantName, runs, lang = DEFAULT_LANG) {
410
534
  const body = renderTrendsBody(variantName, runs, lang);
411
535
  return layout(`${variantName} — ${lang === 'zh' ? '趋势' : 'Trends'}`, `<main>${body}</main>`, lang);
@@ -1 +1 @@
1
- {"version":3,"file":"html-renderer.js","sourceRoot":"","sources":["../../../src/renderer/html-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"html-renderer.js","sourceRoot":"","sources":["../../../src/renderer/html-renderer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import type { Lang } from '../types/index.js';
2
2
  export declare function e(text: unknown): string;
3
3
  export declare function fmtNum(n: number | undefined | null, digits?: number): string;
4
4
  export declare function fmtDuration(ms: number | undefined | null): string;
5
- export declare function fmtCost(usd: number | undefined | null): string;
5
+ export declare function fmtCost(usd: number | undefined | null, reported?: boolean): string;
6
+ export declare function fmtKnownCost(usd: number | undefined | null, fullyReported?: boolean): string;
6
7
  export declare function fmtLocalTime(isoStr: string): string;
7
8
  export declare function delta(a: number | undefined | null, b: number | undefined | null, lowerIsBetter?: boolean): string;
8
9
  export declare const COLORS: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/renderer/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,wBAAgB,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAOvC;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAE/E;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAOjE;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAE9D;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,aAAa,GAAE,OAAe,GAAG,MAAM,CAOxH;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,EAAiH,CAAC;AAE7I,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuOrD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAAW,CAAC;AAEvC,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,IAAmB,GAAG,MAAM,CAEhE;AA6ED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAmB,GAAG,MAAM,CAiWrF"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../src/renderer/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,wBAAgB,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAOvC;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAE/E;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAOjE;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,QAAQ,GAAE,OAAc,GAAG,MAAM,CAMxF;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,aAAa,GAAE,OAAc,GAAG,MAAM,CAIlG;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,KAAK,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,EAAE,aAAa,GAAE,OAAe,GAAG,MAAM,CAOxH;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,EAAiH,CAAC;AAE7I,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiOrD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAAW,CAAC;AAEvC,wBAAgB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,IAAmB,GAAG,MAAM,CAEhE;AA6ED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,IAAmB,GAAG,MAAM,CAgVrF"}