niceeval 0.15.1-canary.76 → 0.16.1

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 (714) hide show
  1. package/INDEX.md +45 -40
  2. package/dist/adapter-execution-trace.cjs.map +1 -1
  3. package/dist/adapter-execution-trace.d.cts +26 -0
  4. package/dist/adapter-execution-trace.d.mts +26 -0
  5. package/dist/adapter-execution-trace.d.ts +26 -0
  6. package/dist/adapter-usage.cjs.map +1 -1
  7. package/dist/adapter-usage.d.cts +9 -0
  8. package/dist/adapter-usage.d.mts +9 -0
  9. package/dist/adapter-usage.d.ts +9 -0
  10. package/dist/adapter.cjs +19 -4
  11. package/dist/adapter.cjs.map +1 -1
  12. package/dist/adapter.d.cts +37 -12
  13. package/dist/adapter.d.mts +37 -12
  14. package/dist/adapter.d.ts +37 -12
  15. package/dist/agents/ai-sdk.cjs +3 -0
  16. package/dist/agents/ai-sdk.cjs.map +1 -1
  17. package/dist/agents/bub.cjs +3 -0
  18. package/dist/agents/bub.cjs.map +1 -1
  19. package/dist/agents/claude-code-native.cjs +28 -2
  20. package/dist/agents/claude-code-native.cjs.map +1 -1
  21. package/dist/agents/claude-code.cjs +3 -0
  22. package/dist/agents/claude-code.cjs.map +1 -1
  23. package/dist/agents/codex.cjs +3 -0
  24. package/dist/agents/codex.cjs.map +1 -1
  25. package/dist/agents/coding-cli-versions.cjs +9 -10
  26. package/dist/agents/coding-cli-versions.cjs.map +1 -1
  27. package/dist/agents/coding-cli-versions.d.cts +1 -1
  28. package/dist/agents/coding-cli-versions.d.mts +1 -1
  29. package/dist/agents/coding-cli-versions.d.ts +1 -1
  30. package/dist/agents/deepseek-harness.cjs +3 -0
  31. package/dist/agents/deepseek-harness.cjs.map +1 -1
  32. package/dist/agents/hermes.cjs +3 -0
  33. package/dist/agents/hermes.cjs.map +1 -1
  34. package/dist/agents/index.cjs.map +1 -1
  35. package/dist/agents/index.d.cts +3 -2
  36. package/dist/agents/index.d.mts +3 -2
  37. package/dist/agents/index.d.ts +3 -2
  38. package/dist/agents/omp.cjs +3 -0
  39. package/dist/agents/omp.cjs.map +1 -1
  40. package/dist/agents/openai-compat.cjs +6 -0
  41. package/dist/agents/openai-compat.cjs.map +1 -1
  42. package/dist/agents/openclaw.cjs +3 -0
  43. package/dist/agents/openclaw.cjs.map +1 -1
  44. package/dist/agents/opencode.cjs +3 -0
  45. package/dist/agents/opencode.cjs.map +1 -1
  46. package/dist/agents/sdk-streams.cjs +9 -0
  47. package/dist/agents/sdk-streams.cjs.map +1 -1
  48. package/dist/agents/ui-message-stream.cjs +3 -0
  49. package/dist/agents/ui-message-stream.cjs.map +1 -1
  50. package/dist/assertions/api.cjs.map +1 -1
  51. package/dist/assertions/api.d.cts +27 -5
  52. package/dist/assertions/api.d.mts +27 -5
  53. package/dist/assertions/api.d.ts +27 -5
  54. package/dist/assertions/collection.cjs +6 -0
  55. package/dist/assertions/collection.cjs.map +1 -1
  56. package/dist/assertions/collection.d.cts +4 -2
  57. package/dist/assertions/collection.d.mts +4 -2
  58. package/dist/assertions/collection.d.ts +4 -2
  59. package/dist/assertions/collection.js +12 -8
  60. package/dist/assertions/context-match.cjs +70 -0
  61. package/dist/assertions/context-match.cjs.map +1 -0
  62. package/dist/assertions/context-match.d.cts +107 -0
  63. package/dist/assertions/context-match.d.mts +107 -0
  64. package/dist/assertions/context-match.d.ts +107 -0
  65. package/dist/assertions/context-match.js +12 -0
  66. package/dist/assertions/context-match.js.map +1 -0
  67. package/dist/assertions/full-content.cjs +109 -0
  68. package/dist/assertions/full-content.cjs.map +1 -0
  69. package/dist/assertions/full-content.d.cts +6 -0
  70. package/dist/assertions/full-content.d.mts +6 -0
  71. package/dist/assertions/full-content.d.ts +6 -0
  72. package/dist/assertions/full-content.js +12 -0
  73. package/dist/assertions/full-content.js.map +1 -0
  74. package/dist/assertions/judge-presets.cjs +2 -34
  75. package/dist/assertions/judge-presets.cjs.map +1 -1
  76. package/dist/assertions/judge-presets.d.cts +6 -9
  77. package/dist/assertions/judge-presets.d.mts +6 -9
  78. package/dist/assertions/judge-presets.d.ts +6 -9
  79. package/dist/assertions/judge-presets.js +8 -8
  80. package/dist/assertions/judge.cjs +107 -29
  81. package/dist/assertions/judge.cjs.map +1 -1
  82. package/dist/assertions/judge.d.cts +2 -0
  83. package/dist/assertions/judge.d.mts +2 -0
  84. package/dist/assertions/judge.d.ts +2 -0
  85. package/dist/assertions/match.cjs +244 -5
  86. package/dist/assertions/match.cjs.map +1 -1
  87. package/dist/assertions/match.d.cts +43 -3
  88. package/dist/assertions/match.d.mts +43 -3
  89. package/dist/assertions/match.d.ts +43 -3
  90. package/dist/assertions/match.js +88 -78
  91. package/dist/assertions/material.cjs +520 -0
  92. package/dist/assertions/material.cjs.map +1 -0
  93. package/dist/assertions/material.d.cts +56 -0
  94. package/dist/assertions/material.d.mts +56 -0
  95. package/dist/assertions/material.d.ts +56 -0
  96. package/dist/assertions/material.js +20 -0
  97. package/dist/assertions/material.js.map +1 -0
  98. package/dist/assertions/record/attachment.cjs +5 -2
  99. package/dist/assertions/record/attachment.cjs.map +1 -1
  100. package/dist/assertions/record/codec.cjs +2 -1
  101. package/dist/assertions/record/codec.cjs.map +1 -1
  102. package/dist/assertions/record/model.cjs.map +1 -1
  103. package/dist/assertions/record/model.d.cts +6 -1
  104. package/dist/assertions/record/model.d.mts +6 -1
  105. package/dist/assertions/record/model.d.ts +6 -1
  106. package/dist/assertions/runtime.cjs +207 -14
  107. package/dist/assertions/runtime.cjs.map +1 -1
  108. package/dist/assertions/runtime.d.cts +9 -0
  109. package/dist/assertions/runtime.d.mts +9 -0
  110. package/dist/assertions/runtime.d.ts +9 -0
  111. package/dist/assertions/runtime.js +14 -8
  112. package/dist/assertions/score-match-audit.cjs +18 -8
  113. package/dist/assertions/score-match-audit.cjs.map +1 -1
  114. package/dist/assertions/score-match-gateway.cjs +83 -25
  115. package/dist/assertions/score-match-gateway.cjs.map +1 -1
  116. package/dist/assertions/score-match-gateway.d.cts +2 -0
  117. package/dist/assertions/score-match-gateway.d.mts +2 -0
  118. package/dist/assertions/score-match-gateway.d.ts +2 -0
  119. package/dist/assertions/value-composition.test-d.cjs +77 -0
  120. package/dist/assertions/value-composition.test-d.cjs.map +1 -0
  121. package/dist/assertions/value-composition.test-d.d.cts +1 -0
  122. package/dist/assertions/value-composition.test-d.d.mts +1 -0
  123. package/dist/assertions/value-composition.test-d.d.ts +1 -0
  124. package/dist/assertions/value-composition.test-d.js +4 -0
  125. package/dist/assertions/value-composition.test-d.js.map +1 -0
  126. package/dist/context/assert-first.cjs +207 -213
  127. package/dist/context/assert-first.cjs.map +1 -1
  128. package/dist/context/assert-first.d.cts +49 -23
  129. package/dist/context/assert-first.d.mts +49 -23
  130. package/dist/context/assert-first.d.ts +49 -23
  131. package/dist/context/session.cjs +111 -9
  132. package/dist/context/session.cjs.map +1 -1
  133. package/dist/context/session.d.cts +18 -0
  134. package/dist/context/session.d.mts +18 -0
  135. package/dist/context/session.d.ts +18 -0
  136. package/dist/define.cjs +17 -1
  137. package/dist/define.cjs.map +1 -1
  138. package/dist/eval/cli/contribution.cjs +2 -0
  139. package/dist/eval/cli/contribution.cjs.map +1 -1
  140. package/dist/eval/host/index.cjs +2 -0
  141. package/dist/eval/host/index.cjs.map +1 -1
  142. package/dist/eval/record/evaluation.cjs +3 -0
  143. package/dist/eval/record/evaluation.cjs.map +1 -1
  144. package/dist/eval/record/membership-provenance.d.cts +15 -15
  145. package/dist/eval/record/membership-provenance.d.mts +15 -15
  146. package/dist/eval/record/membership-provenance.d.ts +15 -15
  147. package/dist/eval/record/score.cjs +7 -0
  148. package/dist/eval/record/score.cjs.map +1 -1
  149. package/dist/eval/record/sealed-assertion.cjs +3 -0
  150. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  151. package/dist/eval/record/verdict.cjs +7 -0
  152. package/dist/eval/record/verdict.cjs.map +1 -1
  153. package/dist/expect/index.cjs +8 -2
  154. package/dist/expect/index.cjs.map +1 -1
  155. package/dist/expect/index.d.cts +9 -4
  156. package/dist/expect/index.d.mts +9 -4
  157. package/dist/expect/index.d.ts +9 -4
  158. package/dist/expect/index.js +72 -62
  159. package/dist/expect/index.mjs +72 -62
  160. package/dist/experiment/host/cli/contribution.cjs +37 -23
  161. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  162. package/dist/experiment/host/cli/contribution.d.cts +9 -1
  163. package/dist/experiment/host/cli/contribution.d.mts +9 -1
  164. package/dist/experiment/host/cli/contribution.d.ts +9 -1
  165. package/dist/experiment/host/current.cjs +74 -0
  166. package/dist/experiment/host/current.cjs.map +1 -0
  167. package/dist/experiment/host/current.d.cts +33 -0
  168. package/dist/experiment/host/current.d.mts +33 -0
  169. package/dist/experiment/host/current.d.ts +33 -0
  170. package/dist/experiment/host/current.js +10 -0
  171. package/dist/experiment/host/current.js.map +1 -0
  172. package/dist/experiment/host/index.cjs +17 -174
  173. package/dist/experiment/host/index.cjs.map +1 -1
  174. package/dist/experiment/host/index.d.cts +8 -54
  175. package/dist/experiment/host/index.d.mts +8 -54
  176. package/dist/experiment/host/index.d.ts +8 -54
  177. package/dist/experiment/host/operations.cjs +33 -10
  178. package/dist/experiment/host/operations.cjs.map +1 -1
  179. package/dist/experiment/host/operations.d.cts +29 -1
  180. package/dist/experiment/host/operations.d.mts +29 -1
  181. package/dist/experiment/host/operations.d.ts +29 -1
  182. package/dist/experiment/host/operations.js +6 -4
  183. package/dist/experiment/host/requirements.cjs +3 -0
  184. package/dist/experiment/host/requirements.cjs.map +1 -0
  185. package/dist/experiment/host/requirements.d.cts +3 -0
  186. package/dist/experiment/host/requirements.d.mts +3 -0
  187. package/dist/experiment/host/requirements.d.ts +3 -0
  188. package/dist/experiment/host/requirements.js +4 -0
  189. package/dist/experiment/host/requirements.js.map +1 -0
  190. package/dist/experiment/host/runtime.cjs +179 -0
  191. package/dist/experiment/host/runtime.cjs.map +1 -0
  192. package/dist/experiment/host/runtime.d.cts +79 -0
  193. package/dist/experiment/host/runtime.d.mts +79 -0
  194. package/dist/experiment/host/runtime.d.ts +79 -0
  195. package/dist/experiment/host/runtime.js +6 -0
  196. package/dist/experiment/host/runtime.js.map +1 -0
  197. package/dist/experiment/host/types.cjs.map +1 -1
  198. package/dist/experiment/host/types.d.cts +17 -16
  199. package/dist/experiment/host/types.d.mts +17 -16
  200. package/dist/experiment/host/types.d.ts +17 -16
  201. package/dist/fresh-import.cjs +2 -1
  202. package/dist/fresh-import.cjs.map +1 -1
  203. package/dist/index.cjs +4 -2
  204. package/dist/index.cjs.map +1 -1
  205. package/dist/index.d.cts +12 -6
  206. package/dist/index.d.mts +12 -6
  207. package/dist/index.d.ts +12 -6
  208. package/dist/index.js +32 -30
  209. package/dist/index.mjs +32 -30
  210. package/dist/inspection/artifacts.cjs +83 -54
  211. package/dist/inspection/artifacts.cjs.map +1 -1
  212. package/dist/inspection/artifacts.d.cts +8 -0
  213. package/dist/inspection/artifacts.d.mts +8 -0
  214. package/dist/inspection/artifacts.d.ts +8 -0
  215. package/dist/inspection/artifacts.js +2 -0
  216. package/dist/inspection/assertions.cjs +4 -1
  217. package/dist/inspection/assertions.cjs.map +1 -1
  218. package/dist/inspection/cli/contribution.cjs +27 -4
  219. package/dist/inspection/cli/contribution.cjs.map +1 -1
  220. package/dist/inspection/cli/contribution.d.cts +2 -1
  221. package/dist/inspection/cli/contribution.d.mts +2 -1
  222. package/dist/inspection/cli/contribution.d.ts +2 -1
  223. package/dist/inspection/execution-traces.cjs +114 -8
  224. package/dist/inspection/execution-traces.cjs.map +1 -1
  225. package/dist/inspection/execution-traces.d.cts +38 -0
  226. package/dist/inspection/execution-traces.d.mts +38 -0
  227. package/dist/inspection/execution-traces.d.ts +38 -0
  228. package/dist/inspection/facts.cjs +12 -0
  229. package/dist/inspection/facts.cjs.map +1 -1
  230. package/dist/inspection/limits.cjs +5 -1
  231. package/dist/inspection/limits.cjs.map +1 -1
  232. package/dist/inspection/limits.d.cts +4 -0
  233. package/dist/inspection/limits.d.mts +4 -0
  234. package/dist/inspection/limits.d.ts +4 -0
  235. package/dist/inspection/limits.js +6 -2
  236. package/dist/inspection/overview.cjs +74 -33
  237. package/dist/inspection/overview.cjs.map +1 -1
  238. package/dist/inspection/overview.d.cts +19 -1
  239. package/dist/inspection/overview.d.mts +19 -1
  240. package/dist/inspection/overview.d.ts +19 -1
  241. package/dist/inspection/overview.js +4 -2
  242. package/dist/inspection/project-input.cjs +9 -0
  243. package/dist/inspection/project-input.cjs.map +1 -0
  244. package/dist/inspection/project-input.d.cts +20 -0
  245. package/dist/inspection/project-input.d.mts +20 -0
  246. package/dist/inspection/project-input.d.ts +20 -0
  247. package/dist/inspection/project-input.js +8 -0
  248. package/dist/inspection/project-input.js.map +1 -0
  249. package/dist/inspection/project-result.cjs +60 -0
  250. package/dist/inspection/project-result.cjs.map +1 -0
  251. package/dist/inspection/project-result.d.cts +1264 -0
  252. package/dist/inspection/project-result.d.mts +1264 -0
  253. package/dist/inspection/project-result.d.ts +1264 -0
  254. package/dist/inspection/project-result.js +10 -0
  255. package/dist/inspection/project-result.js.map +1 -0
  256. package/dist/inspection/project-source.cjs +109 -0
  257. package/dist/inspection/project-source.cjs.map +1 -0
  258. package/dist/inspection/project-source.d.cts +10 -0
  259. package/dist/inspection/project-source.d.mts +10 -0
  260. package/dist/inspection/project-source.d.ts +10 -0
  261. package/dist/inspection/project-source.js +6 -0
  262. package/dist/inspection/project-source.js.map +1 -0
  263. package/dist/inspection/project.cjs +100 -0
  264. package/dist/inspection/project.cjs.map +1 -0
  265. package/dist/inspection/project.d.cts +3 -0
  266. package/dist/inspection/project.d.mts +3 -0
  267. package/dist/inspection/project.d.ts +3 -0
  268. package/dist/inspection/project.js +6 -0
  269. package/dist/inspection/project.js.map +1 -0
  270. package/dist/inspection/protocol.cjs +19 -9
  271. package/dist/inspection/protocol.cjs.map +1 -1
  272. package/dist/inspection/protocol.d.cts +5506 -38189
  273. package/dist/inspection/protocol.d.mts +5506 -38189
  274. package/dist/inspection/protocol.d.ts +5506 -38189
  275. package/dist/inspection/public.mjs +896 -84
  276. package/dist/inspection/query.cjs +2 -0
  277. package/dist/inspection/query.cjs.map +1 -1
  278. package/dist/inspection/results.cjs +234 -29
  279. package/dist/inspection/results.cjs.map +1 -1
  280. package/dist/inspection/results.d.cts +870 -13
  281. package/dist/inspection/results.d.mts +870 -13
  282. package/dist/inspection/results.d.ts +870 -13
  283. package/dist/inspection/results.js +36 -34
  284. package/dist/inspection/select.cjs +126 -14
  285. package/dist/inspection/select.cjs.map +1 -1
  286. package/dist/inspection/select.d.cts +1 -1
  287. package/dist/inspection/select.d.mts +1 -1
  288. package/dist/inspection/select.d.ts +1 -1
  289. package/dist/inspection/source.cjs +4 -0
  290. package/dist/inspection/source.cjs.map +1 -1
  291. package/dist/inspection/sources.cjs +5 -0
  292. package/dist/inspection/sources.cjs.map +1 -1
  293. package/dist/inspection/trace.cjs +82 -84
  294. package/dist/inspection/trace.cjs.map +1 -1
  295. package/dist/inspection/trace.d.cts +7 -2
  296. package/dist/inspection/trace.d.mts +7 -2
  297. package/dist/inspection/trace.d.ts +7 -2
  298. package/dist/model-slots.cjs +35 -0
  299. package/dist/model-slots.cjs.map +1 -0
  300. package/dist/model-slots.d.cts +19 -0
  301. package/dist/model-slots.d.mts +19 -0
  302. package/dist/model-slots.d.ts +19 -0
  303. package/dist/model-slots.js +8 -0
  304. package/dist/model-slots.js.map +1 -0
  305. package/dist/o11y/adapter-call-price.cjs +4 -0
  306. package/dist/o11y/adapter-call-price.cjs.map +1 -1
  307. package/dist/o11y/adapter-call-price.d.cts +24 -0
  308. package/dist/o11y/adapter-call-price.d.mts +24 -0
  309. package/dist/o11y/adapter-call-price.d.ts +24 -0
  310. package/dist/o11y/adapter-call-price.js +6 -2
  311. package/dist/o11y/adapter-usage-projection.cjs +158 -0
  312. package/dist/o11y/adapter-usage-projection.cjs.map +1 -0
  313. package/dist/o11y/adapter-usage-projection.d.cts +141 -0
  314. package/dist/o11y/adapter-usage-projection.d.mts +141 -0
  315. package/dist/o11y/adapter-usage-projection.d.ts +141 -0
  316. package/dist/o11y/adapter-usage-projection.js +20 -0
  317. package/dist/o11y/adapter-usage-projection.js.map +1 -0
  318. package/dist/o11y/eval-usage.cjs +149 -0
  319. package/dist/o11y/eval-usage.cjs.map +1 -0
  320. package/dist/o11y/eval-usage.d.cts +46 -0
  321. package/dist/o11y/eval-usage.d.mts +46 -0
  322. package/dist/o11y/eval-usage.d.ts +46 -0
  323. package/dist/o11y/eval-usage.js +8 -0
  324. package/dist/o11y/eval-usage.js.map +1 -0
  325. package/dist/o11y/judge-call-price.cjs +62 -0
  326. package/dist/o11y/judge-call-price.cjs.map +1 -0
  327. package/dist/o11y/judge-call-price.d.cts +3 -0
  328. package/dist/o11y/judge-call-price.d.mts +3 -0
  329. package/dist/o11y/judge-call-price.d.ts +3 -0
  330. package/dist/o11y/judge-call-price.js +6 -0
  331. package/dist/o11y/judge-call-price.js.map +1 -0
  332. package/dist/o11y/judge-usage-projection.cjs +134 -0
  333. package/dist/o11y/judge-usage-projection.cjs.map +1 -0
  334. package/dist/o11y/judge-usage-projection.d.cts +18 -0
  335. package/dist/o11y/judge-usage-projection.d.mts +18 -0
  336. package/dist/o11y/judge-usage-projection.d.ts +18 -0
  337. package/dist/o11y/judge-usage-projection.js +20 -0
  338. package/dist/o11y/judge-usage-projection.js.map +1 -0
  339. package/dist/o11y/judge-usage-receipt.cjs +135 -0
  340. package/dist/o11y/judge-usage-receipt.cjs.map +1 -0
  341. package/dist/o11y/judge-usage-receipt.d.cts +5 -0
  342. package/dist/o11y/judge-usage-receipt.d.mts +5 -0
  343. package/dist/o11y/judge-usage-receipt.d.ts +5 -0
  344. package/dist/o11y/judge-usage-receipt.js +6 -0
  345. package/dist/o11y/judge-usage-receipt.js.map +1 -0
  346. package/dist/o11y/judge-usage.cjs +171 -0
  347. package/dist/o11y/judge-usage.cjs.map +1 -0
  348. package/dist/o11y/judge-usage.d.cts +35 -0
  349. package/dist/o11y/judge-usage.d.mts +35 -0
  350. package/dist/o11y/judge-usage.d.ts +35 -0
  351. package/dist/o11y/judge-usage.js +6 -0
  352. package/dist/o11y/judge-usage.js.map +1 -0
  353. package/dist/plugin/contracts.cjs +2 -0
  354. package/dist/plugin/contracts.cjs.map +1 -1
  355. package/dist/plugin/link.cjs +7 -0
  356. package/dist/plugin/link.cjs.map +1 -1
  357. package/dist/record/attachment/protocol.cjs +8 -6
  358. package/dist/record/attachment/protocol.cjs.map +1 -1
  359. package/dist/record/attachment/protocol.d.cts +10 -0
  360. package/dist/record/attachment/protocol.d.mts +10 -0
  361. package/dist/record/attachment/protocol.d.ts +10 -0
  362. package/dist/record/attachment/protocol.js +38 -36
  363. package/dist/record/codec/seal-manifest.d.cts +3 -3
  364. package/dist/record/codec/seal-manifest.d.mts +3 -3
  365. package/dist/record/codec/seal-manifest.d.ts +3 -3
  366. package/dist/record/family/adapter-usage/definition.d.cts +1 -0
  367. package/dist/record/family/adapter-usage/definition.d.mts +1 -0
  368. package/dist/record/family/adapter-usage/definition.d.ts +1 -0
  369. package/dist/record/family/adapter-usage/persistence.cjs +1 -1
  370. package/dist/record/family/adapter-usage/persistence.cjs.map +1 -1
  371. package/dist/record/family/adapter-usage/persistence.d.cts +2 -1
  372. package/dist/record/family/adapter-usage/persistence.d.mts +2 -1
  373. package/dist/record/family/adapter-usage/persistence.d.ts +2 -1
  374. package/dist/record/family/adapter-usage/schema.cjs +21 -2
  375. package/dist/record/family/adapter-usage/schema.cjs.map +1 -1
  376. package/dist/record/family/adapter-usage/schema.d.cts +85 -0
  377. package/dist/record/family/adapter-usage/schema.d.mts +85 -0
  378. package/dist/record/family/adapter-usage/schema.d.ts +85 -0
  379. package/dist/record/family/adapter-usage/schema.js +18 -12
  380. package/dist/record/family/catalog.cjs +31 -27
  381. package/dist/record/family/catalog.cjs.map +1 -1
  382. package/dist/record/family/catalog.d.cts +94 -3
  383. package/dist/record/family/catalog.d.mts +94 -3
  384. package/dist/record/family/catalog.d.ts +94 -3
  385. package/dist/record/family/current.cjs +45 -42
  386. package/dist/record/family/current.cjs.map +1 -1
  387. package/dist/record/family/current.d.cts +240 -1
  388. package/dist/record/family/current.d.mts +240 -1
  389. package/dist/record/family/current.d.ts +240 -1
  390. package/dist/record/family/execution-traces/definition.d.cts +26 -0
  391. package/dist/record/family/execution-traces/definition.d.mts +26 -0
  392. package/dist/record/family/execution-traces/definition.d.ts +26 -0
  393. package/dist/record/family/execution-traces/definition.js +20 -14
  394. package/dist/record/family/execution-traces/schema.cjs +57 -1
  395. package/dist/record/family/execution-traces/schema.cjs.map +1 -1
  396. package/dist/record/family/execution-traces/schema.d.cts +114 -0
  397. package/dist/record/family/execution-traces/schema.d.mts +114 -0
  398. package/dist/record/family/execution-traces/schema.d.ts +114 -0
  399. package/dist/record/family/execution-traces/schema.js +18 -12
  400. package/dist/record/family/judge-usage/definition.cjs +12 -0
  401. package/dist/record/family/judge-usage/definition.cjs.map +1 -0
  402. package/dist/record/family/judge-usage/definition.d.cts +91 -0
  403. package/dist/record/family/judge-usage/definition.d.mts +91 -0
  404. package/dist/record/family/judge-usage/definition.d.ts +91 -0
  405. package/dist/record/family/judge-usage/definition.js +6 -0
  406. package/dist/record/family/judge-usage/definition.js.map +1 -0
  407. package/dist/record/family/judge-usage/persistence.cjs +10 -0
  408. package/dist/record/family/judge-usage/persistence.cjs.map +1 -0
  409. package/dist/record/family/judge-usage/persistence.d.cts +91 -0
  410. package/dist/record/family/judge-usage/persistence.d.mts +91 -0
  411. package/dist/record/family/judge-usage/persistence.d.ts +91 -0
  412. package/dist/record/family/judge-usage/persistence.js +6 -0
  413. package/dist/record/family/judge-usage/persistence.js.map +1 -0
  414. package/dist/record/family/judge-usage/schema.cjs +307 -0
  415. package/dist/record/family/judge-usage/schema.cjs.map +1 -0
  416. package/dist/record/family/judge-usage/schema.d.cts +351 -0
  417. package/dist/record/family/judge-usage/schema.d.mts +351 -0
  418. package/dist/record/family/judge-usage/schema.d.ts +351 -0
  419. package/dist/record/family/judge-usage/schema.js +18 -0
  420. package/dist/record/family/judge-usage/schema.js.map +1 -0
  421. package/dist/record/host/sqlite-host.cjs +55 -9
  422. package/dist/record/host/sqlite-host.cjs.map +1 -1
  423. package/dist/record/host/types.cjs.map +1 -1
  424. package/dist/record/host/types.d.cts +7 -0
  425. package/dist/record/host/types.d.mts +7 -0
  426. package/dist/record/host/types.d.ts +7 -0
  427. package/dist/record/model/run-context.cjs +7 -1
  428. package/dist/record/model/run-context.cjs.map +1 -1
  429. package/dist/record/model/run-context.d.cts +4 -0
  430. package/dist/record/model/run-context.d.mts +4 -0
  431. package/dist/record/model/run-context.d.ts +4 -0
  432. package/dist/record/model/seal-manifest.d.cts +1 -1
  433. package/dist/record/model/seal-manifest.d.mts +1 -1
  434. package/dist/record/model/seal-manifest.d.ts +1 -1
  435. package/dist/record/sqlite/client.cjs +18 -5
  436. package/dist/record/sqlite/client.cjs.map +1 -1
  437. package/dist/record/sqlite/client.d.cts +1 -1
  438. package/dist/record/sqlite/client.d.mts +1 -1
  439. package/dist/record/sqlite/client.d.ts +1 -1
  440. package/dist/record/sqlite/project-state-database.cjs +29 -8
  441. package/dist/record/sqlite/project-state-database.cjs.map +1 -1
  442. package/dist/run/host/runtime.cjs +4 -0
  443. package/dist/run/host/runtime.cjs.map +1 -1
  444. package/dist/run/storage/sqlite.cjs +20 -0
  445. package/dist/run/storage/sqlite.cjs.map +1 -1
  446. package/dist/runner/adapter-execution-trace.cjs +125 -2
  447. package/dist/runner/adapter-execution-trace.cjs.map +1 -1
  448. package/dist/runner/adapter-execution-trace.d.cts +1 -1
  449. package/dist/runner/adapter-execution-trace.d.mts +1 -1
  450. package/dist/runner/adapter-execution-trace.d.ts +1 -1
  451. package/dist/runner/adapter-usage.cjs +55 -7
  452. package/dist/runner/adapter-usage.cjs.map +1 -1
  453. package/dist/runner/adapter-usage.d.cts +9 -2
  454. package/dist/runner/adapter-usage.d.mts +9 -2
  455. package/dist/runner/adapter-usage.d.ts +9 -2
  456. package/dist/runner/adoption.cjs +9 -0
  457. package/dist/runner/adoption.cjs.map +1 -1
  458. package/dist/runner/attempt-cancellation.cjs +12 -0
  459. package/dist/runner/attempt-cancellation.cjs.map +1 -0
  460. package/dist/runner/attempt-cancellation.d.cts +6 -0
  461. package/dist/runner/attempt-cancellation.d.mts +6 -0
  462. package/dist/runner/attempt-cancellation.d.ts +6 -0
  463. package/dist/runner/attempt-cancellation.js +6 -0
  464. package/dist/runner/attempt-cancellation.js.map +1 -0
  465. package/dist/runner/attempt-resources.cjs +10 -4
  466. package/dist/runner/attempt-resources.cjs.map +1 -1
  467. package/dist/runner/attempt-resources.d.cts +2 -1
  468. package/dist/runner/attempt-resources.d.mts +2 -1
  469. package/dist/runner/attempt-resources.d.ts +2 -1
  470. package/dist/runner/attempt.cjs +1177 -1139
  471. package/dist/runner/attempt.cjs.map +1 -1
  472. package/dist/runner/config-identity.cjs +20 -1
  473. package/dist/runner/config-identity.cjs.map +1 -1
  474. package/dist/runner/config-identity.d.cts +5 -0
  475. package/dist/runner/config-identity.d.mts +5 -0
  476. package/dist/runner/config-identity.d.ts +5 -0
  477. package/dist/runner/discover.cjs +14 -0
  478. package/dist/runner/discover.cjs.map +1 -1
  479. package/dist/runner/discover.d.cts +3 -0
  480. package/dist/runner/discover.d.mts +3 -0
  481. package/dist/runner/discover.d.ts +3 -0
  482. package/dist/runner/feedback/human.cjs +9 -4
  483. package/dist/runner/feedback/human.cjs.map +1 -1
  484. package/dist/runner/fingerprint.cjs +1 -0
  485. package/dist/runner/fingerprint.cjs.map +1 -1
  486. package/dist/runner/judge-usage.cjs +18 -0
  487. package/dist/runner/judge-usage.cjs.map +1 -0
  488. package/dist/runner/judge-usage.d.cts +5 -0
  489. package/dist/runner/judge-usage.d.mts +5 -0
  490. package/dist/runner/judge-usage.d.ts +5 -0
  491. package/dist/runner/judge-usage.js +8 -0
  492. package/dist/runner/judge-usage.js.map +1 -0
  493. package/dist/runner/project-target.cjs.map +1 -1
  494. package/dist/runner/project-target.d.cts +2 -0
  495. package/dist/runner/project-target.d.mts +2 -0
  496. package/dist/runner/project-target.d.ts +2 -0
  497. package/dist/runner/record/planning.cjs +1 -0
  498. package/dist/runner/record/planning.cjs.map +1 -1
  499. package/dist/runner/record.cjs +4 -0
  500. package/dist/runner/record.cjs.map +1 -1
  501. package/dist/runner/reporters/braintrust.cjs +2 -0
  502. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  503. package/dist/runner/reuse-diagnostics.cjs +9 -10
  504. package/dist/runner/reuse-diagnostics.cjs.map +1 -1
  505. package/dist/runner/reuse-diagnostics.d.cts +5 -6
  506. package/dist/runner/reuse-diagnostics.d.mts +5 -6
  507. package/dist/runner/reuse-diagnostics.d.ts +5 -6
  508. package/dist/runner/reuse-diagnostics.js +4 -4
  509. package/dist/runner/reuse-plan.cjs +100 -48
  510. package/dist/runner/reuse-plan.cjs.map +1 -1
  511. package/dist/runner/reuse-plan.d.cts +60 -3
  512. package/dist/runner/reuse-plan.d.mts +60 -3
  513. package/dist/runner/reuse-plan.d.ts +60 -3
  514. package/dist/runner/reuse-plan.js +14 -10
  515. package/dist/runner/run.cjs +8 -6
  516. package/dist/runner/run.cjs.map +1 -1
  517. package/dist/runner/session.cjs +1 -1
  518. package/dist/runner/session.cjs.map +1 -1
  519. package/dist/runner/session.d.cts +1 -1
  520. package/dist/runner/session.d.mts +1 -1
  521. package/dist/runner/session.d.ts +1 -1
  522. package/dist/runner/source-producer.cjs +3 -1
  523. package/dist/runner/source-producer.cjs.map +1 -1
  524. package/dist/runner/types.cjs.map +1 -1
  525. package/dist/runner/types.d.cts +26 -5
  526. package/dist/runner/types.d.mts +26 -5
  527. package/dist/runner/types.d.ts +26 -5
  528. package/dist/sandbox/action.cjs +3 -0
  529. package/dist/sandbox/action.cjs.map +1 -1
  530. package/dist/sandbox/commands.cjs +3 -0
  531. package/dist/sandbox/commands.cjs.map +1 -1
  532. package/dist/sandbox/compose.cjs +6 -0
  533. package/dist/sandbox/compose.cjs.map +1 -1
  534. package/dist/sandbox/docker-profile/registry.cjs +7 -0
  535. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  536. package/dist/sandbox/docker-profile/runtime.cjs +3 -0
  537. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  538. package/dist/sandbox/docker-profile/schema.cjs +7 -0
  539. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  540. package/dist/sandbox/incus.cjs +7 -0
  541. package/dist/sandbox/incus.cjs.map +1 -1
  542. package/dist/sandbox/layer.cjs +12 -0
  543. package/dist/sandbox/layer.cjs.map +1 -1
  544. package/dist/shared/adapter-cleanup.cjs +18 -0
  545. package/dist/shared/adapter-cleanup.cjs.map +1 -0
  546. package/dist/shared/adapter-cleanup.d.cts +4 -0
  547. package/dist/shared/adapter-cleanup.d.mts +4 -0
  548. package/dist/shared/adapter-cleanup.d.ts +4 -0
  549. package/dist/shared/adapter-cleanup.js +10 -0
  550. package/dist/shared/adapter-cleanup.js.map +1 -0
  551. package/dist/shared/attempt-lifecycle.cjs +3 -0
  552. package/dist/shared/attempt-lifecycle.cjs.map +1 -0
  553. package/dist/shared/attempt-lifecycle.d.cts +13 -0
  554. package/dist/shared/attempt-lifecycle.d.mts +13 -0
  555. package/dist/shared/attempt-lifecycle.d.ts +13 -0
  556. package/dist/shared/attempt-lifecycle.js +4 -0
  557. package/dist/shared/attempt-lifecycle.js.map +1 -0
  558. package/dist/show/contribution.cjs +52 -14
  559. package/dist/show/contribution.cjs.map +1 -1
  560. package/dist/show/contribution.d.cts +23 -1
  561. package/dist/show/contribution.d.mts +23 -1
  562. package/dist/show/contribution.d.ts +23 -1
  563. package/dist/show/model.cjs +8 -1
  564. package/dist/show/model.cjs.map +1 -1
  565. package/dist/show/model.d.cts +10 -1
  566. package/dist/show/model.d.mts +10 -1
  567. package/dist/show/model.d.ts +10 -1
  568. package/dist/show/render.cjs +287 -49
  569. package/dist/show/render.cjs.map +1 -1
  570. package/dist/show/render.d.cts +3 -0
  571. package/dist/show/render.d.mts +3 -0
  572. package/dist/show/render.d.ts +3 -0
  573. package/dist/sources/projector.cjs +3 -0
  574. package/dist/sources/projector.cjs.map +1 -1
  575. package/dist/types.cjs.map +1 -1
  576. package/dist/types.d.cts +1 -1
  577. package/dist/types.d.mts +1 -1
  578. package/dist/types.d.ts +1 -1
  579. package/dist/view/app-dist/.vite/manifest.json +2 -2
  580. package/dist/view/app-dist/assets/index-CmVoXbwG.js +63 -0
  581. package/dist/view/app-dist/assets/{quality-cost-scatter-CFB3wnkN.js → quality-cost-scatter-BuLISaH4.js} +1 -1
  582. package/dist/view/app-dist/index.html +1 -1
  583. package/dist/view/cli/contribution.cjs +54 -21
  584. package/dist/view/cli/contribution.cjs.map +1 -1
  585. package/dist/view/cli/contribution.d.cts +2 -1
  586. package/dist/view/cli/contribution.d.mts +2 -1
  587. package/dist/view/cli/contribution.d.ts +2 -1
  588. package/dist/view/function-runtime.mjs +13231 -11647
  589. package/dist/view/http-protocol.cjs +3 -0
  590. package/dist/view/http-protocol.cjs.map +1 -1
  591. package/dist/view/http-protocol.d.cts +8 -0
  592. package/dist/view/http-protocol.d.mts +8 -0
  593. package/dist/view/http-protocol.d.ts +8 -0
  594. package/dist/view/inspection-host.cjs +17 -1
  595. package/dist/view/inspection-host.cjs.map +1 -1
  596. package/dist/view/render.cjs +1 -0
  597. package/dist/view/render.cjs.map +1 -1
  598. package/dist/view/render.d.cts +2 -1
  599. package/dist/view/render.d.mts +2 -1
  600. package/dist/view/render.d.ts +2 -1
  601. package/dist/view/revision.cjs.map +1 -1
  602. package/dist/view/revision.d.cts +12 -0
  603. package/dist/view/revision.d.mts +12 -0
  604. package/dist/view/revision.d.ts +12 -0
  605. package/dist/view/server.cjs +10 -9
  606. package/dist/view/server.cjs.map +1 -1
  607. package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
  608. package/docs-site/zh/explanation/adapter.mdx +2 -2
  609. package/docs-site/zh/explanation/assert.mdx +60 -24
  610. package/docs-site/zh/explanation/drive.mdx +1 -1
  611. package/docs-site/zh/explanation/evals.mdx +31 -29
  612. package/docs-site/zh/explanation/experiment.mdx +15 -15
  613. package/docs-site/zh/explanation/judge.mdx +23 -15
  614. package/docs-site/zh/explanation/overview.mdx +44 -21
  615. package/docs-site/zh/explanation/record.mdx +28 -13
  616. package/docs-site/zh/explanation/results-flow.mdx +37 -0
  617. package/docs-site/zh/explanation/runner.mdx +27 -6
  618. package/docs-site/zh/index.mdx +22 -115
  619. package/docs-site/zh/introduction.mdx +89 -61
  620. package/docs-site/zh/reference/cli.mdx +50 -26
  621. package/docs-site/zh/reference/define-agent.mdx +37 -5
  622. package/docs-site/zh/reference/define-eval.mdx +130 -29
  623. package/docs-site/zh/reference/define-experiment.mdx +251 -0
  624. package/docs-site/zh/reference/events.mdx +34 -30
  625. package/docs-site/zh/reference/expect.mdx +77 -2
  626. package/docs-site/zh/reference/official-adapters.mdx +2 -2
  627. package/docs-site/zh/troubleshooting/debug-sandbox.mdx +43 -24
  628. package/docs-site/zh/troubleshooting/debugging.mdx +65 -42
  629. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +35 -28
  630. package/docs-site/zh/tutorials/accept-results.mdx +34 -24
  631. package/docs-site/zh/tutorials/agent-feedback-loop.mdx +74 -43
  632. package/docs-site/zh/tutorials/agent-onboarding.mdx +27 -20
  633. package/docs-site/zh/tutorials/authoring.mdx +138 -121
  634. package/docs-site/zh/tutorials/ci-integration.mdx +46 -22
  635. package/docs-site/zh/tutorials/compare-runs.mdx +40 -13
  636. package/docs-site/zh/tutorials/concurrency.mdx +66 -62
  637. package/docs-site/zh/tutorials/configuration.mdx +17 -17
  638. package/docs-site/zh/tutorials/connect-otel.mdx +48 -37
  639. package/docs-site/zh/tutorials/connect-your-agent.mdx +80 -173
  640. package/docs-site/zh/tutorials/control-run-cost.mdx +63 -12
  641. package/docs-site/zh/tutorials/criteria-files.mdx +28 -21
  642. package/docs-site/zh/tutorials/custom-application.mdx +75 -55
  643. package/docs-site/zh/tutorials/dataset-fanout.mdx +32 -22
  644. package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +38 -31
  645. package/docs-site/zh/tutorials/docker-in-docker.mdx +83 -89
  646. package/docs-site/zh/tutorials/eval-groups.mdx +70 -89
  647. package/docs-site/zh/tutorials/evaluation-kinds.mdx +12 -5
  648. package/docs-site/zh/tutorials/experiment-services.mdx +243 -0
  649. package/docs-site/zh/tutorials/fixtures.mdx +42 -26
  650. package/docs-site/zh/tutorials/handle-execution-failures.mdx +41 -19
  651. package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +21 -16
  652. package/docs-site/zh/tutorials/niceeval-taste-application.mdx +394 -0
  653. package/docs-site/zh/tutorials/niceeval-taste.mdx +190 -0
  654. package/docs-site/zh/tutorials/nixos-managed-dind.mdx +51 -39
  655. package/docs-site/zh/tutorials/plugins.mdx +55 -31
  656. package/docs-site/zh/tutorials/prebuilt-sandbox.mdx +204 -0
  657. package/docs-site/zh/tutorials/quickstart.mdx +91 -47
  658. package/docs-site/zh/tutorials/reporters.mdx +45 -30
  659. package/docs-site/zh/tutorials/rerun-and-cache.mdx +39 -40
  660. package/docs-site/zh/tutorials/sandbox-agent.mdx +65 -40
  661. package/docs-site/zh/tutorials/sandbox-providers.mdx +104 -282
  662. package/docs-site/zh/tutorials/sandbox-reuse.mdx +65 -97
  663. package/docs-site/zh/tutorials/select-and-preview.mdx +25 -20
  664. package/docs-site/zh/tutorials/verify-judge.mdx +49 -26
  665. package/docs-site/zh/tutorials/viewing-results.mdx +130 -80
  666. package/docs-site/zh/tutorials/write-experiment.mdx +116 -298
  667. package/docs-site/zh/tutorials/write-send.mdx +53 -52
  668. package/node_modules/undici/docs/docs/api/Agent.md +8 -8
  669. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
  670. package/node_modules/undici/docs/docs/api/Errors.md +25 -0
  671. package/node_modules/undici/docs/docs/api/Interceptors.md +4 -3
  672. package/node_modules/undici/docs/docs/api/Pool.md +5 -6
  673. package/node_modules/undici/lib/api/readable.js +1 -2
  674. package/node_modules/undici/lib/core/request.js +23 -2
  675. package/node_modules/undici/lib/core/util.js +0 -39
  676. package/node_modules/undici/lib/dispatcher/client-h1.js +11 -4
  677. package/node_modules/undici/lib/dispatcher/client-h2.js +52 -8
  678. package/node_modules/undici/lib/dispatcher/client.js +1 -1
  679. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -2
  680. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
  681. package/node_modules/undici/lib/dispatcher/pool-base.js +63 -2
  682. package/node_modules/undici/lib/dispatcher/pool.js +90 -7
  683. package/node_modules/undici/lib/dispatcher/proxy-agent.js +16 -3
  684. package/node_modules/undici/lib/handler/deduplication-handler.js +24 -11
  685. package/node_modules/undici/lib/handler/redirect-handler.js +5 -0
  686. package/node_modules/undici/lib/handler/retry-handler.js +72 -13
  687. package/node_modules/undici/lib/interceptor/cache.js +4 -1
  688. package/node_modules/undici/lib/interceptor/decompress.js +236 -69
  689. package/node_modules/undici/lib/web/cache/cache.js +17 -8
  690. package/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
  691. package/node_modules/undici/lib/web/cookies/index.js +19 -7
  692. package/node_modules/undici/lib/web/cookies/util.js +3 -1
  693. package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -1
  694. package/node_modules/undici/lib/web/fetch/body.js +22 -15
  695. package/node_modules/undici/lib/web/fetch/data-url.js +6 -6
  696. package/node_modules/undici/lib/web/fetch/formdata.js +30 -36
  697. package/node_modules/undici/lib/web/fetch/headers.js +34 -31
  698. package/node_modules/undici/lib/web/fetch/index.js +38 -14
  699. package/node_modules/undici/lib/web/fetch/request.js +74 -79
  700. package/node_modules/undici/lib/web/fetch/response.js +43 -44
  701. package/node_modules/undici/lib/web/fetch/util.js +7 -7
  702. package/node_modules/undici/lib/web/infra/index.js +16 -1
  703. package/node_modules/undici/lib/web/webidl/index.js +2 -14
  704. package/node_modules/undici/lib/web/websocket/events.js +43 -26
  705. package/node_modules/undici/lib/web/websocket/receiver.js +5 -0
  706. package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
  707. package/node_modules/undici/lib/web/websocket/websocket.js +44 -41
  708. package/node_modules/undici/package.json +1 -1
  709. package/node_modules/undici/types/diagnostics-channel.d.ts +2 -1
  710. package/node_modules/undici/types/interceptors.d.ts +1 -1
  711. package/node_modules/undici/types/webidl.d.ts +13 -7
  712. package/package.json +4 -4
  713. package/dist/view/app-dist/assets/index-DFzw1L97.js +0 -63
  714. package/docs-site/zh/tutorials/experiments.mdx +0 -101
package/INDEX.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  - **已有项目要运行或复验。** 先读 `docs-site/zh/tutorials/agent-feedback-loop.mdx`,再按任务从索引树补读 Authoring、接入或 Reference 页面。保留用户已经给出的范围、授权和预算;只有缺少会改变被测目标、运行边界、凭证边界或费用的决定时才提问。
16
16
  - **只读诊断。** 先读 `docs-site/zh/tutorials/agent-feedback-loop.mdx`,再从索引树选择相关 Troubleshooting 或 Reference 页面。只从 `show`、`query` 或 `view` 收集公开证据;不要修改项目、重跑 Experiment、采用结果或写入 `.niceeval/`。
17
- - **编写或修正评估。** 先读 `docs-site/zh/tutorials/authoring.mdx` 和 `docs-site/zh/tutorials/evaluation-kinds.mdx`;要连接被测对象时再读对应接入教程。评估输入必须覆盖真实业务能力,并能区分被测系统是否完成任务。
17
+ - **编写或修正评估。** 先读 `docs-site/zh/tutorials/authoring.mdx` 和 `docs-site/zh/tutorials/evaluation-kinds.mdx`,交付前按 `docs-site/zh/tutorials/niceeval-taste.mdx` 审阅判据;被测对象提供业务事实时再读 `docs-site/zh/tutorials/niceeval-taste-application.mdx`。要连接被测对象时再读对应接入教程。评估输入必须覆盖真实业务能力,并能区分被测系统是否完成任务。
18
18
  - **首次接入。** 读 `docs-site/zh/tutorials/agent-onboarding.mdx`,它拥有探索、必要决策、事件映射和生命周期的完整步骤。
19
19
 
20
20
  ## 帮用户跑通实验
@@ -39,73 +39,78 @@
39
39
 
40
40
  ## `docs-site/zh/tutorials/`
41
41
 
42
- - `docs-site/zh/tutorials/accept-results.mdx` — 审阅并采用历史 Attempt:从 --dry 取得候选 locator,核对不可变 Attempt,再用 niceeval accept 原子采用明确结果,并用新 Run ID 验证分母与来源。
43
- - `docs-site/zh/tutorials/agent-feedback-loop.mdx` — 让 Coding Agent 根据结果迭代:让 Coding Agent 读取 receipt 的 createdRunIds,查看结果,再区分被测失败、证据错误与评估用例误判。
42
+ - `docs-site/zh/tutorials/accept-results.mdx` — 确认旧结果仍然成立,免去重跑:配置变了、NiceEval 不敢沿用旧结果,而你确认它不受影响时,用 niceeval accept 明确接受它,省下一次付费重跑。
43
+ - `docs-site/zh/tutorials/agent-feedback-loop.mdx` — 让 Coding Agent 根据结果迭代:让 Coding Agent 自己跑评估、读结果、判断该改应用还是改断言,再复验,不用你把终端输出复制来复制去。
44
44
  - `docs-site/zh/tutorials/agent-onboarding.mdx` — Coding Agent 从零接入项目:给 Coding Agent 的完整接入流程:探索项目、与用户确认路径、配置 Judge、写出 Adapter、Experiment 与评估用例,并跑通第一个实验。
45
- - `docs-site/zh/tutorials/authoring.mdx` — 编写评估用例: 单轮、多轮和测试集模式:用 defineEval 编写评估用例,包括单轮对话、多轮对话、数据驱动测试、Sandbox Workspace 和评估的生命周期与 Fixture。
46
- - `docs-site/zh/tutorials/ci-integration.mdx` — 在 CI 中运行 NiceEval:让 CI 使用退出状态判定门禁,保留最后的 receipt,并向平台提供 JUnit 文件。
47
- - `docs-site/zh/tutorials/compare-runs.mdx` — 比较多个固定 Run:用 `runs.compare` operation 比较明确 Run 的已发布事实,并在浏览器中审阅相同的结果。
48
- - `docs-site/zh/tutorials/concurrency.mdx` — 调好并发:吞吐、共享状态与固定执行顺序:全局并发、实验上限与 Provider capacity 共同限制实际吞吐。这一页说明排队状态、共享状态与固定顺序。
45
+ - `docs-site/zh/tutorials/authoring.mdx` — 编写评估用例:单轮、多轮和测试集:用 defineEval 写评估用例:发送消息、检查回复和工具调用、多轮对话、用一份测试集生成多条用例,以及给 Coding Agent 准备工作区和收尾外部资源。
46
+ - `docs-site/zh/tutorials/ci-integration.mdx` — 在 CI 里自动跑评估,挡住回归:在每个 PR 上运行同一条 niceeval exp,评估不通过就让 CI 变红。保留这次运行的 Run ID 供后续步骤读取,并把 JUnit 文件交给 CI 平台展示。
47
+ - `docs-site/zh/tutorials/compare-runs.mdx` — 比较两次运行:基线和候选谁更好:固定两次运行的 Run ID,在浏览器里并排审阅,或用 runs.compare 让脚本和 CI 得到逐题配对的比较结果。
48
+ - `docs-site/zh/tutorials/concurrency.mdx` — 调好并发:吞吐、共享状态与固定执行顺序:一批评估跑得太慢时,先判断时间花在哪,再调全局并发和实验的 maxConcurrency。需要跨 Attempt 共享状态时,让它们按固定顺序串行。
49
49
  - `docs-site/zh/tutorials/configuration.mdx` — 把配置和密钥各放到该放的地方:跑几次、超时、并发、judge 这些值写进代码的哪一层,API key 和 provider token 用哪些环境变量。
50
- - `docs-site/zh/tutorials/connect-otel.mdx` — OTel 接入:把应用已有的 OTel span 发送给 NiceEval,在 niceeval view 中查看每轮调用瀑布图。评估用例断言仍以 Send 返回的事件和用量为准。
51
- - `docs-site/zh/tutorials/connect-your-agent.mdx` — 接入你的 Agent:写一个 Adapter、配置一个 Experiment,并运行第一条评估用例。再把配置和参数从 Experiment 传给 Adapter 与被测应用。
52
- - `docs-site/zh/tutorials/control-run-cost.mdx` — 控制一次运行的成本:用 attempts、首过即停、budget、并发和结果沿用分别控制统计样本、停止派发、花费保护与资源占用。
53
- - `docs-site/zh/tutorials/criteria-files.mdx` — 隐藏测试判分:让判据文件进缓存 fingerprint:用 loadText 在模块顶层读入隐藏测试、跑测脚本等判据文件,文件内容进入 fingerprint:改一字节自动重跑,不靠人工 --rerun。
54
- - `docs-site/zh/tutorials/custom-application.mdx` — 评估自定义应用:保留应用自己的方法与上下文,用 NiceEval 评估结构化结果和业务操作。
55
- - `docs-site/zh/tutorials/dataset-fanout.mdx` — 数据驱动测试(dataset fan-out):用多份数据运行同一套评估用例:从 .eval.ts 文件导出数组或 keyed record,将一套评估逻辑展开为多个 case。用 loadYaml 或 loadJson 读取外部测试集,并获得稳定 ID。
56
- - `docs-site/zh/tutorials/debug-lifecycle-plan.mdx` — 运行前检查 Sandbox 计划:用 niceeval debug 查看 Experiment、评估组、评估用例与 Agent 的实际 action 顺序和数值,而不创建运行资源。
50
+ - `docs-site/zh/tutorials/connect-otel.mdx` — 接入 OTel:在浏览器里看每轮调用瀑布图:应用已经在发 OTel trace 时,让它把 span 也发给 NiceEval 一份,就能在 niceeval view 里看到每一轮的模型调用、工具执行和耗时。断言不受影响。
51
+ - `docs-site/zh/tutorials/connect-your-agent.mdx` — 接入你的 Agent:选接入方式,传配置:按被测对象选择内置适配器或手写 Adapter,把地址和鉴权放进 Adapter 工厂、把 model 和 flags 经 ctx 转给应用,并按需加上工具调用、多轮和 tracing。
52
+ - `docs-site/zh/tutorials/control-run-cost.mdx` — 控制一次运行的成本:一次评估可能花掉几十美元。按你要控制的是什么,分别用 attempts、首过即停、budget、并发和结果沿用。
53
+ - `docs-site/zh/tutorials/criteria-files.mdx` — 用隐藏测试判分,改了测试自动重跑:用 loadText 读入隐藏测试、跑测脚本等判分文件。NiceEval 会记住文件内容,测试一改,用到它的评估用例下次自动重跑。
54
+ - `docs-site/zh/tutorials/custom-application.mdx` — 评估自定义应用:发帖、生图这类业务操作:被测应用不是对话式 Agent 时,用 defineAdapter 把它的业务方法直接暴露给评估用例,检查结构化结果和业务操作。
55
+ - `docs-site/zh/tutorials/dataset-fanout.mdx` — 数据驱动测试:一份测试集生成多条评估用例:几十条评估逻辑相同、只有输入不同时,从一个 .eval.ts 导出数组或对象,一套逻辑生成多条评估用例。也可以用 loadYaml 或 loadJson 读外部测试集,并给每条起稳定的 ID。
56
+ - `docs-site/zh/tutorials/debug-lifecycle-plan.mdx` — 运行前检查 Sandbox 会怎样准备:用 niceeval debug 列出一条评估在 Sandbox 里会按什么顺序准备、安装、执行和收尾,以及每一步的实际参数,不创建任何资源。
57
57
  - `docs-site/zh/tutorials/docker-in-docker.mdx` — 让 Sandbox 使用 Docker:根据任务信任边界选择 Docker socket、raw privileged DinD 或受管 rootless DinD,并为 Agent 准备 Docker CLI 与 daemon。
58
- - `docs-site/zh/tutorials/eval-groups.mdx` — 用评估组复用 Sandbox:用 defineEvalGroup 显式声明兼容成员:同组按稳定 ID 串行复用一台 Sandbox,不同组继续并行,并把公共准备放到正确的 Sandbox Layer。
59
- - `docs-site/zh/tutorials/evaluation-kinds.mdx` — 通过制与计分制评估:用 defineEval 与 defineScoreEval 编写通过制和计分制评估,调用即登记 Assertion。
60
- - `docs-site/zh/tutorials/experiments.mdx` — 实验矩阵:用运行矩阵比较 agents 和 models:使用 NiceEval experiments 让同一批评估用例横跨多个 agents、models 和 flags,比较 pass rate、成本和延迟。
61
- - `docs-site/zh/tutorials/fixtures.mdx` — Sandbox Fixture:用任务评估 coding agents:用 .eval.ts 给 coding agent 准备隔离 workspace、发送真实任务,并用 Sandbox 文件、命令、diff 和 judge 验证结果。
62
- - `docs-site/zh/tutorials/handle-execution-failures.mdx` — 在基础设施失败时停止无效运行:读懂自动重试,为确定性故障声明影响范围,修复后继续未完成的评估。
58
+ - `docs-site/zh/tutorials/eval-groups.mdx` — 用评估组让相关评估共用 Sandbox:几组评估各自需要一套很重的工具链时,用 defineEvalGroup 把它们分组:同组共用一台 Sandbox 依次执行,不同组照常并行。
59
+ - `docs-site/zh/tutorials/evaluation-kinds.mdx` — 按完成度给分:通过制与计分制:任务只有做到和没做到两种结果时用 defineEval 读通过率;有部分进展时用 defineScoreEval 按完成的步骤累计分数。
60
+ - `docs-site/zh/tutorials/experiment-services.mdx` — 启动实验共享服务:用 Experiment 的 setup / teardown 启停整个实验共用的隧道、mock server 或租约,把运行时地址交给 Agent 和 Sandbox,又不让它作废已有结果。
61
+ - `docs-site/zh/tutorials/fixtures.mdx` — 给 Coding Agent 准备任务:工作区、提示和验收:在评估用例里把一个真实项目放进 Sandbox,给 Coding Agent 发任务,再用文件内容、命令结果、diff 和 Judge 检查它做得对不对。
62
+ - `docs-site/zh/tutorials/handle-execution-failures.mdx` — 凭据失效或服务挂掉时,及时止损:了解 NiceEval 会自动重试哪些失败;发现凭据失效、共享服务断开这类注定失败的故障时,停止剩下的 Attempt,修好后只补跑没完成的部分。
63
63
  - `docs-site/zh/tutorials/install-custom-sandbox-agent.mdx` — 为自定义 Sandbox Agent 安装 CLI:用 ensure 和 installer 检查、安装并复检自定义 coding-agent CLI 的精确版本。
64
+ - `docs-site/zh/tutorials/niceeval-taste-application.mdx` — 自定义应用的评估判据:业务事实、领域 Match 与普通计算:被测应用提供客服记录、游戏状态这类业务事实时,让 Adapter 交付事实,用领域 Match 组合小条件,在正文里写普通计算,并保留未知状态。
65
+ - `docs-site/zh/tutorials/niceeval-taste.mdx` — NiceEval Taste:写出一眼能看懂判据的评估:让同事只读评估用例正文,就能说出它测什么、什么算通过、证据为什么够。用已有事实、简单条件和普通算术写判据,少造新概念。
64
66
  - `docs-site/zh/tutorials/nixos-managed-dind.mdx` — 在 NixOS 上配置 Managed DinD:使用 NiceEval 的 NixOS module 部署 managed rootless Docker profile,并通过 doctor 验证宿主环境。
65
- - `docs-site/zh/tutorials/plugins.mdx` — 用 Plugin 复用完整运行条件:用 definePlugin 组合宿主生命周期与 command-only SandboxLayer,并在多个 owner 之间复用。
66
- - `docs-site/zh/tutorials/quickstart.mdx` — 为你的 Agent 项目设置评估:安装 NiceEval,写三个文件,10 分钟内对你自己的应用跑通第一条评估用例。
67
- - `docs-site/zh/tutorials/reporters.mdx` — 将当前运行接入外部系统:使用 Reporter、JUnit 和 receipt 把当前 Invocation 的信息交给外部系统,同时保持 Record 的所有权边界。
68
- - `docs-site/zh/tutorials/rerun-and-cache.mdx` — 重跑与沿用结果:查看每个 slot 会执行、自动采用还是由操作者接受,并理解这些关系怎样进入 Record。
69
- - `docs-site/zh/tutorials/sandbox-agent.mdx` — Sandbox Agent:评估 Claude Code、Codex 和 bub:使用 NiceEval 内置 agents 或自定义 adapter,在 Docker 或云端 sandbox 中运行 coding-agent CLI。
70
- - `docs-site/zh/tutorials/sandbox-providers.mdx` — Sandbox:官方 Sandbox Docker、Vercel 或 E2B Provider。通过预制快照加速评估
71
- - `docs-site/zh/tutorials/sandbox-reuse.mdx` — 在一批评估中复用 Sandbox:在 Experiment 里声明 sandboxReuse 让多条 Attempt 共用 Sandbox,让 before/after 可安全重放,并配好 lifetimeMs。无法安全保留状态时改用并发。
72
- - `docs-site/zh/tutorials/select-and-preview.mdx` — 选择并预览运行范围:先列出 Experiment,再用路径、评估用例前缀和 tag 收窄范围,最后用 --dry 确认计划后再花费模型与 Sandbox 成本。
73
- - `docs-site/zh/tutorials/verify-judge.mdx` — 配置并验证 Judge:选择具名 Judge Provider,用 rubric 和命名材料完成一次真实判分。
74
- - `docs-site/zh/tutorials/viewing-results.mdx` — 查看运行结果:在终端用 show 逐层查看结果;在浏览器用 View 审阅,在自动化中用 query 读取 JSON。
75
- - `docs-site/zh/tutorials/write-experiment.mdx` — 实验与生命周期:如何写好实验。选择 Agent、传递 model 和 flags,设置 attempts、预算、并发与 Sandbox,并用 setup / teardown 起停实验级共享服务。
67
+ - `docs-site/zh/tutorials/plugins.mdx` — 用 Plugin 复用一整套运行条件:同一套“先在宿主机起服务、再在 Sandbox 里准备环境”的条件要在多个 Experiment、评估组或评估用例里用时,用 definePlugin 写一次,到处挂载。
68
+ - `docs-site/zh/tutorials/prebuilt-sandbox.mdx` — 预制 Sandbox 环境:让每次评估更快开始:把系统包、Agent CLI 和大缓存做进 Docker 镜像、Vercel 快照或 E2B template,从官方基线派生;运行时缓存用 checkpoint 在 Attempt 之间延续。
69
+ - `docs-site/zh/tutorials/quickstart.mdx` — 快速开始:跑通第一条评估用例:安装 NiceEval,写一个 Adapter、一个 Experiment 和一条评估用例,十分钟左右对你自己的应用跑通第一条评估,并在终端和浏览器里看到结果。
70
+ - `docs-site/zh/tutorials/reporters.mdx` — 把运行结果上报给 Braintrust 等外部系统:团队已经在用 Braintrust 或自己的看板时,用 Reporter 在运行过程中把结果发过去;CI 平台用 JUnit;后续脚本用 receipt 里的 Run ID 读取结果。
71
+ - `docs-site/zh/tutorials/rerun-and-cache.mdx` — 修改后只重跑受影响的评估:改了 prompt、评估用例或模型之后,用 --dry 看清哪些结果会沿用、哪些会重跑,再用 --rerun 和 accept 控制范围。
72
+ - `docs-site/zh/tutorials/sandbox-agent.mdx` — Sandbox Agent:评估 Claude Code、Codex 和 bub:把 Claude Code、Codex、bub 等 Coding Agent 放进 Docker 或云端 Sandbox,给它一个真实仓库和任务,再用文件改动和项目测试判分。
73
+ - `docs-site/zh/tutorials/sandbox-providers.mdx` — 选择并配置 Sandbox:Docker、Vercel 或 E2B:给 Coding Agent 选一个隔离运行环境:本地 Docker、Vercel 或 E2B。按顺序准备环境,并用预制镜像和缓存让每次评估更快开始。
74
+ - `docs-site/zh/tutorials/sandbox-reuse.mdx` — 在一批评估中复用 Sandbox:每条 Attempt 都新建 Sandbox 太慢时,用 sandboxReuse 让一批 Attempt 依次共用同一个 Sandbox。说明它省了什么、留下了什么,以及准备代码要怎么写才能安全重放。
75
+ - `docs-site/zh/tutorials/select-and-preview.mdx` — 运行前确认跑哪些、跑几次:列出有哪些 Experiment,用 ID 前缀和 tag 缩小范围,再用 --dry 看清这次会跑哪些评估用例、多少次,确认无误再花钱。
76
+ - `docs-site/zh/tutorials/verify-judge.mdx` — 配置 Judge,并确认它真的能打分:给裁判模型 Judge 选好 Provider、模型和 API Key,再用一条最小评估跑一次真实判分,确认配置无误后再大批使用。
77
+ - `docs-site/zh/tutorials/viewing-results.mdx` — 查看运行结果:从总览找到失败原因:跑完评估后,用 niceeval show 在终端从总览逐层找到失败的那次运行,查看对话、耗时、用量和文件改动;在浏览器用 view 翻看;脚本和 CI 用 query 读 JSON。
78
+ - `docs-site/zh/tutorials/write-experiment.mdx` — 编写实验:比较模型、prompt 和 Agent:用 defineExperiment 固定被测 Agent、模型、flags 和运行次数。同一批评估用例写两份只差一个变量的 Experiment,就能比较两个模型或两版 prompt。
76
79
  - `docs-site/zh/tutorials/write-send.mdx` — 编写 Send:分七步编写 Adapter 的 send 函数:发送消息、续接会话、记录用量、映射工具事件、处理人工介入(HITL)、接入 OTel trace,并透传 Experiment flags。
77
80
 
78
81
  ## `docs-site/zh/explanation/`
79
82
 
80
83
  - `docs-site/zh/explanation/adapter.mdx` — Adapter:把 Agent 接入 NiceEval:Adapter 是你写的适配器。本文讲清楚 send 函数传入什么返回什么、被测系统配置怎么传、三个接入等级,以及 t 上的能力从哪来。
81
- - `docs-site/zh/explanation/assert.mdx` — NiceEval Assertion 与 Match:用 Match 描述值比较,调用即登记 Assertion;handle 只配置同一条 Assertion。
84
+ - `docs-site/zh/explanation/assert.mdx` — NiceEval Assertion 与 Match:Match 描述怎样比较一个值;调用检查方法时立即登记一条 Assertion,后面接的方法只配置这一条。
82
85
  - `docs-site/zh/explanation/drive.mdx` — NiceEval 里怎么驱动 agent:send、session 与 HITL:t.send() 和它返回的 Turn、t.sendFile()、多轮对话、t.newSession(),以及 respond() 处理的人工介入(HITL)。
83
- - `docs-site/zh/explanation/evals.mdx` — NiceEval 中的评估用例:生命周期、verdict 与文件:评估用例是一个测试用例:描述和 test 函数,agent-neutral。了解评估用例如何被发现、调度、评分和报告。
84
- - `docs-site/zh/explanation/experiment.mdx` — 实验(Experiment):评谁、怎么跑:Experiment 是可签入的运行配置:同一批评估用例对着哪个 agent、哪个模型、开哪些 flags、跑几次。评估用例与 experiment 分开的原因——晚绑定,让同一份评估用例换着对象跑。
86
+ - `docs-site/zh/explanation/evals.mdx` — NiceEval 中的评估用例:生命周期、判定与文件:评估用例说明发什么、什么算做对,不绑定被测对象。了解评估用例如何被发现、调度、评分和报告。
87
+ - `docs-site/zh/explanation/experiment.mdx` — 实验(Experiment):评谁、怎么跑:Experiment 是可签入的运行配置:同一批评估用例对着哪个 Agent、哪个模型、开哪些 flags、跑几次。评估用例与 Experiment 分开,同一批评估用例才能换着对象跑。
85
88
  - `docs-site/zh/explanation/hitl.mdx` — 人工介入(HITL):停轮、回答、继续:什么是 Human-in-the-loop,Claude Code / Codex / AI SDK 应用里它长什么样。NiceEval 如何把它变成可评的路径——waiting 停轮、input.requested 说明在等什么、t.respond 替人回答后同一轮继续。
86
89
  - `docs-site/zh/explanation/judge.mdx` — NiceEval 里的 Judge:评开放式输出:用 rubric、anchors 和显式材料评估开放式输出,需要时附上图片。
87
- - `docs-site/zh/explanation/overview.mdx` — NiceEval 的运行后数据流:理解 Record、固定 Inspection operation、Query、Show 和 View 的职责边界。
88
- - `docs-site/zh/explanation/record.mdx` — Record:了解 canonical SQLite Record 的写入、携带与读取边界。
89
- - `docs-site/zh/explanation/runner.mdx` — 运行、封口与读取:了解 Runner 如何发布 Run,以及读取路径为什么只看已封口事实。
90
+ - `docs-site/zh/explanation/overview.mdx` — NiceEval 的整体模型:一次评估由哪些部分组成:评估用例、Experiment、Adapter、Sandbox、Runner 和 Record 各管什么,它们怎样连成一次运行,以及为什么同一条评估要跑多次。
91
+ - `docs-site/zh/explanation/record.mdx` — Record:了解项目结果文件 .niceeval/record.sqlite 保存什么、怎样复制给别人,以及读取时会校验什么。
92
+ - `docs-site/zh/explanation/results-flow.mdx` — NiceEval 的运行后数据流:理解运行结果保存在哪里,以及 query、show 和 view 三个查看入口各管什么。
93
+ - `docs-site/zh/explanation/runner.mdx` — 运行怎样产出可读的结果:了解 Runner 怎样创建 Run、逐个发布 Attempt,以及查看命令为什么只读已发布的结果。
90
94
  - `docs-site/zh/explanation/tier.mdx` — 接入等级(Tier):三级投入,三组能力:按「Adapter 接到哪里、额外拿到什么观测数据」接入分三级:Tier 1 只接 send,Tier 2 加 OTel,Tier 3 侵入改造暴露 experiment flags。每档买到什么、什么时候升级。
91
95
 
92
96
  ## `docs-site/zh/reference/`
93
97
 
94
98
  - `docs-site/zh/reference/builtin-agents.mdx` — 内置 Agent 能力参考:NiceEval 内置的 claude-code、codex、bub 适配器分别做到了哪些能力,对应哪些断言,以及已知限制。
95
99
  - `docs-site/zh/reference/capabilities.mdx` — 能力与证据覆盖参考:Agent 的构造方式、运行时行为与必填的六通道 evidenceCoverage 声明,怎样共同决定 NiceEval 的断言能相信什么。
96
- - `docs-site/zh/reference/cli.mdx` — CLI:用固定的 query、show 和 view 读取 canonical SQLite Record。
100
+ - `docs-site/zh/reference/cli.mdx` — CLI:用 query、show 和 view 读取运行记录。
97
101
  - `docs-site/zh/reference/define-agent.mdx` — 定义评估对象:Adapter 参考:自定义 Adapter 与 Agent 接入的上下文、断言方法和资源生命周期。
98
102
  - `docs-site/zh/reference/define-config.mdx` — defineConfig:项目默认配置:defineConfig 参考:Judge Runtime、Reporters、并发、超时和 Sandbox 默认值。
99
103
  - `docs-site/zh/reference/define-eval.mdx` — defineEval:声明、配置并运行 NiceEval 评估用例:defineEval 参考:选项、test context t、Turn 返回值、Sandbox 辅助函数,以及数组和 keyed record 测试集导出。
100
- - `docs-site/zh/reference/events.mdx` — 标准事件流参考:StreamEvent 的十种事件:每种的字段、什么时候吐、哪些断言消费它。adapter 的核心工作就是产出这条流。
104
+ - `docs-site/zh/reference/define-experiment.mdx` — defineExperiment:实验配置:defineExperiment 的实验字段、类型与默认行为参考。
105
+ - `docs-site/zh/reference/events.mdx` — 标准事件流参考:StreamEvent 的十种事件:每种的字段、何时产出、哪些断言读取它。Adapter 的主要工作就是产出这条流。
101
106
  - `docs-site/zh/reference/expect.mdx` — niceeval/expect Match 参考:niceeval/expect 的纯 Match factory:组合文字、结构、条件,再交给 t.check 登记 Assertion。
102
107
  - `docs-site/zh/reference/official-adapters.mdx` — 官方适配器一览:NiceEval 内置的 Sandbox 和非 Sandbox 适配器分别是什么、怎么鉴权,Sandbox 型里怎么装 MCP server、Skill、插件,怎么使用 Agent 官方配置文件。
103
108
 
104
109
  ## `docs-site/zh/troubleshooting/`
105
110
 
106
111
  - `docs-site/zh/troubleshooting/debug-sandbox.mdx` — 保留 Sandbox 现场排查问题:用 --keep-sandbox 把失败 Attempt 的 Sandbox 保留成可随时唤醒的现场,用 niceeval sandbox enter 进去手动排查,用 sandbox list / stop 查看和清理。
107
- - `docs-site/zh/troubleshooting/debugging.mdx` — 排查已封口的结果:根据具名错误和闭合 Inspection result,通过 Show、Query 与 View 排查问题。
108
- - `docs-site/zh/troubleshooting/recover-after-kill.mdx` — 运行被强杀后恢复:进程被 kill -9、CI 超时或断电中断后,保留已发布结果、收口失去 owner 的 Run,并收回遗留 Sandbox。
112
+ - `docs-site/zh/troubleshooting/debugging.mdx` — 排查失败的评估结果:评估失败或出错时,从具体的 Run 或 Attempt 出发,用 show 逐层查看错误、对话、耗时和改动,找到是应用、Adapter、环境还是断言的问题。
113
+ - `docs-site/zh/troubleshooting/recover-after-kill.mdx` — 运行被强杀后恢复:进程被 kill -9、CI 超时或断电中断后,保留已经跑完的结果,结束失去进程的 Run,并收回遗留的 Sandbox。
109
114
 
110
115
  ## `docs-site/zh/examples/`
111
116
 
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-execution-trace.js","sourceRoot":"","sources":["adapter-execution-trace.ts"],"names":[],"mappings":"","sourcesContent":["/** Finite plain JSON accepted by the generic execution-trace boundary. */\nexport type TraceJson = null | boolean | number | string | readonly TraceJson[] | {\n readonly [key: string]: TraceJson;\n};\nexport interface ExecutionTraceLimitation {\n readonly code: string;\n readonly message: string;\n}\nexport interface ExecutionTraceScope {\n readonly scopeId: string;\n readonly label: string;\n readonly boundary: TraceJson;\n}\nexport interface ExecutionTraceSource {\n readonly id: string;\n readonly eventId?: string;\n readonly sequence?: number;\n}\nexport interface ExecutionTraceActor {\n readonly id: string;\n readonly label?: string;\n}\nexport interface ExecutionTraceTime {\n readonly clockId: string;\n readonly value: number;\n readonly unit: string;\n}\nexport type ExecutionTraceLink = {\n readonly relation: string;\n readonly targetKey: string;\n} | {\n readonly relation: string;\n readonly unresolved: {\n readonly sourceEventId: string;\n readonly reason: string;\n };\n};\nexport interface ExecutionTraceEvidence {\n readonly key: string;\n readonly label: string;\n readonly artifactId: string;\n readonly pointer: string;\n}\nexport interface ExecutionTraceScopeMembership {\n readonly scopeId: string;\n readonly state: \"included\" | \"excluded\" | \"unknown\";\n}\n/**\n * One Adapter-owned domain event. `Type` and `Payload` preserve a caller's\n * discriminated union without requiring NiceEval to execute its domain parser.\n */\nexport interface ExecutionTraceEvent<out Type extends string = string, out Payload extends TraceJson = TraceJson> {\n readonly key: string;\n readonly type: Type;\n readonly source: ExecutionTraceSource;\n readonly actor?: ExecutionTraceActor;\n readonly time?: ExecutionTraceTime;\n readonly summary: string;\n readonly payload?: Payload;\n readonly links?: readonly ExecutionTraceLink[];\n readonly evidence?: readonly ExecutionTraceEvidence[];\n readonly scopeMemberships?: readonly ExecutionTraceScopeMembership[];\n}\nexport interface ExecutionTraceInput<out Event extends ExecutionTraceEvent = ExecutionTraceEvent> {\n readonly traceId: string;\n readonly schema: {\n readonly id: string;\n };\n readonly collection: {\n readonly state: \"complete\" | \"partial\";\n readonly limitations: readonly ExecutionTraceLimitation[];\n };\n readonly scopes: readonly ExecutionTraceScope[];\n readonly events: readonly Event[];\n}\nexport interface ExecutionTraceReceipt {\n readonly state: \"accepted\";\n readonly traceId: string;\n readonly events: readonly {\n readonly key: string;\n readonly eventId: string;\n readonly evidence: readonly {\n readonly key: string;\n readonly evidenceId: string;\n }[];\n }[];\n}\n"]}
1
+ {"version":3,"file":"adapter-execution-trace.js","sourceRoot":"","sources":["adapter-execution-trace.ts"],"names":[],"mappings":"","sourcesContent":["/** Finite plain JSON accepted by the generic execution-trace boundary. */\nexport type TraceJson = null | boolean | number | string | readonly TraceJson[] | {\n readonly [key: string]: TraceJson;\n};\nexport interface ExecutionTraceLimitation {\n readonly code: string;\n readonly message: string;\n}\nexport interface ExecutionTraceScope {\n readonly scopeId: string;\n readonly label: string;\n readonly boundary: TraceJson;\n}\nexport interface ExecutionTraceSource {\n readonly id: string;\n readonly eventId?: string;\n readonly sequence?: number;\n}\nexport interface ExecutionTraceActor {\n readonly id: string;\n readonly label?: string;\n}\nexport interface ExecutionTraceTime {\n readonly clockId: string;\n readonly value: number;\n readonly unit: string;\n}\nexport type ExecutionTraceLink = {\n readonly relation: string;\n readonly targetKey: string;\n} | {\n readonly relation: string;\n readonly unresolved: {\n readonly sourceEventId: string;\n readonly reason: string;\n };\n};\nexport interface ExecutionTraceEvidence {\n readonly key: string;\n readonly label: string;\n readonly artifactId: string;\n readonly pointer: string;\n}\nexport interface ExecutionTraceScopeMembership {\n readonly scopeId: string;\n readonly state: \"included\" | \"excluded\" | \"unknown\";\n}\n/** One closed, human-readable display block sealed with its event. */\nexport type ExecutionDisplayBlock = {\n readonly kind: \"text\";\n readonly text: string;\n} | {\n readonly kind: \"message\";\n readonly role: \"user\" | \"assistant\" | \"system\" | \"other\";\n readonly speaker?: string;\n readonly text: string;\n} | {\n readonly kind: \"fields\";\n readonly fields: readonly {\n readonly label: string;\n readonly value: string | number | boolean | null;\n }[];\n} | {\n readonly kind: \"code\";\n readonly language?: string;\n readonly text: string;\n} | {\n readonly kind: \"image\";\n readonly artifactId: string;\n readonly alt: string;\n};\n/**\n * One Adapter-owned domain event. `Type` and `Payload` preserve a caller's\n * discriminated union without requiring NiceEval to execute its domain parser.\n */\nexport interface ExecutionTraceEvent<out Type extends string = string, out Payload extends TraceJson = TraceJson> {\n readonly key: string;\n readonly type: Type;\n readonly source: ExecutionTraceSource;\n readonly actor?: ExecutionTraceActor;\n readonly time?: ExecutionTraceTime;\n readonly summary: string;\n readonly payload?: Payload;\n readonly links?: readonly ExecutionTraceLink[];\n readonly evidence?: readonly ExecutionTraceEvidence[];\n readonly scopeMemberships?: readonly ExecutionTraceScopeMembership[];\n /** Optional human-readable blocks; omitted means the event has no display. */\n readonly display?: readonly ExecutionDisplayBlock[];\n}\nexport interface ExecutionTraceInput<out Event extends ExecutionTraceEvent = ExecutionTraceEvent> {\n readonly traceId: string;\n readonly schema: {\n readonly id: string;\n };\n readonly collection: {\n readonly state: \"complete\" | \"partial\";\n readonly limitations: readonly ExecutionTraceLimitation[];\n };\n readonly scopes: readonly ExecutionTraceScope[];\n readonly events: readonly Event[];\n}\nexport interface ExecutionTraceReceipt {\n readonly state: \"accepted\";\n readonly traceId: string;\n readonly events: readonly {\n readonly key: string;\n readonly eventId: string;\n readonly evidence: readonly {\n readonly key: string;\n readonly evidenceId: string;\n }[];\n }[];\n}\n"]}
@@ -45,6 +45,30 @@ export interface ExecutionTraceScopeMembership {
45
45
  readonly scopeId: string;
46
46
  readonly state: "included" | "excluded" | "unknown";
47
47
  }
48
+ /** One closed, human-readable display block sealed with its event. */
49
+ export type ExecutionDisplayBlock = {
50
+ readonly kind: "text";
51
+ readonly text: string;
52
+ } | {
53
+ readonly kind: "message";
54
+ readonly role: "user" | "assistant" | "system" | "other";
55
+ readonly speaker?: string;
56
+ readonly text: string;
57
+ } | {
58
+ readonly kind: "fields";
59
+ readonly fields: readonly {
60
+ readonly label: string;
61
+ readonly value: string | number | boolean | null;
62
+ }[];
63
+ } | {
64
+ readonly kind: "code";
65
+ readonly language?: string;
66
+ readonly text: string;
67
+ } | {
68
+ readonly kind: "image";
69
+ readonly artifactId: string;
70
+ readonly alt: string;
71
+ };
48
72
  /**
49
73
  * One Adapter-owned domain event. `Type` and `Payload` preserve a caller's
50
74
  * discriminated union without requiring NiceEval to execute its domain parser.
@@ -60,6 +84,8 @@ export interface ExecutionTraceEvent<out Type extends string = string, out Paylo
60
84
  readonly links?: readonly ExecutionTraceLink[];
61
85
  readonly evidence?: readonly ExecutionTraceEvidence[];
62
86
  readonly scopeMemberships?: readonly ExecutionTraceScopeMembership[];
87
+ /** Optional human-readable blocks; omitted means the event has no display. */
88
+ readonly display?: readonly ExecutionDisplayBlock[];
63
89
  }
64
90
  export interface ExecutionTraceInput<out Event extends ExecutionTraceEvent = ExecutionTraceEvent> {
65
91
  readonly traceId: string;
@@ -45,6 +45,30 @@ export interface ExecutionTraceScopeMembership {
45
45
  readonly scopeId: string;
46
46
  readonly state: "included" | "excluded" | "unknown";
47
47
  }
48
+ /** One closed, human-readable display block sealed with its event. */
49
+ export type ExecutionDisplayBlock = {
50
+ readonly kind: "text";
51
+ readonly text: string;
52
+ } | {
53
+ readonly kind: "message";
54
+ readonly role: "user" | "assistant" | "system" | "other";
55
+ readonly speaker?: string;
56
+ readonly text: string;
57
+ } | {
58
+ readonly kind: "fields";
59
+ readonly fields: readonly {
60
+ readonly label: string;
61
+ readonly value: string | number | boolean | null;
62
+ }[];
63
+ } | {
64
+ readonly kind: "code";
65
+ readonly language?: string;
66
+ readonly text: string;
67
+ } | {
68
+ readonly kind: "image";
69
+ readonly artifactId: string;
70
+ readonly alt: string;
71
+ };
48
72
  /**
49
73
  * One Adapter-owned domain event. `Type` and `Payload` preserve a caller's
50
74
  * discriminated union without requiring NiceEval to execute its domain parser.
@@ -60,6 +84,8 @@ export interface ExecutionTraceEvent<out Type extends string = string, out Paylo
60
84
  readonly links?: readonly ExecutionTraceLink[];
61
85
  readonly evidence?: readonly ExecutionTraceEvidence[];
62
86
  readonly scopeMemberships?: readonly ExecutionTraceScopeMembership[];
87
+ /** Optional human-readable blocks; omitted means the event has no display. */
88
+ readonly display?: readonly ExecutionDisplayBlock[];
63
89
  }
64
90
  export interface ExecutionTraceInput<out Event extends ExecutionTraceEvent = ExecutionTraceEvent> {
65
91
  readonly traceId: string;
@@ -45,6 +45,30 @@ export interface ExecutionTraceScopeMembership {
45
45
  readonly scopeId: string;
46
46
  readonly state: "included" | "excluded" | "unknown";
47
47
  }
48
+ /** One closed, human-readable display block sealed with its event. */
49
+ export type ExecutionDisplayBlock = {
50
+ readonly kind: "text";
51
+ readonly text: string;
52
+ } | {
53
+ readonly kind: "message";
54
+ readonly role: "user" | "assistant" | "system" | "other";
55
+ readonly speaker?: string;
56
+ readonly text: string;
57
+ } | {
58
+ readonly kind: "fields";
59
+ readonly fields: readonly {
60
+ readonly label: string;
61
+ readonly value: string | number | boolean | null;
62
+ }[];
63
+ } | {
64
+ readonly kind: "code";
65
+ readonly language?: string;
66
+ readonly text: string;
67
+ } | {
68
+ readonly kind: "image";
69
+ readonly artifactId: string;
70
+ readonly alt: string;
71
+ };
48
72
  /**
49
73
  * One Adapter-owned domain event. `Type` and `Payload` preserve a caller's
50
74
  * discriminated union without requiring NiceEval to execute its domain parser.
@@ -60,6 +84,8 @@ export interface ExecutionTraceEvent<out Type extends string = string, out Paylo
60
84
  readonly links?: readonly ExecutionTraceLink[];
61
85
  readonly evidence?: readonly ExecutionTraceEvidence[];
62
86
  readonly scopeMemberships?: readonly ExecutionTraceScopeMembership[];
87
+ /** Optional human-readable blocks; omitted means the event has no display. */
88
+ readonly display?: readonly ExecutionDisplayBlock[];
63
89
  }
64
90
  export interface ExecutionTraceInput<out Event extends ExecutionTraceEvent = ExecutionTraceEvent> {
65
91
  readonly traceId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-usage.js","sourceRoot":"","sources":["adapter-usage.ts"],"names":[],"mappings":"","sourcesContent":["/** Final observation of one physical external request, scoped to an Adapter Attempt. */\nexport interface AdapterUsageInput {\n readonly callId: string;\n readonly retryOf?: string;\n /** Upstream-proven serving provider. Transport and protocol identities belong in route. */\n readonly provider: string | null;\n readonly model: string | null;\n readonly route?: {\n readonly transportProvider: string | null;\n /** Stable, non-secret endpoint identity. Never include URLs, account identifiers, or credentials. */\n readonly endpointId: string | null;\n };\n readonly status: \"succeeded\" | \"failed\" | \"cancelled\" | \"unknown\";\n /** Input tokens excluding the cache read and cache write buckets. */\n readonly inputTokens: number | null;\n /** Independently observed input total including cache buckets; never added to those buckets. */\n readonly inputTotalTokens?: number | null;\n readonly outputTokens: number | null;\n readonly cacheReadTokens?: number | null;\n readonly cacheWriteTokens?: number | null;\n /** One provider-reported effective cost. A reported zero remains preferred to estimates. */\n readonly cost?: {\n readonly amount: string;\n readonly currency: string;\n readonly source: {\n readonly kind: \"reported\";\n readonly id: string;\n };\n };\n}\n"]}
1
+ {"version":3,"file":"adapter-usage.js","sourceRoot":"","sources":["adapter-usage.ts"],"names":[],"mappings":"","sourcesContent":["/** Producer declaration after all obtainable final request snapshots have been recorded. */\nexport type AdapterUsageSeal = {\n readonly state: \"complete\";\n} | {\n readonly state: \"partial\";\n readonly reason: string;\n};\n/** Final observation of one physical external request, scoped to an Adapter Attempt. */\nexport interface AdapterUsageInput {\n readonly callId: string;\n readonly retryOf?: string;\n /** Frozen application model purpose; omission records an unknown purpose. */\n readonly modelSlot?: string | null;\n /** Upstream-proven serving provider. Transport and protocol identities belong in route. */\n readonly provider: string | null;\n readonly model: string | null;\n readonly route?: {\n readonly transportProvider: string | null;\n /** Stable, non-secret endpoint identity. Never include URLs, account identifiers, or credentials. */\n readonly endpointId: string | null;\n };\n readonly status: \"succeeded\" | \"failed\" | \"cancelled\" | \"unknown\";\n /** Input tokens excluding the cache read and cache write buckets. */\n readonly inputTokens: number | null;\n /** Independently observed input total including cache buckets; never added to those buckets. */\n readonly inputTotalTokens?: number | null;\n readonly outputTokens: number | null;\n readonly cacheReadTokens?: number | null;\n readonly cacheWriteTokens?: number | null;\n /** One provider-reported effective cost. A reported zero remains preferred to estimates. */\n readonly cost?: {\n readonly amount: string;\n readonly currency: string;\n readonly source: {\n readonly kind: \"reported\";\n readonly id: string;\n };\n };\n}\n"]}
@@ -1,7 +1,16 @@
1
+ /** Producer declaration after all obtainable final request snapshots have been recorded. */
2
+ export type AdapterUsageSeal = {
3
+ readonly state: "complete";
4
+ } | {
5
+ readonly state: "partial";
6
+ readonly reason: string;
7
+ };
1
8
  /** Final observation of one physical external request, scoped to an Adapter Attempt. */
2
9
  export interface AdapterUsageInput {
3
10
  readonly callId: string;
4
11
  readonly retryOf?: string;
12
+ /** Frozen application model purpose; omission records an unknown purpose. */
13
+ readonly modelSlot?: string | null;
5
14
  /** Upstream-proven serving provider. Transport and protocol identities belong in route. */
6
15
  readonly provider: string | null;
7
16
  readonly model: string | null;
@@ -1,7 +1,16 @@
1
+ /** Producer declaration after all obtainable final request snapshots have been recorded. */
2
+ export type AdapterUsageSeal = {
3
+ readonly state: "complete";
4
+ } | {
5
+ readonly state: "partial";
6
+ readonly reason: string;
7
+ };
1
8
  /** Final observation of one physical external request, scoped to an Adapter Attempt. */
2
9
  export interface AdapterUsageInput {
3
10
  readonly callId: string;
4
11
  readonly retryOf?: string;
12
+ /** Frozen application model purpose; omission records an unknown purpose. */
13
+ readonly modelSlot?: string | null;
5
14
  /** Upstream-proven serving provider. Transport and protocol identities belong in route. */
6
15
  readonly provider: string | null;
7
16
  readonly model: string | null;
@@ -1,7 +1,16 @@
1
+ /** Producer declaration after all obtainable final request snapshots have been recorded. */
2
+ export type AdapterUsageSeal = {
3
+ readonly state: "complete";
4
+ } | {
5
+ readonly state: "partial";
6
+ readonly reason: string;
7
+ };
1
8
  /** Final observation of one physical external request, scoped to an Adapter Attempt. */
2
9
  export interface AdapterUsageInput {
3
10
  readonly callId: string;
4
11
  readonly retryOf?: string;
12
+ /** Frozen application model purpose; omission records an unknown purpose. */
13
+ readonly modelSlot?: string | null;
5
14
  /** Upstream-proven serving provider. Transport and protocol identities belong in route. */
6
15
  readonly provider: string | null;
7
16
  readonly model: string | null;
package/dist/adapter.cjs CHANGED
@@ -6,6 +6,8 @@ exports.adapterIdentity = adapterIdentity;
6
6
  exports.adapterAcceptsEval = adapterAcceptsEval;
7
7
  exports.adapterContractRequiredByEval = adapterContractRequiredByEval;
8
8
  exports.bindAdapterEvalContext = bindAdapterEvalContext;
9
+ const adapter_cleanup_ts_1 = require("./shared/adapter-cleanup.cjs");
10
+ const runtime_ts_1 = require("./assertions/runtime.cjs");
9
11
  const adapter_flags_ts_1 = require("./adapter-flags.cjs");
10
12
  const define_ts_1 = require("./define.cjs");
11
13
  const ADAPTER_CONTRACT_TOKEN = Symbol("niceeval.adapterContractToken");
@@ -20,6 +22,10 @@ const RESERVED_ADAPTER_CONTEXT_KEYS = [
20
22
  "instructionFollowing",
21
23
  "pairwisePreference",
22
24
  "closeQA",
25
+ "usage",
26
+ "elapsedMs",
27
+ "maxTokens",
28
+ "maxCost",
23
29
  "score",
24
30
  "group",
25
31
  "skip",
@@ -91,6 +97,7 @@ function implementAdapter(token, input, factory) {
91
97
  if (typeof input.create !== "function") {
92
98
  throw new TypeError(`${factory} requires create(context).`);
93
99
  }
100
+ const cleanupTimeoutMs = (0, adapter_cleanup_ts_1.resolveAdapterCleanupTimeoutMs)(input.cleanupTimeoutMs);
94
101
  const authorCreate = input.create;
95
102
  const create = (context) => {
96
103
  const created = authorCreate(context);
@@ -110,11 +117,15 @@ function implementAdapter(token, input, factory) {
110
117
  name: input.name,
111
118
  contract: token.name,
112
119
  behaviorRevision: input.behaviorRevision ?? null,
120
+ cleanupTimeoutMs,
113
121
  create,
114
122
  [ADAPTER_CONTRACT_TOKEN]: token,
115
123
  ...boundEvalFactories(token),
116
124
  });
117
125
  }
126
+ // @concord-code ne-adapter-define-adapter
127
+ // @concord-implements docs/feature/adapters/README.md
128
+ // @concord-implements docs/feature/adapters/library/writing-an-adapter.md
118
129
  function defineAdapter(input) {
119
130
  if (input.parseFlags !== undefined)
120
131
  (0, adapter_flags_ts_1.assertAdapterFlagsParser)(input.parseFlags);
@@ -125,6 +136,9 @@ function defineAdapter(input) {
125
136
  return implementAdapter(contractToken(input.name, assertions, input.parseFlags), input, "defineAdapter");
126
137
  }
127
138
  /** Defines a reusable contract whose implementations and Evals share one runtime-only token. */
139
+ // @concord-code ne-adapter-define-contract
140
+ // @concord-implements docs/feature/adapters/README.md
141
+ // @concord-implements docs/feature/adapters/architecture/agent-contract.md
128
142
  function defineAdapterContract(input) {
129
143
  assertNonEmptyString(input.name, "name", "defineAdapterContract");
130
144
  return makeAdapterContract(contractToken(input.name, undefined, undefined));
@@ -157,6 +171,7 @@ function adapterIdentity(adapter) {
157
171
  name: adapter.name,
158
172
  contract: adapter.contract,
159
173
  behaviorRevision: adapter.behaviorRevision,
174
+ cleanupTimeoutMs: adapter.cleanupTimeoutMs,
160
175
  })
161
176
  : Object.freeze({
162
177
  name: adapter.name,
@@ -301,10 +316,7 @@ function bindAdapterAssertions(core, context, factory, assertAuthorOpen) {
301
316
  frame.add(handle);
302
317
  return handle;
303
318
  };
304
- const authored = factory({
305
- app,
306
- check: check,
307
- });
319
+ const authored = factory({ app: app, check: check });
308
320
  assertPlainAdapterAssertions(authored, context);
309
321
  Object.freeze(authored);
310
322
  assembled = true;
@@ -337,6 +349,8 @@ function bindAdapterAssertions(core, context, factory, assertAuthorOpen) {
337
349
  return Object.freeze({ app, assertions: Object.freeze(assertions) });
338
350
  }
339
351
  /** @internal Builds the frozen single-t facade after create settles. */
352
+ // @concord-code ne-adapter-bind-eval-context
353
+ // @concord-implements docs/feature/adapters/architecture/agent-contract.md
340
354
  function bindAdapterEvalContext(core, context, adapter, assertAuthorOpen) {
341
355
  assertPlainAdapterContext(context);
342
356
  const token = adapter[ADAPTER_CONTRACT_TOKEN];
@@ -350,6 +364,7 @@ function bindAdapterEvalContext(core, context, adapter, assertAuthorOpen) {
350
364
  app = bound.app;
351
365
  assertions = bound.assertions;
352
366
  }
367
+ (0, runtime_ts_1.bindAssertionContext)(core.check, () => app);
353
368
  const target = Object.create(null);
354
369
  forwardProperties(target, core, false, assertAuthorOpen);
355
370
  forwardProperties(target, app, false, assertAuthorOpen);