niceeval 0.13.2 → 0.13.3

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 (494) hide show
  1. package/dist/agents/bub.cjs +4 -4
  2. package/dist/agents/bub.cjs.map +1 -1
  3. package/dist/agents/bub.d.cts +2 -2
  4. package/dist/agents/bub.d.mts +2 -2
  5. package/dist/agents/bub.d.ts +2 -2
  6. package/dist/agents/claude-code-native.cjs +213 -0
  7. package/dist/agents/claude-code-native.cjs.map +1 -0
  8. package/dist/agents/claude-code-native.d.cts +5 -0
  9. package/dist/agents/claude-code-native.d.mts +5 -0
  10. package/dist/agents/claude-code-native.d.ts +5 -0
  11. package/dist/agents/claude-code-native.js +6 -0
  12. package/dist/agents/claude-code-native.js.map +1 -0
  13. package/dist/agents/claude-code.cjs +26 -80
  14. package/dist/agents/claude-code.cjs.map +1 -1
  15. package/dist/agents/codex-app-server.cjs +314 -0
  16. package/dist/agents/codex-app-server.cjs.map +1 -0
  17. package/dist/agents/codex-app-server.d.cts +9 -0
  18. package/dist/agents/codex-app-server.d.mts +9 -0
  19. package/dist/agents/codex-app-server.d.ts +9 -0
  20. package/dist/agents/codex-app-server.js +6 -0
  21. package/dist/agents/codex-app-server.js.map +1 -0
  22. package/dist/agents/codex.cjs +19 -68
  23. package/dist/agents/codex.cjs.map +1 -1
  24. package/dist/agents/codex.d.cts +3 -3
  25. package/dist/agents/codex.d.mts +3 -3
  26. package/dist/agents/codex.d.ts +3 -3
  27. package/dist/agents/index.cjs +3 -1
  28. package/dist/agents/index.cjs.map +1 -1
  29. package/dist/agents/index.d.cts +1 -0
  30. package/dist/agents/index.d.mts +1 -0
  31. package/dist/agents/index.d.ts +1 -0
  32. package/dist/agents/index.js +84 -82
  33. package/dist/agents/index.mjs +84 -82
  34. package/dist/agents/managed-jsonl.cjs +207 -0
  35. package/dist/agents/managed-jsonl.cjs.map +1 -0
  36. package/dist/agents/managed-jsonl.d.cts +39 -0
  37. package/dist/agents/managed-jsonl.d.mts +39 -0
  38. package/dist/agents/managed-jsonl.d.ts +39 -0
  39. package/dist/agents/managed-jsonl.js +6 -0
  40. package/dist/agents/managed-jsonl.js.map +1 -0
  41. package/dist/agents/managed-process.cjs +31 -0
  42. package/dist/agents/managed-process.cjs.map +1 -0
  43. package/dist/agents/managed-process.d.cts +3 -0
  44. package/dist/agents/managed-process.d.mts +3 -0
  45. package/dist/agents/managed-process.d.ts +3 -0
  46. package/dist/agents/managed-process.js +6 -0
  47. package/dist/agents/managed-process.js.map +1 -0
  48. package/dist/agents/omp.cjs +18 -1
  49. package/dist/agents/omp.cjs.map +1 -1
  50. package/dist/agents/sdk-streams.cjs +11 -4
  51. package/dist/agents/sdk-streams.cjs.map +1 -1
  52. package/dist/agents/types.cjs.map +1 -1
  53. package/dist/agents/types.d.cts +8 -0
  54. package/dist/agents/types.d.mts +8 -0
  55. package/dist/agents/types.d.ts +8 -0
  56. package/dist/analysis/bindings.cjs +74 -19
  57. package/dist/analysis/bindings.cjs.map +1 -1
  58. package/dist/analysis/bindings.d.cts +534 -156
  59. package/dist/analysis/bindings.d.mts +534 -156
  60. package/dist/analysis/bindings.d.ts +534 -156
  61. package/dist/analysis/domain-view.cjs.map +1 -1
  62. package/dist/analysis/domain-view.d.cts +137 -8
  63. package/dist/analysis/domain-view.d.mts +137 -8
  64. package/dist/analysis/domain-view.d.ts +137 -8
  65. package/dist/analysis/index.cjs.map +1 -1
  66. package/dist/analysis/index.d.cts +1 -1
  67. package/dist/analysis/index.d.mts +1 -1
  68. package/dist/analysis/index.d.ts +1 -1
  69. package/dist/assertions/api.cjs.map +1 -1
  70. package/dist/assertions/api.d.cts +62 -0
  71. package/dist/assertions/api.d.mts +62 -0
  72. package/dist/assertions/api.d.ts +62 -0
  73. package/dist/assertions/judge.cjs +56 -5
  74. package/dist/assertions/judge.cjs.map +1 -1
  75. package/dist/assertions/match.cjs +66 -42
  76. package/dist/assertions/match.cjs.map +1 -1
  77. package/dist/assertions/match.d.cts +13 -0
  78. package/dist/assertions/match.d.mts +13 -0
  79. package/dist/assertions/match.d.ts +13 -0
  80. package/dist/assertions/record/attachment.cjs +104 -33
  81. package/dist/assertions/record/attachment.cjs.map +1 -1
  82. package/dist/assertions/record/attachment.d.cts +294 -57
  83. package/dist/assertions/record/attachment.d.mts +294 -57
  84. package/dist/assertions/record/attachment.d.ts +294 -57
  85. package/dist/assertions/record/codec.cjs +91 -17
  86. package/dist/assertions/record/codec.cjs.map +1 -1
  87. package/dist/assertions/record/codec.d.cts +280 -52
  88. package/dist/assertions/record/codec.d.mts +280 -52
  89. package/dist/assertions/record/codec.d.ts +280 -52
  90. package/dist/assertions/record/index.js +2 -0
  91. package/dist/assertions/record/model.cjs +16 -0
  92. package/dist/assertions/record/model.cjs.map +1 -1
  93. package/dist/assertions/record/model.d.cts +120 -13
  94. package/dist/assertions/record/model.d.mts +120 -13
  95. package/dist/assertions/record/model.d.ts +120 -13
  96. package/dist/assertions/record/model.js +2 -0
  97. package/dist/assertions/record/producer.cjs +70 -50
  98. package/dist/assertions/record/producer.cjs.map +1 -1
  99. package/dist/assertions/record/producer.d.cts +8 -7
  100. package/dist/assertions/record/producer.d.mts +8 -7
  101. package/dist/assertions/record/producer.d.ts +8 -7
  102. package/dist/assertions/runtime.cjs +49 -7
  103. package/dist/assertions/runtime.cjs.map +1 -1
  104. package/dist/cli/application.cjs +40 -0
  105. package/dist/cli/application.cjs.map +1 -0
  106. package/dist/cli/application.d.cts +129 -0
  107. package/dist/cli/application.d.mts +129 -0
  108. package/dist/cli/application.d.ts +129 -0
  109. package/dist/cli/application.js +24 -0
  110. package/dist/cli/application.js.map +1 -0
  111. package/dist/cli/bootstrap.cjs +10 -4
  112. package/dist/cli/bootstrap.cjs.map +1 -1
  113. package/dist/cli/node-application.cjs +123 -0
  114. package/dist/cli/node-application.cjs.map +1 -0
  115. package/dist/cli/node-application.d.cts +14 -0
  116. package/dist/cli/node-application.d.mts +14 -0
  117. package/dist/cli/node-application.d.ts +14 -0
  118. package/dist/cli/node-application.js +26 -0
  119. package/dist/cli/node-application.js.map +1 -0
  120. package/dist/cli/program.cjs +2807 -0
  121. package/dist/cli/program.cjs.map +1 -0
  122. package/dist/cli/program.d.cts +352 -0
  123. package/dist/cli/program.d.mts +352 -0
  124. package/dist/cli/program.d.ts +352 -0
  125. package/dist/cli/program.js +36 -0
  126. package/dist/cli/program.js.map +1 -0
  127. package/dist/cli/project-configuration.cjs +134 -0
  128. package/dist/cli/project-configuration.cjs.map +1 -0
  129. package/dist/cli/project-configuration.d.cts +64 -0
  130. package/dist/cli/project-configuration.d.mts +64 -0
  131. package/dist/cli/project-configuration.d.ts +64 -0
  132. package/dist/cli/project-configuration.js +22 -0
  133. package/dist/cli/project-configuration.js.map +1 -0
  134. package/dist/cli/record.cjs +20 -4
  135. package/dist/cli/record.cjs.map +1 -1
  136. package/dist/cli/record.d.cts +3 -3
  137. package/dist/cli/record.d.mts +3 -3
  138. package/dist/cli/record.d.ts +3 -3
  139. package/dist/cli.cjs +19 -3130
  140. package/dist/cli.cjs.map +1 -1
  141. package/dist/cli.d.cts +2 -148
  142. package/dist/cli.d.mts +2 -148
  143. package/dist/cli.d.ts +2 -148
  144. package/dist/cli.js +22 -30
  145. package/dist/context/assert-first.cjs +21 -15
  146. package/dist/context/assert-first.cjs.map +1 -1
  147. package/dist/context/assert-first.d.cts +1 -0
  148. package/dist/context/assert-first.d.mts +1 -0
  149. package/dist/context/assert-first.d.ts +1 -0
  150. package/dist/context/attempt-resources.cjs +13 -0
  151. package/dist/context/attempt-resources.cjs.map +1 -0
  152. package/dist/context/attempt-resources.d.cts +3 -0
  153. package/dist/context/attempt-resources.d.mts +3 -0
  154. package/dist/context/attempt-resources.d.ts +3 -0
  155. package/dist/context/attempt-resources.js +8 -0
  156. package/dist/context/attempt-resources.js.map +1 -0
  157. package/dist/context/session.cjs +4 -3
  158. package/dist/context/session.cjs.map +1 -1
  159. package/dist/context/session.d.cts +1 -0
  160. package/dist/context/session.d.mts +1 -0
  161. package/dist/context/session.d.ts +1 -0
  162. package/dist/eval/record/verdict.cjs +3 -2
  163. package/dist/eval/record/verdict.cjs.map +1 -1
  164. package/dist/experiment/host/index.cjs +1 -6
  165. package/dist/experiment/host/index.cjs.map +1 -1
  166. package/dist/experiment/host/index.d.cts +1 -0
  167. package/dist/experiment/host/index.d.mts +1 -0
  168. package/dist/experiment/host/index.d.ts +1 -0
  169. package/dist/load-config.cjs +13 -4
  170. package/dist/load-config.cjs.map +1 -1
  171. package/dist/load-config.d.cts +4 -3
  172. package/dist/load-config.d.mts +4 -3
  173. package/dist/load-config.d.ts +4 -3
  174. package/dist/load-config.js +4 -2
  175. package/dist/o11y/parsers/codex.cjs +29 -7
  176. package/dist/o11y/parsers/codex.cjs.map +1 -1
  177. package/dist/record/codec/core.d.cts +0 -2
  178. package/dist/record/codec/core.d.mts +0 -2
  179. package/dist/record/codec/core.d.ts +0 -2
  180. package/dist/record/codec/identifiers.cjs +2 -3
  181. package/dist/record/codec/identifiers.cjs.map +1 -1
  182. package/dist/record/codec/identifiers.d.cts +1 -2
  183. package/dist/record/codec/identifiers.d.mts +1 -2
  184. package/dist/record/codec/identifiers.d.ts +1 -2
  185. package/dist/record/codec/identifiers.js +10 -12
  186. package/dist/record/codec/index.js +42 -44
  187. package/dist/record/definition/attachment.cjs +1 -0
  188. package/dist/record/definition/attachment.cjs.map +1 -1
  189. package/dist/record/definition/attachment.d.cts +14 -0
  190. package/dist/record/definition/attachment.d.mts +14 -0
  191. package/dist/record/definition/attachment.d.ts +14 -0
  192. package/dist/record/family/assertions-v1.cjs +104 -0
  193. package/dist/record/family/assertions-v1.cjs.map +1 -0
  194. package/dist/record/family/assertions-v1.d.cts +2 -0
  195. package/dist/record/family/assertions-v1.d.mts +2 -0
  196. package/dist/record/family/assertions-v1.d.ts +2 -0
  197. package/dist/record/family/assertions-v1.js +6 -0
  198. package/dist/record/family/assertions-v1.js.map +1 -0
  199. package/dist/record/family/assertions.cjs +16 -5
  200. package/dist/record/family/assertions.cjs.map +1 -1
  201. package/dist/record/family/assertions.d.cts +510 -56
  202. package/dist/record/family/assertions.d.mts +510 -56
  203. package/dist/record/family/assertions.d.ts +510 -56
  204. package/dist/record/family/assertions.js +14 -10
  205. package/dist/record/family/catalog.cjs +17 -1
  206. package/dist/record/family/catalog.cjs.map +1 -1
  207. package/dist/record/family/catalog.d.cts +1292 -104
  208. package/dist/record/family/catalog.d.mts +1292 -104
  209. package/dist/record/family/catalog.d.ts +1292 -104
  210. package/dist/record/family/catalog.js +22 -20
  211. package/dist/record/family/index.js +144 -138
  212. package/dist/record/family/observability-v1.cjs +5 -0
  213. package/dist/record/family/observability-v1.cjs.map +1 -1
  214. package/dist/record/family/observability.cjs +1 -1
  215. package/dist/record/family/observability.cjs.map +1 -1
  216. package/dist/record/host/runtime.cjs +323 -173
  217. package/dist/record/host/runtime.cjs.map +1 -1
  218. package/dist/record/host/types.cjs.map +1 -1
  219. package/dist/record/host/types.d.cts +9 -7
  220. package/dist/record/host/types.d.mts +9 -7
  221. package/dist/record/host/types.d.ts +9 -7
  222. package/dist/record/model/core.cjs.map +1 -1
  223. package/dist/record/model/core.d.cts +1 -2
  224. package/dist/record/model/core.d.mts +1 -2
  225. package/dist/record/model/core.d.ts +1 -2
  226. package/dist/record/model/definition.cjs +1 -2
  227. package/dist/record/model/definition.cjs.map +1 -1
  228. package/dist/record/model/definition.d.cts +1 -7
  229. package/dist/record/model/definition.d.mts +1 -7
  230. package/dist/record/model/definition.d.ts +1 -7
  231. package/dist/record/model/identifiers.cjs +2 -3
  232. package/dist/record/model/identifiers.cjs.map +1 -1
  233. package/dist/record/model/identifiers.d.cts +1 -3
  234. package/dist/record/model/identifiers.d.mts +1 -3
  235. package/dist/record/model/identifiers.d.ts +1 -3
  236. package/dist/record/model/identifiers.js +36 -38
  237. package/dist/record/model/index.js +60 -62
  238. package/dist/record/platform/node.cjs +17 -7
  239. package/dist/record/platform/node.cjs.map +1 -1
  240. package/dist/record/platform/services.cjs.map +1 -1
  241. package/dist/record/platform/services.d.cts +8 -3
  242. package/dist/record/platform/services.d.mts +8 -3
  243. package/dist/record/platform/services.d.ts +8 -3
  244. package/dist/record/reader/format.cjs +16 -65
  245. package/dist/record/reader/format.cjs.map +1 -1
  246. package/dist/record/reader/format.d.cts +5 -9
  247. package/dist/record/reader/format.d.mts +5 -9
  248. package/dist/record/reader/format.d.ts +5 -9
  249. package/dist/record/reader/index.js +10 -8
  250. package/dist/record/reader/runtime.cjs +63 -32
  251. package/dist/record/reader/runtime.cjs.map +1 -1
  252. package/dist/record/reader/runtime.d.cts +40 -4
  253. package/dist/record/reader/runtime.d.mts +40 -4
  254. package/dist/record/reader/runtime.d.ts +40 -4
  255. package/dist/record/reader/runtime.js +6 -4
  256. package/dist/report/assets/enhance.js +5 -5
  257. package/dist/report/assets/styles.css +190 -24
  258. package/dist/report/built-in/result-components.cjs +8 -5
  259. package/dist/report/built-in/result-components.cjs.map +1 -1
  260. package/dist/report/built-in/standard.cjs +3 -0
  261. package/dist/report/built-in/standard.cjs.map +1 -1
  262. package/dist/report/built-in/standard.d.cts +2 -0
  263. package/dist/report/built-in/standard.d.mts +2 -0
  264. package/dist/report/built-in/standard.d.ts +2 -0
  265. package/dist/report/client-dist/app.js +53 -0
  266. package/dist/report/components/attempt-detail/compute.cjs +108 -231
  267. package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
  268. package/dist/report/components/attempt-detail/compute.d.cts +11 -45
  269. package/dist/report/components/attempt-detail/compute.d.mts +11 -45
  270. package/dist/report/components/attempt-detail/compute.d.ts +11 -45
  271. package/dist/report/components/attempt-detail/compute.js +2 -4
  272. package/dist/report/components/attempt-detail/content.cjs +4 -4
  273. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  274. package/dist/report/components/attempt-detail/validate.cjs +47 -4
  275. package/dist/report/components/attempt-detail/validate.cjs.map +1 -1
  276. package/dist/report/components/entity-lists/compute.cjs +9 -15
  277. package/dist/report/components/entity-lists/compute.cjs.map +1 -1
  278. package/dist/report/components/entity-lists/content.cjs +53 -40
  279. package/dist/report/components/entity-lists/content.cjs.map +1 -1
  280. package/dist/report/components/entity-lists/index.cjs +1 -3
  281. package/dist/report/components/entity-lists/index.cjs.map +1 -1
  282. package/dist/report/components/experiment-detail/compute.cjs +4 -6
  283. package/dist/report/components/experiment-detail/compute.cjs.map +1 -1
  284. package/dist/report/components/summaries/index.cjs +5 -1
  285. package/dist/report/components/summaries/index.cjs.map +1 -1
  286. package/dist/report/definition/cell.cjs +14 -7
  287. package/dist/report/definition/cell.cjs.map +1 -1
  288. package/dist/report/definition/cell.d.cts +4 -0
  289. package/dist/report/definition/cell.d.mts +4 -0
  290. package/dist/report/definition/cell.d.ts +4 -0
  291. package/dist/report/definition/primitives/assertion-evidence.cjs +96 -0
  292. package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -0
  293. package/dist/report/definition/primitives/assertion-evidence.d.cts +11 -0
  294. package/dist/report/definition/primitives/assertion-evidence.d.mts +11 -0
  295. package/dist/report/definition/primitives/assertion-evidence.d.ts +11 -0
  296. package/dist/report/definition/primitives/assertion-evidence.js +6 -0
  297. package/dist/report/definition/primitives/assertion-evidence.js.map +1 -0
  298. package/dist/report/definition/primitives/conversation.cjs +7 -0
  299. package/dist/report/definition/primitives/conversation.cjs.map +1 -1
  300. package/dist/report/definition/primitives/conversation.d.cts +2 -0
  301. package/dist/report/definition/primitives/conversation.d.mts +2 -0
  302. package/dist/report/definition/primitives/conversation.d.ts +2 -0
  303. package/dist/report/definition/primitives/turn-trace.cjs +53 -3
  304. package/dist/report/definition/primitives/turn-trace.cjs.map +1 -1
  305. package/dist/report/definition/primitives.cjs +14 -1
  306. package/dist/report/definition/primitives.cjs.map +1 -1
  307. package/dist/report/definition/report.cjs +16 -8
  308. package/dist/report/definition/report.cjs.map +1 -1
  309. package/dist/report/definition/report.d.cts +6 -0
  310. package/dist/report/definition/report.d.mts +6 -0
  311. package/dist/report/definition/report.d.ts +6 -0
  312. package/dist/report/definition/table-text.cjs +12 -3
  313. package/dist/report/definition/table-text.cjs.map +1 -1
  314. package/dist/report/definition/table-text.d.cts +6 -1
  315. package/dist/report/definition/table-text.d.mts +6 -1
  316. package/dist/report/definition/table-text.d.ts +6 -1
  317. package/dist/report/execution/model.cjs +6 -14
  318. package/dist/report/execution/model.cjs.map +1 -1
  319. package/dist/report/execution/model.d.cts +5 -10
  320. package/dist/report/execution/model.d.mts +5 -10
  321. package/dist/report/execution/model.d.ts +5 -10
  322. package/dist/report/execution/model.js +6 -6
  323. package/dist/report/execution/paths.cjs +0 -11
  324. package/dist/report/execution/paths.cjs.map +1 -1
  325. package/dist/report/execution/paths.d.cts +0 -1
  326. package/dist/report/execution/paths.d.mts +0 -1
  327. package/dist/report/execution/paths.d.ts +0 -1
  328. package/dist/report/execution/paths.js +6 -8
  329. package/dist/report/host/execute.cjs +13 -22
  330. package/dist/report/host/execute.cjs.map +1 -1
  331. package/dist/report/host/execute.d.cts +1 -4
  332. package/dist/report/host/execute.d.mts +1 -4
  333. package/dist/report/host/execute.d.ts +1 -4
  334. package/dist/report/host/from-record.cjs +3 -0
  335. package/dist/report/host/from-record.cjs.map +1 -1
  336. package/dist/report/host/from-record.d.cts +4 -1
  337. package/dist/report/host/from-record.d.mts +4 -1
  338. package/dist/report/host/from-record.d.ts +4 -1
  339. package/dist/report/host/site-assets.cjs +1 -2
  340. package/dist/report/host/site-assets.cjs.map +1 -1
  341. package/dist/report/host/site-assets.d.cts +0 -1
  342. package/dist/report/host/site-assets.d.mts +0 -1
  343. package/dist/report/host/site-assets.d.ts +0 -1
  344. package/dist/report/host/site-assets.js +2 -4
  345. package/dist/report/host/static.cjs +71 -346
  346. package/dist/report/host/static.cjs.map +1 -1
  347. package/dist/report/host/static.d.cts +1 -3
  348. package/dist/report/host/static.d.mts +1 -3
  349. package/dist/report/host/static.d.ts +1 -3
  350. package/dist/report/host/static.js +2 -2
  351. package/dist/report/host/view-session.cjs.map +1 -1
  352. package/dist/report/host/view-session.d.cts +1 -1
  353. package/dist/report/host/view-session.d.mts +1 -1
  354. package/dist/report/host/view-session.d.ts +1 -1
  355. package/dist/report/model/locale.cjs +1 -1
  356. package/dist/report/model/locale.cjs.map +1 -1
  357. package/dist/report/model/locale.d.cts +1 -1
  358. package/dist/report/model/locale.d.mts +1 -1
  359. package/dist/report/model/locale.d.ts +1 -1
  360. package/dist/report/model/pricing.cjs +2 -2
  361. package/dist/report/model/pricing.cjs.map +1 -1
  362. package/dist/report/react/enhance.js +5 -5
  363. package/dist/report/react/styles.css +190 -24
  364. package/dist/runner/adoption.cjs +4 -7
  365. package/dist/runner/adoption.cjs.map +1 -1
  366. package/dist/runner/attempt-resources.cjs +60 -0
  367. package/dist/runner/attempt-resources.cjs.map +1 -0
  368. package/dist/runner/attempt-resources.d.cts +13 -0
  369. package/dist/runner/attempt-resources.d.mts +13 -0
  370. package/dist/runner/attempt-resources.d.ts +13 -0
  371. package/dist/runner/attempt-resources.js +6 -0
  372. package/dist/runner/attempt-resources.js.map +1 -0
  373. package/dist/runner/attempt.cjs +37 -3
  374. package/dist/runner/attempt.cjs.map +1 -1
  375. package/dist/runner/feedback/failure.cjs +77 -2
  376. package/dist/runner/feedback/failure.cjs.map +1 -1
  377. package/dist/runner/feedback/failure.d.cts +2 -1
  378. package/dist/runner/feedback/failure.d.mts +2 -1
  379. package/dist/runner/feedback/failure.d.ts +2 -1
  380. package/dist/runner/project-current.cjs +2 -13
  381. package/dist/runner/project-current.cjs.map +1 -1
  382. package/dist/runner/project-current.d.cts +4 -2
  383. package/dist/runner/project-current.d.mts +4 -2
  384. package/dist/runner/project-current.d.ts +4 -2
  385. package/dist/runner/reporters/braintrust.cjs +7 -7
  386. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  387. package/dist/runner/reuse-readback.cjs +3 -4
  388. package/dist/runner/reuse-readback.cjs.map +1 -1
  389. package/dist/runner/run.cjs +5 -2
  390. package/dist/runner/run.cjs.map +1 -1
  391. package/dist/sandbox/backend.cjs +32 -2
  392. package/dist/sandbox/backend.cjs.map +1 -1
  393. package/dist/sandbox/backend.d.cts +12 -1
  394. package/dist/sandbox/backend.d.mts +12 -1
  395. package/dist/sandbox/backend.d.ts +12 -1
  396. package/dist/sandbox/backend.js +28 -22
  397. package/dist/sandbox/docker.cjs +140 -0
  398. package/dist/sandbox/docker.cjs.map +1 -1
  399. package/dist/sandbox/docker.d.cts +3 -1
  400. package/dist/sandbox/docker.d.mts +3 -1
  401. package/dist/sandbox/docker.d.ts +3 -1
  402. package/dist/sandbox/e2b.cjs +42 -0
  403. package/dist/sandbox/e2b.cjs.map +1 -1
  404. package/dist/sandbox/e2b.d.cts +2 -0
  405. package/dist/sandbox/e2b.d.mts +2 -0
  406. package/dist/sandbox/e2b.d.ts +2 -0
  407. package/dist/sandbox/local.cjs +64 -0
  408. package/dist/sandbox/local.cjs.map +1 -1
  409. package/dist/sandbox/local.d.cts +3 -1
  410. package/dist/sandbox/local.d.mts +3 -1
  411. package/dist/sandbox/local.d.ts +3 -1
  412. package/dist/sandbox/managed-process.cjs +49 -0
  413. package/dist/sandbox/managed-process.cjs.map +1 -0
  414. package/dist/sandbox/managed-process.d.cts +11 -0
  415. package/dist/sandbox/managed-process.d.mts +11 -0
  416. package/dist/sandbox/managed-process.d.ts +11 -0
  417. package/dist/sandbox/managed-process.js +6 -0
  418. package/dist/sandbox/managed-process.js.map +1 -0
  419. package/dist/sandbox/types.cjs.map +1 -1
  420. package/dist/sandbox/types.d.cts +24 -0
  421. package/dist/sandbox/types.d.mts +24 -0
  422. package/dist/sandbox/types.d.ts +24 -0
  423. package/dist/sandbox/vercel.cjs +1 -0
  424. package/dist/sandbox/vercel.cjs.map +1 -1
  425. package/dist/sandbox/vercel.d.cts +1 -0
  426. package/dist/sandbox/vercel.d.mts +1 -0
  427. package/dist/sandbox/vercel.d.ts +1 -0
  428. package/dist/view/server.cjs +2 -37
  429. package/dist/view/server.cjs.map +1 -1
  430. package/dist/view/server.d.cts +0 -3
  431. package/dist/view/server.d.mts +0 -3
  432. package/dist/view/server.d.ts +0 -3
  433. package/docs-site/zh/reference/builtin-agents.mdx +7 -7
  434. package/docs-site/zh/reference/official-adapters.mdx +4 -4
  435. package/docs-site/zh/reference/report-components.mdx +2 -2
  436. package/docs-site/zh/tutorials/configuration.mdx +2 -2
  437. package/docs-site/zh/tutorials/deploy-report-site.mdx +24 -2
  438. package/docs-site/zh/tutorials/publish-report.mdx +4 -4
  439. package/docs-site/zh/tutorials/sandbox-agent.mdx +5 -5
  440. package/docs-site/zh/tutorials/theming.mdx +2 -2
  441. package/package.json +4 -6
  442. package/dist/record/migration/index.cjs +0 -5
  443. package/dist/record/migration/index.cjs.map +0 -1
  444. package/dist/record/migration/index.d.cts +0 -11
  445. package/dist/record/migration/index.d.mts +0 -11
  446. package/dist/record/migration/index.d.ts +0 -11
  447. package/dist/record/migration/index.js +0 -6
  448. package/dist/record/migration/index.js.map +0 -1
  449. package/dist/report/host/site-runtime.cjs +0 -92
  450. package/dist/report/host/site-runtime.cjs.map +0 -1
  451. package/dist/report/host/site-runtime.d.cts +0 -9
  452. package/dist/report/host/site-runtime.d.mts +0 -9
  453. package/dist/report/host/site-runtime.d.ts +0 -9
  454. package/dist/report/host/site-runtime.js +0 -10
  455. package/dist/report/host/site-runtime.js.map +0 -1
  456. package/dist/view/client-dist/app.css +0 -2
  457. package/dist/view/client-dist/app.js +0 -49
  458. package/dist/view/data.cjs +0 -3
  459. package/dist/view/data.cjs.map +0 -1
  460. package/dist/view/data.d.cts +0 -9
  461. package/dist/view/data.d.mts +0 -9
  462. package/dist/view/data.d.ts +0 -9
  463. package/dist/view/data.js +0 -4
  464. package/dist/view/data.js.map +0 -1
  465. package/dist/view/index.cjs +0 -24
  466. package/dist/view/index.cjs.map +0 -1
  467. package/dist/view/index.d.cts +0 -9
  468. package/dist/view/index.d.mts +0 -9
  469. package/dist/view/index.d.ts +0 -9
  470. package/dist/view/index.js +0 -28
  471. package/dist/view/index.js.map +0 -1
  472. package/dist/view/report-view-cache.cjs +0 -200
  473. package/dist/view/report-view-cache.cjs.map +0 -1
  474. package/dist/view/report-view-cache.d.cts +0 -67
  475. package/dist/view/report-view-cache.d.mts +0 -67
  476. package/dist/view/report-view-cache.d.ts +0 -67
  477. package/dist/view/report-view-cache.js +0 -8
  478. package/dist/view/report-view-cache.js.map +0 -1
  479. package/dist/view/shared/types.cjs +0 -3
  480. package/dist/view/shared/types.cjs.map +0 -1
  481. package/dist/view/shared/types.d.cts +0 -51
  482. package/dist/view/shared/types.d.mts +0 -51
  483. package/dist/view/shared/types.d.ts +0 -51
  484. package/dist/view/shared/types.js +0 -4
  485. package/dist/view/shared/types.js.map +0 -1
  486. package/dist/view/site.cjs +0 -32
  487. package/dist/view/site.cjs.map +0 -1
  488. package/dist/view/site.d.cts +0 -24
  489. package/dist/view/site.d.mts +0 -24
  490. package/dist/view/site.d.ts +0 -24
  491. package/dist/view/site.js +0 -8
  492. package/dist/view/site.js.map +0 -1
  493. package/dist/view/styles.css +0 -170
  494. package/dist/view/template.html +0 -17
@@ -1 +1 @@
1
- {"version":3,"file":"assert-first.js","sourceRoot":"","sources":["assert-first.ts"],"names":[],"mappings":";;AAgzCA,oEA6xBC;AA7kED;;;;GAIG;AACH,+CAA4C;AAC5C,yCAA8C;AAC9C,mCAAgC;AAChC,yDAA6H;AAE7H,qDAAiI;AACjI,uEAA+O;AAC/O,mDAA4G;AAC5G,qDAAqW;AACrW,iDAAyG;AACzG,6CAA+C;AAC/C,yEAAiF;AACjF,oDAAmE;AACnE,6CAA+F;AAC/F,uDAAgD;AAGhD,2DAAsD;AA2MtD,SAAS,cAAc,CAAC,KAAqB,EAAE,YAA+C,WAAW;IACrG,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,cAAuB;QAC7B,KAAK;QACL,SAAS;KACZ,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAqB,EAAE,UAA4B,EAAE,OAA2B,EAAE,UAA+B;IAC1I,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,YAAqB;QAC3B,KAAK;QACL,UAAU;QACV,SAAS,EAAE,UAAU,CAAC,IAAI,KAAK,QAAQ;YACnC,CAAC,CAAC,QAAiB;YACnB,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;gBACzB,CAAC,CAAC,OAAgB;gBAClB,CAAC,CAAC,SAAkB;QAC5B,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ;YAClD,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE;YAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;KAC5D,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAAC,QAAuB,EAAE,OAA6B;IAC9E,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACpC,CAAC;AACD,SAAS,eAAe,CAA2B,KAMlD;IACG,MAAM,QAAQ,GAAG,IAAA,qCAAwB,EAAC;QACtC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,WAAW;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM;QACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAO;QACvC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;QACtC,OAAO,EAAE,QAAQ,CAAC,QAAQ;QAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa;YAC5D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC;YACjD,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,UAAU;gBACzD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,oBAA6B,EAAE,CAAC;gBACzF,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW;oBAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;oBAChE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;KACjE,CAAC,CAAC;AACP,CAAC;AAOD,SAAS,gBAAgB,CAAC,KAIzB;IACG,MAAM,UAAU,GAAG,IAAA,8CAAkC,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,iBAAiB,CAAC,MAA0B,EAAE,KAAqC;IACxF,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,IAAA,oBAAS,EAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,IAAA,iCAAsB,EAAC,MAAM,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;AAC9D,CAAC;AACD,SAAS,0BAA0B,CAAC,KAAoC;IACpE,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;IAClE,CAAC;IACD,MAAM,OAAO,GAAG,KAA2C,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,SAAS,CAAC,gDAAgD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACrI,CAAC;IACL,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC5B,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAClE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;gBACd,MAAM,IAAI,SAAS,CAAC,0FAA0F,CAAC,CAAC;YACpH,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,SAAS,CAAC,4DAA4D,CAAC,CAAC;YACtF,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACtE,MAAM,IAAI,SAAS,CAAC,kGAAkG,CAAC,CAAC;QAC5H,CAAC;QACD,MAAM,UAAU,GAAG,KAA2C,CAAC;QAC/D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACxC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACpB,MAAM,IAAI,SAAS,CAAC,mDAAmD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAClG,CAAC;QACL,CAAC;QACD,IAAI,UAAU,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,SAAS,CAAC,kGAAkG,CAAC,CAAC;QAC5H,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,UAAU,CAAC,OAAO,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YAChH,MAAM,IAAI,SAAS,CAAC,oEAAoE,CAAC,CAAC;QAC9F,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAmB,EAAE,KAAK,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,kGAAkG,CAAC,CAAC;AAC5H,CAAC;AACD,SAAS,uBAAuB,CAAC,QAA2B;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC1C,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,yDAAyD;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;WAC1B,OAAO,CAAC,MAAM,KAAK,wDAAgC,EAAE,CAAC;QACzD,OAAO,iBAAiB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,sBAAsB,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AACD,SAAS,6BAA6B,CAAC,MAA+D;IAClG,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC;QACnB,KAAK,SAAS;YACV,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACzG,KAAK,YAAY;YACb,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1F,KAAK,aAAa;YACd,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,KAAK,EAAE,aAAsB;gBAC7B,MAAM,EAAE,sBAA+B;gBACvC,UAAU,EAAE,MAAM,CAAC,UAAU;aAChC,CAAC,CAAC;IACX,CAAC;AACL,CAAC;AACD,SAAS,mBAAmB,CAA2B,KAMtD;IACG,MAAM,QAAQ,GAAG,IAAA,qCAAwB,EAAC;QACtC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,UAAU,EAAE,MAAM;QAClB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;QACzB,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;QACtC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc;QAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO;QACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;KACpC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAO;QACvC,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC;QACvF,OAAO,EAAE,QAAQ,CAAC,QAAQ;QAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,GAAG,EAAE;YACX,MAAM,cAAc,GAAG,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC/D,OAAO,eAAM,CAAC,UAAU,CAAC;gBACrB,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,6BAA6B,CAAC,MAAM,IAAA,sCAA2B,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE;oBACtH,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC;iBAC9D,CAAC,CAAC;gBACH,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;aAC1B,CAAC,CAAC;QACP,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AACD,SAAS,gBAAgB,CAA2B,KAMnD;IACG,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC;QACpD,UAAU,EAAE,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC;QACrD,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAA2B,KAKtD;IACG,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC;QACvD,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,CAAC;QACtD,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB;IACxB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAsB,EAAE,OAAO,EAAE,gBAAyB,EAAE,CAAC,CAAC;AAC/F,CAAC;AACD,SAAS,WAAW;IAChB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC1E,CAAC;AACD,SAAS,cAAc;IACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;AAC3D,CAAC;AACD,SAAS,eAAe;IACpB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,sBAA+B,EAAE,CAAC,CAAC;AACrG,CAAC;AACD,SAAS,mBAAmB,CAA2B,KAKtD;IACG,MAAM,QAAQ,GAAG,IAAA,qCAAwB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAO;QACvC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,QAAQ,CAAC,QAAQ;QAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAAC,QAAuB,EAAE,OAAuC;IACzF,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;AACnD,CAAC;AACD,SAAS,uBAAuB,CAAC,KAAc,EAAE,KAAa;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,uCAAuC,CAAC,CAAC;IACzE,CAAC;AACL,CAAC;AACD,SAAS,4BAA4B,CAAC,KAAc,EAAE,KAAa;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IACxE,CAAC;AACL,CAAC;AACD,SAAS,iBAAiB,CAA2B,KAIpD;IACG,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,CAAC,CAAC;QAC1G,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,eAAe;YAC1B,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;YACvC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc;YAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;SACpC,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC;gBACrC,OAAO,cAAc,EAAE,CAAC;YAC5B,OAAO,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS;gBACxD,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,eAAe,EAAE,CAAC;QAC5B,CAAC,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAA2B,KAKrD;IACG,4BAA4B,CAAC,KAAK,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IAC9D,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,mBAAmB,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,gBAAgB;YAC3B,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;YACvC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc;YAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;SACpC,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC7B,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG;gBAC7C,OAAO,cAAc,EAAE,CAAC;YAC5B,OAAO,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS;gBACxD,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,eAAe,EAAE,CAAC;QAC5B,CAAC,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB,CAA2B,KAMxD;IACG,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC;QAC3D,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,mBAAmB;YAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SAC3B,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAA,0BAAc,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;mBAChE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;YACpE,IAAI,MAAM;gBACN,OAAO,cAAc,EAAE,CAAC;YAC5B,OAAO,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACjD,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,eAAe,EAAE,CAAC;QAC5B,CAAC,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAS,gBAAgB,CAA2B,KAUnD;IACG,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;IACxG,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,mBAAmB,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU;YAChE,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;SAC3B,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC7B,6DAA6D;YAC7D,sDAAsD;YACtD,wDAAwD;YACxD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,KAAK,QAAQ;gBACpC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;gBAClE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;YAC7B,IAAI,MAAM,KAAK,SAAS;gBACpB,OAAO,eAAe,EAAE,CAAC;YAC7B,IAAI,MAAM,GAAG,KAAK,CAAC,OAAO;gBACtB,OAAO,cAAc,EAAE,CAAC;YAC5B,OAAO,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC;gBAC/C,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,eAAe,EAAE,CAAC;QAC5B,CAAC,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAS,gBAAgB,CAAQ,KAAuB,EAAE,KAAa,EAAE,WAAqD;IAC1H,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,qCAAqC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,KAAK,UAAU,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACzG,CAAC;AACD,SAAS,cAAc,CAAC,MAA+D,EAAE,OAA6D;IAClJ,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACvB,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;QACf,KAAK,IAAI,KAAK,GAAG,MAAM,EAAE,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YACtD,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,EAAE,CAAC;gBACvB,KAAK,GAAG,KAAK,CAAC;gBACd,MAAM;YACV,CAAC;QACL,CAAC;QACD,IAAI,KAAK,GAAG,CAAC;YACT,OAAO,KAAK,CAAC;QACjB,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;IACvB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AACD,SAAS,mBAAmB,CAAC,UAAiC,EAAE,MAAuC;IACnG,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACxE,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,aAAsB;YAC7B,MAAM,EAAE,8BAA8B,UAAU,CAAC,SAAS,CAAC,MAAM,EAAE;YACnE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,2CAA2C;gBACpD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,MAAM;aACtC,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IACD,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,SAAS,eAAe,CAA2B,KAKlD;IACG,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,iCAAsB,CAAC,CAAC;IACvF,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,mBAAmB,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,YAAY;YACvB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3C,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;YACvC,cAAc,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc;YAC7C,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO;YACzC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;SACpC,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,UAAU,CAAC;YAC9B,GAAG,EAAE,KAAK,IAAI,EAAE;gBACZ,MAAM,MAAM,GAAwC,EAAE,CAAC;gBACvD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAsC,EAAE,CAAC;oBAClD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;wBAClD,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,IAAA,+BAAoB,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;oBAC7F,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;oBAC9D,OAAO,WAAW,EAAE,CAAC;gBACzB,IAAI,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,SAAS;uBAClD,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,EAAE,CAAC;oBACtG,OAAO,eAAe,EAAE,CAAC;gBAC7B,CAAC;gBACD,OAAO,cAAc,EAAE,CAAC;YAC5B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SAC1B,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AAOD,SAAS,gBAAgB,CAAC,QAGzB;IACG,OAAO,GAAG,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,YAAY,EAAE,CAAC;AAC9D,CAAC;AACD,SAAS,iBAAiB,CAAC,KAI1B;IACG,MAAM,UAAU,GAAG,IAAA,8CAAkC,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnE,MAAM,MAAM,GAAG,IAAI,GAAG,EAAiC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC1D,KAAK,MAAM,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;QAC3D,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK,WAAW,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1F,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;QAC5E,CAAC;IACL,CAAC;IACD,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9F,KAAK,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,CAAC;YACjE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,IAAA,oCAAyB,EAAC;oBAClC,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,QAAQ;oBACX,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,IAAI,EAAE,KAAK,CAAC,IAAI;iBACnB,CAAC,CAAC,CAAC;YACR,CAAC;iBACI,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC7E,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC1D,IAAI,UAAU,KAAK,SAAS;oBACxB,qBAAqB,GAAG,IAAI,CAAC;qBAC5B,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAA,iCAAsB,EAAC;wBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,GAAG,QAAQ;wBACX,IAAI,EAAE,mBAAmB;wBACzB,UAAU;qBACb,CAAC,CAAC,CAAC;gBACR,CAAC;YACL,CAAC;iBACI,IAAI,KAAK,CAAC,IAAI,KAAK,oBAAoB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpE,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAC5D,IAAI,UAAU,KAAK,SAAS;oBACxB,qBAAqB,GAAG,IAAI,CAAC;qBAC5B,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,IAAA,iCAAsB,EAAC;wBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,GAAG,QAAQ;wBACX,IAAI,EAAE,oBAAoB;wBAC1B,UAAU;wBACV,MAAM,EAAE,KAAK,CAAC,MAAM;qBACvB,CAAC,CAAC,CAAC;gBACR,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,qBAAqB;QACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,oBAAoB,CAAC,KAAqB,EAAE,MAAuC;IACxF,MAAM,UAAU,GAAG,IAAA,mCAAwB,EAAC,KAAK,CAAC,CAAC;IACnD,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACvF,CAAC;AACD,SAAS,qBAAqB,CAAC,QAA4B;IACvD,OAAO,mBAAmB,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;AAC/F,CAAC;AACD,SAAS,mBAAmB,CAAC,KAA+B;IACxD,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,SAAS,CAAC;IACrB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,OAAO,GAAG,KAA2C,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,IAAI,GAAG,KAAK,OAAO;YACf,MAAM,IAAI,SAAS,CAAC,2CAA2C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;QAC3B,OAAO,SAAS,CAAC;IACrB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,SAAS,CAAC,gFAAgF,CAAC,CAAC;IAC1G,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,CAAC;AACzB,CAAC;AACD,SAAS,yBAAyB,CAAC,WAAuD,EAAE,KAAyB,EAAE,QAAiB;IACpI,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;IAC1F,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,aAAa,CAAC,CAAC;IACzF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACtB,IAAI,OAAO,GAAG,CAAC;YACX,OAAO,WAAW,EAAE,CAAC;QACzB,OAAO,WAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;IAC3E,CAAC;IACD,IAAI,OAAO,GAAG,KAAK;QACf,OAAO,cAAc,EAAE,CAAC;IAC5B,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC,WAAW,IAAI,QAAQ;QAC7C,OAAO,WAAW,EAAE,CAAC;IACzB,OAAO,WAAW,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;AAC3E,CAAC;AACD,SAAS,oBAAoB,CAA2B,KAMvD;IACG,MAAM,UAAU,GAAwB,KAAK,CAAC,KAAK,KAAK,SAAS;QAC7D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAmB,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACxD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACpE,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC;QAClF,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,OAAO;YACnB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YACzB,UAAU;YACV,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;YACjC,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,qBAAqB;YAC3D,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;SACpC,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,UAAU,CAAC;YAC9B,GAAG,EAAE,KAAK,IAAI,EAAE;gBACZ,MAAM,WAAW,GAAsC,EAAE,CAAC;gBAC1D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACxC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,IAAA,+BAAoB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClG,CAAC;gBACD,OAAO,yBAAyB,CAAC,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACtG,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SAC1B,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAA2B,KAKjD;IACG,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,CAAC,CAAC;QAClH,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,UAAU,EAAE,OAAO;YACnB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YACzB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,CAAC;YACtD,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;YACjC,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,qBAAqB;YAC3D,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;SACpC,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,UAAU,CAAC;YAC9B,GAAG,EAAE,KAAK,IAAI,EAAE;gBACZ,MAAM,WAAW,GAAsC,EAAE,CAAC;gBAC1D,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACxC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,IAAA,+BAAoB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClG,CAAC;gBACD,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC;oBAChE,OAAO,cAAc,EAAE,CAAC;gBAC5B,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC;oBACjH,CAAC,CAAC,eAAe,EAAE;oBACnB,CAAC,CAAC,WAAW,EAAE,CAAC;YACxB,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SAC1B,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAS,gBAAgB,CAA2B,KAKnD;IACG,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,EAAE,kCAAuB,CAAC,CAAC;IACzF,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,mBAAmB,EAAE;QAChC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,aAAa;YACxB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3C,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM;YACjC,qBAAqB,EAAE,KAAK,CAAC,QAAQ,CAAC,qBAAqB;YAC3D,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;YACxC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ;SACpC,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,UAAU,CAAC;YAC9B,GAAG,EAAE,KAAK,IAAI,EAAE;gBACZ,MAAM,MAAM,GAAwC,EAAE,CAAC;gBACvD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC1B,MAAM,GAAG,GAAsC,EAAE,CAAC;oBAClD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACxC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,MAAM,IAAA,+BAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;oBACpF,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACrB,CAAC;gBACD,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;oBAC9D,OAAO,WAAW,EAAE,CAAC;gBACzB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC;uBACnC,cAAc,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,aAAa,CAAC,EAAE,CAAC;oBACtG,OAAO,eAAe,EAAE,CAAC;gBAC7B,CAAC;gBACD,OAAO,cAAc,EAAE,CAAC;YAC5B,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SAC1B,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAAC,MAAmB;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,mBAA4B;QAClC,MAAM,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,WAAoB,CAAC,CAAC,CAAC,MAAM;QAC7D,KAAK,EAAE,eAAwB;KAClC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,WAAW,CAA2B,KAO9C;IACG,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAA,gCAAqB,EAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACvE,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,QAAQ,GAAG,IAAA,8BAAmB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAA,qCAAwB,EAAC;QACtC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;KAC1B,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACrC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC;QACvC,OAAO,EAAE,QAAQ,CAAC,QAAQ;QAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,mCAAwB,EAAC;YACrC,KAAK;YACL,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,QAAQ;YACR,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,MAAM,sBAAsB,GAAG,8CAA8C,CAAC;AAC9E,SAAS,qBAAqB,CAAC,KAAwB;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,eAAwB;QACnC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;KACnC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,YAAqB;KACnC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,oBAAoB,CAAC,IAAY,EAAE,OAAqC;IAC7E,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,cAAuB;QAClC,IAAI;QACJ,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxE,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACxE,CAAC,CAAC;AACP,CAAC;AACD,SAAS,oBAAoB,CAAC,IAAY;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,cAAuB;QAClC,IAAI;KACP,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAe,EAAE,OAA4C;IACrF,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,aAAsB;QACjC,OAAO,EAAE,OAAO,CAAC,MAAM;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM;KACrC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,mBAA4B;QAClC,OAAO,EAAE,sBAAsB;KAClC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAAC,IAAa,EAAE,SAAiB;IACpD,IAAA,8CAAoC,EAAC,IAAI,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;AACpE,CAAC;AACD,SAAS,2BAA2B,CAAC,KAAqC;IACtE,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACnE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC1D,MAAM,IAAI,SAAS,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;WACvB,KAAK,CAAC,MAAM,KAAK,OAAO;WACxB,KAAK,CAAC,MAAM,KAAK,UAAU;WAC3B,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,kEAAkE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC;AACD,SAAS,yBAAyB,CAAC,KAA4C;IAC3E,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,KAAK,SAAS;YACjB,MAAM,IAAI,SAAS,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QACtH,MAAM,IAAI,SAAS,CAAC,6DAA6D,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC;AACD,KAAK,UAAU,eAAe,CAAC,QAAoC,EAAE,KAAwD;IACzH,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,SAAS,CAAC;IACrB,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAC3B,OAAO,YAAY,CAAC;IACxB,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAC3B,OAAO,aAAa,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAoB,EAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,KAAK,CAAC;AACxB,CAAC;AACD,SAAS,qBAAqB;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,oBAA6B,EAAE,CAAC,CAAC;AACnG,CAAC;AACD;;;;GAIG;AACH,SAAS,wBAAwB,CAA2B,KAK3D;IACG,MAAM,iBAAiB,GAAG,GAAS,EAAE;QACjC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;QACvJ,CAAC;IACL,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,SAA6B,EAAE,QAA+E,EAA6C,EAAE,CAAC,IAAA,0CAA6B,EAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAO;QAC9O,SAAS;QACT,OAAO,EAAE,qBAAqB,EAAE;QAChC,QAAQ;KACX,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,CAAC,KAAwB,EAA6C,EAAE;QACzF,iBAAiB,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrB,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,KAAK;YACpB,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC3C,IAAA,sCAA4B,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAC3C,OAAO,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;gBAC1B,OAAO,qBAAqB,EAAE,CAAC;YACnC,OAAO,IAAA,gDAA4B,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACxD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAChE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,UAA+B,EAA6C,EAAE;QAC7G,iBAAiB,EAAE,CAAC;QACpB,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,UAAU,CAAC;YACzE,GAAG,EAAE,KAAK,IAAI,EAAE;gBACZ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;oBAC1B,OAAO,qBAAqB,EAAE,CAAC;gBACnC,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,KAAK,MAAM,SAAS,IAAI,IAAA,oDAAgC,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;wBACnE,SAAS;oBACb,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBACvE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpE,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC1E,CAAC;oBACD,+DAA+D;oBAC/D,kEAAkE;oBAClE,mEAAmE;oBACnE,IAAI,MAAM,KAAK,YAAY,IAAI,KAAK,KAAK,YAAY;wBACjD,SAAS;oBACb,IAAI,MAAM,KAAK,aAAa,IAAI,KAAK,KAAK,aAAa;wBACnD,WAAW,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBACD,OAAO,WAAW;oBACd,CAAC,CAAC,qBAAqB,EAAE;oBACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SAC1B,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,UAAsC,EAA6C,EAAE;QACrH,iBAAiB,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC;YAC5B,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACzE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;gBAC1B,OAAO,qBAAqB,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAA,8CAA0B,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3E,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS;gBAC7B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAChE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY;oBAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC;oBACjD,CAAC,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAA8C,EAAE;QAC9D,iBAAiB,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;gBAC1B,OAAO,qBAAqB,EAAE,CAAC;YACnC,OAAO,IAAA,gDAA4B,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAClD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAChE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAA6C,EAAE;QAC5E,iBAAiB,EAAE,CAAC;QACpB,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;gBAC1B,OAAO,qBAAqB,EAAE,CAAC;YACnC,OAAO,IAAA,oDAAgC,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;iBACvD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;gBAC9C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAChE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,IAAI,GAA6B;QACnC,IAAI,OAAO;YACP,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC/B,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YAC1B,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,iBAAiB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACtC,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QACD,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YACjC,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YACzB,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YAC1B,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACjB,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;YAC/B,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;QACD,eAAe,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;YAC/C,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QACD,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;YACjC,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QACD,iBAAiB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;YACjD,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;QACD,YAAY;QACZ,SAAS;QACT,WAAW;QACX,WAAW;QACX,SAAS;KACZ,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AACD,SAAS,mBAAmB,CAAC,OAAmB,EAAE,MAAsC;IACpF,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5D,IAAI,MAAM,KAAK,SAAS;YACpB,OAAO,IAAI,CAAC;QAChB,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;YAChF,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC;YACnF,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;YAChF,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAA,2BAAW,EAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACvE,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5F,OAAO,KAAK,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,qDAAqD,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;AACvB,CAAC;AACD,SAAS,WAAW,CAAC,MAAc,EAAE,QAAyB;IAC1D,IAAI,QAAQ,YAAY,MAAM,EAAE,CAAC;QAC7B,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,KAAK,QAAQ,CAAC;AAC/B,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAqB;IAC3C,IAAI,CAAC,OAAO,CAAC,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,EAAE,CAAC;AACtB,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAqB,EAAE,QAAgB;IAC7D,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;IAClG,CAAC;AACL,CAAC;AACD,SAAS,mBAAmB,CAAC,OAAmB,EAAE,IAAY;IAC1D,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,uEAAuE,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;IAClI,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAE,CAAC;IACjD,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;QAC/D,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/B,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AACD,SAAS,iBAAiB,CAAC,OAAmB,EAAE,OAAuD;IAInG,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAoB,EAAE,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YACrD,SAAS;QACb,CAAC;QACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;aACI,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC;AACD,SAAS,WAAW,CAAC,IAAY;IAC7B,QAAQ,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,CAAC,OAAO,WAAW,CAAC;QAChC,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC;QAClC,KAAK,MAAM,CAAC,CAAC,OAAO,WAAW,CAAC;QAChC,KAAK,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC;QAClC,OAAO,CAAC,CAAC,OAAO,0BAA0B,CAAC;IAC/C,CAAC;AACL,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,eAAM,CAAC,UAAU,CAAC;QACrB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAQ,EAAC,IAAI,CAAC;QACzB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;KAC1B,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACxC,QAAQ,EAAE,IAAA,oBAAQ,EAAC,IAAI,CAAC;QACxB,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC;QAC3B,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACvC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD;;;GAGG;AACH,SAAgB,4BAA4B,CAAC,IAA4B;IAIrE,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,cAAc,EAAE,IAAI,CAAC,cAAc;KACtC,CAAC,CAAC;IACH,MAAM,OAAO,GAAmC,IAAI,CAAC,cAAc,KAAK,OAAO;QAC3E,CAAC,CAAC,IAAA,oCAAuB,EAAC,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACrF,CAAC,CAAC,IAAA,oCAAuB,EAAC,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACzF,MAAM,KAAK,GAA4B;QACnC,UAAU,EAAE,OAAO;QACnB,OAAO;QACP,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;KAC5E,CAAC;IACF,kEAAkE;IAClE,oCAAoC;IACpC,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAsB,EAAE,CAAC,IAAA,sBAAY,EAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAiB7G,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,MAAM,qBAAqB,GAAG,CAAC,QAAuB,EAAiB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACpF,GAAG,QAAQ;QACX,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;QACrF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;KACvF,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,CAAC,KAAwB,EAAiB,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC;QACrF,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB;QAChC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAe,EAAE;QAC5D,IAAI,CAAC,KAAK,CAAC,OAAO;YACd,OAAO,aAAa,CAAC;QACzB,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC;YAClB,OAAO,SAAS,CAAC;QACrB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,GAAkB,EAAE;QACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC;YAChC,CAAC,CAAC,OAAO,CAAC,gBAAgB;YAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACxC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACjD,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACnC,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,GAAgB,EAAE;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACnB,OAAO,aAAa,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC5B,OAAO,SAAS,CAAC;QACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,OAAO,QAAQ,CAAC;QACpB,OAAO,WAAW,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAChE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QACjC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;QAClC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;QAC5B,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;KACnC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;aAC3B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;aAChC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,MAAM,EAAE,aAAa,EAAE;QACvB,QAAQ,EAAE,eAAe,EAAE;KAC9B,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,CAAC,KAAwB,EAAqB,EAAE;QACrE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,gBAAgB,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,QAAQ;YACR,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;gBACpB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;gBACjC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC7B,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;gBAC5B,QAAQ;aACX,CAAC;SACL,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,GAAsB,EAAE;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,OAAO,gBAAgB,CAAC;YACpB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5D,QAAQ;YACR,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;gBACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC3C,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;oBACjC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;oBAC7B,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;oBAC5B,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;iBACnC,CAAC,CAAC,CAAC;gBACJ,MAAM,EAAE,aAAa,EAAE;gBACvB,QAAQ;aACX,CAAC;SACL,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,CAAC,KAAwB,EAA0B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5I,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAAsB,EAAE;QACvE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,iBAAiB,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACtC,QAAQ;YACR,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,GAA2B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;SAC3E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;SAChC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,iBAAiB,GAAG,GAAuB,EAAE;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,OAAO,iBAAiB,CAAC;YACrB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5D,QAAQ;YACR,QAAQ,EAAE,eAAe,EAAE;SAC9B,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAA2B,KAAwB,EAAE,IAAU,EAAE,KAAa,EAA+B,EAAE;QAC5H,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAC/E,GAAG,MAAM;SACZ,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAA,0BAAc,EAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAmC,MAAM,CAAC,MAAM,CAAC;YACjE,OAAO,EAAE,WAAW,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE;YACzC,IAAI,EAAE,QAAQ,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;YACvC,WAAW,EAAE,EAAE,eAAe;YAC9B,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;YAChC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;YACjC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;YAClC,MAAM,EAAE,YAAY,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,gBAAgB,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;YACtC,QAAQ;YACR,QAAQ,EAAE,aAAa;SAC1B,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,iBAAiB,CAAC;YACjC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;YACtC,QAAQ;YACR,QAAQ,EAAE,aAAa;SAC1B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAsB,MAAM,CAAC,MAAM,CAAC;YAC9C,MAAM;YACN,SAAS;YACT,SAAS;YACT,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ;YACR,KAAK;YACL,MAAM,EAAE,IAAA,8BAAiB,EAAC,MAAM,CAAC,IAAI,EAAE;SAC1C,CAAC,CAAC;QACH,MAAM,KAAK,GAA+B,MAAM,CAAC,MAAM,CAAC;YACpD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;gBACrB,QAAQ,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,WAAW,CAAC;oBACxC,OAAO,EAAE,OAAkC;oBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,UAAU;oBAClB,SAAS,EAAE,QAAQ;oBACnB,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;iBAC/D,CAAC;gBACF,UAAU,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,WAAW,CAAC;oBAC1C,OAAO,EAAE,OAAkC;oBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,QAAQ;oBACnB,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;iBAC/D,CAAC;gBACF,UAAU,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,WAAW,CAAC;oBACxC,OAAO,EAAE,OAAkC;oBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,MAAM,EAAE,YAAY;oBACpB,SAAS,EAAE,MAAM;oBACjB,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE;iBAC/D,CAAC;aACL,CAAC;SACL,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,CAAC,MAA0B,EAAE,OAA2B,EAAE,GAAG,KAAyB,EAAE,EAAE;YACzG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;YACzE,OAAO,gBAAgB,CAAC;gBACpB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,MAAM;gBACN,OAAO;gBACP,QAAQ,EAAE,SAAS;aACtB,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,CAAC,MAA0B,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;YAC7E,OAAO,mBAAmB,CAAC;gBACvB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,MAAM;gBACN,QAAQ,EAAE,SAAS;aACtB,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,OAIlB,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;YAC9E,OAAO,eAAe,CAAC;gBACnB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,OAAO;gBACP,QAAQ,EAAE,SAAS;aACtB,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;YAC9D,OAAO,iBAAiB,CAAC,EAAE,OAAO,EAAE,OAAkC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QAClH,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACtE,OAAO,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAkC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;QACxH,CAAC,CAAC;QACF,MAAM,eAAe,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;YACrD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;YAClE,OAAO,qBAAqB,CAAC;gBACzB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,QAAQ;gBACR,QAAQ,EAAE,aAAa;aAC1B,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAE,OAAsB,EAAE,GAAG,KAAyB,EAAE,EAAE;YACtF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;YACpE,OAAO,oBAAoB,CAAC;gBACxB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,IAAA,kCAAuB,EAAC,KAAK,EAAE,eAAe,CAAC;gBACtD,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC;gBACnC,QAAQ,EAAE,UAAU;aACvB,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAAE,GAAG,KAAyB,EAAE,EAAE;YACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;YAChE,OAAO,cAAc,CAAC;gBAClB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,IAAA,kCAAuB,EAAC,KAAK,EAAE,kBAAkB,CAAC;gBACzD,QAAQ,EAAE,UAAU;aACvB,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,OAInB,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;YAC/E,OAAO,gBAAgB,CAAC;gBACpB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,OAAO;gBACP,QAAQ,EAAE,UAAU;aACvB,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC5D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;YACnE,OAAO,gBAAgB,CAAC;gBACpB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;gBACvB,QAAQ;gBACR,QAAQ,EAAE,aAAa;aAC1B,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;YACjE,OAAO,gBAAgB,CAAC;gBACpB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;gBACvB,gBAAgB,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC9E,QAAQ;gBACR,QAAQ,EAAE,aAAa;aAC1B,CAAC,CAAC;QACP,CAAC,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,MAAM;YACxB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAC1D,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC;gBAC7B,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,aAAa;aAC1B,CAAC;YACF,UAAU;YACV,aAAa;YACb,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,KAAK;YACL,QAAQ;YACR,UAAU;YACV,SAAS;YACT,OAAO;YACP,KAAK;SACR,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAA2B,KAAwB,EAAE,IAAY,EAAE,KAA4B,EAAE,SAAoC,EAAE,GAAmC,EAAuD,EAAE;QAClP,MAAM,WAAW,GAAG,GAAG,IAAI,IAAA,0BAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACzE,OAAO,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YACvB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACpB,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAO,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/K,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACxB,CAAC,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAA2B,KAAwB,EAAE,IAAY,EAAE,KAA4B,EAAE,SAAoC,EAAwC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAA,0BAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IAChT,MAAM,WAAW,GAAG,CAA2B,KAAwB,EAAkC,EAAE;QACvG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,SAAS,GAAG,CAAC,OAIlB,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;YAC9E,OAAO,eAAe,CAAC;gBACnB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,OAAO;gBACP,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC;aACpC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;YAC9D,OAAO,iBAAiB,CAAC;gBACrB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC;aACpC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACtE,OAAO,kBAAkB,CAAC;gBACtB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,GAAG;gBACH,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC;aACpC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,eAAe,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;YACrD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,qBAAqB,CAAC;gBACzB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC;gBAClC,QAAQ;gBACR,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,KAAiB,EAAE,OAAsB,EAAE,GAAG,KAAyB,EAAE,EAAE;YACtF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;YACpE,OAAO,oBAAoB,CAAC;gBACxB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,IAAA,kCAAuB,EAAC,KAAK,EAAE,eAAe,CAAC;gBACtD,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC;gBACnC,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC;aACrC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAAE,GAAG,KAAyB,EAAE,EAAE;YACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;YAChE,OAAO,cAAc,CAAC;gBAClB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,KAAK,EAAE,IAAA,kCAAuB,EAAC,KAAK,EAAE,kBAAkB,CAAC;gBACzD,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC;aACrC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,OAInB,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;YAC/E,OAAO,gBAAgB,CAAC;gBACpB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,OAAO;gBACP,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC;aACrC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC5D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,gBAAgB,CAAC;gBACpB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,QAAQ;gBAChB,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,QAAQ;gBACR,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,gBAAgB,CAAC;gBACpB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,GAAG;gBACZ,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjD,QAAQ;gBACR,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,KAGN,EAAE,EAAE;gBACD,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC5D,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;gBAClE,OAAO,IAAI,CAAO,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,QAAQ,EAAE,CAAC,IAAY,EAAE,IAAa,EAAE,EAAE;gBACtC,MAAM,GAAG,GAAG,IAAA,0BAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAO,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrJ,CAAC;YACD,mBAAmB,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1F,KAAK,CAAC,OAAO,CAAC,GAAG,SAAyD;gBACtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC9D,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACpD,OAAO,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAO,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACrE,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,QAAgB;gBAC7B,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACnE,CAAC;gBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;gBACtD,KAAK,MAAM,OAAO,IAAI,QAAQ;oBAC1B,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACxC,OAAO,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAO,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAClK,CAAC;YACD,IAAI,KAAK;gBACL,OAAO,OAAO,CAAC,WAAW,CAAC;YAC/B,CAAC;YACD,IAAI,SAAS;gBACT,OAAO,OAAO,CAAC,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,MAAM;gBACN,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,KAAK;gBACL,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/C,CAAC;YACD,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC;gBAC7B,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;gBAC5B,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;gBAChC,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;aACnC,CAAC;YACF,UAAU,EAAE,CAAC,MAA0B,EAAE,OAA2B,EAAE,GAAG,KAAyB,EAAE,EAAE;gBAClG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAChB,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;gBACzE,OAAO,gBAAgB,CAAC;oBACpB,OAAO,EAAE,OAAkC;oBAC3C,KAAK,EAAE,SAAS;oBAChB,MAAM;oBACN,OAAO;oBACP,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC;iBACpC,CAAC,CAAC;YACP,CAAC;YACD,aAAa,EAAE,CAAC,MAA0B,EAAE,GAAG,KAAyB,EAAE,EAAE;gBACxE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAChB,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;gBAC7E,OAAO,mBAAmB,CAAC;oBACvB,OAAO,EAAE,OAAkC;oBAC3C,KAAK,EAAE,SAAS;oBAChB,MAAM;oBACN,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC;iBACpC,CAAC,CAAC;YACP,CAAC;YACD,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,KAAK;YACL,QAAQ;YACR,UAAU;YACV,SAAS;YACT,OAAO;SACV,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,YAAY,GAAsB;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,KAAK;KAChB,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,WAAW,CAAc,YAAY,CAAC,CAAC;IACvD,MAAM,SAAS,GAAsC,MAAM,CAAC,MAAM,CAAC;QAC/D,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,QAAQ,EAAE,CAAC,QAAgB,EAAE,QAAuB,EAAE,EAAE,CAAC,WAAW,CAAC;gBACjE,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,UAAU;gBAClB,SAAS,EAAE,QAAQ;gBACnB,QAAQ;aACX,CAAC;YACF,UAAU,EAAE,CAAC,QAAgB,EAAE,QAAuB,EAAE,EAAE,CAAC,WAAW,CAAC;gBACnE,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,YAAY;gBACpB,SAAS,EAAE,QAAQ;gBACnB,QAAQ;aACX,CAAC;YACF,UAAU,EAAE,CAAC,MAAc,EAAE,QAAuB,EAAE,EAAE,CAAC,WAAW,CAAC;gBACjE,OAAO;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM,EAAE,YAAY;gBACpB,SAAS,EAAE,MAAM;gBACjB,QAAQ;aACX,CAAC;SACL,CAAC;KACL,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;QACrD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAC9D,OAAO,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC1F,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;QACtE,OAAO,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAChG,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,OAAO,qBAAqB,CAAC;YACzB,OAAO;YACP,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,mBAAmB,EAAE;YAC7B,QAAQ;YACR,QAAQ,EAAE,eAAe,EAAE;SAC9B,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,KAAiB,EAAE,OAAsB,EAAE,GAAG,KAAyB,EAAE,EAAE;QAC1F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;QACpE,OAAO,oBAAoB,CAAC;YACxB,OAAO;YACP,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAA,kCAAuB,EAAC,KAAK,EAAE,eAAe,CAAC;YACtD,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC;YACnC,QAAQ,EAAE,iBAAiB,EAAE;SAChC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAE,GAAG,KAAyB,EAAE,EAAE;QACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAChE,OAAO,cAAc,CAAC;YAClB,OAAO;YACP,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAA,kCAAuB,EAAC,KAAK,EAAE,kBAAkB,CAAC;YACzD,QAAQ,EAAE,iBAAiB,EAAE;SAChC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;QAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,OAAO,gBAAgB,CAAC;YACpB,OAAO;YACP,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,QAAQ;YACR,QAAQ,EAAE,eAAe,EAAE;SAC9B,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;QAC9D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,OAAO,gBAAgB,CAAC;YACpB,OAAO;YACP,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,gBAAgB,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;YACjD,QAAQ;YACR,QAAQ,EAAE,eAAe,EAAE;SAC9B,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,IAAI,GAAG;QACT,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,KAAK;YACL,OAAO,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC;QACD,IAAI,SAAS;YACT,OAAO,OAAO,CAAC,SAAS,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM;YACN,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,UAAU,EAAE,GAAG,EAAE;YACb,MAAM,KAAK,GAAsB;gBAC7B,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE;gBAC7B,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,KAAK;aAChB,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,WAAW,CAAc,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,CAAC,MAA4C,EAAE,EAAE;YACvD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;oBAC/D,CAAC,CAAC,MAAM,CAAC,OAAO;oBAChB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;QACD,UAAU,EAAE,CAAC,KAA4C,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;QAC9F,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,CAAC,MAAc,EAAS,EAAE;YAC5B,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;gBACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC1D,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;YAC1B,MAAM,IAAI,6BAAW,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK;QACtB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK;QACtB,OAAO,EAAE,wBAAwB,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;SACnB,CAAC;QACF,IAAI,IAAI;YACJ,OAAO,IAAA,4BAAgB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,KAAK;YACL,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO;YACP,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,aAAa,EAAE;YACvB,QAAQ,EAAE,eAAe,EAAE;YAC3B,QAAQ,EAAE,eAAe,EAAE;SAC9B,CAAC;QACF,UAAU,EAAE,CAAC,MAA0B,EAAE,OAA2B,EAAE,GAAG,KAAyB,EAAE,EAAE;YAClG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;YACzE,OAAO,gBAAgB,CAAC;gBACpB,OAAO;gBACP,KAAK,EAAE,SAAS;gBAChB,MAAM;gBACN,OAAO;gBACP,QAAQ,EAAE,gBAAgB,EAAE;aAC/B,CAAC,CAAC;QACP,CAAC;QACD,aAAa,EAAE,CAAC,MAA0B,EAAE,GAAG,KAAyB,EAAE,EAAE;YACxE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;YAC7E,OAAO,mBAAmB,CAAC;gBACvB,OAAO;gBACP,KAAK,EAAE,SAAS;gBAChB,MAAM;gBACN,QAAQ,EAAE,gBAAgB,EAAE;aAC/B,CAAC,CAAC;QACP,CAAC;QACD,WAAW,EAAE,eAAe;QAC5B,YAAY,EAAE,gBAAgB;QAC9B,eAAe,EAAE,mBAAmB;QACpC,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,WAAW;QACpB,KAAK,EAAE,SAAS;KACnB,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,KAAK,OAAO;QAC3C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,GAAG,IAAI;YACP,KAAK,EAAG,OAAsC,CAAC,CAAC,CAAC,KAAK;SACzD,CAAC;QACF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO;QACH,OAAO,EAAE,OAA8C;QACvD,KAAK;KACR,CAAC;AACN,CAAC","sourcesContent":["/**\n * The active Eval context. Assertion authoring deliberately enters through\n * `AssertionsRuntime`; this module never constructs an intermediate Fact or\n * starts a private runtime.\n */\nimport { readFile } from \"node:fs/promises\";\nimport { basename, extname } from \"node:path\";\nimport { Effect } from \"effect\";\nimport { captureAssertionSnapshot, createAssertionsRuntime, postRunBooleanAssertionHandle, } from \"../assertions/runtime.ts\";\nimport type { AssertionCriterion, AssertionMaterial, AssertionsRuntime, BooleanAssertionHandle, BooleanAssertionEvaluation, DirectScoreAssertionHandle, MeasurementAssertionHandle, PostRunBooleanAssertionHandle, } from \"../assertions/api.ts\";\nimport { assertJudgeCapability, evaluateJudgeMeasurement, freezeJudgeMaterial, type JudgeRecipe, } from \"../assertions/judge.ts\";\nimport { agentWorkspaceDiffChangesForPath, agentWorkspaceDiffPathsMatch, evaluateWorkspaceDiffNotIn, type AgentWorkspaceDiffEndpoint, type PostRunWorkspaceDiffState, type WorkspaceDiffNotInOptions, } from \"../assertions/workspace-diff.ts\";\nimport { assertCanonicalWorkspaceRelativePath, validateExpectedTouchedPaths, } from \"../assertions/diff.ts\";\nimport { assertionEventOccurrence, assertManagedEventMatch, assertManagedToolMatch, evaluateBooleanMatch, evaluateToolMatchCollection, makeAssertionMessageEvent, makeAssertionToolEvent, toolMatch, type BooleanMatch, type BooleanMatchEvaluation, type EventMatch, type MatchableEvent, type ToolMatch, type ToolMatchQuantifier, } from \"../assertions/match.ts\";\nimport { buildO11ySummary, deriveRunFacts, deriveScopedLogicalToolOccurrences } from \"../o11y/derive.ts\";\nimport { estimateCost } from \"../o11y/cost.ts\";\nimport { UNCLASSIFIED_TOOL_ACTIONS_REASON } from \"../o11y/command-projection.ts\";\nimport { captureLoc, type SourceRegistry } from \"../source-loc.ts\";\nimport { lastAssistantText, RunSession, SessionManager, type SessionDeps } from \"./session.ts\";\nimport { EvalSkipped } from \"./control-flow.ts\";\nimport type { ConcurrencySlot } from \"./send-retry.ts\";\nimport type { AnswerValue, InputResponse } from \"../agents/types.ts\";\nimport { matchesJson } from \"../shared/json-match.ts\";\nimport type { Agent, InputFile, InputRequest, InputRequestFilter, JsonMatch, JsonValue, JudgeMaterial, PriceOverride, ResolvedJudgeConfig, Sandbox, SandboxOperations, SandboxTransferOperations, StreamEvent, Turn, Usage, } from \"../types.ts\";\nimport type { LogicalToolOccurrence, LogicalToolOccurrenceScopeTurn, OrphanToolOperationFinish, } from \"../o11y/types.ts\";\nexport interface AssertFirstLateResult {\n diff: PostRunWorkspaceDiffState;\n scripts: globalThis.Record<string, import(\"../types.ts\").ScriptResult>;\n}\nexport interface AssertFirstContextState {\n readonly assertions: AssertionsRuntime<\"pass\" | \"score\">;\n readonly manager: SessionManager;\n skipReason?: string;\n readonly late: AssertFirstLateResult;\n}\n/** The Runner-facing dependencies retain the current SessionManager boundary. */\nexport interface AssertFirstContextDeps {\n readonly agent: Agent;\n readonly sandbox: Sandbox;\n readonly evalId?: string;\n readonly attempt?: import(\"../types.ts\").AgentContext[\"attempt\"];\n readonly evalGroup?: import(\"../types.ts\").AgentContext[\"evalGroup\"];\n readonly model?: string;\n /** defineConfig({ pricing }) 的价目表,只供 maxCost 的 estimatedCostUSD 估算(estimateCost);与 observed usage.costUSD 无关。 */\n readonly pricing?: globalThis.Record<string, PriceOverride>;\n readonly reasoningEffort?: string;\n readonly flags: globalThis.Record<string, JsonValue>;\n readonly experimentId?: string;\n readonly signal: AbortSignal;\n readonly log: (message: string) => void;\n readonly telemetry?: import(\"../types.ts\").Telemetry;\n readonly otel?: import(\"../o11y/otlp/turn-otel.ts\").AgentOtelChannel;\n readonly feedback?: import(\"../types.ts\").ScopedFeedback;\n readonly onSendActive?: (active: boolean) => void;\n readonly ledgerHooks?: import(\"./session.ts\").SessionDeps[\"ledgerHooks\"];\n readonly timingNow?: import(\"./session.ts\").SessionDeps[\"timingNow\"];\n readonly onTurn?: import(\"./session.ts\").SessionDeps[\"onTurn\"];\n readonly concurrencySlot?: ConcurrencySlot;\n readonly experimentClassifier?: import(\"./session.ts\").SessionDeps[\"experimentClassifier\"];\n /** Attempt-owned source snapshot registry; never inferred from an Effect fiber. */\n readonly sourceRegistry?: SourceRegistry;\n /** Shared ordering with Assertion runtime source facts and Session user events. */\n readonly nextSourceOrder?: () => number;\n readonly judge: ResolvedJudgeConfig | undefined;\n /** The Attempt-scoped bridge is the sole Promise facade for author sends. */\n readonly requestEffect: NonNullable<SessionDeps[\"requestEffect\"]>;\n /** Ordinary immediate Assertion stop barriers stay in the Attempt Effect Scope. */\n readonly executeStop: import(\"../assertions/api.ts\").AssertionStopExecutor;\n readonly evaluationKind: \"pass\" | \"score\";\n}\ntype RuntimeKind = \"pass\" | \"score\";\ntype AssertFirstRespondAnswer = {\n readonly request: InputRequest;\n} & AnswerValue;\nexport interface CalledToolAtLeast {\n readonly atLeast: number;\n}\nexport type CalledToolCount = number | CalledToolAtLeast;\nexport interface CalledToolOptions {\n readonly count?: CalledToolCount;\n}\nexport interface EventOptions {\n /** An omitted count requires at least one matching event; a number is exact. */\n readonly count?: number;\n}\nexport interface FileChangedOptions {\n readonly status?: \"added\" | \"modified\" | \"deleted\";\n readonly before?: BooleanMatch<string, string, \"value\">;\n readonly after?: BooleanMatch<string, string, \"value\">;\n}\n/** The only agent-attributed post-run diff surface exposed to Eval authors. */\nexport interface AssertFirstSandbox<Kind extends RuntimeKind> extends SandboxOperations, SandboxTransferOperations {\n changedPaths(paths: readonly string[]): PostRunBooleanAssertionHandle<Kind, void>;\n noChanges(): PostRunBooleanAssertionHandle<Kind, void>;\n fileChanged(path: string, options?: FileChangedOptions): PostRunBooleanAssertionHandle<Kind, void>;\n fileDeleted(path: string): PostRunBooleanAssertionHandle<Kind, void>;\n notInDiff(pattern: RegExp, options?: WorkspaceDiffNotInOptions): PostRunBooleanAssertionHandle<Kind, void>;\n}\nexport interface AssertFirstRootJudge<Kind extends RuntimeKind> {\n readonly autoevals: {\n closedQA(question: string, material: JudgeMaterial): MeasurementAssertionHandle<Kind>;\n factuality(expected: string, material: JudgeMaterial): MeasurementAssertionHandle<Kind>;\n summarizes(source: string, material: JudgeMaterial): MeasurementAssertionHandle<Kind>;\n };\n}\nexport interface AssertFirstTurnJudge<Kind extends RuntimeKind> {\n readonly autoevals: {\n closedQA(question: string): MeasurementAssertionHandle<Kind>;\n factuality(expected: string): MeasurementAssertionHandle<Kind>;\n summarizes(source: string): MeasurementAssertionHandle<Kind>;\n };\n}\nexport interface AssertFirstTurnHandle<Kind extends RuntimeKind> {\n readonly events: readonly StreamEvent[];\n readonly toolCalls: readonly import(\"../o11y/types.ts\").ToolCall[];\n readonly status: \"completed\" | \"failed\" | \"waiting\";\n readonly message: string;\n readonly data?: JsonValue;\n readonly usage?: Usage;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n toolOrder(matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch, options?: EventOptions): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n eventOrder(matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n maxTokens(max: number): BooleanAssertionHandle<Kind, void>;\n maxCost(usd: number): BooleanAssertionHandle<Kind, void>;\n readonly judge: AssertFirstTurnJudge<Kind>;\n}\nexport interface AssertFirstSessionHandle<Kind extends RuntimeKind> {\n send(input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }): Promise<AssertFirstTurnHandle<Kind>>;\n sendFile(path: string, text?: string): Promise<AssertFirstTurnHandle<Kind>>;\n requireInputRequest(filter?: InputRequestFilter): InputRequest;\n respond(...responses: readonly (string | AssertFirstRespondAnswer)[]): Promise<AssertFirstTurnHandle<Kind>>;\n respondAll(optionId: string): Promise<AssertFirstTurnHandle<Kind>>;\n readonly reply: string;\n readonly sessionId: string | undefined;\n readonly events: readonly StreamEvent[];\n readonly usage: Usage;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n toolOrder(matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch, options?: EventOptions): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n eventOrder(matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n maxTokens(max: number): BooleanAssertionHandle<Kind, void>;\n maxCost(usd: number): BooleanAssertionHandle<Kind, void>;\n}\nexport type AssertFirstTestContext<Kind extends RuntimeKind> = {\n readonly evaluationKind: Kind;\n send(input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }): Promise<AssertFirstTurnHandle<Kind>>;\n sendFile(path: string, text?: string): Promise<AssertFirstTurnHandle<Kind>>;\n requireInputRequest(filter?: InputRequestFilter): InputRequest;\n respond(...responses: readonly (string | AssertFirstRespondAnswer)[]): Promise<AssertFirstTurnHandle<Kind>>;\n respondAll(optionId: string): Promise<AssertFirstTurnHandle<Kind>>;\n readonly reply: string;\n readonly sessionId: string | undefined;\n readonly events: readonly StreamEvent[];\n newSession(): AssertFirstSessionHandle<Kind>;\n readonly signal: AbortSignal;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: Readonly<globalThis.Record<string, JsonValue>>;\n progress(update: import(\"../types.ts\").ProgressUpdate): void;\n diagnostic(input: import(\"../types.ts\").DiagnosticInput): void;\n log(message: string): void;\n skip(reason: string): never;\n group<Value>(title: string, body: () => Value | PromiseLike<Value>): Promise<Awaited<Value>>;\n check: AssertionsRuntime<Kind>[\"t\"][\"check\"];\n readonly sandbox: AssertFirstSandbox<Kind>;\n readonly o11y: import(\"../o11y/types.ts\").O11ySummary;\n readonly usage: Usage;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch, options?: EventOptions): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n maxTokens(max: number): BooleanAssertionHandle<Kind, void>;\n maxCost(usd: number): BooleanAssertionHandle<Kind, void>;\n readonly judge: AssertFirstRootJudge<Kind>;\n} & (Kind extends \"score\" ? {\n score(points: number): DirectScoreAssertionHandle;\n} : {});\ntype AssertionScope = \"turn\" | \"session\" | \"attempt\";\ntype ScopeStatus = \"completed\" | \"failed\" | \"waiting\" | \"not-started\";\ntype ScopeCoverage = import(\"../assertions/coverage.ts\").ResolvedEvidenceCoverage;\nfunction scopeCriterion(scope: AssertionScope, assertion: \"succeeded\" | \"no-failed-actions\" = \"succeeded\"): AssertionCriterion {\n return Object.freeze({\n kind: \"scope-status\" as const,\n scope,\n assertion,\n });\n}\nfunction occurrenceCriterion(scope: AssertionScope, occurrence: \"tool\" | \"event\", matcher: string | undefined, quantifier: ToolMatchQuantifier): AssertionCriterion {\n return Object.freeze({\n kind: \"occurrence\" as const,\n scope,\n occurrence,\n assertion: quantifier.kind === \"absent\"\n ? \"absent\" as const\n : quantifier.kind === \"exact\"\n ? \"count\" as const\n : \"present\" as const,\n ...(matcher === undefined ? {} : { matcher }),\n quantifier: Object.freeze(quantifier.kind === \"absent\"\n ? { kind: \"absent\" as const }\n : { kind: quantifier.kind, count: quantifier.count }),\n });\n}\nfunction scopeCoverageState(coverage: ScopeCoverage, channel: \"actions\" | \"status\"): \"complete\" | \"partial\" | \"unavailable\" {\n return coverage[channel].status;\n}\nfunction succeededHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly status: ScopeStatus;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot({\n scope: input.scope,\n assertion: \"succeeded\",\n status: input.status,\n coverage: input.coverage.status.status,\n snapshot: input.snapshot,\n });\n return input.runtime.registerBoolean<void>({\n criterion: scopeCriterion(input.scope),\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: () => Effect.sync(() => input.status === \"not-started\"\n ? Object.freeze({ state: \"mismatched\" as const })\n : scopeCoverageState(input.coverage, \"status\") !== \"complete\"\n ? Object.freeze({ state: \"unavailable\" as const, reason: \"source-unavailable\" as const })\n : input.status === \"completed\"\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const })),\n });\n}\ninterface ToolScopeSnapshot {\n readonly occurrences: readonly LogicalToolOccurrence[];\n readonly orphanFinishes: readonly OrphanToolOperationFinish[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}\nfunction projectToolScope(input: {\n readonly turns: readonly LogicalToolOccurrenceScopeTurn[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): ToolScopeSnapshot {\n const projection = deriveScopedLogicalToolOccurrences(input.turns);\n return Object.freeze({\n occurrences: projection.occurrences,\n orphanFinishes: projection.orphanFinishes,\n coverage: input.coverage,\n snapshot: input.snapshot,\n });\n}\nfunction resolveToolTarget(target: ToolMatch | string, label: \"calledTool\" | \"notCalledTool\"): ToolMatch {\n if (typeof target === \"string\")\n return toolMatch(target);\n return assertManagedToolMatch(target, `${label}() match`);\n}\nfunction normalizeCalledToolOptions(value: CalledToolOptions | undefined): ToolMatchQuantifier {\n if (value === undefined)\n return Object.freeze({ kind: \"at-least\" as const, count: 1 });\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"calledTool() options must be an object\");\n }\n const options = value as globalThis.Record<string, unknown>;\n for (const key of Object.keys(options)) {\n if (key !== \"count\") {\n throw new TypeError(`calledTool() options does not support option ${JSON.stringify(key)}; put field constraints in toolMatch()`);\n }\n }\n const count = options.count;\n if (count === undefined)\n return Object.freeze({ kind: \"at-least\" as const, count: 1 });\n if (count !== undefined) {\n if (typeof count === \"number\") {\n if (count === 0) {\n throw new TypeError(\"calledTool() options.count must be a positive safe integer; use notCalledTool() for zero\");\n }\n if (!Number.isSafeInteger(count) || count < 0) {\n throw new TypeError(\"calledTool() options.count must be a positive safe integer\");\n }\n return Object.freeze({ kind: \"exact\" as const, count });\n }\n if (typeof count !== \"object\" || count === null || Array.isArray(count)) {\n throw new TypeError(\"calledTool() options.count must be a positive safe integer or { atLeast: positive safe integer }\");\n }\n const lowerBound = count as globalThis.Record<string, unknown>;\n for (const key of Object.keys(lowerBound)) {\n if (key !== \"atLeast\") {\n throw new TypeError(`calledTool() options.count does not support key ${JSON.stringify(key)}`);\n }\n }\n if (lowerBound.atLeast === 0) {\n throw new TypeError(\"calledTool() options.count.atLeast must be a positive safe integer; use notCalledTool() for zero\");\n }\n if (!Number.isSafeInteger(lowerBound.atLeast) || typeof lowerBound.atLeast !== \"number\" || lowerBound.atLeast < 0) {\n throw new TypeError(\"calledTool() options.count.atLeast must be a positive safe integer\");\n }\n return Object.freeze({ kind: \"at-least\" as const, count: lowerBound.atLeast });\n }\n throw new TypeError(\"calledTool() options.count must be a positive safe integer or { atLeast: positive safe integer }\");\n}\nfunction toolScopeCoverageReason(snapshot: ToolScopeSnapshot): string | undefined {\n const actions = snapshot.coverage.actions;\n // Missing command/not-command classification limits commandMatch(), not the\n // completeness of the already captured tool occurrence set. Tool name/input/\n // lifecycle counts remain decidable; commandMatch itself retains unavailable\n // evidence when an occurrence has no command projection.\n if (actions.status !== \"complete\"\n && actions.reason !== UNCLASSIFIED_TOOL_ACTIONS_REASON) {\n return `scope-actions-${actions.status}:${actions.reason}`;\n }\n if (snapshot.orphanFinishes.length > 0) {\n return `orphan-tool-finish:${snapshot.orphanFinishes.length}`;\n }\n return undefined;\n}\nfunction collectionAssertionEvaluation(result: Awaited<ReturnType<typeof evaluateToolMatchCollection>>): BooleanAssertionEvaluation<void> {\n switch (result.state) {\n case \"matched\":\n return Object.freeze({ state: \"matched\" as const, value: undefined, diagnostic: result.diagnostic });\n case \"mismatched\":\n return Object.freeze({ state: \"mismatched\" as const, diagnostic: result.diagnostic });\n case \"unavailable\":\n return Object.freeze({\n state: \"unavailable\" as const,\n reason: \"evidence-unavailable\" as const,\n diagnostic: result.diagnostic,\n });\n }\n}\nfunction toolAssertionHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly match: ToolMatch;\n readonly quantifier: ToolMatchQuantifier;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot({\n scope: input.scope,\n occurrence: \"tool\",\n matcher: input.match.name,\n quantifier: input.quantifier,\n candidates: input.snapshot.occurrences,\n orphanFinishes: input.snapshot.orphanFinishes,\n coverage: input.snapshot.coverage.actions,\n snapshot: input.snapshot.snapshot,\n });\n return input.runtime.registerBoolean<void>({\n criterion: occurrenceCriterion(input.scope, \"tool\", input.match.name, input.quantifier),\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: () => {\n const coverageReason = toolScopeCoverageReason(input.snapshot);\n return Effect.tryPromise({\n try: async () => collectionAssertionEvaluation(await evaluateToolMatchCollection(input.match, input.snapshot.occurrences, {\n quantifier: input.quantifier,\n ...(coverageReason === undefined ? {} : { coverageReason }),\n })),\n catch: (error) => error,\n });\n },\n });\n}\nfunction calledToolHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly target: ToolMatch | string;\n readonly options: CalledToolOptions | undefined;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n return toolAssertionHandle({\n runtime: input.runtime,\n scope: input.scope,\n match: resolveToolTarget(input.target, \"calledTool\"),\n quantifier: normalizeCalledToolOptions(input.options),\n snapshot: input.snapshot,\n });\n}\nfunction notCalledToolHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly target: ToolMatch | string;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n return toolAssertionHandle({\n runtime: input.runtime,\n scope: input.scope,\n match: resolveToolTarget(input.target, \"notCalledTool\"),\n quantifier: Object.freeze({ kind: \"absent\" as const }),\n snapshot: input.snapshot,\n });\n}\nfunction valueMatchCriterion(): AssertionCriterion {\n return Object.freeze({ kind: \"value-match\" as const, subject: \"explicit-value\" as const });\n}\nfunction matchedVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"matched\" as const, value: undefined });\n}\nfunction mismatchedVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"mismatched\" as const });\n}\nfunction unavailableVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"unavailable\" as const, reason: \"evidence-unavailable\" as const });\n}\nfunction scopedBooleanHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly criterion: AssertionCriterion;\n readonly snapshot: unknown;\n readonly evaluate: () => Effect.Effect<BooleanAssertionEvaluation<void>, unknown, never>;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot(input.snapshot);\n return input.runtime.registerBoolean<void>({\n criterion: input.criterion,\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: input.evaluate,\n });\n}\nfunction hasCompleteCoverage(coverage: ScopeCoverage, channel: \"actions\" | \"events\" | \"usage\"): boolean {\n return coverage[channel].status === \"complete\";\n}\nfunction assertNonNegativeFinite(value: unknown, label: string): asserts value is number {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n throw new TypeError(`${label} must be a finite non-negative number`);\n }\n}\nfunction assertNonNegativeSafeInteger(value: unknown, label: string): asserts value is number {\n if (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`${label} must be a non-negative safe integer`);\n }\n}\nfunction usedNoToolsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: occurrenceCriterion(input.scope, \"tool\", undefined, Object.freeze({ kind: \"absent\" as const })),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"used-no-tools\",\n occurrences: input.snapshot.occurrences,\n orphanFinishes: input.snapshot.orphanFinishes,\n coverage: input.snapshot.coverage.actions,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n if (input.snapshot.occurrences.length > 0)\n return mismatchedVoid();\n return toolScopeCoverageReason(input.snapshot) === undefined\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction maxToolCallsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly max: number;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n assertNonNegativeSafeInteger(input.max, \"maxToolCalls() max\");\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: valueMatchCriterion(),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"max-tool-calls\",\n max: input.max,\n occurrences: input.snapshot.occurrences,\n orphanFinishes: input.snapshot.orphanFinishes,\n coverage: input.snapshot.coverage.actions,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n if (input.snapshot.occurrences.length > input.max)\n return mismatchedVoid();\n return toolScopeCoverageReason(input.snapshot) === undefined\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction noFailedActionsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly events: readonly StreamEvent[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: scopeCriterion(input.scope, \"no-failed-actions\"),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"no-failed-actions\",\n events: input.events,\n coverage: input.coverage.actions,\n snapshot: input.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n const facts = deriveRunFacts(input.events);\n const failed = facts.toolCalls.some((call) => call.status === \"failed\")\n || facts.subagentCalls.some((call) => call.status === \"failed\");\n if (failed)\n return mismatchedVoid();\n return hasCompleteCoverage(input.coverage, \"actions\")\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction usageLimitHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly metric: \"tokens\" | \"cost\";\n readonly maximum: number;\n readonly usage: Usage;\n /** metric === \"cost\" 时的价目表估算(estimateCost(model, usage, pricing));observed usage.costUSD 不进入预算断言。 */\n readonly estimatedCostUSD?: number;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n assertNonNegativeFinite(input.maximum, input.metric === \"tokens\" ? \"maxTokens() max\" : \"maxCost() usd\");\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: valueMatchCriterion(),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: input.metric === \"tokens\" ? \"max-tokens\" : \"max-cost\",\n maximum: input.maximum,\n usage: Object.freeze({ ...input.usage }),\n coverage: input.coverage.usage,\n snapshot: input.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n // 预算只认 estimatedCostUSD(价目表估算),never observed usage.costUSD:\n // 两者独立并存,observed 存在也不改变估算口径(见 Usage.costUSD 单向字段契约)。\n // 无 model / 无价格 / 无可计价 usage 时 estimate 不存在;缺测不能被当成零成本。\n const actual = input.metric === \"tokens\"\n ? (input.usage.inputTokens ?? 0) + (input.usage.outputTokens ?? 0)\n : input.estimatedCostUSD;\n if (actual === undefined)\n return unavailableVoid();\n if (actual > input.maximum)\n return mismatchedVoid();\n return hasCompleteCoverage(input.coverage, \"usage\")\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction orderedMatchList<Match>(value: readonly Match[], label: string, assertMatch: (value: unknown, label: string) => Match): readonly Match[] {\n if (!Array.isArray(value) || value.length < 2) {\n throw new TypeError(`${label} requires at least two Match values`);\n }\n return Object.freeze(value.map((match, index) => assertMatch(match, `${label} match ${index + 1}`)));\n}\nfunction hasOrderedPath(matrix: readonly (readonly BooleanMatchEvaluation<unknown>[])[], allowed: (result: BooleanMatchEvaluation<unknown>) => boolean): boolean {\n let cursor = 0;\n for (const row of matrix) {\n let found = -1;\n for (let index = cursor; index < row.length; index += 1) {\n if (allowed(row[index]!)) {\n found = index;\n break;\n }\n }\n if (found < 0)\n return false;\n cursor = found + 1;\n }\n return true;\n}\nfunction toolMatchEvaluation(occurrence: LogicalToolOccurrence, result: BooleanMatchEvaluation<unknown>): BooleanMatchEvaluation<unknown> {\n if (occurrence.lifecycle.state === \"opaque\" && result.state === \"matched\") {\n return Object.freeze({\n state: \"unavailable\" as const,\n reason: `tool-lifecycle-unavailable:${occurrence.lifecycle.reason}`,\n diagnostic: Object.freeze({\n code: \"tool-lifecycle-unavailable\",\n message: \"the matching tool lifecycle is incomplete\",\n path: Object.freeze([]),\n reason: occurrence.lifecycle.reason,\n }),\n });\n }\n return result;\n}\nfunction toolOrderHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly matches: readonly ToolMatch[];\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n const matches = orderedMatchList(input.matches, \"toolOrder()\", assertManagedToolMatch);\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: valueMatchCriterion(),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"tool-order\",\n matches: matches.map((match) => match.name),\n occurrences: input.snapshot.occurrences,\n orphanFinishes: input.snapshot.orphanFinishes,\n coverage: input.snapshot.coverage.actions,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.tryPromise({\n try: async () => {\n const matrix: BooleanMatchEvaluation<unknown>[][] = [];\n for (const match of matches) {\n const row: BooleanMatchEvaluation<unknown>[] = [];\n for (const occurrence of input.snapshot.occurrences) {\n row.push(toolMatchEvaluation(occurrence, await evaluateBooleanMatch(match, occurrence)));\n }\n matrix.push(row);\n }\n if (hasOrderedPath(matrix, (result) => result.state === \"matched\"))\n return matchedVoid();\n if (toolScopeCoverageReason(input.snapshot) !== undefined\n || hasOrderedPath(matrix, (result) => result.state === \"matched\" || result.state === \"unavailable\")) {\n return unavailableVoid();\n }\n return mismatchedVoid();\n },\n catch: (error) => error,\n }),\n });\n}\ninterface EventScopeSnapshot {\n readonly events: readonly MatchableEvent[];\n readonly unassociatedOperation: boolean;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}\nfunction eventPositionKey(position: {\n readonly turnOrdinal: number;\n readonly eventOrdinal: number;\n}): string {\n return `${position.turnOrdinal}:${position.eventOrdinal}`;\n}\nfunction projectEventScope(input: {\n readonly turns: readonly LogicalToolOccurrenceScopeTurn[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): EventScopeSnapshot {\n const derivation = deriveScopedLogicalToolOccurrences(input.turns);\n const starts = new Map<string, LogicalToolOccurrence>();\n const finishes = new Map<string, LogicalToolOccurrence>();\n for (const occurrence of derivation.occurrences) {\n starts.set(eventPositionKey(occurrence.start), occurrence);\n if (occurrence.lifecycle.state === \"available\" && occurrence.lifecycle.status !== \"pending\") {\n finishes.set(eventPositionKey(occurrence.lifecycle.finish), occurrence);\n }\n }\n const events: MatchableEvent[] = [];\n let unassociatedOperation = false;\n for (const turn of [...input.turns].sort((left, right) => left.turnOrdinal - right.turnOrdinal)) {\n for (const [eventOrdinal, event] of turn.events.entries()) {\n const position = { turnOrdinal: turn.turnOrdinal, eventOrdinal };\n if (event.type === \"message\") {\n events.push(makeAssertionMessageEvent({\n session: turn.session,\n turn: turn.turn,\n ...position,\n role: event.role,\n text: event.text,\n }));\n }\n else if (event.type === \"operation.started\" && event.operation.kind === \"tool\") {\n const occurrence = starts.get(eventPositionKey(position));\n if (occurrence === undefined)\n unassociatedOperation = true;\n else {\n events.push(makeAssertionToolEvent({\n session: turn.session,\n turn: turn.turn,\n ...position,\n type: \"operation.started\",\n occurrence,\n }));\n }\n }\n else if (event.type === \"operation.finished\" && event.kind === \"tool\") {\n const occurrence = finishes.get(eventPositionKey(position));\n if (occurrence === undefined)\n unassociatedOperation = true;\n else {\n events.push(makeAssertionToolEvent({\n session: turn.session,\n turn: turn.turn,\n ...position,\n type: \"operation.finished\",\n occurrence,\n status: event.status,\n }));\n }\n }\n }\n }\n return Object.freeze({\n events: Object.freeze(events),\n unassociatedOperation,\n coverage: input.coverage,\n snapshot: input.snapshot,\n });\n}\nfunction eventMatchEvaluation(event: MatchableEvent, result: BooleanMatchEvaluation<unknown>): BooleanMatchEvaluation<unknown> {\n const occurrence = assertionEventOccurrence(event);\n return occurrence === undefined ? result : toolMatchEvaluation(occurrence, result);\n}\nfunction eventCoverageComplete(snapshot: EventScopeSnapshot): boolean {\n return hasCompleteCoverage(snapshot.coverage, \"events\") && !snapshot.unassociatedOperation;\n}\nfunction normalizeEventCount(value: EventOptions | undefined): number | undefined {\n if (value === undefined)\n return undefined;\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"event() options must be an object\");\n }\n const options = value as globalThis.Record<string, unknown>;\n for (const key of Object.keys(options)) {\n if (key !== \"count\")\n throw new TypeError(`event() options does not support option ${JSON.stringify(key)}`);\n }\n if (options.count === undefined)\n return undefined;\n if (!Number.isSafeInteger(options.count) || typeof options.count !== \"number\" || options.count <= 0) {\n throw new TypeError(\"event() options.count must be a positive safe integer; use notEvent() for zero\");\n }\n return options.count;\n}\nfunction eventCollectionEvaluation(evaluations: readonly BooleanMatchEvaluation<unknown>[], count: number | undefined, complete: boolean): BooleanAssertionEvaluation<void> {\n const matched = evaluations.filter((evaluation) => evaluation.state === \"matched\").length;\n const unavailable = evaluations.some((evaluation) => evaluation.state === \"unavailable\");\n if (count === undefined) {\n if (matched > 0)\n return matchedVoid();\n return unavailable || !complete ? unavailableVoid() : mismatchedVoid();\n }\n if (matched > count)\n return mismatchedVoid();\n if (matched === count && !unavailable && complete)\n return matchedVoid();\n return unavailable || !complete ? unavailableVoid() : mismatchedVoid();\n}\nfunction eventAssertionHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly match: EventMatch;\n readonly count: number | undefined;\n readonly snapshot: EventScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n const quantifier: ToolMatchQuantifier = input.count === undefined\n ? Object.freeze({ kind: \"at-least\" as const, count: 1 })\n : Object.freeze({ kind: \"exact\" as const, count: input.count });\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: occurrenceCriterion(input.scope, \"event\", input.match.name, quantifier),\n snapshot: Object.freeze({\n scope: input.scope,\n occurrence: \"event\",\n matcher: input.match.name,\n quantifier,\n candidates: input.snapshot.events,\n unassociatedOperation: input.snapshot.unassociatedOperation,\n coverage: input.snapshot.coverage.events,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.tryPromise({\n try: async () => {\n const evaluations: BooleanMatchEvaluation<unknown>[] = [];\n for (const event of input.snapshot.events) {\n evaluations.push(eventMatchEvaluation(event, await evaluateBooleanMatch(input.match, event)));\n }\n return eventCollectionEvaluation(evaluations, input.count, eventCoverageComplete(input.snapshot));\n },\n catch: (error) => error,\n }),\n });\n}\nfunction notEventHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly match: EventMatch;\n readonly snapshot: EventScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: occurrenceCriterion(input.scope, \"event\", input.match.name, Object.freeze({ kind: \"absent\" as const })),\n snapshot: Object.freeze({\n scope: input.scope,\n occurrence: \"event\",\n matcher: input.match.name,\n quantifier: Object.freeze({ kind: \"absent\" as const }),\n candidates: input.snapshot.events,\n unassociatedOperation: input.snapshot.unassociatedOperation,\n coverage: input.snapshot.coverage.events,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.tryPromise({\n try: async () => {\n const evaluations: BooleanMatchEvaluation<unknown>[] = [];\n for (const event of input.snapshot.events) {\n evaluations.push(eventMatchEvaluation(event, await evaluateBooleanMatch(input.match, event)));\n }\n if (evaluations.some((evaluation) => evaluation.state === \"matched\"))\n return mismatchedVoid();\n return evaluations.some((evaluation) => evaluation.state === \"unavailable\") || !eventCoverageComplete(input.snapshot)\n ? unavailableVoid()\n : matchedVoid();\n },\n catch: (error) => error,\n }),\n });\n}\nfunction eventOrderHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly matches: readonly EventMatch[];\n readonly snapshot: EventScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n const matches = orderedMatchList(input.matches, \"eventOrder()\", assertManagedEventMatch);\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: valueMatchCriterion(),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"event-order\",\n matches: matches.map((match) => match.name),\n candidates: input.snapshot.events,\n unassociatedOperation: input.snapshot.unassociatedOperation,\n coverage: input.snapshot.coverage.events,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.tryPromise({\n try: async () => {\n const matrix: BooleanMatchEvaluation<unknown>[][] = [];\n for (const match of matches) {\n const row: BooleanMatchEvaluation<unknown>[] = [];\n for (const event of input.snapshot.events) {\n row.push(eventMatchEvaluation(event, await evaluateBooleanMatch(match, event)));\n }\n matrix.push(row);\n }\n if (hasOrderedPath(matrix, (result) => result.state === \"matched\"))\n return matchedVoid();\n if (!eventCoverageComplete(input.snapshot)\n || hasOrderedPath(matrix, (result) => result.state === \"matched\" || result.state === \"unavailable\")) {\n return unavailableVoid();\n }\n return mismatchedVoid();\n },\n catch: (error) => error,\n }),\n });\n}\nfunction judgeCriterion(recipe: JudgeRecipe): AssertionCriterion {\n return Object.freeze({\n kind: \"judge-measurement\" as const,\n recipe: recipe === \"closedQA\" ? \"closed-qa\" as const : recipe,\n scale: \"unit-interval\" as const,\n });\n}\nfunction judgeHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly judge: ResolvedJudgeConfig | undefined;\n readonly signal: AbortSignal;\n readonly recipe: JudgeRecipe;\n readonly reference: string;\n readonly material: JudgeMaterial;\n}): MeasurementAssertionHandle<Kind> {\n const judge = input.judge;\n assertJudgeCapability(judge);\n if (typeof input.reference !== \"string\" || input.reference.trim() === \"\") {\n throw new TypeError(\"Judge recipe reference must be a non-empty string\");\n }\n const material = freezeJudgeMaterial(input.material);\n const captured = captureAssertionSnapshot({\n recipe: input.recipe,\n reference: input.reference,\n input: material.input,\n output: material.output,\n });\n return input.runtime.registerMeasurement({\n criterion: judgeCriterion(input.recipe),\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: () => evaluateJudgeMeasurement({\n judge,\n recipe: input.recipe,\n reference: input.reference,\n material,\n signal: input.signal,\n }),\n });\n}\nconst DIFF_REFERENCE_PREVIEW = \"agent-attributed send-window endpoint deltas\";\nfunction changedPathsCriterion(paths: readonly string[]): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"changed-paths\" as const,\n paths: Object.freeze([...paths]),\n });\n}\nfunction noChangesCriterion(): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"no-changes\" as const,\n });\n}\nfunction fileChangedCriterion(path: string, options: Readonly<FileChangedOptions>): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"file-changed\" as const,\n path,\n ...(options.status === undefined ? {} : { status: options.status }),\n ...(options.before === undefined ? {} : { before: options.before.name }),\n ...(options.after === undefined ? {} : { after: options.after.name }),\n });\n}\nfunction fileDeletedCriterion(path: string): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"file-deleted\" as const,\n path,\n });\n}\nfunction notInDiffCriterion(pattern: RegExp, options: Readonly<WorkspaceDiffNotInOptions>): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"not-in-diff\" as const,\n pattern: pattern.source,\n flags: pattern.flags,\n content: options.content ?? \"both\",\n });\n}\nfunction diffReferenceMaterial(): AssertionMaterial {\n return Object.freeze({\n kind: \"record-attachment\" as const,\n preview: DIFF_REFERENCE_PREVIEW,\n });\n}\nfunction assertDiffPath(path: unknown, operation: string): asserts path is string {\n assertCanonicalWorkspaceRelativePath(path, `${operation} path`);\n}\nfunction normalizeFileChangedOptions(value: FileChangedOptions | undefined): Readonly<FileChangedOptions> {\n if (value === undefined)\n return Object.freeze({});\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"fileChanged() options must be an object\");\n }\n for (const key of Object.keys(value)) {\n if (key !== \"status\" && key !== \"before\" && key !== \"after\") {\n throw new TypeError(`fileChanged() options has unknown key ${JSON.stringify(key)}`);\n }\n }\n if (value.status !== undefined\n && value.status !== \"added\"\n && value.status !== \"modified\"\n && value.status !== \"deleted\") {\n throw new TypeError(\"fileChanged() options.status must be added, modified, or deleted\");\n }\n return Object.freeze({ ...value });\n}\nfunction normalizeNotInDiffOptions(value: WorkspaceDiffNotInOptions | undefined): Readonly<WorkspaceDiffNotInOptions> {\n if (value === undefined)\n return Object.freeze({});\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"notInDiff() options must be an object\");\n }\n for (const key of Object.keys(value)) {\n if (key !== \"content\")\n throw new TypeError(`notInDiff() options has unknown key ${JSON.stringify(key)}`);\n }\n if (value.content !== undefined && value.content !== \"added\" && value.content !== \"removed\" && value.content !== \"both\") {\n throw new TypeError(\"notInDiff() options.content must be added, removed, or both\");\n }\n return Object.freeze({ ...value });\n}\nasync function endpointMatches(endpoint: AgentWorkspaceDiffEndpoint, match: BooleanMatch<string, string, \"value\"> | undefined): Promise<\"matched\" | \"mismatched\" | \"unavailable\"> {\n if (match === undefined)\n return \"matched\";\n if (endpoint.state === \"absent\")\n return \"mismatched\";\n if (endpoint.state === \"elided\")\n return \"unavailable\";\n const result = await evaluateBooleanMatch(match, endpoint.text);\n return result.state;\n}\nfunction unavailableDiffResult() {\n return Object.freeze({ state: \"unavailable\" as const, reason: \"source-unavailable\" as const });\n}\n/**\n * Wraps a raw Sandbox capability with post-run Assertion registration. The\n * wrapper has no generic diff value: every call immediately declares exactly\n * one Assertion whose closure reads the single Attempt-owned frozen document.\n */\nfunction createAssertFirstSandbox<Kind extends RuntimeKind>(input: {\n readonly agent: Agent;\n readonly sandbox: Sandbox;\n readonly runtime: AssertionsRuntime<Kind>;\n readonly late: AssertFirstLateResult;\n}): AssertFirstSandbox<Kind> {\n const requireCapability = (): void => {\n if (input.agent.kind !== \"sandbox\") {\n throw new Error(`Agent ${JSON.stringify(input.agent.name)} does not provide sandbox; agent-attributed workspace diff Assertions are unavailable.`);\n }\n };\n const register = (criterion: AssertionCriterion, evaluate: () => Effect.Effect<BooleanAssertionEvaluation<void>, unknown, never>): PostRunBooleanAssertionHandle<Kind, void> => postRunBooleanAssertionHandle(input.runtime.registerBoolean<void>({\n criterion,\n subject: diffReferenceMaterial(),\n evaluate,\n }), input.runtime.evaluationKind);\n const changedPaths = (paths: readonly string[]): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n if (!Array.isArray(paths))\n throw new TypeError(\"changedPaths() requires an array of paths\");\n for (const path of paths)\n assertDiffPath(path, \"changedPaths()\");\n validateExpectedTouchedPaths(paths);\n const expected = Object.freeze([...paths]);\n return register(changedPathsCriterion(expected), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffPathsMatch(diff.document, expected)\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const fileChanged = (path: string, rawOptions?: FileChangedOptions): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n assertDiffPath(path, \"fileChanged()\");\n const options = normalizeFileChangedOptions(rawOptions);\n return register(fileChangedCriterion(path, options), () => Effect.tryPromise({\n try: async () => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n let unavailable = false;\n for (const candidate of agentWorkspaceDiffChangesForPath(diff.document, path)) {\n if (options.status !== undefined && candidate.status !== options.status)\n continue;\n const before = await endpointMatches(candidate.before, options.before);\n const after = await endpointMatches(candidate.after, options.after);\n if (before === \"matched\" && after === \"matched\") {\n return Object.freeze({ state: \"matched\" as const, value: undefined });\n }\n // Both endpoint constraints belong to this one WindowChange. A\n // cross-send restore therefore remains visible, while a same-send\n // restore never became a ledger endpoint delta in the first place.\n if (before === \"mismatched\" || after === \"mismatched\")\n continue;\n if (before === \"unavailable\" || after === \"unavailable\")\n unavailable = true;\n }\n return unavailable\n ? unavailableDiffResult()\n : Object.freeze({ state: \"mismatched\" as const });\n },\n catch: (error) => error,\n }));\n };\n const notInDiff = (pattern: RegExp, rawOptions?: WorkspaceDiffNotInOptions): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n if (!(pattern instanceof RegExp))\n throw new TypeError(\"notInDiff() pattern must be a RegExp\");\n const options = normalizeNotInDiffOptions(rawOptions);\n return register(notInDiffCriterion(pattern, options), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n const result = evaluateWorkspaceDiffNotIn(diff.document, pattern, options);\n return result.state === \"matched\"\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : result.state === \"mismatched\"\n ? Object.freeze({ state: \"mismatched\" as const })\n : unavailableDiffResult();\n }));\n };\n const noChanges = (): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n return register(noChangesCriterion(), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffPathsMatch(diff.document, [])\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const fileDeleted = (path: string): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n assertDiffPath(path, \"fileDeleted()\");\n return register(fileDeletedCriterion(path), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffChangesForPath(diff.document, path)\n .some((change) => change.status === \"deleted\")\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const view: AssertFirstSandbox<Kind> = {\n get workdir() {\n requireCapability();\n return input.sandbox.workdir;\n },\n runCommand: (cmd, args, options) => {\n requireCapability();\n return input.sandbox.runCommand(cmd, args, options);\n },\n runShell: (script, options) => {\n requireCapability();\n return input.sandbox.runShell(script, options);\n },\n runCommandOrThrow: (cmd, args, options) => {\n requireCapability();\n return input.sandbox.runCommandOrThrow(cmd, args, options);\n },\n runShellOrThrow: (script, options) => {\n requireCapability();\n return input.sandbox.runShellOrThrow(script, options);\n },\n readText: (path) => {\n requireCapability();\n return input.sandbox.readText(path);\n },\n writeText: (path, content) => {\n requireCapability();\n return input.sandbox.writeText(path, content);\n },\n readBytes: (path) => {\n requireCapability();\n return input.sandbox.readBytes(path);\n },\n writeBytes: (path, content) => {\n requireCapability();\n return input.sandbox.writeBytes(path, content);\n },\n pathExists: (path) => {\n requireCapability();\n return input.sandbox.pathExists(path);\n },\n uploadFile: (source, targetPath) => {\n requireCapability();\n return input.sandbox.uploadFile(source, targetPath);\n },\n uploadDirectory: (sourceDir, targetDir, options) => {\n requireCapability();\n return input.sandbox.uploadDirectory(sourceDir, targetDir, options);\n },\n downloadFile: (sourcePath, target) => {\n requireCapability();\n return input.sandbox.downloadFile(sourcePath, target);\n },\n downloadDirectory: (sourceDir, targetDir, options) => {\n requireCapability();\n return input.sandbox.downloadDirectory(sourceDir, targetDir, options);\n },\n changedPaths,\n noChanges,\n fileChanged,\n fileDeleted,\n notInDiff,\n };\n Object.setPrototypeOf(view, null);\n return Object.freeze(view);\n}\nfunction requireInputRequest(session: RunSession, filter: InputRequestFilter | undefined): InputRequest {\n const matches = session.pendingInputRequests.filter((request) => {\n if (filter === undefined)\n return true;\n if (filter.id !== undefined && !matchesText(request.id ?? \"\", filter.id))\n return false;\n if (filter.prompt !== undefined && !matchesText(request.prompt ?? \"\", filter.prompt))\n return false;\n if (filter.display !== undefined && !matchesText(request.display ?? \"\", filter.display))\n return false;\n if (filter.action !== undefined && !matchesText(request.action ?? \"\", filter.action))\n return false;\n if (filter.input !== undefined && !matchesJson(request.input, filter.input))\n return false;\n if (filter.optionIds !== undefined) {\n const options = new Set((request.options ?? []).map((option) => option.id));\n if (options.size !== filter.optionIds.length || !filter.optionIds.every((id) => options.has(id)))\n return false;\n }\n return true;\n });\n if (matches.length !== 1) {\n throw new Error(`Expected exactly one pending input request, found ${matches.length}`);\n }\n return matches[0]!;\n}\nfunction matchesText(actual: string, expected: string | RegExp): boolean {\n if (expected instanceof RegExp) {\n expected.lastIndex = 0;\n return expected.test(actual);\n }\n return actual === expected;\n}\nfunction requireRequestId(request: InputRequest): string {\n if (!request.id)\n throw new Error(\"Input request has no stable id\");\n return request.id;\n}\nfunction validateOptionId(request: InputRequest, optionId: string): void {\n const ids = (request.options ?? []).map((option) => option.id);\n if (!ids.includes(optionId)) {\n throw new Error(`Option ${JSON.stringify(optionId)} is not available for this input request`);\n }\n}\nfunction resolveStringAnswer(session: RunSession, text: string): InputResponse {\n if (session.pendingInputRequests.length !== 1) {\n throw new Error(`A string response requires exactly one pending input request, found ${session.pendingInputRequests.length}`);\n }\n const request = session.pendingInputRequests[0]!;\n const requestId = requireRequestId(request);\n return (request.options ?? []).some((option) => option.id === text)\n ? { requestId, optionId: text }\n : { requestId, text };\n}\nfunction buildRespondInput(session: RunSession, answers: readonly (string | AssertFirstRespondAnswer)[]): {\n readonly text: string;\n readonly responses: readonly InputResponse[];\n} {\n const text: string[] = [];\n const responses: InputResponse[] = [];\n for (const answer of answers) {\n if (typeof answer === \"string\") {\n text.push(answer);\n responses.push(resolveStringAnswer(session, answer));\n continue;\n }\n const requestId = requireRequestId(answer.request);\n if ((answer.optionId === undefined) === (answer.text === undefined)) {\n throw new Error(\"A structured response needs exactly one of optionId or text\");\n }\n if (answer.optionId !== undefined) {\n validateOptionId(answer.request, answer.optionId);\n text.push(answer.optionId);\n responses.push({ requestId, optionId: answer.optionId });\n }\n else {\n text.push(answer.text!);\n responses.push({ requestId, text: answer.text! });\n }\n }\n return Object.freeze({ text: text.join(\"\\n\"), responses: Object.freeze(responses) });\n}\nfunction mimeTypeFor(path: string): string {\n switch (extname(path).toLowerCase()) {\n case \".png\": return \"image/png\";\n case \".jpg\":\n case \".jpeg\": return \"image/jpeg\";\n case \".gif\": return \"image/gif\";\n case \".webp\": return \"image/webp\";\n default: return \"application/octet-stream\";\n }\n}\nfunction readInputFileEffect(path: string): Effect.Effect<InputFile, unknown> {\n return Effect.tryPromise({\n try: () => readFile(path),\n catch: (error) => error,\n }).pipe(Effect.map((bytes) => Object.freeze({\n filename: basename(path),\n mimeType: mimeTypeFor(path),\n dataBase64: bytes.toString(\"base64\"),\n })));\n}\n/**\n * Creates the Context that Runner actually hands to `test(t)`. Its only\n * authoring state is the Attempt-local Assert-first runtime.\n */\nexport function createAssertFirstEvalContext(deps: AssertFirstContextDeps): {\n readonly context: AssertFirstTestContext<RuntimeKind>;\n readonly state: AssertFirstContextState;\n} {\n const manager = new SessionManager({\n agent: deps.agent,\n sandbox: deps.sandbox,\n evalId: deps.evalId,\n attempt: deps.attempt,\n evalGroup: deps.evalGroup,\n model: deps.model,\n reasoningEffort: deps.reasoningEffort,\n flags: deps.flags,\n experimentId: deps.experimentId,\n signal: deps.signal,\n requestEffect: deps.requestEffect,\n log: deps.log,\n telemetry: deps.telemetry,\n otel: deps.otel,\n feedback: deps.feedback,\n onSendActive: deps.onSendActive,\n timingNow: deps.timingNow,\n onTurn: deps.onTurn,\n ledgerHooks: deps.ledgerHooks,\n concurrencySlot: deps.concurrencySlot,\n experimentClassifier: deps.experimentClassifier,\n nextSourceOrder: deps.nextSourceOrder,\n sourceRegistry: deps.sourceRegistry,\n });\n const runtime: AssertionsRuntime<RuntimeKind> = deps.evaluationKind === \"score\"\n ? createAssertionsRuntime({ evaluationKind: \"score\", executeStop: deps.executeStop })\n : createAssertionsRuntime({ evaluationKind: \"pass\", executeStop: deps.executeStop });\n const state: AssertFirstContextState = {\n assertions: runtime,\n manager,\n late: { diff: Object.freeze({ state: \"pending\" as const }), scripts: {} },\n };\n // maxCost 断言唯一认价目表估算(estimateCost);observed usage.costUSD 与之独立并存,\n // 存在也不改变估算(见 Usage.costUSD 单向字段契约)。\n const estimatedCostFor = (usage: Usage): number | undefined => estimateCost(deps.model, usage, deps.pricing);\n interface TurnScopeSnapshot {\n readonly events: readonly StreamEvent[];\n readonly toolCalls: readonly import(\"../o11y/types.ts\").ToolCall[];\n readonly toolScope: ToolScopeSnapshot;\n readonly status: \"completed\" | \"failed\" | \"waiting\";\n readonly coverage: ScopeCoverage;\n readonly input: string;\n readonly output: string;\n }\n interface SessionScopeState {\n readonly session: RunSession;\n readonly turns: LogicalToolOccurrenceScopeTurn[];\n started: boolean;\n inFlight: number;\n failed: boolean;\n }\n const sessions: SessionScopeState[] = [];\n let toolTurnOrdinal = 0;\n const coverageWhileInFlight = (coverage: ScopeCoverage): ScopeCoverage => Object.freeze({\n ...coverage,\n actions: Object.freeze({ status: \"partial\" as const, reason: \"scope-still-running\" }),\n status: Object.freeze({ status: \"partial\" as const, reason: \"scope-still-running\" }),\n });\n const sessionCoverage = (scope: SessionScopeState): ScopeCoverage => scope.inFlight === 0\n ? scope.session.evidenceCoverage\n : coverageWhileInFlight(scope.session.evidenceCoverage);\n const sessionStatus = (scope: SessionScopeState): ScopeStatus => {\n if (!scope.started)\n return \"not-started\";\n if (scope.inFlight > 0)\n return \"waiting\";\n return scope.failed ? \"failed\" : scope.session.lastStatus;\n };\n const attemptCoverage = (): ScopeCoverage => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = active.length === 0\n ? manager.evidenceCoverage\n : active.some((scope) => scope.inFlight > 0)\n ? coverageWhileInFlight(manager.evidenceCoverage)\n : manager.evidenceCoverage;\n return coverage;\n };\n const attemptStatus = (): ScopeStatus => {\n const active = sessions.filter((scope) => scope.started);\n if (active.length === 0)\n return \"not-started\";\n const statuses = active.map(sessionStatus);\n if (statuses.includes(\"waiting\"))\n return \"waiting\";\n if (statuses.includes(\"failed\"))\n return \"failed\";\n return \"completed\";\n };\n const sessionSnapshot = (scope: SessionScopeState) => Object.freeze({\n sessionIndex: scope.session.index,\n turnCount: scope.session.turnCount,\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n });\n const attemptSnapshot = () => Object.freeze({\n sessions: Object.freeze(sessions\n .filter((scope) => scope.started)\n .map((scope) => sessionSnapshot(scope))),\n status: attemptStatus(),\n coverage: attemptCoverage(),\n });\n const sessionToolScope = (scope: SessionScopeState): ToolScopeSnapshot => {\n const coverage = sessionCoverage(scope);\n return projectToolScope({\n turns: Object.freeze([...scope.turns]),\n coverage,\n snapshot: Object.freeze({\n sessionIndex: scope.session.index,\n turnCount: scope.turns.length,\n status: sessionStatus(scope),\n coverage,\n }),\n });\n };\n const attemptToolScope = (): ToolScopeSnapshot => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = attemptCoverage();\n return projectToolScope({\n turns: Object.freeze(active.flatMap((scope) => scope.turns)),\n coverage,\n snapshot: Object.freeze({\n sessions: Object.freeze(active.map((scope) => ({\n sessionIndex: scope.session.index,\n turnCount: scope.turns.length,\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n }))),\n status: attemptStatus(),\n coverage,\n }),\n });\n };\n const sessionScopedEvents = (scope: SessionScopeState): readonly StreamEvent[] => Object.freeze(scope.turns.flatMap((turn) => turn.events));\n const sessionEventScope = (scope: SessionScopeState): EventScopeSnapshot => {\n const coverage = sessionCoverage(scope);\n return projectEventScope({\n turns: Object.freeze([...scope.turns]),\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n const attemptScopedEvents = (): readonly StreamEvent[] => Object.freeze(sessions\n .filter((scope) => scope.started)\n .flatMap((scope) => scope.turns.flatMap((turn) => turn.events)));\n const attemptEventScope = (): EventScopeSnapshot => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = attemptCoverage();\n return projectEventScope({\n turns: Object.freeze(active.flatMap((scope) => scope.turns)),\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const makeTurn = <Kind extends RuntimeKind>(scope: SessionScopeState, turn: Turn, input: string): AssertFirstTurnHandle<Kind> => {\n const events = Object.freeze([...turn.events]);\n const scopedEvents = Object.freeze([\n Object.freeze({ type: \"message\" as const, role: \"user\" as const, text: input }),\n ...events,\n ]);\n const toolCalls = Object.freeze([...deriveRunFacts(events).toolCalls]);\n const coverage = manager.resolveTurnEvidenceCoverage(turn);\n const occurrenceTurn: LogicalToolOccurrenceScopeTurn = Object.freeze({\n session: `session-${scope.session.index}`,\n turn: `turn-${scope.session.turnCount}`,\n turnOrdinal: ++toolTurnOrdinal,\n events: scopedEvents,\n outcome: turn.status,\n });\n scope.turns.push(occurrenceTurn);\n const scopeSnapshot = Object.freeze({\n sessionIndex: scope.session.index,\n turnIndex: scope.session.turnCount,\n events: scopedEvents.length,\n });\n const toolScope = projectToolScope({\n turns: Object.freeze([occurrenceTurn]),\n coverage,\n snapshot: scopeSnapshot,\n });\n const eventScope = projectEventScope({\n turns: Object.freeze([occurrenceTurn]),\n coverage,\n snapshot: scopeSnapshot,\n });\n const snapshot: TurnScopeSnapshot = Object.freeze({\n events,\n toolCalls,\n toolScope,\n status: turn.status,\n coverage,\n input,\n output: lastAssistantText(events) ?? \"\",\n });\n const judge: AssertFirstTurnJudge<Kind> = Object.freeze({\n autoevals: Object.freeze({\n closedQA: (question: string) => judgeHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"closedQA\",\n reference: question,\n material: { input: snapshot.input, output: snapshot.output },\n }),\n factuality: (expected: string) => judgeHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"factuality\",\n reference: expected,\n material: { input: snapshot.input, output: snapshot.output },\n }),\n summarizes: (source: string) => judgeHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"summarizes\",\n reference: source,\n material: { input: snapshot.input, output: snapshot.output },\n }),\n }),\n });\n const calledTool = (target: ToolMatch | string, options?: CalledToolOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly (match, options)\");\n return calledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n target,\n options,\n snapshot: toolScope,\n });\n };\n const notCalledTool = (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n target,\n snapshot: toolScope,\n });\n };\n const toolOrder = (matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"toolOrder() accepts exactly one ordered match list\");\n return toolOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n matches,\n snapshot: toolScope,\n });\n };\n const usedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({ runtime: runtime as AssertionsRuntime<Kind>, scope: \"turn\", snapshot: toolScope });\n };\n const maxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({ runtime: runtime as AssertionsRuntime<Kind>, scope: \"turn\", max, snapshot: toolScope });\n };\n const noFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n return noFailedActionsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n events: occurrenceTurn.events,\n coverage,\n snapshot: scopeSnapshot,\n });\n };\n const event = (match: EventMatch, options?: EventOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly (match, options)\");\n return eventAssertionHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n match: assertManagedEventMatch(match, \"event() match\"),\n count: normalizeEventCount(options),\n snapshot: eventScope,\n });\n };\n const notEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n match: assertManagedEventMatch(match, \"notEvent() match\"),\n snapshot: eventScope,\n });\n };\n const eventOrder = (matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"eventOrder() accepts exactly one ordered match list\");\n return eventOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n matches,\n snapshot: eventScope,\n });\n };\n const maxTokens = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxTokens() accepts exactly one maximum\");\n return usageLimitHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n metric: \"tokens\",\n maximum: max,\n usage: turn.usage ?? {},\n coverage,\n snapshot: scopeSnapshot,\n });\n };\n const maxCost = (usd: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxCost() accepts exactly one maximum\");\n return usageLimitHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n metric: \"cost\",\n maximum: usd,\n usage: turn.usage ?? {},\n estimatedCostUSD: estimatedCostFor(turn.usage === undefined ? {} : turn.usage),\n coverage,\n snapshot: scopeSnapshot,\n });\n };\n return Object.freeze({\n events: snapshot.events,\n toolCalls: snapshot.toolCalls,\n status: snapshot.status,\n message: snapshot.output,\n ...(turn.data === undefined ? {} : { data: turn.data }),\n ...(turn.usage === undefined ? {} : { usage: turn.usage }),\n succeeded: () => succeededHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n status: snapshot.status,\n coverage: snapshot.coverage,\n snapshot: scopeSnapshot,\n }),\n calledTool,\n notCalledTool,\n toolOrder,\n usedNoTools,\n maxToolCalls,\n noFailedActions,\n event,\n notEvent,\n eventOrder,\n maxTokens,\n maxCost,\n judge,\n });\n };\n const sendEffect = <Kind extends RuntimeKind>(scope: SessionScopeState, text: string, files?: readonly InputFile[], responses?: readonly InputResponse[], loc?: ReturnType<typeof captureLoc>): Effect.Effect<AssertFirstTurnHandle<Kind>, unknown> => {\n const capturedLoc = loc ?? captureLoc({ registry: deps.sourceRegistry });\n return Effect.suspend(() => {\n scope.started = true;\n scope.inFlight += 1;\n return manager.sendEffect(scope.session, text, files, responses, capturedLoc).pipe(Effect.map((turn) => makeTurn<Kind>(scope, turn, text)), Effect.tapError(() => Effect.sync(() => {\n scope.failed = true;\n })), Effect.ensuring(Effect.sync(() => {\n scope.inFlight -= 1;\n })));\n });\n };\n const send = <Kind extends RuntimeKind>(scope: SessionScopeState, text: string, files?: readonly InputFile[], responses?: readonly InputResponse[]): Promise<AssertFirstTurnHandle<Kind>> => deps.requestEffect(sendEffect<Kind>(scope, text, files, responses, captureLoc({ registry: deps.sourceRegistry })));\n const makeSession = <Kind extends RuntimeKind>(scope: SessionScopeState): AssertFirstSessionHandle<Kind> => {\n const session = scope.session;\n const toolOrder = (matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"toolOrder() accepts exactly one ordered match list\");\n return toolOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n matches,\n snapshot: sessionToolScope(scope),\n });\n };\n const usedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n snapshot: sessionToolScope(scope),\n });\n };\n const maxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n max,\n snapshot: sessionToolScope(scope),\n });\n };\n const noFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n const coverage = sessionCoverage(scope);\n return noFailedActionsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n events: sessionScopedEvents(scope),\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n const event = (match: EventMatch, options?: EventOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly (match, options)\");\n return eventAssertionHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n match: assertManagedEventMatch(match, \"event() match\"),\n count: normalizeEventCount(options),\n snapshot: sessionEventScope(scope),\n });\n };\n const notEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n match: assertManagedEventMatch(match, \"notEvent() match\"),\n snapshot: sessionEventScope(scope),\n });\n };\n const eventOrder = (matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"eventOrder() accepts exactly one ordered match list\");\n return eventOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n matches,\n snapshot: sessionEventScope(scope),\n });\n };\n const maxTokens = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxTokens() accepts exactly one maximum\");\n const coverage = sessionCoverage(scope);\n return usageLimitHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n metric: \"tokens\",\n maximum: max,\n usage: session.usage,\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n const maxCost = (usd: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxCost() accepts exactly one maximum\");\n const coverage = sessionCoverage(scope);\n return usageLimitHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n metric: \"cost\",\n maximum: usd,\n usage: session.usage,\n estimatedCostUSD: estimatedCostFor(session.usage),\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n return Object.freeze({\n send: (input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }) => {\n const text = typeof input === \"string\" ? input : input.text;\n const files = typeof input === \"string\" ? undefined : input.files;\n return send<Kind>(scope, text, files);\n },\n sendFile: (path: string, text?: string) => {\n const loc = captureLoc({ registry: deps.sourceRegistry });\n return deps.requestEffect(readInputFileEffect(path).pipe(Effect.flatMap((file) => sendEffect<Kind>(scope, text ?? \"\", [file], undefined, loc))));\n },\n requireInputRequest: (filter?: InputRequestFilter) => requireInputRequest(session, filter),\n async respond(...responses: readonly (string | AssertFirstRespondAnswer)[]) {\n if (responses.length === 0)\n throw new Error(\"respond() requires at least one answer\");\n const built = buildRespondInput(session, responses);\n session.pendingInputRequests.length = 0;\n return send<Kind>(scope, built.text, undefined, built.responses);\n },\n async respondAll(optionId: string) {\n if (session.pendingInputRequests.length === 0) {\n throw new Error(\"There is no pending input request to answer\");\n }\n const requests = session.pendingInputRequests.slice();\n for (const request of requests)\n validateOptionId(request, optionId);\n session.pendingInputRequests.length = 0;\n return send<Kind>(scope, requests.map(() => optionId).join(\"\\n\"), undefined, requests.map((request) => ({ requestId: requireRequestId(request), optionId })));\n },\n get reply() {\n return session.lastMessage;\n },\n get sessionId() {\n return session.id;\n },\n get events() {\n return Object.freeze([...session.events]);\n },\n get usage() {\n return Object.freeze({ ...session.usage });\n },\n succeeded: () => succeededHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n snapshot: sessionSnapshot(scope),\n }),\n calledTool: (target: ToolMatch | string, options?: CalledToolOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly (match, options)\");\n return calledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n target,\n options,\n snapshot: sessionToolScope(scope),\n });\n },\n notCalledTool: (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n target,\n snapshot: sessionToolScope(scope),\n });\n },\n toolOrder,\n usedNoTools,\n maxToolCalls,\n noFailedActions,\n event,\n notEvent,\n eventOrder,\n maxTokens,\n maxCost,\n });\n };\n const primaryScope: SessionScopeState = {\n session: manager.primary,\n turns: [],\n started: false,\n inFlight: 0,\n failed: false,\n };\n sessions.push(primaryScope);\n const primary = makeSession<RuntimeKind>(primaryScope);\n const rootJudge: AssertFirstRootJudge<RuntimeKind> = Object.freeze({\n autoevals: Object.freeze({\n closedQA: (question: string, material: JudgeMaterial) => judgeHandle({\n runtime,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"closedQA\",\n reference: question,\n material,\n }),\n factuality: (expected: string, material: JudgeMaterial) => judgeHandle({\n runtime,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"factuality\",\n reference: expected,\n material,\n }),\n summarizes: (source: string, material: JudgeMaterial) => judgeHandle({\n runtime,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"summarizes\",\n reference: source,\n material,\n }),\n }),\n });\n const rootUsedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({ runtime, scope: \"attempt\", snapshot: attemptToolScope() });\n };\n const rootMaxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({ runtime, scope: \"attempt\", max, snapshot: attemptToolScope() });\n };\n const rootNoFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n const coverage = attemptCoverage();\n return noFailedActionsHandle({\n runtime,\n scope: \"attempt\",\n events: attemptScopedEvents(),\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const rootEvent = (match: EventMatch, options?: EventOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly (match, options)\");\n return eventAssertionHandle({\n runtime,\n scope: \"attempt\",\n match: assertManagedEventMatch(match, \"event() match\"),\n count: normalizeEventCount(options),\n snapshot: attemptEventScope(),\n });\n };\n const rootNotEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventHandle({\n runtime,\n scope: \"attempt\",\n match: assertManagedEventMatch(match, \"notEvent() match\"),\n snapshot: attemptEventScope(),\n });\n };\n const rootMaxTokens = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxTokens() accepts exactly one maximum\");\n const coverage = attemptCoverage();\n return usageLimitHandle({\n runtime,\n scope: \"attempt\",\n metric: \"tokens\",\n maximum: max,\n usage: manager.usage,\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const rootMaxCost = (usd: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxCost() accepts exactly one maximum\");\n const coverage = attemptCoverage();\n return usageLimitHandle({\n runtime,\n scope: \"attempt\",\n metric: \"cost\",\n maximum: usd,\n usage: manager.usage,\n estimatedCostUSD: estimatedCostFor(manager.usage),\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const base = {\n evaluationKind: deps.evaluationKind,\n send: primary.send,\n sendFile: primary.sendFile,\n requireInputRequest: primary.requireInputRequest,\n respond: primary.respond,\n respondAll: primary.respondAll,\n get reply() {\n return primary.reply;\n },\n get sessionId() {\n return primary.sessionId;\n },\n get events() {\n return primary.events;\n },\n newSession: () => {\n const scope: SessionScopeState = {\n session: manager.newSession(),\n turns: [],\n started: false,\n inFlight: 0,\n failed: false,\n };\n sessions.push(scope);\n return makeSession<RuntimeKind>(scope);\n },\n signal: deps.signal,\n model: deps.model,\n reasoningEffort: deps.reasoningEffort,\n flags: deps.flags,\n progress: (update: import(\"../types.ts\").ProgressUpdate) => {\n if (deps.feedback !== undefined) {\n deps.feedback.progress(update);\n }\n else {\n deps.log(update.current === undefined || update.total === undefined\n ? update.message\n : `${update.message} (${update.current}/${update.total})`);\n }\n },\n diagnostic: (input: import(\"../types.ts\").DiagnosticInput) => deps.feedback?.diagnostic(input),\n log: deps.log,\n skip: (reason: string): never => {\n if (reason.trim() === \"\")\n throw new Error(\"skip() requires a non-empty reason\");\n state.skipReason = reason;\n throw new EvalSkipped(reason);\n },\n group: runtime.t.group,\n check: runtime.t.check,\n sandbox: createAssertFirstSandbox({\n agent: deps.agent,\n sandbox: deps.sandbox,\n runtime,\n late: state.late,\n }),\n get o11y() {\n return buildO11ySummary(manager.allEvents);\n },\n get usage() {\n return Object.freeze({ ...manager.usage });\n },\n succeeded: () => succeededHandle({\n runtime,\n scope: \"attempt\",\n status: attemptStatus(),\n coverage: attemptCoverage(),\n snapshot: attemptSnapshot(),\n }),\n calledTool: (target: ToolMatch | string, options?: CalledToolOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly (match, options)\");\n return calledToolHandle({\n runtime,\n scope: \"attempt\",\n target,\n options,\n snapshot: attemptToolScope(),\n });\n },\n notCalledTool: (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime,\n scope: \"attempt\",\n target,\n snapshot: attemptToolScope(),\n });\n },\n usedNoTools: rootUsedNoTools,\n maxToolCalls: rootMaxToolCalls,\n noFailedActions: rootNoFailedActions,\n event: rootEvent,\n notEvent: rootNotEvent,\n maxTokens: rootMaxTokens,\n maxCost: rootMaxCost,\n judge: rootJudge,\n };\n const context = deps.evaluationKind === \"score\"\n ? Object.freeze({\n ...base,\n score: (runtime as AssertionsRuntime<\"score\">).t.score,\n })\n : Object.freeze(base);\n return {\n context: context as AssertFirstTestContext<RuntimeKind>,\n state,\n };\n}\n"]}
1
+ {"version":3,"file":"assert-first.js","sourceRoot":"","sources":["assert-first.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * The active Eval context. Assertion authoring deliberately enters through\n * `AssertionsRuntime`; this module never constructs an intermediate Fact or\n * starts a private runtime.\n */\nimport { readFile } from \"node:fs/promises\";\nimport { basename, extname } from \"node:path\";\nimport { Effect } from \"effect\";\nimport { captureAssertionSnapshot, createAssertionsRuntime, postRunBooleanAssertionHandle, } from \"../assertions/runtime.ts\";\nimport type { AssertionCriterion, AssertionMaterial, AssertionsRuntime, BooleanAssertionHandle, BooleanAssertionEvaluation, DirectScoreAssertionHandle, MeasurementAssertionHandle, PostRunBooleanAssertionHandle, } from \"../assertions/api.ts\";\nimport { assertJudgeCapability, evaluateJudgeMeasurement, freezeJudgeMaterial, type JudgeRecipe, } from \"../assertions/judge.ts\";\nimport { agentWorkspaceDiffChangesForPath, agentWorkspaceDiffPathsMatch, evaluateWorkspaceDiffNotIn, type AgentWorkspaceDiffEndpoint, type PostRunWorkspaceDiffState, type WorkspaceDiffNotInOptions, } from \"../assertions/workspace-diff.ts\";\nimport { assertCanonicalWorkspaceRelativePath, validateExpectedTouchedPaths, } from \"../assertions/diff.ts\";\nimport { assertionEventOccurrence, assertManagedEventMatch, assertManagedToolMatch, evaluateBooleanMatch, evaluateToolMatchCollection, makeAssertionMessageEvent, makeAssertionToolEvent, toolMatch, type BooleanMatch, type BooleanMatchEvaluation, type EventMatch, type MatchableEvent, type ToolMatch, type ToolMatchQuantifier, } from \"../assertions/match.ts\";\nimport { buildO11ySummary, deriveRunFacts, deriveScopedLogicalToolOccurrences } from \"../o11y/derive.ts\";\nimport { estimateCost } from \"../o11y/cost.ts\";\nimport { UNCLASSIFIED_TOOL_ACTIONS_REASON } from \"../o11y/command-projection.ts\";\nimport { captureLoc, type SourceRegistry } from \"../source-loc.ts\";\nimport { lastAssistantText, RunSession, SessionManager, type SessionDeps } from \"./session.ts\";\nimport { EvalSkipped } from \"./control-flow.ts\";\nimport type { ConcurrencySlot } from \"./send-retry.ts\";\nimport type { AnswerValue, InputResponse } from \"../agents/types.ts\";\nimport { matchesJson } from \"../shared/json-match.ts\";\nimport type { Agent, InputFile, InputRequest, InputRequestFilter, JsonMatch, JsonValue, JudgeMaterial, PriceOverride, ResolvedJudgeConfig, Sandbox, SandboxOperations, SandboxTransferOperations, StreamEvent, Turn, Usage, } from \"../types.ts\";\nimport type { LogicalToolOccurrence, LogicalToolOccurrenceScopeTurn, OrphanToolOperationFinish, } from \"../o11y/types.ts\";\nexport interface AssertFirstLateResult {\n diff: PostRunWorkspaceDiffState;\n scripts: globalThis.Record<string, import(\"../types.ts\").ScriptResult>;\n}\nexport interface AssertFirstContextState {\n readonly assertions: AssertionsRuntime<\"pass\" | \"score\">;\n readonly manager: SessionManager;\n skipReason?: string;\n readonly late: AssertFirstLateResult;\n}\n/** The Runner-facing dependencies retain the current SessionManager boundary. */\nexport interface AssertFirstContextDeps {\n readonly agent: Agent;\n readonly sandbox: Sandbox;\n readonly evalId?: string;\n readonly attempt?: import(\"../types.ts\").AgentContext[\"attempt\"];\n readonly evalGroup?: import(\"../types.ts\").AgentContext[\"evalGroup\"];\n readonly model?: string;\n /** defineConfig({ pricing }) 的价目表,只供 maxCost 的 estimatedCostUSD 估算(estimateCost);与 observed usage.costUSD 无关。 */\n readonly pricing?: globalThis.Record<string, PriceOverride>;\n readonly reasoningEffort?: string;\n readonly flags: globalThis.Record<string, JsonValue>;\n readonly experimentId?: string;\n readonly signal: AbortSignal;\n readonly log: (message: string) => void;\n readonly telemetry?: import(\"../types.ts\").Telemetry;\n readonly otel?: import(\"../o11y/otlp/turn-otel.ts\").AgentOtelChannel;\n readonly feedback?: import(\"../types.ts\").ScopedFeedback;\n readonly onSendActive?: (active: boolean) => void;\n readonly ledgerHooks?: import(\"./session.ts\").SessionDeps[\"ledgerHooks\"];\n readonly timingNow?: import(\"./session.ts\").SessionDeps[\"timingNow\"];\n readonly onTurn?: import(\"./session.ts\").SessionDeps[\"onTurn\"];\n readonly concurrencySlot?: ConcurrencySlot;\n readonly experimentClassifier?: import(\"./session.ts\").SessionDeps[\"experimentClassifier\"];\n /** Attempt-owned source snapshot registry; never inferred from an Effect fiber. */\n readonly sourceRegistry?: SourceRegistry;\n readonly resources: import(\"../types.ts\").AttemptResourceRegistry;\n /** Shared ordering with Assertion runtime source facts and Session user events. */\n readonly nextSourceOrder?: () => number;\n readonly judge: ResolvedJudgeConfig | undefined;\n /** The Attempt-scoped bridge is the sole Promise facade for author sends. */\n readonly requestEffect: NonNullable<SessionDeps[\"requestEffect\"]>;\n /** Ordinary immediate Assertion stop barriers stay in the Attempt Effect Scope. */\n readonly executeStop: import(\"../assertions/api.ts\").AssertionStopExecutor;\n readonly evaluationKind: \"pass\" | \"score\";\n}\ntype RuntimeKind = \"pass\" | \"score\";\ntype AssertFirstRespondAnswer = {\n readonly request: InputRequest;\n} & AnswerValue;\nexport interface CalledToolAtLeast {\n readonly atLeast: number;\n}\nexport type CalledToolCount = number | CalledToolAtLeast;\nexport interface CalledToolOptions {\n readonly count?: CalledToolCount;\n}\nexport interface EventOptions {\n /** An omitted count requires at least one matching event; a number is exact. */\n readonly count?: number;\n}\nexport interface FileChangedOptions {\n readonly status?: \"added\" | \"modified\" | \"deleted\";\n readonly before?: BooleanMatch<string, string, \"value\">;\n readonly after?: BooleanMatch<string, string, \"value\">;\n}\n/** The only agent-attributed post-run diff surface exposed to Eval authors. */\nexport interface AssertFirstSandbox<Kind extends RuntimeKind> extends SandboxOperations, SandboxTransferOperations {\n changedPaths(paths: readonly string[]): PostRunBooleanAssertionHandle<Kind, void>;\n noChanges(): PostRunBooleanAssertionHandle<Kind, void>;\n fileChanged(path: string, options?: FileChangedOptions): PostRunBooleanAssertionHandle<Kind, void>;\n fileDeleted(path: string): PostRunBooleanAssertionHandle<Kind, void>;\n notInDiff(pattern: RegExp, options?: WorkspaceDiffNotInOptions): PostRunBooleanAssertionHandle<Kind, void>;\n}\nexport interface AssertFirstRootJudge<Kind extends RuntimeKind> {\n readonly autoevals: {\n closedQA(question: string, material: JudgeMaterial): MeasurementAssertionHandle<Kind>;\n factuality(expected: string, material: JudgeMaterial): MeasurementAssertionHandle<Kind>;\n summarizes(source: string, material: JudgeMaterial): MeasurementAssertionHandle<Kind>;\n };\n}\nexport interface AssertFirstTurnJudge<Kind extends RuntimeKind> {\n readonly autoevals: {\n closedQA(question: string): MeasurementAssertionHandle<Kind>;\n factuality(expected: string): MeasurementAssertionHandle<Kind>;\n summarizes(source: string): MeasurementAssertionHandle<Kind>;\n };\n}\nexport interface AssertFirstTurnHandle<Kind extends RuntimeKind> {\n readonly events: readonly StreamEvent[];\n readonly toolCalls: readonly import(\"../o11y/types.ts\").ToolCall[];\n readonly status: \"completed\" | \"failed\" | \"waiting\";\n readonly message: string;\n readonly data?: JsonValue;\n readonly usage?: Usage;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n toolOrder(matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch, options?: EventOptions): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n eventOrder(matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n maxTokens(max: number): BooleanAssertionHandle<Kind, void>;\n maxCost(usd: number): BooleanAssertionHandle<Kind, void>;\n readonly judge: AssertFirstTurnJudge<Kind>;\n}\nexport interface AssertFirstSessionHandle<Kind extends RuntimeKind> {\n send(input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }): Promise<AssertFirstTurnHandle<Kind>>;\n sendFile(path: string, text?: string): Promise<AssertFirstTurnHandle<Kind>>;\n requireInputRequest(filter?: InputRequestFilter): InputRequest;\n respond(...responses: readonly (string | AssertFirstRespondAnswer)[]): Promise<AssertFirstTurnHandle<Kind>>;\n respondAll(optionId: string): Promise<AssertFirstTurnHandle<Kind>>;\n readonly reply: string;\n readonly sessionId: string | undefined;\n readonly events: readonly StreamEvent[];\n readonly usage: Usage;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n toolOrder(matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch, options?: EventOptions): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n eventOrder(matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n maxTokens(max: number): BooleanAssertionHandle<Kind, void>;\n maxCost(usd: number): BooleanAssertionHandle<Kind, void>;\n}\nexport type AssertFirstTestContext<Kind extends RuntimeKind> = {\n readonly evaluationKind: Kind;\n send(input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }): Promise<AssertFirstTurnHandle<Kind>>;\n sendFile(path: string, text?: string): Promise<AssertFirstTurnHandle<Kind>>;\n requireInputRequest(filter?: InputRequestFilter): InputRequest;\n respond(...responses: readonly (string | AssertFirstRespondAnswer)[]): Promise<AssertFirstTurnHandle<Kind>>;\n respondAll(optionId: string): Promise<AssertFirstTurnHandle<Kind>>;\n readonly reply: string;\n readonly sessionId: string | undefined;\n readonly events: readonly StreamEvent[];\n newSession(): AssertFirstSessionHandle<Kind>;\n readonly signal: AbortSignal;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: Readonly<globalThis.Record<string, JsonValue>>;\n progress(update: import(\"../types.ts\").ProgressUpdate): void;\n diagnostic(input: import(\"../types.ts\").DiagnosticInput): void;\n log(message: string): void;\n skip(reason: string): never;\n group<Value>(title: string, body: () => Value | PromiseLike<Value>): Promise<Awaited<Value>>;\n check: AssertionsRuntime<Kind>[\"t\"][\"check\"];\n readonly sandbox: AssertFirstSandbox<Kind>;\n readonly o11y: import(\"../o11y/types.ts\").O11ySummary;\n readonly usage: Usage;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string, options?: CalledToolOptions): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch, options?: EventOptions): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n maxTokens(max: number): BooleanAssertionHandle<Kind, void>;\n maxCost(usd: number): BooleanAssertionHandle<Kind, void>;\n readonly judge: AssertFirstRootJudge<Kind>;\n} & (Kind extends \"score\" ? {\n score(points: number): DirectScoreAssertionHandle;\n} : {});\ntype AssertionScope = \"turn\" | \"session\" | \"attempt\";\ntype ScopeStatus = \"completed\" | \"failed\" | \"waiting\" | \"not-started\";\ntype ScopeCoverage = import(\"../assertions/coverage.ts\").ResolvedEvidenceCoverage;\nfunction scopeCriterion(scope: AssertionScope, assertion: \"succeeded\" | \"no-failed-actions\" = \"succeeded\"): AssertionCriterion {\n return Object.freeze({\n kind: \"scope-status\" as const,\n scope,\n assertion,\n });\n}\nfunction occurrenceCriterion(scope: AssertionScope, occurrence: \"tool\" | \"event\", matcher: string | undefined, quantifier: ToolMatchQuantifier): AssertionCriterion {\n return Object.freeze({\n kind: \"occurrence\" as const,\n scope,\n occurrence,\n assertion: quantifier.kind === \"absent\"\n ? \"absent\" as const\n : quantifier.kind === \"exact\"\n ? \"count\" as const\n : \"present\" as const,\n ...(matcher === undefined ? {} : { matcher }),\n quantifier: Object.freeze(quantifier.kind === \"absent\"\n ? { kind: \"absent\" as const }\n : { kind: quantifier.kind, count: quantifier.count }),\n });\n}\nfunction scopeCoverageState(coverage: ScopeCoverage, channel: \"actions\" | \"status\"): \"complete\" | \"partial\" | \"unavailable\" {\n return coverage[channel].status;\n}\nfunction succeededHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly status: ScopeStatus;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot({\n scope: input.scope,\n assertion: \"succeeded\",\n status: input.status,\n coverage: input.coverage.status.status,\n snapshot: input.snapshot,\n });\n return input.runtime.registerBoolean<void>({\n criterion: scopeCriterion(input.scope),\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: () => Effect.sync(() => input.status === \"not-started\"\n ? Object.freeze({ state: \"mismatched\" as const })\n : scopeCoverageState(input.coverage, \"status\") !== \"complete\"\n ? Object.freeze({ state: \"unavailable\" as const, reason: \"source-unavailable\" as const })\n : input.status === \"completed\"\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const })),\n });\n}\ninterface ToolScopeSnapshot {\n readonly occurrences: readonly LogicalToolOccurrence[];\n readonly orphanFinishes: readonly OrphanToolOperationFinish[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}\nfunction projectToolScope(input: {\n readonly turns: readonly LogicalToolOccurrenceScopeTurn[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): ToolScopeSnapshot {\n const projection = deriveScopedLogicalToolOccurrences(input.turns);\n return Object.freeze({\n occurrences: projection.occurrences,\n orphanFinishes: projection.orphanFinishes,\n coverage: input.coverage,\n snapshot: input.snapshot,\n });\n}\nfunction resolveToolTarget(target: ToolMatch | string, label: \"calledTool\" | \"notCalledTool\"): ToolMatch {\n if (typeof target === \"string\")\n return toolMatch(target);\n return assertManagedToolMatch(target, `${label}() match`);\n}\nfunction normalizeCalledToolOptions(value: CalledToolOptions | undefined): ToolMatchQuantifier {\n if (value === undefined)\n return Object.freeze({ kind: \"at-least\" as const, count: 1 });\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"calledTool() options must be an object\");\n }\n const options = value as globalThis.Record<string, unknown>;\n for (const key of Object.keys(options)) {\n if (key !== \"count\") {\n throw new TypeError(`calledTool() options does not support option ${JSON.stringify(key)}; put field constraints in toolMatch()`);\n }\n }\n const count = options.count;\n if (count === undefined)\n return Object.freeze({ kind: \"at-least\" as const, count: 1 });\n if (count !== undefined) {\n if (typeof count === \"number\") {\n if (count === 0) {\n throw new TypeError(\"calledTool() options.count must be a positive safe integer; use notCalledTool() for zero\");\n }\n if (!Number.isSafeInteger(count) || count < 0) {\n throw new TypeError(\"calledTool() options.count must be a positive safe integer\");\n }\n return Object.freeze({ kind: \"exact\" as const, count });\n }\n if (typeof count !== \"object\" || count === null || Array.isArray(count)) {\n throw new TypeError(\"calledTool() options.count must be a positive safe integer or { atLeast: positive safe integer }\");\n }\n const lowerBound = count as globalThis.Record<string, unknown>;\n for (const key of Object.keys(lowerBound)) {\n if (key !== \"atLeast\") {\n throw new TypeError(`calledTool() options.count does not support key ${JSON.stringify(key)}`);\n }\n }\n if (lowerBound.atLeast === 0) {\n throw new TypeError(\"calledTool() options.count.atLeast must be a positive safe integer; use notCalledTool() for zero\");\n }\n if (!Number.isSafeInteger(lowerBound.atLeast) || typeof lowerBound.atLeast !== \"number\" || lowerBound.atLeast < 0) {\n throw new TypeError(\"calledTool() options.count.atLeast must be a positive safe integer\");\n }\n return Object.freeze({ kind: \"at-least\" as const, count: lowerBound.atLeast });\n }\n throw new TypeError(\"calledTool() options.count must be a positive safe integer or { atLeast: positive safe integer }\");\n}\nfunction toolScopeCoverageReason(snapshot: ToolScopeSnapshot): string | undefined {\n const actions = snapshot.coverage.actions;\n // Missing command/not-command classification limits commandMatch(), not the\n // completeness of the already captured tool occurrence set. Tool name/input/\n // lifecycle counts remain decidable; commandMatch itself retains unavailable\n // evidence when an occurrence has no command projection.\n if (actions.status !== \"complete\"\n && actions.reason !== UNCLASSIFIED_TOOL_ACTIONS_REASON) {\n return `scope-actions-${actions.status}:${actions.reason}`;\n }\n if (snapshot.orphanFinishes.length > 0) {\n return `orphan-tool-finish:${snapshot.orphanFinishes.length}`;\n }\n return undefined;\n}\nfunction collectionAssertionEvaluation(result: Awaited<ReturnType<typeof evaluateToolMatchCollection>>): BooleanAssertionEvaluation<void> {\n switch (result.state) {\n case \"matched\":\n return Object.freeze({ state: \"matched\" as const, value: undefined, diagnostic: result.diagnostic, receipt: result.receipt });\n case \"mismatched\":\n return Object.freeze({ state: \"mismatched\" as const, diagnostic: result.diagnostic, receipt: result.receipt });\n case \"unavailable\":\n return Object.freeze({\n state: \"unavailable\" as const,\n reason: \"evidence-unavailable\" as const,\n diagnostic: result.diagnostic,\n receipt: result.receipt,\n });\n }\n}\nfunction toolAssertionHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly match: ToolMatch;\n readonly quantifier: ToolMatchQuantifier;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot({\n scope: input.scope,\n occurrence: \"tool\",\n matcher: input.match.name,\n quantifier: input.quantifier,\n candidateCount: input.snapshot.occurrences.length,\n orphanFinishCount: input.snapshot.orphanFinishes.length,\n coverage: input.snapshot.coverage.actions,\n snapshot: input.snapshot.snapshot,\n });\n return input.runtime.registerBoolean<void>({\n criterion: occurrenceCriterion(input.scope, \"tool\", input.match.name, input.quantifier),\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: () => {\n const coverageReason = toolScopeCoverageReason(input.snapshot);\n return Effect.tryPromise({\n try: async () => collectionAssertionEvaluation(await evaluateToolMatchCollection(input.match, input.snapshot.occurrences, {\n quantifier: input.quantifier,\n ...(coverageReason === undefined ? {} : { coverageReason }),\n })),\n catch: (error) => error,\n });\n },\n });\n}\nfunction calledToolHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly target: ToolMatch | string;\n readonly options: CalledToolOptions | undefined;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n return toolAssertionHandle({\n runtime: input.runtime,\n scope: input.scope,\n match: resolveToolTarget(input.target, \"calledTool\"),\n quantifier: normalizeCalledToolOptions(input.options),\n snapshot: input.snapshot,\n });\n}\nfunction notCalledToolHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly target: ToolMatch | string;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n return toolAssertionHandle({\n runtime: input.runtime,\n scope: input.scope,\n match: resolveToolTarget(input.target, \"notCalledTool\"),\n quantifier: Object.freeze({ kind: \"absent\" as const }),\n snapshot: input.snapshot,\n });\n}\nfunction valueMatchCriterion(): AssertionCriterion {\n return Object.freeze({\n kind: \"value-match\" as const,\n subject: \"explicit-value\" as const,\n matcher: Object.freeze({ state: \"unavailable\" as const }),\n });\n}\nfunction matchedVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"matched\" as const, value: undefined });\n}\nfunction mismatchedVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"mismatched\" as const });\n}\nfunction unavailableVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"unavailable\" as const, reason: \"evidence-unavailable\" as const });\n}\nfunction scopedBooleanHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly criterion: AssertionCriterion;\n readonly snapshot: unknown;\n readonly evaluate: () => Effect.Effect<BooleanAssertionEvaluation<void>, unknown, never>;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot(input.snapshot);\n return input.runtime.registerBoolean<void>({\n criterion: input.criterion,\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: input.evaluate,\n });\n}\nfunction hasCompleteCoverage(coverage: ScopeCoverage, channel: \"actions\" | \"events\" | \"usage\"): boolean {\n return coverage[channel].status === \"complete\";\n}\nfunction assertNonNegativeFinite(value: unknown, label: string): asserts value is number {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n throw new TypeError(`${label} must be a finite non-negative number`);\n }\n}\nfunction assertNonNegativeSafeInteger(value: unknown, label: string): asserts value is number {\n if (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`${label} must be a non-negative safe integer`);\n }\n}\nfunction usedNoToolsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: occurrenceCriterion(input.scope, \"tool\", undefined, Object.freeze({ kind: \"absent\" as const })),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"used-no-tools\",\n occurrenceCount: input.snapshot.occurrences.length,\n orphanFinishCount: input.snapshot.orphanFinishes.length,\n coverage: input.snapshot.coverage.actions,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n if (input.snapshot.occurrences.length > 0)\n return mismatchedVoid();\n return toolScopeCoverageReason(input.snapshot) === undefined\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction maxToolCallsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly max: number;\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n assertNonNegativeSafeInteger(input.max, \"maxToolCalls() max\");\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: valueMatchCriterion(),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"max-tool-calls\",\n max: input.max,\n occurrenceCount: input.snapshot.occurrences.length,\n orphanFinishCount: input.snapshot.orphanFinishes.length,\n coverage: input.snapshot.coverage.actions,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n if (input.snapshot.occurrences.length > input.max)\n return mismatchedVoid();\n return toolScopeCoverageReason(input.snapshot) === undefined\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction noFailedActionsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly events: readonly StreamEvent[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: scopeCriterion(input.scope, \"no-failed-actions\"),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"no-failed-actions\",\n eventCount: input.events.length,\n coverage: input.coverage.actions,\n snapshot: input.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n const facts = deriveRunFacts(input.events);\n const failed = facts.toolCalls.some((call) => call.status === \"failed\")\n || facts.subagentCalls.some((call) => call.status === \"failed\");\n if (failed)\n return mismatchedVoid();\n return hasCompleteCoverage(input.coverage, \"actions\")\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction usageLimitHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly metric: \"tokens\" | \"cost\";\n readonly maximum: number;\n readonly usage: Usage;\n /** metric === \"cost\" 时的价目表估算(estimateCost(model, usage, pricing));observed usage.costUSD 不进入预算断言。 */\n readonly estimatedCostUSD?: number;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n assertNonNegativeFinite(input.maximum, input.metric === \"tokens\" ? \"maxTokens() max\" : \"maxCost() usd\");\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: valueMatchCriterion(),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: input.metric === \"tokens\" ? \"max-tokens\" : \"max-cost\",\n maximum: input.maximum,\n usage: Object.freeze({ ...input.usage }),\n coverage: input.coverage.usage,\n snapshot: input.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n // 预算只认 estimatedCostUSD(价目表估算),never observed usage.costUSD:\n // 两者独立并存,observed 存在也不改变估算口径(见 Usage.costUSD 单向字段契约)。\n // 无 model / 无价格 / 无可计价 usage 时 estimate 不存在;缺测不能被当成零成本。\n const actual = input.metric === \"tokens\"\n ? (input.usage.inputTokens ?? 0) + (input.usage.outputTokens ?? 0)\n : input.estimatedCostUSD;\n if (actual === undefined)\n return unavailableVoid();\n if (actual > input.maximum)\n return mismatchedVoid();\n return hasCompleteCoverage(input.coverage, \"usage\")\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction orderedMatchList<Match>(value: readonly Match[], label: string, assertMatch: (value: unknown, label: string) => Match): readonly Match[] {\n if (!Array.isArray(value) || value.length < 2) {\n throw new TypeError(`${label} requires at least two Match values`);\n }\n return Object.freeze(value.map((match, index) => assertMatch(match, `${label} match ${index + 1}`)));\n}\nfunction hasOrderedPath(matrix: readonly (readonly BooleanMatchEvaluation<unknown>[])[], allowed: (result: BooleanMatchEvaluation<unknown>) => boolean): boolean {\n let cursor = 0;\n for (const row of matrix) {\n let found = -1;\n for (let index = cursor; index < row.length; index += 1) {\n if (allowed(row[index]!)) {\n found = index;\n break;\n }\n }\n if (found < 0)\n return false;\n cursor = found + 1;\n }\n return true;\n}\nfunction toolMatchEvaluation(occurrence: LogicalToolOccurrence, result: BooleanMatchEvaluation<unknown>): BooleanMatchEvaluation<unknown> {\n if (occurrence.lifecycle.state === \"opaque\" && result.state === \"matched\") {\n return Object.freeze({\n state: \"unavailable\" as const,\n reason: `tool-lifecycle-unavailable:${occurrence.lifecycle.reason}`,\n diagnostic: Object.freeze({\n code: \"tool-lifecycle-unavailable\",\n message: \"the matching tool lifecycle is incomplete\",\n path: Object.freeze([]),\n reason: occurrence.lifecycle.reason,\n }),\n });\n }\n return result;\n}\nfunction toolOrderHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly matches: readonly ToolMatch[];\n readonly snapshot: ToolScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n const matches = orderedMatchList(input.matches, \"toolOrder()\", assertManagedToolMatch);\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: valueMatchCriterion(),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"tool-order\",\n matches: matches.map((match) => match.name),\n occurrenceCount: input.snapshot.occurrences.length,\n orphanFinishCount: input.snapshot.orphanFinishes.length,\n coverage: input.snapshot.coverage.actions,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.tryPromise({\n try: async () => {\n const matrix: BooleanMatchEvaluation<unknown>[][] = [];\n for (const match of matches) {\n const row: BooleanMatchEvaluation<unknown>[] = [];\n for (const occurrence of input.snapshot.occurrences) {\n row.push(toolMatchEvaluation(occurrence, await evaluateBooleanMatch(match, occurrence)));\n }\n matrix.push(row);\n }\n if (hasOrderedPath(matrix, (result) => result.state === \"matched\"))\n return matchedVoid();\n if (toolScopeCoverageReason(input.snapshot) !== undefined\n || hasOrderedPath(matrix, (result) => result.state === \"matched\" || result.state === \"unavailable\")) {\n return unavailableVoid();\n }\n return mismatchedVoid();\n },\n catch: (error) => error,\n }),\n });\n}\ninterface EventScopeSnapshot {\n readonly events: readonly MatchableEvent[];\n readonly unassociatedOperation: boolean;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}\nfunction eventPositionKey(position: {\n readonly turnOrdinal: number;\n readonly eventOrdinal: number;\n}): string {\n return `${position.turnOrdinal}:${position.eventOrdinal}`;\n}\nfunction projectEventScope(input: {\n readonly turns: readonly LogicalToolOccurrenceScopeTurn[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): EventScopeSnapshot {\n const derivation = deriveScopedLogicalToolOccurrences(input.turns);\n const starts = new Map<string, LogicalToolOccurrence>();\n const finishes = new Map<string, LogicalToolOccurrence>();\n for (const occurrence of derivation.occurrences) {\n starts.set(eventPositionKey(occurrence.start), occurrence);\n if (occurrence.lifecycle.state === \"available\" && occurrence.lifecycle.status !== \"pending\") {\n finishes.set(eventPositionKey(occurrence.lifecycle.finish), occurrence);\n }\n }\n const events: MatchableEvent[] = [];\n let unassociatedOperation = false;\n for (const turn of [...input.turns].sort((left, right) => left.turnOrdinal - right.turnOrdinal)) {\n for (const [eventOrdinal, event] of turn.events.entries()) {\n const position = { turnOrdinal: turn.turnOrdinal, eventOrdinal };\n if (event.type === \"message\") {\n events.push(makeAssertionMessageEvent({\n session: turn.session,\n turn: turn.turn,\n ...position,\n role: event.role,\n text: event.text,\n }));\n }\n else if (event.type === \"operation.started\" && event.operation.kind === \"tool\") {\n const occurrence = starts.get(eventPositionKey(position));\n if (occurrence === undefined)\n unassociatedOperation = true;\n else {\n events.push(makeAssertionToolEvent({\n session: turn.session,\n turn: turn.turn,\n ...position,\n type: \"operation.started\",\n occurrence,\n }));\n }\n }\n else if (event.type === \"operation.finished\" && event.kind === \"tool\") {\n const occurrence = finishes.get(eventPositionKey(position));\n if (occurrence === undefined)\n unassociatedOperation = true;\n else {\n events.push(makeAssertionToolEvent({\n session: turn.session,\n turn: turn.turn,\n ...position,\n type: \"operation.finished\",\n occurrence,\n status: event.status,\n }));\n }\n }\n }\n }\n return Object.freeze({\n events: Object.freeze(events),\n unassociatedOperation,\n coverage: input.coverage,\n snapshot: input.snapshot,\n });\n}\nfunction eventMatchEvaluation(event: MatchableEvent, result: BooleanMatchEvaluation<unknown>): BooleanMatchEvaluation<unknown> {\n const occurrence = assertionEventOccurrence(event);\n return occurrence === undefined ? result : toolMatchEvaluation(occurrence, result);\n}\nfunction eventCoverageComplete(snapshot: EventScopeSnapshot): boolean {\n return hasCompleteCoverage(snapshot.coverage, \"events\") && !snapshot.unassociatedOperation;\n}\nfunction normalizeEventCount(value: EventOptions | undefined): number | undefined {\n if (value === undefined)\n return undefined;\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"event() options must be an object\");\n }\n const options = value as globalThis.Record<string, unknown>;\n for (const key of Object.keys(options)) {\n if (key !== \"count\")\n throw new TypeError(`event() options does not support option ${JSON.stringify(key)}`);\n }\n if (options.count === undefined)\n return undefined;\n if (!Number.isSafeInteger(options.count) || typeof options.count !== \"number\" || options.count <= 0) {\n throw new TypeError(\"event() options.count must be a positive safe integer; use notEvent() for zero\");\n }\n return options.count;\n}\nfunction eventCollectionEvaluation(evaluations: readonly BooleanMatchEvaluation<unknown>[], count: number | undefined, complete: boolean): BooleanAssertionEvaluation<void> {\n const matched = evaluations.filter((evaluation) => evaluation.state === \"matched\").length;\n const unavailable = evaluations.some((evaluation) => evaluation.state === \"unavailable\");\n if (count === undefined) {\n if (matched > 0)\n return matchedVoid();\n return unavailable || !complete ? unavailableVoid() : mismatchedVoid();\n }\n if (matched > count)\n return mismatchedVoid();\n if (matched === count && !unavailable && complete)\n return matchedVoid();\n return unavailable || !complete ? unavailableVoid() : mismatchedVoid();\n}\nfunction eventAssertionHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly match: EventMatch;\n readonly count: number | undefined;\n readonly snapshot: EventScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n const quantifier: ToolMatchQuantifier = input.count === undefined\n ? Object.freeze({ kind: \"at-least\" as const, count: 1 })\n : Object.freeze({ kind: \"exact\" as const, count: input.count });\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: occurrenceCriterion(input.scope, \"event\", input.match.name, quantifier),\n snapshot: Object.freeze({\n scope: input.scope,\n occurrence: \"event\",\n matcher: input.match.name,\n quantifier,\n candidateCount: input.snapshot.events.length,\n unassociatedOperation: input.snapshot.unassociatedOperation,\n coverage: input.snapshot.coverage.events,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.tryPromise({\n try: async () => {\n const evaluations: BooleanMatchEvaluation<unknown>[] = [];\n for (const event of input.snapshot.events) {\n evaluations.push(eventMatchEvaluation(event, await evaluateBooleanMatch(input.match, event)));\n }\n return eventCollectionEvaluation(evaluations, input.count, eventCoverageComplete(input.snapshot));\n },\n catch: (error) => error,\n }),\n });\n}\nfunction notEventHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly match: EventMatch;\n readonly snapshot: EventScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: occurrenceCriterion(input.scope, \"event\", input.match.name, Object.freeze({ kind: \"absent\" as const })),\n snapshot: Object.freeze({\n scope: input.scope,\n occurrence: \"event\",\n matcher: input.match.name,\n quantifier: Object.freeze({ kind: \"absent\" as const }),\n candidateCount: input.snapshot.events.length,\n unassociatedOperation: input.snapshot.unassociatedOperation,\n coverage: input.snapshot.coverage.events,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.tryPromise({\n try: async () => {\n const evaluations: BooleanMatchEvaluation<unknown>[] = [];\n for (const event of input.snapshot.events) {\n evaluations.push(eventMatchEvaluation(event, await evaluateBooleanMatch(input.match, event)));\n }\n if (evaluations.some((evaluation) => evaluation.state === \"matched\"))\n return mismatchedVoid();\n return evaluations.some((evaluation) => evaluation.state === \"unavailable\") || !eventCoverageComplete(input.snapshot)\n ? unavailableVoid()\n : matchedVoid();\n },\n catch: (error) => error,\n }),\n });\n}\nfunction eventOrderHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly matches: readonly EventMatch[];\n readonly snapshot: EventScopeSnapshot;\n}): BooleanAssertionHandle<Kind, void> {\n const matches = orderedMatchList(input.matches, \"eventOrder()\", assertManagedEventMatch);\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: valueMatchCriterion(),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"event-order\",\n matches: matches.map((match) => match.name),\n candidateCount: input.snapshot.events.length,\n unassociatedOperation: input.snapshot.unassociatedOperation,\n coverage: input.snapshot.coverage.events,\n snapshot: input.snapshot.snapshot,\n }),\n evaluate: () => Effect.tryPromise({\n try: async () => {\n const matrix: BooleanMatchEvaluation<unknown>[][] = [];\n for (const match of matches) {\n const row: BooleanMatchEvaluation<unknown>[] = [];\n for (const event of input.snapshot.events) {\n row.push(eventMatchEvaluation(event, await evaluateBooleanMatch(match, event)));\n }\n matrix.push(row);\n }\n if (hasOrderedPath(matrix, (result) => result.state === \"matched\"))\n return matchedVoid();\n if (!eventCoverageComplete(input.snapshot)\n || hasOrderedPath(matrix, (result) => result.state === \"matched\" || result.state === \"unavailable\")) {\n return unavailableVoid();\n }\n return mismatchedVoid();\n },\n catch: (error) => error,\n }),\n });\n}\nfunction judgeCriterion(recipe: JudgeRecipe): AssertionCriterion {\n return Object.freeze({\n kind: \"judge-measurement\" as const,\n recipe: recipe === \"closedQA\" ? \"closed-qa\" as const : recipe,\n scale: \"unit-interval\" as const,\n });\n}\nfunction judgeHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly judge: ResolvedJudgeConfig | undefined;\n readonly signal: AbortSignal;\n readonly recipe: JudgeRecipe;\n readonly reference: string;\n readonly material: JudgeMaterial;\n}): MeasurementAssertionHandle<Kind> {\n const judge = input.judge;\n assertJudgeCapability(judge);\n if (typeof input.reference !== \"string\" || input.reference.trim() === \"\") {\n throw new TypeError(\"Judge recipe reference must be a non-empty string\");\n }\n const material = freezeJudgeMaterial(input.material);\n const captured = captureAssertionSnapshot({\n recipe: input.recipe,\n reference: input.reference,\n input: material.input,\n output: material.output,\n });\n return input.runtime.registerMeasurement({\n criterion: judgeCriterion(input.recipe),\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: () => evaluateJudgeMeasurement({\n judge,\n recipe: input.recipe,\n reference: input.reference,\n material,\n signal: input.signal,\n }),\n });\n}\nconst DIFF_REFERENCE_PREVIEW = \"agent-attributed send-window endpoint deltas\";\nfunction changedPathsCriterion(paths: readonly string[]): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"changed-paths\" as const,\n paths: Object.freeze([...paths]),\n });\n}\nfunction noChangesCriterion(): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"no-changes\" as const,\n });\n}\nfunction fileChangedCriterion(path: string, options: Readonly<FileChangedOptions>): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"file-changed\" as const,\n path,\n ...(options.status === undefined ? {} : { status: options.status }),\n ...(options.before === undefined ? {} : { before: options.before.name }),\n ...(options.after === undefined ? {} : { after: options.after.name }),\n });\n}\nfunction fileDeletedCriterion(path: string): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"file-deleted\" as const,\n path,\n });\n}\nfunction notInDiffCriterion(pattern: RegExp, options: Readonly<WorkspaceDiffNotInOptions>): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"not-in-diff\" as const,\n pattern: pattern.source,\n flags: pattern.flags,\n content: options.content ?? \"both\",\n });\n}\nfunction diffReferenceMaterial(): AssertionMaterial {\n return Object.freeze({\n kind: \"record-attachment\" as const,\n preview: DIFF_REFERENCE_PREVIEW,\n });\n}\nfunction assertDiffPath(path: unknown, operation: string): asserts path is string {\n assertCanonicalWorkspaceRelativePath(path, `${operation} path`);\n}\nfunction normalizeFileChangedOptions(value: FileChangedOptions | undefined): Readonly<FileChangedOptions> {\n if (value === undefined)\n return Object.freeze({});\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"fileChanged() options must be an object\");\n }\n for (const key of Object.keys(value)) {\n if (key !== \"status\" && key !== \"before\" && key !== \"after\") {\n throw new TypeError(`fileChanged() options has unknown key ${JSON.stringify(key)}`);\n }\n }\n if (value.status !== undefined\n && value.status !== \"added\"\n && value.status !== \"modified\"\n && value.status !== \"deleted\") {\n throw new TypeError(\"fileChanged() options.status must be added, modified, or deleted\");\n }\n return Object.freeze({ ...value });\n}\nfunction normalizeNotInDiffOptions(value: WorkspaceDiffNotInOptions | undefined): Readonly<WorkspaceDiffNotInOptions> {\n if (value === undefined)\n return Object.freeze({});\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"notInDiff() options must be an object\");\n }\n for (const key of Object.keys(value)) {\n if (key !== \"content\")\n throw new TypeError(`notInDiff() options has unknown key ${JSON.stringify(key)}`);\n }\n if (value.content !== undefined && value.content !== \"added\" && value.content !== \"removed\" && value.content !== \"both\") {\n throw new TypeError(\"notInDiff() options.content must be added, removed, or both\");\n }\n return Object.freeze({ ...value });\n}\nasync function endpointMatches(endpoint: AgentWorkspaceDiffEndpoint, match: BooleanMatch<string, string, \"value\"> | undefined): Promise<\"matched\" | \"mismatched\" | \"unavailable\"> {\n if (match === undefined)\n return \"matched\";\n if (endpoint.state === \"absent\")\n return \"mismatched\";\n if (endpoint.state === \"elided\")\n return \"unavailable\";\n const result = await evaluateBooleanMatch(match, endpoint.text);\n return result.state;\n}\nfunction unavailableDiffResult() {\n return Object.freeze({ state: \"unavailable\" as const, reason: \"source-unavailable\" as const });\n}\n/**\n * Wraps a raw Sandbox capability with post-run Assertion registration. The\n * wrapper has no generic diff value: every call immediately declares exactly\n * one Assertion whose closure reads the single Attempt-owned frozen document.\n */\nfunction createAssertFirstSandbox<Kind extends RuntimeKind>(input: {\n readonly agent: Agent;\n readonly sandbox: Sandbox;\n readonly runtime: AssertionsRuntime<Kind>;\n readonly late: AssertFirstLateResult;\n}): AssertFirstSandbox<Kind> {\n const requireCapability = (): void => {\n if (input.agent.kind !== \"sandbox\") {\n throw new Error(`Agent ${JSON.stringify(input.agent.name)} does not provide sandbox; agent-attributed workspace diff Assertions are unavailable.`);\n }\n };\n const register = (criterion: AssertionCriterion, evaluate: () => Effect.Effect<BooleanAssertionEvaluation<void>, unknown, never>): PostRunBooleanAssertionHandle<Kind, void> => postRunBooleanAssertionHandle(input.runtime.registerBoolean<void>({\n criterion,\n subject: diffReferenceMaterial(),\n evaluate,\n }), input.runtime.evaluationKind);\n const changedPaths = (paths: readonly string[]): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n if (!Array.isArray(paths))\n throw new TypeError(\"changedPaths() requires an array of paths\");\n for (const path of paths)\n assertDiffPath(path, \"changedPaths()\");\n validateExpectedTouchedPaths(paths);\n const expected = Object.freeze([...paths]);\n return register(changedPathsCriterion(expected), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffPathsMatch(diff.document, expected)\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const fileChanged = (path: string, rawOptions?: FileChangedOptions): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n assertDiffPath(path, \"fileChanged()\");\n const options = normalizeFileChangedOptions(rawOptions);\n return register(fileChangedCriterion(path, options), () => Effect.tryPromise({\n try: async () => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n let unavailable = false;\n for (const candidate of agentWorkspaceDiffChangesForPath(diff.document, path)) {\n if (options.status !== undefined && candidate.status !== options.status)\n continue;\n const before = await endpointMatches(candidate.before, options.before);\n const after = await endpointMatches(candidate.after, options.after);\n if (before === \"matched\" && after === \"matched\") {\n return Object.freeze({ state: \"matched\" as const, value: undefined });\n }\n // Both endpoint constraints belong to this one WindowChange. A\n // cross-send restore therefore remains visible, while a same-send\n // restore never became a ledger endpoint delta in the first place.\n if (before === \"mismatched\" || after === \"mismatched\")\n continue;\n if (before === \"unavailable\" || after === \"unavailable\")\n unavailable = true;\n }\n return unavailable\n ? unavailableDiffResult()\n : Object.freeze({ state: \"mismatched\" as const });\n },\n catch: (error) => error,\n }));\n };\n const notInDiff = (pattern: RegExp, rawOptions?: WorkspaceDiffNotInOptions): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n if (!(pattern instanceof RegExp))\n throw new TypeError(\"notInDiff() pattern must be a RegExp\");\n const options = normalizeNotInDiffOptions(rawOptions);\n return register(notInDiffCriterion(pattern, options), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n const result = evaluateWorkspaceDiffNotIn(diff.document, pattern, options);\n return result.state === \"matched\"\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : result.state === \"mismatched\"\n ? Object.freeze({ state: \"mismatched\" as const })\n : unavailableDiffResult();\n }));\n };\n const noChanges = (): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n return register(noChangesCriterion(), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffPathsMatch(diff.document, [])\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const fileDeleted = (path: string): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n assertDiffPath(path, \"fileDeleted()\");\n return register(fileDeletedCriterion(path), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffChangesForPath(diff.document, path)\n .some((change) => change.status === \"deleted\")\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const view: AssertFirstSandbox<Kind> = {\n get workdir() {\n requireCapability();\n return input.sandbox.workdir;\n },\n runCommand: (cmd, args, options) => {\n requireCapability();\n return input.sandbox.runCommand(cmd, args, options);\n },\n runShell: (script, options) => {\n requireCapability();\n return input.sandbox.runShell(script, options);\n },\n runCommandOrThrow: (cmd, args, options) => {\n requireCapability();\n return input.sandbox.runCommandOrThrow(cmd, args, options);\n },\n runShellOrThrow: (script, options) => {\n requireCapability();\n return input.sandbox.runShellOrThrow(script, options);\n },\n readText: (path) => {\n requireCapability();\n return input.sandbox.readText(path);\n },\n writeText: (path, content) => {\n requireCapability();\n return input.sandbox.writeText(path, content);\n },\n readBytes: (path) => {\n requireCapability();\n return input.sandbox.readBytes(path);\n },\n writeBytes: (path, content) => {\n requireCapability();\n return input.sandbox.writeBytes(path, content);\n },\n pathExists: (path) => {\n requireCapability();\n return input.sandbox.pathExists(path);\n },\n uploadFile: (source, targetPath) => {\n requireCapability();\n return input.sandbox.uploadFile(source, targetPath);\n },\n uploadDirectory: (sourceDir, targetDir, options) => {\n requireCapability();\n return input.sandbox.uploadDirectory(sourceDir, targetDir, options);\n },\n downloadFile: (sourcePath, target) => {\n requireCapability();\n return input.sandbox.downloadFile(sourcePath, target);\n },\n downloadDirectory: (sourceDir, targetDir, options) => {\n requireCapability();\n return input.sandbox.downloadDirectory(sourceDir, targetDir, options);\n },\n changedPaths,\n noChanges,\n fileChanged,\n fileDeleted,\n notInDiff,\n };\n Object.setPrototypeOf(view, null);\n return Object.freeze(view);\n}\nfunction requireInputRequest(session: RunSession, filter: InputRequestFilter | undefined): InputRequest {\n const matches = session.pendingInputRequests.filter((request) => {\n if (filter === undefined)\n return true;\n if (filter.id !== undefined && !matchesText(request.id ?? \"\", filter.id))\n return false;\n if (filter.prompt !== undefined && !matchesText(request.prompt ?? \"\", filter.prompt))\n return false;\n if (filter.display !== undefined && !matchesText(request.display ?? \"\", filter.display))\n return false;\n if (filter.action !== undefined && !matchesText(request.action ?? \"\", filter.action))\n return false;\n if (filter.input !== undefined && !matchesJson(request.input, filter.input))\n return false;\n if (filter.optionIds !== undefined) {\n const options = new Set((request.options ?? []).map((option) => option.id));\n if (options.size !== filter.optionIds.length || !filter.optionIds.every((id) => options.has(id)))\n return false;\n }\n return true;\n });\n if (matches.length !== 1) {\n throw new Error(`Expected exactly one pending input request, found ${matches.length}`);\n }\n return matches[0]!;\n}\nfunction matchesText(actual: string, expected: string | RegExp): boolean {\n if (expected instanceof RegExp) {\n expected.lastIndex = 0;\n return expected.test(actual);\n }\n return actual === expected;\n}\nfunction requireRequestId(request: InputRequest): string {\n if (!request.id)\n throw new Error(\"Input request has no stable id\");\n return request.id;\n}\nfunction validateOptionId(request: InputRequest, optionId: string): void {\n const ids = (request.options ?? []).map((option) => option.id);\n if (!ids.includes(optionId)) {\n throw new Error(`Option ${JSON.stringify(optionId)} is not available for this input request`);\n }\n}\nfunction resolveStringAnswer(session: RunSession, text: string): InputResponse {\n if (session.pendingInputRequests.length !== 1) {\n throw new Error(`A string response requires exactly one pending input request, found ${session.pendingInputRequests.length}`);\n }\n const request = session.pendingInputRequests[0]!;\n const requestId = requireRequestId(request);\n return (request.options ?? []).some((option) => option.id === text)\n ? { requestId, optionId: text }\n : { requestId, text };\n}\nfunction buildRespondInput(session: RunSession, answers: readonly (string | AssertFirstRespondAnswer)[]): {\n readonly text: string;\n readonly responses: readonly InputResponse[];\n} {\n const text: string[] = [];\n const responses: InputResponse[] = [];\n for (const answer of answers) {\n if (typeof answer === \"string\") {\n text.push(answer);\n responses.push(resolveStringAnswer(session, answer));\n continue;\n }\n const requestId = requireRequestId(answer.request);\n if ((answer.optionId === undefined) === (answer.text === undefined)) {\n throw new Error(\"A structured response needs exactly one of optionId or text\");\n }\n if (answer.optionId !== undefined) {\n validateOptionId(answer.request, answer.optionId);\n text.push(answer.optionId);\n responses.push({ requestId, optionId: answer.optionId });\n }\n else {\n text.push(answer.text!);\n responses.push({ requestId, text: answer.text! });\n }\n }\n return Object.freeze({ text: text.join(\"\\n\"), responses: Object.freeze(responses) });\n}\nfunction mimeTypeFor(path: string): string {\n switch (extname(path).toLowerCase()) {\n case \".png\": return \"image/png\";\n case \".jpg\":\n case \".jpeg\": return \"image/jpeg\";\n case \".gif\": return \"image/gif\";\n case \".webp\": return \"image/webp\";\n default: return \"application/octet-stream\";\n }\n}\nfunction readInputFileEffect(path: string): Effect.Effect<InputFile, unknown> {\n return Effect.tryPromise({\n try: () => readFile(path),\n catch: (error) => error,\n }).pipe(Effect.map((bytes) => Object.freeze({\n filename: basename(path),\n mimeType: mimeTypeFor(path),\n dataBase64: bytes.toString(\"base64\"),\n })));\n}\n/**\n * Creates the Context that Runner actually hands to `test(t)`. Its only\n * authoring state is the Attempt-local Assert-first runtime.\n */\nexport function createAssertFirstEvalContext(deps: AssertFirstContextDeps): {\n readonly context: AssertFirstTestContext<RuntimeKind>;\n readonly state: AssertFirstContextState;\n} {\n const manager = new SessionManager({\n agent: deps.agent,\n sandbox: deps.sandbox,\n evalId: deps.evalId,\n attempt: deps.attempt,\n evalGroup: deps.evalGroup,\n model: deps.model,\n reasoningEffort: deps.reasoningEffort,\n flags: deps.flags,\n experimentId: deps.experimentId,\n signal: deps.signal,\n requestEffect: deps.requestEffect,\n log: deps.log,\n telemetry: deps.telemetry,\n otel: deps.otel,\n feedback: deps.feedback,\n onSendActive: deps.onSendActive,\n timingNow: deps.timingNow,\n onTurn: deps.onTurn,\n ledgerHooks: deps.ledgerHooks,\n concurrencySlot: deps.concurrencySlot,\n experimentClassifier: deps.experimentClassifier,\n nextSourceOrder: deps.nextSourceOrder,\n sourceRegistry: deps.sourceRegistry,\n resources: deps.resources,\n });\n const runtime: AssertionsRuntime<RuntimeKind> = deps.evaluationKind === \"score\"\n ? createAssertionsRuntime({ evaluationKind: \"score\", executeStop: deps.executeStop })\n : createAssertionsRuntime({ evaluationKind: \"pass\", executeStop: deps.executeStop });\n const state: AssertFirstContextState = {\n assertions: runtime,\n manager,\n late: { diff: Object.freeze({ state: \"pending\" as const }), scripts: {} },\n };\n // maxCost 断言唯一认价目表估算(estimateCost);observed usage.costUSD 与之独立并存,\n // 存在也不改变估算(见 Usage.costUSD 单向字段契约)。\n const estimatedCostFor = (usage: Usage): number | undefined => estimateCost(deps.model, usage, deps.pricing);\n interface TurnScopeSnapshot {\n readonly events: readonly StreamEvent[];\n readonly toolCalls: readonly import(\"../o11y/types.ts\").ToolCall[];\n readonly toolScope: ToolScopeSnapshot;\n readonly status: \"completed\" | \"failed\" | \"waiting\";\n readonly coverage: ScopeCoverage;\n readonly input: string;\n readonly output: string;\n }\n interface SessionScopeState {\n readonly session: RunSession;\n readonly turns: LogicalToolOccurrenceScopeTurn[];\n started: boolean;\n inFlight: number;\n failed: boolean;\n }\n const sessions: SessionScopeState[] = [];\n let toolTurnOrdinal = 0;\n const coverageWhileInFlight = (coverage: ScopeCoverage): ScopeCoverage => Object.freeze({\n ...coverage,\n actions: Object.freeze({ status: \"partial\" as const, reason: \"scope-still-running\" }),\n status: Object.freeze({ status: \"partial\" as const, reason: \"scope-still-running\" }),\n });\n const sessionCoverage = (scope: SessionScopeState): ScopeCoverage => scope.inFlight === 0\n ? scope.session.evidenceCoverage\n : coverageWhileInFlight(scope.session.evidenceCoverage);\n const sessionStatus = (scope: SessionScopeState): ScopeStatus => {\n if (!scope.started)\n return \"not-started\";\n if (scope.inFlight > 0)\n return \"waiting\";\n return scope.failed ? \"failed\" : scope.session.lastStatus;\n };\n const attemptCoverage = (): ScopeCoverage => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = active.length === 0\n ? manager.evidenceCoverage\n : active.some((scope) => scope.inFlight > 0)\n ? coverageWhileInFlight(manager.evidenceCoverage)\n : manager.evidenceCoverage;\n return coverage;\n };\n const attemptStatus = (): ScopeStatus => {\n const active = sessions.filter((scope) => scope.started);\n if (active.length === 0)\n return \"not-started\";\n const statuses = active.map(sessionStatus);\n if (statuses.includes(\"waiting\"))\n return \"waiting\";\n if (statuses.includes(\"failed\"))\n return \"failed\";\n return \"completed\";\n };\n const sessionSnapshot = (scope: SessionScopeState) => Object.freeze({\n sessionIndex: scope.session.index,\n turnCount: scope.session.turnCount,\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n });\n const attemptSnapshot = () => Object.freeze({\n sessions: Object.freeze(sessions\n .filter((scope) => scope.started)\n .map((scope) => sessionSnapshot(scope))),\n status: attemptStatus(),\n coverage: attemptCoverage(),\n });\n const sessionToolScope = (scope: SessionScopeState): ToolScopeSnapshot => {\n const coverage = sessionCoverage(scope);\n return projectToolScope({\n turns: Object.freeze([...scope.turns]),\n coverage,\n snapshot: Object.freeze({\n sessionIndex: scope.session.index,\n turnCount: scope.turns.length,\n status: sessionStatus(scope),\n coverage,\n }),\n });\n };\n const attemptToolScope = (): ToolScopeSnapshot => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = attemptCoverage();\n return projectToolScope({\n turns: Object.freeze(active.flatMap((scope) => scope.turns)),\n coverage,\n snapshot: Object.freeze({\n sessions: Object.freeze(active.map((scope) => ({\n sessionIndex: scope.session.index,\n turnCount: scope.turns.length,\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n }))),\n status: attemptStatus(),\n coverage,\n }),\n });\n };\n const sessionScopedEvents = (scope: SessionScopeState): readonly StreamEvent[] => Object.freeze(scope.turns.flatMap((turn) => turn.events));\n const sessionEventScope = (scope: SessionScopeState): EventScopeSnapshot => {\n const coverage = sessionCoverage(scope);\n return projectEventScope({\n turns: Object.freeze([...scope.turns]),\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n const attemptScopedEvents = (): readonly StreamEvent[] => Object.freeze(sessions\n .filter((scope) => scope.started)\n .flatMap((scope) => scope.turns.flatMap((turn) => turn.events)));\n const attemptEventScope = (): EventScopeSnapshot => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = attemptCoverage();\n return projectEventScope({\n turns: Object.freeze(active.flatMap((scope) => scope.turns)),\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const makeTurn = <Kind extends RuntimeKind>(scope: SessionScopeState, turn: Turn, input: string): AssertFirstTurnHandle<Kind> => {\n const events = Object.freeze([...turn.events]);\n const scopedEvents = Object.freeze([\n Object.freeze({ type: \"message\" as const, role: \"user\" as const, text: input }),\n ...events,\n ]);\n const toolCalls = Object.freeze([...deriveRunFacts(events).toolCalls]);\n const coverage = manager.resolveTurnEvidenceCoverage(turn);\n const occurrenceTurn: LogicalToolOccurrenceScopeTurn = Object.freeze({\n session: `session-${scope.session.index}`,\n turn: `turn-${scope.session.turnCount}`,\n turnOrdinal: ++toolTurnOrdinal,\n events: scopedEvents,\n outcome: turn.status,\n });\n scope.turns.push(occurrenceTurn);\n const scopeSnapshot = Object.freeze({\n sessionIndex: scope.session.index,\n turnIndex: scope.session.turnCount,\n events: scopedEvents.length,\n });\n const toolScope = projectToolScope({\n turns: Object.freeze([occurrenceTurn]),\n coverage,\n snapshot: scopeSnapshot,\n });\n const eventScope = projectEventScope({\n turns: Object.freeze([occurrenceTurn]),\n coverage,\n snapshot: scopeSnapshot,\n });\n const snapshot: TurnScopeSnapshot = Object.freeze({\n events,\n toolCalls,\n toolScope,\n status: turn.status,\n coverage,\n input,\n output: lastAssistantText(events) ?? \"\",\n });\n const judge: AssertFirstTurnJudge<Kind> = Object.freeze({\n autoevals: Object.freeze({\n closedQA: (question: string) => judgeHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"closedQA\",\n reference: question,\n material: { input: snapshot.input, output: snapshot.output },\n }),\n factuality: (expected: string) => judgeHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"factuality\",\n reference: expected,\n material: { input: snapshot.input, output: snapshot.output },\n }),\n summarizes: (source: string) => judgeHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"summarizes\",\n reference: source,\n material: { input: snapshot.input, output: snapshot.output },\n }),\n }),\n });\n const calledTool = (target: ToolMatch | string, options?: CalledToolOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly (match, options)\");\n return calledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n target,\n options,\n snapshot: toolScope,\n });\n };\n const notCalledTool = (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n target,\n snapshot: toolScope,\n });\n };\n const toolOrder = (matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"toolOrder() accepts exactly one ordered match list\");\n return toolOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n matches,\n snapshot: toolScope,\n });\n };\n const usedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({ runtime: runtime as AssertionsRuntime<Kind>, scope: \"turn\", snapshot: toolScope });\n };\n const maxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({ runtime: runtime as AssertionsRuntime<Kind>, scope: \"turn\", max, snapshot: toolScope });\n };\n const noFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n return noFailedActionsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n events: occurrenceTurn.events,\n coverage,\n snapshot: scopeSnapshot,\n });\n };\n const event = (match: EventMatch, options?: EventOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly (match, options)\");\n return eventAssertionHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n match: assertManagedEventMatch(match, \"event() match\"),\n count: normalizeEventCount(options),\n snapshot: eventScope,\n });\n };\n const notEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n match: assertManagedEventMatch(match, \"notEvent() match\"),\n snapshot: eventScope,\n });\n };\n const eventOrder = (matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"eventOrder() accepts exactly one ordered match list\");\n return eventOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n matches,\n snapshot: eventScope,\n });\n };\n const maxTokens = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxTokens() accepts exactly one maximum\");\n return usageLimitHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n metric: \"tokens\",\n maximum: max,\n usage: turn.usage ?? {},\n coverage,\n snapshot: scopeSnapshot,\n });\n };\n const maxCost = (usd: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxCost() accepts exactly one maximum\");\n return usageLimitHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n metric: \"cost\",\n maximum: usd,\n usage: turn.usage ?? {},\n estimatedCostUSD: estimatedCostFor(turn.usage === undefined ? {} : turn.usage),\n coverage,\n snapshot: scopeSnapshot,\n });\n };\n return Object.freeze({\n events: snapshot.events,\n toolCalls: snapshot.toolCalls,\n status: snapshot.status,\n message: snapshot.output,\n ...(turn.data === undefined ? {} : { data: turn.data }),\n ...(turn.usage === undefined ? {} : { usage: turn.usage }),\n succeeded: () => succeededHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n status: snapshot.status,\n coverage: snapshot.coverage,\n snapshot: scopeSnapshot,\n }),\n calledTool,\n notCalledTool,\n toolOrder,\n usedNoTools,\n maxToolCalls,\n noFailedActions,\n event,\n notEvent,\n eventOrder,\n maxTokens,\n maxCost,\n judge,\n });\n };\n const sendEffect = <Kind extends RuntimeKind>(scope: SessionScopeState, text: string, files?: readonly InputFile[], responses?: readonly InputResponse[], loc?: ReturnType<typeof captureLoc>): Effect.Effect<AssertFirstTurnHandle<Kind>, unknown> => {\n const capturedLoc = loc ?? captureLoc({ registry: deps.sourceRegistry });\n return Effect.suspend(() => {\n scope.started = true;\n scope.inFlight += 1;\n return manager.sendEffect(scope.session, text, files, responses, capturedLoc).pipe(Effect.map((turn) => makeTurn<Kind>(scope, turn, text)), Effect.tapError(() => Effect.sync(() => {\n scope.failed = true;\n })), Effect.ensuring(Effect.sync(() => {\n scope.inFlight -= 1;\n })));\n });\n };\n const send = <Kind extends RuntimeKind>(scope: SessionScopeState, text: string, files?: readonly InputFile[], responses?: readonly InputResponse[]): Promise<AssertFirstTurnHandle<Kind>> => deps.requestEffect(sendEffect<Kind>(scope, text, files, responses, captureLoc({ registry: deps.sourceRegistry })));\n const makeSession = <Kind extends RuntimeKind>(scope: SessionScopeState): AssertFirstSessionHandle<Kind> => {\n const session = scope.session;\n const toolOrder = (matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"toolOrder() accepts exactly one ordered match list\");\n return toolOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n matches,\n snapshot: sessionToolScope(scope),\n });\n };\n const usedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n snapshot: sessionToolScope(scope),\n });\n };\n const maxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n max,\n snapshot: sessionToolScope(scope),\n });\n };\n const noFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n const coverage = sessionCoverage(scope);\n return noFailedActionsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n events: sessionScopedEvents(scope),\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n const event = (match: EventMatch, options?: EventOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly (match, options)\");\n return eventAssertionHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n match: assertManagedEventMatch(match, \"event() match\"),\n count: normalizeEventCount(options),\n snapshot: sessionEventScope(scope),\n });\n };\n const notEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n match: assertManagedEventMatch(match, \"notEvent() match\"),\n snapshot: sessionEventScope(scope),\n });\n };\n const eventOrder = (matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"eventOrder() accepts exactly one ordered match list\");\n return eventOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n matches,\n snapshot: sessionEventScope(scope),\n });\n };\n const maxTokens = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxTokens() accepts exactly one maximum\");\n const coverage = sessionCoverage(scope);\n return usageLimitHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n metric: \"tokens\",\n maximum: max,\n usage: session.usage,\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n const maxCost = (usd: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxCost() accepts exactly one maximum\");\n const coverage = sessionCoverage(scope);\n return usageLimitHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n metric: \"cost\",\n maximum: usd,\n usage: session.usage,\n estimatedCostUSD: estimatedCostFor(session.usage),\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n return Object.freeze({\n send: (input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }) => {\n const text = typeof input === \"string\" ? input : input.text;\n const files = typeof input === \"string\" ? undefined : input.files;\n return send<Kind>(scope, text, files);\n },\n sendFile: (path: string, text?: string) => {\n const loc = captureLoc({ registry: deps.sourceRegistry });\n return deps.requestEffect(readInputFileEffect(path).pipe(Effect.flatMap((file) => sendEffect<Kind>(scope, text ?? \"\", [file], undefined, loc))));\n },\n requireInputRequest: (filter?: InputRequestFilter) => requireInputRequest(session, filter),\n async respond(...responses: readonly (string | AssertFirstRespondAnswer)[]) {\n if (responses.length === 0)\n throw new Error(\"respond() requires at least one answer\");\n const built = buildRespondInput(session, responses);\n session.pendingInputRequests.length = 0;\n return send<Kind>(scope, built.text, undefined, built.responses);\n },\n async respondAll(optionId: string) {\n if (session.pendingInputRequests.length === 0) {\n throw new Error(\"There is no pending input request to answer\");\n }\n const requests = session.pendingInputRequests.slice();\n for (const request of requests)\n validateOptionId(request, optionId);\n session.pendingInputRequests.length = 0;\n return send<Kind>(scope, requests.map(() => optionId).join(\"\\n\"), undefined, requests.map((request) => ({ requestId: requireRequestId(request), optionId })));\n },\n get reply() {\n return session.lastMessage;\n },\n get sessionId() {\n return session.id;\n },\n get events() {\n return Object.freeze([...session.events]);\n },\n get usage() {\n return Object.freeze({ ...session.usage });\n },\n succeeded: () => succeededHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n snapshot: sessionSnapshot(scope),\n }),\n calledTool: (target: ToolMatch | string, options?: CalledToolOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly (match, options)\");\n return calledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n target,\n options,\n snapshot: sessionToolScope(scope),\n });\n },\n notCalledTool: (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n target,\n snapshot: sessionToolScope(scope),\n });\n },\n toolOrder,\n usedNoTools,\n maxToolCalls,\n noFailedActions,\n event,\n notEvent,\n eventOrder,\n maxTokens,\n maxCost,\n });\n };\n const primaryScope: SessionScopeState = {\n session: manager.primary,\n turns: [],\n started: false,\n inFlight: 0,\n failed: false,\n };\n sessions.push(primaryScope);\n const primary = makeSession<RuntimeKind>(primaryScope);\n const rootJudge: AssertFirstRootJudge<RuntimeKind> = Object.freeze({\n autoevals: Object.freeze({\n closedQA: (question: string, material: JudgeMaterial) => judgeHandle({\n runtime,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"closedQA\",\n reference: question,\n material,\n }),\n factuality: (expected: string, material: JudgeMaterial) => judgeHandle({\n runtime,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"factuality\",\n reference: expected,\n material,\n }),\n summarizes: (source: string, material: JudgeMaterial) => judgeHandle({\n runtime,\n judge: deps.judge,\n signal: deps.signal,\n recipe: \"summarizes\",\n reference: source,\n material,\n }),\n }),\n });\n const rootUsedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({ runtime, scope: \"attempt\", snapshot: attemptToolScope() });\n };\n const rootMaxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({ runtime, scope: \"attempt\", max, snapshot: attemptToolScope() });\n };\n const rootNoFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n const coverage = attemptCoverage();\n return noFailedActionsHandle({\n runtime,\n scope: \"attempt\",\n events: attemptScopedEvents(),\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const rootEvent = (match: EventMatch, options?: EventOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly (match, options)\");\n return eventAssertionHandle({\n runtime,\n scope: \"attempt\",\n match: assertManagedEventMatch(match, \"event() match\"),\n count: normalizeEventCount(options),\n snapshot: attemptEventScope(),\n });\n };\n const rootNotEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventHandle({\n runtime,\n scope: \"attempt\",\n match: assertManagedEventMatch(match, \"notEvent() match\"),\n snapshot: attemptEventScope(),\n });\n };\n const rootMaxTokens = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxTokens() accepts exactly one maximum\");\n const coverage = attemptCoverage();\n return usageLimitHandle({\n runtime,\n scope: \"attempt\",\n metric: \"tokens\",\n maximum: max,\n usage: manager.usage,\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const rootMaxCost = (usd: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxCost() accepts exactly one maximum\");\n const coverage = attemptCoverage();\n return usageLimitHandle({\n runtime,\n scope: \"attempt\",\n metric: \"cost\",\n maximum: usd,\n usage: manager.usage,\n estimatedCostUSD: estimatedCostFor(manager.usage),\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const base = {\n evaluationKind: deps.evaluationKind,\n send: primary.send,\n sendFile: primary.sendFile,\n requireInputRequest: primary.requireInputRequest,\n respond: primary.respond,\n respondAll: primary.respondAll,\n get reply() {\n return primary.reply;\n },\n get sessionId() {\n return primary.sessionId;\n },\n get events() {\n return primary.events;\n },\n newSession: () => {\n const scope: SessionScopeState = {\n session: manager.newSession(),\n turns: [],\n started: false,\n inFlight: 0,\n failed: false,\n };\n sessions.push(scope);\n return makeSession<RuntimeKind>(scope);\n },\n signal: deps.signal,\n model: deps.model,\n reasoningEffort: deps.reasoningEffort,\n flags: deps.flags,\n progress: (update: import(\"../types.ts\").ProgressUpdate) => {\n if (deps.feedback !== undefined) {\n deps.feedback.progress(update);\n }\n else {\n deps.log(update.current === undefined || update.total === undefined\n ? update.message\n : `${update.message} (${update.current}/${update.total})`);\n }\n },\n diagnostic: (input: import(\"../types.ts\").DiagnosticInput) => deps.feedback?.diagnostic(input),\n log: deps.log,\n skip: (reason: string): never => {\n if (reason.trim() === \"\")\n throw new Error(\"skip() requires a non-empty reason\");\n state.skipReason = reason;\n throw new EvalSkipped(reason);\n },\n group: runtime.t.group,\n check: runtime.t.check,\n sandbox: createAssertFirstSandbox({\n agent: deps.agent,\n sandbox: deps.sandbox,\n runtime,\n late: state.late,\n }),\n get o11y() {\n return buildO11ySummary(manager.allEvents);\n },\n get usage() {\n return Object.freeze({ ...manager.usage });\n },\n succeeded: () => succeededHandle({\n runtime,\n scope: \"attempt\",\n status: attemptStatus(),\n coverage: attemptCoverage(),\n snapshot: attemptSnapshot(),\n }),\n calledTool: (target: ToolMatch | string, options?: CalledToolOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly (match, options)\");\n return calledToolHandle({\n runtime,\n scope: \"attempt\",\n target,\n options,\n snapshot: attemptToolScope(),\n });\n },\n notCalledTool: (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime,\n scope: \"attempt\",\n target,\n snapshot: attemptToolScope(),\n });\n },\n usedNoTools: rootUsedNoTools,\n maxToolCalls: rootMaxToolCalls,\n noFailedActions: rootNoFailedActions,\n event: rootEvent,\n notEvent: rootNotEvent,\n maxTokens: rootMaxTokens,\n maxCost: rootMaxCost,\n judge: rootJudge,\n };\n const context = deps.evaluationKind === \"score\"\n ? Object.freeze({\n ...base,\n score: (runtime as AssertionsRuntime<\"score\">).t.score,\n })\n : Object.freeze(base);\n return {\n context: context as AssertFirstTestContext<RuntimeKind>,\n state,\n };\n}\n"]}