niceeval 0.18.0 → 0.19.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 (679) hide show
  1. package/INDEX.md +4 -2
  2. package/dist/adapter-usage.cjs.map +1 -1
  3. package/dist/adapter-usage.d.cts +1 -1
  4. package/dist/adapter-usage.d.mts +1 -1
  5. package/dist/adapter-usage.d.ts +1 -1
  6. package/dist/adapter.cjs +8 -7
  7. package/dist/adapter.cjs.map +1 -1
  8. package/dist/adapter.d.cts +21 -21
  9. package/dist/adapter.d.mts +21 -21
  10. package/dist/adapter.d.ts +21 -21
  11. package/dist/agents/{effect-runtime.cjs → agent-effects.cjs} +12 -18
  12. package/dist/agents/agent-effects.cjs.map +1 -0
  13. package/dist/agents/agent-effects.d.cts +23 -0
  14. package/dist/agents/agent-effects.d.mts +23 -0
  15. package/dist/agents/agent-effects.d.ts +23 -0
  16. package/dist/agents/agent-effects.js +16 -0
  17. package/dist/agents/agent-effects.js.map +1 -0
  18. package/dist/agents/ai-sdk.cjs +1 -1
  19. package/dist/agents/ai-sdk.cjs.map +1 -1
  20. package/dist/agents/bub.cjs +31 -18
  21. package/dist/agents/bub.cjs.map +1 -1
  22. package/dist/agents/bub.d.cts +9 -12
  23. package/dist/agents/bub.d.mts +9 -12
  24. package/dist/agents/bub.d.ts +9 -12
  25. package/dist/agents/claude-code-native.cjs +2 -2
  26. package/dist/agents/claude-code-native.cjs.map +1 -1
  27. package/dist/agents/claude-code.cjs +17 -11
  28. package/dist/agents/claude-code.cjs.map +1 -1
  29. package/dist/agents/claude-code.d.cts +11 -11
  30. package/dist/agents/claude-code.d.mts +11 -11
  31. package/dist/agents/claude-code.d.ts +11 -11
  32. package/dist/agents/codex-app-server.cjs +2 -2
  33. package/dist/agents/codex-app-server.cjs.map +1 -1
  34. package/dist/agents/codex.cjs +18 -12
  35. package/dist/agents/codex.cjs.map +1 -1
  36. package/dist/agents/codex.d.cts +12 -12
  37. package/dist/agents/codex.d.mts +12 -12
  38. package/dist/agents/codex.d.ts +12 -12
  39. package/dist/agents/deepseek-harness.cjs +2 -2
  40. package/dist/agents/deepseek-harness.cjs.map +1 -1
  41. package/dist/agents/hermes.cjs +3 -3
  42. package/dist/agents/hermes.cjs.map +1 -1
  43. package/dist/agents/index.cjs +3 -3
  44. package/dist/agents/index.cjs.map +1 -1
  45. package/dist/agents/index.d.cts +3 -3
  46. package/dist/agents/index.d.mts +3 -3
  47. package/dist/agents/index.d.ts +3 -3
  48. package/dist/agents/index.js +2 -2
  49. package/dist/agents/index.mjs +2 -2
  50. package/dist/agents/mcp.cjs.map +1 -1
  51. package/dist/agents/mcp.d.cts +2 -2
  52. package/dist/agents/mcp.d.mts +2 -2
  53. package/dist/agents/mcp.d.ts +2 -2
  54. package/dist/agents/omp.cjs +2 -2
  55. package/dist/agents/omp.cjs.map +1 -1
  56. package/dist/agents/openai-compat.cjs +2 -2
  57. package/dist/agents/openai-compat.cjs.map +1 -1
  58. package/dist/agents/openclaw.cjs +3 -3
  59. package/dist/agents/openclaw.cjs.map +1 -1
  60. package/dist/agents/opencode.cjs +16 -4
  61. package/dist/agents/opencode.cjs.map +1 -1
  62. package/dist/agents/plugin-extensions.cjs +71 -0
  63. package/dist/agents/plugin-extensions.cjs.map +1 -0
  64. package/dist/agents/plugin-extensions.d.cts +26 -0
  65. package/dist/agents/plugin-extensions.d.mts +26 -0
  66. package/dist/agents/plugin-extensions.d.ts +26 -0
  67. package/dist/agents/plugin-extensions.js +8 -0
  68. package/dist/agents/plugin-extensions.js.map +1 -0
  69. package/dist/agents/post-setup.cjs +14 -3
  70. package/dist/agents/post-setup.cjs.map +1 -1
  71. package/dist/agents/post-setup.d.cts +4 -2
  72. package/dist/agents/post-setup.d.mts +4 -2
  73. package/dist/agents/post-setup.d.ts +4 -2
  74. package/dist/agents/post-setup.js +8 -6
  75. package/dist/agents/sdk-streams.cjs +3 -3
  76. package/dist/agents/sdk-streams.cjs.map +1 -1
  77. package/dist/agents/{session-slot.cjs → session-key.cjs} +4 -4
  78. package/dist/agents/session-key.cjs.map +1 -0
  79. package/dist/agents/session-key.d.cts +12 -0
  80. package/dist/agents/session-key.d.mts +12 -0
  81. package/dist/agents/session-key.d.ts +12 -0
  82. package/dist/agents/session-key.js +6 -0
  83. package/dist/agents/session-key.js.map +1 -0
  84. package/dist/agents/shared.cjs +2 -2
  85. package/dist/agents/shared.cjs.map +1 -1
  86. package/dist/agents/shared.d.cts +4 -4
  87. package/dist/agents/shared.d.mts +4 -4
  88. package/dist/agents/shared.d.ts +4 -4
  89. package/dist/agents/skills.cjs.map +1 -1
  90. package/dist/agents/skills.d.cts +3 -3
  91. package/dist/agents/skills.d.mts +3 -3
  92. package/dist/agents/skills.d.ts +3 -3
  93. package/dist/agents/types.cjs.map +1 -1
  94. package/dist/agents/types.d.cts +55 -54
  95. package/dist/agents/types.d.mts +55 -54
  96. package/dist/agents/types.d.ts +55 -54
  97. package/dist/agents/ui-message-stream.cjs +4 -4
  98. package/dist/agents/ui-message-stream.cjs.map +1 -1
  99. package/dist/agents/unrecognized-events.cjs +32 -0
  100. package/dist/agents/unrecognized-events.cjs.map +1 -0
  101. package/dist/agents/unrecognized-events.d.cts +8 -0
  102. package/dist/agents/unrecognized-events.d.mts +8 -0
  103. package/dist/agents/unrecognized-events.d.ts +8 -0
  104. package/dist/agents/unrecognized-events.js +6 -0
  105. package/dist/agents/unrecognized-events.js.map +1 -0
  106. package/dist/assertions/api.cjs.map +1 -1
  107. package/dist/assertions/api.d.cts +3 -0
  108. package/dist/assertions/api.d.mts +3 -0
  109. package/dist/assertions/api.d.ts +3 -0
  110. package/dist/assertions/collection.cjs +1 -1
  111. package/dist/assertions/collection.cjs.map +1 -1
  112. package/dist/assertions/judge.cjs +1 -1
  113. package/dist/assertions/judge.cjs.map +1 -1
  114. package/dist/assertions/match.cjs +52 -21
  115. package/dist/assertions/match.cjs.map +1 -1
  116. package/dist/assertions/match.d.cts +16 -5
  117. package/dist/assertions/match.d.mts +16 -5
  118. package/dist/assertions/match.d.ts +16 -5
  119. package/dist/assertions/match.js +96 -94
  120. package/dist/assertions/measurements.cjs +22 -6
  121. package/dist/assertions/measurements.cjs.map +1 -1
  122. package/dist/assertions/measurements.d.cts +8 -1
  123. package/dist/assertions/measurements.d.mts +8 -1
  124. package/dist/assertions/measurements.d.ts +8 -1
  125. package/dist/assertions/numeric.cjs +2 -0
  126. package/dist/assertions/numeric.cjs.map +1 -1
  127. package/dist/assertions/numeric.d.cts +1 -1
  128. package/dist/assertions/numeric.d.mts +1 -1
  129. package/dist/assertions/numeric.d.ts +1 -1
  130. package/dist/assertions/quantity.cjs +42 -0
  131. package/dist/assertions/quantity.cjs.map +1 -0
  132. package/dist/assertions/quantity.d.cts +18 -0
  133. package/dist/assertions/quantity.d.mts +18 -0
  134. package/dist/assertions/quantity.d.ts +18 -0
  135. package/dist/assertions/quantity.js +22 -0
  136. package/dist/assertions/quantity.js.map +1 -0
  137. package/dist/assertions/record/attachment.cjs +2 -0
  138. package/dist/assertions/record/attachment.cjs.map +1 -1
  139. package/dist/assertions/record/codec.cjs +5 -1
  140. package/dist/assertions/record/codec.cjs.map +1 -1
  141. package/dist/assertions/record/model.cjs.map +1 -1
  142. package/dist/assertions/record/model.d.cts +3 -1
  143. package/dist/assertions/record/model.d.mts +3 -1
  144. package/dist/assertions/record/model.d.ts +3 -1
  145. package/dist/assertions/runtime.cjs +11 -6
  146. package/dist/assertions/runtime.cjs.map +1 -1
  147. package/dist/cli/program.cjs +3 -0
  148. package/dist/cli/program.cjs.map +1 -1
  149. package/dist/context/assert-first.cjs +6 -4
  150. package/dist/context/assert-first.cjs.map +1 -1
  151. package/dist/context/assert-first.d.cts +9 -3
  152. package/dist/context/assert-first.d.mts +9 -3
  153. package/dist/context/assert-first.d.ts +9 -3
  154. package/dist/context/notes.cjs +47 -0
  155. package/dist/context/notes.cjs.map +1 -0
  156. package/dist/context/notes.d.cts +10 -0
  157. package/dist/context/notes.d.mts +10 -0
  158. package/dist/context/notes.d.ts +10 -0
  159. package/dist/context/notes.js +6 -0
  160. package/dist/context/notes.js.map +1 -0
  161. package/dist/context/send-failures.cjs +1 -7
  162. package/dist/context/send-failures.cjs.map +1 -1
  163. package/dist/context/send-failures.d.cts +2 -3
  164. package/dist/context/send-failures.d.mts +2 -3
  165. package/dist/context/send-failures.d.ts +2 -3
  166. package/dist/context/send-retry.cjs +0 -1
  167. package/dist/context/send-retry.cjs.map +1 -1
  168. package/dist/context/send-retry.d.cts +1 -2
  169. package/dist/context/send-retry.d.mts +1 -2
  170. package/dist/context/send-retry.d.ts +1 -2
  171. package/dist/context/session.cjs +10 -17
  172. package/dist/context/session.cjs.map +1 -1
  173. package/dist/context/session.d.cts +4 -10
  174. package/dist/context/session.d.mts +4 -10
  175. package/dist/context/session.d.ts +4 -10
  176. package/dist/define.cjs +88 -65
  177. package/dist/define.cjs.map +1 -1
  178. package/dist/define.d.cts +3 -3
  179. package/dist/define.d.mts +3 -3
  180. package/dist/define.d.ts +3 -3
  181. package/dist/eval/cli/contribution.cjs +1 -1
  182. package/dist/eval/cli/contribution.cjs.map +1 -1
  183. package/dist/eval/host/index.cjs +1 -1
  184. package/dist/eval/host/index.cjs.map +1 -1
  185. package/dist/eval/record/evaluation.cjs +1 -1
  186. package/dist/eval/record/evaluation.cjs.map +1 -1
  187. package/dist/eval/record/membership-provenance.d.cts +3 -3
  188. package/dist/eval/record/membership-provenance.d.mts +3 -3
  189. package/dist/eval/record/membership-provenance.d.ts +3 -3
  190. package/dist/eval/record/score.cjs +2 -2
  191. package/dist/eval/record/score.cjs.map +1 -1
  192. package/dist/eval/record/sealed-assertion.cjs +1 -1
  193. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  194. package/dist/eval/record/verdict.cjs +2 -2
  195. package/dist/eval/record/verdict.cjs.map +1 -1
  196. package/dist/expect/index.cjs +10 -1
  197. package/dist/expect/index.cjs.map +1 -1
  198. package/dist/expect/index.d.cts +3 -1
  199. package/dist/expect/index.d.mts +3 -1
  200. package/dist/expect/index.d.ts +3 -1
  201. package/dist/expect/index.js +92 -76
  202. package/dist/expect/index.mjs +92 -76
  203. package/dist/experiment/host/cli/contribution.cjs +52 -39
  204. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  205. package/dist/experiment/host/cli/contribution.d.cts +18 -4
  206. package/dist/experiment/host/cli/contribution.d.mts +18 -4
  207. package/dist/experiment/host/cli/contribution.d.ts +18 -4
  208. package/dist/experiment/host/cli/contribution.js +2 -2
  209. package/dist/experiment/host/cli/debug-protocol.cjs +2 -2
  210. package/dist/experiment/host/cli/debug-protocol.cjs.map +1 -1
  211. package/dist/experiment/host/cli/debug-protocol.d.cts +2 -2
  212. package/dist/experiment/host/cli/debug-protocol.d.mts +2 -2
  213. package/dist/experiment/host/cli/debug-protocol.d.ts +2 -2
  214. package/dist/experiment/host/cli/output-protocol.cjs +1 -1
  215. package/dist/experiment/host/cli/output-protocol.cjs.map +1 -1
  216. package/dist/experiment/host/cli/output-protocol.d.cts +2 -2
  217. package/dist/experiment/host/cli/output-protocol.d.mts +2 -2
  218. package/dist/experiment/host/cli/output-protocol.d.ts +2 -2
  219. package/dist/experiment/host/current.cjs +2 -2
  220. package/dist/experiment/host/current.cjs.map +1 -1
  221. package/dist/experiment/host/index.cjs +1 -1
  222. package/dist/experiment/host/index.cjs.map +1 -1
  223. package/dist/experiment/host/operations.cjs +21 -22
  224. package/dist/experiment/host/operations.cjs.map +1 -1
  225. package/dist/experiment/host/runtime.cjs +8 -9
  226. package/dist/experiment/host/runtime.cjs.map +1 -1
  227. package/dist/experiment/host/runtime.d.cts +3 -3
  228. package/dist/experiment/host/runtime.d.mts +3 -3
  229. package/dist/experiment/host/runtime.d.ts +3 -3
  230. package/dist/experiment/host/teardown.cjs +3 -3
  231. package/dist/experiment/host/teardown.cjs.map +1 -1
  232. package/dist/experiment/host/teardown.d.cts +3 -3
  233. package/dist/experiment/host/teardown.d.mts +3 -3
  234. package/dist/experiment/host/teardown.d.ts +3 -3
  235. package/dist/experiment/host/types.cjs.map +1 -1
  236. package/dist/experiment/host/types.d.cts +19 -19
  237. package/dist/experiment/host/types.d.mts +19 -19
  238. package/dist/experiment/host/types.d.ts +19 -19
  239. package/dist/index.cjs +3 -3
  240. package/dist/index.cjs.map +1 -1
  241. package/dist/index.d.cts +3 -3
  242. package/dist/index.d.mts +3 -3
  243. package/dist/index.d.ts +3 -3
  244. package/dist/index.js +2 -2
  245. package/dist/index.mjs +2 -2
  246. package/dist/inspection/assertions.cjs +1 -1
  247. package/dist/inspection/assertions.cjs.map +1 -1
  248. package/dist/inspection/cli/contribution.cjs +8 -7
  249. package/dist/inspection/cli/contribution.cjs.map +1 -1
  250. package/dist/inspection/facts.cjs +4 -4
  251. package/dist/inspection/facts.cjs.map +1 -1
  252. package/dist/inspection/index.cjs +1 -5
  253. package/dist/inspection/index.cjs.map +1 -1
  254. package/dist/inspection/index.d.cts +1 -2
  255. package/dist/inspection/index.d.mts +1 -2
  256. package/dist/inspection/index.d.ts +1 -2
  257. package/dist/inspection/index.js +20 -26
  258. package/dist/inspection/lifecycle.cjs +7 -0
  259. package/dist/inspection/lifecycle.cjs.map +1 -0
  260. package/dist/inspection/lifecycle.d.cts +4 -0
  261. package/dist/inspection/lifecycle.d.mts +4 -0
  262. package/dist/inspection/lifecycle.d.ts +4 -0
  263. package/dist/inspection/lifecycle.js +6 -0
  264. package/dist/inspection/lifecycle.js.map +1 -0
  265. package/dist/inspection/notes.cjs +40 -0
  266. package/dist/inspection/notes.cjs.map +1 -0
  267. package/dist/inspection/notes.d.cts +12 -0
  268. package/dist/inspection/notes.d.mts +12 -0
  269. package/dist/inspection/notes.d.ts +12 -0
  270. package/dist/inspection/notes.js +8 -0
  271. package/dist/inspection/notes.js.map +1 -0
  272. package/dist/inspection/overview.cjs +12 -15
  273. package/dist/inspection/overview.cjs.map +1 -1
  274. package/dist/inspection/overview.d.cts +8 -6
  275. package/dist/inspection/overview.d.mts +8 -6
  276. package/dist/inspection/overview.d.ts +8 -6
  277. package/dist/inspection/planned-attempt.cjs +45 -0
  278. package/dist/inspection/planned-attempt.cjs.map +1 -0
  279. package/dist/inspection/planned-attempt.d.cts +109 -0
  280. package/dist/inspection/planned-attempt.d.mts +109 -0
  281. package/dist/inspection/planned-attempt.d.ts +109 -0
  282. package/dist/inspection/planned-attempt.js +24 -0
  283. package/dist/inspection/planned-attempt.js.map +1 -0
  284. package/dist/inspection/project-result.cjs +5 -5
  285. package/dist/inspection/project-result.cjs.map +1 -1
  286. package/dist/inspection/project-result.d.cts +58 -57
  287. package/dist/inspection/project-result.d.mts +58 -57
  288. package/dist/inspection/project-result.d.ts +58 -57
  289. package/dist/inspection/project-result.js +4 -4
  290. package/dist/inspection/project.cjs +3 -3
  291. package/dist/inspection/project.cjs.map +1 -1
  292. package/dist/inspection/protocol-values.cjs +1 -1
  293. package/dist/inspection/protocol-values.cjs.map +1 -1
  294. package/dist/inspection/protocol-values.d.cts +1 -1
  295. package/dist/inspection/protocol-values.d.mts +1 -1
  296. package/dist/inspection/protocol-values.d.ts +1 -1
  297. package/dist/inspection/protocol.cjs +8 -8
  298. package/dist/inspection/protocol.cjs.map +1 -1
  299. package/dist/inspection/protocol.d.cts +237 -219
  300. package/dist/inspection/protocol.d.mts +237 -219
  301. package/dist/inspection/protocol.d.ts +237 -219
  302. package/dist/inspection/public.cjs +1 -5
  303. package/dist/inspection/public.cjs.map +1 -1
  304. package/dist/inspection/public.d.cts +1 -2
  305. package/dist/inspection/public.d.mts +1 -2
  306. package/dist/inspection/public.d.ts +1 -2
  307. package/dist/inspection/public.js +14 -20
  308. package/dist/inspection/public.mjs +166 -129
  309. package/dist/inspection/query.cjs +1 -1
  310. package/dist/inspection/query.cjs.map +1 -1
  311. package/dist/inspection/results.cjs +61 -52
  312. package/dist/inspection/results.cjs.map +1 -1
  313. package/dist/inspection/results.d.cts +157 -140
  314. package/dist/inspection/results.d.mts +157 -140
  315. package/dist/inspection/results.d.ts +157 -140
  316. package/dist/inspection/select.cjs +33 -28
  317. package/dist/inspection/select.cjs.map +1 -1
  318. package/dist/inspection/source.cjs +1 -1
  319. package/dist/inspection/source.cjs.map +1 -1
  320. package/dist/inspection/sources.cjs +2 -2
  321. package/dist/inspection/sources.cjs.map +1 -1
  322. package/dist/inspection/trace.cjs +9 -8
  323. package/dist/inspection/trace.cjs.map +1 -1
  324. package/dist/inspection/trace.d.cts +4 -4
  325. package/dist/inspection/trace.d.mts +4 -4
  326. package/dist/inspection/trace.d.ts +4 -4
  327. package/dist/loaders/index.cjs +7 -279
  328. package/dist/loaders/index.cjs.map +1 -1
  329. package/dist/loaders/index.d.cts +2 -95
  330. package/dist/loaders/index.d.mts +2 -95
  331. package/dist/loaders/index.d.ts +2 -95
  332. package/dist/loaders/index.js +10 -12
  333. package/dist/loaders/index.mjs +10 -12
  334. package/dist/loaders/runtime.cjs +283 -0
  335. package/dist/loaders/runtime.cjs.map +1 -0
  336. package/dist/loaders/runtime.d.cts +95 -0
  337. package/dist/loaders/runtime.d.mts +95 -0
  338. package/dist/loaders/runtime.d.ts +95 -0
  339. package/dist/loaders/runtime.js +16 -0
  340. package/dist/loaders/runtime.js.map +1 -0
  341. package/dist/migrations/judge-provider.md +6 -6
  342. package/dist/{model-slots.cjs → model-roles.cjs} +12 -12
  343. package/dist/{model-slots.cjs.map → model-roles.cjs.map} +1 -1
  344. package/dist/{model-slots.d.cts → model-roles.d.cts} +10 -10
  345. package/dist/{model-slots.d.mts → model-roles.d.mts} +10 -10
  346. package/dist/{model-slots.d.ts → model-roles.d.ts} +10 -10
  347. package/dist/model-roles.js +14 -0
  348. package/dist/model-roles.js.map +1 -0
  349. package/dist/o11y/adapter-usage-projection.cjs +9 -8
  350. package/dist/o11y/adapter-usage-projection.cjs.map +1 -1
  351. package/dist/o11y/adapter-usage-projection.d.cts +23 -15
  352. package/dist/o11y/adapter-usage-projection.d.mts +23 -15
  353. package/dist/o11y/adapter-usage-projection.d.ts +23 -15
  354. package/dist/o11y/cache-read.cjs +14 -14
  355. package/dist/o11y/cache-read.cjs.map +1 -1
  356. package/dist/o11y/cache-read.d.cts +5 -5
  357. package/dist/o11y/cache-read.d.mts +5 -5
  358. package/dist/o11y/cache-read.d.ts +5 -5
  359. package/dist/o11y/derive.cjs.map +1 -1
  360. package/dist/o11y/derive.d.cts +2 -2
  361. package/dist/o11y/derive.d.mts +2 -2
  362. package/dist/o11y/derive.d.ts +2 -2
  363. package/dist/o11y/eval-usage.cjs +9 -9
  364. package/dist/o11y/eval-usage.cjs.map +1 -1
  365. package/dist/o11y/eval-usage.d.cts +7 -7
  366. package/dist/o11y/eval-usage.d.mts +7 -7
  367. package/dist/o11y/eval-usage.d.ts +7 -7
  368. package/dist/o11y/parsers/bub.cjs +57 -81
  369. package/dist/o11y/parsers/bub.cjs.map +1 -1
  370. package/dist/o11y/parsers/index.cjs.map +1 -1
  371. package/dist/o11y/parsers/index.d.cts +2 -0
  372. package/dist/o11y/parsers/index.d.mts +2 -0
  373. package/dist/o11y/parsers/index.d.ts +2 -0
  374. package/dist/o11y/parsers/opencode.cjs +129 -217
  375. package/dist/o11y/parsers/opencode.cjs.map +1 -1
  376. package/dist/o11y/parsers/opencode.d.cts +2 -5
  377. package/dist/o11y/parsers/opencode.d.mts +2 -5
  378. package/dist/o11y/parsers/opencode.d.ts +2 -5
  379. package/dist/o11y/types.cjs.map +1 -1
  380. package/dist/o11y/types.d.cts +1 -1
  381. package/dist/o11y/types.d.mts +1 -1
  382. package/dist/o11y/types.d.ts +1 -1
  383. package/dist/plugin/contracts.cjs +170 -120
  384. package/dist/plugin/contracts.cjs.map +1 -1
  385. package/dist/plugin/contracts.d.cts +102 -90
  386. package/dist/plugin/contracts.d.mts +102 -90
  387. package/dist/plugin/contracts.d.ts +102 -90
  388. package/dist/plugin/contracts.js +16 -12
  389. package/dist/plugin/index.cjs.map +1 -1
  390. package/dist/plugin/index.d.cts +1 -1
  391. package/dist/plugin/index.d.mts +1 -1
  392. package/dist/plugin/index.d.ts +1 -1
  393. package/dist/plugin/link.cjs +69 -64
  394. package/dist/plugin/link.cjs.map +1 -1
  395. package/dist/plugin/link.d.cts +5 -3
  396. package/dist/plugin/link.d.mts +5 -3
  397. package/dist/plugin/link.d.ts +5 -3
  398. package/dist/plugin/link.js +12 -8
  399. package/dist/record/codec/seal-manifest.d.cts +3 -3
  400. package/dist/record/codec/seal-manifest.d.mts +3 -3
  401. package/dist/record/codec/seal-manifest.d.ts +3 -3
  402. package/dist/record/family/attempt-note/definition.cjs +12 -0
  403. package/dist/record/family/attempt-note/definition.cjs.map +1 -0
  404. package/dist/record/family/attempt-note/definition.d.cts +6 -0
  405. package/dist/record/family/attempt-note/definition.d.mts +6 -0
  406. package/dist/record/family/attempt-note/definition.d.ts +6 -0
  407. package/dist/record/family/attempt-note/definition.js +6 -0
  408. package/dist/record/family/attempt-note/definition.js.map +1 -0
  409. package/dist/record/family/attempt-note/persistence.cjs +10 -0
  410. package/dist/record/family/attempt-note/persistence.cjs.map +1 -0
  411. package/dist/record/family/attempt-note/persistence.d.cts +6 -0
  412. package/dist/record/family/attempt-note/persistence.d.mts +6 -0
  413. package/dist/record/family/attempt-note/persistence.d.ts +6 -0
  414. package/dist/record/family/attempt-note/persistence.js +6 -0
  415. package/dist/record/family/attempt-note/persistence.js.map +1 -0
  416. package/dist/record/family/attempt-note/schema.cjs +20 -0
  417. package/dist/record/family/attempt-note/schema.cjs.map +1 -0
  418. package/dist/record/family/attempt-note/schema.d.cts +21 -0
  419. package/dist/record/family/attempt-note/schema.d.mts +21 -0
  420. package/dist/record/family/attempt-note/schema.d.ts +21 -0
  421. package/dist/record/family/attempt-note/schema.js +10 -0
  422. package/dist/record/family/attempt-note/schema.js.map +1 -0
  423. package/dist/record/family/catalog.cjs +32 -29
  424. package/dist/record/family/catalog.cjs.map +1 -1
  425. package/dist/record/family/catalog.d.cts +7 -2
  426. package/dist/record/family/catalog.d.mts +7 -2
  427. package/dist/record/family/catalog.d.ts +7 -2
  428. package/dist/record/family/current.cjs +48 -45
  429. package/dist/record/family/current.cjs.map +1 -1
  430. package/dist/record/family/current.d.cts +15 -0
  431. package/dist/record/family/current.d.mts +15 -0
  432. package/dist/record/family/current.d.ts +15 -0
  433. package/dist/record/model/index.js +66 -64
  434. package/dist/record/model/run-context.cjs +9 -3
  435. package/dist/record/model/run-context.cjs.map +1 -1
  436. package/dist/record/model/run-context.d.cts +9 -2
  437. package/dist/record/model/run-context.d.mts +9 -2
  438. package/dist/record/model/run-context.d.ts +9 -2
  439. package/dist/record/model/run-context.js +8 -6
  440. package/dist/record/model/seal-manifest.d.cts +1 -1
  441. package/dist/record/model/seal-manifest.d.mts +1 -1
  442. package/dist/record/model/seal-manifest.d.ts +1 -1
  443. package/dist/run/cli/contribution.cjs +6 -32
  444. package/dist/run/cli/contribution.cjs.map +1 -1
  445. package/dist/run/host/runtime.cjs +1 -1
  446. package/dist/run/host/runtime.cjs.map +1 -1
  447. package/dist/run/storage/sqlite.cjs +7 -7
  448. package/dist/run/storage/sqlite.cjs.map +1 -1
  449. package/dist/runner/adapter-usage.cjs +5 -3
  450. package/dist/runner/adapter-usage.cjs.map +1 -1
  451. package/dist/runner/adapter-usage.d.cts +2 -2
  452. package/dist/runner/adapter-usage.d.mts +2 -2
  453. package/dist/runner/adapter-usage.d.ts +2 -2
  454. package/dist/runner/adoption.cjs +9 -12
  455. package/dist/runner/adoption.cjs.map +1 -1
  456. package/dist/runner/attempt-notes.cjs +8 -0
  457. package/dist/runner/attempt-notes.cjs.map +1 -0
  458. package/dist/runner/attempt-notes.d.cts +4 -0
  459. package/dist/runner/attempt-notes.d.mts +4 -0
  460. package/dist/runner/attempt-notes.d.ts +4 -0
  461. package/dist/runner/attempt-notes.js +8 -0
  462. package/dist/runner/attempt-notes.js.map +1 -0
  463. package/dist/runner/attempt.cjs +61 -73
  464. package/dist/runner/attempt.cjs.map +1 -1
  465. package/dist/runner/attempt.d.cts +3 -3
  466. package/dist/runner/attempt.d.mts +3 -3
  467. package/dist/runner/attempt.d.ts +3 -3
  468. package/dist/runner/command-plan.cjs +21 -26
  469. package/dist/runner/command-plan.cjs.map +1 -1
  470. package/dist/runner/command-plan.d.cts +4 -4
  471. package/dist/runner/command-plan.d.mts +4 -4
  472. package/dist/runner/command-plan.d.ts +4 -4
  473. package/dist/runner/command-plan.js +4 -4
  474. package/dist/runner/config-identity.cjs.map +1 -1
  475. package/dist/runner/config-identity.d.cts +2 -2
  476. package/dist/runner/config-identity.d.mts +2 -2
  477. package/dist/runner/config-identity.d.ts +2 -2
  478. package/dist/runner/discover.cjs +6 -6
  479. package/dist/runner/discover.cjs.map +1 -1
  480. package/dist/runner/eval-selection.cjs +2 -2
  481. package/dist/runner/eval-selection.cjs.map +1 -1
  482. package/dist/runner/eval-selection.d.cts +2 -2
  483. package/dist/runner/eval-selection.d.mts +2 -2
  484. package/dist/runner/eval-selection.d.ts +2 -2
  485. package/dist/runner/feedback/human.cjs +1 -1
  486. package/dist/runner/feedback/human.cjs.map +1 -1
  487. package/dist/runner/feedback/json.cjs +4 -2
  488. package/dist/runner/feedback/json.cjs.map +1 -1
  489. package/dist/runner/feedback/json.d.cts +1 -1
  490. package/dist/runner/feedback/json.d.mts +1 -1
  491. package/dist/runner/feedback/json.d.ts +1 -1
  492. package/dist/runner/feedback/sink.cjs +1 -1
  493. package/dist/runner/feedback/sink.cjs.map +1 -1
  494. package/dist/runner/feedback/sink.d.cts +1 -1
  495. package/dist/runner/feedback/sink.d.mts +1 -1
  496. package/dist/runner/feedback/sink.d.ts +1 -1
  497. package/dist/runner/fingerprint.cjs +1 -1
  498. package/dist/runner/fingerprint.cjs.map +1 -1
  499. package/dist/runner/project-target.cjs.map +1 -1
  500. package/dist/runner/project-target.d.cts +2 -2
  501. package/dist/runner/project-target.d.mts +2 -2
  502. package/dist/runner/project-target.d.ts +2 -2
  503. package/dist/runner/record/attachments.cjs +2 -2
  504. package/dist/runner/record/attachments.cjs.map +1 -1
  505. package/dist/runner/record/planning.cjs +8 -2
  506. package/dist/runner/record/planning.cjs.map +1 -1
  507. package/dist/runner/record.cjs +2 -0
  508. package/dist/runner/record.cjs.map +1 -1
  509. package/dist/runner/report.cjs +3 -3
  510. package/dist/runner/report.cjs.map +1 -1
  511. package/dist/runner/report.d.cts +1 -1
  512. package/dist/runner/report.d.mts +1 -1
  513. package/dist/runner/report.d.ts +1 -1
  514. package/dist/runner/reuse-plan.cjs +2 -2
  515. package/dist/runner/reuse-plan.cjs.map +1 -1
  516. package/dist/runner/run.cjs +10 -45
  517. package/dist/runner/run.cjs.map +1 -1
  518. package/dist/runner/sandbox-pool.cjs +1 -2
  519. package/dist/runner/sandbox-pool.cjs.map +1 -1
  520. package/dist/runner/setup-prefix-preparation.cjs +1 -1
  521. package/dist/runner/setup-prefix-preparation.cjs.map +1 -1
  522. package/dist/runner/teardown-registry.cjs +2 -2
  523. package/dist/runner/teardown-registry.cjs.map +1 -1
  524. package/dist/runner/teardown-registry.d.cts +1 -1
  525. package/dist/runner/teardown-registry.d.mts +1 -1
  526. package/dist/runner/teardown-registry.d.ts +1 -1
  527. package/dist/runner/types.cjs +4 -4
  528. package/dist/runner/types.cjs.map +1 -1
  529. package/dist/runner/types.d.cts +64 -93
  530. package/dist/runner/types.d.mts +64 -93
  531. package/dist/runner/types.d.ts +64 -93
  532. package/dist/runner/types.js +2 -2
  533. package/dist/sandbox/action.cjs +1 -1
  534. package/dist/sandbox/action.cjs.map +1 -1
  535. package/dist/sandbox/cli/contribution.cjs +17 -14
  536. package/dist/sandbox/cli/contribution.cjs.map +1 -1
  537. package/dist/sandbox/cli/contribution.d.cts +1 -1
  538. package/dist/sandbox/cli/contribution.d.mts +1 -1
  539. package/dist/sandbox/cli/contribution.d.ts +1 -1
  540. package/dist/sandbox/commands.cjs +1 -1
  541. package/dist/sandbox/commands.cjs.map +1 -1
  542. package/dist/sandbox/commands.d.cts +1 -1
  543. package/dist/sandbox/commands.d.mts +1 -1
  544. package/dist/sandbox/commands.d.ts +1 -1
  545. package/dist/sandbox/compose.cjs +2 -2
  546. package/dist/sandbox/compose.cjs.map +1 -1
  547. package/dist/sandbox/docker-profile/registry.cjs +5 -9
  548. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  549. package/dist/sandbox/docker-profile/registry.d.cts +0 -3
  550. package/dist/sandbox/docker-profile/registry.d.mts +0 -3
  551. package/dist/sandbox/docker-profile/registry.d.ts +0 -3
  552. package/dist/sandbox/docker-profile/registry.js +6 -12
  553. package/dist/sandbox/docker-profile/runtime.cjs +1 -1
  554. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  555. package/dist/sandbox/docker-profile/schema.cjs +12 -16
  556. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  557. package/dist/sandbox/docker-profile/schema.d.cts +2 -6
  558. package/dist/sandbox/docker-profile/schema.d.mts +2 -6
  559. package/dist/sandbox/docker-profile/schema.d.ts +2 -6
  560. package/dist/sandbox/docker-profile/schema.js +24 -32
  561. package/dist/sandbox/incus.cjs +2 -2
  562. package/dist/sandbox/incus.cjs.map +1 -1
  563. package/dist/sandbox/index.cjs +4 -35
  564. package/dist/sandbox/index.cjs.map +1 -1
  565. package/dist/sandbox/index.d.cts +4 -8
  566. package/dist/sandbox/index.d.mts +4 -8
  567. package/dist/sandbox/index.d.ts +4 -8
  568. package/dist/sandbox/index.js +116 -172
  569. package/dist/sandbox/index.mjs +116 -172
  570. package/dist/sandbox/layer.cjs +3 -3
  571. package/dist/sandbox/layer.cjs.map +1 -1
  572. package/dist/sandbox/link.cjs +5 -0
  573. package/dist/sandbox/link.cjs.map +1 -1
  574. package/dist/sandbox/link.d.cts +3 -0
  575. package/dist/sandbox/link.d.mts +3 -0
  576. package/dist/sandbox/link.d.ts +3 -0
  577. package/dist/sandbox/runtime.cjs +9 -4
  578. package/dist/sandbox/runtime.cjs.map +1 -1
  579. package/dist/shared/failure-class.cjs +5 -5
  580. package/dist/shared/failure-class.cjs.map +1 -1
  581. package/dist/shared/failure-class.d.cts +4 -10
  582. package/dist/shared/failure-class.d.mts +4 -10
  583. package/dist/shared/failure-class.d.ts +4 -10
  584. package/dist/shared/types.cjs.map +1 -1
  585. package/dist/shared/types.d.cts +1 -1
  586. package/dist/shared/types.d.mts +1 -1
  587. package/dist/shared/types.d.ts +1 -1
  588. package/dist/show/contribution.cjs +17 -2
  589. package/dist/show/contribution.cjs.map +1 -1
  590. package/dist/show/contribution.d.cts +14 -0
  591. package/dist/show/contribution.d.mts +14 -0
  592. package/dist/show/contribution.d.ts +14 -0
  593. package/dist/show/model.cjs +8 -5
  594. package/dist/show/model.cjs.map +1 -1
  595. package/dist/show/model.d.cts +11 -8
  596. package/dist/show/model.d.mts +11 -8
  597. package/dist/show/model.d.ts +11 -8
  598. package/dist/show/render.cjs +34 -22
  599. package/dist/show/render.cjs.map +1 -1
  600. package/dist/sources/projector.cjs +1 -1
  601. package/dist/sources/projector.cjs.map +1 -1
  602. package/dist/types.cjs +1 -1
  603. package/dist/types.cjs.map +1 -1
  604. package/dist/types.d.cts +1 -1
  605. package/dist/types.d.mts +1 -1
  606. package/dist/types.d.ts +1 -1
  607. package/dist/types.js +2 -2
  608. package/dist/view/app-dist/.vite/manifest.json +2 -2
  609. package/dist/view/app-dist/assets/{index-B3ijZRph.js → index-CxrOUvHC.js} +17 -17
  610. package/dist/view/app-dist/assets/{quality-cost-scatter-B--DfJ9s.js → quality-cost-scatter-B6Aiss7x.js} +1 -1
  611. package/dist/view/app-dist/index.html +1 -1
  612. package/dist/view/cli/contribution.cjs +1 -1
  613. package/dist/view/cli/contribution.cjs.map +1 -1
  614. package/dist/view/function-runtime.mjs +318 -121
  615. package/dist/view/http-protocol.d.cts +1 -1
  616. package/dist/view/http-protocol.d.mts +1 -1
  617. package/dist/view/http-protocol.d.ts +1 -1
  618. package/dist/view/inspection-host.cjs +2 -2
  619. package/dist/view/inspection-host.cjs.map +1 -1
  620. package/dist/view/inspection-host.d.cts +349 -331
  621. package/dist/view/inspection-host.d.mts +349 -331
  622. package/dist/view/inspection-host.d.ts +349 -331
  623. package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +6 -6
  624. package/docs-site/zh/examples/integrations/claude-sdk.mdx +5 -5
  625. package/docs-site/zh/examples/integrations/codex-sdk.mdx +4 -4
  626. package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
  627. package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
  628. package/docs-site/zh/explanation/adapter.mdx +6 -6
  629. package/docs-site/zh/explanation/assert.mdx +7 -7
  630. package/docs-site/zh/explanation/drive.mdx +4 -4
  631. package/docs-site/zh/explanation/hitl.mdx +2 -2
  632. package/docs-site/zh/explanation/judge.mdx +2 -2
  633. package/docs-site/zh/introduction.mdx +2 -2
  634. package/docs-site/zh/reference/builtin-agents.mdx +46 -49
  635. package/docs-site/zh/reference/cli.mdx +16 -14
  636. package/docs-site/zh/reference/define-agent.mdx +19 -19
  637. package/docs-site/zh/reference/define-config.mdx +7 -15
  638. package/docs-site/zh/reference/define-eval.mdx +20 -14
  639. package/docs-site/zh/reference/define-experiment.mdx +18 -39
  640. package/docs-site/zh/reference/events.mdx +1 -1
  641. package/docs-site/zh/reference/expect.mdx +21 -0
  642. package/docs-site/zh/reference/official-adapters.mdx +12 -5
  643. package/docs-site/zh/troubleshooting/debugging.mdx +2 -2
  644. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +1 -1
  645. package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
  646. package/docs-site/zh/tutorials/authoring.mdx +2 -2
  647. package/docs-site/zh/tutorials/compare-runs.mdx +1 -1
  648. package/docs-site/zh/tutorials/concurrency.mdx +8 -8
  649. package/docs-site/zh/tutorials/configuration.mdx +5 -5
  650. package/docs-site/zh/tutorials/control-run-cost.mdx +19 -19
  651. package/docs-site/zh/tutorials/eval-groups.mdx +1 -1
  652. package/docs-site/zh/tutorials/evaluation-kinds.mdx +5 -5
  653. package/docs-site/zh/tutorials/experiment-services.mdx +32 -32
  654. package/docs-site/zh/tutorials/handle-execution-failures.mdx +2 -28
  655. package/docs-site/zh/tutorials/plugins.mdx +49 -143
  656. package/docs-site/zh/tutorials/sandbox-agent.mdx +1 -1
  657. package/docs-site/zh/tutorials/sandbox-reuse.mdx +7 -7
  658. package/docs-site/zh/tutorials/upgrade-0-18.mdx +1 -1
  659. package/docs-site/zh/tutorials/upgrade-0-19.mdx +121 -0
  660. package/docs-site/zh/tutorials/upgrade-0-20.mdx +12 -0
  661. package/docs-site/zh/tutorials/verify-judge.mdx +2 -2
  662. package/docs-site/zh/tutorials/viewing-results.mdx +2 -2
  663. package/docs-site/zh/tutorials/write-experiment.mdx +1 -1
  664. package/docs-site/zh/tutorials/write-send.mdx +13 -13
  665. package/package.json +1 -1
  666. package/dist/agents/effect-runtime.cjs.map +0 -1
  667. package/dist/agents/effect-runtime.d.cts +0 -29
  668. package/dist/agents/effect-runtime.d.mts +0 -29
  669. package/dist/agents/effect-runtime.d.ts +0 -29
  670. package/dist/agents/effect-runtime.js +0 -16
  671. package/dist/agents/effect-runtime.js.map +0 -1
  672. package/dist/agents/session-slot.cjs.map +0 -1
  673. package/dist/agents/session-slot.d.cts +0 -12
  674. package/dist/agents/session-slot.d.mts +0 -12
  675. package/dist/agents/session-slot.d.ts +0 -12
  676. package/dist/agents/session-slot.js +0 -6
  677. package/dist/agents/session-slot.js.map +0 -1
  678. package/dist/model-slots.js +0 -14
  679. package/dist/model-slots.js.map +0 -1
@@ -1,10 +1,9 @@
1
- import type { ModelSlotSelection, ResolvedModelSlots } from "../model-slots.js";
1
+ import type { ModelRoleSelection, ResolvedModelRoles } from "../model-roles.js";
2
2
  import type { AdapterFlagsParser, AdapterFlagsOutput, AdapterFlagsValue } from "../adapter-flags.js";
3
3
  import type { Effect } from "effect";
4
4
  import type { ExperimentFlags, FlagValue, JsonValue, LocalizedText, ScopedFeedback, SourceArtifact, Verdict } from "../shared/types.js";
5
- import type { AttemptFailureClassifier } from "../shared/failure-class.js";
6
- import type { O11ySummary, StreamEvent, TraceSpan, Truncation, Usage } from "../o11y/types.js";
7
- import type { Agent, AgentSetupManifest } from "../agents/types.js";
5
+ import type { ObservabilitySummary, StreamEvent, TraceSpan, Truncation, Usage } from "../o11y/types.js";
6
+ import type { Agent, AgentInstallationManifest } from "../agents/types.js";
8
7
  import type { Adapter, AdapterRuntimeEvalDefinition } from "../adapter.js";
9
8
  import type { SandboxLayer } from "../sandbox/layer.js";
10
9
  import type { LinkedRunPlan } from "../sandbox/plan.js";
@@ -23,7 +22,7 @@ import type { PluginInstance, PluginOnUnavailable } from "../plugin/contracts.js
23
22
  * 这里不复制(见 docs/feature/record/architecture.md「run.json」)。
24
23
  */
25
24
  export interface ExperimentRunInfo {
26
- readonly models?: ResolvedModelSlots;
25
+ readonly models?: ResolvedModelRoles;
27
26
  description?: string;
28
27
  reasoningEffort?: string;
29
28
  flags?: globalThis.Record<string, JsonValue>;
@@ -242,7 +241,7 @@ export interface TimeoutAttribution {
242
241
  /**
243
242
  * 不一定改变 verdict、但运行后仍需回顾的有界诊断(见 docs/feature/record/architecture.md 的
244
243
  * `DiagnosticRecord`)。`level` 表达写入方观察到的运行影响,不是 verdict 的别名 ——
245
- * passed / failed / errored 任一 verdict 都可以带 cleanup / teardown 诊断。
244
+ * passed / failed / errored 任一 verdict 都可以带 cleanup / after 诊断。
246
245
  * 与运行级的 `DiagnosticNotice` 不同,这条挂在单个 attempt 结果或 RunMeta 上落盘。
247
246
  */
248
247
  export interface DiagnosticRecord {
@@ -250,7 +249,7 @@ export interface DiagnosticRecord {
250
249
  level: "warning" | "error";
251
250
  /**
252
251
  * 诊断归属。attempt 诊断由 runner 绑定当时打开的锚点;Run 诊断可引用 Run timing node,
253
- * 也可只带 `experiment.teardown` 这类归因锚点;没有 timing 记录的第三方 producer 可省略。
252
+ * 也可只带 `experiment.after` 这类归因锚点;没有 timing 记录的第三方 producer 可省略。
254
253
  */
255
254
  origin?: TimingOrigin;
256
255
  /** 写入时观察到的原始有界描述;不包含修复动作或呈现文案。 */
@@ -380,7 +379,7 @@ export interface EvalResult {
380
379
  estimatedCostUSD?: number;
381
380
  /** 使 attempt 进入 `errored` 的唯一致命执行错误(结构化);默认报告显示 `error.message` 一层原因。 */
382
381
  error?: AttemptError;
383
- /** 本 attempt 的诊断(与 verdict 独立);teardown / cleanup 失败等挂在这里,不改判定。 */
382
+ /** 本 attempt 的诊断(与 verdict 独立);after / cleanup 失败等挂在这里,不改判定。 */
384
383
  diagnostics?: readonly DiagnosticRecord[];
385
384
  /** Runner 阶段计时,按执行顺序;只记录实际发生的阶段(见 docs/feature/record/architecture.md)。 */
386
385
  phases?: PhaseTiming[];
@@ -388,11 +387,11 @@ export interface EvalResult {
388
387
  events?: StreamEvent[];
389
388
  /** test 引用到的 eval 源码(按 loc 收集),供 view 渲染 github-diff 式代码视图。 */
390
389
  sources?: SourceArtifact[];
391
- o11y?: O11ySummary;
390
+ o11y?: ObservabilitySummary;
392
391
  /** agent 经 OpenTelemetry 导出的运行追踪(有 tracing 能力且收到 span 时)。 */
393
392
  trace?: TraceSpan[];
394
- /** 本 attempt 的 agent setup 实际装了什么(Skill / native plugin / MCP / Python plugin);不参与评分。 */
395
- agentSetup?: AgentSetupManifest;
393
+ /** 本 attempt 的 agent before 实际装了什么(Skill / native plugin / MCP / Python plugin);不参与评分。 */
394
+ agentInstallation?: AgentInstallationManifest;
396
395
  /**
397
396
  * attempt 级聚合的证据覆盖(各 turn 的最差值,unavailable < partial < complete);必填。
398
397
  */
@@ -459,7 +458,7 @@ export declare const RECORD_FORMAT = "niceeval.results";
459
458
  * `diff.json` 落逐窗口 delta 序列(DiffWindow[]);events/trace 的字符串值统一 256 KiB 截断
460
459
  * (结构化 `truncated` 标记);run.json 新增发布拷贝的 `publish` 标记。
461
460
  * `9` = `hasEvents`/`hasTrace`/`hasSources` 三个布尔删除,统一为 `artifacts`(writer 实际写出的
462
- * 按需 artifact 词干列表,单源在证据 registry);`O11ySummary` 删除 `usage`/`estimatedCostUSD`/
461
+ * 按需 artifact 词干列表,单源在证据 registry);`ObservabilitySummary` 删除 `usage`/`estimatedCostUSD`/
463
462
  * `durationMs`,正名为纯行为计数缓存;EvalResult 是 Runner outcome,SQLite Record 拥有持久成本事实
464
463
  * `durationMs`(见 memory 的 results-evidence-registry-ruling 条目)。
465
464
  * `12` = `diff.json` 的 `WindowChange.binary` 并入 `elided`。
@@ -496,8 +495,8 @@ export interface InvocationSummary {
496
495
  /** Current Record readbacks adopted by this invocation; these are never recreated EvalResults. */
497
496
  reusedAttempts: readonly CurrentReusedAttemptReadback[];
498
497
  results: EvalResult[];
499
- /** Unique provider-native setup-prefix nodes settled before Attempt dispatch. */
500
- setupPrefixes: SetupPrefixPreparationSummary;
498
+ /** Unique provider-native before-cache nodes settled before Attempt dispatch. */
499
+ beforeCaches: SetupPrefixPreparationSummary;
501
500
  }
502
501
  /**
503
502
  * The invocation-level hand-off identifies every created Run and fixes one
@@ -549,7 +548,7 @@ export interface Reporter {
549
548
  * `required` 语义(见 docs/feature/experiments/cli.md「运行完成状态不只看 verdict 计数」):
550
549
  * - CLI 显式 `--junit`:`required: true`——这是调用者要求的附加聚合文件,写失败必须让
551
550
  * `InvocationCompletion` 判红、CI 退出码非零。CLI `--json` 是终端 receipt 流,不是 Reporter。
552
- * - 用户 `Config.reporters` / `EvalDef.reporters`:`required: false`——失败只折成一条
551
+ * - 用户 `Config.reporters`:`required: false`——失败只折成一条
553
552
  * diagnostic,不影响 completion,也不阻断其它 reporter 收尾或后续 attempt。
554
553
  *
555
554
  * `target` 是可选的落盘路径(如 `--json`/`--junit` 指定的文件),纯展示 / 排障用途,不参与判定。
@@ -593,7 +592,7 @@ export type ReporterEvent = {
593
592
  type: "invocation:summary";
594
593
  summary: InvocationSummary;
595
594
  } | {
596
- /** 该 Experiment 的 teardown(若声明)完成之后、invocation:summary 之前触发。 */
595
+ /** 该 Experiment 的 after(若声明)完成之后、invocation:summary 之前触发。 */
597
596
  type: "experiment:complete";
598
597
  experimentId: string;
599
598
  /** 该 Experiment 封口时刻,即它的 Run completedAt。 */
@@ -655,8 +654,6 @@ export interface EvalAuthorFields {
655
654
  plugins?: readonly PluginInstance<"eval">[];
656
655
  /** 模型字符串只替换项目 Judge Provider 的模型;Provider 实例整体替换。Experiment 设置优先。 */
657
656
  judge?: JudgeSelection;
658
- /** 覆盖 / 追加项目级 Config.reporters,只对这一条评估用例生效。 */
659
- reporters?: Reporter[];
660
657
  /** 覆盖项目级 / CLI 的单次 attempt 超时(毫秒),只对这一条评估用例生效。 */
661
658
  timeoutMs?: number;
662
659
  /** 任意附加元数据,作为 Attempt Provenance 保存,不参与调度或打分;供自定义 reporter 消费。 */
@@ -692,7 +689,7 @@ export type ScoreEvalInput<Sandbox extends SandboxLayer | undefined = SandboxLay
692
689
  };
693
690
  /** Factory 完成默认归一后的 Eval 字段;Definition 不再复用作者输入的 optional 半状态。 */
694
691
  export interface EvalDefinitionFields<Sandbox extends SandboxLayer | undefined = SandboxLayer | undefined> {
695
- readonly requiredModelSlots?: readonly string[];
692
+ readonly requiredModelRoles?: readonly string[];
696
693
  readonly description?: string;
697
694
  readonly tags: readonly string[];
698
695
  /**
@@ -702,7 +699,6 @@ export interface EvalDefinitionFields<Sandbox extends SandboxLayer | undefined =
702
699
  readonly sandbox?: Sandbox;
703
700
  readonly plugins: readonly PluginInstance<"eval">[];
704
701
  readonly judge?: JudgeSelection;
705
- readonly reporters: readonly Reporter[];
706
702
  readonly timeoutMs?: number;
707
703
  readonly metadata: Readonly<globalThis.Record<string, JsonValue>>;
708
704
  readonly diff: {
@@ -783,9 +779,9 @@ export declare function isEvalDefinition(value: unknown): value is AnyEvalDefini
783
779
  /** @internal discovery 构造唯一的不可变阶段三值,不回写 Definition。 */
784
780
  export declare function discoverEval(definition: AnyEvalDefinition, facts: DiscoveredEvalFacts): DiscoveredEval;
785
781
  /**
786
- * `ExperimentDefinition.setup` / `teardown` 拿到的窄上下文。`progress` 更新本实验运行级
782
+ * `ExperimentDefinition.before` / `after` 拿到的窄上下文。`progress` 更新本实验运行级
787
783
  * active 行的次要文本(短命状态,JSON 机器流不逐条输出),`diagnostic` 进运行级永久
788
- * 事件流(实验级钩子不属于任何单个 attempt,诊断不落 attempt 的 `result.json`;setup 抛错
784
+ * 事件流(实验级钩子不属于任何单个 attempt,诊断不落 attempt 的 `result.json`;before 抛错
789
785
  * 以每条 attempt 的结构化 `error` 落盘,失败仍可回顾)。钩子的起止本身由 runner 直接发布为
790
786
  * 运行级反馈,不依赖这里的 `progress`(见 docs/feature/experiments/cli.md「实验级 Hook 的显示」)。
791
787
  */
@@ -793,7 +789,7 @@ export interface ExperimentHookContext extends ScopedFeedback {
793
789
  readonly experimentId: string;
794
790
  /** 本实验解析后实际选中的 eval id 全集(evals 过滤器的求值结果)。 */
795
791
  readonly selectedEvalIds: readonly string[];
796
- /** 用户中断(Ctrl+C / kill)时 abort;长启动的 setup 应观察它提前退出。 */
792
+ /** 用户中断(Ctrl+C / kill)时 abort;长启动的 before 应观察它提前退出。 */
797
793
  readonly signal: AbortSignal;
798
794
  }
799
795
  /** Shared lifecycle callback shape for author and Experiment Plugin hooks. */
@@ -805,24 +801,22 @@ export type ExperimentHook = (ctx: ExperimentHookContext) => void | Promise<void
805
801
  export interface SharedStateConfig {
806
802
  readonly key: string;
807
803
  }
808
- /** Host-only SetupPrefix cache policy. It is resolved per AgentRun and never participates in identity. */
809
- export type SandboxSetupCache = "use" | "bypass";
804
+ /** Host-only before cache policy. It is resolved per AgentRun and never participates in identity. */
805
+ export type SandboxBeforeCache = "use" | "bypass";
810
806
  export interface SandboxCacheConfig {
811
- readonly setup?: SandboxSetupCache;
807
+ readonly before?: SandboxBeforeCache;
812
808
  }
813
809
  /**
814
810
  * Resolve the one completed runtime policy without projecting it into any identity shape.
815
811
  * The argument order mirrors the public precedence: CLI → Experiment → Config → default.
816
812
  */
817
- export declare function resolveSandboxSetupCache(cli: SandboxSetupCache | undefined, experiment: SandboxCacheConfig | undefined, config: SandboxCacheConfig | undefined): SandboxSetupCache;
813
+ export declare function resolveSandboxBeforeCache(cli: SandboxBeforeCache | undefined, experiment: SandboxCacheConfig | undefined, config: SandboxCacheConfig | undefined): SandboxBeforeCache;
818
814
  /** Experiment 作者自行选择的字段;不包含路径 id 与 factory 品牌。 */
819
815
  export interface ExperimentAuthorFields {
820
- /** 为自定义 Adapter 的各个具名模型槽选择模型;不能与单模型简写同时使用。 */
821
- models?: Readonly<Record<string, ModelSlotSelection>>;
816
+ /** 为自定义 Adapter 的各个模型用途选择模型;不能与单模型简写同时使用。 */
817
+ models?: Readonly<Record<string, ModelRoleSelection>>;
822
818
  /** 一句话描述,展示在 view / CLI 里;纯说明,不影响调度或打分。 */
823
819
  description?: string;
824
- /** 对话 Adapter 的简写;`agent` 与 `adapter` 必须且只能提供一个。 */
825
- agent?: Agent;
826
820
  /** 本实验使用的 Adapter 实现。 */
827
821
  adapter?: Adapter;
828
822
  /** 单个模型(agent 留空时实验决定);省略=用 agent 原生默认。跨模型对比写多个实验文件,别用数组。 */
@@ -834,7 +828,7 @@ export interface ExperimentAuthorFields {
834
828
  * rubric 由 Match 拥有,材料与消费阈值由 Assertion 提供。各字段按
835
829
  * Experiment → Eval → Config → 内置默认值解析。
836
830
  */
837
- judgeRuntime?: JudgeSelection;
831
+ judge?: JudgeSelection;
838
832
  /** 实验条件(A/B 里的 feature flag),由实验文件声明;必须是扁平标量对象
839
833
  * (仅字符串、有限数字或布尔值,defineExperiment 解析时校验),经 ctx.flags 透传给 adapter、
840
834
  * t.flags 暴露给 eval,并原样进入结果快照的 ExperimentRunInfo.flags。 */
@@ -876,8 +870,8 @@ export interface ExperimentAuthorFields {
876
870
  sandboxReuse?: boolean;
877
871
  /**
878
872
  * 声明本 Experiment 需要独占的共享外部状态。相同 key 的 Invocation 在同一项目
879
- * Coordination 域内从 Experiment/Sandbox setup 前一直互斥到 Sandbox teardown、
880
- * provider finalizer 与 Experiment teardown 全部完成;等待者不会先创建 Sandbox,
873
+ * Coordination 域内从 Experiment/Sandbox before 前一直互斥到 Sandbox after、
874
+ * provider finalizer 与 Experiment after 全部完成;等待者不会先创建 Sandbox,
881
875
  * 取得租约后继续自己的 plan。它不是状态存储、事务或跨机器锁。
882
876
  */
883
877
  sharedState?: SharedStateConfig;
@@ -893,38 +887,29 @@ export interface ExperimentAuthorFields {
893
887
  * 仍按全局并发(CLI / env / config / 沙箱默认)跑。用于串行化有共享状态的实验
894
888
  * (如跨 eval 累积记忆:`maxConcurrency: 1` 保证 attempt 按 eval 顺序一个个跑),
895
889
  * 或给撞 provider 限额的实验单独降速。名额与 attempt 同生命周期:从沙箱创建前一直握到
896
- * teardown 与沙箱销毁完成才归还,中途任何等待(含 turn 重试退避)都不松手——
890
+ * after 与沙箱销毁完成才归还,中途任何等待(含 turn 重试退避)都不松手——
897
891
  * `maxConcurrency: 1` 因此是严格的临界区,不会被同实验的下一个 attempt 提前闯入。
898
892
  * 它不跨 Invocation;跨 Invocation 的共享外部状态请声明 `sharedState`。
899
893
  */
900
894
  maxConcurrency?: number;
901
895
  /**
902
- * 本实验的失败分类器:识别以第三方错误形态浮出的自家共享基建死因(对自家隧道 host 的拒连
903
- * 一类),返回 `undefined` 表示「不认识,交给后续链路」。本实验任意 per-attempt 阶段的失败
904
- * 都会问到它;send 失败链上它排在 adapter 的 `classifySendFailure` 之前——按自家坐标过滤的
905
- * 特异性高于协议通用形状,两者同时认领时空间轴才赢得下来。分类器要快、纯、不抛错(抛错按
906
- * `undefined` 回落并被吞掉);只声明决策轴与 `reason` 词,重试与落闸策略归执行体。
907
- * 见 docs/feature/error-classification/library.md「实验 / eval 作者:声明死因的波及范围」。
908
- */
909
- classifyFailure?: AttemptFailureClassifier;
910
- /**
911
- * 实验级生命周期钩子对的 setup 侧:整场至多一次、宿主机侧,管「每实验一份、所有 attempt
896
+ * 实验级生命周期钩子对的 before 侧:整场至多一次、宿主机侧,管「每实验一份、所有 attempt
912
897
  * 共享」的宿主机资源(隧道、mock server、license 租约)。本实验第一个通过派发许可的
913
898
  * attempt 触发(memoized,并发 attempt 等同一个结果;全部结果被 carry 携入时不执行)。
914
- * setup 不返回值;产物写模块级变量,`teardown` 与同文件 agent / sandbox 钩子从闭包读,
915
- * runner 不做值的中介。setup 抛错 → 本实验所有 Attempt 形成 `errored` Verdict
916
- * (code `"experiment-setup-failed"`、phase `"experiment.setup"`),同批其它实验不受影响。
899
+ * before 不返回值;产物写模块级变量,`after` 与同文件 agent / sandbox 钩子从闭包读,
900
+ * runner 不做值的中介。before 抛错 → 本实验所有 Attempt 形成 `errored` Verdict
901
+ * (code `"experiment-setup-failed"`、phase `"experiment.before"`),同批其它实验不受影响。
917
902
  * 函数体不进 fingerprint,改了钩子逻辑用 `--rerun all` 明确全部重跑。
918
903
  * 见 docs/feature/experiments/architecture.md「实验级生命周期」。
919
904
  */
920
- setup?: ExperimentHook;
905
+ before?: ExperimentHook;
921
906
  /**
922
- * 实验级生命周期钩子对的 teardown 侧:本实验全部 attempt 收尾后执行(运行被中断也执行),
923
- * 当且仅当 setup 时点走到过——setup 抛错不豁免(半初始化现场同样要扫尾,teardown 对可能
924
- * 未赋值的闭包变量做防御),未声明 setup 不影响触发;一个 attempt 都不派发则跳过。
907
+ * 实验级生命周期钩子对的 after 侧:本实验全部 attempt 收尾后执行(运行被中断也执行),
908
+ * 当且仅当 before 时点走到过——before 抛错不豁免(半初始化现场同样要扫尾,after 对可能
909
+ * 未赋值的闭包变量做防御),未声明 before 不影响触发;一个 attempt 都不派发则跳过。
925
910
  * 抛错或超 30s 清理上限只记运行级 diagnostic(`experiment-teardown-failed`),不改判定。
926
911
  */
927
- teardown?: ExperimentHook;
912
+ after?: ExperimentHook;
928
913
  }
929
914
  /** 作者输入:id 只能由发现阶段从文件路径推导。 */
930
915
  /** Infer only from the Adapter selection; flags cannot widen it. */
@@ -936,15 +921,11 @@ type ExperimentFlagsFields<A extends Adapter> = {
936
921
  };
937
922
  type ExperimentAdapterSelection<A extends Adapter> = {
938
923
  readonly adapter: A;
939
- readonly agent?: never;
940
- } | {
941
- readonly agent: A & Agent;
942
- readonly adapter?: never;
943
924
  };
944
925
  type ExperimentModelFields<A extends Adapter> = A extends {
945
926
  readonly kind: "custom";
946
927
  } ? ({
947
- readonly models: Readonly<Record<string, ModelSlotSelection>>;
928
+ readonly models: Readonly<Record<string, ModelRoleSelection>>;
948
929
  readonly model?: never;
949
930
  readonly reasoningEffort?: never;
950
931
  } | {
@@ -956,19 +937,17 @@ type ExperimentModelFields<A extends Adapter> = A extends {
956
937
  readonly model?: string;
957
938
  readonly reasoningEffort?: string;
958
939
  };
959
- export type ExperimentInput<A extends Adapter = Adapter> = Omit<ExperimentAuthorFields, "agent" | "adapter" | "flags" | "models" | "model" | "reasoningEffort"> & ExperimentModelFields<A> & ExperimentAdapterSelection<A> & ExperimentFlagsFields<NoInfer<A>> & {
940
+ export type ExperimentInput<A extends Adapter = Adapter> = Omit<ExperimentAuthorFields, "adapter" | "flags" | "models" | "model" | "reasoningEffort"> & ExperimentModelFields<A> & ExperimentAdapterSelection<A> & ExperimentFlagsFields<NoInfer<A>> & {
960
941
  id?: ExperimentIdComesFromFilePath;
961
942
  };
962
943
  /** Factory 完成默认归一后的 Experiment 字段;无默认语义的 Hook 仍保持作者声明。 */
963
944
  export interface ExperimentDefinition<A extends Adapter = Adapter> {
964
- readonly models?: ResolvedModelSlots;
945
+ readonly models?: ResolvedModelRoles;
965
946
  readonly description?: string;
966
947
  readonly adapter: A;
967
- /** Present when the selected Adapter is an Agent, regardless of the input shorthand. */
968
- readonly agent?: Agent;
969
948
  readonly model?: string;
970
949
  readonly reasoningEffort?: string;
971
- readonly judgeRuntime?: JudgeSelection;
950
+ readonly judge?: JudgeSelection;
972
951
  readonly flags: AdapterFlagsOutput<ExperimentFlagsParser<A>> & ExperimentFlags;
973
952
  readonly labels: Readonly<globalThis.Record<string, string | number>>;
974
953
  readonly attempts: number;
@@ -983,9 +962,8 @@ export interface ExperimentDefinition<A extends Adapter = Adapter> {
983
962
  readonly sharedState?: SharedStateConfig;
984
963
  readonly budget?: number;
985
964
  readonly maxConcurrency?: number;
986
- readonly classifyFailure?: AttemptFailureClassifier;
987
- readonly setup?: ExperimentHook;
988
- readonly teardown?: ExperimentHook;
965
+ readonly before?: ExperimentHook;
966
+ readonly after?: ExperimentHook;
989
967
  readonly [EXPERIMENT_DEFINITION]: true;
990
968
  }
991
969
  /** @internal 仅 defineExperiment 写入私有品牌。 */
@@ -1030,19 +1008,17 @@ export interface Config {
1030
1008
  * 可传字符串,或按 locale 提供多语言(如 `{ en: "...", "zh-CN": "..." }`),随 view 语言切换。
1031
1009
  */
1032
1010
  name?: LocalizedText;
1033
- /** 上传进 Sandbox 的工作区根目录,省略则用项目根;评估用例的 sandbox 视图从这里起步。 */
1034
- workspace?: string;
1035
1011
  /** 项目级默认 Judge Provider;Eval 与 Experiment 可替换模型或整个 Provider。 */
1036
- judgeRuntime?: JudgeProvider;
1037
- /** 项目级默认 reporter 列表(如落盘 / 上传结果);EvalDef.reporters 会与它合并。 */
1012
+ judgeProvider?: JudgeProvider;
1013
+ /** 项目级默认 reporter 列表(如落盘 / 上传结果)。 */
1038
1014
  reporters?: Reporter[];
1039
1015
  /** 项目级默认并发上限;CLI flag / experiment 的同名设置优先级更高(没有环境变量层)。 */
1040
1016
  maxConcurrency?: number;
1041
1017
  /** Run 级 Sandbox 镜像准备并发;与 attempt 并发独立,省略时安全默认 2。 */
1042
1018
  maxBuildConcurrency?: number;
1043
1019
  /** Run 级 PreparedArtifact 前缀 DAG 准备并发;与 build / attempt 并发独立。 */
1044
- maxSetupPrefixConcurrency?: number;
1045
- /** 项目级 SetupPrefix cache 默认;Experiment 与显式 CLI flag 可覆盖。 */
1020
+ maxBeforeCacheConcurrency?: number;
1021
+ /** 项目级 before cache 默认;Experiment 与显式 CLI flag 可覆盖。 */
1046
1022
  sandboxCache?: SandboxCacheConfig;
1047
1023
  /** 项目级默认单次 attempt 超时(毫秒);CLI flag / experiment / EvalDef 的同名设置优先级更高。 */
1048
1024
  timeoutMs?: number;
@@ -1116,7 +1092,7 @@ export declare function runWho(run: {
1116
1092
  }): string;
1117
1093
  /** 一个 (agent, model, flags) 的运行配置 —— 由 CLI / 实验展开。 */
1118
1094
  export interface AdapterRun {
1119
- readonly models?: ResolvedModelSlots;
1095
+ readonly models?: ResolvedModelRoles;
1120
1096
  readonly adapter: Adapter;
1121
1097
  /** Present exactly when `adapter` is an Agent implementation. */
1122
1098
  readonly agent?: Agent;
@@ -1126,7 +1102,7 @@ export interface AdapterRun {
1126
1102
  readonly attempts: number;
1127
1103
  readonly earlyExit: boolean;
1128
1104
  /** 本次 Invocation 已按 CLI → Experiment → Config → default 归一的 Host cache 策略。 */
1129
- readonly sandboxSetupCache: SandboxSetupCache;
1105
+ readonly sandboxBeforeCache: SandboxBeforeCache;
1130
1106
  /** Experiment 的作者 layer;省略在 link 输入归一为 command-only。 */
1131
1107
  readonly sandbox?: SandboxLayer;
1132
1108
  /** Experiment Plugin occurrences carried into zero-resource pair link. */
@@ -1137,7 +1113,7 @@ export interface AdapterRun {
1137
1113
  /** 跨 Invocation 共享外部状态的互斥声明;值进入 configHash。 */
1138
1114
  readonly sharedState?: SharedStateConfig;
1139
1115
  /** Experiment 声明的 judge 覆盖;与 Eval/Config 的逐字段解析在 pair 规划期完成。 */
1140
- readonly judgeRuntime?: JudgeSelection;
1116
+ readonly judge?: JudgeSelection;
1141
1117
  /**
1142
1118
  * 运行侧已求值的单 attempt 超时上限:只含 `--timeout` 与 experiment 字段两层
1143
1119
  * (`resolveRunTimeout`)。**不许把 config 的值提前物化进来**——eval 与 config 两层由
@@ -1167,14 +1143,11 @@ export interface AdapterRun {
1167
1143
  /** 本配置自己的并发上限(来自 ExperimentDef.maxConcurrency):调度器为它单建信号量,
1168
1144
  * attempt 先过这道闸再占全局并发位;省略则只受全局并发约束。 */
1169
1145
  readonly maxConcurrency?: number;
1170
- /** 实验级生命周期钩子对(来自 ExperimentDef.setup / .teardown):setup 整场至多一次,
1171
- * 调度器 memoize 执行;teardown 在全部 attempt 收尾后执行,当且仅当 setup 时点走到过
1146
+ /** 实验级生命周期钩子对(来自 ExperimentDef.before / .after):before 整场至多一次,
1147
+ * 调度器 memoize 执行;after 在全部 attempt 收尾后执行,当且仅当 before 时点走到过
1172
1148
  * (语义见 ExperimentDef 对应字段)。 */
1173
1149
  readonly setup?: ExperimentHook;
1174
1150
  readonly teardown?: ExperimentHook;
1175
- /** 实验声明的失败分类器(来自 ExperimentDef.classifyFailure):turn 链上排在 adapter 之前,
1176
- * 生命周期链上排在抛出点声明之后;产出的空间轴由止损闸在 attempt 封口消费。 */
1177
- readonly classifyFailure?: AttemptFailureClassifier;
1178
1151
  }
1179
1152
  /** @internal Transitional name while Agent-only execution seams are narrowed. */
1180
1153
  export type AgentRun = AdapterRun;
@@ -1193,7 +1166,7 @@ export interface RunOptions<RecordError = never, RecordRequirements = never> {
1193
1166
  /** `--accept` 本次授权跨过的差异 selector(`config:<字段路径>` 等)。 */
1194
1167
  accept?: readonly string[];
1195
1168
  /**
1196
- * 本地旧 registry 根(默认 `cwd/.niceeval`)。仅供尚未迁移的 teardown / Sandbox
1169
+ * 本地旧 registry 根(默认 `cwd/.niceeval`)。仅供尚未迁移的 after / Sandbox
1197
1170
  * 生命周期消费者;Session 与 execution lock 固定使用 `recordRoot` 的 ProjectDatabase。
1198
1171
  */
1199
1172
  coordinationRoot?: string;
@@ -1219,16 +1192,14 @@ export interface RunOptions<RecordError = never, RecordRequirements = never> {
1219
1192
  /**
1220
1193
  * 已注册的 reporter,携带 name/required 元数据(见 `ReporterRegistration`)。这是内部编排
1221
1194
  * 通道——调用方(今天只有 `cli.ts`)按来源(显式 --junit / 用户 `Config.reporters`)把裸
1222
- * `Reporter` 各自包一层元数据后传进来;eval 级 `EvalDef.reporters`
1223
- * 不经过这里,由 `runEvals()` 自己按 `scopeReporter()` 包装、统一记作 `required: false`
1224
- *(见 run.ts 的 scopedSets 处理)。
1195
+ * `Reporter` 各自包一层元数据后传进来。项目 Reporter 使用 `required: false`。
1225
1196
  */
1226
1197
  reporters: ReporterRegistration[];
1227
1198
  maxConcurrency: number;
1228
1199
  /** Run 级 Sandbox 镜像 lookup/build 并发;省略时安全默认 2。 */
1229
1200
  maxBuildConcurrency?: number;
1230
1201
  /** Run 级 PreparedArtifact 前缀 DAG 并发;省略时安全默认 2。 */
1231
- maxSetupPrefixConcurrency?: number;
1202
+ maxBeforeCacheConcurrency?: number;
1232
1203
  signal?: AbortSignal;
1233
1204
  /**
1234
1205
  * 非沙箱 tracing agent 的 run 级共享 OTLP 接收池(runEvals 创建并回收;
@@ -1334,13 +1305,13 @@ export interface QueuedAttempt {
1334
1305
  reason: AttemptQueueReason;
1335
1306
  queuedAt: number;
1336
1307
  }
1337
- /** 实验级钩子只有 setup 与它返回的 teardown 两员,同一实验内两者永不并发
1338
- * (teardown 在全部 attempt 收尾后才触发),所以运行级行按 experimentId 建 key 就够。 */
1308
+ /** 实验级钩子只有 before 与它返回的 after 两员,同一实验内两者永不并发
1309
+ * (after 在全部 attempt 收尾后才触发),所以运行级行按 experimentId 建 key 就够。 */
1339
1310
  export type ExperimentHookName = "setup" | "teardown";
1340
1311
  /**
1341
1312
  * dashboard 当前可见的一个实验级钩子运行级行(见 docs/feature/experiments/cli.md
1342
1313
  * 「实验级 Hook 的显示」)。与 `ActiveAttempt` 分开建模:钩子不属于任何单个 attempt、不占并发位,
1343
- * 也不参与 `RunFeedbackState` 的计数不变量——等待 setup 的
1314
+ * 也不参与 `RunFeedbackState` 的计数不变量——等待 before 的
1344
1315
  * attempt 保持 `queued`,这行就是「为什么它们还在排队」的解释。`detail` 来自实验级
1345
1316
  * `ctx.progress`,后一条覆盖前一条。
1346
1317
  */
@@ -1359,7 +1330,7 @@ export interface ActiveExperimentHook {
1359
1330
  /** 钩子开始的墙钟时间(epoch ms),用于渲染运行级行的耗时。 */
1360
1331
  startedAt: number;
1361
1332
  detail?: string;
1362
- /** 强杀后启动自愈补执行的 teardown(见 `DurableFeedbackEvent` 的 "experiment-hook" 变体)。 */
1333
+ /** 强杀后启动自愈补执行的 after(见 `DurableFeedbackEvent` 的 "experiment-hook" 变体)。 */
1363
1334
  recovery?: boolean;
1364
1335
  }
1365
1336
  /**
@@ -1488,7 +1459,7 @@ export interface RunFeedbackState {
1488
1459
  running: number;
1489
1460
  /** 正被并行 Invocation 持锁运行、本次在等待中的用例的 attempt 数(用例锁,见 `lock-wait`
1490
1461
  * 变体与 docs/feature/experiments/cli.md「等待并发 run 的显示」);与 `queued` 互斥——
1491
- * `queued` 是「等本进程并发位/setup」,`elsewhere` 是「等别的进程」。
1462
+ * `queued` 是「等本进程并发位/before」,`elsewhere` 是「等别的进程」。
1492
1463
  * 恒等式(见接口注释)在处理完每一个事件之后都成立。 */
1493
1464
  elsewhere: number;
1494
1465
  queued: number;
@@ -1694,9 +1665,9 @@ export type DurableFeedbackEvent = {
1694
1665
  enter?: string;
1695
1666
  }
1696
1667
  /**
1697
- * 实验级钩子(`ExperimentDef.setup` / 它返回的 teardown)的起止,由 runner 在钩子真正
1668
+ * 实验级钩子(`ExperimentDef.before` / 它返回的 after)的起止,由 runner 在钩子真正
1698
1669
  * 开始/结束时各发一次(见 docs/feature/experiments/cli.md「实验级 Hook 的显示」)。`failed`
1699
- * 只标记钩子自身的结局——setup 失败的每条 attempt 仍以 "failure" 事件逐条给出。human TTY
1670
+ * 只标记钩子自身的结局——before 失败的每条 attempt 仍以 "failure" 事件逐条给出。human TTY
1700
1671
  * 用它维护运行级 active 行(不写 scrollback),append-only profile 起止各追加一行。
1701
1672
  */
1702
1673
  | {
@@ -1708,7 +1679,7 @@ export type DurableFeedbackEvent = {
1708
1679
  /** 只在 done / failed 上出现:钩子从开始到结束的耗时。 */
1709
1680
  durationMs?: number;
1710
1681
  /**
1711
- * 只在 `hook: "teardown"` 的 `status: "started"` 上可能出现:标注这是强杀后的启动自愈
1682
+ * 只在 `hook: "after"` 的 `status: "started"` 上可能出现:标注这是强杀后的启动自愈
1712
1683
  * 补执行(见 docs/feature/experiments/architecture.md「强杀后的收尾兜底」),不是本次 run
1713
1684
  * 正常触发的收尾。省略 = 正常路径。
1714
1685
  */
@@ -29,8 +29,8 @@ const __niceevalExport12 = __niceevalCanonical["isEvalGroupDefinition"];
29
29
  export { __niceevalExport12 as isEvalGroupDefinition };
30
30
  const __niceevalExport13 = __niceevalCanonical["isExperimentDefinition"];
31
31
  export { __niceevalExport13 as isExperimentDefinition };
32
- const __niceevalExport14 = __niceevalCanonical["resolveSandboxSetupCache"];
33
- export { __niceevalExport14 as resolveSandboxSetupCache };
32
+ const __niceevalExport14 = __niceevalCanonical["resolveSandboxBeforeCache"];
33
+ export { __niceevalExport14 as resolveSandboxBeforeCache };
34
34
  const __niceevalExport15 = __niceevalCanonical["runWho"];
35
35
  export { __niceevalExport15 as runWho };
36
36
  //# sourceMappingURL=types.js.map
@@ -547,7 +547,7 @@ function makeAfterAction(data) {
547
547
  SANDBOX_AFTER_ACTION_DATA.set(action, data);
548
548
  return Object.freeze(action);
549
549
  }
550
- // @concord-code ne-sandbox-define-action
550
+ // @concord-code
551
551
  // @concord-implements docs/feature/sandbox/prepare-commands.md
552
552
  // @concord-implements docs/feature/sandbox/architecture.md
553
553
  function defineSandboxAction(definition) {