niceeval 0.5.4 → 0.6.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 (342) hide show
  1. package/INDEX.md +55 -0
  2. package/dist/agents/types.d.ts +317 -0
  3. package/dist/context/types.d.ts +335 -0
  4. package/dist/i18n/core.d.ts +11 -0
  5. package/dist/i18n/en.d.ts +181 -0
  6. package/dist/i18n/index.d.ts +5 -0
  7. package/dist/i18n/zh-CN.d.ts +183 -0
  8. package/dist/o11y/execution-tree.d.ts +103 -0
  9. package/dist/o11y/otlp/parse.d.ts +3 -0
  10. package/dist/o11y/otlp/receiver.d.ts +21 -0
  11. package/dist/o11y/otlp/select.d.ts +22 -0
  12. package/dist/o11y/otlp/turn-otel.d.ts +43 -0
  13. package/dist/o11y/types.d.ts +190 -0
  14. package/dist/report/aggregate.d.ts +57 -0
  15. package/dist/report/aggregate.js +212 -0
  16. package/dist/report/built-ins/cost-pass-rate-comparison.d.ts +1 -0
  17. package/dist/report/built-ins/cost-pass-rate-comparison.js +17 -0
  18. package/dist/report/built-ins/index.d.ts +1 -0
  19. package/dist/report/built-ins/index.js +2 -0
  20. package/dist/report/components.d.ts +178 -0
  21. package/dist/report/components.js +132 -0
  22. package/dist/report/compute.d.ts +106 -0
  23. package/dist/report/compute.js +618 -0
  24. package/dist/report/flag.d.ts +6 -0
  25. package/dist/report/flag.js +8 -0
  26. package/dist/report/format.d.ts +32 -0
  27. package/dist/report/format.js +126 -0
  28. package/dist/report/index.d.ts +19 -0
  29. package/dist/report/index.js +30 -0
  30. package/dist/report/load.d.ts +12 -0
  31. package/dist/report/load.js +56 -0
  32. package/dist/report/locale.d.ts +83 -0
  33. package/dist/report/locale.js +160 -0
  34. package/dist/report/metrics.d.ts +21 -0
  35. package/dist/report/metrics.js +115 -0
  36. package/dist/report/primitives.d.ts +64 -0
  37. package/dist/report/primitives.js +113 -0
  38. package/dist/report/react/AttemptList.d.ts +23 -0
  39. package/dist/report/react/AttemptList.js +20 -0
  40. package/dist/report/react/DeltaTable.d.ts +8 -0
  41. package/dist/report/react/DeltaTable.js +24 -0
  42. package/dist/report/react/EvalList.d.ts +10 -0
  43. package/dist/report/react/EvalList.js +0 -0
  44. package/dist/report/react/ExperimentList.d.ts +10 -0
  45. package/dist/report/react/ExperimentList.js +15 -0
  46. package/dist/report/react/GroupSummary.d.ts +8 -0
  47. package/dist/report/react/GroupSummary.js +8 -0
  48. package/dist/report/react/MetricBars.d.ts +10 -0
  49. package/dist/report/react/MetricBars.js +48 -0
  50. package/dist/report/react/MetricLine.d.ts +9 -0
  51. package/dist/report/react/MetricLine.js +68 -0
  52. package/dist/report/react/MetricMatrix.d.ts +10 -0
  53. package/dist/report/react/MetricMatrix.js +23 -0
  54. package/dist/report/react/MetricScatter.d.ts +9 -0
  55. package/dist/report/react/MetricScatter.js +100 -0
  56. package/dist/report/react/MetricTable.d.ts +11 -0
  57. package/dist/report/react/MetricTable.js +26 -0
  58. package/dist/report/react/RunOverview.d.ts +8 -0
  59. package/dist/report/react/RunOverview.js +12 -0
  60. package/dist/report/react/Scoreboard.d.ts +8 -0
  61. package/dist/report/react/Scoreboard.js +26 -0
  62. package/dist/report/react/cell.d.ts +9 -0
  63. package/dist/report/react/cell.js +9 -0
  64. package/dist/report/react/chart-math.d.ts +14 -0
  65. package/dist/report/react/chart-math.js +68 -0
  66. package/dist/report/react/colors.d.ts +14 -0
  67. package/dist/report/react/colors.js +45 -0
  68. package/dist/report/react/fixtures.d.ts +19 -0
  69. package/dist/report/react/fixtures.js +393 -0
  70. package/dist/report/react/format.d.ts +3 -0
  71. package/dist/report/react/format.js +7 -0
  72. package/dist/report/react/index.d.ts +6 -0
  73. package/dist/report/react/index.js +14 -0
  74. package/dist/report/report.d.ts +24 -0
  75. package/dist/report/report.js +49 -0
  76. package/dist/report/text/faces.d.ts +29 -0
  77. package/dist/report/text/faces.js +503 -0
  78. package/dist/report/text/layout.d.ts +75 -0
  79. package/dist/report/text/layout.js +173 -0
  80. package/dist/report/text/plot.d.ts +37 -0
  81. package/dist/report/text/plot.js +81 -0
  82. package/dist/report/text/table.d.ts +8 -0
  83. package/dist/report/text/table.js +86 -0
  84. package/dist/report/tree.d.ts +99 -0
  85. package/dist/report/tree.js +228 -0
  86. package/dist/report/types.d.ts +420 -0
  87. package/dist/report/types.js +4 -0
  88. package/dist/report/web.d.ts +15 -0
  89. package/dist/report/web.js +37 -0
  90. package/dist/results/annotated-source.d.ts +61 -0
  91. package/dist/results/attempt-evidence.d.ts +69 -0
  92. package/dist/results/attempt-source.d.ts +15 -0
  93. package/dist/results/locator.d.ts +75 -0
  94. package/dist/results/locator.js +0 -0
  95. package/dist/results/select.d.ts +45 -0
  96. package/dist/results/select.js +230 -0
  97. package/dist/results/source-hash.d.ts +9 -0
  98. package/dist/results/types.d.ts +204 -0
  99. package/dist/runner/eval-source.d.ts +22 -0
  100. package/dist/runner/fingerprint.d.ts +23 -0
  101. package/dist/runner/types.d.ts +332 -0
  102. package/dist/sandbox/docker-stream.d.ts +24 -0
  103. package/dist/sandbox/docker.d.ts +84 -0
  104. package/dist/sandbox/e2b.d.ts +31 -0
  105. package/dist/sandbox/errors.d.ts +4 -0
  106. package/dist/sandbox/local-files.d.ts +6 -0
  107. package/dist/sandbox/paths.d.ts +4 -0
  108. package/dist/sandbox/registry.d.ts +13 -0
  109. package/dist/sandbox/resolve.d.ts +40 -0
  110. package/dist/sandbox/retry.d.ts +10 -0
  111. package/dist/sandbox/shell.d.ts +11 -0
  112. package/dist/sandbox/source-files.d.ts +13 -0
  113. package/dist/sandbox/types.d.ts +203 -0
  114. package/dist/sandbox/vercel.d.ts +37 -0
  115. package/dist/scoring/types.d.ts +70 -0
  116. package/dist/shared/aggregate.d.ts +29 -0
  117. package/dist/shared/aggregate.js +55 -0
  118. package/dist/shared/types.d.ts +27 -0
  119. package/dist/shared/verdict.d.ts +27 -0
  120. package/dist/shared/verdict.js +34 -0
  121. package/dist/tty-line.d.ts +6 -0
  122. package/dist/types.d.ts +7 -0
  123. package/dist/util.d.ts +22 -0
  124. package/docs-site/zh/concepts/adapter.mdx +5 -5
  125. package/docs-site/zh/concepts/assert.mdx +8 -8
  126. package/docs-site/zh/concepts/evals.mdx +5 -5
  127. package/docs-site/zh/concepts/experiment.mdx +2 -2
  128. package/docs-site/zh/concepts/judge.mdx +9 -9
  129. package/docs-site/zh/concepts/overview.mdx +2 -2
  130. package/docs-site/zh/concepts/tier.mdx +6 -6
  131. package/docs-site/zh/example/claude-code-codex-plugin.mdx +9 -5
  132. package/docs-site/zh/example/claude-code-codex-skill.mdx +12 -7
  133. package/docs-site/zh/guides/agent-feedback-loop.mdx +235 -78
  134. package/docs-site/zh/guides/connect-otel.mdx +3 -3
  135. package/docs-site/zh/guides/connect-your-agent.mdx +2 -2
  136. package/docs-site/zh/guides/custom-reports.mdx +196 -36
  137. package/docs-site/zh/guides/experiments.mdx +7 -1
  138. package/docs-site/zh/guides/fixtures.mdx +1 -1
  139. package/docs-site/zh/guides/official-adapters.mdx +31 -9
  140. package/docs-site/zh/guides/publish-report.mdx +3 -3
  141. package/docs-site/zh/guides/report-components.mdx +194 -55
  142. package/docs-site/zh/guides/reporters.mdx +2 -2
  143. package/docs-site/zh/guides/results-data.mdx +35 -34
  144. package/docs-site/zh/guides/runner.mdx +2 -2
  145. package/docs-site/zh/guides/sandbox-agent.mdx +2 -2
  146. package/docs-site/zh/guides/{sandbox-backends.mdx → sandbox-providers.mdx} +11 -11
  147. package/docs-site/zh/guides/viewing-results.mdx +199 -79
  148. package/docs-site/zh/guides/write-experiment.mdx +9 -1
  149. package/docs-site/zh/guides/write-send.mdx +2 -2
  150. package/docs-site/zh/index.mdx +4 -3
  151. package/docs-site/zh/introduction.mdx +2 -1
  152. package/docs-site/zh/quickstart.mdx +5 -3
  153. package/docs-site/zh/reference/builtin-agents.mdx +38 -13
  154. package/docs-site/zh/reference/capabilities.mdx +1 -1
  155. package/docs-site/zh/reference/cli.mdx +36 -13
  156. package/docs-site/zh/reference/define-agent.mdx +12 -12
  157. package/docs-site/zh/reference/define-config.mdx +1 -1
  158. package/docs-site/zh/reference/define-eval.mdx +3 -3
  159. package/docs-site/zh/reference/events.mdx +7 -1
  160. package/docs-site/zh/reference/expect.mdx +3 -3
  161. package/package.json +10 -6
  162. package/src/agents/bub.ts +129 -42
  163. package/src/agents/claude-code.test.ts +152 -0
  164. package/src/agents/claude-code.ts +127 -13
  165. package/src/agents/codex.test.ts +192 -0
  166. package/src/agents/codex.ts +151 -12
  167. package/src/agents/index.ts +9 -3
  168. package/src/agents/manifest.ts +41 -0
  169. package/src/agents/plugin-config.test.ts +94 -0
  170. package/src/agents/shared.ts +33 -2
  171. package/src/agents/skills.test.ts +214 -0
  172. package/src/agents/skills.ts +304 -0
  173. package/src/agents/streaming.ts +5 -5
  174. package/src/agents/types.ts +54 -2
  175. package/src/cli.ts +74 -47
  176. package/src/context/context.test.ts +20 -2
  177. package/src/context/control-flow.ts +1 -1
  178. package/src/context/session.test.ts +92 -1
  179. package/src/context/session.ts +23 -1
  180. package/src/context/types.ts +4 -4
  181. package/src/define.test.ts +8 -8
  182. package/src/define.ts +11 -11
  183. package/src/expect/index.ts +5 -5
  184. package/src/i18n/en.ts +34 -15
  185. package/src/i18n/zh-CN.ts +37 -21
  186. package/src/index.ts +1 -1
  187. package/src/o11y/execution-tree.test.ts +452 -0
  188. package/src/o11y/execution-tree.ts +367 -0
  189. package/src/o11y/otlp/receiver.ts +1 -1
  190. package/src/o11y/otlp/select.ts +7 -3
  191. package/src/o11y/parsers/claude-code.test.ts +175 -0
  192. package/src/o11y/parsers/claude-code.ts +32 -0
  193. package/src/o11y/types.ts +6 -1
  194. package/src/report/aggregate.ts +26 -20
  195. package/src/report/built-in-user-parity.test.tsx +643 -0
  196. package/src/report/built-ins/cost-pass-rate-comparison.tsx +23 -0
  197. package/src/report/built-ins/index.ts +2 -0
  198. package/src/report/components.tsx +223 -50
  199. package/src/report/compute.ts +358 -53
  200. package/src/report/dual-render.test.tsx +1125 -0
  201. package/src/report/flag.ts +1 -1
  202. package/src/report/format.ts +50 -2
  203. package/src/report/index.ts +48 -14
  204. package/src/report/load.ts +1 -1
  205. package/src/report/locale.ts +206 -0
  206. package/src/report/metrics.ts +39 -15
  207. package/src/report/primitives.tsx +100 -2
  208. package/src/report/react/AttemptList.tsx +115 -0
  209. package/src/report/react/DeltaTable.tsx +9 -6
  210. package/src/report/react/EvalList.tsx +0 -0
  211. package/src/report/react/ExperimentList.tsx +108 -0
  212. package/src/report/react/GroupSummary.tsx +66 -0
  213. package/src/report/react/MetricBars.tsx +24 -13
  214. package/src/report/react/MetricLine.tsx +21 -21
  215. package/src/report/react/MetricMatrix.tsx +8 -4
  216. package/src/report/react/MetricScatter.tsx +136 -96
  217. package/src/report/react/MetricTable.tsx +115 -15
  218. package/src/report/react/RunOverview.tsx +48 -26
  219. package/src/report/react/Scoreboard.tsx +15 -7
  220. package/src/report/react/cell.tsx +18 -9
  221. package/src/{view/app/lib/chart.ts → report/react/chart-math.ts} +2 -6
  222. package/src/report/react/colors.ts +24 -15
  223. package/src/report/react/enhance.js +129 -0
  224. package/src/report/react/fixtures.ts +163 -34
  225. package/src/report/react/format.ts +1 -1
  226. package/src/report/react/index.tsx +22 -6
  227. package/src/report/react/render.test.tsx +164 -31
  228. package/src/report/react/styles.css +405 -213
  229. package/src/report/report.test.ts +403 -94
  230. package/src/report/report.ts +29 -11
  231. package/src/report/text/faces.ts +303 -95
  232. package/src/report/text/layout.ts +76 -11
  233. package/src/report/text/table.ts +98 -0
  234. package/src/report/tree.ts +103 -20
  235. package/src/report/types.ts +196 -25
  236. package/src/report/web.ts +46 -19
  237. package/src/results/annotated-source.test.ts +146 -0
  238. package/src/results/annotated-source.ts +128 -0
  239. package/src/results/attempt-evidence.test.ts +158 -0
  240. package/src/results/attempt-evidence.ts +158 -0
  241. package/src/results/attempt-source.ts +48 -0
  242. package/src/results/copy.ts +154 -139
  243. package/src/results/format.ts +54 -47
  244. package/src/results/host-equivalence.test.ts +527 -0
  245. package/src/results/index.ts +56 -14
  246. package/src/results/locator.test.ts +198 -0
  247. package/src/results/locator.ts +0 -0
  248. package/src/results/open.ts +392 -175
  249. package/src/results/results.test.ts +943 -494
  250. package/src/results/select.ts +129 -23
  251. package/src/results/skipped-notice.ts +0 -0
  252. package/src/results/source-hash.ts +28 -0
  253. package/src/results/types.ts +98 -62
  254. package/src/results/writer.ts +304 -176
  255. package/src/runner/attempt.test.ts +170 -0
  256. package/src/runner/attempt.ts +48 -13
  257. package/src/runner/discover.test.ts +65 -0
  258. package/src/runner/discover.ts +6 -2
  259. package/src/runner/eval-source.test.ts +121 -0
  260. package/src/runner/eval-source.ts +45 -0
  261. package/src/runner/fingerprint.ts +54 -1
  262. package/src/runner/remote-sandbox.ts +1 -1
  263. package/src/runner/report.test.ts +6 -8
  264. package/src/runner/report.ts +5 -4
  265. package/src/runner/reporters/artifacts.ts +27 -41
  266. package/src/runner/reporters/braintrust.test.ts +3 -3
  267. package/src/runner/reporters/braintrust.ts +1 -1
  268. package/src/runner/reporters/console.ts +6 -6
  269. package/src/runner/reporters/json.ts +4 -4
  270. package/src/runner/reporters/live.test.ts +56 -0
  271. package/src/runner/reporters/live.ts +36 -10
  272. package/src/runner/reporters/quiet.test.ts +66 -0
  273. package/src/runner/reporters/quiet.ts +49 -0
  274. package/src/runner/reporters/shared.ts +5 -5
  275. package/src/runner/reporters/table.ts +17 -17
  276. package/src/runner/run.ts +61 -102
  277. package/src/runner/types.ts +43 -32
  278. package/src/sandbox/checkpoint.ts +1 -1
  279. package/src/sandbox/docker.ts +15 -2
  280. package/src/sandbox/e2b.ts +11 -5
  281. package/src/sandbox/errors.ts +13 -0
  282. package/src/sandbox/index.ts +3 -3
  283. package/src/sandbox/local-files.ts +1 -1
  284. package/src/sandbox/registry.ts +6 -5
  285. package/src/sandbox/resolve.ts +38 -23
  286. package/src/sandbox/retry.test.ts +68 -0
  287. package/src/sandbox/retry.ts +44 -0
  288. package/src/sandbox/types.ts +24 -24
  289. package/src/sandbox/vercel.ts +17 -3
  290. package/src/scoring/collector.ts +3 -3
  291. package/src/scoring/judge.ts +2 -2
  292. package/src/scoring/scoped.ts +13 -1
  293. package/src/scoring/types.ts +7 -7
  294. package/src/scoring/verdict.ts +4 -4
  295. package/src/shared/aggregate.ts +23 -3
  296. package/src/shared/types.ts +2 -2
  297. package/src/shared/{outcome.ts → verdict.ts} +15 -15
  298. package/src/show/compose.ts +12 -132
  299. package/src/show/index.ts +125 -94
  300. package/src/show/render.ts +660 -160
  301. package/src/show/show.test.ts +472 -253
  302. package/src/source-loc.ts +1 -1
  303. package/src/tty-line.ts +32 -0
  304. package/src/types.ts +2 -2
  305. package/src/util.test.ts +21 -1
  306. package/src/util.ts +5 -1
  307. package/src/view/app/App.tsx +33 -198
  308. package/src/view/app/components/AttemptModal.tsx +6 -6
  309. package/src/view/app/components/CodeView.tsx +2 -2
  310. package/src/view/app/components/CopyControls.tsx +32 -36
  311. package/src/view/app/components/SkippedRunsBanner.tsx +140 -0
  312. package/src/view/app/components/ui/badge.tsx +1 -1
  313. package/src/view/app/components/ui/dialog.tsx +2 -2
  314. package/src/view/app/i18n.ts +40 -31
  315. package/src/view/app/lib/artifact-url.ts +1 -1
  316. package/src/view/app/lib/attempt-route.test.ts +37 -47
  317. package/src/view/app/lib/attempt-route.ts +26 -26
  318. package/src/view/app/lib/rows.ts +9 -112
  319. package/src/view/app/lib/verdict.ts +25 -0
  320. package/src/view/app/main.tsx +9 -12
  321. package/src/view/app/pages/RunsPage.tsx +4 -4
  322. package/src/view/app/pages/TracesPage.tsx +3 -3
  323. package/src/view/app/shared.ts +0 -1
  324. package/src/view/app/types.ts +6 -51
  325. package/src/view/artifact-serving.test.ts +136 -0
  326. package/src/view/client-dist/app.css +1 -1
  327. package/src/view/client-dist/app.js +21 -21
  328. package/src/view/data.test.ts +214 -143
  329. package/src/view/data.ts +166 -120
  330. package/src/view/index.ts +23 -11
  331. package/src/view/server.ts +52 -17
  332. package/src/view/shared/types.ts +22 -31
  333. package/src/view/styles.css +117 -327
  334. package/src/view/view-report.test.ts +146 -98
  335. package/src/report/default-report.tsx +0 -222
  336. package/src/report/dual-face.test.tsx +0 -527
  337. package/src/report/react/CaseList.tsx +0 -70
  338. package/src/view/app/components/CostScoreChart.tsx +0 -147
  339. package/src/view/app/components/ExperimentTable.tsx +0 -284
  340. package/src/view/app/components/GroupSelector.tsx +0 -61
  341. package/src/view/app/components/primitives.tsx +0 -43
  342. package/src/view/app/lib/outcome.ts +0 -82
@@ -98,12 +98,19 @@ mcpServers?: McpServer[];
98
98
  #### `skills`
99
99
 
100
100
  ```ts
101
- skills?: string[];
101
+ skills?: SkillSpec[];
102
102
  ```
103
103
 
104
- 额外安装的 skill,格式为 GitHub `"org/repo"`(如 `"Effect-TS/skills"`)。
105
- setup 阶段在沙箱里执行 `npx skills add <org/repo>`;
106
- 结果写进沙箱工作区的 skills-lock.json,claude CLI 启动时自动读取。
104
+ 装进沙箱的 Skill(本地目录/文件,或 repo + 可钉 ref + 可选启用集)。
105
+ 落在 project `.claude/skills/<name>/`,claude CLI 原生发现。
106
+
107
+ #### `plugins`
108
+
109
+ ```ts
110
+ plugins?: ClaudeCodePluginSpec[];
111
+ ```
112
+
113
+ Claude Code 原生 Plugin(先连 Marketplace,再从中装指定 Plugin)。
107
114
 
108
115
  ### `CodexConfig`
109
116
 
@@ -130,16 +137,25 @@ mcpServers?: McpServer[];
130
137
  ```
131
138
 
132
139
  额外 MCP server(每个沙箱 setup 时追加进 ~/.codex/config.toml)。
133
- 格式对应 codex config.toml 的 [mcp_server.&lt;name&gt;] 表。
140
+ 格式对应 codex config.toml 的 [mcp_servers.&lt;name&gt;] 表。
134
141
 
135
142
  #### `skills`
136
143
 
137
144
  ```ts
138
- skills?: string[];
145
+ skills?: SkillSpec[];
146
+ ```
147
+
148
+ 装进沙箱的 Skill(本地目录/文件,或 repo + 可钉 ref + 可选启用集)。
149
+ 落在 `.agents/skills/<name>/`,并写一段发现指引进 AGENTS.md —— codex 没有 Claude Code 那种
150
+ 原生 Skill 工具,只把文件装进去它不会自己去读(见 memory/codex-no-native-skill-tool.md)。
151
+
152
+ #### `plugins`
153
+
154
+ ```ts
155
+ plugins?: CodexPluginSpec[];
139
156
  ```
140
157
 
141
- 额外安装的 skill,格式为 GitHub `"org/repo"`(如 `"Effect-TS/skills"`)。
142
- setup 阶段执行 `npx skills add <org/repo>`,结果写进 skills-lock.json。
158
+ Codex 原生 Plugin(先连 Marketplace,再从中装指定 Plugin)。
143
159
 
144
160
  ### `BubConfig`
145
161
 
@@ -159,15 +175,24 @@ apiBase?: string;
159
175
 
160
176
  OpenAI 兼容代理的 base URL。省略时读 BUB_API_BASE env。
161
177
 
178
+ #### `skills`
179
+
180
+ ```ts
181
+ skills?: SkillSpec[];
182
+ ```
183
+
184
+ 装进沙箱的 Skill(本地目录/文件,或 repo + 可钉 ref + 可选启用集)。
185
+ 落在 `.agents/skills/<name>/`,并写一段发现指引进 AGENTS.md(bub 没有原生 Skill 加载机制)。
186
+
162
187
  #### `pythonPlugins`
163
188
 
164
189
  ```ts
165
- pythonPlugins?: string[];
190
+ pythonPlugins?: PythonPluginSpec[];
166
191
  ```
167
192
 
168
- 额外装进 bub tool 环境的 Python 包(pip 名或 git URL)。
169
- 每个沙箱 setup 时作为 `uv tool install --with <pkg>` 追加到 bub 环境里。
170
- 示例:["bub-plugin-memory", "git+`https://github.com/..."`]
193
+ 额外装进 bub tool 环境的 Python Package,每个沙箱 setup 时进 `uv tool install … --with <pkg>`。
194
+ 规范化后的 package 列表进安装 checkpoint key:plugin 集合不同的两个 agent 变体不会复用同一个
195
+ 安装 checkpoint(否则第二个变体会静默拿到第一个变体的环境)。
171
196
 
172
197
  {/* GENERATED:END builtin-agent-config */}
173
198
 
@@ -189,7 +214,7 @@ export default uiMessageStreamAgent({
189
214
 
190
215
  - **收发 + 事件流**:SSE 帧经 `ai` 包官方的框架无关 reducer `readUIMessageStream`(`useChat` 内部同款)归约,工具调用/结果/消息文本从消息 parts 直构——**不要求应用接 OTel**。
191
216
  - **会话续接**:协议是服务端零状态、「客户端带全量历史」——工厂用 `ctx.session.history()` 存整份 `UIMessage[]`,每轮原样重放;新会话线(`t.newSession()` 之后)拿到的是空历史。
192
- - **HITL**:AI SDK v7 tool approval(工具带 `needsApproval: true`)原生映射——part 停在 `approval-requested` 时整轮 `status: "waiting"` + `input.requested`;`t.respond("approve" / "deny")` 翻译成 `approval-responded` 原地改写该 part、原样重发 `messages` 触发服务端续跑(和真实前端 `addToolApprovalResponse()` + `sendMessage()` 的协议行为一致,没有单独的 approve 端点)。拒绝的调用以 `rejected` 落进事件流,且默认带「不要重试」的 reason(`denyReason` 可覆盖)——不带的话模型经常原样重发同一个调用。
217
+ - **HITL**:AI SDK v7 tool approval(工具带 `needsApproval: true`)原生映射——part 停在 `approval-requested` 时该 Turn 的 `status: "waiting"` + `input.requested`;`t.respond("approve" / "deny")` 翻译成 `approval-responded` 原地改写该 part、原样重发 `messages` 触发服务端续跑(和真实前端 `addToolApprovalResponse()` + `sendMessage()` 的协议行为一致,没有单独的 approve 端点)。拒绝的调用以 `rejected` 落进事件流,且默认带「不要重试」的 reason(`denyReason` 可覆盖)——不带的话模型经常原样重发同一个调用。
193
218
  - **usage / 瀑布图**:UI Message Stream 协议帧里没有 usage,所以 `t.maxTokens` 这类用量断言在这个内置件上默认没有数据(应用把 usage 放进 message metadata 属于应用自己的协议扩展)。瀑布图是另一回事:应用有 OTel 埋点(如官方 `@ai-sdk/otel`)时,按 [OTel 接入](/zh/guides/connect-otel)把 span 发给 [NiceEval](https://niceeval.com/),`niceeval view` 就有完整瀑布图——span 只进瀑布图,不喂断言。
194
219
 
195
220
  需要在 eval 项目里安装 `ai`(可选 peer 依赖,协议 reducer 来自它)。完整可跑示例:[`examples/zh/tier1/ai-sdk-v7`](https://github.com/CorrectRoadH/niceeval/tree/main/examples/zh/tier1/ai-sdk-v7)。
@@ -8,7 +8,7 @@ description: "NiceEval 怎么知道你的 adapter 做到了什么:没有声明
8
8
 
9
9
  `defineAgent` / `defineSandboxAgent` 上没有 `capabilities` 字段——**没有任何东西需要你声明**。每一项能力都由构造方式或实际返回的内容证明,判定表如下。
10
10
 
11
- ## 能力从哪来:一张判决表
11
+ ## 能力从哪来:一张对照表
12
12
 
13
13
  | 能力 | 怎么获得 | 你要写什么 |
14
14
  |---|---|---|
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "NiceEval CLI:命令、flags 和退出码参考"
3
3
  sidebarTitle: "命令行"
4
- description: "NiceEval CLI 参考:exp、init、list、cleanview 命令,以及 experiment、eval 过滤、sandbox、并发、预算和 JUnit CI 输出。"
4
+ description: "NiceEval CLI 参考:exp、show、view、init、list 和 clean 命令,以及结果下钻、experiment、eval 过滤、并发、预算和 CI 输出。"
5
5
  ---
6
6
 
7
7
  [NiceEval](https://niceeval.com/) CLI 是发现、运行和查看 eval 的入口。实际执行 eval 时采用 experiment-first 模型:**`exp` 选择可签入的运行配置**,experiment 后的位置参数才按 eval ID 前缀过滤。agent、model 和 flags 写在 `experiments/`,不靠临时 CLI 参数。
@@ -19,10 +19,13 @@ description: "NiceEval CLI 参考:exp、init、list、clean 和 view 命令,
19
19
  发现并打印所有 eval,不运行。
20
20
  </Card>
21
21
  <Card title="npx niceeval clean" icon="trash">
22
- 删除 `.niceeval/` 历史运行 artifacts。
22
+ 删除 `.niceeval/` 下历史快照 artifacts。
23
+ </Card>
24
+ <Card title="npx niceeval show [id-prefix | @locator]" icon="terminal">
25
+ 在终端读取结果;用 `@<locator>` 或 eval ID 前缀下钻断言、Eval 源码、执行事件流、diff 和历史。
23
26
  </Card>
24
27
  <Card title="npx niceeval view" icon="eye">
25
- 打开结果查看器,查看最近一次运行的 artifacts。
28
+ 打开网页结果查看器,读默认报告并交互浏览 Eval 源码、执行事件流、diff 与历史;默认范围与 `show` 相同。
26
29
  </Card>
27
30
  </CardGroup>
28
31
 
@@ -46,6 +49,9 @@ npx niceeval exp
46
49
  # 运行一个实验组
47
50
  npx niceeval exp compare-models
48
51
 
52
+ # 只运行该组里的一个配置(id = 组/文件名,不带扩展名)
53
+ npx niceeval exp compare-models/gpt-5.4
54
+
49
55
  # 在该组里只运行 ID 以 weather 开头的 eval
50
56
  npx niceeval exp compare-models weather
51
57
  ```
@@ -54,6 +60,8 @@ npx niceeval exp compare-models weather
54
60
  eval 过滤参数只出现在 experiment 选择之后。裸 `npx niceeval weather` 不会运行;请使用 `npx niceeval exp local weather` 或 `npx niceeval exp compare weather`。
55
61
  </Note>
56
62
 
63
+ 第一个位置参数既能填实验组名,也能填单个配置的完整 id:精确匹配到 `组/文件名` 时只跑组内那一个配置,适合逐配置验证或对比排查某一格结果,不用把其它配置文件挪出目录。
64
+
57
65
  ## 常用 flags
58
66
 
59
67
  下表由 CLI 的 flag 解析表生成,表外的 flag 一律按未知 flag 报错并以非零状态退出。**没有**用于选择 sandbox 后端的 CLI flag:sandbox 后端只能写在代码里——在 experiment(`defineExperiment`)里设置 `sandbox`,或者在 `niceeval.config.ts`(`defineConfig`)里设置作为项目级兜底,值来自 `niceeval/sandbox` 的 `dockerSandbox()` / `vercelSandbox()` / `e2bSandbox()`。
@@ -75,18 +83,17 @@ npx niceeval exp compare-models weather
75
83
  | `--json` | string | 额外写一份 JSON 结果(`RunSummary` 原样序列化)到指定路径,供 CI 或下游脚本消费。 |
76
84
  | `--out` | string | `view` 命令专用:把结果查看器静态导出到指定目录。 |
77
85
  | `--port` | number | `view` 命令专用:指定本地服务器监听端口。 |
78
- | `--transcript` | boolean | `show` 命令专用:渲染单个 eval 的完整对话与工具调用(证据切面)。 |
79
- | `--trace` | boolean | `show` 命令专用:渲染单个 eval trace 瀑布文本版(证据切面)。 |
86
+ | `--eval` | boolean | `show` 命令专用:该 attempt 运行时保存的 Eval 源码,gate/soft 断言标回源码行(证据切面)。 |
87
+ | `--execution` | boolean | `show` 命令专用:该 attempt 的标准执行事件流(消息、thinking、Skill load、工具调用/结果);有 OTel 时同一节点补时间(证据切面)。 |
80
88
  | `--diff` | boolean | `show` 命令专用:sandbox 里的文件改动摘要;`--diff=<文件路径>` 看单个文件的完整改动(路径必须 `=` 连写)。 |
81
89
  | `--history` | boolean | `show` 命令专用:跨 run 时间轴,只列真实执行;与 `--report` 互斥。 |
82
- | `--experiment` | string | `show` / `view` 命令专用:选集只留该实验。 |
83
- | `--attempt` | number | `show` 命令专用:指定详情 / 证据切面看第几次 attempt(与展示一致的 1 计序号)。 |
84
- | `--run` | string | `show` / `view` 命令专用:钉死看某一个结果目录(历史 run 或 `copySnapshots` 产物) |
85
- | `--report` | string | `show` / `view` 命令专用:用你的报告文件替换默认报告(文件默认导出 `defineReport(...)`)。 |
90
+ | `--experiment` | string | `show` / `view` 命令专用:Selection 只留该实验。 |
91
+ | `--run` | string | `show` / `view` 命令专用:钉死看某一个结果目录(某次快照或 `copySnapshots` 产物)。 |
92
+ | `--report` | string | `show` / `view` 命令专用:渲染你的报告文件(文件默认导出 `defineReport(...)`);show 用它替换 Attempt 索引,view 用它替换默认分析报告。 |
86
93
  | `--dry` | boolean | 只打印本次会匹配到的 eval × 运行配置,不实际执行。 |
87
- | `--quiet` | boolean | 关闭控制台 / live 进度输出(reporter 仍会写 artifacts)。 |
94
+ | `--quiet` | boolean | 关闭控制台 / live 的逐条结果与末尾汇总(attempt 进度行仍写 stderr);errored / failed 的结果各在 stderr 补一行摘要,passed / skipped 静默;reporter 仍会写 artifacts。 |
88
95
  | `--force` | boolean | 忽略上次运行结果,不跳过已通过的 (experiment, eval) 组合,强制全部重跑。 |
89
- | `--strict` | boolean | CI 中推荐使用:让软阈值(`soft`)失败也计入整条 eval 的 outcome。 |
96
+ | `--strict` | boolean | CI 中推荐使用:让软阈值(`soft`)失败也计入整条 eval 的 verdict。 |
90
97
  | `--early-exit` / `--no-early-exit` | boolean | 某个 eval 的一次 attempt 通过后,停止该 eval 剩余的 attempts。 |
91
98
  | `--open` / `--no-open` | boolean | `view` 命令专用:启动后自动打开浏览器(默认行为)。 |
92
99
  | `--help` | boolean | 打印用法说明并退出。 |
@@ -117,13 +124,29 @@ npx niceeval exp compare-models weather-tool
117
124
  npx niceeval view
118
125
  ```
119
126
 
120
- 打开本地结果查看器。默认查看最近一次 `.niceeval/` 运行。
127
+ 打开本地结果查看器。它和 `show` 共用同一份默认报告和同一套默认选择——对每个 experiment、每个 eval,取历次运行里最新的那份判定;只补跑部分 eval 时,其余 eval 从更早的运行补齐。`show` 输出终端文本,`view` 输出网页并提供可交互的证据浏览;eval ID 前缀、`--experiment`、`--run` 对两者的收窄一致。完整说明见[查看结果](/zh/guides/viewing-results)。
128
+
129
+ ## `show [id-prefix...]`
130
+
131
+ ```bash
132
+ npx niceeval show
133
+ npx niceeval show weather/brooklyn
134
+ npx niceeval show @1k2m9qrs
135
+ npx niceeval show @1k2m9qrs --eval
136
+ npx niceeval show @1k2m9qrs --execution
137
+ npx niceeval show fixtures/button --diff
138
+ npx niceeval show weather/brooklyn --history
139
+ ```
140
+
141
+ `show` 是终端结果入口,适合人直接阅读,也适合 coding agent 在上下文窗口里逐级下钻。位置参数选「看哪些 eval」(ID 前缀)或直接用 `@<locator>` 精确选一个 attempt;不带位置参数时显示默认报告(每行带紧凑 attempt 索引),指定到单个 eval 时显示各 experiment 的 attempt、断言、错误与用量。
142
+
143
+ `@<locator>` 不带证据 flag 时给出该 attempt 的紧凑全景(断言摘要、执行摘要、可选 OTel 时间、diff 摘要);`--eval`、`--execution`、`--diff` 是同一 attempt 的证据切面,分别展开运行时保存的 Eval 源码、标准执行事件流、工作区文件改动。`--eval`、`--execution`、`--diff` 也能配一个 eval ID 前缀使用,但要求最终只匹配一个 eval——多 experiment 或多 attempt 时默认选择最新一次失败的 attempt;用 `--experiment` 收窄实验,或直接用 `@<locator>` 精确指名。`--run` 钉住某次结果目录,`--history` 查看跨 run 趋势。完整的阅读顺序、输出示例和 artifact 说明见[查看结果](/zh/guides/viewing-results)。
121
144
 
122
145
  ## `--early-exit` 与 `--strict`
123
146
 
124
147
  `--early-exit` 默认就是 `true`:某个 eval 的一次 attempt 通过后,会自动停止该 eval 剩余的 attempts(省钱)。所以显式传 `--early-exit` 没有效果,真正有用的是反过来关掉它——`--no-early-exit`,让 `--runs` > 1 时把每次 attempt 都跑完(测真实通过率而非提前收尾)。
125
148
 
126
- `--strict` 不是"更严格地报错",而是改变软阈值断言的判定:`.atLeast(n)` 这类软阈值(`soft` severity)平时失败不会把整条 eval 判为 `failed`(只是记一条不达标的断言),加了 `--strict` 之后,软阈值没达标也会让整条 eval 的 outcome 计为 `failed`。CI 中推荐加上,避免"断言分数不够但 eval 显示通过"的情况被放过。
149
+ `--strict` 不是"更严格地报错",而是改变软阈值断言的判定:`.atLeast(n)` 这类软阈值(`soft` severity)平时失败不会把整条 eval 判为 `failed`(只是记一条不达标的断言),加了 `--strict` 之后,软阈值没达标也会让整条 eval 的 verdict 计为 `failed`。CI 中推荐加上,避免"断言分数不够但 eval 显示通过"的情况被放过。
127
150
 
128
151
  ## 环境变量覆盖
129
152
 
@@ -338,7 +338,7 @@ readFile(path: string): Promise<string>;
338
338
  fileExists(path: string): Promise<boolean>;
339
339
  ```
340
340
 
341
- 检查沙箱内路径是否存在。跨后端语义不完全一致:仅保证对普通文件可靠,对目录路径的行为不同后端不保证一致。
341
+ 检查沙箱内路径是否存在。跨 provider 语义不完全一致:仅保证对普通文件可靠,对目录路径的行为不同 provider 不保证一致。
342
342
 
343
343
  #### `readSourceFiles`
344
344
 
@@ -379,7 +379,7 @@ uploadDirectory(localDir: string, targetDir?: string, opts?: { ignore?: string[]
379
379
  stop(): Promise<void>;
380
380
  ```
381
381
 
382
- 销毁沙箱占用的计算资源(容器/microVM)。调用后沙箱不可再用;是否可安全重复调用因后端而异,不要依赖这一点。
382
+ 销毁沙箱占用的计算资源(容器/microVM)。调用后沙箱不可再用;是否可安全重复调用因 provider 而异,不要依赖这一点。
383
383
 
384
384
  #### `sandboxId`
385
385
 
@@ -387,7 +387,7 @@ stop(): Promise<void>;
387
387
  readonly sandboxId: string;
388
388
  ```
389
389
 
390
- 本沙箱的稳定标识(各后端原生 ID,如 Docker 容器 ID 前缀);用于跨调用关联同一沙箱的会话状态,也用于日志展示。
390
+ 本沙箱的稳定标识( provider 原生 ID,如 Docker 容器 ID 前缀);用于跨调用关联同一沙箱的会话状态,也用于日志展示。
391
391
 
392
392
  #### `otlpHost`
393
393
 
@@ -407,7 +407,7 @@ appendLog?(line: string): Promise<void>;
407
407
  ```
408
408
 
409
409
  可选:把一行写进容器的「主日志」(PID1 在 tail 它)——于是 `docker logs` /
410
- Docker UI 的 Logs 标签页能实时看到 agent 逐轮活动。docker 后端实现,其它可省略。
410
+ Docker UI 的 Logs 标签页能实时看到 agent 逐轮活动。docker provider 实现,其它可省略。
411
411
 
412
412
  #### `downloadFile`
413
413
 
@@ -416,7 +416,7 @@ downloadFile(path: string): Promise<Buffer>;
416
416
  ```
417
417
 
418
418
  从沙箱内任意路径读取文件,返回二进制 Buffer。
419
- 对应各 backend:Docker getArchive / Vercel readFileToBuffer / e2b files.read(bytes) / …
419
+ 对应各 provider:Docker getArchive / Vercel readFileToBuffer / e2b files.read(bytes) / …
420
420
 
421
421
  #### `uploadFile`
422
422
 
@@ -425,7 +425,7 @@ uploadFile(path: string, content: Buffer): Promise<void>;
425
425
  ```
426
426
 
427
427
  向沙箱内任意路径写入文件(二进制)。
428
- 对应各 backend:Docker putArchive / Vercel fs.writeFile(Buffer) / e2b files.write / …
428
+ 对应各 provider:Docker putArchive / Vercel fs.writeFile(Buffer) / e2b files.write / …
429
429
 
430
430
  ### `CommandOptions`
431
431
 
@@ -435,7 +435,7 @@ uploadFile(path: string, content: Buffer): Promise<void>;
435
435
  env?: Record<string, string>;
436
436
  ```
437
437
 
438
- 追加/覆盖本命令的环境变量(与沙箱默认环境叠加,不清空默认值;各后端会保留自己固定的 `PATH` 等变量,不保证能被这里覆盖)。
438
+ 追加/覆盖本命令的环境变量(与沙箱默认环境叠加,不清空默认值;各 provider 会保留自己固定的 `PATH` 等变量,不保证能被这里覆盖)。
439
439
 
440
440
  #### `cwd`
441
441
 
@@ -453,8 +453,8 @@ stream?: boolean;
453
453
 
454
454
  把本命令的输出也送进沙箱的「原生日志流」(于是 `docker logs` / Docker UI 的 Logs
455
455
  标签页能实时看到它)。给 agent 命令(codex exec / bub run / claude)开它,就能在容器
456
- 日志里看到 agent 的【原始输出】。后端各自实现(docker:tee 到 PID1 tail 的文件;
457
- 不支持的后端忽略)—— 日志怎么浮现是 backend 的事,adapter 只声明意图。
456
+ 日志里看到 agent 的【原始输出】。provider 各自实现(docker:tee 到 PID1 tail 的文件;
457
+ 不支持的 provider 忽略)—— 日志怎么浮现是 provider 的事,adapter 只声明意图。
458
458
 
459
459
  #### `root`
460
460
 
@@ -465,10 +465,10 @@ root?: boolean;
465
465
  以 root 跑本命令。默认 `false` —— 命令以沙箱的标准**非 root** 用户跑(agent 的自然环境)。
466
466
  给 setup 阶段装系统依赖用(`apt-get install …`、`pip install --break-system-packages …`)。
467
467
 
468
- 语义跨后端一致:"本命令以 root 跑,否则以标准非 root 用户跑"。各后端映射到自己的原生机制
468
+ 语义跨 provider 一致:"本命令以 root 跑,否则以标准非 root 用户跑"。各 provider 映射到自己的原生机制
469
469
  (docker:`exec --user root`;E2B:`{ user: "root" }`;Vercel:`{ sudo: true }`;Daytona:`{ user }`)。
470
- 本就全程 root 的后端(如 Modal)视作 no-op;完全无法提权的后端可不支持(抛错)—— 但**默认值与
471
- 语义保持一致**,不因后端而变。
470
+ 本就全程 root 的 provider(如 Modal)视作 no-op;完全无法提权的 provider 可不支持(抛错)—— 但**默认值与
471
+ 语义保持一致**,不因 provider 而变。
472
472
 
473
473
  {/* GENERATED:END sandbox-methods */}
474
474
 
@@ -37,7 +37,7 @@ name?: LocalizedText;
37
37
  sandbox?: SandboxOption;
38
38
  ```
39
39
 
40
- 项目级默认沙箱后端(docker / vercel / e2b / custom);experiment / CLI flag 可覆盖。
40
+ 项目级默认沙箱 provider(docker / vercel / e2b / custom);experiment 可覆盖。
41
41
 
42
42
  #### `workspace`
43
43
 
@@ -92,7 +92,7 @@ setup?: (sandbox: Sandbox) => Promise<void | Cleanup> | void | Cleanup;
92
92
 
93
93
  eval 级预置:拿到沙箱(已上传 workspace + git 基线 + 装好依赖前)。
94
94
  默认命令以非 root 跑(agent 的自然环境);装系统依赖时给 `runCommand` 传 `{ root: true }`
95
- (如 `runCommand("apt-get", ["install", …], { root: true })`),跨后端语义一致。
95
+ (如 `runCommand("apt-get", ["install", …], { root: true })`),跨 provider 语义一致。
96
96
 
97
97
  #### `test`
98
98
 
@@ -193,7 +193,7 @@ newSession(): SessionHandle;
193
193
  readonly signal: AbortSignal;
194
194
  ```
195
195
 
196
- 本次 attempt 的中止信号;超时 / 早停 / 用户 Ctrl-C 时触发,传给 adapter 的长耗时调用做取消。
196
+ 本次 attempt 的中止信号;超时 / 首过即停 / 用户 Ctrl-C 时触发,传给 adapter 的长耗时调用做取消。
197
197
 
198
198
  #### `model`
199
199
 
@@ -233,7 +233,7 @@ log(msg: string): void;
233
233
  skip(reason: string): never;
234
234
  ```
235
235
 
236
- 立即中止本 eval 并标记为 skipped(outcome / EvalResult.skipReason),reason 不能为空。
236
+ 立即中止本 eval 并标记为 skipped(verdict / EvalResult.skipReason),reason 不能为空。
237
237
 
238
238
  #### `check`
239
239
 
@@ -108,6 +108,12 @@ token 用量或 OTel span 反推得到)。存在时优先于按价格表(`define
108
108
  }
109
109
  ```
110
110
 
111
+ #### `skill.loaded`
112
+
113
+ ```ts
114
+ { type: "skill.loaded"; skill: string; callId?: string }
115
+ ```
116
+
111
117
  #### `subagent.called`
112
118
 
113
119
  ```ts
@@ -206,7 +212,7 @@ token 用量或 OTel span 反推得到)。存在时优先于按价格表(`define
206
212
  } }
207
213
  ```
208
214
 
209
- agent 停轮等人时,每个待回答的问题吐一条,同时整轮 `status` 返回 `"waiting"`。`t.requireInputRequest(filter)` 的 filter 逐字段匹配这个 `request`——**能填的字段尽量填**,否则 eval 侧筛选不到。接法见[接入教程的 HITL 部分](/zh/guides/connect-your-agent)。
215
+ agent 停轮等人时,每个待回答的问题吐一条,同时该 Turn 的 `status` 返回 `"waiting"`。`t.requireInputRequest(filter)` 的 filter 逐字段匹配这个 `request`——**能填的字段尽量填**,否则 eval 侧筛选不到。接法见[接入教程的 HITL 部分](/zh/guides/connect-your-agent)。
210
216
 
211
217
  ### `thinking` / `compaction` / `error`
212
218
 
@@ -125,7 +125,7 @@ export function makeAssertion(spec: {
125
125
  }): ValueAssertion { ... }
126
126
  ```
127
127
 
128
- 自定义断言工厂:直接给名字 / 严重级 / 阈值 / score,一次调用即返回可用的 ValueAssertion——
128
+ 自定义断言工厂:直接给名字 / 严重度 / 阈值 / score,一次调用即返回可用的 ValueAssertion——
129
129
  不像 gate()/atLeast() 那样需要二段链式调用来定级。severity 省略默认 gate。
130
130
 
131
131
  {/* GENERATED:END expect-matchers */}
@@ -192,8 +192,8 @@ gate(threshold?: number): ValueAssertion;
192
192
  atLeast(threshold: number): ValueAssertion;
193
193
  ```
194
194
 
195
- 转成软阈值断言:未达 threshold 时该条记为 failed,但默认不拖累整条 eval 的 outcome;
196
- `--strict` 运行下,软阈值失败也会把整条 eval 的 outcome 计为 failed。返回新实例,不改原对象。
195
+ 转成软阈值断言:未达 threshold 时该条记为 failed,但默认不拖累整条 eval 的 verdict;
196
+ `--strict` 运行下,软阈值失败也会把整条 eval 的 verdict 计为 failed。返回新实例,不改原对象。
197
197
 
198
198
  {/* GENERATED:END value-assertion */}
199
199
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "niceeval",
3
- "version": "0.5.4",
3
+ "version": "0.6.0",
4
4
  "description": "Agent-native eval tool — eval agents, services, functions, and coding-agent fixtures",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -49,18 +49,21 @@
49
49
  "import": "./src/results/index.ts"
50
50
  },
51
51
  "./report": {
52
- "types": "./src/report/index.ts",
53
- "import": "./src/report/index.ts"
52
+ "types": "./dist/report/index.d.ts",
53
+ "import": "./dist/report/index.js"
54
54
  },
55
55
  "./report/react": {
56
- "types": "./src/report/react/index.tsx",
57
- "import": "./src/report/react/index.tsx"
56
+ "types": "./dist/report/react/index.d.ts",
57
+ "import": "./dist/report/react/index.js"
58
58
  },
59
- "./report/react/styles.css": "./src/report/react/styles.css"
59
+ "./report/react/styles.css": "./src/report/react/styles.css",
60
+ "./report/react/enhance.js": "./src/report/react/enhance.js"
60
61
  },
61
62
  "files": [
63
+ "INDEX.md",
62
64
  "src",
63
65
  "bin",
66
+ "dist",
64
67
  "docs-site/zh",
65
68
  "docs-site/images"
66
69
  ],
@@ -159,6 +162,7 @@
159
162
  "tiers:sync": "node scripts/sync-tiers.mjs sync",
160
163
  "tiers:check": "node scripts/sync-tiers.mjs check",
161
164
  "view:build": "vite build --config src/view/app/vite.config.ts",
165
+ "build:report": "tsc -p tsconfig.report-build.json && node scripts/prune-report-dist.mjs",
162
166
  "site:dev": "cd site && node scripts/dev.mjs",
163
167
  "site:build": "cd site && next build",
164
168
  "docs:dev": "cd docs-site && npx --yes mint@latest dev",