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
@@ -19,6 +19,9 @@ exports.withAdoptionReader = withAdoptionReader;
19
19
  exports.withAdoptionCommitScope = withAdoptionCommitScope;
20
20
  exports.resolveExactAdoptionSourceRun = resolveExactAdoptionSourceRun;
21
21
  exports.prepareWholeRunAdoptionMembers = prepareWholeRunAdoptionMembers;
22
+ // @concord-file ne-runner-adoption
23
+ // @concord-implements docs/feature/experiments/cache.md
24
+ // @concord-implements docs/feature/experiments/library.md
22
25
  const score_ts_1 = require("../eval/record/score.cjs");
23
26
  const rename_identity_ts_1 = require("./rename-identity.cjs");
24
27
  const context_ts_1 = require("./record/context.cjs");
@@ -129,6 +132,7 @@ function runForExperiment(experiment, selectedEvalIds, config) {
129
132
  return Object.freeze({
130
133
  adapter: experiment.adapter,
131
134
  ...(experiment.agent === undefined ? {} : { agent: experiment.agent }),
135
+ ...(experiment.models === undefined ? {} : { models: experiment.models }),
132
136
  ...(experiment.model === undefined ? {} : { model: experiment.model }),
133
137
  ...(experiment.reasoningEffort === undefined
134
138
  ? {}
@@ -169,6 +173,7 @@ function adoptionRunContext(run) {
169
173
  experimentId: run.experimentId,
170
174
  execution: {
171
175
  adapter: (0, adapter_ts_1.adapterIdentity)(run.adapter),
176
+ ...(run.adapter.kind === "custom" ? { models: run.models ?? Object.freeze({}) } : {}),
172
177
  model: run.model ?? null,
173
178
  reasoningEffort: run.reasoningEffort ?? null,
174
179
  flags: run.flags,
@@ -209,6 +214,8 @@ function currentTargetSlotIdentity(input) {
209
214
  * a produced Run has the complete current denominator rather than only the
210
215
  * manually adopted Members.
211
216
  */
217
+ // @concord-code ne-runner-prepare-adoption-target
218
+ // @concord-implements docs/feature/experiments/cache.md
212
219
  function prepareCurrentAdoptionTarget(input) {
213
220
  return effect_1.Effect.gen(function* () {
214
221
  const experiment = input.project.experiments.find((candidate) => candidate.id === input.experimentId);
@@ -512,6 +519,8 @@ function durationComparison(input) {
512
519
  * is compared exactly, but an explicit operator decision may accept a mismatch.
513
520
  * The folded Verdict and complete Runner Activity timing remain hard gates.
514
521
  */
522
+ // @concord-code ne-runner-prepare-adoption-member
523
+ // @concord-implements docs/feature/experiments/cache.md
515
524
  function prepareExplicitAdoptionMember(input) {
516
525
  return effect_1.Effect.gen(function* () {
517
526
  const target = input.target.slotFor(input.evalId, input.attempt);
@@ -1 +1 @@
1
- {"version":3,"file":"adoption.js","sourceRoot":"","sources":["adoption.ts"],"names":[],"mappings":"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","sourcesContent":["import { foldRecordedAttemptScore } from \"../eval/record/score.ts\";\nimport { executionDigestForExperiment, hasProvenNoExperimentHooks } from \"./rename-identity.ts\";\nimport { experimentHooksForRun } from \"./record/context.ts\";\nimport { randomUUID } from \"node:crypto\";\nimport { resolve } from \"node:path\";\nimport { Effect, Result, Schema } from \"effect\";\nimport { adapterIdentity } from \"../adapter.ts\";\nimport { encodeAttemptLocator, parseAttemptLocator, type AttemptLocator, } from \"../attempt-locator.ts\";\nimport { resolveAttemptLocator } from \"../attempt-locator-resolution.ts\";\nimport { EXECUTION_DURATION_DOMAIN, readAttemptExecutionDuration, type DurationLimit, type EqualityToken, } from \"../eval/record/eligibility.ts\";\nimport { type ComparisonProvenance, } from \"../eval/record/membership-provenance.ts\";\nimport { foldRecordedAttemptVerdict, type VerdictState } from \"../eval/record/verdict.ts\";\nimport { recordHost } from \"../record/host/runtime.ts\";\nimport { writerGenerationForRunSession } from \"../record/host/sqlite-host.ts\";\nimport { NiceEvalRecordAttachments } from \"../record/family/catalog.ts\";\nimport type { RecordReadSession, SelectedAttemptRef, } from \"../record/host/types.ts\";\nimport { EvalIdSchema, ExecutionIdentityDigestSchema, ExperimentIdSchema, RunIdSchema, SlotIdSchema, UtcMillisSchema, } from \"../record/codec/identifiers.ts\";\nimport type { AttemptOutcome, RecordSlotIdentity } from \"../record/model/core.ts\";\nimport { canonicalizeRunContext, type RunContext, } from \"../record/model/run-context.ts\";\nimport type { EvalId, ExperimentId, ExecutionIdentityDigest, RunId, SlotId, UtcMillis, } from \"../record/model/identifiers.ts\";\nimport { makeRecordRoot, recordRootPaths, type RecordRoot, type RecordRootConstructionError, } from \"../record/platform/root.ts\";\nimport type { RecordReaderOpenError, RecordReaderReadError } from \"../record/reader/errors.ts\";\nimport type { RecordWriteError } from \"../record/writer/types.ts\";\nimport { asRunStorageError, bindAttemptReference, closeRunResource, createRunResource, createRunWriterGeneration, readPublishedAttempt, RunStorageError, type AttemptPublicationIdentity, } from \"../run/storage/index.ts\";\nimport type { SandboxPlanningServices } from \"../sandbox/plan.ts\";\nimport { discoverEvals, discoverExperiments, } from \"./discover.ts\";\nimport { resolveExperimentEvals } from \"./eval-selection.ts\";\nimport { slotExecutionIdentityDigestHex } from \"./execution-identity.ts\";\nimport { planPreparedProjectTarget, } from \"./fingerprint.ts\";\nimport { prepareRunSandboxes, type PreparedRunPair } from \"./sandbox-selection.ts\";\nimport { resolveAttemptTimeout, resolveRunTimeout } from \"./timeout.ts\";\nimport { resolveSandboxSetupCache } from \"./types.ts\";\nimport type { AgentRun, Config, DiscoveredEval, DiscoveredExperiment, } from \"./types.ts\";\n/** Shared domains emitted by the current ProjectTarget producer. */\nexport const ADOPTION_INPUT_IDENTITY_DOMAIN = \"niceeval.input/fingerprint-v1\" as const;\nexport const ADOPTION_CONFIG_IDENTITY_DOMAIN = \"niceeval.config/identity-v1\" as const;\nconst ADOPTION_TARGET_SLOT_SEPARATOR = \"\\u0000\";\nexport type ExplicitAdoptionIntent = \"accept\" | \"rename\";\nexport type ExplicitAdoptionFailureCode = \"rename-run-not-closed\" | \"rename-identity-mismatch\" | \"rename-behavior-unproven\" | \"adoption-locator-malformed\" | \"adoption-locator-not-found\" | \"adoption-locator-ambiguous\" | \"adoption-batch-locator-duplicate\" | \"adoption-source-core-invalid\" | \"adoption-source-verdict-unavailable\" | \"adoption-source-observability-unavailable\" | \"adoption-source-verdict-ineligible\" | \"adoption-target-experiment-not-found\" | \"adoption-target-eval-not-selected\" | \"adoption-target-attempt-not-selected\" | \"adoption-target-planning-failed\" | \"adoption-target-invalid\" | \"adoption-target-slot-duplicate\" | \"adoption-target-member-duplicate\" | \"adoption-duration-domain-mismatch\" | \"adoption-timeout-exceeded\" | \"adoption-source-run-required\" | \"adoption-source-run-not-found\" | \"adoption-source-run-mismatch\" | \"accept-run-not-closed\" | \"run-not-found\" | \"adoption-provenance-invalid\" | \"adoption-evaluation-plan-invalid\";\n/** Expected product failures retain a stable code without collapsing Effect causes. */\nexport class ExplicitAdoptionError extends Error {\n readonly name = \"ExplicitAdoptionError\";\n constructor(readonly code: ExplicitAdoptionFailureCode, message: string) {\n super(message);\n }\n}\nexport type ExplicitAdoptionReadError = ExplicitAdoptionError | RecordReaderReadError;\nexport type ExplicitAdoptionOpenError = ExplicitAdoptionError | RecordRootConstructionError | RecordReaderOpenError | RecordReaderReadError | RecordWriteError;\nexport interface AdoptionProjectInput {\n readonly cwd: string;\n readonly config?: Config;\n readonly evals?: readonly DiscoveredEval[];\n readonly experiments?: readonly DiscoveredExperiment[];\n readonly planningServices?: SandboxPlanningServices;\n}\nexport interface AdoptionProject {\n readonly cwd: string;\n readonly config: Config;\n readonly evals: readonly DiscoveredEval[];\n readonly experiments: readonly DiscoveredExperiment[];\n readonly planningServices?: SandboxPlanningServices;\n}\nexport interface ExplicitAttemptLocator {\n readonly text: string;\n readonly locator: AttemptLocator;\n readonly attemptId: SelectedAttemptRef[\"attemptId\"];\n}\ninterface ParsedExplicitAttemptLocator {\n readonly text: string;\n readonly locator: AttemptLocator;\n}\nexport interface ResolvedAdoptionAttempt {\n readonly originContext: RunContext;\n readonly locator: ExplicitAttemptLocator;\n readonly attempt: SelectedAttemptRef;\n readonly origin: {\n readonly runId: RunId;\n readonly slotId: SlotId;\n readonly startedAt: UtcMillis;\n };\n readonly originExperimentId: string;\n readonly originEvalId: string;\n readonly originAttempt: number;\n readonly executionIdentityDigest: ExecutionIdentityDigest;\n}\nexport interface CurrentAdoptionSlot {\n readonly evaluationKind: \"pass\" | \"score\";\n readonly renameFingerprint?: (experimentId: string) => string | undefined;\n readonly slotId: SlotId;\n readonly experimentId: string;\n readonly evalId: string;\n /** Durable Slot identity; `attempt` remains the caller-facing selector. */\n readonly attemptOrdinal: number;\n readonly attempt: number;\n readonly inputIdentity: EqualityToken;\n readonly configIdentity: EqualityToken;\n readonly executionIdentityDigest: ExecutionIdentityDigest;\n readonly timeout?: DurationLimit;\n}\nexport interface CurrentAdoptionTarget {\n readonly experimentId: string;\n readonly startedAt: UtcMillis;\n readonly expectedSlots: readonly RecordSlotIdentity[];\n readonly context: RunContext;\n readonly slots: readonly CurrentAdoptionSlot[];\n readonly slotFor: (evalId: string, attempt: number) => CurrentAdoptionSlot | undefined;\n}\nexport interface ExplicitAdoptionMember {\n readonly target: CurrentAdoptionSlot;\n readonly source: ResolvedAdoptionAttempt;\n readonly locator: string;\n readonly verdict: \"passed\" | \"failed\";\n readonly comparisons: readonly ComparisonProvenance[];\n readonly operatorReason?: string;\n}\nexport interface ExplicitAdoptionRunPlan {\n readonly intent: ExplicitAdoptionIntent;\n readonly target: CurrentAdoptionTarget;\n readonly members: readonly ExplicitAdoptionMember[];\n}\nexport interface ExplicitAdoptionMemberReceipt {\n readonly slotId: SlotId;\n readonly locator: string;\n readonly sourceRunId: RunId;\n readonly attemptId: SelectedAttemptRef[\"attemptId\"];\n}\nexport interface ExplicitAdoptionRunReceipt {\n /** Explicit target identity; receipt ordering is never provenance. */\n readonly experimentId: string;\n readonly runId: RunId;\n readonly members: readonly ExplicitAdoptionMemberReceipt[];\n}\n/** Real Host write/open failures after all domain preflight has already passed. */\nexport type ExplicitAdoptionCommitError = RecordWriteError | RecordReaderOpenError | RunStorageError;\nfunction adoptionError(code: ExplicitAdoptionFailureCode, message: string): ExplicitAdoptionError {\n return new ExplicitAdoptionError(code, message);\n}\nfunction safeMessage(cause: unknown): string {\n if (typeof cause === \"object\" && cause !== null) {\n const message = Reflect.get(cause, \"message\");\n if (typeof message === \"string\")\n return message;\n const code = Reflect.get(cause, \"code\");\n if (typeof code === \"string\")\n return code;\n const tag = Reflect.get(cause, \"_tag\");\n if (typeof tag === \"string\")\n return tag;\n }\n return String(cause);\n}\nfunction decodeBrandedId<Id>(schema: Schema.Codec<Id, string>, value: string, code: ExplicitAdoptionFailureCode, label: string): Effect.Effect<Id, ExplicitAdoptionError> {\n const decoded = Schema.decodeUnknownResult(schema)(value);\n return Result.isFailure(decoded)\n ? Effect.fail(adoptionError(code, `${label} is not a current Record identity.`))\n : Effect.succeed(decoded.success);\n}\nfunction utcMillis(value: number): Effect.Effect<UtcMillis, ExplicitAdoptionError> {\n const decoded = Schema.decodeUnknownResult(UtcMillisSchema)(value);\n return Result.isFailure(decoded)\n ? Effect.fail(adoptionError(\"adoption-target-invalid\", \"Adoption timestamp is invalid.\"))\n : Effect.succeed(decoded.success);\n}\nfunction slotKey(evalId: string, attempt: number): string {\n return `${evalId}${ADOPTION_TARGET_SLOT_SEPARATOR}${String(attempt)}`;\n}\nfunction attemptLocatorFor(attemptId: SelectedAttemptRef[\"attemptId\"]): ExplicitAttemptLocator {\n const locator = encodeAttemptLocator(attemptId);\n return Object.freeze({ text: locator, locator, attemptId });\n}\n/** Strict v1 parser accepts only the current canonical short locator. */\nexport function parseExplicitAttemptLocator(value: string): Effect.Effect<ParsedExplicitAttemptLocator, ExplicitAdoptionError> {\n const parsed = parseAttemptLocator(value);\n if (!parsed.valid) {\n return Effect.fail(adoptionError(\"adoption-locator-malformed\", \"An explicit adoption locator must match @1 followed by 12 canonical uppercase Crockford characters.\"));\n }\n return Effect.succeed(Object.freeze({ text: value, locator: parsed.locator }));\n}\n/** The public adapter boundary owns Record-root construction. */\nexport function adoptionRecordRoot(input: {\n readonly cwd: string;\n readonly recordRoot?: string;\n}): Effect.Effect<RecordRoot, RecordRootConstructionError> {\n const root = makeRecordRoot(resolve(input.cwd, input.recordRoot ?? \".niceeval\"));\n return Result.isFailure(root) ? Effect.fail(root.failure) : Effect.succeed(root.success);\n}\n/** Discovery is rerun for both read preflight and the write-session frozen view. */\nexport function loadAdoptionProject(input: AdoptionProjectInput): Effect.Effect<AdoptionProject, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const cwd = resolve(input.cwd);\n const config = input.config ?? (yield* Effect.fail(adoptionError(\"adoption-target-invalid\", \"An adapter host must supply the resolved project configuration.\")));\n const evals = input.evals ?? (yield* discoverEvals(cwd).pipe(Effect.mapError((error) => adoptionError(\"adoption-target-invalid\", `Current Eval discovery failed: ${error.message}`))));\n const experiments = input.experiments ?? (yield* discoverExperiments(cwd).pipe(Effect.mapError((error) => adoptionError(\"adoption-target-invalid\", `Current Experiment discovery failed: ${error.message}`))));\n return Object.freeze({\n cwd,\n config,\n evals: Object.freeze([...evals]),\n experiments: Object.freeze([...experiments]),\n ...(input.planningServices === undefined\n ? {}\n : { planningServices: input.planningServices }),\n });\n });\n}\nfunction runForExperiment(experiment: DiscoveredExperiment, selectedEvalIds: readonly string[], config: Config): AgentRun {\n return Object.freeze({\n adapter: experiment.adapter,\n ...(experiment.agent === undefined ? {} : { agent: experiment.agent }),\n ...(experiment.model === undefined ? {} : { model: experiment.model }),\n ...(experiment.reasoningEffort === undefined\n ? {}\n : { reasoningEffort: experiment.reasoningEffort }),\n flags: experiment.flags,\n plugins: experiment.plugins,\n attempts: experiment.attempts,\n earlyExit: experiment.earlyExit,\n sandboxSetupCache: resolveSandboxSetupCache(undefined, experiment.sandboxCache, config.sandboxCache),\n ...(experiment.sandbox === undefined ? {} : { sandbox: experiment.sandbox }),\n sandboxReuse: experiment.sandboxReuse,\n ...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),\n ...(experiment.judgeRuntime === undefined ? {} : { judgeRuntime: experiment.judgeRuntime }),\n ...resolveRunTimeout(undefined, experiment.timeoutMs),\n ...(experiment.budget === undefined ? {} : { budget: experiment.budget }),\n experimentId: experiment.id,\n experimentBaseDir: experiment.baseDir,\n experimentSourcePath: experiment.sourcePath,\n ...(experiment.description === undefined\n ? {}\n : { description: experiment.description }),\n ...(Object.keys(experiment.labels).length === 0\n ? {}\n : { labels: experiment.labels }),\n selectedEvalIds: Object.freeze([...selectedEvalIds]),\n ...(experiment.maxConcurrency === undefined\n ? {}\n : { maxConcurrency: experiment.maxConcurrency }),\n ...(experiment.setup === undefined ? {} : { setup: experiment.setup }),\n ...(experiment.teardown === undefined ? {} : { teardown: experiment.teardown }),\n ...(experiment.classifyFailure === undefined\n ? {}\n : { classifyFailure: experiment.classifyFailure }),\n });\n}\nfunction adoptionRunContext(run: AgentRun): Result.Result<RunContext, ExplicitAdoptionError> {\n const context = canonicalizeRunContext({\n experimentId: run.experimentId,\n execution: {\n adapter: adapterIdentity(run.adapter),\n model: run.model ?? null,\n reasoningEffort: run.reasoningEffort ?? null,\n flags: run.flags,\n experimentHooks: experimentHooksForRun(run),\n },\n labels: run.labels ?? {},\n });\n return Result.isFailure(context)\n ? Result.fail(adoptionError(\"adoption-target-invalid\", `Run Context for \"${run.experimentId}\" is invalid.`))\n : Result.succeed(context.success);\n}\nfunction currentTargetSlotIdentity(input: {\n readonly experimentId: string;\n readonly evalId: string;\n readonly attempt: number;\n readonly inputIdentity: EqualityToken;\n readonly configIdentity: EqualityToken;\n readonly timeout?: DurationLimit;\n}): Effect.Effect<{\n readonly slotId: SlotId;\n readonly evalId: EvalId;\n readonly attemptOrdinal: number;\n readonly executionIdentityDigest: ExecutionIdentityDigest;\n}, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const digestValue = slotExecutionIdentityDigestHex({\n experimentId: input.experimentId,\n evalId: input.evalId,\n attempt: input.attempt,\n input: input.inputIdentity,\n config: input.configIdentity,\n timeout: input.timeout === undefined\n ? null\n : { domain: input.timeout.domain, milliseconds: input.timeout.milliseconds },\n });\n const digest = yield* decodeBrandedId(ExecutionIdentityDigestSchema, digestValue, \"adoption-target-invalid\", \"Adoption target execution identity\");\n const evalId = yield* decodeBrandedId(EvalIdSchema, input.evalId, \"adoption-target-invalid\", \"Adoption target Eval\");\n const slotId = yield* decodeBrandedId(SlotIdSchema, `slot-${digest}`, \"adoption-target-invalid\", \"Adoption target Slot\");\n return Object.freeze({\n slotId,\n evalId,\n attemptOrdinal: input.attempt,\n executionIdentityDigest: digest,\n });\n });\n}\ninterface CurrentTargetPair {\n readonly renameFingerprint?: (experimentId: string) => string | undefined;\n readonly pair: PreparedRunPair;\n readonly inputIdentity: EqualityToken;\n readonly configIdentity: EqualityToken;\n readonly timeout?: DurationLimit;\n}\n/**\n * Rebuilds current discovery, physical planning, config identity and timeout\n * before any adoption decision. It intentionally plans every selected Eval so\n * a produced Run has the complete current denominator rather than only the\n * manually adopted Members.\n */\nexport function prepareCurrentAdoptionTarget(input: {\n readonly project: AdoptionProject;\n readonly experimentId: string;\n readonly startedAt: UtcMillis;\n}): Effect.Effect<CurrentAdoptionTarget, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const experiment = input.project.experiments.find((candidate) => candidate.id === input.experimentId);\n if (experiment === undefined) {\n return yield* Effect.fail(adoptionError(\"adoption-target-experiment-not-found\", `Current discovery does not contain Experiment \"${input.experimentId}\".`));\n }\n const selection = yield* Effect.try({\n try: () => resolveExperimentEvals({\n experimentId: experiment.id,\n selector: experiment.evals,\n cliPatterns: [],\n evals: input.project.evals,\n }),\n catch: (cause) => adoptionError(\"adoption-target-invalid\", `Current Eval selection for \"${experiment.id}\" failed: ${safeMessage(cause)}`),\n });\n if (selection.selectedEvals.length === 0 || experiment.attempts < 1) {\n return yield* Effect.fail(adoptionError(\"adoption-target-invalid\", `Current Experiment \"${experiment.id}\" has no selectable target Slots.`));\n }\n const run = runForExperiment(experiment, selection.selectedEvalIds, input.project.config);\n const pairs = yield* prepareRunSandboxes(selection.selectedEvals, [run], input.project.planningServices, { configTimeoutMs: input.project.config.timeoutMs }).pipe(Effect.mapError((error) => adoptionError(\"adoption-target-planning-failed\", `Current planning for \"${experiment.id}\" failed: ${safeMessage(error)}`)));\n if (pairs.length !== selection.selectedEvals.length) {\n return yield* Effect.fail(adoptionError(\"adoption-target-planning-failed\", `Current planning for \"${experiment.id}\" did not return every selected Eval.`));\n }\n const contextResult = adoptionRunContext(pairs[0]!.run);\n const context = Result.isFailure(contextResult)\n ? yield* Effect.fail(contextResult.failure)\n : contextResult.success;\n const projectPlan = yield* planPreparedProjectTarget(pairs, {\n configJudge: input.project.config.judgeRuntime,\n }).pipe(Effect.mapError((cause) => adoptionError(\"adoption-target-planning-failed\", `Current identity planning for \"${experiment.id}\" failed: ${safeMessage(cause)}`)));\n const plannedPairs: CurrentTargetPair[] = [];\n for (const pair of pairs) {\n const fingerprint = projectPlan.plannedFingerprints.get(pair.key);\n const configHash = projectPlan.plannedConfigHashes.get(pair.key);\n if (fingerprint === undefined || configHash === undefined) {\n return yield* Effect.fail(adoptionError(\"adoption-target-planning-failed\", `Current identity planning omitted Eval \"${pair.evalDef.id}\".`));\n }\n const timeout = resolveAttemptTimeout(run, pair.evalDef, input.project.config);\n if (timeout !== undefined && !Number.isFinite(timeout.timeoutMs)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-invalid\", `Current timeout for \"${pair.evalDef.id}\" is invalid.`));\n }\n const renameFingerprint = projectPlan.renameFingerprintsByKey.get(pair.key);\n plannedPairs.push(Object.freeze({\n ...(renameFingerprint === undefined ? {} : { renameFingerprint }),\n pair,\n inputIdentity: Object.freeze({\n domain: ADOPTION_INPUT_IDENTITY_DOMAIN,\n value: fingerprint,\n }),\n configIdentity: Object.freeze({\n domain: ADOPTION_CONFIG_IDENTITY_DOMAIN,\n value: configHash,\n }),\n ...(timeout === undefined\n ? {}\n : {\n timeout: Object.freeze({\n domain: EXECUTION_DURATION_DOMAIN,\n milliseconds: timeout.timeoutMs,\n }),\n }),\n }));\n }\n const pairByEval = new Map<string, CurrentTargetPair>();\n for (const planned of plannedPairs) {\n if (pairByEval.has(planned.pair.evalDef.id)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-slot-duplicate\", `Current planning produced duplicate Eval \"${planned.pair.evalDef.id}\".`));\n }\n pairByEval.set(planned.pair.evalDef.id, planned);\n }\n const slots: CurrentAdoptionSlot[] = [];\n const seenSlots = new Set<string>();\n for (const evalDef of selection.selectedEvals) {\n const planned = pairByEval.get(evalDef.id);\n if (planned === undefined) {\n return yield* Effect.fail(adoptionError(\"adoption-target-planning-failed\", `Current planning omitted selected Eval \"${evalDef.id}\".`));\n }\n for (let attempt = 0; attempt < run.attempts; attempt += 1) {\n const identity = yield* currentTargetSlotIdentity({\n experimentId: experiment.id,\n evalId: evalDef.id,\n attempt,\n inputIdentity: planned.inputIdentity,\n configIdentity: planned.configIdentity,\n ...(planned.timeout === undefined ? {} : { timeout: planned.timeout }),\n });\n if (seenSlots.has(identity.slotId)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-slot-duplicate\", `Current target produced duplicate Slot \"${identity.slotId}\".`));\n }\n seenSlots.add(identity.slotId);\n const targetSlot = Object.freeze({\n evaluationKind: planned.pair.evalDef.evaluationKind,\n ...(planned.renameFingerprint === undefined ? {} : { renameFingerprint: planned.renameFingerprint }),\n slotId: identity.slotId,\n experimentId: experiment.id,\n evalId: evalDef.id,\n attemptOrdinal: identity.attemptOrdinal,\n attempt,\n inputIdentity: planned.inputIdentity,\n configIdentity: planned.configIdentity,\n executionIdentityDigest: identity.executionIdentityDigest,\n ...(planned.timeout === undefined ? {} : { timeout: planned.timeout }),\n });\n slots.push(targetSlot);\n }\n }\n const byKey = new Map<string, CurrentAdoptionSlot>();\n for (const slot of slots)\n byKey.set(slotKey(slot.evalId, slot.attemptOrdinal), slot);\n const expectedSlots = Object.freeze([...slots]\n .map((slot) => Object.freeze({\n slotId: slot.slotId,\n evalId: Schema.decodeUnknownSync(EvalIdSchema)(slot.evalId),\n attemptOrdinal: slot.attemptOrdinal,\n executionIdentityDigest: slot.executionIdentityDigest,\n }))\n .sort((left, right) => left.slotId < right.slotId ? -1 : left.slotId > right.slotId ? 1 : 0));\n return Object.freeze({\n experimentId: experiment.id,\n startedAt: input.startedAt,\n context,\n expectedSlots,\n slots: Object.freeze([...slots]),\n slotFor: (evalId: string, attempt: number) => byKey.get(slotKey(evalId, attempt)),\n });\n });\n}\nfunction sourceCoreInvalid(message: string): ExplicitAdoptionError {\n return adoptionError(\"adoption-source-core-invalid\", message);\n}\n/** Locates one canonical short locator through the live Record Host session. */\nexport function resolveExplicitAttemptLocator(reader: RecordReadSession, text: string): Effect.Effect<ResolvedAdoptionAttempt, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const parsed = yield* parseExplicitAttemptLocator(text);\n const selected = yield* reader.selectRuns({ includePublishedActive: true });\n const resolved = yield* resolveAttemptLocator({\n reader,\n selection: selected,\n locator: parsed.locator,\n });\n if (resolved.kind === \"not-found\") {\n return yield* Effect.fail(adoptionError(\"adoption-locator-not-found\", `No published current-Record Attempt matches locator \"${parsed.text}\".`));\n }\n if (resolved.kind === \"ambiguous\") {\n return yield* Effect.fail(adoptionError(\"adoption-locator-ambiguous\", `Locator \"${parsed.text}\" resolves to more than one immutable Attempt.`));\n }\n return yield* resolveAdoptionAttempt(reader, resolved.attempt, Object.freeze({\n text: parsed.text,\n locator: parsed.locator,\n attemptId: resolved.attempt.attemptId,\n }));\n });\n}\n/** Validates the origin anchor and evaluates its source Run/Slot metadata. */\nexport function resolveAdoptionAttempt(reader: RecordReadSession, attempt: SelectedAttemptRef, locator?: ExplicitAttemptLocator): Effect.Effect<ResolvedAdoptionAttempt, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const sourceLocator = locator ?? attemptLocatorFor(attempt.attemptId);\n const selected = yield* reader.selectRuns({ runIds: Object.freeze([attempt.originRunId]) });\n if (selected.runRefs.length !== 1) {\n return yield* Effect.fail(sourceCoreInvalid(`Source locator \"${sourceLocator.text}\" has no readable origin Run.`));\n }\n const originRun = yield* reader.readRun(selected.runRefs[0]!);\n if (originRun.state !== \"available\") {\n return yield* Effect.fail(sourceCoreInvalid(`Source locator \"${sourceLocator.text}\" has no readable origin Run.`));\n }\n const attemptRead = yield* reader.readAttempt(attempt);\n if (attemptRead.state !== \"available\") {\n return yield* Effect.fail(sourceCoreInvalid(`Locator \"${sourceLocator.text}\" points at a missing or invalid source Attempt.`));\n }\n const originSlot = originRun.value.document.expectedSlots.find((slot) => slot.slotId === attemptRead.value.document.slotId);\n if (originSlot === undefined) {\n return yield* Effect.fail(sourceCoreInvalid(`Source locator \"${sourceLocator.text}\" has no origin Member.`));\n }\n const matchingMembers = originRun.value.members.filter((member) => member.attempt !== null\n && member.attempt.originRunId === attempt.originRunId\n && member.attempt.attemptId === attempt.attemptId);\n if (matchingMembers.length !== 1) {\n return yield* Effect.fail(sourceCoreInvalid(matchingMembers.length === 0\n ? `Source locator \"${sourceLocator.text}\" has no origin Member.`\n : `Source origin Run for \"${sourceLocator.text}\" has duplicate origin Members.`));\n }\n return Object.freeze({\n locator: sourceLocator,\n attempt,\n origin: Object.freeze({\n runId: originRun.value.document.runId,\n slotId: originSlot.slotId,\n startedAt: originRun.value.document.startedAt,\n }),\n originExperimentId: originRun.value.document.experimentId,\n originContext: originRun.value.document.context,\n originEvalId: originSlot.evalId,\n originAttempt: originSlot.attemptOrdinal,\n executionIdentityDigest: originSlot.executionIdentityDigest,\n });\n });\n}\nexport interface AdoptionAttemptFacts {\n readonly scoreComplete: boolean;\n readonly outcome: AttemptOutcome;\n readonly verdict: VerdictState;\n}\n/** Reads the exact Core outcome and its Assertion-derived terminal Verdict together. */\nexport function readAdoptionAttemptFacts(reader: RecordReadSession, source: ResolvedAdoptionAttempt): Effect.Effect<AdoptionAttemptFacts, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const attempt = yield* reader.readAttempt(source.attempt);\n if (attempt.state !== \"available\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-unavailable\", \"Source Attempt/Core is unavailable.\"));\n }\n const assertions = yield* reader.read(attempt.value.owner, NiceEvalRecordAttachments.assertions);\n if (assertions.state !== \"available\") {\n const detail = assertions.state === \"invalid\" ? \"invalid\" : assertions.state;\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-unavailable\", `Source Assertions is ${detail}.`));\n }\n const outcome = attempt.value.document.outcome;\n const verdict = foldRecordedAttemptVerdict({ outcome, assertions: assertions.value });\n const score = foldRecordedAttemptScore({ outcome, assertions: assertions.value });\n return Object.freeze({ outcome, verdict, scoreComplete: Result.isSuccess(score) && score.success.state === \"complete\" });\n });\n}\nexport function readAdoptionVerdict(reader: RecordReadSession, source: ResolvedAdoptionAttempt): Effect.Effect<VerdictState, ExplicitAdoptionReadError> {\n return readAdoptionAttemptFacts(reader, source).pipe(Effect.map((facts) => facts.verdict));\n}\n/**\n * Timing is a fixed Runner Activity receipt. No missing, partial, or invalid\n * timing collection is eligible for adoption, including an unbounded target.\n */\nexport function readAdoptionExecutionDuration(reader: RecordReadSession, source: ResolvedAdoptionAttempt): Effect.Effect<DurationLimit, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const attempt = yield* reader.readAttempt(source.attempt);\n if (attempt.state !== \"available\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-observability-unavailable\", `Source timing for locator \"${source.locator.text}\" has no readable Attempt.`));\n }\n const activities = yield* reader.read(attempt.value.owner, NiceEvalRecordAttachments.runnerActivities.attempt);\n if (activities.state !== \"available\") {\n const detail = activities.state === \"invalid\" ? \"invalid\" : activities.state;\n return yield* Effect.fail(adoptionError(\"adoption-source-observability-unavailable\", `Source timing for locator \"${source.locator.text}\" is ${detail}.`));\n }\n const duration = readAttemptExecutionDuration(activities.value);\n if (duration.state !== \"available\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-observability-unavailable\", `Source timing for locator \"${source.locator.text}\" is ${duration.reason}.`));\n }\n return duration.duration;\n });\n}\nfunction executionIdentityComparison(input: {\n readonly source: ExecutionIdentityDigest;\n readonly target: ExecutionIdentityDigest;\n}): ComparisonProvenance {\n const reason = input.source === input.target\n ? \"execution-identity-match\"\n : \"execution-identity-mismatch\";\n return Object.freeze({\n attachment: \"core\" as const,\n recordedClaim: \"execution-identity\" as const,\n sourceState: \"available\" as const,\n result: reason.endsWith(\"-match\") ? \"match\" as const : \"mismatch\" as const,\n reason,\n });\n}\nfunction durationComparison(input: {\n readonly source: DurationLimit;\n readonly target?: DurationLimit;\n}): {\n readonly comparison: ComparisonProvenance;\n readonly failure?: \"adoption-duration-domain-mismatch\" | \"adoption-timeout-exceeded\";\n} {\n if (input.target === undefined) {\n return Object.freeze({\n comparison: Object.freeze({\n attachment: \"niceeval.runner-activities\" as const,\n recordedClaim: \"execution-duration\" as const,\n sourceState: \"available\" as const,\n result: \"match\" as const,\n reason: \"timeout-unbounded\",\n }),\n });\n }\n if (input.source.domain !== input.target.domain) {\n return Object.freeze({\n comparison: Object.freeze({\n attachment: \"niceeval.runner-activities\" as const,\n recordedClaim: \"execution-duration\" as const,\n sourceState: \"available\" as const,\n result: \"mismatch\" as const,\n reason: \"duration-domain-mismatch\",\n }),\n failure: \"adoption-duration-domain-mismatch\",\n });\n }\n if (input.source.milliseconds > input.target.milliseconds) {\n return Object.freeze({\n comparison: Object.freeze({\n attachment: \"niceeval.runner-activities\" as const,\n recordedClaim: \"execution-duration\" as const,\n sourceState: \"available\" as const,\n result: \"mismatch\" as const,\n reason: \"timeout-exceeded\",\n }),\n failure: \"adoption-timeout-exceeded\",\n });\n }\n return Object.freeze({\n comparison: Object.freeze({\n attachment: \"niceeval.runner-activities\" as const,\n recordedClaim: \"execution-duration\" as const,\n sourceState: \"available\" as const,\n result: \"match\" as const,\n reason: \"duration-within-timeout\",\n }),\n });\n}\n/**\n * Builds one accepted reference intent. The Core combined execution identity\n * is compared exactly, but an explicit operator decision may accept a mismatch.\n * The folded Verdict and complete Runner Activity timing remain hard gates.\n */\nexport function prepareExplicitAdoptionMember(input: {\n readonly reader: RecordReadSession;\n readonly target: CurrentAdoptionTarget;\n readonly source: ResolvedAdoptionAttempt;\n readonly evalId: string;\n readonly attempt: number;\n readonly operatorReason?: string;\n}): Effect.Effect<ExplicitAdoptionMember, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const target = input.target.slotFor(input.evalId, input.attempt);\n if (target === undefined) {\n const code = input.target.slots.some((slot) => slot.evalId === input.evalId)\n ? \"adoption-target-attempt-not-selected\"\n : \"adoption-target-eval-not-selected\";\n return yield* Effect.fail(adoptionError(code, `Current target ${input.target.experimentId}/${input.evalId} does not contain ordinal ${String(input.attempt)}.`));\n }\n const facts = yield* readAdoptionAttemptFacts(input.reader, input.source);\n const verdict = facts.verdict;\n if (facts.outcome !== \"completed\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-ineligible\", `Source locator \"${input.source.locator.text}\" has Attempt outcome \"${facts.outcome}\" and cannot be explicitly adopted.`));\n }\n if (verdict !== \"passed\" && verdict !== \"failed\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-ineligible\", `Source locator \"${input.source.locator.text}\" has Verdict \"${verdict}\" and cannot be explicitly adopted.`));\n }\n const executionDuration = yield* readAdoptionExecutionDuration(input.reader, input.source);\n const duration = durationComparison({\n source: executionDuration,\n target: target.timeout,\n });\n if (duration.failure !== undefined) {\n return yield* Effect.fail(adoptionError(duration.failure, duration.failure === \"adoption-timeout-exceeded\"\n ? `Source locator \"${input.source.locator.text}\" exceeds the current timeout.`\n : `Source locator \"${input.source.locator.text}\" uses an incomparable execution-duration domain.`));\n }\n const comparisons = Object.freeze([\n Object.freeze({\n attachment: \"core\" as const,\n recordedClaim: \"attempt-outcome\" as const,\n sourceState: \"available\" as const,\n result: \"match\" as const,\n reason: \"attempt-completed\",\n }),\n executionIdentityComparison({\n source: input.source.executionIdentityDigest,\n target: target.executionIdentityDigest,\n }),\n Object.freeze({\n attachment: \"niceeval.assertions\" as const,\n recordedClaim: \"assertion-verdict\" as const,\n sourceState: \"available\" as const,\n result: \"match\" as const,\n reason: \"verdict-eligible\",\n }),\n duration.comparison,\n ]);\n return Object.freeze({\n target,\n source: input.source,\n locator: input.source.locator.text,\n verdict,\n comparisons,\n ...(input.operatorReason === undefined\n ? {}\n : { operatorReason: input.operatorReason }),\n });\n });\n}\n/** Validates the exact Core Run denominator before the writer records Members. */\nfunction validateExplicitAdoptionMembers(input: {\n readonly target: CurrentAdoptionTarget;\n readonly members: readonly ExplicitAdoptionMember[];\n}): Effect.Effect<void, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const expected = new Set<string>();\n for (const slot of input.target.expectedSlots) {\n if (expected.has(slot.slotId)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-slot-duplicate\", `Current target lists Slot \"${slot.slotId}\" more than once.`));\n }\n expected.add(slot.slotId);\n }\n const targetSlots = new Set(input.target.slots.map((slot) => String(slot.slotId)));\n if (targetSlots.size !== expected.size\n || [...expected].some((slotId) => !targetSlots.has(slotId))) {\n return yield* Effect.fail(adoptionError(\"adoption-target-invalid\", \"Current target Slot definitions do not exactly match its expected Slot denominator.\"));\n }\n const memberBySlot = new Set<string>();\n for (const member of input.members) {\n const slotId = String(member.target.slotId);\n if (!expected.has(slotId)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-eval-not-selected\", `Explicit adoption selected Slot \"${slotId}\" outside the current target denominator.`));\n }\n if (memberBySlot.has(slotId)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-member-duplicate\", `More than one source attempts to occupy target Slot \"${slotId}\".`));\n }\n memberBySlot.add(slotId);\n }\n return undefined;\n });\n}\n/**\n * Performs Core denominator and Member validation before a writer creates a\n * reference Run. This is the batch's no-business-write boundary.\n */\nexport function buildExplicitAdoptionRunPlan(input: {\n readonly intent: ExplicitAdoptionIntent;\n readonly target: CurrentAdoptionTarget;\n readonly members: readonly ExplicitAdoptionMember[];\n}): Effect.Effect<ExplicitAdoptionRunPlan, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n if (input.members.length === 0) {\n return yield* Effect.fail(adoptionError(\"adoption-target-invalid\", \"Explicit adoption requires at least one reference Member.\"));\n }\n yield* validateExplicitAdoptionMembers(input);\n return Object.freeze({\n intent: input.intent,\n target: input.target,\n members: Object.freeze([...input.members]),\n });\n });\n}\n/** Writes only plans already built from this exact session's Host reader. */\nexport function commitExplicitAdoptionRunPlans(_reader: RecordReadSession, root: RecordRoot, invocationId: string, plans: readonly ExplicitAdoptionRunPlan[]) {\n const storageRoot = recordRootPaths(root)?.portableRoot;\n if (storageRoot === undefined) {\n return Effect.fail(asRunStorageError(new Error(\"Adoption Record root is unavailable to Run storage.\")));\n }\n return Effect.forEach(plans, (plan) => Effect.gen(function* () {\n const experimentId = yield* decodeBrandedId(ExperimentIdSchema, plan.target.experimentId, \"adoption-target-invalid\", \"Adoption target Experiment\");\n const publications = new Map<string, AttemptPublicationIdentity>();\n for (const member of plan.members) {\n const published = yield* readPublishedAttempt(storageRoot, String(member.source.attempt.attemptId)).pipe(Effect.mapError(asRunStorageError));\n if (published === undefined) {\n return yield* Effect.fail(asRunStorageError(new Error(`Adoption source Attempt ${String(member.source.attempt.attemptId)} has no Run publication identity.`)));\n }\n publications.set(String(member.target.slotId), published.publicationIdentity);\n }\n const accepted = new Set(plan.members.map((member) => String(member.target.slotId)));\n const writer = yield* recordHost.createReferenceRun({\n root,\n experimentId,\n context: plan.target.context,\n startedAt: plan.target.startedAt,\n expectedSlots: plan.target.expectedSlots,\n writerGeneration: createRunWriterGeneration(`${invocationId}:${plan.target.experimentId}`),\n });\n const writerGeneration = writerGenerationForRunSession(writer);\n if (writerGeneration === undefined) {\n return yield* Effect.fail(asRunStorageError(new Error(\"Run writer generation is unavailable\")));\n }\n yield* createRunResource(storageRoot, {\n runId: String(writer.runId),\n invocationId,\n experimentId: String(experimentId),\n writerGeneration,\n startedAt: new Date(Number(plan.target.startedAt)).toISOString(),\n expectedSlots: plan.target.expectedSlots.map((slot) => ({\n slotId: String(slot.slotId),\n evalId: String(slot.evalId),\n attemptOrdinal: slot.attemptOrdinal,\n executionIdentityDigest: String(slot.executionIdentityDigest),\n })),\n deadlineEpochMs: Date.now() + 30000,\n }).pipe(Effect.mapError(asRunStorageError));\n for (const member of plan.members) {\n yield* writer.recordAcceptedMembership({\n slotId: member.target.slotId,\n attempt: member.source.attempt,\n });\n yield* bindAttemptReference(storageRoot, {\n runId: String(writer.runId),\n writerGeneration,\n slotId: String(member.target.slotId),\n action: \"accepted\",\n publicationIdentity: publications.get(String(member.target.slotId))!,\n deadlineEpochMs: Date.now() + 30000,\n }).pipe(Effect.mapError(asRunStorageError));\n }\n for (const slot of plan.target.expectedSlots) {\n if (accepted.has(String(slot.slotId)))\n continue;\n yield* writer.recordTerminalMember({\n slotId: slot.slotId,\n action: \"not-dispatched\",\n absenceReason: \"early-exit-satisfied\",\n });\n }\n const sealed = yield* writer.seal({ completedAt: plan.target.startedAt });\n yield* closeRunResource(storageRoot, {\n runId: String(writer.runId),\n writerGeneration,\n state: \"completed\",\n completedAt: new Date(Number(plan.target.startedAt)).toISOString(),\n absences: plan.target.expectedSlots\n .filter((slot) => !accepted.has(String(slot.slotId)))\n .map((slot) => ({\n slotId: String(slot.slotId),\n reason: \"early-exit-satisfied\" as const,\n })),\n deadlineEpochMs: Date.now() + 30000,\n }).pipe(Effect.mapError(asRunStorageError));\n return receiptForPlan(plan, sealed.runId);\n }), { concurrency: 1 }).pipe(Effect.mapError((cause) => cause instanceof RunStorageError\n ? cause\n : new RunStorageError(\"run-storage-invalid\", safeMessage(cause))));\n}\nfunction receiptForPlan(plan: ExplicitAdoptionRunPlan, runId: RunId): ExplicitAdoptionRunReceipt {\n return Object.freeze({\n experimentId: plan.target.experimentId,\n runId,\n members: Object.freeze(plan.members.map((member) => Object.freeze({\n slotId: member.target.slotId,\n locator: member.locator,\n sourceRunId: member.source.origin.runId,\n attemptId: member.source.attempt.attemptId,\n }))),\n });\n}\n/** A fresh in-memory invocation identity never enters Record Core. */\nexport function createExplicitAdoptionInvocationId(mint: () => string = randomUUID): Effect.Effect<string> {\n return Effect.sync(() => `adoption-${mint()}`);\n}\nexport function adoptionStartedAt(input?: () => string | number): Effect.Effect<UtcMillis, ExplicitAdoptionError> {\n return Effect.sync(() => input?.() ?? Date.now()).pipe(Effect.flatMap((value) => {\n const millis = typeof value === \"number\" ? value : Date.parse(value);\n return utcMillis(millis);\n }));\n}\n/** Opens a Host read session only; dry callers must use this rather than a writer. */\nexport function withAdoptionReader<A, E, R>(input: {\n readonly root: RecordRoot;\n readonly use: (reader: RecordReadSession) => Effect.Effect<A, E, R>;\n}) {\n return Effect.scoped(Effect.gen(function* () {\n const reader = yield* recordHost.openRead({ root: input.root });\n return yield* input.use(reader);\n }));\n}\n/**\n * One Scope keeps the Host reader live while reference Runs are created, so\n * SelectedAttemptRefs remain valid through seal. Discovery still happens\n * before this Scope opens, so the first preflight writes nothing.\n */\nexport function withAdoptionCommitScope<A, E, R>(input: {\n readonly root: RecordRoot;\n readonly use: (reader: RecordReadSession) => Effect.Effect<A, E, R>;\n}) {\n return withAdoptionReader(input);\n}\nexport interface RenameSourceRun {\n readonly runId: RunId;\n readonly experimentId: ExperimentId;\n readonly startedAt: UtcMillis;\n readonly expectedSlots: readonly RecordSlotIdentity[];\n}\nexport function resolveExactAdoptionSourceRun(input: {\n readonly reader: RecordReadSession;\n readonly sourceRunId: string;\n}): Effect.Effect<RenameSourceRun, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const runId = yield* decodeBrandedId(RunIdSchema, input.sourceRunId, \"adoption-source-run-not-found\", \"Adoption source Run\");\n const selected = yield* input.reader.selectRuns({ runIds: Object.freeze([runId]), includePublishedActive: true });\n if (selected.runRefs.length !== 1) {\n return yield* Effect.fail(adoptionError(\"adoption-source-run-not-found\", `Adoption source Run \"${input.sourceRunId}\" is not a published readable Run.`));\n }\n const run = yield* input.reader.readRun(selected.runRefs[0]!);\n if (run.state !== \"available\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-run-not-found\", `Adoption source Run \"${input.sourceRunId}\" is not a published readable Run.`));\n }\n return Object.freeze({\n runId: run.value.document.runId,\n experimentId: run.value.document.experimentId,\n startedAt: run.value.document.startedAt,\n expectedSlots: run.value.document.expectedSlots,\n });\n });\n}\nexport interface RenameAdoptionMember {\n readonly evalId: string;\n readonly attempt: number;\n readonly member: ExplicitAdoptionMember;\n}\nexport interface RenameAdoptionPreflight {\n readonly sourceRun: RenameSourceRun;\n readonly members: readonly RenameAdoptionMember[];\n}\n/**\n * Validates a bijection between one exact source Run and the current target.\n * Every member must qualify before the caller may publish a target Run.\n */\nexport function prepareWholeRunAdoptionMembers(input: {\n readonly intent: ExplicitAdoptionIntent;\n readonly reader: RecordReadSession;\n readonly sourceRun: RenameSourceRun;\n readonly target: CurrentAdoptionTarget;\n readonly operatorReason: string;\n}): Effect.Effect<RenameAdoptionPreflight, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const selected = yield* input.reader.selectRuns({ runIds: [input.sourceRun.runId], includePublishedActive: true });\n const ref = selected.runRefs[0];\n if (ref === undefined || selected.runRefs.length !== 1)\n return yield* Effect.fail(sourceCoreInvalid(\"The exact rename source Run is unavailable.\"));\n const run = yield* input.reader.readRun(ref);\n if (run.state !== \"available\")\n return yield* Effect.fail(sourceCoreInvalid(\"The exact rename source Run is unreadable.\"));\n const sourceSlots = input.sourceRun.expectedSlots;\n const seen = new Set<string>();\n if (sourceSlots.length !== input.target.slots.length || sourceSlots.length === 0)\n return yield* Effect.fail(adoptionError(input.intent === \"rename\" ? \"rename-run-not-closed\" : \"accept-run-not-closed\", \"Source Run and current target must contain the same nonempty Eval/ordinal membership.\"));\n const members: RenameAdoptionMember[] = [];\n for (const sourceSlot of sourceSlots) {\n const key = slotKey(sourceSlot.evalId, sourceSlot.attemptOrdinal);\n const targetSlot = input.target.slotFor(sourceSlot.evalId, sourceSlot.attemptOrdinal);\n if (targetSlot === undefined || seen.has(key))\n return yield* Effect.fail(adoptionError(input.intent === \"rename\" ? \"rename-run-not-closed\" : \"accept-run-not-closed\", `Source position ${sourceSlot.evalId}/${sourceSlot.attemptOrdinal} does not have one exact target.`));\n seen.add(key);\n const sourceMembers = run.value.members.filter((member) => member.document.slotId === sourceSlot.slotId);\n const sourceMember = sourceMembers[0];\n if (sourceMembers.length !== 1 || sourceMember?.attempt == null)\n return yield* Effect.fail(adoptionError(input.intent === \"rename\" ? \"rename-run-not-closed\" : \"accept-run-not-closed\", `Source position ${sourceSlot.evalId}/${sourceSlot.attemptOrdinal} has no unique published Attempt.`));\n const source = yield* resolveAdoptionAttempt(input.reader, sourceMember.attempt);\n if (input.intent === \"rename\" && (!hasProvenNoExperimentHooks(run.value.document.context) ||\n !hasProvenNoExperimentHooks(source.originContext)))\n return yield* Effect.fail(adoptionError(\"rename-behavior-unproven\", `Source locator ${source.locator.text} has opaque or unknown Experiment hook declarations; pure rename cannot be proven.`));\n if (source.originEvalId !== sourceSlot.evalId || source.originAttempt !== sourceSlot.attemptOrdinal)\n return yield* Effect.fail(sourceCoreInvalid(\"Source Member does not retain its exact origin position.\"));\n if (input.intent === \"rename\" && (executionDigestForExperiment(targetSlot, input.sourceRun.experimentId) !== sourceSlot.executionIdentityDigest ||\n executionDigestForExperiment(targetSlot, source.originExperimentId) !== source.executionIdentityDigest))\n return yield* Effect.fail(adoptionError(\"rename-identity-mismatch\", `Source locator ${source.locator.text} has changed or unprovable execution identity; rename cannot adopt it.`));\n if (input.intent === \"rename\" && targetSlot.evaluationKind === \"score\") {\n const facts = yield* readAdoptionAttemptFacts(input.reader, source);\n if (!facts.scoreComplete)\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-ineligible\", `Source locator ${source.locator.text} has incomplete score.`));\n }\n const member = yield* prepareExplicitAdoptionMember({ reader: input.reader, target: input.target, source,\n evalId: sourceSlot.evalId, attempt: sourceSlot.attemptOrdinal, operatorReason: input.operatorReason });\n members.push(Object.freeze({ evalId: sourceSlot.evalId, attempt: sourceSlot.attemptOrdinal, member }));\n }\n return Object.freeze({ sourceRun: input.sourceRun, members: Object.freeze(members) });\n });\n}\n"]}
1
+ {"version":3,"file":"adoption.js","sourceRoot":"","sources":["adoption.ts"],"names":[],"mappings":"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","sourcesContent":["// @concord-file ne-runner-adoption\n// @concord-implements docs/feature/experiments/cache.md\n// @concord-implements docs/feature/experiments/library.md\nimport { foldRecordedAttemptScore } from \"../eval/record/score.ts\";\nimport { executionDigestForExperiment, hasProvenNoExperimentHooks } from \"./rename-identity.ts\";\nimport { experimentHooksForRun } from \"./record/context.ts\";\nimport { randomUUID } from \"node:crypto\";\nimport { resolve } from \"node:path\";\nimport { Effect, Result, Schema } from \"effect\";\nimport { adapterIdentity } from \"../adapter.ts\";\nimport { encodeAttemptLocator, parseAttemptLocator, type AttemptLocator, } from \"../attempt-locator.ts\";\nimport { resolveAttemptLocator } from \"../attempt-locator-resolution.ts\";\nimport { EXECUTION_DURATION_DOMAIN, readAttemptExecutionDuration, type DurationLimit, type EqualityToken, } from \"../eval/record/eligibility.ts\";\nimport { type ComparisonProvenance, } from \"../eval/record/membership-provenance.ts\";\nimport { foldRecordedAttemptVerdict, type VerdictState } from \"../eval/record/verdict.ts\";\nimport { recordHost } from \"../record/host/runtime.ts\";\nimport { writerGenerationForRunSession } from \"../record/host/sqlite-host.ts\";\nimport { NiceEvalRecordAttachments } from \"../record/family/catalog.ts\";\nimport type { RecordReadSession, SelectedAttemptRef, } from \"../record/host/types.ts\";\nimport { EvalIdSchema, ExecutionIdentityDigestSchema, ExperimentIdSchema, RunIdSchema, SlotIdSchema, UtcMillisSchema, } from \"../record/codec/identifiers.ts\";\nimport type { AttemptOutcome, RecordSlotIdentity } from \"../record/model/core.ts\";\nimport { canonicalizeRunContext, type RunContext, } from \"../record/model/run-context.ts\";\nimport type { EvalId, ExperimentId, ExecutionIdentityDigest, RunId, SlotId, UtcMillis, } from \"../record/model/identifiers.ts\";\nimport { makeRecordRoot, recordRootPaths, type RecordRoot, type RecordRootConstructionError, } from \"../record/platform/root.ts\";\nimport type { RecordReaderOpenError, RecordReaderReadError } from \"../record/reader/errors.ts\";\nimport type { RecordWriteError } from \"../record/writer/types.ts\";\nimport { asRunStorageError, bindAttemptReference, closeRunResource, createRunResource, createRunWriterGeneration, readPublishedAttempt, RunStorageError, type AttemptPublicationIdentity, } from \"../run/storage/index.ts\";\nimport type { SandboxPlanningServices } from \"../sandbox/plan.ts\";\nimport { discoverEvals, discoverExperiments, } from \"./discover.ts\";\nimport { resolveExperimentEvals } from \"./eval-selection.ts\";\nimport { slotExecutionIdentityDigestHex } from \"./execution-identity.ts\";\nimport { planPreparedProjectTarget, } from \"./fingerprint.ts\";\nimport { prepareRunSandboxes, type PreparedRunPair } from \"./sandbox-selection.ts\";\nimport { resolveAttemptTimeout, resolveRunTimeout } from \"./timeout.ts\";\nimport { resolveSandboxSetupCache } from \"./types.ts\";\nimport type { AgentRun, Config, DiscoveredEval, DiscoveredExperiment, } from \"./types.ts\";\n/** Shared domains emitted by the current ProjectTarget producer. */\nexport const ADOPTION_INPUT_IDENTITY_DOMAIN = \"niceeval.input/fingerprint-v1\" as const;\nexport const ADOPTION_CONFIG_IDENTITY_DOMAIN = \"niceeval.config/identity-v1\" as const;\nconst ADOPTION_TARGET_SLOT_SEPARATOR = \"\\u0000\";\nexport type ExplicitAdoptionIntent = \"accept\" | \"rename\";\nexport type ExplicitAdoptionFailureCode = \"rename-run-not-closed\" | \"rename-identity-mismatch\" | \"rename-behavior-unproven\" | \"adoption-locator-malformed\" | \"adoption-locator-not-found\" | \"adoption-locator-ambiguous\" | \"adoption-batch-locator-duplicate\" | \"adoption-source-core-invalid\" | \"adoption-source-verdict-unavailable\" | \"adoption-source-observability-unavailable\" | \"adoption-source-verdict-ineligible\" | \"adoption-target-experiment-not-found\" | \"adoption-target-eval-not-selected\" | \"adoption-target-attempt-not-selected\" | \"adoption-target-planning-failed\" | \"adoption-target-invalid\" | \"adoption-target-slot-duplicate\" | \"adoption-target-member-duplicate\" | \"adoption-duration-domain-mismatch\" | \"adoption-timeout-exceeded\" | \"adoption-source-run-required\" | \"adoption-source-run-not-found\" | \"adoption-source-run-mismatch\" | \"accept-run-not-closed\" | \"run-not-found\" | \"adoption-provenance-invalid\" | \"adoption-evaluation-plan-invalid\";\n/** Expected product failures retain a stable code without collapsing Effect causes. */\nexport class ExplicitAdoptionError extends Error {\n readonly name = \"ExplicitAdoptionError\";\n constructor(readonly code: ExplicitAdoptionFailureCode, message: string) {\n super(message);\n }\n}\nexport type ExplicitAdoptionReadError = ExplicitAdoptionError | RecordReaderReadError;\nexport type ExplicitAdoptionOpenError = ExplicitAdoptionError | RecordRootConstructionError | RecordReaderOpenError | RecordReaderReadError | RecordWriteError;\nexport interface AdoptionProjectInput {\n readonly cwd: string;\n readonly config?: Config;\n readonly evals?: readonly DiscoveredEval[];\n readonly experiments?: readonly DiscoveredExperiment[];\n readonly planningServices?: SandboxPlanningServices;\n}\nexport interface AdoptionProject {\n readonly cwd: string;\n readonly config: Config;\n readonly evals: readonly DiscoveredEval[];\n readonly experiments: readonly DiscoveredExperiment[];\n readonly planningServices?: SandboxPlanningServices;\n}\nexport interface ExplicitAttemptLocator {\n readonly text: string;\n readonly locator: AttemptLocator;\n readonly attemptId: SelectedAttemptRef[\"attemptId\"];\n}\ninterface ParsedExplicitAttemptLocator {\n readonly text: string;\n readonly locator: AttemptLocator;\n}\nexport interface ResolvedAdoptionAttempt {\n readonly originContext: RunContext;\n readonly locator: ExplicitAttemptLocator;\n readonly attempt: SelectedAttemptRef;\n readonly origin: {\n readonly runId: RunId;\n readonly slotId: SlotId;\n readonly startedAt: UtcMillis;\n };\n readonly originExperimentId: string;\n readonly originEvalId: string;\n readonly originAttempt: number;\n readonly executionIdentityDigest: ExecutionIdentityDigest;\n}\nexport interface CurrentAdoptionSlot {\n readonly evaluationKind: \"pass\" | \"score\";\n readonly renameFingerprint?: (experimentId: string) => string | undefined;\n readonly slotId: SlotId;\n readonly experimentId: string;\n readonly evalId: string;\n /** Durable Slot identity; `attempt` remains the caller-facing selector. */\n readonly attemptOrdinal: number;\n readonly attempt: number;\n readonly inputIdentity: EqualityToken;\n readonly configIdentity: EqualityToken;\n readonly executionIdentityDigest: ExecutionIdentityDigest;\n readonly timeout?: DurationLimit;\n}\nexport interface CurrentAdoptionTarget {\n readonly experimentId: string;\n readonly startedAt: UtcMillis;\n readonly expectedSlots: readonly RecordSlotIdentity[];\n readonly context: RunContext;\n readonly slots: readonly CurrentAdoptionSlot[];\n readonly slotFor: (evalId: string, attempt: number) => CurrentAdoptionSlot | undefined;\n}\nexport interface ExplicitAdoptionMember {\n readonly target: CurrentAdoptionSlot;\n readonly source: ResolvedAdoptionAttempt;\n readonly locator: string;\n readonly verdict: \"passed\" | \"failed\";\n readonly comparisons: readonly ComparisonProvenance[];\n readonly operatorReason?: string;\n}\nexport interface ExplicitAdoptionRunPlan {\n readonly intent: ExplicitAdoptionIntent;\n readonly target: CurrentAdoptionTarget;\n readonly members: readonly ExplicitAdoptionMember[];\n}\nexport interface ExplicitAdoptionMemberReceipt {\n readonly slotId: SlotId;\n readonly locator: string;\n readonly sourceRunId: RunId;\n readonly attemptId: SelectedAttemptRef[\"attemptId\"];\n}\nexport interface ExplicitAdoptionRunReceipt {\n /** Explicit target identity; receipt ordering is never provenance. */\n readonly experimentId: string;\n readonly runId: RunId;\n readonly members: readonly ExplicitAdoptionMemberReceipt[];\n}\n/** Real Host write/open failures after all domain preflight has already passed. */\nexport type ExplicitAdoptionCommitError = RecordWriteError | RecordReaderOpenError | RunStorageError;\nfunction adoptionError(code: ExplicitAdoptionFailureCode, message: string): ExplicitAdoptionError {\n return new ExplicitAdoptionError(code, message);\n}\nfunction safeMessage(cause: unknown): string {\n if (typeof cause === \"object\" && cause !== null) {\n const message = Reflect.get(cause, \"message\");\n if (typeof message === \"string\")\n return message;\n const code = Reflect.get(cause, \"code\");\n if (typeof code === \"string\")\n return code;\n const tag = Reflect.get(cause, \"_tag\");\n if (typeof tag === \"string\")\n return tag;\n }\n return String(cause);\n}\nfunction decodeBrandedId<Id>(schema: Schema.Codec<Id, string>, value: string, code: ExplicitAdoptionFailureCode, label: string): Effect.Effect<Id, ExplicitAdoptionError> {\n const decoded = Schema.decodeUnknownResult(schema)(value);\n return Result.isFailure(decoded)\n ? Effect.fail(adoptionError(code, `${label} is not a current Record identity.`))\n : Effect.succeed(decoded.success);\n}\nfunction utcMillis(value: number): Effect.Effect<UtcMillis, ExplicitAdoptionError> {\n const decoded = Schema.decodeUnknownResult(UtcMillisSchema)(value);\n return Result.isFailure(decoded)\n ? Effect.fail(adoptionError(\"adoption-target-invalid\", \"Adoption timestamp is invalid.\"))\n : Effect.succeed(decoded.success);\n}\nfunction slotKey(evalId: string, attempt: number): string {\n return `${evalId}${ADOPTION_TARGET_SLOT_SEPARATOR}${String(attempt)}`;\n}\nfunction attemptLocatorFor(attemptId: SelectedAttemptRef[\"attemptId\"]): ExplicitAttemptLocator {\n const locator = encodeAttemptLocator(attemptId);\n return Object.freeze({ text: locator, locator, attemptId });\n}\n/** Strict v1 parser accepts only the current canonical short locator. */\nexport function parseExplicitAttemptLocator(value: string): Effect.Effect<ParsedExplicitAttemptLocator, ExplicitAdoptionError> {\n const parsed = parseAttemptLocator(value);\n if (!parsed.valid) {\n return Effect.fail(adoptionError(\"adoption-locator-malformed\", \"An explicit adoption locator must match @1 followed by 12 canonical uppercase Crockford characters.\"));\n }\n return Effect.succeed(Object.freeze({ text: value, locator: parsed.locator }));\n}\n/** The public adapter boundary owns Record-root construction. */\nexport function adoptionRecordRoot(input: {\n readonly cwd: string;\n readonly recordRoot?: string;\n}): Effect.Effect<RecordRoot, RecordRootConstructionError> {\n const root = makeRecordRoot(resolve(input.cwd, input.recordRoot ?? \".niceeval\"));\n return Result.isFailure(root) ? Effect.fail(root.failure) : Effect.succeed(root.success);\n}\n/** Discovery is rerun for both read preflight and the write-session frozen view. */\nexport function loadAdoptionProject(input: AdoptionProjectInput): Effect.Effect<AdoptionProject, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const cwd = resolve(input.cwd);\n const config = input.config ?? (yield* Effect.fail(adoptionError(\"adoption-target-invalid\", \"An adapter host must supply the resolved project configuration.\")));\n const evals = input.evals ?? (yield* discoverEvals(cwd).pipe(Effect.mapError((error) => adoptionError(\"adoption-target-invalid\", `Current Eval discovery failed: ${error.message}`))));\n const experiments = input.experiments ?? (yield* discoverExperiments(cwd).pipe(Effect.mapError((error) => adoptionError(\"adoption-target-invalid\", `Current Experiment discovery failed: ${error.message}`))));\n return Object.freeze({\n cwd,\n config,\n evals: Object.freeze([...evals]),\n experiments: Object.freeze([...experiments]),\n ...(input.planningServices === undefined\n ? {}\n : { planningServices: input.planningServices }),\n });\n });\n}\nfunction runForExperiment(experiment: DiscoveredExperiment, selectedEvalIds: readonly string[], config: Config): AgentRun {\n return Object.freeze({\n adapter: experiment.adapter,\n ...(experiment.agent === undefined ? {} : { agent: experiment.agent }),\n ...(experiment.models === undefined ? {} : { models: experiment.models }),\n ...(experiment.model === undefined ? {} : { model: experiment.model }),\n ...(experiment.reasoningEffort === undefined\n ? {}\n : { reasoningEffort: experiment.reasoningEffort }),\n flags: experiment.flags,\n plugins: experiment.plugins,\n attempts: experiment.attempts,\n earlyExit: experiment.earlyExit,\n sandboxSetupCache: resolveSandboxSetupCache(undefined, experiment.sandboxCache, config.sandboxCache),\n ...(experiment.sandbox === undefined ? {} : { sandbox: experiment.sandbox }),\n sandboxReuse: experiment.sandboxReuse,\n ...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),\n ...(experiment.judgeRuntime === undefined ? {} : { judgeRuntime: experiment.judgeRuntime }),\n ...resolveRunTimeout(undefined, experiment.timeoutMs),\n ...(experiment.budget === undefined ? {} : { budget: experiment.budget }),\n experimentId: experiment.id,\n experimentBaseDir: experiment.baseDir,\n experimentSourcePath: experiment.sourcePath,\n ...(experiment.description === undefined\n ? {}\n : { description: experiment.description }),\n ...(Object.keys(experiment.labels).length === 0\n ? {}\n : { labels: experiment.labels }),\n selectedEvalIds: Object.freeze([...selectedEvalIds]),\n ...(experiment.maxConcurrency === undefined\n ? {}\n : { maxConcurrency: experiment.maxConcurrency }),\n ...(experiment.setup === undefined ? {} : { setup: experiment.setup }),\n ...(experiment.teardown === undefined ? {} : { teardown: experiment.teardown }),\n ...(experiment.classifyFailure === undefined\n ? {}\n : { classifyFailure: experiment.classifyFailure }),\n });\n}\nfunction adoptionRunContext(run: AgentRun): Result.Result<RunContext, ExplicitAdoptionError> {\n const context = canonicalizeRunContext({\n experimentId: run.experimentId,\n execution: {\n adapter: adapterIdentity(run.adapter),\n ...(run.adapter.kind === \"custom\" ? { models: run.models ?? Object.freeze({}) } : {}),\n model: run.model ?? null,\n reasoningEffort: run.reasoningEffort ?? null,\n flags: run.flags,\n experimentHooks: experimentHooksForRun(run),\n },\n labels: run.labels ?? {},\n });\n return Result.isFailure(context)\n ? Result.fail(adoptionError(\"adoption-target-invalid\", `Run Context for \"${run.experimentId}\" is invalid.`))\n : Result.succeed(context.success);\n}\nfunction currentTargetSlotIdentity(input: {\n readonly experimentId: string;\n readonly evalId: string;\n readonly attempt: number;\n readonly inputIdentity: EqualityToken;\n readonly configIdentity: EqualityToken;\n readonly timeout?: DurationLimit;\n}): Effect.Effect<{\n readonly slotId: SlotId;\n readonly evalId: EvalId;\n readonly attemptOrdinal: number;\n readonly executionIdentityDigest: ExecutionIdentityDigest;\n}, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const digestValue = slotExecutionIdentityDigestHex({\n experimentId: input.experimentId,\n evalId: input.evalId,\n attempt: input.attempt,\n input: input.inputIdentity,\n config: input.configIdentity,\n timeout: input.timeout === undefined\n ? null\n : { domain: input.timeout.domain, milliseconds: input.timeout.milliseconds },\n });\n const digest = yield* decodeBrandedId(ExecutionIdentityDigestSchema, digestValue, \"adoption-target-invalid\", \"Adoption target execution identity\");\n const evalId = yield* decodeBrandedId(EvalIdSchema, input.evalId, \"adoption-target-invalid\", \"Adoption target Eval\");\n const slotId = yield* decodeBrandedId(SlotIdSchema, `slot-${digest}`, \"adoption-target-invalid\", \"Adoption target Slot\");\n return Object.freeze({\n slotId,\n evalId,\n attemptOrdinal: input.attempt,\n executionIdentityDigest: digest,\n });\n });\n}\ninterface CurrentTargetPair {\n readonly renameFingerprint?: (experimentId: string) => string | undefined;\n readonly pair: PreparedRunPair;\n readonly inputIdentity: EqualityToken;\n readonly configIdentity: EqualityToken;\n readonly timeout?: DurationLimit;\n}\n/**\n * Rebuilds current discovery, physical planning, config identity and timeout\n * before any adoption decision. It intentionally plans every selected Eval so\n * a produced Run has the complete current denominator rather than only the\n * manually adopted Members.\n */\n// @concord-code ne-runner-prepare-adoption-target\n// @concord-implements docs/feature/experiments/cache.md\nexport function prepareCurrentAdoptionTarget(input: {\n readonly project: AdoptionProject;\n readonly experimentId: string;\n readonly startedAt: UtcMillis;\n}): Effect.Effect<CurrentAdoptionTarget, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const experiment = input.project.experiments.find((candidate) => candidate.id === input.experimentId);\n if (experiment === undefined) {\n return yield* Effect.fail(adoptionError(\"adoption-target-experiment-not-found\", `Current discovery does not contain Experiment \"${input.experimentId}\".`));\n }\n const selection = yield* Effect.try({\n try: () => resolveExperimentEvals({\n experimentId: experiment.id,\n selector: experiment.evals,\n cliPatterns: [],\n evals: input.project.evals,\n }),\n catch: (cause) => adoptionError(\"adoption-target-invalid\", `Current Eval selection for \"${experiment.id}\" failed: ${safeMessage(cause)}`),\n });\n if (selection.selectedEvals.length === 0 || experiment.attempts < 1) {\n return yield* Effect.fail(adoptionError(\"adoption-target-invalid\", `Current Experiment \"${experiment.id}\" has no selectable target Slots.`));\n }\n const run = runForExperiment(experiment, selection.selectedEvalIds, input.project.config);\n const pairs = yield* prepareRunSandboxes(selection.selectedEvals, [run], input.project.planningServices, { configTimeoutMs: input.project.config.timeoutMs }).pipe(Effect.mapError((error) => adoptionError(\"adoption-target-planning-failed\", `Current planning for \"${experiment.id}\" failed: ${safeMessage(error)}`)));\n if (pairs.length !== selection.selectedEvals.length) {\n return yield* Effect.fail(adoptionError(\"adoption-target-planning-failed\", `Current planning for \"${experiment.id}\" did not return every selected Eval.`));\n }\n const contextResult = adoptionRunContext(pairs[0]!.run);\n const context = Result.isFailure(contextResult)\n ? yield* Effect.fail(contextResult.failure)\n : contextResult.success;\n const projectPlan = yield* planPreparedProjectTarget(pairs, {\n configJudge: input.project.config.judgeRuntime,\n }).pipe(Effect.mapError((cause) => adoptionError(\"adoption-target-planning-failed\", `Current identity planning for \"${experiment.id}\" failed: ${safeMessage(cause)}`)));\n const plannedPairs: CurrentTargetPair[] = [];\n for (const pair of pairs) {\n const fingerprint = projectPlan.plannedFingerprints.get(pair.key);\n const configHash = projectPlan.plannedConfigHashes.get(pair.key);\n if (fingerprint === undefined || configHash === undefined) {\n return yield* Effect.fail(adoptionError(\"adoption-target-planning-failed\", `Current identity planning omitted Eval \"${pair.evalDef.id}\".`));\n }\n const timeout = resolveAttemptTimeout(run, pair.evalDef, input.project.config);\n if (timeout !== undefined && !Number.isFinite(timeout.timeoutMs)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-invalid\", `Current timeout for \"${pair.evalDef.id}\" is invalid.`));\n }\n const renameFingerprint = projectPlan.renameFingerprintsByKey.get(pair.key);\n plannedPairs.push(Object.freeze({\n ...(renameFingerprint === undefined ? {} : { renameFingerprint }),\n pair,\n inputIdentity: Object.freeze({\n domain: ADOPTION_INPUT_IDENTITY_DOMAIN,\n value: fingerprint,\n }),\n configIdentity: Object.freeze({\n domain: ADOPTION_CONFIG_IDENTITY_DOMAIN,\n value: configHash,\n }),\n ...(timeout === undefined\n ? {}\n : {\n timeout: Object.freeze({\n domain: EXECUTION_DURATION_DOMAIN,\n milliseconds: timeout.timeoutMs,\n }),\n }),\n }));\n }\n const pairByEval = new Map<string, CurrentTargetPair>();\n for (const planned of plannedPairs) {\n if (pairByEval.has(planned.pair.evalDef.id)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-slot-duplicate\", `Current planning produced duplicate Eval \"${planned.pair.evalDef.id}\".`));\n }\n pairByEval.set(planned.pair.evalDef.id, planned);\n }\n const slots: CurrentAdoptionSlot[] = [];\n const seenSlots = new Set<string>();\n for (const evalDef of selection.selectedEvals) {\n const planned = pairByEval.get(evalDef.id);\n if (planned === undefined) {\n return yield* Effect.fail(adoptionError(\"adoption-target-planning-failed\", `Current planning omitted selected Eval \"${evalDef.id}\".`));\n }\n for (let attempt = 0; attempt < run.attempts; attempt += 1) {\n const identity = yield* currentTargetSlotIdentity({\n experimentId: experiment.id,\n evalId: evalDef.id,\n attempt,\n inputIdentity: planned.inputIdentity,\n configIdentity: planned.configIdentity,\n ...(planned.timeout === undefined ? {} : { timeout: planned.timeout }),\n });\n if (seenSlots.has(identity.slotId)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-slot-duplicate\", `Current target produced duplicate Slot \"${identity.slotId}\".`));\n }\n seenSlots.add(identity.slotId);\n const targetSlot = Object.freeze({\n evaluationKind: planned.pair.evalDef.evaluationKind,\n ...(planned.renameFingerprint === undefined ? {} : { renameFingerprint: planned.renameFingerprint }),\n slotId: identity.slotId,\n experimentId: experiment.id,\n evalId: evalDef.id,\n attemptOrdinal: identity.attemptOrdinal,\n attempt,\n inputIdentity: planned.inputIdentity,\n configIdentity: planned.configIdentity,\n executionIdentityDigest: identity.executionIdentityDigest,\n ...(planned.timeout === undefined ? {} : { timeout: planned.timeout }),\n });\n slots.push(targetSlot);\n }\n }\n const byKey = new Map<string, CurrentAdoptionSlot>();\n for (const slot of slots)\n byKey.set(slotKey(slot.evalId, slot.attemptOrdinal), slot);\n const expectedSlots = Object.freeze([...slots]\n .map((slot) => Object.freeze({\n slotId: slot.slotId,\n evalId: Schema.decodeUnknownSync(EvalIdSchema)(slot.evalId),\n attemptOrdinal: slot.attemptOrdinal,\n executionIdentityDigest: slot.executionIdentityDigest,\n }))\n .sort((left, right) => left.slotId < right.slotId ? -1 : left.slotId > right.slotId ? 1 : 0));\n return Object.freeze({\n experimentId: experiment.id,\n startedAt: input.startedAt,\n context,\n expectedSlots,\n slots: Object.freeze([...slots]),\n slotFor: (evalId: string, attempt: number) => byKey.get(slotKey(evalId, attempt)),\n });\n });\n}\nfunction sourceCoreInvalid(message: string): ExplicitAdoptionError {\n return adoptionError(\"adoption-source-core-invalid\", message);\n}\n/** Locates one canonical short locator through the live Record Host session. */\nexport function resolveExplicitAttemptLocator(reader: RecordReadSession, text: string): Effect.Effect<ResolvedAdoptionAttempt, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const parsed = yield* parseExplicitAttemptLocator(text);\n const selected = yield* reader.selectRuns({ includePublishedActive: true });\n const resolved = yield* resolveAttemptLocator({\n reader,\n selection: selected,\n locator: parsed.locator,\n });\n if (resolved.kind === \"not-found\") {\n return yield* Effect.fail(adoptionError(\"adoption-locator-not-found\", `No published current-Record Attempt matches locator \"${parsed.text}\".`));\n }\n if (resolved.kind === \"ambiguous\") {\n return yield* Effect.fail(adoptionError(\"adoption-locator-ambiguous\", `Locator \"${parsed.text}\" resolves to more than one immutable Attempt.`));\n }\n return yield* resolveAdoptionAttempt(reader, resolved.attempt, Object.freeze({\n text: parsed.text,\n locator: parsed.locator,\n attemptId: resolved.attempt.attemptId,\n }));\n });\n}\n/** Validates the origin anchor and evaluates its source Run/Slot metadata. */\nexport function resolveAdoptionAttempt(reader: RecordReadSession, attempt: SelectedAttemptRef, locator?: ExplicitAttemptLocator): Effect.Effect<ResolvedAdoptionAttempt, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const sourceLocator = locator ?? attemptLocatorFor(attempt.attemptId);\n const selected = yield* reader.selectRuns({ runIds: Object.freeze([attempt.originRunId]) });\n if (selected.runRefs.length !== 1) {\n return yield* Effect.fail(sourceCoreInvalid(`Source locator \"${sourceLocator.text}\" has no readable origin Run.`));\n }\n const originRun = yield* reader.readRun(selected.runRefs[0]!);\n if (originRun.state !== \"available\") {\n return yield* Effect.fail(sourceCoreInvalid(`Source locator \"${sourceLocator.text}\" has no readable origin Run.`));\n }\n const attemptRead = yield* reader.readAttempt(attempt);\n if (attemptRead.state !== \"available\") {\n return yield* Effect.fail(sourceCoreInvalid(`Locator \"${sourceLocator.text}\" points at a missing or invalid source Attempt.`));\n }\n const originSlot = originRun.value.document.expectedSlots.find((slot) => slot.slotId === attemptRead.value.document.slotId);\n if (originSlot === undefined) {\n return yield* Effect.fail(sourceCoreInvalid(`Source locator \"${sourceLocator.text}\" has no origin Member.`));\n }\n const matchingMembers = originRun.value.members.filter((member) => member.attempt !== null\n && member.attempt.originRunId === attempt.originRunId\n && member.attempt.attemptId === attempt.attemptId);\n if (matchingMembers.length !== 1) {\n return yield* Effect.fail(sourceCoreInvalid(matchingMembers.length === 0\n ? `Source locator \"${sourceLocator.text}\" has no origin Member.`\n : `Source origin Run for \"${sourceLocator.text}\" has duplicate origin Members.`));\n }\n return Object.freeze({\n locator: sourceLocator,\n attempt,\n origin: Object.freeze({\n runId: originRun.value.document.runId,\n slotId: originSlot.slotId,\n startedAt: originRun.value.document.startedAt,\n }),\n originExperimentId: originRun.value.document.experimentId,\n originContext: originRun.value.document.context,\n originEvalId: originSlot.evalId,\n originAttempt: originSlot.attemptOrdinal,\n executionIdentityDigest: originSlot.executionIdentityDigest,\n });\n });\n}\nexport interface AdoptionAttemptFacts {\n readonly scoreComplete: boolean;\n readonly outcome: AttemptOutcome;\n readonly verdict: VerdictState;\n}\n/** Reads the exact Core outcome and its Assertion-derived terminal Verdict together. */\nexport function readAdoptionAttemptFacts(reader: RecordReadSession, source: ResolvedAdoptionAttempt): Effect.Effect<AdoptionAttemptFacts, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const attempt = yield* reader.readAttempt(source.attempt);\n if (attempt.state !== \"available\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-unavailable\", \"Source Attempt/Core is unavailable.\"));\n }\n const assertions = yield* reader.read(attempt.value.owner, NiceEvalRecordAttachments.assertions);\n if (assertions.state !== \"available\") {\n const detail = assertions.state === \"invalid\" ? \"invalid\" : assertions.state;\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-unavailable\", `Source Assertions is ${detail}.`));\n }\n const outcome = attempt.value.document.outcome;\n const verdict = foldRecordedAttemptVerdict({ outcome, assertions: assertions.value });\n const score = foldRecordedAttemptScore({ outcome, assertions: assertions.value });\n return Object.freeze({ outcome, verdict, scoreComplete: Result.isSuccess(score) && score.success.state === \"complete\" });\n });\n}\nexport function readAdoptionVerdict(reader: RecordReadSession, source: ResolvedAdoptionAttempt): Effect.Effect<VerdictState, ExplicitAdoptionReadError> {\n return readAdoptionAttemptFacts(reader, source).pipe(Effect.map((facts) => facts.verdict));\n}\n/**\n * Timing is a fixed Runner Activity receipt. No missing, partial, or invalid\n * timing collection is eligible for adoption, including an unbounded target.\n */\nexport function readAdoptionExecutionDuration(reader: RecordReadSession, source: ResolvedAdoptionAttempt): Effect.Effect<DurationLimit, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const attempt = yield* reader.readAttempt(source.attempt);\n if (attempt.state !== \"available\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-observability-unavailable\", `Source timing for locator \"${source.locator.text}\" has no readable Attempt.`));\n }\n const activities = yield* reader.read(attempt.value.owner, NiceEvalRecordAttachments.runnerActivities.attempt);\n if (activities.state !== \"available\") {\n const detail = activities.state === \"invalid\" ? \"invalid\" : activities.state;\n return yield* Effect.fail(adoptionError(\"adoption-source-observability-unavailable\", `Source timing for locator \"${source.locator.text}\" is ${detail}.`));\n }\n const duration = readAttemptExecutionDuration(activities.value);\n if (duration.state !== \"available\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-observability-unavailable\", `Source timing for locator \"${source.locator.text}\" is ${duration.reason}.`));\n }\n return duration.duration;\n });\n}\nfunction executionIdentityComparison(input: {\n readonly source: ExecutionIdentityDigest;\n readonly target: ExecutionIdentityDigest;\n}): ComparisonProvenance {\n const reason = input.source === input.target\n ? \"execution-identity-match\"\n : \"execution-identity-mismatch\";\n return Object.freeze({\n attachment: \"core\" as const,\n recordedClaim: \"execution-identity\" as const,\n sourceState: \"available\" as const,\n result: reason.endsWith(\"-match\") ? \"match\" as const : \"mismatch\" as const,\n reason,\n });\n}\nfunction durationComparison(input: {\n readonly source: DurationLimit;\n readonly target?: DurationLimit;\n}): {\n readonly comparison: ComparisonProvenance;\n readonly failure?: \"adoption-duration-domain-mismatch\" | \"adoption-timeout-exceeded\";\n} {\n if (input.target === undefined) {\n return Object.freeze({\n comparison: Object.freeze({\n attachment: \"niceeval.runner-activities\" as const,\n recordedClaim: \"execution-duration\" as const,\n sourceState: \"available\" as const,\n result: \"match\" as const,\n reason: \"timeout-unbounded\",\n }),\n });\n }\n if (input.source.domain !== input.target.domain) {\n return Object.freeze({\n comparison: Object.freeze({\n attachment: \"niceeval.runner-activities\" as const,\n recordedClaim: \"execution-duration\" as const,\n sourceState: \"available\" as const,\n result: \"mismatch\" as const,\n reason: \"duration-domain-mismatch\",\n }),\n failure: \"adoption-duration-domain-mismatch\",\n });\n }\n if (input.source.milliseconds > input.target.milliseconds) {\n return Object.freeze({\n comparison: Object.freeze({\n attachment: \"niceeval.runner-activities\" as const,\n recordedClaim: \"execution-duration\" as const,\n sourceState: \"available\" as const,\n result: \"mismatch\" as const,\n reason: \"timeout-exceeded\",\n }),\n failure: \"adoption-timeout-exceeded\",\n });\n }\n return Object.freeze({\n comparison: Object.freeze({\n attachment: \"niceeval.runner-activities\" as const,\n recordedClaim: \"execution-duration\" as const,\n sourceState: \"available\" as const,\n result: \"match\" as const,\n reason: \"duration-within-timeout\",\n }),\n });\n}\n/**\n * Builds one accepted reference intent. The Core combined execution identity\n * is compared exactly, but an explicit operator decision may accept a mismatch.\n * The folded Verdict and complete Runner Activity timing remain hard gates.\n */\n// @concord-code ne-runner-prepare-adoption-member\n// @concord-implements docs/feature/experiments/cache.md\nexport function prepareExplicitAdoptionMember(input: {\n readonly reader: RecordReadSession;\n readonly target: CurrentAdoptionTarget;\n readonly source: ResolvedAdoptionAttempt;\n readonly evalId: string;\n readonly attempt: number;\n readonly operatorReason?: string;\n}): Effect.Effect<ExplicitAdoptionMember, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const target = input.target.slotFor(input.evalId, input.attempt);\n if (target === undefined) {\n const code = input.target.slots.some((slot) => slot.evalId === input.evalId)\n ? \"adoption-target-attempt-not-selected\"\n : \"adoption-target-eval-not-selected\";\n return yield* Effect.fail(adoptionError(code, `Current target ${input.target.experimentId}/${input.evalId} does not contain ordinal ${String(input.attempt)}.`));\n }\n const facts = yield* readAdoptionAttemptFacts(input.reader, input.source);\n const verdict = facts.verdict;\n if (facts.outcome !== \"completed\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-ineligible\", `Source locator \"${input.source.locator.text}\" has Attempt outcome \"${facts.outcome}\" and cannot be explicitly adopted.`));\n }\n if (verdict !== \"passed\" && verdict !== \"failed\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-ineligible\", `Source locator \"${input.source.locator.text}\" has Verdict \"${verdict}\" and cannot be explicitly adopted.`));\n }\n const executionDuration = yield* readAdoptionExecutionDuration(input.reader, input.source);\n const duration = durationComparison({\n source: executionDuration,\n target: target.timeout,\n });\n if (duration.failure !== undefined) {\n return yield* Effect.fail(adoptionError(duration.failure, duration.failure === \"adoption-timeout-exceeded\"\n ? `Source locator \"${input.source.locator.text}\" exceeds the current timeout.`\n : `Source locator \"${input.source.locator.text}\" uses an incomparable execution-duration domain.`));\n }\n const comparisons = Object.freeze([\n Object.freeze({\n attachment: \"core\" as const,\n recordedClaim: \"attempt-outcome\" as const,\n sourceState: \"available\" as const,\n result: \"match\" as const,\n reason: \"attempt-completed\",\n }),\n executionIdentityComparison({\n source: input.source.executionIdentityDigest,\n target: target.executionIdentityDigest,\n }),\n Object.freeze({\n attachment: \"niceeval.assertions\" as const,\n recordedClaim: \"assertion-verdict\" as const,\n sourceState: \"available\" as const,\n result: \"match\" as const,\n reason: \"verdict-eligible\",\n }),\n duration.comparison,\n ]);\n return Object.freeze({\n target,\n source: input.source,\n locator: input.source.locator.text,\n verdict,\n comparisons,\n ...(input.operatorReason === undefined\n ? {}\n : { operatorReason: input.operatorReason }),\n });\n });\n}\n/** Validates the exact Core Run denominator before the writer records Members. */\nfunction validateExplicitAdoptionMembers(input: {\n readonly target: CurrentAdoptionTarget;\n readonly members: readonly ExplicitAdoptionMember[];\n}): Effect.Effect<void, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n const expected = new Set<string>();\n for (const slot of input.target.expectedSlots) {\n if (expected.has(slot.slotId)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-slot-duplicate\", `Current target lists Slot \"${slot.slotId}\" more than once.`));\n }\n expected.add(slot.slotId);\n }\n const targetSlots = new Set(input.target.slots.map((slot) => String(slot.slotId)));\n if (targetSlots.size !== expected.size\n || [...expected].some((slotId) => !targetSlots.has(slotId))) {\n return yield* Effect.fail(adoptionError(\"adoption-target-invalid\", \"Current target Slot definitions do not exactly match its expected Slot denominator.\"));\n }\n const memberBySlot = new Set<string>();\n for (const member of input.members) {\n const slotId = String(member.target.slotId);\n if (!expected.has(slotId)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-eval-not-selected\", `Explicit adoption selected Slot \"${slotId}\" outside the current target denominator.`));\n }\n if (memberBySlot.has(slotId)) {\n return yield* Effect.fail(adoptionError(\"adoption-target-member-duplicate\", `More than one source attempts to occupy target Slot \"${slotId}\".`));\n }\n memberBySlot.add(slotId);\n }\n return undefined;\n });\n}\n/**\n * Performs Core denominator and Member validation before a writer creates a\n * reference Run. This is the batch's no-business-write boundary.\n */\nexport function buildExplicitAdoptionRunPlan(input: {\n readonly intent: ExplicitAdoptionIntent;\n readonly target: CurrentAdoptionTarget;\n readonly members: readonly ExplicitAdoptionMember[];\n}): Effect.Effect<ExplicitAdoptionRunPlan, ExplicitAdoptionError> {\n return Effect.gen(function* () {\n if (input.members.length === 0) {\n return yield* Effect.fail(adoptionError(\"adoption-target-invalid\", \"Explicit adoption requires at least one reference Member.\"));\n }\n yield* validateExplicitAdoptionMembers(input);\n return Object.freeze({\n intent: input.intent,\n target: input.target,\n members: Object.freeze([...input.members]),\n });\n });\n}\n/** Writes only plans already built from this exact session's Host reader. */\nexport function commitExplicitAdoptionRunPlans(_reader: RecordReadSession, root: RecordRoot, invocationId: string, plans: readonly ExplicitAdoptionRunPlan[]) {\n const storageRoot = recordRootPaths(root)?.portableRoot;\n if (storageRoot === undefined) {\n return Effect.fail(asRunStorageError(new Error(\"Adoption Record root is unavailable to Run storage.\")));\n }\n return Effect.forEach(plans, (plan) => Effect.gen(function* () {\n const experimentId = yield* decodeBrandedId(ExperimentIdSchema, plan.target.experimentId, \"adoption-target-invalid\", \"Adoption target Experiment\");\n const publications = new Map<string, AttemptPublicationIdentity>();\n for (const member of plan.members) {\n const published = yield* readPublishedAttempt(storageRoot, String(member.source.attempt.attemptId)).pipe(Effect.mapError(asRunStorageError));\n if (published === undefined) {\n return yield* Effect.fail(asRunStorageError(new Error(`Adoption source Attempt ${String(member.source.attempt.attemptId)} has no Run publication identity.`)));\n }\n publications.set(String(member.target.slotId), published.publicationIdentity);\n }\n const accepted = new Set(plan.members.map((member) => String(member.target.slotId)));\n const writer = yield* recordHost.createReferenceRun({\n root,\n experimentId,\n context: plan.target.context,\n startedAt: plan.target.startedAt,\n expectedSlots: plan.target.expectedSlots,\n writerGeneration: createRunWriterGeneration(`${invocationId}:${plan.target.experimentId}`),\n });\n const writerGeneration = writerGenerationForRunSession(writer);\n if (writerGeneration === undefined) {\n return yield* Effect.fail(asRunStorageError(new Error(\"Run writer generation is unavailable\")));\n }\n yield* createRunResource(storageRoot, {\n runId: String(writer.runId),\n invocationId,\n experimentId: String(experimentId),\n writerGeneration,\n startedAt: new Date(Number(plan.target.startedAt)).toISOString(),\n expectedSlots: plan.target.expectedSlots.map((slot) => ({\n slotId: String(slot.slotId),\n evalId: String(slot.evalId),\n attemptOrdinal: slot.attemptOrdinal,\n executionIdentityDigest: String(slot.executionIdentityDigest),\n })),\n deadlineEpochMs: Date.now() + 30000,\n }).pipe(Effect.mapError(asRunStorageError));\n for (const member of plan.members) {\n yield* writer.recordAcceptedMembership({\n slotId: member.target.slotId,\n attempt: member.source.attempt,\n });\n yield* bindAttemptReference(storageRoot, {\n runId: String(writer.runId),\n writerGeneration,\n slotId: String(member.target.slotId),\n action: \"accepted\",\n publicationIdentity: publications.get(String(member.target.slotId))!,\n deadlineEpochMs: Date.now() + 30000,\n }).pipe(Effect.mapError(asRunStorageError));\n }\n for (const slot of plan.target.expectedSlots) {\n if (accepted.has(String(slot.slotId)))\n continue;\n yield* writer.recordTerminalMember({\n slotId: slot.slotId,\n action: \"not-dispatched\",\n absenceReason: \"early-exit-satisfied\",\n });\n }\n const sealed = yield* writer.seal({ completedAt: plan.target.startedAt });\n yield* closeRunResource(storageRoot, {\n runId: String(writer.runId),\n writerGeneration,\n state: \"completed\",\n completedAt: new Date(Number(plan.target.startedAt)).toISOString(),\n absences: plan.target.expectedSlots\n .filter((slot) => !accepted.has(String(slot.slotId)))\n .map((slot) => ({\n slotId: String(slot.slotId),\n reason: \"early-exit-satisfied\" as const,\n })),\n deadlineEpochMs: Date.now() + 30000,\n }).pipe(Effect.mapError(asRunStorageError));\n return receiptForPlan(plan, sealed.runId);\n }), { concurrency: 1 }).pipe(Effect.mapError((cause) => cause instanceof RunStorageError\n ? cause\n : new RunStorageError(\"run-storage-invalid\", safeMessage(cause))));\n}\nfunction receiptForPlan(plan: ExplicitAdoptionRunPlan, runId: RunId): ExplicitAdoptionRunReceipt {\n return Object.freeze({\n experimentId: plan.target.experimentId,\n runId,\n members: Object.freeze(plan.members.map((member) => Object.freeze({\n slotId: member.target.slotId,\n locator: member.locator,\n sourceRunId: member.source.origin.runId,\n attemptId: member.source.attempt.attemptId,\n }))),\n });\n}\n/** A fresh in-memory invocation identity never enters Record Core. */\nexport function createExplicitAdoptionInvocationId(mint: () => string = randomUUID): Effect.Effect<string> {\n return Effect.sync(() => `adoption-${mint()}`);\n}\nexport function adoptionStartedAt(input?: () => string | number): Effect.Effect<UtcMillis, ExplicitAdoptionError> {\n return Effect.sync(() => input?.() ?? Date.now()).pipe(Effect.flatMap((value) => {\n const millis = typeof value === \"number\" ? value : Date.parse(value);\n return utcMillis(millis);\n }));\n}\n/** Opens a Host read session only; dry callers must use this rather than a writer. */\nexport function withAdoptionReader<A, E, R>(input: {\n readonly root: RecordRoot;\n readonly use: (reader: RecordReadSession) => Effect.Effect<A, E, R>;\n}) {\n return Effect.scoped(Effect.gen(function* () {\n const reader = yield* recordHost.openRead({ root: input.root });\n return yield* input.use(reader);\n }));\n}\n/**\n * One Scope keeps the Host reader live while reference Runs are created, so\n * SelectedAttemptRefs remain valid through seal. Discovery still happens\n * before this Scope opens, so the first preflight writes nothing.\n */\nexport function withAdoptionCommitScope<A, E, R>(input: {\n readonly root: RecordRoot;\n readonly use: (reader: RecordReadSession) => Effect.Effect<A, E, R>;\n}) {\n return withAdoptionReader(input);\n}\nexport interface RenameSourceRun {\n readonly runId: RunId;\n readonly experimentId: ExperimentId;\n readonly startedAt: UtcMillis;\n readonly expectedSlots: readonly RecordSlotIdentity[];\n}\nexport function resolveExactAdoptionSourceRun(input: {\n readonly reader: RecordReadSession;\n readonly sourceRunId: string;\n}): Effect.Effect<RenameSourceRun, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const runId = yield* decodeBrandedId(RunIdSchema, input.sourceRunId, \"adoption-source-run-not-found\", \"Adoption source Run\");\n const selected = yield* input.reader.selectRuns({ runIds: Object.freeze([runId]), includePublishedActive: true });\n if (selected.runRefs.length !== 1) {\n return yield* Effect.fail(adoptionError(\"adoption-source-run-not-found\", `Adoption source Run \"${input.sourceRunId}\" is not a published readable Run.`));\n }\n const run = yield* input.reader.readRun(selected.runRefs[0]!);\n if (run.state !== \"available\") {\n return yield* Effect.fail(adoptionError(\"adoption-source-run-not-found\", `Adoption source Run \"${input.sourceRunId}\" is not a published readable Run.`));\n }\n return Object.freeze({\n runId: run.value.document.runId,\n experimentId: run.value.document.experimentId,\n startedAt: run.value.document.startedAt,\n expectedSlots: run.value.document.expectedSlots,\n });\n });\n}\nexport interface RenameAdoptionMember {\n readonly evalId: string;\n readonly attempt: number;\n readonly member: ExplicitAdoptionMember;\n}\nexport interface RenameAdoptionPreflight {\n readonly sourceRun: RenameSourceRun;\n readonly members: readonly RenameAdoptionMember[];\n}\n/**\n * Validates a bijection between one exact source Run and the current target.\n * Every member must qualify before the caller may publish a target Run.\n */\nexport function prepareWholeRunAdoptionMembers(input: {\n readonly intent: ExplicitAdoptionIntent;\n readonly reader: RecordReadSession;\n readonly sourceRun: RenameSourceRun;\n readonly target: CurrentAdoptionTarget;\n readonly operatorReason: string;\n}): Effect.Effect<RenameAdoptionPreflight, ExplicitAdoptionReadError> {\n return Effect.gen(function* () {\n const selected = yield* input.reader.selectRuns({ runIds: [input.sourceRun.runId], includePublishedActive: true });\n const ref = selected.runRefs[0];\n if (ref === undefined || selected.runRefs.length !== 1)\n return yield* Effect.fail(sourceCoreInvalid(\"The exact rename source Run is unavailable.\"));\n const run = yield* input.reader.readRun(ref);\n if (run.state !== \"available\")\n return yield* Effect.fail(sourceCoreInvalid(\"The exact rename source Run is unreadable.\"));\n const sourceSlots = input.sourceRun.expectedSlots;\n const seen = new Set<string>();\n if (sourceSlots.length !== input.target.slots.length || sourceSlots.length === 0)\n return yield* Effect.fail(adoptionError(input.intent === \"rename\" ? \"rename-run-not-closed\" : \"accept-run-not-closed\", \"Source Run and current target must contain the same nonempty Eval/ordinal membership.\"));\n const members: RenameAdoptionMember[] = [];\n for (const sourceSlot of sourceSlots) {\n const key = slotKey(sourceSlot.evalId, sourceSlot.attemptOrdinal);\n const targetSlot = input.target.slotFor(sourceSlot.evalId, sourceSlot.attemptOrdinal);\n if (targetSlot === undefined || seen.has(key))\n return yield* Effect.fail(adoptionError(input.intent === \"rename\" ? \"rename-run-not-closed\" : \"accept-run-not-closed\", `Source position ${sourceSlot.evalId}/${sourceSlot.attemptOrdinal} does not have one exact target.`));\n seen.add(key);\n const sourceMembers = run.value.members.filter((member) => member.document.slotId === sourceSlot.slotId);\n const sourceMember = sourceMembers[0];\n if (sourceMembers.length !== 1 || sourceMember?.attempt == null)\n return yield* Effect.fail(adoptionError(input.intent === \"rename\" ? \"rename-run-not-closed\" : \"accept-run-not-closed\", `Source position ${sourceSlot.evalId}/${sourceSlot.attemptOrdinal} has no unique published Attempt.`));\n const source = yield* resolveAdoptionAttempt(input.reader, sourceMember.attempt);\n if (input.intent === \"rename\" && (!hasProvenNoExperimentHooks(run.value.document.context) ||\n !hasProvenNoExperimentHooks(source.originContext)))\n return yield* Effect.fail(adoptionError(\"rename-behavior-unproven\", `Source locator ${source.locator.text} has opaque or unknown Experiment hook declarations; pure rename cannot be proven.`));\n if (source.originEvalId !== sourceSlot.evalId || source.originAttempt !== sourceSlot.attemptOrdinal)\n return yield* Effect.fail(sourceCoreInvalid(\"Source Member does not retain its exact origin position.\"));\n if (input.intent === \"rename\" && (executionDigestForExperiment(targetSlot, input.sourceRun.experimentId) !== sourceSlot.executionIdentityDigest ||\n executionDigestForExperiment(targetSlot, source.originExperimentId) !== source.executionIdentityDigest))\n return yield* Effect.fail(adoptionError(\"rename-identity-mismatch\", `Source locator ${source.locator.text} has changed or unprovable execution identity; rename cannot adopt it.`));\n if (input.intent === \"rename\" && targetSlot.evaluationKind === \"score\") {\n const facts = yield* readAdoptionAttemptFacts(input.reader, source);\n if (!facts.scoreComplete)\n return yield* Effect.fail(adoptionError(\"adoption-source-verdict-ineligible\", `Source locator ${source.locator.text} has incomplete score.`));\n }\n const member = yield* prepareExplicitAdoptionMember({ reader: input.reader, target: input.target, source,\n evalId: sourceSlot.evalId, attempt: sourceSlot.attemptOrdinal, operatorReason: input.operatorReason });\n members.push(Object.freeze({ evalId: sourceSlot.evalId, attempt: sourceSlot.attemptOrdinal, member }));\n }\n return Object.freeze({ sourceRun: input.sourceRun, members: Object.freeze(members) });\n });\n}\n"]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AttemptCancellationController = void 0;
4
+ /** Only the Attempt owner can produce reasons for this signal. */
5
+ class AttemptCancellationController extends AbortController {
6
+ abort(reason) {
7
+ if (!this.signal.aborted)
8
+ super.abort(Object.freeze(reason));
9
+ }
10
+ }
11
+ exports.AttemptCancellationController = AttemptCancellationController;
12
+ //# sourceMappingURL=attempt-cancellation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attempt-cancellation.js","sourceRoot":"","sources":["attempt-cancellation.ts"],"names":[],"mappings":";;;AACA,kEAAkE;AAClE,MAAa,6BAA8B,SAAQ,eAAe;IAErD,KAAK,CAAC,MAA2B;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YACpB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,CAAC;CACJ;AAND,sEAMC","sourcesContent":["import type { AttemptCancellation, AttemptSignal } from \"../shared/attempt-lifecycle.ts\";\n/** Only the Attempt owner can produce reasons for this signal. */\nexport class AttemptCancellationController extends AbortController {\n declare readonly signal: AttemptSignal;\n override abort(reason: AttemptCancellation): void {\n if (!this.signal.aborted)\n super.abort(Object.freeze(reason));\n }\n}\n"]}
@@ -0,0 +1,6 @@
1
+ import type { AttemptCancellation, AttemptSignal } from "../shared/attempt-lifecycle.cjs";
2
+ /** Only the Attempt owner can produce reasons for this signal. */
3
+ export declare class AttemptCancellationController extends AbortController {
4
+ readonly signal: AttemptSignal;
5
+ abort(reason: AttemptCancellation): void;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { AttemptCancellation, AttemptSignal } from "../shared/attempt-lifecycle.mjs";
2
+ /** Only the Attempt owner can produce reasons for this signal. */
3
+ export declare class AttemptCancellationController extends AbortController {
4
+ readonly signal: AttemptSignal;
5
+ abort(reason: AttemptCancellation): void;
6
+ }
@@ -0,0 +1,6 @@
1
+ import type { AttemptCancellation, AttemptSignal } from "../shared/attempt-lifecycle.js";
2
+ /** Only the Attempt owner can produce reasons for this signal. */
3
+ export declare class AttemptCancellationController extends AbortController {
4
+ readonly signal: AttemptSignal;
5
+ abort(reason: AttemptCancellation): void;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { createRequire as __niceevalCreateRequire } from "node:module";
2
+ const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
3
+ const __niceevalCanonical = __niceevalRequire("./attempt-cancellation.cjs");
4
+ const __niceevalExport0 = __niceevalCanonical["AttemptCancellationController"];
5
+ export { __niceevalExport0 as AttemptCancellationController };
6
+ //# sourceMappingURL=attempt-cancellation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attempt-cancellation.js","sources":[],"names":[],"mappings":""}
@@ -44,6 +44,7 @@ class AdapterAttemptResources {
44
44
  cleanups = [];
45
45
  handoffs = new Set();
46
46
  cleanupReceipt;
47
+ wakeCleanup;
47
48
  constructor(closeCapture = () => { }) {
48
49
  this.closeCapture = closeCapture;
49
50
  }
@@ -69,6 +70,7 @@ class AdapterAttemptResources {
69
70
  throw new AdapterResourceWindowClosedError(this.windowState);
70
71
  }
71
72
  this.cleanups.push(cleanup);
73
+ this.wakeCleanup?.();
72
74
  }
73
75
  trackHandoff(promise) {
74
76
  let settled;
@@ -92,12 +94,12 @@ class AdapterAttemptResources {
92
94
  this.windowState = "closed";
93
95
  this.closeCapture();
94
96
  }
95
- cleanup(signal) {
96
- return this.cleanupReceipt ??= this.drain(signal);
97
+ cleanup(context) {
98
+ return this.cleanupReceipt ??= this.drain(context);
97
99
  }
98
- async drain(signal) {
100
+ async drain(context) {
99
101
  this.beginCleanup();
100
- const context = Object.freeze({ signal });
102
+ const { signal } = context;
101
103
  const failures = [];
102
104
  let timedOut = signal.aborted;
103
105
  let stopWaiting;
@@ -133,15 +135,19 @@ class AdapterAttemptResources {
133
135
  continue;
134
136
  if (this.handoffs.size === 0)
135
137
  break;
138
+ const changed = new Promise((resolve) => { this.wakeCleanup = resolve; });
136
139
  const outcome = await Promise.race([
140
+ changed,
137
141
  ...this.handoffs,
138
142
  aborted,
139
143
  ]).then(() => signal.aborted ? "aborted" : "settled");
144
+ this.wakeCleanup = undefined;
140
145
  if (outcome === "aborted")
141
146
  timedOut = true;
142
147
  }
143
148
  }
144
149
  finally {
150
+ this.wakeCleanup = undefined;
145
151
  this.close();
146
152
  if (onAbort !== undefined)
147
153
  signal.removeEventListener("abort", onAbort);