niceeval 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (679) hide show
  1. package/INDEX.md +4 -2
  2. package/dist/adapter-usage.cjs.map +1 -1
  3. package/dist/adapter-usage.d.cts +1 -1
  4. package/dist/adapter-usage.d.mts +1 -1
  5. package/dist/adapter-usage.d.ts +1 -1
  6. package/dist/adapter.cjs +8 -7
  7. package/dist/adapter.cjs.map +1 -1
  8. package/dist/adapter.d.cts +21 -21
  9. package/dist/adapter.d.mts +21 -21
  10. package/dist/adapter.d.ts +21 -21
  11. package/dist/agents/{effect-runtime.cjs → agent-effects.cjs} +12 -18
  12. package/dist/agents/agent-effects.cjs.map +1 -0
  13. package/dist/agents/agent-effects.d.cts +23 -0
  14. package/dist/agents/agent-effects.d.mts +23 -0
  15. package/dist/agents/agent-effects.d.ts +23 -0
  16. package/dist/agents/agent-effects.js +16 -0
  17. package/dist/agents/agent-effects.js.map +1 -0
  18. package/dist/agents/ai-sdk.cjs +1 -1
  19. package/dist/agents/ai-sdk.cjs.map +1 -1
  20. package/dist/agents/bub.cjs +31 -18
  21. package/dist/agents/bub.cjs.map +1 -1
  22. package/dist/agents/bub.d.cts +9 -12
  23. package/dist/agents/bub.d.mts +9 -12
  24. package/dist/agents/bub.d.ts +9 -12
  25. package/dist/agents/claude-code-native.cjs +2 -2
  26. package/dist/agents/claude-code-native.cjs.map +1 -1
  27. package/dist/agents/claude-code.cjs +17 -11
  28. package/dist/agents/claude-code.cjs.map +1 -1
  29. package/dist/agents/claude-code.d.cts +11 -11
  30. package/dist/agents/claude-code.d.mts +11 -11
  31. package/dist/agents/claude-code.d.ts +11 -11
  32. package/dist/agents/codex-app-server.cjs +2 -2
  33. package/dist/agents/codex-app-server.cjs.map +1 -1
  34. package/dist/agents/codex.cjs +18 -12
  35. package/dist/agents/codex.cjs.map +1 -1
  36. package/dist/agents/codex.d.cts +12 -12
  37. package/dist/agents/codex.d.mts +12 -12
  38. package/dist/agents/codex.d.ts +12 -12
  39. package/dist/agents/deepseek-harness.cjs +2 -2
  40. package/dist/agents/deepseek-harness.cjs.map +1 -1
  41. package/dist/agents/hermes.cjs +3 -3
  42. package/dist/agents/hermes.cjs.map +1 -1
  43. package/dist/agents/index.cjs +3 -3
  44. package/dist/agents/index.cjs.map +1 -1
  45. package/dist/agents/index.d.cts +3 -3
  46. package/dist/agents/index.d.mts +3 -3
  47. package/dist/agents/index.d.ts +3 -3
  48. package/dist/agents/index.js +2 -2
  49. package/dist/agents/index.mjs +2 -2
  50. package/dist/agents/mcp.cjs.map +1 -1
  51. package/dist/agents/mcp.d.cts +2 -2
  52. package/dist/agents/mcp.d.mts +2 -2
  53. package/dist/agents/mcp.d.ts +2 -2
  54. package/dist/agents/omp.cjs +2 -2
  55. package/dist/agents/omp.cjs.map +1 -1
  56. package/dist/agents/openai-compat.cjs +2 -2
  57. package/dist/agents/openai-compat.cjs.map +1 -1
  58. package/dist/agents/openclaw.cjs +3 -3
  59. package/dist/agents/openclaw.cjs.map +1 -1
  60. package/dist/agents/opencode.cjs +16 -4
  61. package/dist/agents/opencode.cjs.map +1 -1
  62. package/dist/agents/plugin-extensions.cjs +71 -0
  63. package/dist/agents/plugin-extensions.cjs.map +1 -0
  64. package/dist/agents/plugin-extensions.d.cts +26 -0
  65. package/dist/agents/plugin-extensions.d.mts +26 -0
  66. package/dist/agents/plugin-extensions.d.ts +26 -0
  67. package/dist/agents/plugin-extensions.js +8 -0
  68. package/dist/agents/plugin-extensions.js.map +1 -0
  69. package/dist/agents/post-setup.cjs +14 -3
  70. package/dist/agents/post-setup.cjs.map +1 -1
  71. package/dist/agents/post-setup.d.cts +4 -2
  72. package/dist/agents/post-setup.d.mts +4 -2
  73. package/dist/agents/post-setup.d.ts +4 -2
  74. package/dist/agents/post-setup.js +8 -6
  75. package/dist/agents/sdk-streams.cjs +3 -3
  76. package/dist/agents/sdk-streams.cjs.map +1 -1
  77. package/dist/agents/{session-slot.cjs → session-key.cjs} +4 -4
  78. package/dist/agents/session-key.cjs.map +1 -0
  79. package/dist/agents/session-key.d.cts +12 -0
  80. package/dist/agents/session-key.d.mts +12 -0
  81. package/dist/agents/session-key.d.ts +12 -0
  82. package/dist/agents/session-key.js +6 -0
  83. package/dist/agents/session-key.js.map +1 -0
  84. package/dist/agents/shared.cjs +2 -2
  85. package/dist/agents/shared.cjs.map +1 -1
  86. package/dist/agents/shared.d.cts +4 -4
  87. package/dist/agents/shared.d.mts +4 -4
  88. package/dist/agents/shared.d.ts +4 -4
  89. package/dist/agents/skills.cjs.map +1 -1
  90. package/dist/agents/skills.d.cts +3 -3
  91. package/dist/agents/skills.d.mts +3 -3
  92. package/dist/agents/skills.d.ts +3 -3
  93. package/dist/agents/types.cjs.map +1 -1
  94. package/dist/agents/types.d.cts +55 -54
  95. package/dist/agents/types.d.mts +55 -54
  96. package/dist/agents/types.d.ts +55 -54
  97. package/dist/agents/ui-message-stream.cjs +4 -4
  98. package/dist/agents/ui-message-stream.cjs.map +1 -1
  99. package/dist/agents/unrecognized-events.cjs +32 -0
  100. package/dist/agents/unrecognized-events.cjs.map +1 -0
  101. package/dist/agents/unrecognized-events.d.cts +8 -0
  102. package/dist/agents/unrecognized-events.d.mts +8 -0
  103. package/dist/agents/unrecognized-events.d.ts +8 -0
  104. package/dist/agents/unrecognized-events.js +6 -0
  105. package/dist/agents/unrecognized-events.js.map +1 -0
  106. package/dist/assertions/api.cjs.map +1 -1
  107. package/dist/assertions/api.d.cts +3 -0
  108. package/dist/assertions/api.d.mts +3 -0
  109. package/dist/assertions/api.d.ts +3 -0
  110. package/dist/assertions/collection.cjs +1 -1
  111. package/dist/assertions/collection.cjs.map +1 -1
  112. package/dist/assertions/judge.cjs +1 -1
  113. package/dist/assertions/judge.cjs.map +1 -1
  114. package/dist/assertions/match.cjs +52 -21
  115. package/dist/assertions/match.cjs.map +1 -1
  116. package/dist/assertions/match.d.cts +16 -5
  117. package/dist/assertions/match.d.mts +16 -5
  118. package/dist/assertions/match.d.ts +16 -5
  119. package/dist/assertions/match.js +96 -94
  120. package/dist/assertions/measurements.cjs +22 -6
  121. package/dist/assertions/measurements.cjs.map +1 -1
  122. package/dist/assertions/measurements.d.cts +8 -1
  123. package/dist/assertions/measurements.d.mts +8 -1
  124. package/dist/assertions/measurements.d.ts +8 -1
  125. package/dist/assertions/numeric.cjs +2 -0
  126. package/dist/assertions/numeric.cjs.map +1 -1
  127. package/dist/assertions/numeric.d.cts +1 -1
  128. package/dist/assertions/numeric.d.mts +1 -1
  129. package/dist/assertions/numeric.d.ts +1 -1
  130. package/dist/assertions/quantity.cjs +42 -0
  131. package/dist/assertions/quantity.cjs.map +1 -0
  132. package/dist/assertions/quantity.d.cts +18 -0
  133. package/dist/assertions/quantity.d.mts +18 -0
  134. package/dist/assertions/quantity.d.ts +18 -0
  135. package/dist/assertions/quantity.js +22 -0
  136. package/dist/assertions/quantity.js.map +1 -0
  137. package/dist/assertions/record/attachment.cjs +2 -0
  138. package/dist/assertions/record/attachment.cjs.map +1 -1
  139. package/dist/assertions/record/codec.cjs +5 -1
  140. package/dist/assertions/record/codec.cjs.map +1 -1
  141. package/dist/assertions/record/model.cjs.map +1 -1
  142. package/dist/assertions/record/model.d.cts +3 -1
  143. package/dist/assertions/record/model.d.mts +3 -1
  144. package/dist/assertions/record/model.d.ts +3 -1
  145. package/dist/assertions/runtime.cjs +11 -6
  146. package/dist/assertions/runtime.cjs.map +1 -1
  147. package/dist/cli/program.cjs +3 -0
  148. package/dist/cli/program.cjs.map +1 -1
  149. package/dist/context/assert-first.cjs +6 -4
  150. package/dist/context/assert-first.cjs.map +1 -1
  151. package/dist/context/assert-first.d.cts +9 -3
  152. package/dist/context/assert-first.d.mts +9 -3
  153. package/dist/context/assert-first.d.ts +9 -3
  154. package/dist/context/notes.cjs +47 -0
  155. package/dist/context/notes.cjs.map +1 -0
  156. package/dist/context/notes.d.cts +10 -0
  157. package/dist/context/notes.d.mts +10 -0
  158. package/dist/context/notes.d.ts +10 -0
  159. package/dist/context/notes.js +6 -0
  160. package/dist/context/notes.js.map +1 -0
  161. package/dist/context/send-failures.cjs +1 -7
  162. package/dist/context/send-failures.cjs.map +1 -1
  163. package/dist/context/send-failures.d.cts +2 -3
  164. package/dist/context/send-failures.d.mts +2 -3
  165. package/dist/context/send-failures.d.ts +2 -3
  166. package/dist/context/send-retry.cjs +0 -1
  167. package/dist/context/send-retry.cjs.map +1 -1
  168. package/dist/context/send-retry.d.cts +1 -2
  169. package/dist/context/send-retry.d.mts +1 -2
  170. package/dist/context/send-retry.d.ts +1 -2
  171. package/dist/context/session.cjs +10 -17
  172. package/dist/context/session.cjs.map +1 -1
  173. package/dist/context/session.d.cts +4 -10
  174. package/dist/context/session.d.mts +4 -10
  175. package/dist/context/session.d.ts +4 -10
  176. package/dist/define.cjs +88 -65
  177. package/dist/define.cjs.map +1 -1
  178. package/dist/define.d.cts +3 -3
  179. package/dist/define.d.mts +3 -3
  180. package/dist/define.d.ts +3 -3
  181. package/dist/eval/cli/contribution.cjs +1 -1
  182. package/dist/eval/cli/contribution.cjs.map +1 -1
  183. package/dist/eval/host/index.cjs +1 -1
  184. package/dist/eval/host/index.cjs.map +1 -1
  185. package/dist/eval/record/evaluation.cjs +1 -1
  186. package/dist/eval/record/evaluation.cjs.map +1 -1
  187. package/dist/eval/record/membership-provenance.d.cts +3 -3
  188. package/dist/eval/record/membership-provenance.d.mts +3 -3
  189. package/dist/eval/record/membership-provenance.d.ts +3 -3
  190. package/dist/eval/record/score.cjs +2 -2
  191. package/dist/eval/record/score.cjs.map +1 -1
  192. package/dist/eval/record/sealed-assertion.cjs +1 -1
  193. package/dist/eval/record/sealed-assertion.cjs.map +1 -1
  194. package/dist/eval/record/verdict.cjs +2 -2
  195. package/dist/eval/record/verdict.cjs.map +1 -1
  196. package/dist/expect/index.cjs +10 -1
  197. package/dist/expect/index.cjs.map +1 -1
  198. package/dist/expect/index.d.cts +3 -1
  199. package/dist/expect/index.d.mts +3 -1
  200. package/dist/expect/index.d.ts +3 -1
  201. package/dist/expect/index.js +92 -76
  202. package/dist/expect/index.mjs +92 -76
  203. package/dist/experiment/host/cli/contribution.cjs +52 -39
  204. package/dist/experiment/host/cli/contribution.cjs.map +1 -1
  205. package/dist/experiment/host/cli/contribution.d.cts +18 -4
  206. package/dist/experiment/host/cli/contribution.d.mts +18 -4
  207. package/dist/experiment/host/cli/contribution.d.ts +18 -4
  208. package/dist/experiment/host/cli/contribution.js +2 -2
  209. package/dist/experiment/host/cli/debug-protocol.cjs +2 -2
  210. package/dist/experiment/host/cli/debug-protocol.cjs.map +1 -1
  211. package/dist/experiment/host/cli/debug-protocol.d.cts +2 -2
  212. package/dist/experiment/host/cli/debug-protocol.d.mts +2 -2
  213. package/dist/experiment/host/cli/debug-protocol.d.ts +2 -2
  214. package/dist/experiment/host/cli/output-protocol.cjs +1 -1
  215. package/dist/experiment/host/cli/output-protocol.cjs.map +1 -1
  216. package/dist/experiment/host/cli/output-protocol.d.cts +2 -2
  217. package/dist/experiment/host/cli/output-protocol.d.mts +2 -2
  218. package/dist/experiment/host/cli/output-protocol.d.ts +2 -2
  219. package/dist/experiment/host/current.cjs +2 -2
  220. package/dist/experiment/host/current.cjs.map +1 -1
  221. package/dist/experiment/host/index.cjs +1 -1
  222. package/dist/experiment/host/index.cjs.map +1 -1
  223. package/dist/experiment/host/operations.cjs +21 -22
  224. package/dist/experiment/host/operations.cjs.map +1 -1
  225. package/dist/experiment/host/runtime.cjs +8 -9
  226. package/dist/experiment/host/runtime.cjs.map +1 -1
  227. package/dist/experiment/host/runtime.d.cts +3 -3
  228. package/dist/experiment/host/runtime.d.mts +3 -3
  229. package/dist/experiment/host/runtime.d.ts +3 -3
  230. package/dist/experiment/host/teardown.cjs +3 -3
  231. package/dist/experiment/host/teardown.cjs.map +1 -1
  232. package/dist/experiment/host/teardown.d.cts +3 -3
  233. package/dist/experiment/host/teardown.d.mts +3 -3
  234. package/dist/experiment/host/teardown.d.ts +3 -3
  235. package/dist/experiment/host/types.cjs.map +1 -1
  236. package/dist/experiment/host/types.d.cts +19 -19
  237. package/dist/experiment/host/types.d.mts +19 -19
  238. package/dist/experiment/host/types.d.ts +19 -19
  239. package/dist/index.cjs +3 -3
  240. package/dist/index.cjs.map +1 -1
  241. package/dist/index.d.cts +3 -3
  242. package/dist/index.d.mts +3 -3
  243. package/dist/index.d.ts +3 -3
  244. package/dist/index.js +2 -2
  245. package/dist/index.mjs +2 -2
  246. package/dist/inspection/assertions.cjs +1 -1
  247. package/dist/inspection/assertions.cjs.map +1 -1
  248. package/dist/inspection/cli/contribution.cjs +8 -7
  249. package/dist/inspection/cli/contribution.cjs.map +1 -1
  250. package/dist/inspection/facts.cjs +4 -4
  251. package/dist/inspection/facts.cjs.map +1 -1
  252. package/dist/inspection/index.cjs +1 -5
  253. package/dist/inspection/index.cjs.map +1 -1
  254. package/dist/inspection/index.d.cts +1 -2
  255. package/dist/inspection/index.d.mts +1 -2
  256. package/dist/inspection/index.d.ts +1 -2
  257. package/dist/inspection/index.js +20 -26
  258. package/dist/inspection/lifecycle.cjs +7 -0
  259. package/dist/inspection/lifecycle.cjs.map +1 -0
  260. package/dist/inspection/lifecycle.d.cts +4 -0
  261. package/dist/inspection/lifecycle.d.mts +4 -0
  262. package/dist/inspection/lifecycle.d.ts +4 -0
  263. package/dist/inspection/lifecycle.js +6 -0
  264. package/dist/inspection/lifecycle.js.map +1 -0
  265. package/dist/inspection/notes.cjs +40 -0
  266. package/dist/inspection/notes.cjs.map +1 -0
  267. package/dist/inspection/notes.d.cts +12 -0
  268. package/dist/inspection/notes.d.mts +12 -0
  269. package/dist/inspection/notes.d.ts +12 -0
  270. package/dist/inspection/notes.js +8 -0
  271. package/dist/inspection/notes.js.map +1 -0
  272. package/dist/inspection/overview.cjs +12 -15
  273. package/dist/inspection/overview.cjs.map +1 -1
  274. package/dist/inspection/overview.d.cts +8 -6
  275. package/dist/inspection/overview.d.mts +8 -6
  276. package/dist/inspection/overview.d.ts +8 -6
  277. package/dist/inspection/planned-attempt.cjs +45 -0
  278. package/dist/inspection/planned-attempt.cjs.map +1 -0
  279. package/dist/inspection/planned-attempt.d.cts +109 -0
  280. package/dist/inspection/planned-attempt.d.mts +109 -0
  281. package/dist/inspection/planned-attempt.d.ts +109 -0
  282. package/dist/inspection/planned-attempt.js +24 -0
  283. package/dist/inspection/planned-attempt.js.map +1 -0
  284. package/dist/inspection/project-result.cjs +5 -5
  285. package/dist/inspection/project-result.cjs.map +1 -1
  286. package/dist/inspection/project-result.d.cts +58 -57
  287. package/dist/inspection/project-result.d.mts +58 -57
  288. package/dist/inspection/project-result.d.ts +58 -57
  289. package/dist/inspection/project-result.js +4 -4
  290. package/dist/inspection/project.cjs +3 -3
  291. package/dist/inspection/project.cjs.map +1 -1
  292. package/dist/inspection/protocol-values.cjs +1 -1
  293. package/dist/inspection/protocol-values.cjs.map +1 -1
  294. package/dist/inspection/protocol-values.d.cts +1 -1
  295. package/dist/inspection/protocol-values.d.mts +1 -1
  296. package/dist/inspection/protocol-values.d.ts +1 -1
  297. package/dist/inspection/protocol.cjs +8 -8
  298. package/dist/inspection/protocol.cjs.map +1 -1
  299. package/dist/inspection/protocol.d.cts +237 -219
  300. package/dist/inspection/protocol.d.mts +237 -219
  301. package/dist/inspection/protocol.d.ts +237 -219
  302. package/dist/inspection/public.cjs +1 -5
  303. package/dist/inspection/public.cjs.map +1 -1
  304. package/dist/inspection/public.d.cts +1 -2
  305. package/dist/inspection/public.d.mts +1 -2
  306. package/dist/inspection/public.d.ts +1 -2
  307. package/dist/inspection/public.js +14 -20
  308. package/dist/inspection/public.mjs +166 -129
  309. package/dist/inspection/query.cjs +1 -1
  310. package/dist/inspection/query.cjs.map +1 -1
  311. package/dist/inspection/results.cjs +61 -52
  312. package/dist/inspection/results.cjs.map +1 -1
  313. package/dist/inspection/results.d.cts +157 -140
  314. package/dist/inspection/results.d.mts +157 -140
  315. package/dist/inspection/results.d.ts +157 -140
  316. package/dist/inspection/select.cjs +33 -28
  317. package/dist/inspection/select.cjs.map +1 -1
  318. package/dist/inspection/source.cjs +1 -1
  319. package/dist/inspection/source.cjs.map +1 -1
  320. package/dist/inspection/sources.cjs +2 -2
  321. package/dist/inspection/sources.cjs.map +1 -1
  322. package/dist/inspection/trace.cjs +9 -8
  323. package/dist/inspection/trace.cjs.map +1 -1
  324. package/dist/inspection/trace.d.cts +4 -4
  325. package/dist/inspection/trace.d.mts +4 -4
  326. package/dist/inspection/trace.d.ts +4 -4
  327. package/dist/loaders/index.cjs +7 -279
  328. package/dist/loaders/index.cjs.map +1 -1
  329. package/dist/loaders/index.d.cts +2 -95
  330. package/dist/loaders/index.d.mts +2 -95
  331. package/dist/loaders/index.d.ts +2 -95
  332. package/dist/loaders/index.js +10 -12
  333. package/dist/loaders/index.mjs +10 -12
  334. package/dist/loaders/runtime.cjs +283 -0
  335. package/dist/loaders/runtime.cjs.map +1 -0
  336. package/dist/loaders/runtime.d.cts +95 -0
  337. package/dist/loaders/runtime.d.mts +95 -0
  338. package/dist/loaders/runtime.d.ts +95 -0
  339. package/dist/loaders/runtime.js +16 -0
  340. package/dist/loaders/runtime.js.map +1 -0
  341. package/dist/migrations/judge-provider.md +6 -6
  342. package/dist/{model-slots.cjs → model-roles.cjs} +12 -12
  343. package/dist/{model-slots.cjs.map → model-roles.cjs.map} +1 -1
  344. package/dist/{model-slots.d.cts → model-roles.d.cts} +10 -10
  345. package/dist/{model-slots.d.mts → model-roles.d.mts} +10 -10
  346. package/dist/{model-slots.d.ts → model-roles.d.ts} +10 -10
  347. package/dist/model-roles.js +14 -0
  348. package/dist/model-roles.js.map +1 -0
  349. package/dist/o11y/adapter-usage-projection.cjs +9 -8
  350. package/dist/o11y/adapter-usage-projection.cjs.map +1 -1
  351. package/dist/o11y/adapter-usage-projection.d.cts +23 -15
  352. package/dist/o11y/adapter-usage-projection.d.mts +23 -15
  353. package/dist/o11y/adapter-usage-projection.d.ts +23 -15
  354. package/dist/o11y/cache-read.cjs +14 -14
  355. package/dist/o11y/cache-read.cjs.map +1 -1
  356. package/dist/o11y/cache-read.d.cts +5 -5
  357. package/dist/o11y/cache-read.d.mts +5 -5
  358. package/dist/o11y/cache-read.d.ts +5 -5
  359. package/dist/o11y/derive.cjs.map +1 -1
  360. package/dist/o11y/derive.d.cts +2 -2
  361. package/dist/o11y/derive.d.mts +2 -2
  362. package/dist/o11y/derive.d.ts +2 -2
  363. package/dist/o11y/eval-usage.cjs +9 -9
  364. package/dist/o11y/eval-usage.cjs.map +1 -1
  365. package/dist/o11y/eval-usage.d.cts +7 -7
  366. package/dist/o11y/eval-usage.d.mts +7 -7
  367. package/dist/o11y/eval-usage.d.ts +7 -7
  368. package/dist/o11y/parsers/bub.cjs +57 -81
  369. package/dist/o11y/parsers/bub.cjs.map +1 -1
  370. package/dist/o11y/parsers/index.cjs.map +1 -1
  371. package/dist/o11y/parsers/index.d.cts +2 -0
  372. package/dist/o11y/parsers/index.d.mts +2 -0
  373. package/dist/o11y/parsers/index.d.ts +2 -0
  374. package/dist/o11y/parsers/opencode.cjs +129 -217
  375. package/dist/o11y/parsers/opencode.cjs.map +1 -1
  376. package/dist/o11y/parsers/opencode.d.cts +2 -5
  377. package/dist/o11y/parsers/opencode.d.mts +2 -5
  378. package/dist/o11y/parsers/opencode.d.ts +2 -5
  379. package/dist/o11y/types.cjs.map +1 -1
  380. package/dist/o11y/types.d.cts +1 -1
  381. package/dist/o11y/types.d.mts +1 -1
  382. package/dist/o11y/types.d.ts +1 -1
  383. package/dist/plugin/contracts.cjs +170 -120
  384. package/dist/plugin/contracts.cjs.map +1 -1
  385. package/dist/plugin/contracts.d.cts +102 -90
  386. package/dist/plugin/contracts.d.mts +102 -90
  387. package/dist/plugin/contracts.d.ts +102 -90
  388. package/dist/plugin/contracts.js +16 -12
  389. package/dist/plugin/index.cjs.map +1 -1
  390. package/dist/plugin/index.d.cts +1 -1
  391. package/dist/plugin/index.d.mts +1 -1
  392. package/dist/plugin/index.d.ts +1 -1
  393. package/dist/plugin/link.cjs +69 -64
  394. package/dist/plugin/link.cjs.map +1 -1
  395. package/dist/plugin/link.d.cts +5 -3
  396. package/dist/plugin/link.d.mts +5 -3
  397. package/dist/plugin/link.d.ts +5 -3
  398. package/dist/plugin/link.js +12 -8
  399. package/dist/record/codec/seal-manifest.d.cts +3 -3
  400. package/dist/record/codec/seal-manifest.d.mts +3 -3
  401. package/dist/record/codec/seal-manifest.d.ts +3 -3
  402. package/dist/record/family/attempt-note/definition.cjs +12 -0
  403. package/dist/record/family/attempt-note/definition.cjs.map +1 -0
  404. package/dist/record/family/attempt-note/definition.d.cts +6 -0
  405. package/dist/record/family/attempt-note/definition.d.mts +6 -0
  406. package/dist/record/family/attempt-note/definition.d.ts +6 -0
  407. package/dist/record/family/attempt-note/definition.js +6 -0
  408. package/dist/record/family/attempt-note/definition.js.map +1 -0
  409. package/dist/record/family/attempt-note/persistence.cjs +10 -0
  410. package/dist/record/family/attempt-note/persistence.cjs.map +1 -0
  411. package/dist/record/family/attempt-note/persistence.d.cts +6 -0
  412. package/dist/record/family/attempt-note/persistence.d.mts +6 -0
  413. package/dist/record/family/attempt-note/persistence.d.ts +6 -0
  414. package/dist/record/family/attempt-note/persistence.js +6 -0
  415. package/dist/record/family/attempt-note/persistence.js.map +1 -0
  416. package/dist/record/family/attempt-note/schema.cjs +20 -0
  417. package/dist/record/family/attempt-note/schema.cjs.map +1 -0
  418. package/dist/record/family/attempt-note/schema.d.cts +21 -0
  419. package/dist/record/family/attempt-note/schema.d.mts +21 -0
  420. package/dist/record/family/attempt-note/schema.d.ts +21 -0
  421. package/dist/record/family/attempt-note/schema.js +10 -0
  422. package/dist/record/family/attempt-note/schema.js.map +1 -0
  423. package/dist/record/family/catalog.cjs +32 -29
  424. package/dist/record/family/catalog.cjs.map +1 -1
  425. package/dist/record/family/catalog.d.cts +7 -2
  426. package/dist/record/family/catalog.d.mts +7 -2
  427. package/dist/record/family/catalog.d.ts +7 -2
  428. package/dist/record/family/current.cjs +48 -45
  429. package/dist/record/family/current.cjs.map +1 -1
  430. package/dist/record/family/current.d.cts +15 -0
  431. package/dist/record/family/current.d.mts +15 -0
  432. package/dist/record/family/current.d.ts +15 -0
  433. package/dist/record/model/index.js +66 -64
  434. package/dist/record/model/run-context.cjs +9 -3
  435. package/dist/record/model/run-context.cjs.map +1 -1
  436. package/dist/record/model/run-context.d.cts +9 -2
  437. package/dist/record/model/run-context.d.mts +9 -2
  438. package/dist/record/model/run-context.d.ts +9 -2
  439. package/dist/record/model/run-context.js +8 -6
  440. package/dist/record/model/seal-manifest.d.cts +1 -1
  441. package/dist/record/model/seal-manifest.d.mts +1 -1
  442. package/dist/record/model/seal-manifest.d.ts +1 -1
  443. package/dist/run/cli/contribution.cjs +6 -32
  444. package/dist/run/cli/contribution.cjs.map +1 -1
  445. package/dist/run/host/runtime.cjs +1 -1
  446. package/dist/run/host/runtime.cjs.map +1 -1
  447. package/dist/run/storage/sqlite.cjs +7 -7
  448. package/dist/run/storage/sqlite.cjs.map +1 -1
  449. package/dist/runner/adapter-usage.cjs +5 -3
  450. package/dist/runner/adapter-usage.cjs.map +1 -1
  451. package/dist/runner/adapter-usage.d.cts +2 -2
  452. package/dist/runner/adapter-usage.d.mts +2 -2
  453. package/dist/runner/adapter-usage.d.ts +2 -2
  454. package/dist/runner/adoption.cjs +9 -12
  455. package/dist/runner/adoption.cjs.map +1 -1
  456. package/dist/runner/attempt-notes.cjs +8 -0
  457. package/dist/runner/attempt-notes.cjs.map +1 -0
  458. package/dist/runner/attempt-notes.d.cts +4 -0
  459. package/dist/runner/attempt-notes.d.mts +4 -0
  460. package/dist/runner/attempt-notes.d.ts +4 -0
  461. package/dist/runner/attempt-notes.js +8 -0
  462. package/dist/runner/attempt-notes.js.map +1 -0
  463. package/dist/runner/attempt.cjs +61 -73
  464. package/dist/runner/attempt.cjs.map +1 -1
  465. package/dist/runner/attempt.d.cts +3 -3
  466. package/dist/runner/attempt.d.mts +3 -3
  467. package/dist/runner/attempt.d.ts +3 -3
  468. package/dist/runner/command-plan.cjs +21 -26
  469. package/dist/runner/command-plan.cjs.map +1 -1
  470. package/dist/runner/command-plan.d.cts +4 -4
  471. package/dist/runner/command-plan.d.mts +4 -4
  472. package/dist/runner/command-plan.d.ts +4 -4
  473. package/dist/runner/command-plan.js +4 -4
  474. package/dist/runner/config-identity.cjs.map +1 -1
  475. package/dist/runner/config-identity.d.cts +2 -2
  476. package/dist/runner/config-identity.d.mts +2 -2
  477. package/dist/runner/config-identity.d.ts +2 -2
  478. package/dist/runner/discover.cjs +6 -6
  479. package/dist/runner/discover.cjs.map +1 -1
  480. package/dist/runner/eval-selection.cjs +2 -2
  481. package/dist/runner/eval-selection.cjs.map +1 -1
  482. package/dist/runner/eval-selection.d.cts +2 -2
  483. package/dist/runner/eval-selection.d.mts +2 -2
  484. package/dist/runner/eval-selection.d.ts +2 -2
  485. package/dist/runner/feedback/human.cjs +1 -1
  486. package/dist/runner/feedback/human.cjs.map +1 -1
  487. package/dist/runner/feedback/json.cjs +4 -2
  488. package/dist/runner/feedback/json.cjs.map +1 -1
  489. package/dist/runner/feedback/json.d.cts +1 -1
  490. package/dist/runner/feedback/json.d.mts +1 -1
  491. package/dist/runner/feedback/json.d.ts +1 -1
  492. package/dist/runner/feedback/sink.cjs +1 -1
  493. package/dist/runner/feedback/sink.cjs.map +1 -1
  494. package/dist/runner/feedback/sink.d.cts +1 -1
  495. package/dist/runner/feedback/sink.d.mts +1 -1
  496. package/dist/runner/feedback/sink.d.ts +1 -1
  497. package/dist/runner/fingerprint.cjs +1 -1
  498. package/dist/runner/fingerprint.cjs.map +1 -1
  499. package/dist/runner/project-target.cjs.map +1 -1
  500. package/dist/runner/project-target.d.cts +2 -2
  501. package/dist/runner/project-target.d.mts +2 -2
  502. package/dist/runner/project-target.d.ts +2 -2
  503. package/dist/runner/record/attachments.cjs +2 -2
  504. package/dist/runner/record/attachments.cjs.map +1 -1
  505. package/dist/runner/record/planning.cjs +8 -2
  506. package/dist/runner/record/planning.cjs.map +1 -1
  507. package/dist/runner/record.cjs +2 -0
  508. package/dist/runner/record.cjs.map +1 -1
  509. package/dist/runner/report.cjs +3 -3
  510. package/dist/runner/report.cjs.map +1 -1
  511. package/dist/runner/report.d.cts +1 -1
  512. package/dist/runner/report.d.mts +1 -1
  513. package/dist/runner/report.d.ts +1 -1
  514. package/dist/runner/reuse-plan.cjs +2 -2
  515. package/dist/runner/reuse-plan.cjs.map +1 -1
  516. package/dist/runner/run.cjs +10 -45
  517. package/dist/runner/run.cjs.map +1 -1
  518. package/dist/runner/sandbox-pool.cjs +1 -2
  519. package/dist/runner/sandbox-pool.cjs.map +1 -1
  520. package/dist/runner/setup-prefix-preparation.cjs +1 -1
  521. package/dist/runner/setup-prefix-preparation.cjs.map +1 -1
  522. package/dist/runner/teardown-registry.cjs +2 -2
  523. package/dist/runner/teardown-registry.cjs.map +1 -1
  524. package/dist/runner/teardown-registry.d.cts +1 -1
  525. package/dist/runner/teardown-registry.d.mts +1 -1
  526. package/dist/runner/teardown-registry.d.ts +1 -1
  527. package/dist/runner/types.cjs +4 -4
  528. package/dist/runner/types.cjs.map +1 -1
  529. package/dist/runner/types.d.cts +64 -93
  530. package/dist/runner/types.d.mts +64 -93
  531. package/dist/runner/types.d.ts +64 -93
  532. package/dist/runner/types.js +2 -2
  533. package/dist/sandbox/action.cjs +1 -1
  534. package/dist/sandbox/action.cjs.map +1 -1
  535. package/dist/sandbox/cli/contribution.cjs +17 -14
  536. package/dist/sandbox/cli/contribution.cjs.map +1 -1
  537. package/dist/sandbox/cli/contribution.d.cts +1 -1
  538. package/dist/sandbox/cli/contribution.d.mts +1 -1
  539. package/dist/sandbox/cli/contribution.d.ts +1 -1
  540. package/dist/sandbox/commands.cjs +1 -1
  541. package/dist/sandbox/commands.cjs.map +1 -1
  542. package/dist/sandbox/commands.d.cts +1 -1
  543. package/dist/sandbox/commands.d.mts +1 -1
  544. package/dist/sandbox/commands.d.ts +1 -1
  545. package/dist/sandbox/compose.cjs +2 -2
  546. package/dist/sandbox/compose.cjs.map +1 -1
  547. package/dist/sandbox/docker-profile/registry.cjs +5 -9
  548. package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
  549. package/dist/sandbox/docker-profile/registry.d.cts +0 -3
  550. package/dist/sandbox/docker-profile/registry.d.mts +0 -3
  551. package/dist/sandbox/docker-profile/registry.d.ts +0 -3
  552. package/dist/sandbox/docker-profile/registry.js +6 -12
  553. package/dist/sandbox/docker-profile/runtime.cjs +1 -1
  554. package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
  555. package/dist/sandbox/docker-profile/schema.cjs +12 -16
  556. package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
  557. package/dist/sandbox/docker-profile/schema.d.cts +2 -6
  558. package/dist/sandbox/docker-profile/schema.d.mts +2 -6
  559. package/dist/sandbox/docker-profile/schema.d.ts +2 -6
  560. package/dist/sandbox/docker-profile/schema.js +24 -32
  561. package/dist/sandbox/incus.cjs +2 -2
  562. package/dist/sandbox/incus.cjs.map +1 -1
  563. package/dist/sandbox/index.cjs +4 -35
  564. package/dist/sandbox/index.cjs.map +1 -1
  565. package/dist/sandbox/index.d.cts +4 -8
  566. package/dist/sandbox/index.d.mts +4 -8
  567. package/dist/sandbox/index.d.ts +4 -8
  568. package/dist/sandbox/index.js +116 -172
  569. package/dist/sandbox/index.mjs +116 -172
  570. package/dist/sandbox/layer.cjs +3 -3
  571. package/dist/sandbox/layer.cjs.map +1 -1
  572. package/dist/sandbox/link.cjs +5 -0
  573. package/dist/sandbox/link.cjs.map +1 -1
  574. package/dist/sandbox/link.d.cts +3 -0
  575. package/dist/sandbox/link.d.mts +3 -0
  576. package/dist/sandbox/link.d.ts +3 -0
  577. package/dist/sandbox/runtime.cjs +9 -4
  578. package/dist/sandbox/runtime.cjs.map +1 -1
  579. package/dist/shared/failure-class.cjs +5 -5
  580. package/dist/shared/failure-class.cjs.map +1 -1
  581. package/dist/shared/failure-class.d.cts +4 -10
  582. package/dist/shared/failure-class.d.mts +4 -10
  583. package/dist/shared/failure-class.d.ts +4 -10
  584. package/dist/shared/types.cjs.map +1 -1
  585. package/dist/shared/types.d.cts +1 -1
  586. package/dist/shared/types.d.mts +1 -1
  587. package/dist/shared/types.d.ts +1 -1
  588. package/dist/show/contribution.cjs +17 -2
  589. package/dist/show/contribution.cjs.map +1 -1
  590. package/dist/show/contribution.d.cts +14 -0
  591. package/dist/show/contribution.d.mts +14 -0
  592. package/dist/show/contribution.d.ts +14 -0
  593. package/dist/show/model.cjs +8 -5
  594. package/dist/show/model.cjs.map +1 -1
  595. package/dist/show/model.d.cts +11 -8
  596. package/dist/show/model.d.mts +11 -8
  597. package/dist/show/model.d.ts +11 -8
  598. package/dist/show/render.cjs +34 -22
  599. package/dist/show/render.cjs.map +1 -1
  600. package/dist/sources/projector.cjs +1 -1
  601. package/dist/sources/projector.cjs.map +1 -1
  602. package/dist/types.cjs +1 -1
  603. package/dist/types.cjs.map +1 -1
  604. package/dist/types.d.cts +1 -1
  605. package/dist/types.d.mts +1 -1
  606. package/dist/types.d.ts +1 -1
  607. package/dist/types.js +2 -2
  608. package/dist/view/app-dist/.vite/manifest.json +2 -2
  609. package/dist/view/app-dist/assets/{index-B3ijZRph.js → index-CxrOUvHC.js} +17 -17
  610. package/dist/view/app-dist/assets/{quality-cost-scatter-B--DfJ9s.js → quality-cost-scatter-B6Aiss7x.js} +1 -1
  611. package/dist/view/app-dist/index.html +1 -1
  612. package/dist/view/cli/contribution.cjs +1 -1
  613. package/dist/view/cli/contribution.cjs.map +1 -1
  614. package/dist/view/function-runtime.mjs +318 -121
  615. package/dist/view/http-protocol.d.cts +1 -1
  616. package/dist/view/http-protocol.d.mts +1 -1
  617. package/dist/view/http-protocol.d.ts +1 -1
  618. package/dist/view/inspection-host.cjs +2 -2
  619. package/dist/view/inspection-host.cjs.map +1 -1
  620. package/dist/view/inspection-host.d.cts +349 -331
  621. package/dist/view/inspection-host.d.mts +349 -331
  622. package/dist/view/inspection-host.d.ts +349 -331
  623. package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +6 -6
  624. package/docs-site/zh/examples/integrations/claude-sdk.mdx +5 -5
  625. package/docs-site/zh/examples/integrations/codex-sdk.mdx +4 -4
  626. package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
  627. package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
  628. package/docs-site/zh/explanation/adapter.mdx +6 -6
  629. package/docs-site/zh/explanation/assert.mdx +7 -7
  630. package/docs-site/zh/explanation/drive.mdx +4 -4
  631. package/docs-site/zh/explanation/hitl.mdx +2 -2
  632. package/docs-site/zh/explanation/judge.mdx +2 -2
  633. package/docs-site/zh/introduction.mdx +2 -2
  634. package/docs-site/zh/reference/builtin-agents.mdx +46 -49
  635. package/docs-site/zh/reference/cli.mdx +16 -14
  636. package/docs-site/zh/reference/define-agent.mdx +19 -19
  637. package/docs-site/zh/reference/define-config.mdx +7 -15
  638. package/docs-site/zh/reference/define-eval.mdx +20 -14
  639. package/docs-site/zh/reference/define-experiment.mdx +18 -39
  640. package/docs-site/zh/reference/events.mdx +1 -1
  641. package/docs-site/zh/reference/expect.mdx +21 -0
  642. package/docs-site/zh/reference/official-adapters.mdx +12 -5
  643. package/docs-site/zh/troubleshooting/debugging.mdx +2 -2
  644. package/docs-site/zh/troubleshooting/recover-after-kill.mdx +1 -1
  645. package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
  646. package/docs-site/zh/tutorials/authoring.mdx +2 -2
  647. package/docs-site/zh/tutorials/compare-runs.mdx +1 -1
  648. package/docs-site/zh/tutorials/concurrency.mdx +8 -8
  649. package/docs-site/zh/tutorials/configuration.mdx +5 -5
  650. package/docs-site/zh/tutorials/control-run-cost.mdx +19 -19
  651. package/docs-site/zh/tutorials/eval-groups.mdx +1 -1
  652. package/docs-site/zh/tutorials/evaluation-kinds.mdx +5 -5
  653. package/docs-site/zh/tutorials/experiment-services.mdx +32 -32
  654. package/docs-site/zh/tutorials/handle-execution-failures.mdx +2 -28
  655. package/docs-site/zh/tutorials/plugins.mdx +49 -143
  656. package/docs-site/zh/tutorials/sandbox-agent.mdx +1 -1
  657. package/docs-site/zh/tutorials/sandbox-reuse.mdx +7 -7
  658. package/docs-site/zh/tutorials/upgrade-0-18.mdx +1 -1
  659. package/docs-site/zh/tutorials/upgrade-0-19.mdx +121 -0
  660. package/docs-site/zh/tutorials/upgrade-0-20.mdx +12 -0
  661. package/docs-site/zh/tutorials/verify-judge.mdx +2 -2
  662. package/docs-site/zh/tutorials/viewing-results.mdx +2 -2
  663. package/docs-site/zh/tutorials/write-experiment.mdx +1 -1
  664. package/docs-site/zh/tutorials/write-send.mdx +13 -13
  665. package/package.json +1 -1
  666. package/dist/agents/effect-runtime.cjs.map +0 -1
  667. package/dist/agents/effect-runtime.d.cts +0 -29
  668. package/dist/agents/effect-runtime.d.mts +0 -29
  669. package/dist/agents/effect-runtime.d.ts +0 -29
  670. package/dist/agents/effect-runtime.js +0 -16
  671. package/dist/agents/effect-runtime.js.map +0 -1
  672. package/dist/agents/session-slot.cjs.map +0 -1
  673. package/dist/agents/session-slot.d.cts +0 -12
  674. package/dist/agents/session-slot.d.mts +0 -12
  675. package/dist/agents/session-slot.d.ts +0 -12
  676. package/dist/agents/session-slot.js +0 -6
  677. package/dist/agents/session-slot.js.map +0 -1
  678. package/dist/model-slots.js +0 -14
  679. package/dist/model-slots.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["operations.ts"],"names":[],"mappings":";;AAqQA,0BAYC;AAqCD,kCA4CC;AACD,sBAaC;AAED,oDAKC;AACD,oDAEC;AAsED,wCAwHC;AAmDD,sCA8IC;AACD,gCAEC;AACD,kCAgBC;AACD,wBASC;AACD,sCAWC;AACD,wCASC;AA5yBD,yCAAoC;AACpC,mCAAqD;AAErD,2DAAiG;AACjG,6FAAqF;AACrF,sDAAkF;AAClF,2DAAwF;AACxF,2DAAgE;AAChE,0DAA8E;AAC9E,2DAAiG;AACjG,sEAA+F;AAC/F,gEAAgE;AAChE,sDAAkG;AAClG,sEAA6E;AAE7E,gDAA+C;AAC/C,kDAA0D;AAC1D,4DAAuD;AACvD,wDAAqF;AACrF,4EAA8G;AAC9G,wDAA4D;AAC5D,4EAAmH;AACnH,oDAAiL;AACjL,4DAAyF;AACzF,yCAAiD;AACjD,uDAA0F;AAC1F,2CAAwD;AAExD,SAAS,cAAc,CAAC,SAAkC,EAAE,KAAc;IACtE,IAAI,KAAK,YAAY,8BAAmB;QACpC,OAAO,KAAK,CAAC;IACjB,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,QAAQ;QACtG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,kCAAkC,CAAC;IACzC,OAAO,IAAI,8BAAmB,CAAC;QAC3B,SAAS;QACT,IAAI;QACJ,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC;QACpC,KAAK;KACR,CAAC,CAAC;AACP,CAAC;AACD,iFAAiF;AACjF,SAAS,oBAAoB,CAAC,KAAc;IACxC,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,UAAU,KAAK,SAAS;QACxB,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;QAClD,OAAO,KAAK,CAAC,OAAO,CAAC;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAC/C,OAAO,MAAM,CAAC;QAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAC/C,OAAO,MAAM,CAAC;QACtB,CAAC;IACL,CAAC;IACD,OAAO,IAAA,mBAAS,EAAC,IAAA,sBAAY,EAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,CAAC;AACD,SAAS,sBAAsB,CAAC,KAAc;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAC3C,OAAO,SAAS,CAAC;IACrB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,0CAA0C,EAAE,CAAC;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,CAAC,IAAI,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QACrF,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI;YACJ,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;SACrD,CAAC,CAAC;IACP,CAAC;IACD,IAAI,IAAI,KAAK,gCAAgC;QACzC,OAAO,SAAS,CAAC;IACrB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI;QACJ,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,MAAM,EAAE,sBAAsB,CAAC,MAAM,EAAE,KAAK,CAAC;QAC7C,YAAY,EAAE,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC;KAC3D,CAAC,CAAC;AACP,CAAC;AACD,SAAS,uBAAuB,CAAC,KAAc;IAG3C,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK;QAClC,CAAC,CAAC,KAAK,CAAC,OAAO;QACf,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,QAAQ;YAC9F,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACvC,CAAC,CAAC,SAAS,CAAC;IACpB,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAChD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;AACrC,CAAC;AACD,SAAS,sBAAsB,CAAC,KAAc,EAAE,cAAuB;IACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;YAC3C,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;gBACd,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;oBACrB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAA8B,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC;oBACjI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,GAAG,CAAC,cAAc,IAAI,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAC,CAAC,CAAC;IACZ,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,cAAc,CAAU,SAAkC,EAAE,MAA8B;IAC/F,OAAO,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AACrF,CAAC;AAoBD,MAAM,sCAAuC,SAAQ,aAAI,CAAC,WAAW,CAAC,wCAAwC,CAQ5G;CACD;AAUD,MAAM,eAAe,GAAG,IAAI,OAAO,EAAmC,CAAC;AACvE,SAAS,WAAW,CAAI,MAAmB;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;AACtC,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAmC,EAAE,QAAyB;IACpF,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACvF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,qBAA8B;gBACtC,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;aAC9D,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7E,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,qBAA8B;YACtC,QAAQ,EAAE,KAAK,CAAC,kBAAkB;YAClC,UAAU,EAAE,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;SAC9D,CAAC,CAAC;IACP,CAAC;IACD,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC5G,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,CAAC;QAC/C,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAA,kCAAmB,EAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACjE,SAAS;QACb,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,eAAwB;YAChC,QAAQ;YACR,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACtF,UAAU,EAAE,WAAW,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3E,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,iBAA0B;YAClC,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACtF,UAAU,EAAE,WAAW,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;SAC9D,CAAC,CAAC;IACP,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AACD,SAAS,cAAc,CAAC,KAAmC,EAAE,UAEzD,EAAE;IACF,MAAM,UAAU,GAAG,CAAC,UAAkC,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3E,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,EAAE,CAAC;YACpH,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,gFAAgF,CAAC,CAAC,CAAC;QAC/H,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,IAAA,2BAAa,EAAC,KAAK,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QACnE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS;YACjC,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC,CAAC;QAC/E,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,IAAA,iCAAmB,EAAC,KAAK,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,WAAW,GAAG,KAAK,CAAC,aAAa,KAAK,SAAS;YACjD,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC;YAC9B,CAAC,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS;gBACpC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,GAAG,CAAC,IAAA,sCAAuB,EAAC,aAAa,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACpF,MAAM,UAAU,GAAG,WAAW;aACzB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACnF,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YACpB,MAAM,SAAS,GAAG,IAAA,0CAAsB,EAAC;gBACrC,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,QAAQ,EAAE,UAAU,CAAC,KAAK;gBAC1B,WAAW,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE;gBACtC,KAAK,EAAE,UAAU;aACpB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,UAAU;gBACV,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,eAAe,CAAC;gBACvD,eAAe,EAAE,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aAC3F,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;YACzB,aAAa;YACb,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC;SACtC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,WAAW;QACtB,CAAC,CAAC,eAAM,CAAC,MAAM,CAAC,IAAA,8CAA4B,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QACzF,CAAC,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC;AACD,SAAS,mBAAmB,CAAC,UAAgC,EAAE,OAA0B;IACrF,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,GAAG,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;QACxF,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI;QAChC,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QACzE,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QACtE,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,CAAC;QAClC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,UAAU,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACvD,QAAQ,EAAE,OAAO,UAAU,CAAC,KAAK,KAAK,UAAU;QAChD,WAAW,EAAE,OAAO,UAAU,CAAC,QAAQ,KAAK,UAAU;QACtD,GAAG,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;KAClG,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,OAAO,CAAC,KAAmC;IACvD,OAAO,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/F,MAAM,EAAE,QAAiB;QACzB,KAAK,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YAChE,EAAE,EAAE,UAAU,CAAC,EAAE;YACjB,GAAG,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;YACxF,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC;YACxC,cAAc,EAAE,UAAU,CAAC,cAAc;SAC5C,CAAC,CAAC,CAAC;QACJ,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,WAAW,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;KAC3I,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC;AACD,SAAS,sBAAsB,CAAC,UAAgC,EAAE,eAAkC,EAAE,MAAqD,EAAE,SAAqC,EAAE,yBAAwD;IACxP,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QACtE,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QACzE,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,IAAI,CAAC;QACxD,SAAS,EAAE,SAAS,CAAC,SAAS,IAAI,UAAU,CAAC,SAAS,IAAI,KAAK;QAC/D,iBAAiB,EAAE,IAAA,mCAAwB,EAAC,yBAAyB,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;QACpH,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,GAAG,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;QACxF,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,GAAG,IAAA,8BAAiB,EAAC,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC;QAC/D,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM;QAC7C,eAAe,EAAE,WAAW,CAAC,eAAe,CAAC;QAC7C,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,iBAAiB,EAAE,UAAU,CAAC,OAAO;QACrC,oBAAoB,EAAE,UAAU,CAAC,UAAU;QAC3C,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,eAAe,EAAE,UAAU,CAAC,eAAe;KAC9C,CAAC,CAAC;AACP,CAAC;AACD,SAAS,2BAA2B,CAAC,SAAqC;IACtE,MAAM,KAAK,GAAY,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;IACnE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,QAAQ;QAC5D,OAAO,KAAK,CAAC;IACjB,MAAM,IAAI,SAAS,CAAC,2DAA2D,CAAC,CAAC;AACrF,CAAC;AACD,SAAgB,WAAW,CAAC,KAG3B,EAAE,UAGC,EAAE;IACF,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAuE,EAAE;QACxI,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,iBAAiB,CAAC,EAAE,CAAC;YAC3G,OAAO,eAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAW,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE;YAC3E,MAAM,eAAe,GAAG,IAAA,yCAAqB,EAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACzE,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACrC,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACxD,CAAC,CAAC,CAAC,CAAC;YACJ,OAAO,eAAe,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;gBAC1E,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC;wBACK,YAAY,EAAE,UAAU,CAAC,EAAE;wBAC3B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;wBACrD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;qBAC1D,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,eAAM,CAAC,IAAI,CAAC,IAAI,sCAAsC,CAAC;gBAC1D,IAAI,EAAE,kCAAkC;gBACxC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,sCAAsC;oBACjH,SAAS,KAAK,CAAC,WAAW,CAAC,MAAM,MAAM,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBACvE,UAAU,KAAK,CAAC,YAAY,CAAC,MAAM,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;oBAC1E,uGAAuG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvH,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;aACrE,CAAC,CAAC,CAAC;QACR,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;QACxC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;QACzE,OAAO,eAAM,CAAC,OAAO,CAAC;YAClB,MAAM,EAAE,OAAO;YACf,QAAQ;YACR,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,EAAE,CAAC,sBAAsB,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,yBAAyB,CAAC,CAAC,CAAC;SAClL,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAgB,KAAK,CAAC,KAAiC;IACnD,OAAO,cAAc,CAAC,OAAO,EAAE,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAA,uCAAgB,EAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,QAAiB;YACzB,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAa,CAAC,CAAC;YACzE,OAAO,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YAClF,SAAS,EAAE,KAAK,CAAC,MAAM;SAC1B,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,+EAA+E;AAC/E,SAAgB,oBAAoB,CAAC,KAAgD;IACjF,OAAO,cAAc,CAAC,wBAAwB,EAAE,IAAA,yBAAY,EAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE;QAC1F,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,KAAK,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC;KAC5F,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAgB,oBAAoB,CAAC,KAAgD;IACjF,OAAO,cAAc,CAAC,wBAAwB,EAAE,IAAA,wBAAW,EAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC5H,CAAC;AACD,SAAS,UAAU,CAAC,KAA0C;IAC1D,yEAAyE;IACzE,qEAAqE;IACrE,oDAAoD;IACpD,OAAO,IAAA,wBAAc,EAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;AAC3D,CAAC;AACD,SAAS,YAAY,CAAC,IAA4B;IAC9C,OAAO,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/F,CAAC;AACD,SAAS,YAAY,CAAC,KAAc;IAChC,IAAI,CAAC;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAA4B,CAAC,CAAC;IACpF,CAAC;IACD,MAAM,CAAC;QACH,OAAO,SAAS,CAAC;IACrB,CAAC;AACL,CAAC;AACD,SAAS,UAAU,CAAC,KAA8B;IAC9C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACpB,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAChD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AACD,SAAS,OAAO,CAAC,KAAwC,EAAE,SAAoE,EAAE,WAA8B,EAAE,UAG/J;IACE,MAAM,SAAS,GAA4B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC1D,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;YACrD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;YAClG,OAAO,EAAE,IAAI,CAAC,OAAO;SACxB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,KAAK,EAAE,OAAgB;gBACvB,MAAM;gBACN,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;oBAClB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;oBAChC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;oBACrC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM;oBACvC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK;iBAC/C,CAAC;gBACF,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,KAAc;YACrB,MAAM;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACzF,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,gBAAyB,EAAE,OAAO,EAAE,CAAU,EAAE,CAAC;QAC/E,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC;QAC7B,SAAS,EAAE,WAAW,CAAC,SAAS,CAAC;QACjC,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC;KACxC,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,cAAc,CAAC,KAA0C;IACrE,OAAO,cAAc,CAAC,iBAAiB,EAAE,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,eAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACtB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,GAAG,KAAK,CAAC,MAAM;YACf,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS;gBACpC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;SACpD,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAA,kCAAiB,EAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,EAAE;YAC9F,WAAW,EAAE,MAAM,CAAC,YAAY;YAChC,GAAG,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;SACzF,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,SAAS,CAAC,cAAc;eACxC,MAAM,CAAC,cAAc;eACrB,IAAA,6DAAsC,EAAC,CAAC,GAAG,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACvF,MAAM,mBAAmB,GAAG,SAAS,CAAC,mBAAmB;eAClD,MAAM,CAAC,mBAAmB;eAC1B,CAAC,CAAC;QACT,MAAM,yBAAyB,GAAG,SAAS,CAAC,yBAAyB;eAC9D,MAAM,CAAC,yBAAyB;eAChC,CAAC,CAAC;QACT,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,kDAAkD,cAAc,GAAG,CAAC,CAAC,CAAC;QAC9G,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,IAAI,mBAAmB,IAAI,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,uDAAuD,mBAAmB,GAAG,CAAC,CAAC,CAAC;QACxH,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,yBAAyB,CAAC,IAAI,yBAAyB,IAAI,CAAC,EAAE,CAAC;YACjF,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,6DAA6D,yBAAyB,GAAG,CAAC,CAAC,CAAC;QACpI,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QACnF,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC7G,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS;YAC5J,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,cAAc,CAAU,CAAC;YACnD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACZ,MAAM,KAAK,GAAkC,MAAM,CAAC,MAAM,CAAC;YACvD,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;YACjC,KAAK,EAAE,aAAa,CAAC,IAAI;YACzB,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;YACpC,aAAa;YACb,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClE,cAAc;YACd,mBAAmB;YACnB,yBAAyB;YACzB,qBAAqB;SACxB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,IAAA,oCAAwB,EAAC;YAC1C,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;YAC9B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;YACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;YACvD,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;YAC/C,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;YACpE,GAAG,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC;SACzF,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,cAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7F,MAAM,OAAO,GAAG,gBAAgB,KAAK,SAAS;YAC1C,CAAC,CAAC,KAAK,CAAC,CAAC,eAAM,CAAC,MAAM,CAAC,IAAA,yCAA6B,EAAC;gBACjD,UAAU,EAAE,IAAI,CAAC,OAAO;gBACxB,SAAS,EAAE,gBAAgB;gBAC3B,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;gBAC9B,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK;gBACL,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;oBACvD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;oBACzC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;wBAChD,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;wBAChD,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAU;qBAC5C,CAAC,CAAC,CAAC;oBACJ,MAAM,mBAAmB,GAAG,IAAA,yBAAe,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,YAAY,CAAC;oBACxE,IAAI,mBAAmB,KAAK,SAAS;wBACjC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;oBACxE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,4BAAkB,EAAC,mBAAmB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;oBACrS,OAAO,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,+CAA2B,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,KAAK,SAAS;wBAC5N,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE;oCACP,EAAE,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE;oCAC3B,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;iCAC7D,CAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC;aACL,CAAC,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAChB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,CAAiC,CAAC;QAC/D,eAAe,CAAC,GAAG,CAAC,IAAI,EAAE;YACtB,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;YAC9B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM;YACN,UAAU,EAAE,IAAI,CAAC,OAAO;YACxB,gBAAgB,EAAE,IAAA,mBAAO,EAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,gBAAgB,IAAI,WAAW,CAAC;YAC3E,SAAS;YACT,KAAK;YACL,QAAQ,EAAE,KAAK;SAClB,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAmC,CAAC;QACpE,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC;YACpD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC/C,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,KAAK,KAAK,SAAS;oBACnB,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;YAC3D,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,OAAgB;YACxB,IAAI;YACJ,KAAK;YACL,aAAa,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,YAAa,CAAC,CAAC;YACzE,OAAO,EAAE,WAAW,CAAC,aAAa,CAAC;YACnC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;YACnF,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;SACrD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,qBAAqB,CAAC,QAAkC,EAAE,OAAmC,EAAE,iBAAgC;IACpI,MAAM,OAAO,GAAG,CAAsB,MAAgD,EAAE,GAAG,IAAO,EAAQ,EAAE;QACxG,IAAI,CAAC,iBAAiB,EAAE,IAAI,QAAQ,KAAK,SAAS;YAC9C,OAAO;QACX,MAAM,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,OAAO;QACH,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAC5E,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAC9E,WAAW,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACxD,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QACpF,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QACxE,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QACxF,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAClE,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;YACtB,OAAO,EAAE,iBAAiB,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YAClE,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;QACD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAC1E,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAChB,OAAO,EAAE,iBAAiB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;YAC5D,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1D,CAAC;QACD,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAChF,kBAAkB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;QAC9F,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YACjB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB;gBAC/B,KAAK,CAAC,IAAI,KAAK,eAAe;gBAC9B,KAAK,CAAC,IAAI,KAAK,kBAAkB;gBACjC,KAAK,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;gBACtC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACtC,CAAC;YACD,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;KACJ,CAAC;AACN,CAAC;AACD,SAAS,SAAS,CAAC,OAA0B;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;QAC1E,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC/F,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAClG,GAAG,CAAC,OAAO,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACjG,aAAa,EAAE,OAAO,CAAC,aAAa;KACvC,CAAC,CAAC;AACP,CAAC;AACD,SAAgB,aAAa,CAAC,KAAyC;IACnE,OAAO,eAAM,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,EAAE,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtE,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC,CAAC;QACpH,CAAC;QACD,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;QACtB,IAAI,gBAA+C,CAAC;QACpD,MAAM,SAAS,GAAG;YACd,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAClC,QAAQ,EAAE,IAAA,eAAK,EAAC,KAAK,CAAC,SAAS,CAAC;oBAChC,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,IAAI;oBACd,MAAM,EAAE,KAAK,CAAC,SAAS;iBAC1B,CAAC,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACxD,QAAQ;gBACR,IAAI,EAAE,mBAAmB,KAAK,EAAE;gBAChC,QAAQ,EAAE,KAAK;aAClB,CAAC,CAAC;YACH;gBACI,IAAI,EAAE,yBAAyB;gBAC/B,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,EAAE,oBAAoB,CAAC,OAA0B,IAAI,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE;aACjG;SACJ,CAAC;QACF,4EAA4E;QAC5E,0EAA0E;QAC1E,+DAA+D;QAC/D,MAAM,mBAAmB,GAAG,IAAA,yBAAe,EAAC,KAAK,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC;QAC5E,IAAI,mBAAmB,KAAK,SAAS;YACjC,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;QACxE,MAAM,oBAAoB,GAAG,KAAK,CAAC,CAAC,gDAAoB,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;QAC9E,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,uEAAuE;QACvE,0EAA0E;QAC1E,gFAAgF;QAChF,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,oCAAoC;QACpC,KAAK,CAAC,CAAC,eAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACxH,KAAK,CAAC,CAAC,eAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,aAAa;YAC1C,CAAC,CAAC,eAAM,CAAC,IAAI;YACb,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,KAAK,CAAC,CAAC,eAAM,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,eAAe,IAAI,gBAAgB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YACjG,CAAC,CAAC,eAAM,CAAC,IAAI;YACb,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;gBAChB,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAS,CAAC,WAAW,CAAC,WAAW,EAAE;gBACpD,KAAK,EAAE,GAAG,EAAE,CAAC,SAAS;aACzB,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC;QAC7C,MAAM,IAAI,GAAG,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,iBAAiB,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAA,8BAAoB,EAAC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAA,iBAAQ,EAAC;YAC1G,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,SAAS;YACT,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc;YAC1C,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,mBAAmB;YACpD,yBAAyB,EAAE,KAAK,CAAC,KAAK,CAAC,yBAAyB;YAChE,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;YAClG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAChF,OAAO;YACP,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;YAC/D,wBAAwB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpD,IAAI,QAAQ,KAAK,SAAS;oBACtB,OAAO;gBACX,QAAQ,CAAC,KAAK,CAAC;oBACX,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;wBACjB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;wBACxB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc;wBACnC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa;wBACxC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc;wBAC1C,MAAM,EAAE,OAAO,CAAC,MAAM;qBACzB,CAAC;oBACF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,KAAK,CAAC;wBAC3D,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;oBACnE,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;wBACnC,CAAC,CAAC,EAAE;wBACJ,CAAC,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;iBACpD,CAAC,CAAC;gBACH,eAAe,GAAG,IAAI,CAAC;YAC3B,CAAC,CAAC;SACL,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,gBAAgB,CAAC;QACjC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,eAAe,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACnG,CAAC;QACD,MAAM,UAAU,GAAG,QAAQ,KAAK,SAAS;YACrC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAA,8CAA4B,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnD,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACjB,MAAM,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,WAAW;gBAC7D,CAAC,CAAC,UAAU;gBACZ,CAAC,CAAC,OAAO,CAAC,UAAU,KAAK,aAAa;oBAClC,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,YAAY,CAAC;YACvB,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;YACnD,OAAO;YACP,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;SACrF,CAAC,CAAC;QACH,aAAa,GAAG,IAAI,CAAC;QACrB,IAAI,QAAQ,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YACrD,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;gBACrB,GAAG,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;gBAC5D,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;aAC1B,CAAC,CAAC;YACH,gBAAgB,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,MAAM,WAAW,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,yCAAuB,EAAC,OAAO,CAAC,CAAC;QAC5F,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,UAAmB;YAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACnB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,aAAa,EAAE,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC;gBACjD,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;gBAC5C,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;gBAClF,UAAU,EAAE,OAAO,CAAC,UAAU;aACjC,CAAC;YACF,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC;YAC3B,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAChC,UAAU;gBACV,QAAQ,EAAE,IAAA,yBAAe,EAAC;oBACtB,GAAG,OAAO;oBACV,MAAM,EAAE,WAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,WAAY,CAAC,OAAO;iBAChC,EAAE,UAAU,CAAC;aACjB,CAAC;SACL,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,SAAgB,UAAU,CAAC,KAAkC;IACzD,OAAO,cAAc,CAAC,aAAa,EAAE,IAAA,2CAAoB,EAAC,KAAK,CAAC,CAAC,CAAC;AACtE,CAAC;AACD,SAAgB,WAAW,CAAC,KAAkC;IAC1D,OAAO,cAAc,CAAC,cAAc,EAAE,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACtD,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,MAAM,CAAC,IAAA,uCAAgB,EAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,YAAY,4CAAqB,CAAC;gBACnD,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;YAClC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,UAAmB,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7E,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,OAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,OAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC5G,CAAC;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAe,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY;YAC3E,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK;YACtF,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GACnG,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAgB,MAAM,CAAC,KAAkC;IACrD,OAAO,cAAc,CAAC,QAAQ,EAAE,IAAA,0BAAc,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACpI,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;KACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC;AACD,SAAgB,aAAa,CAAC,KAAqC;IAC/D,OAAO,cAAc,CAAC,QAAQ,EAAE,IAAA,yBAAa,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACzF,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5D,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,WAAW,EAAE,MAAM,CAAC,WAAW;SAClC,CAAC,CAAC,CAAC;KACP,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC;AACD,SAAgB,cAAc,CAAC,KAAqC;IAChE,OAAO,cAAc,CAAC,QAAQ,EAAE,IAAA,qBAAS,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/H,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;KACnC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACZ,CAAC","sourcesContent":["import type { ExperimentHostRequirements } from \"./requirements.ts\";\nimport { resolve } from \"node:path\";\nimport { Clock, Data, Effect, Result } from \"effect\";\nimport { recordHost } from \"../../record/host/index.ts\";\nimport { makeRecordRoot, recordRootPaths, type RecordRoot } from \"../../record/platform/root.ts\";\nimport { ProjectStateDatabase } from \"../../record/sqlite/project-state-database.ts\";\nimport { acceptLocators, acceptRun, planAcceptRun } from \"../../runner/accept.ts\";\nimport { activateFeedbackSink, type FeedbackSink } from \"../../runner/feedback/sink.ts\";\nimport { computeExitCode } from \"../../runner/feedback/json.ts\";\nimport { discoverEvals, discoverExperiments } from \"../../runner/discover.ts\";\nimport { acquireFreshImportGeneration, type FreshImportGeneration } from \"../../fresh-import.ts\";\nimport { resolveExperimentEvals, splitByEvaluationKind } from \"../../runner/eval-selection.ts\";\nimport { planProjectTarget } from \"../../runner/fingerprint.ts\";\nimport { prepareRunnerRecordReuse, withRunnerCurrentReusePreview, } from \"../../runner/record.ts\";\nimport { projectCurrentReuseReadback } from \"../../runner/reuse-readback.ts\";\nimport type { ExecutionReusePlanSlot } from \"../../runner/reuse-plan.ts\";\nimport { runEvals } from \"../../runner/run.ts\";\nimport { readCaseLockEffect } from \"../../runner/lock.ts\";\nimport { JUnit } from \"../../runner/reporters/json.ts\";\nimport { listSessions, showSession, SessionTracker, } from \"../../runner/session.ts\";\nimport { linkRunSandboxes, recommendedConcurrencyForPreparedPairs, } from \"../../runner/sandbox-selection.ts\";\nimport { resolveRunTimeout } from \"../../runner/timeout.ts\";\nimport { ExperimentRenameError, planExperimentRename, renameExperiment, } from \"../../runner/rename-experiment.ts\";\nimport { resolveSandboxSetupCache, type AgentRun, type DiscoveredEval, type DiscoveredExperiment, type InvocationSummary, type SandboxSetupCache, } from \"../../runner/types.ts\";\nimport { evalPrefixPredicate, matchExperimentSelector } from \"../../shared/aggregate.ts\";\nimport { ExperimentHostError } from \"./types.ts\";\nimport { assembleInvocationCompletion, foldInvocationEvalStats } from \"./presentation.ts\";\nimport { firstLine, formatThrown } from \"../../util.ts\";\nimport type { ExperimentHostAcceptRequest, ExperimentHostAcceptRunPlan, ExperimentHostAcceptRunRequest, ExperimentHostAcceptedAttempt, ExperimentHostCatalog, ExperimentHostCheckRequest, ExperimentHostCheckResult, ExperimentHostDryComparison, ExperimentHostDryPlan, ExperimentHostDrySlot, ExperimentHostOperation, ExperimentHostExperimentSummary, ExperimentHostInvocationPlan, ExperimentHostInvocationPlanRequest, ExperimentHostInvocationPlanResult, ExperimentHostInvocationResult, ExperimentHostInvocationRunRequest, ExperimentHostInvocationShape, ExperimentHostInvocationSummary, ExperimentHostJsonValue, ExperimentHostInvocationStatusList, ExperimentHostInvocationStatusListRequest, ExperimentHostInvocationStatusShow, ExperimentHostInvocationStatusShowRequest, ExperimentHostRenamePlan, ExperimentHostRenameRequest, ExperimentHostRenameResult, ExperimentHostRunOverrides, ExperimentHostSelectionInput, ExperimentHostSelectionProblem, } from \"./types.ts\";\nfunction operationError(operation: ExperimentHostOperation, cause: unknown): ExperimentHostError {\n if (cause instanceof ExperimentHostError)\n return cause;\n const code = typeof cause === \"object\" && cause !== null && typeof Reflect.get(cause, \"code\") === \"string\"\n ? String(Reflect.get(cause, \"code\"))\n : \"experiment-host-operation-failed\";\n return new ExperimentHostError({\n operation,\n code,\n message: closedFailureMessage(cause),\n cause,\n });\n}\n/** Preserve one actionable message while closing private Runner error shapes. */\nfunction closedFailureMessage(cause: unknown): string {\n const diagnostic = closedRecordDiagnostic(cause);\n if (diagnostic !== undefined)\n return JSON.stringify(diagnostic);\n if (cause instanceof Error && cause.message.length > 0)\n return cause.message;\n if (typeof cause === \"object\" && cause !== null) {\n const direct = Reflect.get(cause, \"message\");\n if (typeof direct === \"string\" && direct.length > 0)\n return direct;\n const issue = Reflect.get(cause, \"issue\");\n if (typeof issue === \"object\" && issue !== null) {\n const nested = Reflect.get(issue, \"message\");\n if (typeof nested === \"string\" && nested.length > 0)\n return nested;\n }\n }\n return firstLine(formatThrown(cause));\n}\nfunction closedRecordDiagnostic(cause: unknown): unknown | undefined {\n if (typeof cause !== \"object\" || cause === null)\n return undefined;\n const code = Reflect.get(cause, \"code\");\n if (code === \"runner-record-attempt-publication-failed\") {\n const locator = Reflect.get(cause, \"locator\");\n const rawCause = Reflect.get(cause, \"cause\");\n const nested = closedRecordDiagnostic(rawCause) ?? closedDiagnosticMessage(rawCause);\n return Object.freeze({\n code,\n ...(typeof locator === \"string\" ? { locator } : {}),\n ...(nested === undefined ? {} : { cause: nested }),\n });\n }\n if (code !== \"record-attachment-encode-error\")\n return undefined;\n const family = Reflect.get(cause, \"family\");\n const issues = Reflect.get(cause, \"issues\");\n const schemaIssues = Reflect.get(cause, \"schemaIssues\");\n return Object.freeze({\n code,\n ...(typeof family === \"string\" ? { family } : {}),\n issues: closedDiagnosticIssues(issues, false),\n schemaIssues: closedDiagnosticIssues(schemaIssues, true),\n });\n}\nfunction closedDiagnosticMessage(cause: unknown): Readonly<{\n message: string;\n}> | undefined {\n const message = cause instanceof Error\n ? cause.message\n : typeof cause === \"object\" && cause !== null && typeof Reflect.get(cause, \"message\") === \"string\"\n ? String(Reflect.get(cause, \"message\"))\n : undefined;\n return message === undefined || message.length === 0\n ? undefined\n : Object.freeze({ message });\n}\nfunction closedDiagnosticIssues(value: unknown, includeMessage: boolean): readonly unknown[] {\n if (!Array.isArray(value))\n return Object.freeze([]);\n return Object.freeze(value.flatMap((entry) => {\n if (typeof entry !== \"object\" || entry === null)\n return [];\n const path = Reflect.get(entry, \"path\");\n const code = Reflect.get(entry, \"code\");\n const message = Reflect.get(entry, \"message\");\n return [Object.freeze({\n ...(typeof code === \"string\" ? { code } : {}),\n path: Array.isArray(path)\n ? Object.freeze(path.filter((segment): segment is string | number => typeof segment === \"string\" || typeof segment === \"number\"))\n : Object.freeze([]),\n ...(includeMessage && typeof message === \"string\" ? { message } : {}),\n })];\n }));\n}\nfunction closeOperation<A, E, R>(operation: ExperimentHostOperation, effect: Effect.Effect<A, E, R>): Effect.Effect<A, ExperimentHostError, R> {\n return effect.pipe(Effect.mapError((cause) => operationError(operation, cause)));\n}\ninterface ClosedSelection {\n readonly evals: readonly DiscoveredEval[];\n readonly experimentIds: readonly string[];\n readonly selections: readonly {\n readonly experiment: DiscoveredExperiment;\n readonly selectedEvalIds: readonly string[];\n readonly selectorEvalIds: readonly string[];\n }[];\n}\ninterface PreparedInvocationState {\n readonly evals: readonly DiscoveredEval[];\n readonly runs: readonly AgentRun[];\n readonly config: ExperimentHostInvocationPlanRequest[\"config\"];\n readonly recordRoot: RecordRoot;\n readonly coordinationRoot: string;\n readonly overrides: ExperimentHostRunOverrides;\n readonly shape: ExperimentHostInvocationShape;\n consumed: boolean;\n}\nclass ExperimentEvaluationKindAdmissionError extends Data.TaggedError(\"ExperimentEvaluationKindAdmissionError\")<{\n readonly code: \"experiment-evaluation-kind-mixed\";\n readonly message: string;\n readonly issues: readonly {\n readonly experimentId: string;\n readonly passEvalIds: readonly string[];\n readonly scoreEvalIds: readonly string[];\n }[];\n}> {\n}\ntype PreparedRuns = {\n readonly status: \"problem\";\n readonly selected: ClosedSelection;\n readonly problem: ExperimentHostSelectionProblem;\n} | {\n readonly status: \"ready\";\n readonly selected: ClosedSelection;\n readonly runs: readonly AgentRun[];\n};\nconst invocationPlans = new WeakMap<object, PreparedInvocationState>();\nfunction freezeArray<A>(values: Iterable<A>): readonly A[] {\n return Object.freeze([...values]);\n}\nfunction selectionProblem(input: ExperimentHostSelectionInput, selected: ClosedSelection): ExperimentHostSelectionProblem | undefined {\n if (input.experimentIds !== undefined) {\n const missing = input.experimentIds.find((id) => !selected.experimentIds.includes(id));\n if (missing !== undefined) {\n return Object.freeze({\n status: \"experiment-no-match\" as const,\n selector: missing,\n candidates: freezeArray([...selected.experimentIds].sort()),\n });\n }\n }\n if (input.experimentSelector !== undefined && selected.selections.length === 0) {\n return Object.freeze({\n status: \"experiment-no-match\" as const,\n selector: input.experimentSelector,\n candidates: freezeArray([...selected.experimentIds].sort()),\n });\n }\n const selectorEvalIds = freezeArray(new Set(selected.selections.flatMap((entry) => entry.selectorEvalIds)));\n for (const selector of input.evalSelectors ?? []) {\n if (selectorEvalIds.some((id) => evalPrefixPredicate([selector])(id)))\n continue;\n return Object.freeze({\n status: \"eval-no-match\" as const,\n selector,\n experimentIds: freezeArray(selected.selections.map(({ experiment }) => experiment.id)),\n candidates: freezeArray([...selectorEvalIds].sort()),\n });\n }\n if (selected.selections.every((entry) => entry.selectedEvalIds.length === 0)) {\n return Object.freeze({\n status: \"empty-selection\" as const,\n experimentIds: freezeArray(selected.selections.map(({ experiment }) => experiment.id)),\n candidates: freezeArray([...selected.experimentIds].sort()),\n });\n }\n return undefined;\n}\nfunction closeSelection(input: ExperimentHostSelectionInput, options: {\n readonly freshImport?: boolean;\n} = {}): Effect.Effect<ClosedSelection, unknown> {\n const selectWith = (generation?: FreshImportGeneration) => Effect.gen(function* () {\n if (input.experimentIds !== undefined && (input.experimentIds.length === 0 || input.experimentSelector !== undefined)) {\n return yield* Effect.fail(new TypeError(\"experimentIds must be non-empty and cannot be combined with experimentSelector\"));\n }\n const discovered = yield* discoverEvals(input.cwd, { generation });\n const evals = input.tag === undefined\n ? discovered\n : discovered.filter((definition) => definition.tags?.includes(input.tag!));\n const experiments = yield* discoverExperiments(input.cwd, { generation });\n const experimentIds = freezeArray(experiments.map((experiment) => experiment.id));\n const selectedIds = input.experimentIds !== undefined\n ? new Set(input.experimentIds)\n : input.experimentSelector === undefined\n ? undefined\n : new Set(matchExperimentSelector(experimentIds, input.experimentSelector));\n const selections = experiments\n .filter((experiment) => selectedIds === undefined || selectedIds.has(experiment.id))\n .map((experiment) => {\n const selection = resolveExperimentEvals({\n experimentId: experiment.id,\n models: experiment.models,\n tag: input.tag,\n selector: experiment.evals,\n cliPatterns: input.evalSelectors ?? [],\n evals: discovered,\n });\n return Object.freeze({\n experiment,\n selectedEvalIds: freezeArray(selection.selectedEvalIds),\n selectorEvalIds: freezeArray(selection.selectorEvals.map((definition) => definition.id)),\n });\n });\n return Object.freeze({\n evals: freezeArray(evals),\n experimentIds,\n selections: freezeArray(selections),\n });\n });\n return options.freshImport\n ? Effect.scoped(acquireFreshImportGeneration(input.cwd).pipe(Effect.flatMap(selectWith)))\n : selectWith();\n}\nfunction summaryOfExperiment(experiment: DiscoveredExperiment, evalIds: readonly string[]): ExperimentHostExperimentSummary {\n return Object.freeze({\n id: experiment.id,\n ...(experiment.description === undefined ? {} : { description: experiment.description }),\n adapter: experiment.adapter.name,\n ...(experiment.models === undefined ? {} : { models: experiment.models }),\n ...(experiment.model === undefined ? {} : { model: experiment.model }),\n attempts: experiment.attempts ?? 1,\n evalIds: freezeArray(evalIds),\n labels: Object.freeze({ ...(experiment.labels ?? {}) }),\n hasSetup: typeof experiment.setup === \"function\",\n hasTeardown: typeof experiment.teardown === \"function\",\n ...(experiment.sharedState === undefined ? {} : { sharedStateKey: experiment.sharedState.key }),\n });\n}\nexport function catalog(input: ExperimentHostSelectionInput): Effect.Effect<ExperimentHostCatalog, ExperimentHostError> {\n return closeOperation(\"catalog\", closeSelection(input).pipe(Effect.map((selected) => Object.freeze({\n status: \"listed\" as const,\n evals: freezeArray(selected.evals.map((definition) => Object.freeze({\n id: definition.id,\n ...(definition.description === undefined ? {} : { description: definition.description }),\n tags: freezeArray(definition.tags ?? []),\n evaluationKind: definition.evaluationKind,\n }))),\n experimentIds: selected.experimentIds,\n experiments: freezeArray(selected.selections.map(({ experiment, selectedEvalIds }) => summaryOfExperiment(experiment, selectedEvalIds))),\n }))));\n}\nfunction agentRunFromExperiment(experiment: DiscoveredExperiment, selectedEvalIds: readonly string[], config: ExperimentHostInvocationPlanRequest[\"config\"], overrides: ExperimentHostRunOverrides, sandboxSetupCacheOverride: SandboxSetupCache | undefined): AgentRun {\n return Object.freeze({\n adapter: experiment.adapter,\n ...(experiment.agent === undefined ? {} : { agent: experiment.agent }),\n ...(experiment.models === undefined ? {} : { models: experiment.models }),\n model: experiment.model,\n reasoningEffort: experiment.reasoningEffort,\n flags: experiment.flags ?? {},\n plugins: experiment.plugins,\n attempts: overrides.attempts ?? experiment.attempts ?? 1,\n earlyExit: overrides.earlyExit ?? experiment.earlyExit ?? false,\n sandboxSetupCache: resolveSandboxSetupCache(sandboxSetupCacheOverride, experiment.sandboxCache, config.sandboxCache),\n sandbox: experiment.sandbox,\n sandboxReuse: experiment.sandboxReuse,\n ...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),\n judgeRuntime: experiment.judgeRuntime,\n ...resolveRunTimeout(overrides.timeoutMs, experiment.timeoutMs),\n budget: overrides.budget ?? experiment.budget,\n selectedEvalIds: freezeArray(selectedEvalIds),\n experimentId: experiment.id,\n experimentBaseDir: experiment.baseDir,\n experimentSourcePath: experiment.sourcePath,\n description: experiment.description,\n labels: experiment.labels,\n maxConcurrency: experiment.maxConcurrency,\n setup: experiment.setup,\n teardown: experiment.teardown,\n classifyFailure: experiment.classifyFailure,\n });\n}\nfunction sandboxSetupCacheOverrideOf(overrides: ExperimentHostRunOverrides): SandboxSetupCache | undefined {\n const value: unknown = Reflect.get(overrides, \"sandboxSetupCache\");\n if (value === undefined || value === \"use\" || value === \"bypass\")\n return value;\n throw new TypeError(\"sandboxSetupCache override must be \\\"use\\\" or \\\"bypass\\\".\");\n}\nexport function prepareRuns(input: ExperimentHostSelectionInput & {\n readonly config: ExperimentHostInvocationPlanRequest[\"config\"];\n readonly overrides?: ExperimentHostRunOverrides;\n}, options: {\n readonly allowEmptySelection?: boolean;\n readonly freshImport?: boolean;\n} = {}): Effect.Effect<PreparedRuns, unknown> {\n return closeSelection(input, options).pipe(Effect.flatMap((selected): Effect.Effect<PreparedRuns, ExperimentEvaluationKindAdmissionError> => {\n const problem = selectionProblem(input, selected);\n if (problem !== undefined && !(options.allowEmptySelection === true && problem.status === \"empty-selection\")) {\n return Effect.succeed({ status: \"problem\", selected, problem } as const);\n }\n const evalsById = new Map(selected.evals.map((definition) => [definition.id, definition]));\n const issues = selected.selections.flatMap(({ experiment, selectedEvalIds }) => {\n const evaluationKinds = splitByEvaluationKind(selectedEvalIds.flatMap((id) => {\n const definition = evalsById.get(id);\n return definition === undefined ? [] : [definition];\n }));\n return evaluationKinds.pass.length === 0 || evaluationKinds.score.length === 0\n ? []\n : [{\n experimentId: experiment.id,\n passEvalIds: Object.freeze([...evaluationKinds.pass]),\n scoreEvalIds: Object.freeze([...evaluationKinds.score]),\n }];\n });\n if (issues.length > 0) {\n return Effect.fail(new ExperimentEvaluationKindAdmissionError({\n code: \"experiment-evaluation-kind-mixed\",\n message: issues.map((issue) => `Experiment ${JSON.stringify(issue.experimentId)} selects both pass and score Evals. ` +\n `pass (${issue.passEvalIds.length}): ${issue.passEvalIds.join(\", \")}; ` +\n `score (${issue.scoreEvalIds.length}): ${issue.scoreEvalIds.join(\", \")}. ` +\n \"Split the Experiment into one pass Experiment and one score Experiment, or narrow its Eval selection.\").join(\"\\n\"),\n issues: Object.freeze(issues.map((issue) => Object.freeze(issue))),\n }));\n }\n const overrides = input.overrides ?? {};\n const sandboxSetupCacheOverride = sandboxSetupCacheOverrideOf(overrides);\n return Effect.succeed({\n status: \"ready\",\n selected,\n runs: freezeArray(selected.selections.map(({ experiment, selectedEvalIds }) => agentRunFromExperiment(experiment, selectedEvalIds, input.config, overrides, sandboxSetupCacheOverride))),\n } as const);\n }));\n}\nexport function check(input: ExperimentHostCheckRequest): Effect.Effect<ExperimentHostCheckResult, ExperimentHostError> {\n return closeOperation(\"check\", Effect.gen(function* () {\n const prepared = yield* prepareRuns(input);\n if (prepared.status === \"problem\")\n return prepared.problem;\n const pairs = yield* linkRunSandboxes(prepared.selected.evals, prepared.runs);\n return Object.freeze({\n status: \"linked\" as const,\n experimentIds: freezeArray(prepared.runs.map((run) => run.experimentId!)),\n evalIds: freezeArray(new Set(prepared.runs.flatMap((run) => run.selectedEvalIds))),\n pairCount: pairs.length,\n });\n }));\n}\n/** Session data is intentionally presented as a closed, transient document. */\nexport function listInvocationStatus(input: ExperimentHostInvocationStatusListRequest): Effect.Effect<ExperimentHostInvocationStatusList, ExperimentHostError, ProjectStateDatabase> {\n return closeOperation(\"invocation-status-list\", listSessions(resolve(input.cwd, \".niceeval\"), {\n ...(input.all === true ? { all: true } : {}),\n ...(input.experimentSelector === undefined ? {} : { selector: input.experimentSelector }),\n }));\n}\nexport function showInvocationStatus(input: ExperimentHostInvocationStatusShowRequest): Effect.Effect<ExperimentHostInvocationStatusShow, ExperimentHostError, ProjectStateDatabase> {\n return closeOperation(\"invocation-status-show\", showSession(resolve(input.cwd, \".niceeval\"), input.invocationSelector));\n}\nfunction recordRoot(input: ExperimentHostInvocationPlanRequest) {\n // An ordinary Invocation is always anchored to its discovered project. A\n // Query/view source selection belongs to Inspection and can never be\n // promoted to the live writer through this request.\n return makeRecordRoot(resolve(input.cwd, \".niceeval\"));\n}\nfunction comparisonOf(slot: ExecutionReusePlanSlot): readonly ExperimentHostDryComparison[] {\n return freezeArray(slot.comparisons.map((comparison) => Object.freeze({ ...comparison })));\n}\nfunction jsonSnapshot(value: unknown): ExperimentHostJsonValue | undefined {\n try {\n return freezeJson(JSON.parse(JSON.stringify(value)) as ExperimentHostJsonValue);\n }\n catch {\n return undefined;\n }\n}\nfunction freezeJson(value: ExperimentHostJsonValue): ExperimentHostJsonValue {\n if (Array.isArray(value))\n return Object.freeze(value.map(freezeJson));\n if (typeof value === \"object\" && value !== null) {\n return Object.freeze(Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, freezeJson(entry)])));\n }\n return value;\n}\nfunction dryPlan(slots: readonly ExecutionReusePlanSlot[], readbacks: readonly ReturnType<typeof projectCurrentReuseReadback>[], lockedPairs: readonly string[], evalGroups: ReadonlyMap<string, {\n readonly id: string;\n readonly index: number;\n}>): ExperimentHostDryPlan {\n const projected: ExperimentHostDrySlot[] = slots.map((slot) => {\n const evalGroup = evalGroups.get(slot.evalId);\n const target = Object.freeze({\n runId: slot.runId,\n slotId: slot.slotId,\n experimentId: slot.experimentId,\n evalId: slot.evalId,\n executionIdentityDigest: slot.executionIdentityDigest,\n ...(evalGroup === undefined ? {} : { evalGroupId: evalGroup.id, evalGroupIndex: evalGroup.index }),\n attempt: slot.attempt,\n });\n if (slot.state === \"reuse\") {\n return Object.freeze({\n state: \"reuse\" as const,\n target,\n source: Object.freeze({\n attemptId: slot.source.attemptId,\n originRunId: slot.source.origin.runId,\n originSlotId: slot.source.origin.slotId,\n sourceRunId: slot.source.sourceBarrier.runId,\n }),\n comparisons: comparisonOf(slot),\n });\n }\n return Object.freeze({\n state: \"gap\" as const,\n target,\n reason: slot.reason,\n scope: slot.scope,\n issues: freezeArray(slot.issues.map((issue) => jsonSnapshot(issue) ?? Object.freeze({}))),\n comparisons: comparisonOf(slot),\n });\n });\n return Object.freeze({\n policy: Object.freeze({ name: \"project-target\" as const, version: 1 as const }),\n slots: freezeArray(projected),\n readbacks: freezeArray(readbacks),\n lockedPairs: freezeArray(lockedPairs),\n });\n}\nexport function planInvocation(input: ExperimentHostInvocationPlanRequest): Effect.Effect<ExperimentHostInvocationPlanResult, ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"invocation-plan\", Effect.gen(function* () {\n const prepared = yield* prepareRuns(input);\n if (prepared.status === \"problem\") {\n return Object.freeze({ ...prepared.problem });\n }\n const root = recordRoot(input);\n if (Result.isFailure(root))\n return yield* Effect.fail(root.failure);\n const config = Object.freeze({\n ...input.config,\n ...(input.config.reporters === undefined\n ? {}\n : { reporters: [...input.config.reporters] }),\n });\n const overrides = Object.freeze({ ...(input.overrides ?? {}) });\n const target = yield* planProjectTarget(prepared.selected.evals, prepared.runs, config.timeoutMs, {\n configJudge: config.judgeRuntime,\n ...(overrides.keepSandbox === undefined ? {} : { keepSandbox: overrides.keepSandbox }),\n });\n const maxConcurrency = overrides.maxConcurrency\n ?? config.maxConcurrency\n ?? recommendedConcurrencyForPreparedPairs([...target.preparedPairsByKey.values()]);\n const maxBuildConcurrency = overrides.maxBuildConcurrency\n ?? config.maxBuildConcurrency\n ?? 2;\n const maxSetupPrefixConcurrency = overrides.maxSetupPrefixConcurrency\n ?? config.maxSetupPrefixConcurrency\n ?? 2;\n if (!Number.isInteger(maxConcurrency) || maxConcurrency <= 0) {\n return yield* Effect.fail(new Error(`maxConcurrency must be a positive integer, got ${maxConcurrency}.`));\n }\n if (!Number.isInteger(maxBuildConcurrency) || maxBuildConcurrency <= 0) {\n return yield* Effect.fail(new Error(`maxBuildConcurrency must be a positive integer, got ${maxBuildConcurrency}.`));\n }\n if (!Number.isInteger(maxSetupPrefixConcurrency) || maxSetupPrefixConcurrency <= 0) {\n return yield* Effect.fail(new Error(`maxSetupPrefixConcurrency must be a positive integer, got ${maxSetupPrefixConcurrency}.`));\n }\n const uniqueEvalIds = new Set(prepared.runs.flatMap((run) => run.selectedEvalIds));\n const totalAttempts = prepared.runs.reduce((sum, run) => sum + run.selectedEvalIds.length * run.attempts, 0);\n const experimentConcurrency = Object.freeze(Object.fromEntries(prepared.runs.flatMap((run) => run.experimentId !== undefined && run.maxConcurrency !== undefined\n ? [[run.experimentId, run.maxConcurrency] as const]\n : [])));\n const shape: ExperimentHostInvocationShape = Object.freeze({\n experiments: prepared.runs.length,\n evals: uniqueEvalIds.size,\n configurations: prepared.runs.length,\n totalAttempts,\n attempts: Math.max(1, ...prepared.runs.map((run) => run.attempts)),\n maxConcurrency,\n maxBuildConcurrency,\n maxSetupPrefixConcurrency,\n experimentConcurrency,\n });\n const reuse = yield* prepareRunnerRecordReuse({\n evals: prepared.selected.evals,\n runs: prepared.runs,\n config: { timeoutMs: config.timeoutMs },\n plannedFingerprints: target.plannedFingerprints,\n renameFingerprintsByKey: target.renameFingerprintsByKey,\n plannedConfigHashes: target.plannedConfigHashes,\n ...(overrides.rerun === undefined ? {} : { rerun: overrides.rerun }),\n ...(overrides.keepSandbox === undefined ? {} : { keepSandbox: overrides.keepSandbox }),\n });\n const previewStartedAt = input.preview === true ? yield* Clock.currentTimeMillis : undefined;\n const preview = previewStartedAt !== undefined\n ? yield* Effect.scoped(withRunnerCurrentReusePreview({\n recordRoot: root.success,\n startedAt: previewStartedAt,\n evals: prepared.selected.evals,\n runs: prepared.runs,\n reuse,\n use: ({ reusePlan, readReadbacks }) => Effect.gen(function* () {\n const readbacks = yield* readReadbacks();\n const pairs = new Map(reusePlan.slots.map((slot) => [\n JSON.stringify([slot.experimentId, slot.evalId]),\n [slot.experimentId, slot.evalId] as const,\n ]));\n const projectDatabaseRoot = recordRootPaths(root.success)?.portableRoot;\n if (projectDatabaseRoot === undefined)\n return yield* Effect.fail(new Error(\"Record root is unavailable.\"));\n const locked = yield* Effect.all([...pairs].map(([key, [experimentId, evalId]]) => readCaseLockEffect(projectDatabaseRoot, experimentId, evalId).pipe(Effect.catch(() => Effect.succeed(undefined)), Effect.map((record) => record !== undefined ? key : undefined))), { concurrency: \"unbounded\" });\n return dryPlan(reusePlan.slots, readbacks.map(projectCurrentReuseReadback), locked.filter((key): key is string => key !== undefined), new Map(prepared.selected.evals.flatMap((definition) => definition.evalGroup === undefined\n ? []\n : [[definition.id, {\n id: definition.evalGroup.id,\n index: definition.evalGroup.evalIds.indexOf(definition.id),\n }] as const])));\n }),\n }))\n : undefined;\n const plan = Object.freeze({}) as ExperimentHostInvocationPlan;\n invocationPlans.set(plan, {\n evals: prepared.selected.evals,\n runs: prepared.runs,\n config,\n recordRoot: root.success,\n coordinationRoot: resolve(input.cwd, input.coordinationRoot ?? \".niceeval\"),\n overrides,\n shape,\n consumed: false,\n });\n const occurrenceAudits = new Map<string, ExperimentHostJsonValue>();\n for (const pair of target.preparedPairsByKey.values()) {\n for (const occurrence of pair.plugin.occurrences) {\n const audit = jsonSnapshot(occurrence.audit);\n if (audit !== undefined)\n occurrenceAudits.set(JSON.stringify(audit), audit);\n }\n }\n return Object.freeze({\n status: \"ready\" as const,\n plan,\n shape,\n experimentIds: freezeArray(prepared.runs.map((run) => run.experimentId!)),\n evalIds: freezeArray(uniqueEvalIds),\n pluginAudit: Object.freeze({ occurrences: freezeArray(occurrenceAudits.values()) }),\n ...(preview === undefined ? {} : { dry: preview }),\n });\n }));\n}\nfunction multiplexFeedbackSink(feedback: FeedbackSink | undefined, session: SessionTracker | undefined, isFeedbackStarted: () => boolean): FeedbackSink {\n const forward = <A extends unknown[]>(method: (sink: FeedbackSink, ...args: A) => void, ...args: A): void => {\n if (!isFeedbackStarted() || feedback === undefined)\n return;\n method(feedback, ...args);\n };\n return {\n activity: (detail) => forward((sink, value) => sink.activity(value), detail),\n diagnostic: (input) => forward((sink, value) => sink.diagnostic(value), input),\n interrupted: () => forward((sink) => sink.interrupted()),\n reporterError: (input) => forward((sink, value) => sink.reporterError(value), input),\n failure: (input) => forward((sink, value) => sink.failure(value), input),\n budgetExhausted: (input) => forward((sink, value) => sink.budgetExhausted(value), input),\n kept: (input) => forward((sink, value) => sink.kept(value), input),\n experimentHook: (input) => {\n session?.onInvocationEvent({ type: \"experiment-hook\", ...input });\n forward((sink, value) => sink.experimentHook(value), input);\n },\n precheck: (input) => forward((sink, value) => sink.precheck(value), input),\n lockWait: (input) => {\n session?.onInvocationEvent({ type: \"lock-wait\", ...input });\n forward((sink, value) => sink.lockWait(value), input);\n },\n runActivity: (input) => forward((sink, value) => sink.runActivity(value), input),\n experimentProgress: (input) => forward((sink, value) => sink.experimentProgress(value), input),\n lifecycle: (event) => {\n if (event.type === \"attempt:queued\" ||\n event.type === \"attempt:start\" ||\n event.type === \"attempt:complete\" ||\n event.type === \"attempt:early-exit\") {\n session?.onInvocationEvent(event);\n }\n forward((sink, value) => sink.lifecycle(value), event);\n },\n };\n}\nfunction summaryOf(summary: InvocationSummary): ExperimentHostInvocationSummary {\n return Object.freeze({\n total: summary.passed + summary.failed + summary.skipped + summary.errored,\n passed: summary.passed,\n failed: summary.failed,\n skipped: summary.skipped,\n errored: summary.errored,\n durationMs: summary.durationMs,\n ...(summary.usage?.inputTokens === undefined ? {} : { inputTokens: summary.usage.inputTokens }),\n ...(summary.usage?.outputTokens === undefined ? {} : { outputTokens: summary.usage.outputTokens }),\n ...(summary.estimatedCostUSD === undefined ? {} : { estimatedCostUSD: summary.estimatedCostUSD }),\n setupPrefixes: summary.setupPrefixes,\n });\n}\nexport function runInvocation(input: ExperimentHostInvocationRunRequest): Effect.Effect<ExperimentHostInvocationResult, ExperimentHostError, ExperimentHostRequirements> {\n return Effect.scoped(closeOperation(\"invocation-run\", Effect.gen(function* () {\n const state = invocationPlans.get(input.plan as object);\n if (state === undefined || state.consumed) {\n return yield* Effect.fail(new Error(\"Experiment Host invocation plan is forged, copied, or already consumed.\"));\n }\n state.consumed = true;\n let completedSummary: InvocationSummary | undefined;\n const reporters = [\n ...(input.junitPath === undefined ? [] : [{\n reporter: JUnit(input.junitPath),\n name: \"junit\",\n required: true,\n target: input.junitPath,\n }]),\n ...(state.config.reporters ?? []).map((reporter, index) => ({\n reporter,\n name: `config-reporter-${index}`,\n required: false,\n })),\n {\n name: \"experiment-host-summary\",\n required: false,\n reporter: { onInvocationComplete(summary: InvocationSummary) { completedSummary = summary; } },\n },\n ];\n // Session indexing is a Host-owned, project-local observation. Runner only\n // receives the private tracker mechanism; this enclosing Scope closes its\n // heartbeat worker on success, typed failure, or interruption.\n const projectDatabaseRoot = recordRootPaths(state.recordRoot)?.portableRoot;\n if (projectDatabaseRoot === undefined)\n return yield* Effect.fail(new Error(\"Record root is unavailable.\"));\n const projectStateDatabase = yield* ProjectStateDatabase;\n const session = new SessionTracker(projectDatabaseRoot, projectStateDatabase);\n let sessionClosed = false;\n let feedbackStarted = false;\n let feedbackFinished = false;\n // Registered first so LIFO Scope closure runs every business finalizer\n // (including the session heartbeat stop and fenced terminal write) before\n // shutting down the sole operational worker and entering the one portable gate.\n // Portability is best-effort during Scope release: an already-corrupt or\n // unavailable database must not replace the Invocation's primary outcome.\n // The explicit service operation remains typed for callers that need to\n // diagnose a gate failure directly.\n yield* Effect.addFinalizer(() => projectStateDatabase.closeInvocationPortable(projectDatabaseRoot).pipe(Effect.ignore));\n yield* Effect.addFinalizer(() => sessionClosed\n ? Effect.void\n : session.close({ status: \"incomplete\" }).pipe(Effect.ignore));\n yield* Effect.addFinalizer(() => !feedbackStarted || feedbackFinished || input.feedback === undefined\n ? Effect.void\n : Effect.tryPromise({\n try: () => input.feedback!.coordinator.stopDynamic(),\n catch: () => undefined,\n }).pipe(Effect.ignore));\n const feedback = input.feedback?.coordinator;\n const sink = multiplexFeedbackSink(feedback, session, () => feedbackStarted);\n const receipt = yield* Effect.acquireUseRelease(Effect.sync(() => activateFeedbackSink(sink)), () => runEvals({\n config: state.config,\n evals: state.evals,\n agentRuns: state.runs,\n reporters,\n maxConcurrency: state.shape.maxConcurrency,\n maxBuildConcurrency: state.shape.maxBuildConcurrency,\n maxSetupPrefixConcurrency: state.shape.maxSetupPrefixConcurrency,\n coordinationRoot: state.coordinationRoot,\n recordRoot: state.recordRoot,\n ...(state.overrides.keepSandbox === undefined ? {} : { keepSandbox: state.overrides.keepSandbox }),\n ...(state.overrides.rerun === undefined ? {} : { rerun: state.overrides.rerun }),\n session,\n ...(input.signal === undefined ? {} : { signal: input.signal }),\n onCurrentRecordReusePlan: (current) => Effect.sync(() => {\n if (feedback === undefined)\n return;\n feedback.start({\n shape: Object.freeze({\n evals: state.shape.evals,\n configs: state.shape.configurations,\n totalAttempts: state.shape.totalAttempts,\n maxConcurrency: state.shape.maxConcurrency,\n runIds: current.runIds,\n }),\n ...(Object.keys(state.shape.experimentConcurrency).length === 0\n ? {}\n : { experimentConcurrency: state.shape.experimentConcurrency }),\n reused: current.reused,\n ...(current.reusedFailures.length === 0\n ? {}\n : { reusedFailures: current.reusedFailures }),\n });\n feedbackStarted = true;\n }),\n }), (deactivate) => Effect.sync(deactivate));\n const summary = completedSummary;\n if (summary === undefined) {\n return yield* Effect.fail(new Error(\"Runner completed without an invocation summary.\"));\n }\n if (feedback !== undefined && !feedbackStarted) {\n return yield* Effect.fail(new Error(\"Runner completed without starting Experiment feedback.\"));\n }\n const completion = feedback === undefined\n ? undefined\n : assembleInvocationCompletion(feedback.state);\n yield* session.close({\n status: completion?.status ?? (receipt.completion === \"completed\"\n ? \"complete\"\n : receipt.completion === \"interrupted\"\n ? \"interrupted\"\n : \"incomplete\"),\n ...(completion === undefined ? {} : { completion }),\n receipt,\n ...(receipt.completedAt === undefined ? {} : { completedAt: receipt.completedAt }),\n });\n sessionClosed = true;\n if (feedback !== undefined && completion !== undefined) {\n yield* Effect.tryPromise({\n try: () => feedback.finish({ summary, completion, receipt }),\n catch: (cause) => cause,\n });\n feedbackFinished = true;\n }\n const foldedStats = completion === undefined ? undefined : foldInvocationEvalStats(summary);\n return Object.freeze({\n status: \"finished\" as const,\n receipt: Object.freeze({\n invocationId: receipt.invocationId,\n createdRunIds: freezeArray(receipt.createdRunIds),\n publicationCutoff: receipt.publicationCutoff,\n startedAt: receipt.startedAt,\n ...(receipt.completedAt === undefined ? {} : { completedAt: receipt.completedAt }),\n completion: receipt.completion,\n }),\n summary: summaryOf(summary),\n ...(completion === undefined ? {} : {\n completion,\n exitCode: computeExitCode({\n ...summary,\n failed: foldedStats!.failed,\n errored: foldedStats!.errored,\n }, completion),\n }),\n });\n })));\n}\nexport function planRename(input: ExperimentHostRenameRequest): Effect.Effect<ExperimentHostRenamePlan, ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"rename-plan\", planExperimentRename(input));\n}\nexport function applyRename(input: ExperimentHostRenameRequest): Effect.Effect<ExperimentHostRenameResult, ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"rename-apply\", Effect.gen(function* () {\n const outcome = yield* Effect.result(renameExperiment(input));\n if (Result.isFailure(outcome)) {\n if (!(outcome.failure instanceof ExperimentRenameError))\n return yield* Effect.fail(outcome.failure);\n const plan = outcome.failure.plan;\n return Object.freeze({ status: \"rejected\" as const, sourceRunId: plan.sourceRunId,\n oldId: plan.oldId, newId: plan.newId, reason: plan.blocked!.reason, detail: plan.blocked!.detail });\n }\n const done = outcome.success;\n return Object.freeze({ status: \"done\" as const, invocationId: done.invocationId,\n runId: done.runId, sourceRunId: done.sourceRunId, oldId: done.oldId, newId: done.newId,\n migrated: freezeArray(done.migrated.map(({ renamedFrom: _, ...entry }) => Object.freeze(entry))),\n });\n }));\n}\nexport function accept(input: ExperimentHostAcceptRequest): Effect.Effect<readonly ExperimentHostAcceptedAttempt[], ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"accept\", acceptLocators(input).pipe(Effect.map((receipts) => freezeArray(receipts.map((receipt) => Object.freeze({\n invocationId: receipt.invocationId,\n runId: receipt.runId,\n slotId: receipt.slotId,\n locator: receipt.locator,\n sourceLocator: receipt.sourceLocator,\n fingerprint: receipt.fingerprint,\n }))))));\n}\nexport function planRunAccept(input: ExperimentHostAcceptRunRequest): Effect.Effect<ExperimentHostAcceptRunPlan, ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"accept\", planAcceptRun(input).pipe(Effect.map((plan) => Object.freeze({\n sourceRunId: plan.sourceRunId,\n members: freezeArray(plan.members.map((member) => Object.freeze({\n locator: member.locator,\n experimentId: member.experimentId,\n evalId: member.evalId,\n attempt: member.attempt,\n fingerprint: member.fingerprint,\n }))),\n }))));\n}\nexport function applyRunAccept(input: ExperimentHostAcceptRunRequest): Effect.Effect<readonly ExperimentHostAcceptedAttempt[], ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"accept\", acceptRun(input).pipe(Effect.map((receipts) => freezeArray(receipts.map((receipt) => Object.freeze({\n invocationId: receipt.invocationId,\n runId: receipt.runId,\n slotId: receipt.slotId,\n locator: receipt.locator,\n sourceLocator: receipt.sourceLocator,\n fingerprint: receipt.fingerprint,\n }))))));\n}\n"]}
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["operations.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExperimentHostRequirements } from \"./requirements.ts\";\nimport { resolve } from \"node:path\";\nimport { Clock, Data, Effect, Result } from \"effect\";\nimport { recordHost } from \"../../record/host/index.ts\";\nimport { makeRecordRoot, recordRootPaths, type RecordRoot } from \"../../record/platform/root.ts\";\nimport { ProjectStateDatabase } from \"../../record/sqlite/project-state-database.ts\";\nimport { acceptLocators, acceptRun, planAcceptRun } from \"../../runner/accept.ts\";\nimport { activateFeedbackSink, type FeedbackSink } from \"../../runner/feedback/sink.ts\";\nimport { computeExitCode } from \"../../runner/feedback/json.ts\";\nimport { discoverEvals, discoverExperiments } from \"../../runner/discover.ts\";\nimport { acquireFreshImportGeneration, type FreshImportGeneration } from \"../../fresh-import.ts\";\nimport { resolveExperimentEvals, splitByEvaluationKind } from \"../../runner/eval-selection.ts\";\nimport { planProjectTarget } from \"../../runner/fingerprint.ts\";\nimport { prepareRunnerRecordReuse, withRunnerCurrentReusePreview, } from \"../../runner/record.ts\";\nimport { projectCurrentReuseReadback } from \"../../runner/reuse-readback.ts\";\nimport type { ExecutionReusePlanSlot } from \"../../runner/reuse-plan.ts\";\nimport { runEvals } from \"../../runner/run.ts\";\nimport { readCaseLockEffect } from \"../../runner/lock.ts\";\nimport { JUnit } from \"../../runner/reporters/json.ts\";\nimport { listSessions, showSession, SessionTracker, } from \"../../runner/session.ts\";\nimport { linkRunSandboxes, recommendedConcurrencyForPreparedPairs, } from \"../../runner/sandbox-selection.ts\";\nimport { resolveRunTimeout } from \"../../runner/timeout.ts\";\nimport { ExperimentRenameError, planExperimentRename, renameExperiment, } from \"../../runner/rename-experiment.ts\";\nimport { resolveSandboxBeforeCache, type AgentRun, type DiscoveredEval, type DiscoveredExperiment, type InvocationSummary, type SandboxBeforeCache, } from \"../../runner/types.ts\";\nimport { evalPrefixPredicate, matchExperimentSelector } from \"../../shared/aggregate.ts\";\nimport { ExperimentHostError } from \"./types.ts\";\nimport { assembleInvocationCompletion, foldInvocationEvalStats } from \"./presentation.ts\";\nimport { firstLine, formatThrown } from \"../../util.ts\";\nimport type { ExperimentHostAcceptRequest, ExperimentHostAcceptRunPlan, ExperimentHostAcceptRunRequest, ExperimentHostAcceptedAttempt, ExperimentHostCatalog, ExperimentHostCheckRequest, ExperimentHostCheckResult, ExperimentHostDryComparison, ExperimentHostDryPlan, ExperimentHostDrySlot, ExperimentHostOperation, ExperimentHostExperimentSummary, ExperimentHostInvocationPlan, ExperimentHostInvocationPlanRequest, ExperimentHostInvocationPlanResult, ExperimentHostInvocationResult, ExperimentHostInvocationRunRequest, ExperimentHostInvocationShape, ExperimentHostInvocationSummary, ExperimentHostJsonValue, ExperimentHostInvocationStatusList, ExperimentHostInvocationStatusListRequest, ExperimentHostInvocationStatusShow, ExperimentHostInvocationStatusShowRequest, ExperimentHostRenamePlan, ExperimentHostRenameRequest, ExperimentHostRenameResult, ExperimentHostRunOverrides, ExperimentHostSelectionInput, ExperimentHostSelectionProblem, } from \"./types.ts\";\nfunction operationError(operation: ExperimentHostOperation, cause: unknown): ExperimentHostError {\n if (cause instanceof ExperimentHostError)\n return cause;\n const code = typeof cause === \"object\" && cause !== null && typeof Reflect.get(cause, \"code\") === \"string\"\n ? String(Reflect.get(cause, \"code\"))\n : \"experiment-host-operation-failed\";\n return new ExperimentHostError({\n operation,\n code,\n message: closedFailureMessage(cause),\n cause,\n });\n}\n/** Preserve one actionable message while closing private Runner error shapes. */\nfunction closedFailureMessage(cause: unknown): string {\n const diagnostic = closedRecordDiagnostic(cause);\n if (diagnostic !== undefined)\n return JSON.stringify(diagnostic);\n if (cause instanceof Error && cause.message.length > 0)\n return cause.message;\n if (typeof cause === \"object\" && cause !== null) {\n const direct = Reflect.get(cause, \"message\");\n if (typeof direct === \"string\" && direct.length > 0)\n return direct;\n const issue = Reflect.get(cause, \"issue\");\n if (typeof issue === \"object\" && issue !== null) {\n const nested = Reflect.get(issue, \"message\");\n if (typeof nested === \"string\" && nested.length > 0)\n return nested;\n }\n }\n return firstLine(formatThrown(cause));\n}\nfunction closedRecordDiagnostic(cause: unknown): unknown | undefined {\n if (typeof cause !== \"object\" || cause === null)\n return undefined;\n const code = Reflect.get(cause, \"code\");\n if (code === \"runner-record-attempt-publication-failed\") {\n const locator = Reflect.get(cause, \"locator\");\n const rawCause = Reflect.get(cause, \"cause\");\n const nested = closedRecordDiagnostic(rawCause) ?? closedDiagnosticMessage(rawCause);\n return Object.freeze({\n code,\n ...(typeof locator === \"string\" ? { locator } : {}),\n ...(nested === undefined ? {} : { cause: nested }),\n });\n }\n if (code !== \"record-attachment-encode-error\")\n return undefined;\n const family = Reflect.get(cause, \"family\");\n const issues = Reflect.get(cause, \"issues\");\n const schemaIssues = Reflect.get(cause, \"schemaIssues\");\n return Object.freeze({\n code,\n ...(typeof family === \"string\" ? { family } : {}),\n issues: closedDiagnosticIssues(issues, false),\n schemaIssues: closedDiagnosticIssues(schemaIssues, true),\n });\n}\nfunction closedDiagnosticMessage(cause: unknown): Readonly<{\n message: string;\n}> | undefined {\n const message = cause instanceof Error\n ? cause.message\n : typeof cause === \"object\" && cause !== null && typeof Reflect.get(cause, \"message\") === \"string\"\n ? String(Reflect.get(cause, \"message\"))\n : undefined;\n return message === undefined || message.length === 0\n ? undefined\n : Object.freeze({ message });\n}\nfunction closedDiagnosticIssues(value: unknown, includeMessage: boolean): readonly unknown[] {\n if (!Array.isArray(value))\n return Object.freeze([]);\n return Object.freeze(value.flatMap((entry) => {\n if (typeof entry !== \"object\" || entry === null)\n return [];\n const path = Reflect.get(entry, \"path\");\n const code = Reflect.get(entry, \"code\");\n const message = Reflect.get(entry, \"message\");\n return [Object.freeze({\n ...(typeof code === \"string\" ? { code } : {}),\n path: Array.isArray(path)\n ? Object.freeze(path.filter((segment): segment is string | number => typeof segment === \"string\" || typeof segment === \"number\"))\n : Object.freeze([]),\n ...(includeMessage && typeof message === \"string\" ? { message } : {}),\n })];\n }));\n}\nfunction closeOperation<A, E, R>(operation: ExperimentHostOperation, effect: Effect.Effect<A, E, R>): Effect.Effect<A, ExperimentHostError, R> {\n return effect.pipe(Effect.mapError((cause) => operationError(operation, cause)));\n}\ninterface ClosedSelection {\n readonly evals: readonly DiscoveredEval[];\n readonly experimentIds: readonly string[];\n readonly selections: readonly {\n readonly experiment: DiscoveredExperiment;\n readonly selectedEvalIds: readonly string[];\n readonly selectorEvalIds: readonly string[];\n }[];\n}\ninterface PreparedInvocationState {\n readonly evals: readonly DiscoveredEval[];\n readonly runs: readonly AgentRun[];\n readonly config: ExperimentHostInvocationPlanRequest[\"config\"];\n readonly recordRoot: RecordRoot;\n readonly coordinationRoot: string;\n readonly overrides: ExperimentHostRunOverrides;\n readonly shape: ExperimentHostInvocationShape;\n consumed: boolean;\n}\nclass ExperimentEvaluationKindAdmissionError extends Data.TaggedError(\"ExperimentEvaluationKindAdmissionError\")<{\n readonly code: \"experiment-evaluation-kind-mixed\";\n readonly message: string;\n readonly issues: readonly {\n readonly experimentId: string;\n readonly passEvalIds: readonly string[];\n readonly scoreEvalIds: readonly string[];\n }[];\n}> {\n}\ntype PreparedRuns = {\n readonly status: \"problem\";\n readonly selected: ClosedSelection;\n readonly problem: ExperimentHostSelectionProblem;\n} | {\n readonly status: \"ready\";\n readonly selected: ClosedSelection;\n readonly runs: readonly AgentRun[];\n};\nconst invocationPlans = new WeakMap<object, PreparedInvocationState>();\nfunction freezeArray<A>(values: Iterable<A>): readonly A[] {\n return Object.freeze([...values]);\n}\nfunction selectionProblem(input: ExperimentHostSelectionInput, selected: ClosedSelection): ExperimentHostSelectionProblem | undefined {\n if (input.experimentIds !== undefined) {\n const missing = input.experimentIds.find((id) => !selected.experimentIds.includes(id));\n if (missing !== undefined) {\n return Object.freeze({\n status: \"experiment-no-match\" as const,\n selector: missing,\n candidates: freezeArray([...selected.experimentIds].sort()),\n });\n }\n }\n if (input.experimentSelector !== undefined && selected.selections.length === 0) {\n return Object.freeze({\n status: \"experiment-no-match\" as const,\n selector: input.experimentSelector,\n candidates: freezeArray([...selected.experimentIds].sort()),\n });\n }\n const selectorEvalIds = freezeArray(new Set(selected.selections.flatMap((entry) => entry.selectorEvalIds)));\n for (const selector of input.evalSelectors ?? []) {\n if (selectorEvalIds.some((id) => evalPrefixPredicate([selector])(id)))\n continue;\n return Object.freeze({\n status: \"eval-no-match\" as const,\n selector,\n experimentIds: freezeArray(selected.selections.map(({ experiment }) => experiment.id)),\n candidates: freezeArray([...selectorEvalIds].sort()),\n });\n }\n if (selected.selections.every((entry) => entry.selectedEvalIds.length === 0)) {\n return Object.freeze({\n status: \"empty-selection\" as const,\n experimentIds: freezeArray(selected.selections.map(({ experiment }) => experiment.id)),\n candidates: freezeArray([...selected.experimentIds].sort()),\n });\n }\n return undefined;\n}\nfunction closeSelection(input: ExperimentHostSelectionInput, options: {\n readonly freshImport?: boolean;\n} = {}): Effect.Effect<ClosedSelection, unknown> {\n const selectWith = (generation?: FreshImportGeneration) => Effect.gen(function* () {\n if (input.experimentIds !== undefined && (input.experimentIds.length === 0 || input.experimentSelector !== undefined)) {\n return yield* Effect.fail(new TypeError(\"experimentIds must be non-empty and cannot be combined with experimentSelector\"));\n }\n const discovered = yield* discoverEvals(input.cwd, { generation });\n const evals = input.tag === undefined\n ? discovered\n : discovered.filter((definition) => definition.tags?.includes(input.tag!));\n const experiments = yield* discoverExperiments(input.cwd, { generation });\n const experimentIds = freezeArray(experiments.map((experiment) => experiment.id));\n const selectedIds = input.experimentIds !== undefined\n ? new Set(input.experimentIds)\n : input.experimentSelector === undefined\n ? undefined\n : new Set(matchExperimentSelector(experimentIds, input.experimentSelector));\n const selections = experiments\n .filter((experiment) => selectedIds === undefined || selectedIds.has(experiment.id))\n .map((experiment) => {\n const selection = resolveExperimentEvals({\n experimentId: experiment.id,\n models: experiment.models,\n tag: input.tag,\n selector: experiment.evals,\n cliPatterns: input.evalSelectors ?? [],\n evals: discovered,\n });\n return Object.freeze({\n experiment,\n selectedEvalIds: freezeArray(selection.selectedEvalIds),\n selectorEvalIds: freezeArray(selection.selectorEvals.map((definition) => definition.id)),\n });\n });\n return Object.freeze({\n evals: freezeArray(evals),\n experimentIds,\n selections: freezeArray(selections),\n });\n });\n return options.freshImport\n ? Effect.scoped(acquireFreshImportGeneration(input.cwd).pipe(Effect.flatMap(selectWith)))\n : selectWith();\n}\nfunction summaryOfExperiment(experiment: DiscoveredExperiment, evalIds: readonly string[]): ExperimentHostExperimentSummary {\n return Object.freeze({\n id: experiment.id,\n ...(experiment.description === undefined ? {} : { description: experiment.description }),\n adapter: experiment.adapter.name,\n ...(experiment.models === undefined ? {} : { models: experiment.models }),\n ...(experiment.model === undefined ? {} : { model: experiment.model }),\n attempts: experiment.attempts ?? 1,\n evalIds: freezeArray(evalIds),\n labels: Object.freeze({ ...(experiment.labels ?? {}) }),\n hasBefore: typeof experiment.before === \"function\",\n hasAfter: typeof experiment.after === \"function\",\n ...(experiment.sharedState === undefined ? {} : { sharedStateKey: experiment.sharedState.key }),\n });\n}\nexport function catalog(input: ExperimentHostSelectionInput): Effect.Effect<ExperimentHostCatalog, ExperimentHostError> {\n return closeOperation(\"catalog\", closeSelection(input).pipe(Effect.map((selected) => Object.freeze({\n status: \"listed\" as const,\n evals: freezeArray(selected.evals.map((definition) => Object.freeze({\n id: definition.id,\n ...(definition.description === undefined ? {} : { description: definition.description }),\n tags: freezeArray(definition.tags ?? []),\n evaluationKind: definition.evaluationKind,\n }))),\n experimentIds: selected.experimentIds,\n experiments: freezeArray(selected.selections.map(({ experiment, selectedEvalIds }) => summaryOfExperiment(experiment, selectedEvalIds))),\n }))));\n}\nfunction agentRunFromExperiment(experiment: DiscoveredExperiment, selectedEvalIds: readonly string[], config: ExperimentHostInvocationPlanRequest[\"config\"], overrides: ExperimentHostRunOverrides, sandboxBeforeCacheOverride: SandboxBeforeCache | undefined): AgentRun {\n return Object.freeze({\n adapter: experiment.adapter,\n ...(experiment.adapter.kind === \"custom\" ? {} : { agent: experiment.adapter }),\n ...(experiment.models === undefined ? {} : { models: experiment.models }),\n model: experiment.model,\n reasoningEffort: experiment.reasoningEffort,\n flags: experiment.flags ?? {},\n plugins: experiment.plugins,\n attempts: overrides.attempts ?? experiment.attempts ?? 1,\n earlyExit: overrides.earlyExit ?? experiment.earlyExit ?? false,\n sandboxBeforeCache: resolveSandboxBeforeCache(sandboxBeforeCacheOverride, experiment.sandboxCache, config.sandboxCache),\n sandbox: experiment.sandbox,\n sandboxReuse: experiment.sandboxReuse,\n ...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),\n judge: experiment.judge,\n ...resolveRunTimeout(overrides.timeoutMs, experiment.timeoutMs),\n budget: overrides.budget ?? experiment.budget,\n selectedEvalIds: freezeArray(selectedEvalIds),\n experimentId: experiment.id,\n experimentBaseDir: experiment.baseDir,\n experimentSourcePath: experiment.sourcePath,\n description: experiment.description,\n labels: experiment.labels,\n maxConcurrency: experiment.maxConcurrency,\n setup: experiment.before,\n teardown: experiment.after,\n });\n}\nfunction sandboxBeforeCacheOverrideOf(overrides: ExperimentHostRunOverrides): SandboxBeforeCache | undefined {\n const value: unknown = Reflect.get(overrides, \"sandboxBeforeCache\");\n if (value === undefined || value === \"use\" || value === \"bypass\")\n return value;\n throw new TypeError(\"sandboxBeforeCache override must be \\\"use\\\" or \\\"bypass\\\".\");\n}\nexport function prepareRuns(input: ExperimentHostSelectionInput & {\n readonly config: ExperimentHostInvocationPlanRequest[\"config\"];\n readonly overrides?: ExperimentHostRunOverrides;\n}, options: {\n readonly allowEmptySelection?: boolean;\n readonly freshImport?: boolean;\n} = {}): Effect.Effect<PreparedRuns, unknown> {\n return closeSelection(input, options).pipe(Effect.flatMap((selected): Effect.Effect<PreparedRuns, ExperimentEvaluationKindAdmissionError> => {\n const problem = selectionProblem(input, selected);\n if (problem !== undefined && !(options.allowEmptySelection === true && problem.status === \"empty-selection\")) {\n return Effect.succeed({ status: \"problem\", selected, problem } as const);\n }\n const evalsById = new Map(selected.evals.map((definition) => [definition.id, definition]));\n const issues = selected.selections.flatMap(({ experiment, selectedEvalIds }) => {\n const evaluationKinds = splitByEvaluationKind(selectedEvalIds.flatMap((id) => {\n const definition = evalsById.get(id);\n return definition === undefined ? [] : [definition];\n }));\n return evaluationKinds.pass.length === 0 || evaluationKinds.score.length === 0\n ? []\n : [{\n experimentId: experiment.id,\n passEvalIds: Object.freeze([...evaluationKinds.pass]),\n scoreEvalIds: Object.freeze([...evaluationKinds.score]),\n }];\n });\n if (issues.length > 0) {\n return Effect.fail(new ExperimentEvaluationKindAdmissionError({\n code: \"experiment-evaluation-kind-mixed\",\n message: issues.map((issue) => `Experiment ${JSON.stringify(issue.experimentId)} selects both pass and score Evals. ` +\n `pass (${issue.passEvalIds.length}): ${issue.passEvalIds.join(\", \")}; ` +\n `score (${issue.scoreEvalIds.length}): ${issue.scoreEvalIds.join(\", \")}. ` +\n \"Split the Experiment into one pass Experiment and one score Experiment, or narrow its Eval selection.\").join(\"\\n\"),\n issues: Object.freeze(issues.map((issue) => Object.freeze(issue))),\n }));\n }\n const overrides = input.overrides ?? {};\n const sandboxBeforeCacheOverride = sandboxBeforeCacheOverrideOf(overrides);\n return Effect.succeed({\n status: \"ready\",\n selected,\n runs: freezeArray(selected.selections.map(({ experiment, selectedEvalIds }) => agentRunFromExperiment(experiment, selectedEvalIds, input.config, overrides, sandboxBeforeCacheOverride))),\n } as const);\n }));\n}\nexport function check(input: ExperimentHostCheckRequest): Effect.Effect<ExperimentHostCheckResult, ExperimentHostError> {\n return closeOperation(\"check\", Effect.gen(function* () {\n const prepared = yield* prepareRuns(input);\n if (prepared.status === \"problem\")\n return prepared.problem;\n const pairs = yield* linkRunSandboxes(prepared.selected.evals, prepared.runs);\n return Object.freeze({\n status: \"linked\" as const,\n experimentIds: freezeArray(prepared.runs.map((run) => run.experimentId!)),\n evalIds: freezeArray(new Set(prepared.runs.flatMap((run) => run.selectedEvalIds))),\n pairCount: pairs.length,\n });\n }));\n}\n/** Session data is intentionally presented as a closed, transient document. */\nexport function listInvocationStatus(input: ExperimentHostInvocationStatusListRequest): Effect.Effect<ExperimentHostInvocationStatusList, ExperimentHostError, ProjectStateDatabase> {\n return closeOperation(\"invocation-status-list\", listSessions(resolve(input.cwd, \".niceeval\"), {\n ...(input.all === true ? { all: true } : {}),\n ...(input.experimentSelector === undefined ? {} : { selector: input.experimentSelector }),\n }));\n}\nexport function showInvocationStatus(input: ExperimentHostInvocationStatusShowRequest): Effect.Effect<ExperimentHostInvocationStatusShow, ExperimentHostError, ProjectStateDatabase> {\n return closeOperation(\"invocation-status-show\", showSession(resolve(input.cwd, \".niceeval\"), input.invocationSelector));\n}\nfunction recordRoot(input: ExperimentHostInvocationPlanRequest) {\n // An ordinary Invocation is always anchored to its discovered project. A\n // Query/view source selection belongs to Inspection and can never be\n // promoted to the live writer through this request.\n return makeRecordRoot(resolve(input.cwd, \".niceeval\"));\n}\nfunction comparisonOf(slot: ExecutionReusePlanSlot): readonly ExperimentHostDryComparison[] {\n return freezeArray(slot.comparisons.map((comparison) => Object.freeze({ ...comparison })));\n}\nfunction jsonSnapshot(value: unknown): ExperimentHostJsonValue | undefined {\n try {\n return freezeJson(JSON.parse(JSON.stringify(value)) as ExperimentHostJsonValue);\n }\n catch {\n return undefined;\n }\n}\nfunction freezeJson(value: ExperimentHostJsonValue): ExperimentHostJsonValue {\n if (Array.isArray(value))\n return Object.freeze(value.map(freezeJson));\n if (typeof value === \"object\" && value !== null) {\n return Object.freeze(Object.fromEntries(Object.entries(value).map(([key, entry]) => [key, freezeJson(entry)])));\n }\n return value;\n}\nfunction dryPlan(slots: readonly ExecutionReusePlanSlot[], readbacks: readonly ReturnType<typeof projectCurrentReuseReadback>[], lockedPairs: readonly string[], evalGroups: ReadonlyMap<string, {\n readonly id: string;\n readonly index: number;\n}>): ExperimentHostDryPlan {\n const projected: ExperimentHostDrySlot[] = slots.map((slot) => {\n const evalGroup = evalGroups.get(slot.evalId);\n const target = Object.freeze({\n runId: slot.runId,\n slotId: slot.slotId,\n experimentId: slot.experimentId,\n evalId: slot.evalId,\n executionIdentityDigest: slot.executionIdentityDigest,\n ...(evalGroup === undefined ? {} : { evalGroupId: evalGroup.id, evalGroupIndex: evalGroup.index }),\n attempt: slot.attempt,\n });\n if (slot.state === \"reuse\") {\n return Object.freeze({\n state: \"reuse\" as const,\n target,\n source: Object.freeze({\n attemptId: slot.source.attemptId,\n originRunId: slot.source.origin.runId,\n originSlotId: slot.source.origin.slotId,\n sourceRunId: slot.source.sourceBarrier.runId,\n }),\n comparisons: comparisonOf(slot),\n });\n }\n return Object.freeze({\n state: \"gap\" as const,\n target,\n reason: slot.reason,\n scope: slot.scope,\n issues: freezeArray(slot.issues.map((issue) => jsonSnapshot(issue) ?? Object.freeze({}))),\n comparisons: comparisonOf(slot),\n });\n });\n return Object.freeze({\n policy: Object.freeze({ name: \"project-target\" as const, version: 1 as const }),\n slots: freezeArray(projected),\n readbacks: freezeArray(readbacks),\n lockedPairs: freezeArray(lockedPairs),\n });\n}\nexport function planInvocation(input: ExperimentHostInvocationPlanRequest): Effect.Effect<ExperimentHostInvocationPlanResult, ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"invocation-plan\", Effect.gen(function* () {\n const prepared = yield* prepareRuns(input);\n if (prepared.status === \"problem\") {\n return Object.freeze({ ...prepared.problem });\n }\n const root = recordRoot(input);\n if (Result.isFailure(root))\n return yield* Effect.fail(root.failure);\n const config = Object.freeze({\n ...input.config,\n ...(input.config.reporters === undefined\n ? {}\n : { reporters: [...input.config.reporters] }),\n });\n const overrides = Object.freeze({ ...(input.overrides ?? {}) });\n const target = yield* planProjectTarget(prepared.selected.evals, prepared.runs, config.timeoutMs, {\n configJudge: config.judgeProvider,\n ...(overrides.keepSandbox === undefined ? {} : { keepSandbox: overrides.keepSandbox }),\n });\n const maxConcurrency = overrides.maxConcurrency\n ?? config.maxConcurrency\n ?? recommendedConcurrencyForPreparedPairs([...target.preparedPairsByKey.values()]);\n const maxBuildConcurrency = overrides.maxBuildConcurrency\n ?? config.maxBuildConcurrency\n ?? 2;\n const maxBeforeCacheConcurrency = overrides.maxBeforeCacheConcurrency\n ?? config.maxBeforeCacheConcurrency\n ?? 2;\n if (!Number.isInteger(maxConcurrency) || maxConcurrency <= 0) {\n return yield* Effect.fail(new Error(`maxConcurrency must be a positive integer, got ${maxConcurrency}.`));\n }\n if (!Number.isInteger(maxBuildConcurrency) || maxBuildConcurrency <= 0) {\n return yield* Effect.fail(new Error(`maxBuildConcurrency must be a positive integer, got ${maxBuildConcurrency}.`));\n }\n if (!Number.isInteger(maxBeforeCacheConcurrency) || maxBeforeCacheConcurrency <= 0) {\n return yield* Effect.fail(new Error(`maxBeforeCacheConcurrency must be a positive integer, got ${maxBeforeCacheConcurrency}.`));\n }\n const uniqueEvalIds = new Set(prepared.runs.flatMap((run) => run.selectedEvalIds));\n const totalAttempts = prepared.runs.reduce((sum, run) => sum + run.selectedEvalIds.length * run.attempts, 0);\n const experimentConcurrency = Object.freeze(Object.fromEntries(prepared.runs.flatMap((run) => run.experimentId !== undefined && run.maxConcurrency !== undefined\n ? [[run.experimentId, run.maxConcurrency] as const]\n : [])));\n const shape: ExperimentHostInvocationShape = Object.freeze({\n experiments: prepared.runs.length,\n evals: uniqueEvalIds.size,\n configurations: prepared.runs.length,\n totalAttempts,\n attempts: Math.max(1, ...prepared.runs.map((run) => run.attempts)),\n maxConcurrency,\n maxBuildConcurrency,\n maxBeforeCacheConcurrency,\n experimentConcurrency,\n });\n const reuse = yield* prepareRunnerRecordReuse({\n evals: prepared.selected.evals,\n runs: prepared.runs,\n config: { timeoutMs: config.timeoutMs },\n plannedFingerprints: target.plannedFingerprints,\n renameFingerprintsByKey: target.renameFingerprintsByKey,\n plannedConfigHashes: target.plannedConfigHashes,\n ...(overrides.rerun === undefined ? {} : { rerun: overrides.rerun }),\n ...(overrides.keepSandbox === undefined ? {} : { keepSandbox: overrides.keepSandbox }),\n });\n const previewStartedAt = input.preview === true ? yield* Clock.currentTimeMillis : undefined;\n const preview = previewStartedAt !== undefined\n ? yield* Effect.scoped(withRunnerCurrentReusePreview({\n recordRoot: root.success,\n startedAt: previewStartedAt,\n evals: prepared.selected.evals,\n runs: prepared.runs,\n reuse,\n use: ({ reusePlan, readReadbacks }) => Effect.gen(function* () {\n const readbacks = yield* readReadbacks();\n const pairs = new Map(reusePlan.slots.map((slot) => [\n JSON.stringify([slot.experimentId, slot.evalId]),\n [slot.experimentId, slot.evalId] as const,\n ]));\n const projectDatabaseRoot = recordRootPaths(root.success)?.portableRoot;\n if (projectDatabaseRoot === undefined)\n return yield* Effect.fail(new Error(\"Record root is unavailable.\"));\n const locked = yield* Effect.all([...pairs].map(([key, [experimentId, evalId]]) => readCaseLockEffect(projectDatabaseRoot, experimentId, evalId).pipe(Effect.catch(() => Effect.succeed(undefined)), Effect.map((record) => record !== undefined ? key : undefined))), { concurrency: \"unbounded\" });\n return dryPlan(reusePlan.slots, readbacks.map(projectCurrentReuseReadback), locked.filter((key): key is string => key !== undefined), new Map(prepared.selected.evals.flatMap((definition) => definition.evalGroup === undefined\n ? []\n : [[definition.id, {\n id: definition.evalGroup.id,\n index: definition.evalGroup.evalIds.indexOf(definition.id),\n }] as const])));\n }),\n }))\n : undefined;\n const plan = Object.freeze({}) as ExperimentHostInvocationPlan;\n invocationPlans.set(plan, {\n evals: prepared.selected.evals,\n runs: prepared.runs,\n config,\n recordRoot: root.success,\n coordinationRoot: resolve(input.cwd, input.coordinationRoot ?? \".niceeval\"),\n overrides,\n shape,\n consumed: false,\n });\n const occurrenceAudits = new Map<string, ExperimentHostJsonValue>();\n for (const pair of target.preparedPairsByKey.values()) {\n for (const occurrence of pair.plugin.occurrences) {\n const audit = jsonSnapshot(occurrence.audit);\n if (audit !== undefined)\n occurrenceAudits.set(JSON.stringify(audit), audit);\n }\n }\n return Object.freeze({\n status: \"ready\" as const,\n plan,\n shape,\n experimentIds: freezeArray(prepared.runs.map((run) => run.experimentId!)),\n evalIds: freezeArray(uniqueEvalIds),\n pluginAudit: Object.freeze({ occurrences: freezeArray(occurrenceAudits.values()) }),\n ...(preview === undefined ? {} : { dry: preview }),\n });\n }));\n}\nfunction multiplexFeedbackSink(feedback: FeedbackSink | undefined, session: SessionTracker | undefined, isFeedbackStarted: () => boolean): FeedbackSink {\n const forward = <A extends unknown[]>(method: (sink: FeedbackSink, ...args: A) => void, ...args: A): void => {\n if (!isFeedbackStarted() || feedback === undefined)\n return;\n method(feedback, ...args);\n };\n return {\n activity: (detail) => forward((sink, value) => sink.activity(value), detail),\n diagnostic: (input) => forward((sink, value) => sink.diagnostic(value), input),\n interrupted: () => forward((sink) => sink.interrupted()),\n reporterError: (input) => forward((sink, value) => sink.reporterError(value), input),\n failure: (input) => forward((sink, value) => sink.failure(value), input),\n budgetExhausted: (input) => forward((sink, value) => sink.budgetExhausted(value), input),\n kept: (input) => forward((sink, value) => sink.kept(value), input),\n experimentHook: (input) => {\n session?.onInvocationEvent({ type: \"experiment-hook\", ...input });\n forward((sink, value) => sink.experimentHook(value), input);\n },\n precheck: (input) => forward((sink, value) => sink.precheck(value), input),\n lockWait: (input) => {\n session?.onInvocationEvent({ type: \"lock-wait\", ...input });\n forward((sink, value) => sink.lockWait(value), input);\n },\n runActivity: (input) => forward((sink, value) => sink.runActivity(value), input),\n experimentProgress: (input) => forward((sink, value) => sink.experimentProgress(value), input),\n lifecycle: (event) => {\n if (event.type === \"attempt:queued\" ||\n event.type === \"attempt:start\" ||\n event.type === \"attempt:complete\" ||\n event.type === \"attempt:early-exit\") {\n session?.onInvocationEvent(event);\n }\n forward((sink, value) => sink.lifecycle(value), event);\n },\n };\n}\nfunction summaryOf(summary: InvocationSummary): ExperimentHostInvocationSummary {\n return Object.freeze({\n total: summary.passed + summary.failed + summary.skipped + summary.errored,\n passed: summary.passed,\n failed: summary.failed,\n skipped: summary.skipped,\n errored: summary.errored,\n durationMs: summary.durationMs,\n ...(summary.usage?.inputTokens === undefined ? {} : { inputTokens: summary.usage.inputTokens }),\n ...(summary.usage?.outputTokens === undefined ? {} : { outputTokens: summary.usage.outputTokens }),\n ...(summary.estimatedCostUSD === undefined ? {} : { estimatedCostUSD: summary.estimatedCostUSD }),\n beforeCaches: summary.beforeCaches,\n });\n}\nexport function runInvocation(input: ExperimentHostInvocationRunRequest): Effect.Effect<ExperimentHostInvocationResult, ExperimentHostError, ExperimentHostRequirements> {\n return Effect.scoped(closeOperation(\"invocation-run\", Effect.gen(function* () {\n const state = invocationPlans.get(input.plan as object);\n if (state === undefined || state.consumed) {\n return yield* Effect.fail(new Error(\"Experiment Host invocation plan is forged, copied, or already consumed.\"));\n }\n state.consumed = true;\n let completedSummary: InvocationSummary | undefined;\n const reporters = [\n ...(input.junitPath === undefined ? [] : [{\n reporter: JUnit(input.junitPath),\n name: \"junit\",\n required: true,\n target: input.junitPath,\n }]),\n ...(state.config.reporters ?? []).map((reporter, index) => ({\n reporter,\n name: `config-reporter-${index}`,\n required: false,\n })),\n {\n name: \"experiment-host-summary\",\n required: false,\n reporter: { onInvocationComplete(summary: InvocationSummary) { completedSummary = summary; } },\n },\n ];\n // Session indexing is a Host-owned, project-local observation. Runner only\n // receives the private tracker mechanism; this enclosing Scope closes its\n // heartbeat worker on success, typed failure, or interruption.\n const projectDatabaseRoot = recordRootPaths(state.recordRoot)?.portableRoot;\n if (projectDatabaseRoot === undefined)\n return yield* Effect.fail(new Error(\"Record root is unavailable.\"));\n const projectStateDatabase = yield* ProjectStateDatabase;\n const session = new SessionTracker(projectDatabaseRoot, projectStateDatabase);\n let sessionClosed = false;\n let feedbackStarted = false;\n let feedbackFinished = false;\n // Registered first so LIFO Scope closure runs every business finalizer\n // (including the session heartbeat stop and fenced terminal write) before\n // shutting down the sole operational worker and entering the one portable gate.\n // Portability is best-effort during Scope release: an already-corrupt or\n // unavailable database must not replace the Invocation's primary outcome.\n // The explicit service operation remains typed for callers that need to\n // diagnose a gate failure directly.\n yield* Effect.addFinalizer(() => projectStateDatabase.closeInvocationPortable(projectDatabaseRoot).pipe(Effect.ignore));\n yield* Effect.addFinalizer(() => sessionClosed\n ? Effect.void\n : session.close({ status: \"incomplete\" }).pipe(Effect.ignore));\n yield* Effect.addFinalizer(() => !feedbackStarted || feedbackFinished || input.feedback === undefined\n ? Effect.void\n : Effect.tryPromise({\n try: () => input.feedback!.coordinator.stopDynamic(),\n catch: () => undefined,\n }).pipe(Effect.ignore));\n const feedback = input.feedback?.coordinator;\n const sink = multiplexFeedbackSink(feedback, session, () => feedbackStarted);\n const receipt = yield* Effect.acquireUseRelease(Effect.sync(() => activateFeedbackSink(sink)), () => runEvals({\n config: state.config,\n evals: state.evals,\n agentRuns: state.runs,\n reporters,\n maxConcurrency: state.shape.maxConcurrency,\n maxBuildConcurrency: state.shape.maxBuildConcurrency,\n maxBeforeCacheConcurrency: state.shape.maxBeforeCacheConcurrency,\n coordinationRoot: state.coordinationRoot,\n recordRoot: state.recordRoot,\n ...(state.overrides.keepSandbox === undefined ? {} : { keepSandbox: state.overrides.keepSandbox }),\n ...(state.overrides.rerun === undefined ? {} : { rerun: state.overrides.rerun }),\n session,\n ...(input.signal === undefined ? {} : { signal: input.signal }),\n onCurrentRecordReusePlan: (current) => Effect.sync(() => {\n if (feedback === undefined)\n return;\n feedback.start({\n shape: Object.freeze({\n evals: state.shape.evals,\n configs: state.shape.configurations,\n totalAttempts: state.shape.totalAttempts,\n maxConcurrency: state.shape.maxConcurrency,\n runIds: current.runIds,\n }),\n ...(Object.keys(state.shape.experimentConcurrency).length === 0\n ? {}\n : { experimentConcurrency: state.shape.experimentConcurrency }),\n reused: current.reused,\n ...(current.reusedFailures.length === 0\n ? {}\n : { reusedFailures: current.reusedFailures }),\n });\n feedbackStarted = true;\n }),\n }), (deactivate) => Effect.sync(deactivate));\n const summary = completedSummary;\n if (summary === undefined) {\n return yield* Effect.fail(new Error(\"Runner completed without an invocation summary.\"));\n }\n if (feedback !== undefined && !feedbackStarted) {\n return yield* Effect.fail(new Error(\"Runner completed without starting Experiment feedback.\"));\n }\n const completion = feedback === undefined\n ? undefined\n : assembleInvocationCompletion(feedback.state);\n yield* session.close({\n status: completion?.status ?? (receipt.completion === \"completed\"\n ? \"complete\"\n : receipt.completion === \"interrupted\"\n ? \"interrupted\"\n : \"incomplete\"),\n ...(completion === undefined ? {} : { completion }),\n receipt,\n ...(receipt.completedAt === undefined ? {} : { completedAt: receipt.completedAt }),\n });\n sessionClosed = true;\n if (feedback !== undefined && completion !== undefined) {\n yield* Effect.tryPromise({\n try: () => feedback.finish({ summary, completion, receipt }),\n catch: (cause) => cause,\n });\n feedbackFinished = true;\n }\n const foldedStats = completion === undefined ? undefined : foldInvocationEvalStats(summary);\n return Object.freeze({\n status: \"finished\" as const,\n receipt: Object.freeze({\n invocationId: receipt.invocationId,\n createdRunIds: freezeArray(receipt.createdRunIds),\n publicationCutoff: receipt.publicationCutoff,\n startedAt: receipt.startedAt,\n ...(receipt.completedAt === undefined ? {} : { completedAt: receipt.completedAt }),\n completion: receipt.completion,\n }),\n summary: summaryOf(summary),\n ...(completion === undefined ? {} : {\n completion,\n exitCode: computeExitCode({\n ...summary,\n failed: foldedStats!.failed,\n errored: foldedStats!.errored,\n }, completion),\n }),\n });\n })));\n}\nexport function planRename(input: ExperimentHostRenameRequest): Effect.Effect<ExperimentHostRenamePlan, ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"rename-plan\", planExperimentRename(input));\n}\nexport function applyRename(input: ExperimentHostRenameRequest): Effect.Effect<ExperimentHostRenameResult, ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"rename-apply\", Effect.gen(function* () {\n const outcome = yield* Effect.result(renameExperiment(input));\n if (Result.isFailure(outcome)) {\n if (!(outcome.failure instanceof ExperimentRenameError))\n return yield* Effect.fail(outcome.failure);\n const plan = outcome.failure.plan;\n return Object.freeze({ status: \"rejected\" as const, sourceRunId: plan.sourceRunId,\n oldId: plan.oldId, newId: plan.newId, reason: plan.blocked!.reason, detail: plan.blocked!.detail });\n }\n const done = outcome.success;\n return Object.freeze({ status: \"done\" as const, invocationId: done.invocationId,\n runId: done.runId, sourceRunId: done.sourceRunId, oldId: done.oldId, newId: done.newId,\n migrated: freezeArray(done.migrated.map(({ renamedFrom: _, ...entry }) => Object.freeze(entry))),\n });\n }));\n}\nexport function accept(input: ExperimentHostAcceptRequest): Effect.Effect<readonly ExperimentHostAcceptedAttempt[], ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"accept\", acceptLocators(input).pipe(Effect.map((receipts) => freezeArray(receipts.map((receipt) => Object.freeze({\n invocationId: receipt.invocationId,\n runId: receipt.runId,\n slotId: receipt.slotId,\n locator: receipt.locator,\n sourceLocator: receipt.sourceLocator,\n fingerprint: receipt.fingerprint,\n }))))));\n}\nexport function planRunAccept(input: ExperimentHostAcceptRunRequest): Effect.Effect<ExperimentHostAcceptRunPlan, ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"accept\", planAcceptRun(input).pipe(Effect.map((plan) => Object.freeze({\n sourceRunId: plan.sourceRunId,\n members: freezeArray(plan.members.map((member) => Object.freeze({\n locator: member.locator,\n experimentId: member.experimentId,\n evalId: member.evalId,\n attempt: member.attempt,\n fingerprint: member.fingerprint,\n }))),\n }))));\n}\nexport function applyRunAccept(input: ExperimentHostAcceptRunRequest): Effect.Effect<readonly ExperimentHostAcceptedAttempt[], ExperimentHostError, ExperimentHostRequirements> {\n return closeOperation(\"accept\", acceptRun(input).pipe(Effect.map((receipts) => freezeArray(receipts.map((receipt) => Object.freeze({\n invocationId: receipt.invocationId,\n runId: receipt.runId,\n slotId: receipt.slotId,\n locator: receipt.locator,\n sourceLocator: receipt.sourceLocator,\n fingerprint: receipt.fingerprint,\n }))))));\n}\n"]}
@@ -60,7 +60,7 @@ function uniqueExactOrPrefix(candidates, selector, id) {
60
60
  function debugAgentRun(experiment, evalId, config) {
61
61
  return {
62
62
  adapter: experiment.adapter,
63
- ...(experiment.agent === undefined ? {} : { agent: experiment.agent }),
63
+ ...(experiment.adapter.kind === "custom" ? {} : { agent: experiment.adapter }),
64
64
  ...(experiment.models === undefined ? {} : { models: experiment.models }),
65
65
  model: experiment.model,
66
66
  reasoningEffort: experiment.reasoningEffort,
@@ -68,11 +68,11 @@ function debugAgentRun(experiment, evalId, config) {
68
68
  plugins: experiment.plugins,
69
69
  attempts: experiment.attempts ?? 1,
70
70
  earlyExit: experiment.earlyExit ?? false,
71
- sandboxSetupCache: (0, types_ts_1.resolveSandboxSetupCache)(undefined, experiment.sandboxCache, config.sandboxCache),
71
+ sandboxBeforeCache: (0, types_ts_1.resolveSandboxBeforeCache)(undefined, experiment.sandboxCache, config.sandboxCache),
72
72
  sandbox: experiment.sandbox,
73
73
  sandboxReuse: experiment.sandboxReuse,
74
74
  ...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),
75
- judgeRuntime: experiment.judgeRuntime,
75
+ judge: experiment.judge,
76
76
  ...(0, timeout_ts_1.resolveRunTimeout)(undefined, experiment.timeoutMs),
77
77
  budget: experiment.budget,
78
78
  selectedEvalIds: [evalId],
@@ -82,9 +82,8 @@ function debugAgentRun(experiment, evalId, config) {
82
82
  description: experiment.description,
83
83
  labels: experiment.labels,
84
84
  maxConcurrency: experiment.maxConcurrency,
85
- setup: experiment.setup,
86
- teardown: experiment.teardown,
87
- classifyFailure: experiment.classifyFailure,
85
+ setup: experiment.before,
86
+ teardown: experiment.after,
88
87
  };
89
88
  }
90
89
  /**
@@ -135,7 +134,7 @@ function debug(input) {
135
134
  });
136
135
  }
137
136
  const runs = selectedEvals.map((evalDef) => debugAgentRun(experiment, evalDef.id, input.config));
138
- const target = yield* (0, fingerprint_ts_1.planProjectTarget)(listed.evals, runs, input.config.timeoutMs, { configJudge: input.config.judgeRuntime });
137
+ const target = yield* (0, fingerprint_ts_1.planProjectTarget)(listed.evals, runs, input.config.timeoutMs, { configJudge: input.config.judgeProvider });
139
138
  const commandPlan = (0, command_plan_ts_1.assembleCommandPlan)({
140
139
  rows: selectedEvals.map((evalDef) => {
141
140
  const run = runs.find((candidate) => candidate.selectedEvalIds.includes(evalDef.id));
@@ -155,7 +154,7 @@ function debug(input) {
155
154
  ...(selectedEvals.length === 1 ? { evalId: selectedEvals[0].id } : {}),
156
155
  evalIds: Object.freeze(selectedEvals.map((evalDef) => evalDef.id)),
157
156
  commandPlan,
158
- setupPrefixPlan: (0, command_plan_ts_1.setupPrefixPlanOf)(commandPlan),
157
+ beforeCachePlan: (0, command_plan_ts_1.beforeCachePlanOf)(commandPlan),
159
158
  });
160
159
  }).pipe(effect_1.Effect.mapError((cause) => new types_ts_2.ExperimentHostError({
161
160
  operation: "debug",
@@ -173,7 +172,7 @@ exports.rawExperimentHost = Object.freeze({
173
172
  invocation: Object.freeze({ plan: operations_ts_1.planInvocation, run: operations_ts_1.runInvocation }),
174
173
  invocationStatus: Object.freeze({ list: operations_ts_1.listInvocationStatus, show: operations_ts_1.showInvocationStatus }),
175
174
  rename: Object.freeze({ plan: operations_ts_1.planRename, apply: operations_ts_1.applyRename }),
176
- teardown: Object.freeze({ inspect: teardown_ts_1.inspectTeardown, run: teardown_ts_1.runTeardown }),
175
+ after: Object.freeze({ inspect: teardown_ts_1.inspectTeardown, run: teardown_ts_1.runTeardown }),
177
176
  debug,
178
177
  accept: operations_ts_1.accept,
179
178
  acceptRun: Object.freeze({ plan: operations_ts_1.planRunAccept, apply: operations_ts_1.applyRunAccept }),
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { Effect } from \"effect\";\nimport { assembleCommandPlan, setupPrefixPlanOf, type CommandPlan, type SetupPrefixPlan } from \"../../runner/command-plan.ts\";\nimport { discoverEvals, discoverExperiments } from \"../../runner/discover.ts\";\nimport { planProjectTarget } from \"../../runner/fingerprint.ts\";\nimport { resolveExperimentEvals } from \"../../runner/eval-selection.ts\";\nimport { resolveRunTimeout } from \"../../runner/timeout.ts\";\nimport type { AgentRun, Config, DiscoveredEval, DiscoveredExperiment, } from \"../../runner/types.ts\";\nimport { resolveSandboxSetupCache } from \"../../runner/types.ts\";\nimport { matchExperimentSelector } from \"../../shared/aggregate.ts\";\nimport { accept, applyRunAccept, applyRename, catalog, check, listInvocationStatus, planInvocation, planRename, planRunAccept, runInvocation, showInvocationStatus, } from \"./operations.ts\";\nimport { inspectTeardown, runTeardown } from \"./teardown.ts\";\nimport { ExperimentHostError } from \"./types.ts\";\n/** One discovered Experiment after its author selector and CLI prefixes close. */\ninterface ExperimentHostSelection {\n readonly experiment: DiscoveredExperiment;\n readonly selectedEvalIds: readonly string[];\n /** The Experiment-owned set before CLI eval-prefix narrowing. */\n readonly selectorEvalIds: readonly string[];\n}\n/** Discovery result used by both `exp list` and execution planning. */\ninterface ExperimentHostListResult {\n readonly evals: readonly DiscoveredEval[];\n readonly experimentIds: readonly string[];\n readonly selections: readonly ExperimentHostSelection[];\n}\n/**\n * Discovery and selection are owned here so consumers cannot invoke an\n * Experiment's predicate a second time while reconstructing an AgentRun.\n */\nfunction discoverSelection(input: {\n readonly cwd: string;\n /** Keep the CLI's public `--tag` selection inside the Experiment boundary. */\n readonly tag?: string;\n readonly selector?: string;\n readonly evalPatterns?: readonly string[];\n}): Effect.Effect<ExperimentHostListResult, unknown> {\n return Effect.gen(function* () {\n const discoveredEvals = yield* discoverEvals(input.cwd);\n const evals = input.tag === undefined\n ? discoveredEvals\n : discoveredEvals.filter((evalDefinition) => evalDefinition.tags?.includes(input.tag!));\n const experiments = yield* discoverExperiments(input.cwd);\n const experimentIds = Object.freeze(experiments.map((experiment) => experiment.id));\n const selectedIds = input.selector === undefined\n ? undefined\n : new Set(matchExperimentSelector(experimentIds, input.selector));\n const selections = experiments\n .filter((experiment) => selectedIds === undefined || selectedIds.has(experiment.id))\n .map((experiment): ExperimentHostSelection => {\n const selected = resolveExperimentEvals({\n experimentId: experiment.id,\n models: experiment.models,\n tag: input.tag,\n selector: experiment.evals,\n cliPatterns: input.evalPatterns ?? [],\n evals: discoveredEvals,\n });\n return Object.freeze({\n experiment,\n selectedEvalIds: Object.freeze([...selected.selectedEvalIds]),\n selectorEvalIds: Object.freeze(selected.selectorEvals.map((evalDefinition) => evalDefinition.id)),\n });\n });\n return Object.freeze({\n evals: Object.freeze([...evals]),\n experimentIds,\n selections: Object.freeze(selections),\n });\n });\n}\nexport interface ExperimentHostDebugPlanRequest {\n readonly cwd: string;\n readonly config: Config;\n readonly experimentSelector: string;\n readonly evalSelector?: string;\n}\n/** A fully closed, read-only lifecycle plan for exactly one Experiment × Eval pair. */\nexport interface ExperimentHostDebugPlan {\n readonly status: \"planned\";\n readonly experimentId: string;\n /** Retained for the existing single-pair response. */\n readonly evalId?: string;\n readonly evalIds: readonly string[];\n readonly commandPlan: CommandPlan;\n readonly setupPrefixPlan: SetupPrefixPlan;\n}\n/**\n * Selector outcomes are data, rather than CLI-owned selection logic or a\n * partially constructed plan. The caller can render them in its own surface.\n */\nexport type ExperimentHostDebugPlanResult = ExperimentHostDebugPlan | {\n readonly status: \"experiment-no-match\";\n readonly selector: string;\n readonly candidates: readonly string[];\n} | {\n readonly status: \"experiment-ambiguous\";\n readonly selector: string;\n readonly candidates: readonly string[];\n} | {\n readonly status: \"eval-no-match\";\n readonly selector: string;\n readonly experimentId: string;\n readonly candidates: readonly string[];\n} | {\n readonly status: \"eval-ambiguous\";\n readonly selector: string;\n readonly experimentId: string;\n readonly candidates: readonly string[];\n};\nfunction uniqueExactOrPrefix<T>(candidates: readonly T[], selector: string, id: (candidate: T) => string): readonly T[] {\n const exact = candidates.find((candidate) => id(candidate) === selector);\n return exact === undefined\n ? candidates.filter((candidate) => id(candidate).startsWith(selector))\n : [exact];\n}\nfunction debugAgentRun(experiment: DiscoveredExperiment, evalId: string, config: Config): AgentRun {\n return {\n adapter: experiment.adapter,\n ...(experiment.agent === undefined ? {} : { agent: experiment.agent }),\n ...(experiment.models === undefined ? {} : { models: experiment.models }),\n model: experiment.model,\n reasoningEffort: experiment.reasoningEffort,\n flags: experiment.flags ?? {},\n plugins: experiment.plugins,\n attempts: experiment.attempts ?? 1,\n earlyExit: experiment.earlyExit ?? false,\n sandboxSetupCache: resolveSandboxSetupCache(undefined, experiment.sandboxCache, config.sandboxCache),\n sandbox: experiment.sandbox,\n sandboxReuse: experiment.sandboxReuse,\n ...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),\n judgeRuntime: experiment.judgeRuntime,\n ...resolveRunTimeout(undefined, experiment.timeoutMs),\n budget: experiment.budget,\n selectedEvalIds: [evalId],\n experimentId: experiment.id,\n experimentBaseDir: experiment.baseDir,\n experimentSourcePath: experiment.sourcePath,\n description: experiment.description,\n labels: experiment.labels,\n maxConcurrency: experiment.maxConcurrency,\n setup: experiment.setup,\n teardown: experiment.teardown,\n classifyFailure: experiment.classifyFailure,\n };\n}\n/**\n * Closes selector resolution, physical planning, and command-plan projection\n * inside the Experiment Host. It deliberately does not construct a Record\n * root, enter a lease, read history, or invoke an author callback.\n */\nfunction debug(input: ExperimentHostDebugPlanRequest): Effect.Effect<ExperimentHostDebugPlanResult, ExperimentHostError> {\n return Effect.gen(function* () {\n const listed = yield* discoverSelection({ cwd: input.cwd });\n const selectedExperiments = uniqueExactOrPrefix(listed.selections, input.experimentSelector, ({ experiment }) => experiment.id).slice().sort((left, right) => left.experiment.id.localeCompare(right.experiment.id));\n if (selectedExperiments.length === 0) {\n return Object.freeze({\n status: \"experiment-no-match\" as const,\n selector: input.experimentSelector,\n candidates: Object.freeze([...listed.experimentIds].sort()),\n });\n }\n if (selectedExperiments.length > 1) {\n return Object.freeze({\n status: \"experiment-ambiguous\" as const,\n selector: input.experimentSelector,\n candidates: Object.freeze(selectedExperiments.map(({ experiment }) => experiment.id)),\n });\n }\n const selection = selectedExperiments[0]!;\n const experiment = selection.experiment;\n const selectorEvalIds = new Set(selection.selectorEvalIds);\n const selectorEvals = listed.evals.filter((evalDef) => selectorEvalIds.has(evalDef.id));\n const selectedEvals = (input.evalSelector === undefined\n ? selectorEvals\n : uniqueExactOrPrefix(selectorEvals, input.evalSelector, (evalDef) => evalDef.id))\n .slice().sort((left, right) => left.id.localeCompare(right.id));\n if (selectedEvals.length === 0) {\n return Object.freeze({\n status: \"eval-no-match\" as const,\n selector: input.evalSelector ?? \"\",\n experimentId: experiment.id,\n candidates: Object.freeze(selectorEvals.map((evalDef) => evalDef.id).sort()),\n });\n }\n if (input.evalSelector !== undefined && selectedEvals.length > 1) {\n return Object.freeze({\n status: \"eval-ambiguous\" as const,\n selector: input.evalSelector,\n experimentId: experiment.id,\n candidates: Object.freeze(selectedEvals.map((evalDef) => evalDef.id)),\n });\n }\n const runs = selectedEvals.map((evalDef) => debugAgentRun(experiment, evalDef.id, input.config));\n const target = yield* planProjectTarget(listed.evals, runs, input.config.timeoutMs, { configJudge: input.config.judgeRuntime });\n const commandPlan = assembleCommandPlan({\n rows: selectedEvals.map((evalDef) => {\n const run = runs.find((candidate) => candidate.selectedEvalIds.includes(evalDef.id))!;\n return {\n experimentId: experiment.id,\n evalId: evalDef.id,\n ...(evalDef.evalGroup === undefined ? {} : { evalGroupId: evalDef.evalGroup.id }),\n attempts: run.attempts,\n dispatch: [{ attempts: Array.from({ length: run.attempts }, (_, attempt) => attempt) }],\n };\n }),\n preparedPairsByKey: target.preparedPairsByKey,\n });\n return Object.freeze({\n status: \"planned\" as const,\n experimentId: experiment.id,\n ...(selectedEvals.length === 1 ? { evalId: selectedEvals[0]!.id } : {}),\n evalIds: Object.freeze(selectedEvals.map((evalDef) => evalDef.id)),\n commandPlan,\n setupPrefixPlan: setupPrefixPlanOf(commandPlan),\n });\n }).pipe(Effect.mapError((cause) => new ExperimentHostError({\n operation: \"debug\",\n code: typeof cause === \"object\" && cause !== null && typeof Reflect.get(cause, \"code\") === \"string\"\n ? String(Reflect.get(cause, \"code\"))\n : \"experiment-host-operation-failed\",\n message: cause instanceof Error ? cause.message : String(cause),\n cause,\n })));\n}\n/** Internal operations retain their service requirements for the CLI composition. */\nexport const rawExperimentHost = Object.freeze({\n catalog,\n check,\n invocation: Object.freeze({ plan: planInvocation, run: runInvocation }),\n invocationStatus: Object.freeze({ list: listInvocationStatus, show: showInvocationStatus }),\n rename: Object.freeze({ plan: planRename, apply: applyRename }),\n teardown: Object.freeze({ inspect: inspectTeardown, run: runTeardown }),\n debug,\n accept,\n acceptRun: Object.freeze({ plan: planRunAccept, apply: applyRunAccept }),\n});\n"]}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["runtime.ts"],"names":[],"mappings":";;;AAAA,mCAAgC;AAChC,kEAA8H;AAC9H,0DAA8E;AAC9E,gEAAgE;AAChE,sEAAwE;AACxE,wDAA4D;AAE5D,oDAAkE;AAClE,4DAAoE;AACpE,mDAA6L;AAC7L,+CAA6D;AAC7D,yCAAiD;AAcjD;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAM1B;IACG,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,IAAA,2BAAa,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS;YACjC,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC,CAAC;QAC5F,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,IAAA,iCAAmB,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC5C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,GAAG,CAAC,IAAA,sCAAuB,EAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,WAAW;aACzB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACnF,GAAG,CAAC,CAAC,UAAU,EAA2B,EAAE;YAC7C,MAAM,QAAQ,GAAG,IAAA,0CAAsB,EAAC;gBACpC,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,QAAQ,EAAE,UAAU,CAAC,KAAK;gBAC1B,WAAW,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;gBACrC,KAAK,EAAE,eAAe;aACzB,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,UAAU;gBACV,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAC7D,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;aACpG,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YAChC,aAAa;YACb,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;SACxC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAwCD,SAAS,mBAAmB,CAAI,UAAwB,EAAE,QAAgB,EAAE,EAA4B;IACpG,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC;IACzE,OAAO,KAAK,KAAK,SAAS;QACtB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC;AACD,SAAS,aAAa,CAAC,UAAgC,EAAE,MAAc,EAAE,MAAc;IACnF,OAAO;QACH,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QAC9E,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QACzE,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,CAAC;QAClC,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,KAAK;QACxC,kBAAkB,EAAE,IAAA,oCAAyB,EAAC,SAAS,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;QACtG,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,GAAG,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;QACxF,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,GAAG,IAAA,8BAAiB,EAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC;QACrD,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,eAAe,EAAE,CAAC,MAAM,CAAC;QACzB,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,iBAAiB,EAAE,UAAU,CAAC,OAAO;QACrC,oBAAoB,EAAE,UAAU,CAAC,UAAU;QAC3C,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,KAAK,EAAE,UAAU,CAAC,MAAM;QACxB,QAAQ,EAAE,UAAU,CAAC,KAAK;KAC7B,CAAC;AACN,CAAC;AACD;;;;GAIG;AACH,SAAS,KAAK,CAAC,KAAqC;IAChD,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACrN,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,qBAA8B;gBACtC,QAAQ,EAAE,KAAK,CAAC,kBAAkB;gBAClC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;aAC9D,CAAC,CAAC;QACP,CAAC;QACD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,sBAA+B;gBACvC,QAAQ,EAAE,KAAK,CAAC,kBAAkB;gBAClC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACxF,CAAC,CAAC;QACP,CAAC;QACD,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;YACnD,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACjF,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,eAAwB;gBAChC,QAAQ,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;gBAClC,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aAC/E,CAAC,CAAC;QACP,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,gBAAyB;gBACjC,QAAQ,EAAE,KAAK,CAAC,YAAY;gBAC5B,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACxE,CAAC,CAAC;QACP,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACjG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAA,kCAAiB,EAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACjI,MAAM,WAAW,GAAG,IAAA,qCAAmB,EAAC;YACpC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAE,CAAC;gBACtF,OAAO;oBACH,YAAY,EAAE,UAAU,CAAC,EAAE;oBAC3B,MAAM,EAAE,OAAO,CAAC,EAAE;oBAClB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;oBACjF,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;iBAC1F,CAAC;YACN,CAAC,CAAC;YACF,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;SAChD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,SAAkB;YAC1B,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClE,WAAW;YACX,eAAe,EAAE,IAAA,mCAAiB,EAAC,WAAW,CAAC;SAClD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,8BAAmB,CAAC;QACvD,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,QAAQ;YAC/F,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC,CAAC,kCAAkC;QACxC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,KAAK;KACR,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,qFAAqF;AACxE,QAAA,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAP,uBAAO;IACP,KAAK,EAAL,qBAAK;IACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,8BAAc,EAAE,GAAG,EAAE,6BAAa,EAAE,CAAC;IACvE,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oCAAoB,EAAE,IAAI,EAAE,oCAAoB,EAAE,CAAC;IAC3F,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,0BAAU,EAAE,KAAK,EAAE,2BAAW,EAAE,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,6BAAe,EAAE,GAAG,EAAE,yBAAW,EAAE,CAAC;IACpE,KAAK;IACL,MAAM,EAAN,sBAAM;IACN,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,6BAAa,EAAE,KAAK,EAAE,8BAAc,EAAE,CAAC;CAC3E,CAAC,CAAC","sourcesContent":["import { Effect } from \"effect\";\nimport { assembleCommandPlan, beforeCachePlanOf, type CommandPlan, type BeforeCachePlan } from \"../../runner/command-plan.ts\";\nimport { discoverEvals, discoverExperiments } from \"../../runner/discover.ts\";\nimport { planProjectTarget } from \"../../runner/fingerprint.ts\";\nimport { resolveExperimentEvals } from \"../../runner/eval-selection.ts\";\nimport { resolveRunTimeout } from \"../../runner/timeout.ts\";\nimport type { AgentRun, Config, DiscoveredEval, DiscoveredExperiment, } from \"../../runner/types.ts\";\nimport { resolveSandboxBeforeCache } from \"../../runner/types.ts\";\nimport { matchExperimentSelector } from \"../../shared/aggregate.ts\";\nimport { accept, applyRunAccept, applyRename, catalog, check, listInvocationStatus, planInvocation, planRename, planRunAccept, runInvocation, showInvocationStatus, } from \"./operations.ts\";\nimport { inspectTeardown, runTeardown } from \"./teardown.ts\";\nimport { ExperimentHostError } from \"./types.ts\";\n/** One discovered Experiment after its author selector and CLI prefixes close. */\ninterface ExperimentHostSelection {\n readonly experiment: DiscoveredExperiment;\n readonly selectedEvalIds: readonly string[];\n /** The Experiment-owned set before CLI eval-prefix narrowing. */\n readonly selectorEvalIds: readonly string[];\n}\n/** Discovery result used by both `exp list` and execution planning. */\ninterface ExperimentHostListResult {\n readonly evals: readonly DiscoveredEval[];\n readonly experimentIds: readonly string[];\n readonly selections: readonly ExperimentHostSelection[];\n}\n/**\n * Discovery and selection are owned here so consumers cannot invoke an\n * Experiment's predicate a second time while reconstructing an AgentRun.\n */\nfunction discoverSelection(input: {\n readonly cwd: string;\n /** Keep the CLI's public `--tag` selection inside the Experiment boundary. */\n readonly tag?: string;\n readonly selector?: string;\n readonly evalPatterns?: readonly string[];\n}): Effect.Effect<ExperimentHostListResult, unknown> {\n return Effect.gen(function* () {\n const discoveredEvals = yield* discoverEvals(input.cwd);\n const evals = input.tag === undefined\n ? discoveredEvals\n : discoveredEvals.filter((evalDefinition) => evalDefinition.tags?.includes(input.tag!));\n const experiments = yield* discoverExperiments(input.cwd);\n const experimentIds = Object.freeze(experiments.map((experiment) => experiment.id));\n const selectedIds = input.selector === undefined\n ? undefined\n : new Set(matchExperimentSelector(experimentIds, input.selector));\n const selections = experiments\n .filter((experiment) => selectedIds === undefined || selectedIds.has(experiment.id))\n .map((experiment): ExperimentHostSelection => {\n const selected = resolveExperimentEvals({\n experimentId: experiment.id,\n models: experiment.models,\n tag: input.tag,\n selector: experiment.evals,\n cliPatterns: input.evalPatterns ?? [],\n evals: discoveredEvals,\n });\n return Object.freeze({\n experiment,\n selectedEvalIds: Object.freeze([...selected.selectedEvalIds]),\n selectorEvalIds: Object.freeze(selected.selectorEvals.map((evalDefinition) => evalDefinition.id)),\n });\n });\n return Object.freeze({\n evals: Object.freeze([...evals]),\n experimentIds,\n selections: Object.freeze(selections),\n });\n });\n}\nexport interface ExperimentHostDebugPlanRequest {\n readonly cwd: string;\n readonly config: Config;\n readonly experimentSelector: string;\n readonly evalSelector?: string;\n}\n/** A fully closed, read-only lifecycle plan for exactly one Experiment × Eval pair. */\nexport interface ExperimentHostDebugPlan {\n readonly status: \"planned\";\n readonly experimentId: string;\n /** Retained for the existing single-pair response. */\n readonly evalId?: string;\n readonly evalIds: readonly string[];\n readonly commandPlan: CommandPlan;\n readonly beforeCachePlan: BeforeCachePlan;\n}\n/**\n * Selector outcomes are data, rather than CLI-owned selection logic or a\n * partially constructed plan. The caller can render them in its own surface.\n */\nexport type ExperimentHostDebugPlanResult = ExperimentHostDebugPlan | {\n readonly status: \"experiment-no-match\";\n readonly selector: string;\n readonly candidates: readonly string[];\n} | {\n readonly status: \"experiment-ambiguous\";\n readonly selector: string;\n readonly candidates: readonly string[];\n} | {\n readonly status: \"eval-no-match\";\n readonly selector: string;\n readonly experimentId: string;\n readonly candidates: readonly string[];\n} | {\n readonly status: \"eval-ambiguous\";\n readonly selector: string;\n readonly experimentId: string;\n readonly candidates: readonly string[];\n};\nfunction uniqueExactOrPrefix<T>(candidates: readonly T[], selector: string, id: (candidate: T) => string): readonly T[] {\n const exact = candidates.find((candidate) => id(candidate) === selector);\n return exact === undefined\n ? candidates.filter((candidate) => id(candidate).startsWith(selector))\n : [exact];\n}\nfunction debugAgentRun(experiment: DiscoveredExperiment, evalId: string, config: Config): AgentRun {\n return {\n adapter: experiment.adapter,\n ...(experiment.adapter.kind === \"custom\" ? {} : { agent: experiment.adapter }),\n ...(experiment.models === undefined ? {} : { models: experiment.models }),\n model: experiment.model,\n reasoningEffort: experiment.reasoningEffort,\n flags: experiment.flags ?? {},\n plugins: experiment.plugins,\n attempts: experiment.attempts ?? 1,\n earlyExit: experiment.earlyExit ?? false,\n sandboxBeforeCache: resolveSandboxBeforeCache(undefined, experiment.sandboxCache, config.sandboxCache),\n sandbox: experiment.sandbox,\n sandboxReuse: experiment.sandboxReuse,\n ...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),\n judge: experiment.judge,\n ...resolveRunTimeout(undefined, experiment.timeoutMs),\n budget: experiment.budget,\n selectedEvalIds: [evalId],\n experimentId: experiment.id,\n experimentBaseDir: experiment.baseDir,\n experimentSourcePath: experiment.sourcePath,\n description: experiment.description,\n labels: experiment.labels,\n maxConcurrency: experiment.maxConcurrency,\n setup: experiment.before,\n teardown: experiment.after,\n };\n}\n/**\n * Closes selector resolution, physical planning, and command-plan projection\n * inside the Experiment Host. It deliberately does not construct a Record\n * root, enter a lease, read history, or invoke an author callback.\n */\nfunction debug(input: ExperimentHostDebugPlanRequest): Effect.Effect<ExperimentHostDebugPlanResult, ExperimentHostError> {\n return Effect.gen(function* () {\n const listed = yield* discoverSelection({ cwd: input.cwd });\n const selectedExperiments = uniqueExactOrPrefix(listed.selections, input.experimentSelector, ({ experiment }) => experiment.id).slice().sort((left, right) => left.experiment.id.localeCompare(right.experiment.id));\n if (selectedExperiments.length === 0) {\n return Object.freeze({\n status: \"experiment-no-match\" as const,\n selector: input.experimentSelector,\n candidates: Object.freeze([...listed.experimentIds].sort()),\n });\n }\n if (selectedExperiments.length > 1) {\n return Object.freeze({\n status: \"experiment-ambiguous\" as const,\n selector: input.experimentSelector,\n candidates: Object.freeze(selectedExperiments.map(({ experiment }) => experiment.id)),\n });\n }\n const selection = selectedExperiments[0]!;\n const experiment = selection.experiment;\n const selectorEvalIds = new Set(selection.selectorEvalIds);\n const selectorEvals = listed.evals.filter((evalDef) => selectorEvalIds.has(evalDef.id));\n const selectedEvals = (input.evalSelector === undefined\n ? selectorEvals\n : uniqueExactOrPrefix(selectorEvals, input.evalSelector, (evalDef) => evalDef.id))\n .slice().sort((left, right) => left.id.localeCompare(right.id));\n if (selectedEvals.length === 0) {\n return Object.freeze({\n status: \"eval-no-match\" as const,\n selector: input.evalSelector ?? \"\",\n experimentId: experiment.id,\n candidates: Object.freeze(selectorEvals.map((evalDef) => evalDef.id).sort()),\n });\n }\n if (input.evalSelector !== undefined && selectedEvals.length > 1) {\n return Object.freeze({\n status: \"eval-ambiguous\" as const,\n selector: input.evalSelector,\n experimentId: experiment.id,\n candidates: Object.freeze(selectedEvals.map((evalDef) => evalDef.id)),\n });\n }\n const runs = selectedEvals.map((evalDef) => debugAgentRun(experiment, evalDef.id, input.config));\n const target = yield* planProjectTarget(listed.evals, runs, input.config.timeoutMs, { configJudge: input.config.judgeProvider });\n const commandPlan = assembleCommandPlan({\n rows: selectedEvals.map((evalDef) => {\n const run = runs.find((candidate) => candidate.selectedEvalIds.includes(evalDef.id))!;\n return {\n experimentId: experiment.id,\n evalId: evalDef.id,\n ...(evalDef.evalGroup === undefined ? {} : { evalGroupId: evalDef.evalGroup.id }),\n attempts: run.attempts,\n dispatch: [{ attempts: Array.from({ length: run.attempts }, (_, attempt) => attempt) }],\n };\n }),\n preparedPairsByKey: target.preparedPairsByKey,\n });\n return Object.freeze({\n status: \"planned\" as const,\n experimentId: experiment.id,\n ...(selectedEvals.length === 1 ? { evalId: selectedEvals[0]!.id } : {}),\n evalIds: Object.freeze(selectedEvals.map((evalDef) => evalDef.id)),\n commandPlan,\n beforeCachePlan: beforeCachePlanOf(commandPlan),\n });\n }).pipe(Effect.mapError((cause) => new ExperimentHostError({\n operation: \"debug\",\n code: typeof cause === \"object\" && cause !== null && typeof Reflect.get(cause, \"code\") === \"string\"\n ? String(Reflect.get(cause, \"code\"))\n : \"experiment-host-operation-failed\",\n message: cause instanceof Error ? cause.message : String(cause),\n cause,\n })));\n}\n/** Internal operations retain their service requirements for the CLI composition. */\nexport const rawExperimentHost = Object.freeze({\n catalog,\n check,\n invocation: Object.freeze({ plan: planInvocation, run: runInvocation }),\n invocationStatus: Object.freeze({ list: listInvocationStatus, show: showInvocationStatus }),\n rename: Object.freeze({ plan: planRename, apply: applyRename }),\n after: Object.freeze({ inspect: inspectTeardown, run: runTeardown }),\n debug,\n accept,\n acceptRun: Object.freeze({ plan: planRunAccept, apply: applyRunAccept }),\n});\n"]}
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- import { type CommandPlan, type SetupPrefixPlan } from "../../runner/command-plan.cjs";
2
+ import { type CommandPlan, type BeforeCachePlan } from "../../runner/command-plan.cjs";
3
3
  import type { Config } from "../../runner/types.cjs";
4
4
  import { accept, applyRunAccept, applyRename, catalog, check, listInvocationStatus, planInvocation, planRename, planRunAccept, runInvocation, showInvocationStatus } from "./operations.cjs";
5
5
  import { inspectTeardown, runTeardown } from "./teardown.cjs";
@@ -18,7 +18,7 @@ export interface ExperimentHostDebugPlan {
18
18
  readonly evalId?: string;
19
19
  readonly evalIds: readonly string[];
20
20
  readonly commandPlan: CommandPlan;
21
- readonly setupPrefixPlan: SetupPrefixPlan;
21
+ readonly beforeCachePlan: BeforeCachePlan;
22
22
  }
23
23
  /**
24
24
  * Selector outcomes are data, rather than CLI-owned selection logic or a
@@ -65,7 +65,7 @@ export declare const rawExperimentHost: Readonly<{
65
65
  plan: typeof planRename;
66
66
  apply: typeof applyRename;
67
67
  }>;
68
- teardown: Readonly<{
68
+ after: Readonly<{
69
69
  inspect: typeof inspectTeardown;
70
70
  run: typeof runTeardown;
71
71
  }>;
@@ -1,5 +1,5 @@
1
1
  import { Effect } from "effect";
2
- import { type CommandPlan, type SetupPrefixPlan } from "../../runner/command-plan.mjs";
2
+ import { type CommandPlan, type BeforeCachePlan } from "../../runner/command-plan.mjs";
3
3
  import type { Config } from "../../runner/types.mjs";
4
4
  import { accept, applyRunAccept, applyRename, catalog, check, listInvocationStatus, planInvocation, planRename, planRunAccept, runInvocation, showInvocationStatus } from "./operations.mjs";
5
5
  import { inspectTeardown, runTeardown } from "./teardown.mjs";
@@ -18,7 +18,7 @@ export interface ExperimentHostDebugPlan {
18
18
  readonly evalId?: string;
19
19
  readonly evalIds: readonly string[];
20
20
  readonly commandPlan: CommandPlan;
21
- readonly setupPrefixPlan: SetupPrefixPlan;
21
+ readonly beforeCachePlan: BeforeCachePlan;
22
22
  }
23
23
  /**
24
24
  * Selector outcomes are data, rather than CLI-owned selection logic or a
@@ -65,7 +65,7 @@ export declare const rawExperimentHost: Readonly<{
65
65
  plan: typeof planRename;
66
66
  apply: typeof applyRename;
67
67
  }>;
68
- teardown: Readonly<{
68
+ after: Readonly<{
69
69
  inspect: typeof inspectTeardown;
70
70
  run: typeof runTeardown;
71
71
  }>;