niceeval 0.13.3-canary.37 → 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 (383) 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/codex-app-server.cjs +2 -3
  7. package/dist/agents/codex-app-server.cjs.map +1 -1
  8. package/dist/agents/codex.cjs +4 -4
  9. package/dist/agents/codex.cjs.map +1 -1
  10. package/dist/agents/codex.d.cts +3 -3
  11. package/dist/agents/codex.d.mts +3 -3
  12. package/dist/agents/codex.d.ts +3 -3
  13. package/dist/agents/sdk-streams.cjs +11 -4
  14. package/dist/agents/sdk-streams.cjs.map +1 -1
  15. package/dist/analysis/bindings.cjs +74 -19
  16. package/dist/analysis/bindings.cjs.map +1 -1
  17. package/dist/analysis/bindings.d.cts +534 -156
  18. package/dist/analysis/bindings.d.mts +534 -156
  19. package/dist/analysis/bindings.d.ts +534 -156
  20. package/dist/analysis/domain-view.cjs.map +1 -1
  21. package/dist/analysis/domain-view.d.cts +137 -8
  22. package/dist/analysis/domain-view.d.mts +137 -8
  23. package/dist/analysis/domain-view.d.ts +137 -8
  24. package/dist/analysis/index.cjs.map +1 -1
  25. package/dist/analysis/index.d.cts +1 -1
  26. package/dist/analysis/index.d.mts +1 -1
  27. package/dist/analysis/index.d.ts +1 -1
  28. package/dist/assertions/api.cjs.map +1 -1
  29. package/dist/assertions/api.d.cts +62 -0
  30. package/dist/assertions/api.d.mts +62 -0
  31. package/dist/assertions/api.d.ts +62 -0
  32. package/dist/assertions/judge.cjs +56 -5
  33. package/dist/assertions/judge.cjs.map +1 -1
  34. package/dist/assertions/match.cjs +66 -42
  35. package/dist/assertions/match.cjs.map +1 -1
  36. package/dist/assertions/match.d.cts +13 -0
  37. package/dist/assertions/match.d.mts +13 -0
  38. package/dist/assertions/match.d.ts +13 -0
  39. package/dist/assertions/record/attachment.cjs +104 -33
  40. package/dist/assertions/record/attachment.cjs.map +1 -1
  41. package/dist/assertions/record/attachment.d.cts +294 -57
  42. package/dist/assertions/record/attachment.d.mts +294 -57
  43. package/dist/assertions/record/attachment.d.ts +294 -57
  44. package/dist/assertions/record/codec.cjs +91 -17
  45. package/dist/assertions/record/codec.cjs.map +1 -1
  46. package/dist/assertions/record/codec.d.cts +280 -52
  47. package/dist/assertions/record/codec.d.mts +280 -52
  48. package/dist/assertions/record/codec.d.ts +280 -52
  49. package/dist/assertions/record/index.js +2 -0
  50. package/dist/assertions/record/model.cjs +16 -0
  51. package/dist/assertions/record/model.cjs.map +1 -1
  52. package/dist/assertions/record/model.d.cts +120 -13
  53. package/dist/assertions/record/model.d.mts +120 -13
  54. package/dist/assertions/record/model.d.ts +120 -13
  55. package/dist/assertions/record/model.js +2 -0
  56. package/dist/assertions/record/producer.cjs +70 -50
  57. package/dist/assertions/record/producer.cjs.map +1 -1
  58. package/dist/assertions/record/producer.d.cts +8 -7
  59. package/dist/assertions/record/producer.d.mts +8 -7
  60. package/dist/assertions/record/producer.d.ts +8 -7
  61. package/dist/assertions/runtime.cjs +49 -7
  62. package/dist/assertions/runtime.cjs.map +1 -1
  63. package/dist/cli/application.cjs +40 -0
  64. package/dist/cli/application.cjs.map +1 -0
  65. package/dist/cli/application.d.cts +129 -0
  66. package/dist/cli/application.d.mts +129 -0
  67. package/dist/cli/application.d.ts +129 -0
  68. package/dist/cli/application.js +24 -0
  69. package/dist/cli/application.js.map +1 -0
  70. package/dist/cli/bootstrap.cjs +10 -4
  71. package/dist/cli/bootstrap.cjs.map +1 -1
  72. package/dist/cli/node-application.cjs +123 -0
  73. package/dist/cli/node-application.cjs.map +1 -0
  74. package/dist/cli/node-application.d.cts +14 -0
  75. package/dist/cli/node-application.d.mts +14 -0
  76. package/dist/cli/node-application.d.ts +14 -0
  77. package/dist/cli/node-application.js +26 -0
  78. package/dist/cli/node-application.js.map +1 -0
  79. package/dist/cli/program.cjs +2807 -0
  80. package/dist/cli/program.cjs.map +1 -0
  81. package/dist/cli/program.d.cts +352 -0
  82. package/dist/cli/program.d.mts +352 -0
  83. package/dist/cli/program.d.ts +352 -0
  84. package/dist/cli/program.js +36 -0
  85. package/dist/cli/program.js.map +1 -0
  86. package/dist/cli/project-configuration.cjs +134 -0
  87. package/dist/cli/project-configuration.cjs.map +1 -0
  88. package/dist/cli/project-configuration.d.cts +64 -0
  89. package/dist/cli/project-configuration.d.mts +64 -0
  90. package/dist/cli/project-configuration.d.ts +64 -0
  91. package/dist/cli/project-configuration.js +22 -0
  92. package/dist/cli/project-configuration.js.map +1 -0
  93. package/dist/cli/record.cjs +20 -4
  94. package/dist/cli/record.cjs.map +1 -1
  95. package/dist/cli/record.d.cts +3 -3
  96. package/dist/cli/record.d.mts +3 -3
  97. package/dist/cli/record.d.ts +3 -3
  98. package/dist/cli.cjs +19 -3130
  99. package/dist/cli.cjs.map +1 -1
  100. package/dist/cli.d.cts +2 -148
  101. package/dist/cli.d.mts +2 -148
  102. package/dist/cli.d.ts +2 -148
  103. package/dist/cli.js +22 -30
  104. package/dist/context/assert-first.cjs +20 -15
  105. package/dist/context/assert-first.cjs.map +1 -1
  106. package/dist/eval/record/verdict.cjs +3 -2
  107. package/dist/eval/record/verdict.cjs.map +1 -1
  108. package/dist/experiment/host/index.cjs +1 -6
  109. package/dist/experiment/host/index.cjs.map +1 -1
  110. package/dist/experiment/host/index.d.cts +1 -0
  111. package/dist/experiment/host/index.d.mts +1 -0
  112. package/dist/experiment/host/index.d.ts +1 -0
  113. package/dist/load-config.cjs +13 -4
  114. package/dist/load-config.cjs.map +1 -1
  115. package/dist/load-config.d.cts +4 -3
  116. package/dist/load-config.d.mts +4 -3
  117. package/dist/load-config.d.ts +4 -3
  118. package/dist/load-config.js +4 -2
  119. package/dist/o11y/parsers/codex.cjs +29 -7
  120. package/dist/o11y/parsers/codex.cjs.map +1 -1
  121. package/dist/record/codec/core.d.cts +0 -2
  122. package/dist/record/codec/core.d.mts +0 -2
  123. package/dist/record/codec/core.d.ts +0 -2
  124. package/dist/record/codec/identifiers.cjs +2 -3
  125. package/dist/record/codec/identifiers.cjs.map +1 -1
  126. package/dist/record/codec/identifiers.d.cts +1 -2
  127. package/dist/record/codec/identifiers.d.mts +1 -2
  128. package/dist/record/codec/identifiers.d.ts +1 -2
  129. package/dist/record/codec/identifiers.js +10 -12
  130. package/dist/record/codec/index.js +42 -44
  131. package/dist/record/definition/attachment.cjs +1 -0
  132. package/dist/record/definition/attachment.cjs.map +1 -1
  133. package/dist/record/definition/attachment.d.cts +14 -0
  134. package/dist/record/definition/attachment.d.mts +14 -0
  135. package/dist/record/definition/attachment.d.ts +14 -0
  136. package/dist/record/family/assertions-v1.cjs +104 -0
  137. package/dist/record/family/assertions-v1.cjs.map +1 -0
  138. package/dist/record/family/assertions-v1.d.cts +2 -0
  139. package/dist/record/family/assertions-v1.d.mts +2 -0
  140. package/dist/record/family/assertions-v1.d.ts +2 -0
  141. package/dist/record/family/assertions-v1.js +6 -0
  142. package/dist/record/family/assertions-v1.js.map +1 -0
  143. package/dist/record/family/assertions.cjs +16 -5
  144. package/dist/record/family/assertions.cjs.map +1 -1
  145. package/dist/record/family/assertions.d.cts +510 -56
  146. package/dist/record/family/assertions.d.mts +510 -56
  147. package/dist/record/family/assertions.d.ts +510 -56
  148. package/dist/record/family/assertions.js +14 -10
  149. package/dist/record/family/catalog.cjs +17 -1
  150. package/dist/record/family/catalog.cjs.map +1 -1
  151. package/dist/record/family/catalog.d.cts +1292 -104
  152. package/dist/record/family/catalog.d.mts +1292 -104
  153. package/dist/record/family/catalog.d.ts +1292 -104
  154. package/dist/record/family/catalog.js +22 -20
  155. package/dist/record/family/index.js +144 -138
  156. package/dist/record/family/observability-v1.cjs +5 -0
  157. package/dist/record/family/observability-v1.cjs.map +1 -1
  158. package/dist/record/family/observability.cjs +1 -1
  159. package/dist/record/family/observability.cjs.map +1 -1
  160. package/dist/record/host/runtime.cjs +323 -173
  161. package/dist/record/host/runtime.cjs.map +1 -1
  162. package/dist/record/host/types.cjs.map +1 -1
  163. package/dist/record/host/types.d.cts +9 -7
  164. package/dist/record/host/types.d.mts +9 -7
  165. package/dist/record/host/types.d.ts +9 -7
  166. package/dist/record/model/core.cjs.map +1 -1
  167. package/dist/record/model/core.d.cts +1 -2
  168. package/dist/record/model/core.d.mts +1 -2
  169. package/dist/record/model/core.d.ts +1 -2
  170. package/dist/record/model/definition.cjs +1 -2
  171. package/dist/record/model/definition.cjs.map +1 -1
  172. package/dist/record/model/definition.d.cts +1 -7
  173. package/dist/record/model/definition.d.mts +1 -7
  174. package/dist/record/model/definition.d.ts +1 -7
  175. package/dist/record/model/identifiers.cjs +2 -3
  176. package/dist/record/model/identifiers.cjs.map +1 -1
  177. package/dist/record/model/identifiers.d.cts +1 -3
  178. package/dist/record/model/identifiers.d.mts +1 -3
  179. package/dist/record/model/identifiers.d.ts +1 -3
  180. package/dist/record/model/identifiers.js +36 -38
  181. package/dist/record/model/index.js +60 -62
  182. package/dist/record/platform/node.cjs +17 -7
  183. package/dist/record/platform/node.cjs.map +1 -1
  184. package/dist/record/platform/services.cjs.map +1 -1
  185. package/dist/record/platform/services.d.cts +8 -3
  186. package/dist/record/platform/services.d.mts +8 -3
  187. package/dist/record/platform/services.d.ts +8 -3
  188. package/dist/record/reader/format.cjs +16 -65
  189. package/dist/record/reader/format.cjs.map +1 -1
  190. package/dist/record/reader/format.d.cts +5 -9
  191. package/dist/record/reader/format.d.mts +5 -9
  192. package/dist/record/reader/format.d.ts +5 -9
  193. package/dist/record/reader/index.js +10 -8
  194. package/dist/record/reader/runtime.cjs +63 -32
  195. package/dist/record/reader/runtime.cjs.map +1 -1
  196. package/dist/record/reader/runtime.d.cts +40 -4
  197. package/dist/record/reader/runtime.d.mts +40 -4
  198. package/dist/record/reader/runtime.d.ts +40 -4
  199. package/dist/record/reader/runtime.js +6 -4
  200. package/dist/report/assets/enhance.js +5 -5
  201. package/dist/report/assets/styles.css +186 -24
  202. package/dist/report/built-in/result-components.cjs +8 -5
  203. package/dist/report/built-in/result-components.cjs.map +1 -1
  204. package/dist/report/built-in/standard.cjs +3 -0
  205. package/dist/report/built-in/standard.cjs.map +1 -1
  206. package/dist/report/built-in/standard.d.cts +2 -0
  207. package/dist/report/built-in/standard.d.mts +2 -0
  208. package/dist/report/built-in/standard.d.ts +2 -0
  209. package/dist/report/client-dist/app.js +53 -0
  210. package/dist/report/components/attempt-detail/compute.cjs +106 -231
  211. package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
  212. package/dist/report/components/attempt-detail/compute.d.cts +9 -43
  213. package/dist/report/components/attempt-detail/compute.d.mts +9 -43
  214. package/dist/report/components/attempt-detail/compute.d.ts +9 -43
  215. package/dist/report/components/attempt-detail/compute.js +2 -4
  216. package/dist/report/components/attempt-detail/content.cjs +3 -4
  217. package/dist/report/components/attempt-detail/content.cjs.map +1 -1
  218. package/dist/report/components/attempt-detail/validate.cjs +44 -2
  219. package/dist/report/components/attempt-detail/validate.cjs.map +1 -1
  220. package/dist/report/components/entity-lists/compute.cjs +9 -15
  221. package/dist/report/components/entity-lists/compute.cjs.map +1 -1
  222. package/dist/report/components/entity-lists/content.cjs +53 -40
  223. package/dist/report/components/entity-lists/content.cjs.map +1 -1
  224. package/dist/report/components/entity-lists/index.cjs +1 -3
  225. package/dist/report/components/entity-lists/index.cjs.map +1 -1
  226. package/dist/report/components/experiment-detail/compute.cjs +4 -6
  227. package/dist/report/components/experiment-detail/compute.cjs.map +1 -1
  228. package/dist/report/definition/cell.cjs +14 -7
  229. package/dist/report/definition/cell.cjs.map +1 -1
  230. package/dist/report/definition/cell.d.cts +4 -0
  231. package/dist/report/definition/cell.d.mts +4 -0
  232. package/dist/report/definition/cell.d.ts +4 -0
  233. package/dist/report/definition/primitives/assertion-evidence.cjs +96 -0
  234. package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -0
  235. package/dist/report/definition/primitives/assertion-evidence.d.cts +11 -0
  236. package/dist/report/definition/primitives/assertion-evidence.d.mts +11 -0
  237. package/dist/report/definition/primitives/assertion-evidence.d.ts +11 -0
  238. package/dist/report/definition/primitives/assertion-evidence.js +6 -0
  239. package/dist/report/definition/primitives/assertion-evidence.js.map +1 -0
  240. package/dist/report/definition/primitives.cjs +14 -1
  241. package/dist/report/definition/primitives.cjs.map +1 -1
  242. package/dist/report/definition/report.cjs +16 -8
  243. package/dist/report/definition/report.cjs.map +1 -1
  244. package/dist/report/definition/report.d.cts +6 -0
  245. package/dist/report/definition/report.d.mts +6 -0
  246. package/dist/report/definition/report.d.ts +6 -0
  247. package/dist/report/definition/table-text.cjs +12 -3
  248. package/dist/report/definition/table-text.cjs.map +1 -1
  249. package/dist/report/definition/table-text.d.cts +6 -1
  250. package/dist/report/definition/table-text.d.mts +6 -1
  251. package/dist/report/definition/table-text.d.ts +6 -1
  252. package/dist/report/execution/model.cjs +6 -14
  253. package/dist/report/execution/model.cjs.map +1 -1
  254. package/dist/report/execution/model.d.cts +5 -10
  255. package/dist/report/execution/model.d.mts +5 -10
  256. package/dist/report/execution/model.d.ts +5 -10
  257. package/dist/report/execution/model.js +6 -6
  258. package/dist/report/execution/paths.cjs +0 -11
  259. package/dist/report/execution/paths.cjs.map +1 -1
  260. package/dist/report/execution/paths.d.cts +0 -1
  261. package/dist/report/execution/paths.d.mts +0 -1
  262. package/dist/report/execution/paths.d.ts +0 -1
  263. package/dist/report/execution/paths.js +6 -8
  264. package/dist/report/host/execute.cjs +13 -22
  265. package/dist/report/host/execute.cjs.map +1 -1
  266. package/dist/report/host/execute.d.cts +1 -4
  267. package/dist/report/host/execute.d.mts +1 -4
  268. package/dist/report/host/execute.d.ts +1 -4
  269. package/dist/report/host/from-record.cjs +3 -0
  270. package/dist/report/host/from-record.cjs.map +1 -1
  271. package/dist/report/host/from-record.d.cts +4 -1
  272. package/dist/report/host/from-record.d.mts +4 -1
  273. package/dist/report/host/from-record.d.ts +4 -1
  274. package/dist/report/host/site-assets.cjs +1 -2
  275. package/dist/report/host/site-assets.cjs.map +1 -1
  276. package/dist/report/host/site-assets.d.cts +0 -1
  277. package/dist/report/host/site-assets.d.mts +0 -1
  278. package/dist/report/host/site-assets.d.ts +0 -1
  279. package/dist/report/host/site-assets.js +2 -4
  280. package/dist/report/host/static.cjs +71 -346
  281. package/dist/report/host/static.cjs.map +1 -1
  282. package/dist/report/host/static.d.cts +1 -3
  283. package/dist/report/host/static.d.mts +1 -3
  284. package/dist/report/host/static.d.ts +1 -3
  285. package/dist/report/host/static.js +2 -2
  286. package/dist/report/host/view-session.cjs.map +1 -1
  287. package/dist/report/host/view-session.d.cts +1 -1
  288. package/dist/report/host/view-session.d.mts +1 -1
  289. package/dist/report/host/view-session.d.ts +1 -1
  290. package/dist/report/model/locale.cjs +1 -1
  291. package/dist/report/model/locale.cjs.map +1 -1
  292. package/dist/report/model/locale.d.cts +1 -1
  293. package/dist/report/model/locale.d.mts +1 -1
  294. package/dist/report/model/locale.d.ts +1 -1
  295. package/dist/report/model/pricing.cjs +2 -2
  296. package/dist/report/model/pricing.cjs.map +1 -1
  297. package/dist/report/react/enhance.js +5 -5
  298. package/dist/report/react/styles.css +186 -24
  299. package/dist/runner/adoption.cjs +4 -7
  300. package/dist/runner/adoption.cjs.map +1 -1
  301. package/dist/runner/feedback/failure.cjs +77 -2
  302. package/dist/runner/feedback/failure.cjs.map +1 -1
  303. package/dist/runner/feedback/failure.d.cts +2 -1
  304. package/dist/runner/feedback/failure.d.mts +2 -1
  305. package/dist/runner/feedback/failure.d.ts +2 -1
  306. package/dist/runner/project-current.cjs +2 -13
  307. package/dist/runner/project-current.cjs.map +1 -1
  308. package/dist/runner/project-current.d.cts +4 -2
  309. package/dist/runner/project-current.d.mts +4 -2
  310. package/dist/runner/project-current.d.ts +4 -2
  311. package/dist/runner/reporters/braintrust.cjs +7 -7
  312. package/dist/runner/reporters/braintrust.cjs.map +1 -1
  313. package/dist/runner/reuse-readback.cjs +3 -4
  314. package/dist/runner/reuse-readback.cjs.map +1 -1
  315. package/dist/runner/run.cjs +5 -2
  316. package/dist/runner/run.cjs.map +1 -1
  317. package/dist/view/server.cjs +2 -37
  318. package/dist/view/server.cjs.map +1 -1
  319. package/dist/view/server.d.cts +0 -3
  320. package/dist/view/server.d.mts +0 -3
  321. package/dist/view/server.d.ts +0 -3
  322. package/docs-site/zh/reference/builtin-agents.mdx +7 -7
  323. package/docs-site/zh/reference/official-adapters.mdx +4 -4
  324. package/docs-site/zh/reference/report-components.mdx +2 -2
  325. package/docs-site/zh/tutorials/configuration.mdx +2 -2
  326. package/docs-site/zh/tutorials/deploy-report-site.mdx +24 -2
  327. package/docs-site/zh/tutorials/publish-report.mdx +4 -4
  328. package/docs-site/zh/tutorials/sandbox-agent.mdx +5 -5
  329. package/docs-site/zh/tutorials/theming.mdx +2 -2
  330. package/package.json +4 -6
  331. package/dist/record/migration/index.cjs +0 -5
  332. package/dist/record/migration/index.cjs.map +0 -1
  333. package/dist/record/migration/index.d.cts +0 -11
  334. package/dist/record/migration/index.d.mts +0 -11
  335. package/dist/record/migration/index.d.ts +0 -11
  336. package/dist/record/migration/index.js +0 -6
  337. package/dist/record/migration/index.js.map +0 -1
  338. package/dist/report/host/site-runtime.cjs +0 -92
  339. package/dist/report/host/site-runtime.cjs.map +0 -1
  340. package/dist/report/host/site-runtime.d.cts +0 -9
  341. package/dist/report/host/site-runtime.d.mts +0 -9
  342. package/dist/report/host/site-runtime.d.ts +0 -9
  343. package/dist/report/host/site-runtime.js +0 -10
  344. package/dist/report/host/site-runtime.js.map +0 -1
  345. package/dist/view/client-dist/app.css +0 -2
  346. package/dist/view/client-dist/app.js +0 -49
  347. package/dist/view/data.cjs +0 -3
  348. package/dist/view/data.cjs.map +0 -1
  349. package/dist/view/data.d.cts +0 -9
  350. package/dist/view/data.d.mts +0 -9
  351. package/dist/view/data.d.ts +0 -9
  352. package/dist/view/data.js +0 -4
  353. package/dist/view/data.js.map +0 -1
  354. package/dist/view/index.cjs +0 -24
  355. package/dist/view/index.cjs.map +0 -1
  356. package/dist/view/index.d.cts +0 -9
  357. package/dist/view/index.d.mts +0 -9
  358. package/dist/view/index.d.ts +0 -9
  359. package/dist/view/index.js +0 -28
  360. package/dist/view/index.js.map +0 -1
  361. package/dist/view/report-view-cache.cjs +0 -200
  362. package/dist/view/report-view-cache.cjs.map +0 -1
  363. package/dist/view/report-view-cache.d.cts +0 -67
  364. package/dist/view/report-view-cache.d.mts +0 -67
  365. package/dist/view/report-view-cache.d.ts +0 -67
  366. package/dist/view/report-view-cache.js +0 -8
  367. package/dist/view/report-view-cache.js.map +0 -1
  368. package/dist/view/shared/types.cjs +0 -3
  369. package/dist/view/shared/types.cjs.map +0 -1
  370. package/dist/view/shared/types.d.cts +0 -51
  371. package/dist/view/shared/types.d.mts +0 -51
  372. package/dist/view/shared/types.d.ts +0 -51
  373. package/dist/view/shared/types.js +0 -4
  374. package/dist/view/shared/types.js.map +0 -1
  375. package/dist/view/site.cjs +0 -32
  376. package/dist/view/site.cjs.map +0 -1
  377. package/dist/view/site.d.cts +0 -24
  378. package/dist/view/site.d.mts +0 -24
  379. package/dist/view/site.d.ts +0 -24
  380. package/dist/view/site.js +0 -8
  381. package/dist/view/site.js.map +0 -1
  382. package/dist/view/styles.css +0 -170
  383. package/dist/view/template.html +0 -17
@@ -331,6 +331,17 @@ table.niceeval-report,
331
331
  color: var(--muted);
332
332
  font-size: 12px;
333
333
  }
334
+ .niceeval-report .niceeval-cell-stack {
335
+ display: inline-flex;
336
+ flex-wrap: wrap;
337
+ align-items: baseline;
338
+ gap: 4px 10px;
339
+ }
340
+ .niceeval-report .niceeval-cell-stack-item + .niceeval-cell-stack-item::before {
341
+ content: "·";
342
+ margin-right: 10px;
343
+ color: var(--soft);
344
+ }
334
345
 
335
346
  /* ---- MetricValue:缺数据 / 覆盖率角标 / 证据链接 ---- */
336
347
  .niceeval-report .niceeval-value { white-space: nowrap; }
@@ -1314,7 +1325,7 @@ table.niceeval-report,
1314
1325
  }
1315
1326
 
1316
1327
  /* Ledger:turn rail + compact kind tag + one-line summary。evidence 默认在行内
1317
- <details>,所以关 JavaScript 时页面仍是完整的可读正文。 */
1328
+ <details>,app 增强前仍保留完整的语义结构。 */
1318
1329
  .niceeval-turn-trace .niceeval-trace-ledger { min-width: 0; }
1319
1330
  .niceeval-turn-trace .niceeval-trace-turn {
1320
1331
  position: relative;
@@ -1590,6 +1601,77 @@ table.niceeval-report,
1590
1601
  border-color: color-mix(in oklch, var(--bad), transparent 58%);
1591
1602
  color: color-mix(in oklch, var(--bad), var(--text) 38%);
1592
1603
  }
1604
+ .niceeval-assertion-evidence {
1605
+ display: grid;
1606
+ min-width: 0;
1607
+ gap: 12px;
1608
+ }
1609
+ .niceeval-assertion-evidence-section { min-width: 0; }
1610
+ .niceeval-assertion-evidence-section > h5 {
1611
+ margin: 0 0 5px;
1612
+ color: var(--soft);
1613
+ font: 9px/1.2 var(--font-mono);
1614
+ font-weight: 650;
1615
+ letter-spacing: .055em;
1616
+ text-transform: uppercase;
1617
+ }
1618
+ .niceeval-assertion-evidence-section p,
1619
+ .niceeval-assertion-evidence-list,
1620
+ .niceeval-assertion-evidence-fields { margin: 0; }
1621
+ .niceeval-assertion-evidence-code {
1622
+ box-sizing: border-box;
1623
+ width: 100%;
1624
+ max-width: 100%;
1625
+ max-height: 24rem;
1626
+ margin: 0;
1627
+ overflow: auto;
1628
+ padding: 10px 11px;
1629
+ border: 1px solid var(--line);
1630
+ background: color-mix(in oklch, var(--panel), black 8%);
1631
+ color: var(--muted);
1632
+ font: 11px/1.5 var(--font-mono);
1633
+ white-space: pre-wrap;
1634
+ overflow-wrap: anywhere;
1635
+ }
1636
+ .niceeval-assertion-evidence-long-value {
1637
+ min-width: 0;
1638
+ border: 1px solid var(--line);
1639
+ background: color-mix(in oklch, var(--panel), black 8%);
1640
+ }
1641
+ .niceeval-assertion-evidence-long-value > summary {
1642
+ overflow: hidden;
1643
+ padding: 8px 10px;
1644
+ color: var(--soft);
1645
+ font: 11px/1.5 var(--font-mono);
1646
+ text-overflow: ellipsis;
1647
+ white-space: nowrap;
1648
+ cursor: pointer;
1649
+ }
1650
+ .niceeval-assertion-evidence-long-value[open] > summary {
1651
+ border-bottom: 1px solid var(--line);
1652
+ }
1653
+ .niceeval-assertion-evidence-long-value > .niceeval-assertion-evidence-code {
1654
+ border: 0;
1655
+ }
1656
+ .niceeval-assertion-evidence-state {
1657
+ display: flex;
1658
+ flex-wrap: wrap;
1659
+ align-items: baseline;
1660
+ gap: 5px 9px;
1661
+ color: var(--soft);
1662
+ }
1663
+ .niceeval-assertion-evidence-fields {
1664
+ display: grid;
1665
+ gap: 6px;
1666
+ }
1667
+ .niceeval-assertion-evidence-fields > div {
1668
+ display: grid;
1669
+ grid-template-columns: minmax(7rem, max-content) minmax(0, 1fr);
1670
+ gap: 10px;
1671
+ }
1672
+ .niceeval-assertion-evidence-fields dt { color: var(--soft); }
1673
+ .niceeval-assertion-evidence-fields dd { min-width: 0; margin: 0; }
1674
+ .niceeval-assertion-evidence-list { padding-inline-start: 18px; }
1593
1675
  .niceeval-js .niceeval-turn-trace .niceeval-trace-evidence > summary { display: none; }
1594
1676
  .niceeval-js .niceeval-turn-trace .niceeval-trace-evidence[open] { padding-bottom: 8px; }
1595
1677
  .niceeval-js .niceeval-turn-trace .niceeval-trace-evidence-tabs {
@@ -1895,7 +1977,7 @@ table.niceeval-report,
1895
1977
  .niceeval-report .niceeval-scatter-point { cursor: default; }
1896
1978
  .niceeval-report .niceeval-line-point { fill: var(--series); }
1897
1979
 
1898
- /* enhance.js 的样式化 tooltip(无 JS 时退化为 SVG <title>) */
1980
+ /* enhance.js 的样式化 tooltip(增强前保留 SVG <title>) */
1899
1981
  .niceeval-report .niceeval-tooltip {
1900
1982
  position: absolute;
1901
1983
  transform: translate(-50%, -100%);
@@ -2135,7 +2217,7 @@ table.niceeval-report,
2135
2217
  overflow-wrap: anywhere;
2136
2218
  box-shadow: inset 2px 0 0 var(--line-tone, transparent);
2137
2219
  }
2138
- /* 展开区内容:判定摘要一行、细节正文等宽、给分记录一行。同行重复 send
2220
+ /* 展开区内容:判定摘要一行、五段结构化证据、给分记录一行。同行重复 send
2139
2221
  复用 Conversation 的完整轮卡;轮头必须保留,才能区分 outcome 与 duration。 */
2140
2222
  .niceeval-source-view .niceeval-source-line-detail .niceeval-conversation-turn { border-left: 0; padding-left: 0; }
2141
2223
  .niceeval-source-view .niceeval-source-line-detail > * + * { margin-top: 6px; }
@@ -2145,17 +2227,6 @@ table.niceeval-report,
2145
2227
  font-size: 12px;
2146
2228
  font-weight: 650;
2147
2229
  }
2148
- .niceeval-source-view .niceeval-source-assertion-body {
2149
- margin: 0;
2150
- padding: 6px 10px;
2151
- border-radius: var(--radius);
2152
- background: var(--panel-2);
2153
- color: var(--muted);
2154
- font-family: var(--font-mono);
2155
- font-size: 12px;
2156
- white-space: pre-wrap;
2157
- overflow-wrap: anywhere;
2158
- }
2159
2230
  .niceeval-source-view .niceeval-source-score-entry {
2160
2231
  margin: 0;
2161
2232
  color: var(--muted);
@@ -2348,7 +2419,7 @@ table.niceeval-report,
2348
2419
  font-size: 13px;
2349
2420
  }
2350
2421
 
2351
- /* ---- Tabs:静态 HTML 每 tab 一个 <details> 且仅首个 open(无 JS = 手风琴卡片,内容完整);
2422
+ /* ---- Tabs:fragment HTML 每 tab 一个 <details> 且仅首个 open;
2352
2423
  enhance.js 在 <html> 上打 niceeval-js 后升级为单选 tab 条:收起的 tab 缩成一枚标题排在首行,
2353
2424
  唯一展开的 tab 以 100% 宽 + order:1 换行到下方,活动标题带高亮下划线、贴着面板顶部。
2354
2425
  不能用 display:contents 把 summary/body 直接投影进 flex 容器——Chrome 里 <details> 的
@@ -2584,6 +2655,90 @@ html.niceeval-view-document body {
2584
2655
 
2585
2656
  .niceeval-view-report-slot { margin: 0 auto 36px; }
2586
2657
 
2658
+ .niceeval-view-sr-only {
2659
+ position: absolute;
2660
+ width: 1px;
2661
+ height: 1px;
2662
+ margin: -1px;
2663
+ padding: 0;
2664
+ overflow: hidden;
2665
+ clip: rect(0, 0, 0, 0);
2666
+ white-space: nowrap;
2667
+ border: 0;
2668
+ }
2669
+
2670
+ .niceeval-view-skeleton {
2671
+ --niceeval-skeleton-base: var(--niceeval-color-surface-subtle, #151515);
2672
+ --niceeval-skeleton-shine: var(--niceeval-color-border-strong, #343434);
2673
+ display: grid;
2674
+ gap: 28px;
2675
+ width: 100%;
2676
+ min-height: 440px;
2677
+ }
2678
+
2679
+ .niceeval-view-skeleton-line,
2680
+ .niceeval-view-skeleton-cards > span,
2681
+ .niceeval-view-skeleton-chart,
2682
+ .niceeval-view-skeleton-table,
2683
+ .niceeval-view-skeleton-table > i {
2684
+ display: block;
2685
+ border-radius: var(--niceeval-radius, 0);
2686
+ background: linear-gradient(
2687
+ 100deg,
2688
+ var(--niceeval-skeleton-base) 25%,
2689
+ var(--niceeval-skeleton-shine) 44%,
2690
+ var(--niceeval-skeleton-base) 63%
2691
+ );
2692
+ background-size: 300% 100%;
2693
+ animation: niceeval-view-skeleton-shimmer 1.7s ease-in-out infinite;
2694
+ }
2695
+
2696
+ .niceeval-view-skeleton-heading { display: grid; gap: 12px; }
2697
+ .niceeval-view-skeleton-eyebrow { width: 92px; height: 10px; }
2698
+ .niceeval-view-skeleton-title { width: min(440px, 68%); height: 32px; }
2699
+ .niceeval-view-skeleton-copy { width: min(620px, 86%); height: 14px; }
2700
+
2701
+ .niceeval-view-skeleton-cards {
2702
+ display: grid;
2703
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2704
+ gap: 14px;
2705
+ }
2706
+
2707
+ .niceeval-view-skeleton-cards > span { height: 104px; }
2708
+
2709
+ .niceeval-view-skeleton-content {
2710
+ display: grid;
2711
+ grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr);
2712
+ gap: 18px;
2713
+ }
2714
+
2715
+ .niceeval-view-skeleton-chart { min-height: 230px; }
2716
+ .niceeval-view-skeleton-table { min-height: 230px; padding: 24px 20px; }
2717
+ .niceeval-view-skeleton-table > i { height: 12px; margin-bottom: 24px; }
2718
+ .niceeval-view-skeleton-table > i:nth-child(2) { width: 82%; }
2719
+ .niceeval-view-skeleton-table > i:nth-child(3) { width: 91%; }
2720
+ .niceeval-view-skeleton-table > i:nth-child(4) { width: 68%; }
2721
+
2722
+ .niceeval-view-skeleton-overlay {
2723
+ min-height: 360px;
2724
+ padding-top: 12px;
2725
+ }
2726
+
2727
+ @keyframes niceeval-view-skeleton-shimmer {
2728
+ from { background-position: 100% 0; }
2729
+ to { background-position: 0 0; }
2730
+ }
2731
+
2732
+ @media (prefers-reduced-motion: reduce) {
2733
+ .niceeval-view-skeleton-line,
2734
+ .niceeval-view-skeleton-cards > span,
2735
+ .niceeval-view-skeleton-chart,
2736
+ .niceeval-view-skeleton-table,
2737
+ .niceeval-view-skeleton-table > i {
2738
+ animation: none;
2739
+ }
2740
+ }
2741
+
2587
2742
  /* View shell owns only the modal chrome. The report body inside the dialog
2588
2743
  keeps the same closed product markup and the same stylesheet as its direct
2589
2744
  route; the runtime injects no second CSS owner. */
@@ -2607,13 +2762,6 @@ html.niceeval-view-document body {
2607
2762
  box-shadow: 0 20px 60px rgb(0 0 0 / 45%);
2608
2763
  }
2609
2764
 
2610
- /* An author display declaration overrides the browser's default
2611
- `dialog:not([open]) { display: none }` rule. Preserve the legacy Radix
2612
- unmount result when native dialog.close() removes [open]. */
2613
- .niceeval-view-dialog:not([open]) { display: none; }
2614
-
2615
- .niceeval-view-dialog::backdrop { background: rgb(0 0 0 / 90%); }
2616
-
2617
2765
  .niceeval-view-dialog-head {
2618
2766
  flex: 0 0 auto;
2619
2767
  position: sticky;
@@ -2681,7 +2829,16 @@ html.niceeval-view-document body {
2681
2829
 
2682
2830
  .niceeval-view-problems h2 { margin: 0 0 8px; font-size: 14px; }
2683
2831
  .niceeval-view-problems ul { margin: 0; padding-left: 20px; }
2684
- .niceeval-view-noscript { margin: 0; color: var(--niceeval-color-text-secondary, #a1a1aa); }
2832
+ .niceeval-view-js-required {
2833
+ width: min(calc(100vw - 48px), 720px);
2834
+ margin: 18vh auto 0;
2835
+ padding: 28px;
2836
+ border: 1px solid var(--niceeval-color-border, #262626);
2837
+ color: var(--niceeval-color-text, #ededed);
2838
+ background: var(--niceeval-color-surface, #0b0b0b);
2839
+ }
2840
+ .niceeval-view-js-required h1 { margin: 0 0 12px; font-size: 22px; }
2841
+ .niceeval-view-js-required p { margin: 0; color: var(--niceeval-color-text-secondary, #a1a1aa); }
2685
2842
 
2686
2843
  [data-niceeval-locale][hidden] { display: none !important; }
2687
2844
 
@@ -2692,11 +2849,16 @@ html.niceeval-view-document body {
2692
2849
  }
2693
2850
  .niceeval-view-pages { display: none; }
2694
2851
  .niceeval-view-controls { grid-column: 2; }
2695
- .niceeval-view-experiment noscript .niceeval-view-nav { display: none; }
2696
2852
  .niceeval-view-experiment label > span { display: none; }
2697
2853
  .niceeval-view-experiment select { min-width: 108px; }
2698
2854
  .niceeval-view-language select { min-width: 68px; }
2699
2855
  .niceeval-view-main { width: min(calc(100vw - 28px), 1120px); padding-top: 42px; }
2856
+ .niceeval-view-skeleton { min-height: 380px; gap: 20px; }
2857
+ .niceeval-view-skeleton-cards { grid-template-columns: 1fr; }
2858
+ .niceeval-view-skeleton-cards > span:nth-child(n + 2) { display: none; }
2859
+ .niceeval-view-skeleton-content { grid-template-columns: 1fr; }
2860
+ .niceeval-view-skeleton-chart { min-height: 190px; }
2861
+ .niceeval-view-skeleton-table { display: none; }
2700
2862
  }
2701
2863
 
2702
2864
  @media print {
@@ -30,6 +30,9 @@ function issueSection(view) {
30
30
  function membershipTable(rows) {
31
31
  const normalized = rows.map((row) => ({
32
32
  ...row,
33
+ locator: row.locator === null
34
+ ? null
35
+ : { kind: "locator", locator: row.locator },
33
36
  outcome: row.outcome ?? null,
34
37
  phase: row.phase ?? null,
35
38
  error: row.error ?? null,
@@ -72,10 +75,10 @@ function assertionRows(entry) {
72
75
  return entry.detail.entries.map((assertion) => ({
73
76
  key: assertion.entryId,
74
77
  assertion: assertion.entryId,
75
- display: jsonText(assertion.display),
76
- criterion: jsonText(assertion.criterion),
77
- result: jsonText(assertion.result),
78
- coverage: jsonText(assertion.coverage),
78
+ display: assertion.display.label ?? assertion.display.key ?? assertion.entryId,
79
+ check: JSON.stringify(assertion.check),
80
+ result: assertion.decision.result,
81
+ coverage: assertion.source.coverage.state,
79
82
  }));
80
83
  }
81
84
  function attemptEvidenceTree(props) {
@@ -84,7 +87,7 @@ function attemptEvidenceTree(props) {
84
87
  const available = props.view.entries.filter((entry) => (props.locator === undefined || entry.attempt.locator === props.locator) && entry.state === "available");
85
88
  return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Section, { title: "Assessment evidence", meta: `${entries.length} attempt${entries.length === 1 ? "" : "s"}`, children: [visible.length === 0 ? (0, jsx_runtime_1.jsx)(primitives_tsx_1.Text, { children: "No closed assessment evidence matches this target." }) : ((0, jsx_runtime_1.jsx)(primitives_tsx_1.Table, { rows: visible, columns: ["locator", "originRun", "state", "outcome", "verdict", "assertions", "sourceSites"] })), omittedText(entries.length, visible.length, "assessment evidence rows"), available.map((entry) => {
86
89
  const assertions = limited(assertionRows(entry));
87
- return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Section, { title: `Assertions · ${entry.attempt.locator}`, children: [assertions.length === 0 ? (0, jsx_runtime_1.jsx)(primitives_tsx_1.Text, { children: "No recorded assertions." }) : ((0, jsx_runtime_1.jsx)(primitives_tsx_1.Table, { rows: assertions, columns: ["assertion", "display", "criterion", "result", "coverage"] })), omittedText(entry.detail.entries.length, assertions.length, "assertions")] }, entry.attempt.locator));
90
+ return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Section, { title: `Assertions · ${entry.attempt.locator}`, children: [assertions.length === 0 ? (0, jsx_runtime_1.jsx)(primitives_tsx_1.Text, { children: "No recorded assertions." }) : ((0, jsx_runtime_1.jsx)(primitives_tsx_1.Table, { rows: assertions, columns: ["assertion", "display", "check", "result", "coverage"] })), omittedText(entry.detail.entries.length, assertions.length, "assertions")] }, entry.attempt.locator));
88
91
  }), issueSection(props.view)] }));
89
92
  }
90
93
  exports.AttemptEvidenceResultView = (0, tree_ts_1.defineComponent)((props) => attemptEvidenceTree(props));
@@ -1 +1 @@
1
- {"version":3,"file":"result-components.js","sourceRoot":"","sources":["result-components.tsx"],"names":[],"mappings":";;;;AASA,sEAA8E;AAC9E,mDAAwD;AACxD,gEAAsF;AAGtF,MAAM,eAAe,GAAG,GAAG,CAAC;AAC5B,MAAM,eAAe,GAAG,KAAK,CAAC;AAuE9B,SAAS,UAAU,CAAC,MAAmB;IACnC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;AACtC,CAAC;AACD,SAAS,OAAO,CAAM,IAAoB,EAAE,OAAO,GAAG,eAAe;IACjE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC;AACD,SAAS,WAAW,CAAC,KAAa,EAAE,OAAe,EAAE,KAAa;IAC9D,OAAO,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,uBAAC,qBAAI,cAAE,GAAG,KAAK,GAAG,OAAO,eAAe,KAAK,0BAA0B,GAAQ,CAAC;AACtH,CAAC;AACD,SAAS,SAAS,CAAC,IAKlB;IACG,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACtC,GAAG,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE;QAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;KACzB,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,YAAY,CAAC,IAKrB;IACG,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAC,wBAAO,IAAC,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,YACvF,uBAAC,sBAAK,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,GAC1C,CAAC,CAAC;AAChB,CAAC;AACD,SAAS,eAAe,CAAC,IAA8B;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAClC,GAAG,GAAG;QACN,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5B,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;QACxB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,IAAI;QACxB,aAAa,EAAE,GAAG,CAAC,aAAa,IAAI,IAAI;KAC3C,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;YAClC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;YAC5C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACtC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE;YACvC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YACtC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAClC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAClC,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;YACnD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE;YAC9C,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE;YAC/C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAChC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;SAC3C,GAAG,CAAC,CAAC;AACd,CAAC;AACD,SAAS,gBAAgB,CAAC,IAA4B;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC7E,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,uBAAC,wBAAO,IAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAE,GAAG,UAAU,WAAW,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,cAAc,YACnI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,wBAAC,wBAAO,IAAe,KAAK,EAAC,4BAA4B,aACzE,uBAAC,qBAAI,cAAE,aAAa,GAAG,CAAC,QAAQ,EAAE,GAAQ,EAC1C,uBAAC,qBAAI,cAAE,UAAU,GAAG,CAAC,OAAO,EAAE,GAAQ,KAFR,GAAG,CAAC,GAAG,CAG7B,CAAC,CAAC,GACN,CAAC,CAAC;AAChB,CAAC;AACD,SAAS,iBAAiB,CAAC,IAA+B,EAAE,OAAwB;IAChF,OAAO,IAAI,CAAC,OAAO;SACd,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC;SAC7E,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjB,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;QAC9B,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW;QACpC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAClE,OAAO,EAAE,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAClE,UAAU,EAAE,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAC5E,WAAW,EAAE,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;KACpF,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,aAAa,CAAC,KAErB;IACE,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC5C,GAAG,EAAE,SAAS,CAAC,OAAO;QACtB,SAAS,EAAE,SAAS,CAAC,OAAO;QAC5B,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC;QACpC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC;QACxC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC;QAClC,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC;KACzC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,mBAAmB,CAAC,KAG5B;IACG,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAE/C,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;IAC/G,OAAO,CAAC,wBAAC,wBAAO,IAAC,KAAK,EAAC,qBAAqB,EAAC,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,WAAW,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,aAC7G,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,qEAA0D,CAAC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,EACjN,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,0BAA0B,CAAC,EACvE,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACnB,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;gBACjD,OAAO,CAAC,wBAAC,wBAAO,IAA6B,KAAK,EAAE,gBAAgB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,aAC1F,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,0CAA+B,CAAC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,EACnK,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,KAFpD,KAAK,CAAC,OAAO,CAAC,OAAO,CAGnC,CAAC,CAAC;YACd,CAAC,CAAC,EACH,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IACjB,CAAC,CAAC;AAChB,CAAC;AACY,QAAA,yBAAyB,GAAG,IAAA,yBAAe,EAGrD,CAAC,KAAK,EAAE,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1C,iCAAyB,CAAC,WAAW,GAAG,2BAA2B,CAAC;AACpE,SAAS,gBAAgB,CAAC,IAA4B;IAClD,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,SAAS;YACV,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,WAAW;YACZ,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC;QAChD,KAAK,aAAa;YACd,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,EAAE,CAAC;QACpD,KAAK,kBAAkB,CAAC;QACxB,KAAK,YAAY,CAAC;QAClB,KAAK,mBAAmB;YACpB,OAAO,IAAI,CAAC,OAAO,CAAC;QACxB,KAAK,UAAU;YACX,OAAO,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7D,KAAK,eAAe;YAChB,OAAO,GAAG,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvH,KAAK,YAAY,CAAC;QAClB,KAAK,oBAAoB;YACrB,OAAO,GAAG,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IAChD,CAAC;AACL,CAAC;AACD,SAAS,WAAW,CAAC,OAA2B;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,MAAM;QAC1D,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC9F,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;QACpD,CAAC,CAAC,QAAQ,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;QAC3C,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACzE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC;AACD,SAAS,UAAU,CAAC,WAAmC;IACnD,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,cAAc;YACf,OAAO,GAAG,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC1D,KAAK,SAAS;YACV,OAAO,WAAW,CAAC,WAAW,CAAC;QACnC,KAAK,eAAe;YAChB,OAAO,GAAG,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC/D,CAAC;AACL,CAAC;AACD,SAAS,cAAc,CAAC,KAEtB,EAAE,KAAwB;IACxB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;IAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK;SAC7C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAChB,GAAG,EAAE,IAAI,CAAC,MAAM;QAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,MAAM;QACjB,KAAK,EAAE,IAAI,CAAC,IAAI;QAChB,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC;KACjC,CAAC,CAAC;SACE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvD,GAAG,EAAE,OAAO,CAAC,SAAS;QACtB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK;QAC7B,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU;QACxC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC,OAAO;QACrC,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,KAAK,kBAAkB;YAC3E,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;YACxC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI;KAC/C,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC3F,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACvD,GAAG,EAAE,QAAQ,CAAC,UAAU;QACxB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,aAAa;QAC/B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,MAAM,EAAE,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI;KACzE,CAAC,CAAC,CAAC;IACJ,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QACjE,GAAG,EAAE,GAAG,WAAW,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI,IAAI,KAAK,EAAE;QAC3D,QAAQ,EAAE,WAAW,CAAC,QAAQ;QAC9B,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC;KACjC,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpE,GAAG,EAAE,UAAU,CAAC,YAAY;QAC5B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,YAAY,eAAe,CAAC,CAAC,CAAC,MAAM;KACrH,CAAC,CAAC,CAAC;IACJ,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,uBAAC,wBAAO,IAAC,KAAK,EAAE,YAAY,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,YAChG,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,gDAAqC,CAAC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,KAAK,MAAM;oBACpH,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,CAAC;oBAClE,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,GACrD,CAAC,CAAC;IACd,CAAC;IACD,OAAO,CAAC,wBAAC,wBAAO,IAAC,KAAK,EAAE,qBAAqB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,aAC9G,uBAAC,sBAAK,IAAC,IAAI,EAAE,CAAC;wBACJ,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;wBAC1B,KAAK,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM;wBACvC,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM;wBACnD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM;wBACxC,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM;wBAC/C,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM;qBACrD,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,CAAC,GAAG,EAClG,wBAAC,wBAAO,IAAC,KAAK,EAAC,cAAc,EAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,aACrE,gBAAgB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,oEAAyD,CAAC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,EAC9L,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,sBAAsB,CAAC,IACzG,EACV,wBAAC,wBAAO,IAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,aAC7D,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,wDAA6C,CAAC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAC9K,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,UAAU,CAAC,IAC7E,EACV,uBAAC,wBAAO,IAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,YACzD,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,gDAAqC,CAAC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,CAAC,GAChK,EACV,uBAAC,wBAAO,IAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,YACvD,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,8CAAmC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,GAC/H,EACV,uBAAC,wBAAO,IAAC,KAAK,EAAC,aAAa,EAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,YACnE,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,2CAAgC,CAAC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,GAAG,CAAC,GAC9J,IACF,CAAC,CAAC;AAChB,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAwB;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO;SAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC;SACzF,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IAC/B,OAAO,CAAC,wBAAC,oBAAG,eACT,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,wBAAO,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,YAAE,uBAAC,qBAAI,iDAAsC,GAAU,CAAC,CAAC,CAAC,IAAI,EAC3J,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,WAAW;gBAC7C,CAAC,CAAC,2DAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,GAAI;gBACrC,CAAC,CAAC,uBAAC,wBAAO,IAA6B,KAAK,EAAE,GAAG,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,YAAE,uBAAC,qBAAI,cAAE,iBAAiB,KAAK,CAAC,KAAK,GAAG,GAAQ,IAApK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAyJ,CAAC,EACpM,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IACrB,CAAC,CAAC;AACZ,CAAC;AACD,+FAA+F;AAClF,QAAA,YAAY,GAAG,IAAA,yBAAe,EAAoB,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;AACnG,oBAAY,CAAC,WAAW,GAAG,cAAc,CAAC;AAC1C,SAAS,YAAY,CAAC,QAOrB;IACG,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC3E,CAAC;AACD,SAAS,eAAe,CAAC,KAAiC;IACtD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7H,OAAO,CAAC,wBAAC,oBAAG,eACT,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,wBAAO,IAAC,KAAK,EAAC,cAAc,YAAC,uBAAC,qBAAI,uDAA4C,GAAU,CAAC,CAAC,CAAC,IAAI,EACvH,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBAC9B,OAAO,uBAAC,wBAAO,IAA6B,KAAK,EAAE,kBAAkB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,YAAE,uBAAC,qBAAI,cAAE,oBAAoB,KAAK,CAAC,KAAK,GAAG,GAAQ,IAA1H,KAAK,CAAC,OAAO,CAAC,OAAO,CAA+G,CAAC;gBAC9J,CAAC;gBACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBACxF,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE;oBAC5C,MAAM,EAAE,MAAM,CAAC,QAAQ;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;oBACnC,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;iBACpC,CAAC,CAAC,CAAC,CAAC;gBACL,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC5C,GAAG,EAAE,IAAI,CAAC,IAAI;oBACd,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM;oBAC5B,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM;iBACxE,CAAC,CAAC,CAAC;gBACJ,OAAO,CAAC,wBAAC,wBAAO,IAA6B,KAAK,EAAE,kBAAkB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,aAClI,uBAAC,sBAAK,IAAC,IAAI,EAAE,CAAC;oCACF,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;oCAC1B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI;oCAC1C,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM;oCACvC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;oCAChC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM;iCAC1D,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,GAAG,EAC1E,wBAAC,wBAAO,IAAC,KAAK,EAAC,mBAAmB,aAC/B,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,6CAAkC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,EACzJ,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,cAAc,CAAC,IAC/E,EACV,uBAAC,wBAAO,IAAC,KAAK,EAAC,cAAc,YAC1B,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,8CAAmC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,GAC5H,KAdY,KAAK,CAAC,OAAO,CAAC,OAAO,CAenC,CAAC,CAAC;YACd,CAAC,CAAC,EACH,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IACrB,CAAC,CAAC;AACZ,CAAC;AACY,QAAA,qBAAqB,GAAG,IAAA,yBAAe,EAA6B,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACpH,6BAAqB,CAAC,WAAW,GAAG,uBAAuB,CAAC;AAC5D,SAAS,iBAAiB,CAAC,OAK1B;IACG,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW;QAC7B,OAAO,OAAO,CAAC,KAAK,CAAC;IACzB,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe;QACzC,CAAC,CAAC,OAAO,CAAC,IAAI;QACd,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,0CAA0C,CAAC;AAC9F,CAAC;AACD,SAAS,WAAW,CAAC,KAAyB;IAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7H,OAAO,CAAC,wBAAC,oBAAG,eACT,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,wBAAO,IAAC,KAAK,EAAC,iBAAiB,YAAC,uBAAC,qBAAI,kDAAuC,GAAU,CAAC,CAAC,CAAC,IAAI,EACrH,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;oBAC9B,OAAO,uBAAC,wBAAO,IAA6B,KAAK,EAAE,qBAAqB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,YAAE,uBAAC,qBAAI,cAAE,eAAe,KAAK,CAAC,KAAK,GAAG,GAAQ,IAAxH,KAAK,CAAC,OAAO,CAAC,OAAO,CAA6G,CAAC;gBAC5J,CAAC;gBACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxG,OAAO,CAAC,wBAAC,wBAAO,IAA6B,KAAK,EAAE,qBAAqB,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,aAC/F,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,cAAE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,8BAA8B,KAAK,CAAC,IAAI,GAAG,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC/I,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,wBAAC,wBAAO,IAAyB,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,aACtF,uBAAC,sBAAK,IAAC,IAAI,EAAE,CAAC;4CACF,GAAG,EAAE,IAAI,CAAC,YAAY;4CACtB,UAAU,EAAE,IAAI,CAAC,YAAY;4CAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;yCAC9B,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,EACjD,uBAAC,qBAAI,cAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAQ,KANd,IAAI,CAAC,YAAY,CAOzC,CAAC,CAAC,KATQ,KAAK,CAAC,OAAO,CAAC,OAAO,CAUnC,CAAC,CAAC;YACd,CAAC,CAAC,EACH,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IACrB,CAAC,CAAC;AACZ,CAAC;AACY,QAAA,iBAAiB,GAAG,IAAA,yBAAe,EAAqB,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACpG,yBAAiB,CAAC,WAAW,GAAG,mBAAmB,CAAC;AACpD,SAAS,WAAW,CAAC,KAAgC;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7H,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;QAC9B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QACnF,eAAe,EAAE,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAC1F,WAAW,EAAE,KAAK,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;KAChG,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,wBAAC,wBAAO,IAAC,KAAK,EAAC,iBAAiB,EAAC,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,aACnG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,uBAAC,qBAAI,sDAA2C,CAAC,CAAC,CAAC,CAAC,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,CAAC,GAAG,CAAC,EACnL,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,sBAAsB,CAAC,EACxF,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IACjB,CAAC,CAAC;AAChB,CAAC;AACY,QAAA,wBAAwB,GAAG,IAAA,yBAAe,EAA4B,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AAClH,gCAAwB,CAAC,WAAW,GAAG,0BAA0B,CAAC;AAClE,SAAS,iBAAiB,CAAC,KAA0B;IACjD,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACxC,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,OAAO,EAAE,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE;QACjC,MAAM,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;YAC3B,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa;YAC1D,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,WAAW,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,UAAU;gBAC1F,CAAC,CAAC,gBAAgB,MAAM,CAAC,OAAO,EAAE;gBAClC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK;QAC1D,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,IAAI;YAC5B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAyB,EAAE;KAChF,CAAC,CAAC,CAAC;IACJ,OAAO,CAAC,wBAAC,oBAAG,eACV,uBAAC,gBAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,EACxB,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,EAC/B,wBAAC,wBAAO,IAAC,KAAK,EAAC,kBAAkB,EAAC,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,WAAW,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,aAC/G,uBAAC,sBAAK,IAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE;4BACjC,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE;4BAC5C,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;4BAChC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;4BACtC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;4BACpC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;yBACzC,GAAG,EACH,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,kBAAkB,CAAC,IAC7E,EACT,WAAW,CAAC,CAAC,CAAC,uBAAC,iCAAyB,IAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EACvE,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAC7C,CAAC,CAAC;AACZ,CAAC;AACY,QAAA,uBAAuB,GAAG,IAAA,yBAAe,EAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AACjH,+BAAuB,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAChE,SAAS,iBAAiB,CAAC,KAA0B;IACjD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC;IAC3C,OAAO,CAAC,wBAAC,oBAAG,eACV,uBAAC,gBAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,EACzB,uBAAC,wBAAO,IAAC,KAAK,EAAE,aAAa,KAAK,CAAC,OAAO,IAAI,aAAa,EAAE,YAC1D,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,GACvB,EACV,uBAAC,iCAAyB,IAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,EACpE,uBAAC,oBAAY,IAAC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,WAAW,EAAC,UAAU,EAAC,MAAM,GAAE,EAC/F,uBAAC,6BAAqB,IAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,EACnE,uBAAC,yBAAiB,IAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAC3D,uBAAC,gCAAwB,IAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAC9D,CAAC,CAAC;AACZ,CAAC;AACY,QAAA,uBAAuB,GAAG,IAAA,yBAAe,EAAsB,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;AACjH,+BAAuB,CAAC,WAAW,GAAG,yBAAyB,CAAC;AAChE,SAAS,oBAAoB,CAAC,KAA6B;IACvD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC;IAClE,MAAM,OAAO,GAAG;QACZ,YAAY;QACZ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,YAAY;QACZ,QAAQ;KACX,CAAC;IACF,OAAO,CAAC,wBAAC,oBAAG,eACV,uBAAC,gBAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,GAAG,EACzB,uBAAC,wBAAO,IAAC,KAAK,EAAE,gBAAgB,KAAK,CAAC,UAAU,EAAE,YAChD,uBAAC,sBAAK,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAG,GAC9B,EACV,wBAAC,wBAAO,IAAC,KAAK,EAAC,oBAAoB,EAAC,IAAI,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,QAAQ,aACtE,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EACvC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,eAAe,CAAC,EAAE,aAAa,CAAC,IAC1F,EACT,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IACrB,CAAC,CAAC;AACZ,CAAC;AACY,QAAA,0BAA0B,GAAG,IAAA,yBAAe,EAAyB,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1H,kCAA0B,CAAC,WAAW,GAAG,4BAA4B,CAAC;AACtE,SAAS,QAAQ,CAAC,KAAgB;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC;AAClE,CAAC","sourcesContent":["/**\n * Built-in report composition over already-closed values.\n *\n * Nothing in this module accepts a Sample, storage capability, attachment, or\n * Effect Scope. Page loaders own Analysis and DomainView acquisition; these\n * components only arrange their rows and views into the report product.\n */\nimport type { AttemptEvidenceDomainView, AttemptObservabilityDomainView, ClosedCommandEntry, ClosedConversationItem, ClosedUsageObservation, FileChangesDomainView, JsonValue, MetricValue, SandboxHistoryDomainView, SourcesDomainView, } from \"../../analysis/index.ts\";\nimport type { AttemptLocator } from \"../../attempt-locator.ts\";\nimport { Hero, type HeroData } from \"../components/site-components/index.tsx\";\nimport { defineComponent } from \"../definition/tree.ts\";\nimport { Col, Grid, Section, Stat, Table, Text, } from \"../definition/primitives.tsx\";\nimport type { Cell } from \"../definition/cell.tsx\";\nimport type { BuiltInExperimentRows, BuiltInSummaryRows, } from \"./analysis-values.ts\";\nconst DETAIL_ROWS_MAX = 200;\nconst SOURCE_TEXT_MAX = 12000;\n/** Display-safe membership facts prepared by the Page loader from Snapshot. */\nexport interface MembershipRow {\n readonly key: string;\n readonly experiment: string;\n readonly eval: string;\n readonly attempt: number;\n readonly selectedRun: string;\n readonly slot: string;\n readonly state: string;\n readonly relation: string | null;\n readonly locator: string | null;\n readonly outcome?: string | null;\n readonly verdict?: string | null;\n readonly phase?: string | null;\n readonly error?: string | null;\n readonly sharedFailure?: string | null;\n}\nexport interface RunErrorRow {\n readonly key: string;\n readonly failure: string;\n readonly phase: string;\n readonly affected: string;\n readonly affectedCount: number;\n readonly error: string;\n readonly message: string;\n readonly fix: string | null;\n}\nexport interface ExperimentDetailResult {\n readonly hero: HeroData;\n readonly experiment: string;\n readonly rows: BuiltInExperimentRows;\n readonly members: readonly MembershipRow[];\n}\nexport interface AttemptDetailResult {\n readonly hero: HeroData;\n readonly locator: AttemptLocator | null;\n readonly members: readonly MembershipRow[];\n readonly evidence: AttemptEvidenceDomainView;\n readonly observability: AttemptObservabilityDomainView;\n readonly fileChanges: FileChangesDomainView;\n readonly sources: SourcesDomainView;\n readonly sandbox: SandboxHistoryDomainView;\n}\nexport interface RunMembershipResult {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly members: readonly MembershipRow[];\n readonly errors: readonly RunErrorRow[];\n readonly evidence: AttemptEvidenceDomainView;\n}\nexport interface AttemptTraceProps {\n readonly view: AttemptObservabilityDomainView;\n readonly locator?: AttemptLocator;\n readonly mode: \"execution\" | \"timing\";\n readonly grep?: string;\n readonly timingMode?: \"summary\" | \"full\";\n}\nexport interface FileChangesTrajectoryProps {\n readonly view: FileChangesDomainView;\n readonly locator?: AttemptLocator;\n}\nexport interface SourcesResultProps {\n readonly view: SourcesDomainView;\n readonly locator?: AttemptLocator;\n readonly file?: string;\n}\nexport interface SandboxHistoryResultProps {\n readonly view: SandboxHistoryDomainView;\n readonly locator?: AttemptLocator;\n}\nfunction metricCell(metric: MetricValue): Cell {\n return { kind: \"metric\", metric };\n}\nfunction limited<Row>(rows: readonly Row[], maximum = DETAIL_ROWS_MAX): readonly Row[] {\n return rows.slice(0, maximum);\n}\nfunction omittedText(total: number, visible: number, label: string) {\n return total === visible ? null : <Text>{`${total - visible} additional ${label} omitted from this page.`}</Text>;\n}\nfunction issueRows(view: {\n readonly issues: readonly {\n readonly code: string;\n readonly message: string;\n }[];\n}) {\n return view.issues.map((issue, index) => ({\n key: `${issue.code}:${index}`,\n code: issue.code,\n message: issue.message,\n }));\n}\nfunction issueSection(view: {\n readonly issues: readonly {\n readonly code: string;\n readonly message: string;\n }[];\n}) {\n const rows = issueRows(view);\n return rows.length === 0 ? null : (<Section title=\"Analysis notes\" meta={`${rows.length}`}>\n <Table rows={rows} columns={[\"code\", \"message\"]}/>\n </Section>);\n}\nfunction membershipTable(rows: readonly MembershipRow[]) {\n const normalized = rows.map((row) => ({\n ...row,\n outcome: row.outcome ?? null,\n phase: row.phase ?? null,\n error: row.error ?? null,\n sharedFailure: row.sharedFailure ?? null,\n }));\n return (<Table rows={normalized} columns={[\n { field: \"experiment\", label: \"Experiment\" },\n { field: \"eval\", label: \"Eval\" },\n { field: \"attempt\", label: \"Attempt\" },\n { field: \"state\", label: \"Membership\" },\n { field: \"outcome\", label: \"Outcome\" },\n { field: \"error\", label: \"Error\" },\n { field: \"phase\", label: \"Phase\" },\n { field: \"sharedFailure\", label: \"Shared failure\" },\n { field: \"locator\", label: \"Attempt locator\" },\n { field: \"selectedRun\", label: \"Selected run\" },\n { field: \"slot\", label: \"Slot\" },\n { field: \"relation\", label: \"Relation\" },\n ]}/>);\n}\nfunction runErrorsSection(rows: readonly RunErrorRow[]) {\n const notStarted = rows.reduce((total, row) => total + row.affectedCount, 0);\n return rows.length === 0 ? null : (<Section title=\"Run errors\" meta={`${notStarted} attempt${notStarted === 1 ? \"\" : \"s\"} not started`}>\n {rows.map((row) => (<Section key={row.key} title=\"Sandbox image build failed\">\n <Text>{`affected: ${row.affected}`}</Text>\n <Text>{`error: ${row.message}`}</Text>\n </Section>))}\n </Section>);\n}\nfunction evidenceEntryRows(view: AttemptEvidenceDomainView, locator?: AttemptLocator) {\n return view.entries\n .filter((entry) => locator === undefined || entry.attempt.locator === locator)\n .map((entry) => ({\n key: entry.attempt.locator,\n locator: entry.attempt.locator,\n originRun: entry.attempt.originRunId,\n state: entry.state,\n outcome: entry.state === \"available\" ? entry.detail.outcome : null,\n verdict: entry.state === \"available\" ? entry.detail.verdict : null,\n assertions: entry.state === \"available\" ? entry.detail.entries.length : null,\n sourceSites: entry.state === \"available\" ? entry.detail.sourceSites.length : null,\n }));\n}\nfunction assertionRows(entry: Extract<AttemptEvidenceDomainView[\"entries\"][number], {\n readonly state: \"available\";\n}>) {\n return entry.detail.entries.map((assertion) => ({\n key: assertion.entryId,\n assertion: assertion.entryId,\n display: jsonText(assertion.display),\n criterion: jsonText(assertion.criterion),\n result: jsonText(assertion.result),\n coverage: jsonText(assertion.coverage),\n }));\n}\nfunction attemptEvidenceTree(props: {\n readonly view: AttemptEvidenceDomainView;\n readonly locator?: AttemptLocator;\n}) {\n const entries = evidenceEntryRows(props.view, props.locator);\n const visible = limited(entries);\n const available = props.view.entries.filter((entry): entry is Extract<typeof entry, {\n readonly state: \"available\";\n }> => (props.locator === undefined || entry.attempt.locator === props.locator) && entry.state === \"available\");\n return (<Section title=\"Assessment evidence\" meta={`${entries.length} attempt${entries.length === 1 ? \"\" : \"s\"}`}>\n {visible.length === 0 ? <Text>No closed assessment evidence matches this target.</Text> : (<Table rows={visible} columns={[\"locator\", \"originRun\", \"state\", \"outcome\", \"verdict\", \"assertions\", \"sourceSites\"]}/>)}\n {omittedText(entries.length, visible.length, \"assessment evidence rows\")}\n {available.map((entry) => {\n const assertions = limited(assertionRows(entry));\n return (<Section key={entry.attempt.locator} title={`Assertions · ${entry.attempt.locator}`}>\n {assertions.length === 0 ? <Text>No recorded assertions.</Text> : (<Table rows={assertions} columns={[\"assertion\", \"display\", \"criterion\", \"result\", \"coverage\"]}/>)}\n {omittedText(entry.detail.entries.length, assertions.length, \"assertions\")}\n </Section>);\n })}\n {issueSection(props.view)}\n </Section>);\n}\nexport const AttemptEvidenceResultView = defineComponent<{\n readonly view: AttemptEvidenceDomainView;\n readonly locator?: AttemptLocator;\n}>((props) => attemptEvidenceTree(props));\nAttemptEvidenceResultView.displayName = \"AttemptEvidenceResultView\";\nfunction conversationText(item: ClosedConversationItem): string {\n switch (item.kind) {\n case \"message\":\n return `${item.role}: ${item.text}`;\n case \"tool-call\":\n return `${item.tool}(${item.inputSummary})`;\n case \"tool-result\":\n return `${item.outcome}: ${item.outputSummary}`;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\":\n return item.summary;\n case \"subagent\":\n return `${item.label} · ${item.state} · ${item.summary}`;\n case \"input-request\":\n return `${item.state} · ${item.promptSummary}${item.responseSummary === null ? \"\" : ` · ${item.responseSummary}`}`;\n case \"skill-load\":\n case \"conversation-error\":\n return `${item.code} · ${item.summary}`;\n }\n}\nfunction commandText(command: ClosedCommandEntry) {\n const invocation = command.manifest.invocation.kind === \"argv\"\n ? [command.manifest.invocation.executable, ...command.manifest.invocation.arguments].join(\" \")\n : command.manifest.invocation.command;\n const outcome = command.result.outcome.kind === \"exited\"\n ? `exit ${command.result.outcome.exitCode}`\n : `${command.result.outcome.kind}: ${command.result.outcome.reason}`;\n return { invocation, outcome };\n}\nfunction usageValue(observation: ClosedUsageObservation) {\n switch (observation.kind) {\n case \"token-bucket\":\n return `${observation.bucket}: ${observation.tokens}`;\n case \"request\":\n return observation.requestKind;\n case \"provider-cost\":\n return `${observation.amount} ${observation.currency}`;\n }\n}\nfunction traceEntryTree(entry: Extract<AttemptObservabilityDomainView[\"entries\"][number], {\n readonly state: \"available\";\n}>, props: AttemptTraceProps) {\n const detail = entry.detail;\n const filter = props.grep === undefined ? undefined : new RegExp(props.grep);\n const conversationRows = detail.conversation.items\n .map((item) => ({\n key: item.itemId,\n sequence: item.sequence,\n turn: item.turnId,\n event: item.kind,\n detail: conversationText(item),\n }))\n .filter((row) => filter === undefined || filter.test(`${row.event}\\n${row.detail}`));\n const commands = detail.commands.entries.map((command) => ({\n key: command.commandId,\n phase: command.manifest.phase,\n command: commandText(command).invocation,\n outcome: commandText(command).outcome,\n workingDirectory: command.manifest.workingDirectory.kind === \"project-relative\"\n ? command.manifest.workingDirectory.path\n : command.manifest.workingDirectory.kind,\n })).filter((row) => filter === undefined || filter.test(`${row.command}\\n${row.outcome}`));\n const timings = detail.timing.intervals.map((interval) => ({\n key: interval.intervalId,\n phase: interval.phase,\n label: interval.label,\n startMs: interval.startOffsetMs,\n durationMs: interval.durationMs,\n outcome: interval.outcome,\n parent: props.timingMode === \"full\" ? interval.parentIntervalId : null,\n }));\n const usage = detail.usage.observations.map((observation, index) => ({\n key: `${observation.provider}:${observation.kind}:${index}`,\n provider: observation.provider,\n kind: observation.kind,\n value: usageValue(observation),\n }));\n const diagnostics = detail.diagnostics.diagnostics.map((diagnostic) => ({\n key: diagnostic.diagnosticId,\n kind: diagnostic.kind,\n phase: diagnostic.phase,\n code: diagnostic.code,\n summary: diagnostic.summary,\n redaction: diagnostic.redaction.state === \"applied\" ? `${diagnostic.redaction.replacements} replacements` : \"none\",\n }));\n if (props.mode === \"timing\") {\n return (<Section title={`Timing · ${entry.attempt.locator}`} meta={detail.timing.collection.state}>\n {timings.length === 0 ? <Text>No recorded timing intervals.</Text> : (<Table rows={timings} columns={props.timingMode === \"full\"\n ? [\"phase\", \"label\", \"startMs\", \"durationMs\", \"outcome\", \"parent\"]\n : [\"phase\", \"label\", \"durationMs\", \"outcome\"]}/>)}\n </Section>);\n }\n return (<Section title={`Execution trace · ${entry.attempt.locator}`} meta={detail.conversation.collection.state}>\n <Table rows={[{\n key: entry.attempt.locator,\n turns: detail.conversation.turns.length,\n conversationItems: detail.conversation.items.length,\n commands: detail.commands.entries.length,\n timingIntervals: detail.timing.intervals.length,\n diagnostics: detail.diagnostics.diagnostics.length,\n }]} columns={[\"turns\", \"conversationItems\", \"commands\", \"timingIntervals\", \"diagnostics\"]}/>\n <Section title=\"Conversation\" meta={detail.conversation.collection.state}>\n {conversationRows.length === 0 ? <Text>No recorded conversation entries match this view.</Text> : (<Table rows={limited(conversationRows)} columns={[\"sequence\", \"turn\", \"event\", \"detail\"]}/>)}\n {omittedText(conversationRows.length, Math.min(conversationRows.length, DETAIL_ROWS_MAX), \"conversation entries\")}\n </Section>\n <Section title=\"Commands\" meta={detail.commands.collection.state}>\n {commands.length === 0 ? <Text>No recorded commands match this view.</Text> : (<Table rows={limited(commands)} columns={[\"phase\", \"command\", \"outcome\", \"workingDirectory\"]}/>)}\n {omittedText(commands.length, Math.min(commands.length, DETAIL_ROWS_MAX), \"commands\")}\n </Section>\n <Section title=\"Timing\" meta={detail.timing.collection.state}>\n {timings.length === 0 ? <Text>No recorded timing intervals.</Text> : (<Table rows={limited(timings)} columns={[\"phase\", \"label\", \"startMs\", \"durationMs\", \"outcome\"]}/>)}\n </Section>\n <Section title=\"Usage\" meta={detail.usage.collection.state}>\n {usage.length === 0 ? <Text>No recorded provider usage.</Text> : <Table rows={limited(usage)} columns={[\"provider\", \"kind\", \"value\"]}/>}\n </Section>\n <Section title=\"Diagnostics\" meta={detail.diagnostics.collection.state}>\n {diagnostics.length === 0 ? <Text>No recorded diagnostics.</Text> : (<Table rows={limited(diagnostics)} columns={[\"kind\", \"phase\", \"code\", \"summary\", \"redaction\"]}/>)}\n </Section>\n </Section>);\n}\nfunction attemptTraceTree(props: AttemptTraceProps) {\n const entries = props.view.entries\n .filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator)\n .slice(0, DETAIL_ROWS_MAX);\n return (<Col>\n {entries.length === 0 ? <Section title={props.mode === \"timing\" ? \"Timing\" : \"Execution trace\"}><Text>No matching closed trace data.</Text></Section> : null}\n {entries.map((entry) => entry.state === \"available\"\n ? <>{traceEntryTree(entry, props)}</>\n : <Section key={entry.attempt.locator} title={`${props.mode === \"timing\" ? \"Timing\" : \"Execution trace\"} · ${entry.attempt.locator}`}><Text>{`Trace data is ${entry.state}.`}</Text></Section>)}\n {issueSection(props.view)}\n </Col>);\n}\n/** Execution and timing never query: their only input is a closed observability DomainView. */\nexport const AttemptTrace = defineComponent<AttemptTraceProps>((props) => attemptTraceTree(props));\nAttemptTrace.displayName = \"AttemptTrace\";\nfunction endpointText(endpoint: {\n readonly state: \"absent\";\n} | {\n readonly state: \"present\";\n readonly revision: {\n readonly kind: string;\n };\n}): string {\n return endpoint.state === \"absent\" ? \"absent\" : endpoint.revision.kind;\n}\nfunction fileChangesTree(props: FileChangesTrajectoryProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n return (<Col>\n {entries.length === 0 ? <Section title=\"File changes\"><Text>No matching closed file-change data.</Text></Section> : null}\n {entries.map((entry) => {\n if (entry.state !== \"available\") {\n return <Section key={entry.attempt.locator} title={`File changes · ${entry.attempt.locator}`}><Text>{`File changes are ${entry.state}.`}</Text></Section>;\n }\n const changes = entry.detail.trajectory.flatMap((window) => window.changes.map((change) => ({\n key: `${window.windowId}:${change.changeId}`,\n window: window.sequence,\n path: change.path,\n kind: change.kind,\n before: endpointText(change.before),\n after: endpointText(change.after),\n })));\n const paths = entry.detail.paths.map((path) => ({\n key: path.path,\n path: path.path,\n changes: path.changes.length,\n net: path.net.state === \"available\" ? path.net.kind : path.net.reason,\n }));\n return (<Section key={entry.attempt.locator} title={`File changes · ${entry.attempt.locator}`} meta={entry.detail.collection.state}>\n <Table rows={[{\n key: entry.attempt.locator,\n attribution: entry.detail.attribution.kind,\n windows: entry.detail.trajectory.length,\n paths: entry.detail.paths.length,\n limitations: entry.detail.collection.limitations.length,\n }]} columns={[\"attribution\", \"windows\", \"paths\", \"limitations\"]}/>\n <Section title=\"Change trajectory\">\n {changes.length === 0 ? <Text>No retained changed paths.</Text> : <Table rows={limited(changes)} columns={[\"window\", \"path\", \"kind\", \"before\", \"after\"]}/>}\n {omittedText(changes.length, Math.min(changes.length, DETAIL_ROWS_MAX), \"file changes\")}\n </Section>\n <Section title=\"Path summary\">\n {paths.length === 0 ? <Text>No retained path summaries.</Text> : <Table rows={limited(paths)} columns={[\"path\", \"changes\", \"net\"]}/>}\n </Section>\n </Section>);\n })}\n {issueSection(props.view)}\n </Col>);\n}\nexport const FileChangesTrajectory = defineComponent<FileChangesTrajectoryProps>((props) => fileChangesTree(props));\nFileChangesTrajectory.displayName = \"FileChangesTrajectory\";\nfunction sourceContentText(content: {\n readonly state: \"available\";\n readonly text: string;\n} | {\n readonly state: \"unavailable\" | \"binary\";\n}): string {\n if (content.state !== \"available\")\n return content.state;\n return content.text.length <= SOURCE_TEXT_MAX\n ? content.text\n : `${content.text.slice(0, SOURCE_TEXT_MAX)}\\n… source text truncated for this page.`;\n}\nfunction sourcesTree(props: SourcesResultProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n return (<Col>\n {entries.length === 0 ? <Section title=\"Recorded source\"><Text>No matching closed source data.</Text></Section> : null}\n {entries.map((entry) => {\n if (entry.state !== \"available\") {\n return <Section key={entry.attempt.locator} title={`Recorded source · ${entry.attempt.locator}`}><Text>{`Sources are ${entry.state}.`}</Text></Section>;\n }\n const items = entry.detail.items.filter((item) => props.file === undefined || item.path === props.file);\n return (<Section key={entry.attempt.locator} title={`Recorded source · ${entry.attempt.locator}`}>\n {items.length === 0 ? <Text>{props.file === undefined ? \"No recorded source files.\" : `No recorded source matches ${props.file}.`}</Text> : null}\n {items.map((item) => (<Section key={item.sourceItemId} title={item.path} meta={item.sha256}>\n <Table rows={[{\n key: item.sourceItemId,\n sourceItem: item.sourceItemId,\n content: item.content.state,\n }]} columns={[\"sourceItem\", \"content\"]}/>\n <Text>{sourceContentText(item.content)}</Text>\n </Section>))}\n </Section>);\n })}\n {issueSection(props.view)}\n </Col>);\n}\nexport const SourcesResultView = defineComponent<SourcesResultProps>((props) => sourcesTree(props));\nSourcesResultView.displayName = \"SourcesResultView\";\nfunction sandboxTree(props: SandboxHistoryResultProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n const rows = entries.map((entry) => ({\n key: entry.attempt.locator,\n locator: entry.attempt.locator,\n state: entry.state,\n commands: entry.state === \"available\" ? entry.detail.commands.entries.length : null,\n timingIntervals: entry.state === \"available\" ? entry.detail.timing.intervals.length : null,\n diagnostics: entry.state === \"available\" ? entry.detail.diagnostics.diagnostics.length : null,\n }));\n return (<Section title=\"Sandbox history\" meta={`${rows.length} attempt${rows.length === 1 ? \"\" : \"s\"}`}>\n {rows.length === 0 ? <Text>No matching closed sandbox history.</Text> : (<Table rows={limited(rows)} columns={[\"locator\", \"state\", \"commands\", \"timingIntervals\", \"diagnostics\"]}/>)}\n {omittedText(rows.length, Math.min(rows.length, DETAIL_ROWS_MAX), \"sandbox history rows\")}\n {issueSection(props.view)}\n </Section>);\n}\nexport const SandboxHistoryResultView = defineComponent<SandboxHistoryResultProps>((props) => sandboxTree(props));\nSandboxHistoryResultView.displayName = \"SandboxHistoryResultView\";\nfunction runMembershipTree(input: RunMembershipResult) {\n const hasAttempts = input.members.some((member) => member.locator !== null);\n const rows = input.members.map((member) => ({\n key: member.key,\n experiment: member.experiment,\n eval: member.eval,\n attempt: `#${member.attempt + 1}`,\n result: member.locator === null\n ? member.outcome === \"errored\" ? \"errored\" : \"not started\"\n : member.relation === \"reference\" || member.state === \"carried\" || member.state === \"accepted\"\n ? `using result ${member.locator}`\n : member.verdict ?? member.outcome ?? member.state,\n details: member.locator === null\n ? null\n : { kind: \"locator\" as const, locator: member.locator as AttemptLocator },\n }));\n return (<Col>\n <Hero data={input.hero}/>\n {runErrorsSection(input.errors)}\n <Section title=\"Planned attempts\" meta={`${input.members.length} attempt${input.members.length === 1 ? \"\" : \"s\"}`}>\n <Table rows={limited(rows)} columns={[\n { field: \"experiment\", label: \"Experiment\" },\n { field: \"eval\", label: \"Eval\" },\n { field: \"attempt\", label: \"Attempt\" },\n { field: \"result\", label: \"Result\" },\n { field: \"details\", label: \"Details\" },\n ]}/>\n {omittedText(rows.length, Math.min(rows.length, DETAIL_ROWS_MAX), \"planned attempts\")}\n </Section>\n {hasAttempts ? <AttemptEvidenceResultView view={input.evidence}/> : null}\n {hasAttempts ? issueSection(input.summary) : null}\n </Col>);\n}\nexport const RunMembershipResultView = defineComponent<RunMembershipResult>((input) => runMembershipTree(input));\nRunMembershipResultView.displayName = \"RunMembershipResultView\";\nfunction attemptDetailTree(input: AttemptDetailResult) {\n const locator = input.locator ?? undefined;\n return (<Col>\n <Hero data={input.hero}/>\n <Section title={`Attempt · ${input.locator ?? \"unavailable\"}`}>\n {membershipTable(input.members)}\n </Section>\n <AttemptEvidenceResultView view={input.evidence} locator={locator}/>\n <AttemptTrace view={input.observability} locator={locator} mode=\"execution\" timingMode=\"full\"/>\n <FileChangesTrajectory view={input.fileChanges} locator={locator}/>\n <SourcesResultView view={input.sources} locator={locator}/>\n <SandboxHistoryResultView view={input.sandbox} locator={locator}/>\n </Col>);\n}\nexport const AttemptDetailResultView = defineComponent<AttemptDetailResult>((input) => attemptDetailTree(input));\nAttemptDetailResultView.displayName = \"AttemptDetailResultView\";\nfunction experimentDetailTree(input: ExperimentDetailResult) {\n const rows = input.rows.filter((row) => String(row.experiment) === input.experiment);\n const hasScore = rows.some((row) => row.evaluationKind !== \"pass\");\n const hasPass = rows.some((row) => row.evaluationKind === \"pass\");\n const columns = [\n \"experiment\",\n ...(hasPass ? [\"passRate\"] : []),\n ...(hasScore ? [\"totalScore\"] : []),\n \"durationMs\",\n \"tokens\",\n ];\n return (<Col>\n <Hero data={input.hero}/>\n <Section title={`Experiment · ${input.experiment}`}>\n <Table rows={rows} columns={columns}/>\n </Section>\n <Section title=\"Experiment members\" meta={`${input.members.length} slots`}>\n {membershipTable(limited(input.members))}\n {omittedText(input.members.length, Math.min(input.members.length, DETAIL_ROWS_MAX), \"member rows\")}\n </Section>\n {issueSection(input.rows)}\n </Col>);\n}\nexport const ExperimentDetailResultView = defineComponent<ExperimentDetailResult>((input) => experimentDetailTree(input));\nExperimentDetailResultView.displayName = \"ExperimentDetailResultView\";\nfunction jsonText(value: JsonValue): string {\n const text = JSON.stringify(value);\n return text.length <= 1000 ? text : `${text.slice(0, 1000)}…`;\n}\n"]}
1
+ {"version":3,"file":"result-components.js","sourceRoot":"","sources":["result-components.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * Built-in report composition over already-closed values.\n *\n * Nothing in this module accepts a Sample, storage capability, attachment, or\n * Effect Scope. Page loaders own Analysis and DomainView acquisition; these\n * components only arrange their rows and views into the report product.\n */\nimport type { AttemptEvidenceDomainView, AttemptObservabilityDomainView, ClosedCommandEntry, ClosedConversationItem, ClosedUsageObservation, FileChangesDomainView, JsonValue, MetricValue, SandboxHistoryDomainView, SourcesDomainView, } from \"../../analysis/index.ts\";\nimport type { AttemptLocator } from \"../../attempt-locator.ts\";\nimport { Hero, type HeroData } from \"../components/site-components/index.tsx\";\nimport { defineComponent } from \"../definition/tree.ts\";\nimport { Col, Grid, Section, Stat, Table, Text, } from \"../definition/primitives.tsx\";\nimport type { Cell } from \"../definition/cell.tsx\";\nimport type { BuiltInExperimentRows, BuiltInSummaryRows, } from \"./analysis-values.ts\";\nconst DETAIL_ROWS_MAX = 200;\nconst SOURCE_TEXT_MAX = 12000;\n/** Display-safe membership facts prepared by the Page loader from Snapshot. */\nexport interface MembershipRow {\n readonly key: string;\n readonly experiment: string;\n readonly eval: string;\n readonly attempt: number;\n readonly selectedRun: string;\n readonly slot: string;\n readonly state: string;\n readonly relation: string | null;\n readonly locator: string | null;\n readonly outcome?: string | null;\n readonly verdict?: string | null;\n readonly phase?: string | null;\n readonly error?: string | null;\n readonly sharedFailure?: string | null;\n}\nexport interface RunErrorRow {\n readonly key: string;\n readonly failure: string;\n readonly phase: string;\n readonly affected: string;\n readonly affectedCount: number;\n readonly error: string;\n readonly message: string;\n readonly fix: string | null;\n}\nexport interface ExperimentDetailResult {\n readonly hero: HeroData;\n readonly experiment: string;\n readonly rows: BuiltInExperimentRows;\n readonly members: readonly MembershipRow[];\n}\nexport interface AttemptDetailResult {\n readonly hero: HeroData;\n readonly locator: AttemptLocator | null;\n readonly members: readonly MembershipRow[];\n readonly evidence: AttemptEvidenceDomainView;\n readonly observability: AttemptObservabilityDomainView;\n readonly fileChanges: FileChangesDomainView;\n readonly sources: SourcesDomainView;\n readonly sandbox: SandboxHistoryDomainView;\n}\nexport interface RunMembershipResult {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly members: readonly MembershipRow[];\n readonly errors: readonly RunErrorRow[];\n readonly evidence: AttemptEvidenceDomainView;\n}\nexport interface AttemptTraceProps {\n readonly view: AttemptObservabilityDomainView;\n readonly locator?: AttemptLocator;\n readonly mode: \"execution\" | \"timing\";\n readonly grep?: string;\n readonly timingMode?: \"summary\" | \"full\";\n}\nexport interface FileChangesTrajectoryProps {\n readonly view: FileChangesDomainView;\n readonly locator?: AttemptLocator;\n}\nexport interface SourcesResultProps {\n readonly view: SourcesDomainView;\n readonly locator?: AttemptLocator;\n readonly file?: string;\n}\nexport interface SandboxHistoryResultProps {\n readonly view: SandboxHistoryDomainView;\n readonly locator?: AttemptLocator;\n}\nfunction metricCell(metric: MetricValue): Cell {\n return { kind: \"metric\", metric };\n}\nfunction limited<Row>(rows: readonly Row[], maximum = DETAIL_ROWS_MAX): readonly Row[] {\n return rows.slice(0, maximum);\n}\nfunction omittedText(total: number, visible: number, label: string) {\n return total === visible ? null : <Text>{`${total - visible} additional ${label} omitted from this page.`}</Text>;\n}\nfunction issueRows(view: {\n readonly issues: readonly {\n readonly code: string;\n readonly message: string;\n }[];\n}) {\n return view.issues.map((issue, index) => ({\n key: `${issue.code}:${index}`,\n code: issue.code,\n message: issue.message,\n }));\n}\nfunction issueSection(view: {\n readonly issues: readonly {\n readonly code: string;\n readonly message: string;\n }[];\n}) {\n const rows = issueRows(view);\n return rows.length === 0 ? null : (<Section title=\"Analysis notes\" meta={`${rows.length}`}>\n <Table rows={rows} columns={[\"code\", \"message\"]}/>\n </Section>);\n}\nfunction membershipTable(rows: readonly MembershipRow[]) {\n const normalized = rows.map((row) => ({\n ...row,\n locator: row.locator === null\n ? null\n : ({ kind: \"locator\", locator: row.locator as AttemptLocator } satisfies Cell),\n outcome: row.outcome ?? null,\n phase: row.phase ?? null,\n error: row.error ?? null,\n sharedFailure: row.sharedFailure ?? null,\n }));\n return (<Table rows={normalized} columns={[\n { field: \"experiment\", label: \"Experiment\" },\n { field: \"eval\", label: \"Eval\" },\n { field: \"attempt\", label: \"Attempt\" },\n { field: \"state\", label: \"Membership\" },\n { field: \"outcome\", label: \"Outcome\" },\n { field: \"error\", label: \"Error\" },\n { field: \"phase\", label: \"Phase\" },\n { field: \"sharedFailure\", label: \"Shared failure\" },\n { field: \"locator\", label: \"Attempt locator\" },\n { field: \"selectedRun\", label: \"Selected run\" },\n { field: \"slot\", label: \"Slot\" },\n { field: \"relation\", label: \"Relation\" },\n ]}/>);\n}\nfunction runErrorsSection(rows: readonly RunErrorRow[]) {\n const notStarted = rows.reduce((total, row) => total + row.affectedCount, 0);\n return rows.length === 0 ? null : (<Section title=\"Run errors\" meta={`${notStarted} attempt${notStarted === 1 ? \"\" : \"s\"} not started`}>\n {rows.map((row) => (<Section key={row.key} title=\"Sandbox image build failed\">\n <Text>{`affected: ${row.affected}`}</Text>\n <Text>{`error: ${row.message}`}</Text>\n </Section>))}\n </Section>);\n}\nfunction evidenceEntryRows(view: AttemptEvidenceDomainView, locator?: AttemptLocator) {\n return view.entries\n .filter((entry) => locator === undefined || entry.attempt.locator === locator)\n .map((entry) => ({\n key: entry.attempt.locator,\n locator: entry.attempt.locator,\n originRun: entry.attempt.originRunId,\n state: entry.state,\n outcome: entry.state === \"available\" ? entry.detail.outcome : null,\n verdict: entry.state === \"available\" ? entry.detail.verdict : null,\n assertions: entry.state === \"available\" ? entry.detail.entries.length : null,\n sourceSites: entry.state === \"available\" ? entry.detail.sourceSites.length : null,\n }));\n}\nfunction assertionRows(entry: Extract<AttemptEvidenceDomainView[\"entries\"][number], {\n readonly state: \"available\";\n}>) {\n return entry.detail.entries.map((assertion) => ({\n key: assertion.entryId,\n assertion: assertion.entryId,\n display: assertion.display.label ?? assertion.display.key ?? assertion.entryId,\n check: JSON.stringify(assertion.check),\n result: assertion.decision.result,\n coverage: assertion.source.coverage.state,\n }));\n}\nfunction attemptEvidenceTree(props: {\n readonly view: AttemptEvidenceDomainView;\n readonly locator?: AttemptLocator;\n}) {\n const entries = evidenceEntryRows(props.view, props.locator);\n const visible = limited(entries);\n const available = props.view.entries.filter((entry): entry is Extract<typeof entry, {\n readonly state: \"available\";\n }> => (props.locator === undefined || entry.attempt.locator === props.locator) && entry.state === \"available\");\n return (<Section title=\"Assessment evidence\" meta={`${entries.length} attempt${entries.length === 1 ? \"\" : \"s\"}`}>\n {visible.length === 0 ? <Text>No closed assessment evidence matches this target.</Text> : (<Table rows={visible} columns={[\"locator\", \"originRun\", \"state\", \"outcome\", \"verdict\", \"assertions\", \"sourceSites\"]}/>)}\n {omittedText(entries.length, visible.length, \"assessment evidence rows\")}\n {available.map((entry) => {\n const assertions = limited(assertionRows(entry));\n return (<Section key={entry.attempt.locator} title={`Assertions · ${entry.attempt.locator}`}>\n {assertions.length === 0 ? <Text>No recorded assertions.</Text> : (<Table rows={assertions} columns={[\"assertion\", \"display\", \"check\", \"result\", \"coverage\"]}/>)}\n {omittedText(entry.detail.entries.length, assertions.length, \"assertions\")}\n </Section>);\n })}\n {issueSection(props.view)}\n </Section>);\n}\nexport const AttemptEvidenceResultView = defineComponent<{\n readonly view: AttemptEvidenceDomainView;\n readonly locator?: AttemptLocator;\n}>((props) => attemptEvidenceTree(props));\nAttemptEvidenceResultView.displayName = \"AttemptEvidenceResultView\";\nfunction conversationText(item: ClosedConversationItem): string {\n switch (item.kind) {\n case \"message\":\n return `${item.role}: ${item.text}`;\n case \"tool-call\":\n return `${item.tool}(${item.inputSummary})`;\n case \"tool-result\":\n return `${item.outcome}: ${item.outputSummary}`;\n case \"thinking-summary\":\n case \"compaction\":\n case \"context-injection\":\n return item.summary;\n case \"subagent\":\n return `${item.label} · ${item.state} · ${item.summary}`;\n case \"input-request\":\n return `${item.state} · ${item.promptSummary}${item.responseSummary === null ? \"\" : ` · ${item.responseSummary}`}`;\n case \"skill-load\":\n case \"conversation-error\":\n return `${item.code} · ${item.summary}`;\n }\n}\nfunction commandText(command: ClosedCommandEntry) {\n const invocation = command.manifest.invocation.kind === \"argv\"\n ? [command.manifest.invocation.executable, ...command.manifest.invocation.arguments].join(\" \")\n : command.manifest.invocation.command;\n const outcome = command.result.outcome.kind === \"exited\"\n ? `exit ${command.result.outcome.exitCode}`\n : `${command.result.outcome.kind}: ${command.result.outcome.reason}`;\n return { invocation, outcome };\n}\nfunction usageValue(observation: ClosedUsageObservation) {\n switch (observation.kind) {\n case \"token-bucket\":\n return `${observation.bucket}: ${observation.tokens}`;\n case \"request\":\n return observation.requestKind;\n case \"provider-cost\":\n return `${observation.amount} ${observation.currency}`;\n }\n}\nfunction traceEntryTree(entry: Extract<AttemptObservabilityDomainView[\"entries\"][number], {\n readonly state: \"available\";\n}>, props: AttemptTraceProps) {\n const detail = entry.detail;\n const filter = props.grep === undefined ? undefined : new RegExp(props.grep);\n const conversationRows = detail.conversation.items\n .map((item) => ({\n key: item.itemId,\n sequence: item.sequence,\n turn: item.turnId,\n event: item.kind,\n detail: conversationText(item),\n }))\n .filter((row) => filter === undefined || filter.test(`${row.event}\\n${row.detail}`));\n const commands = detail.commands.entries.map((command) => ({\n key: command.commandId,\n phase: command.manifest.phase,\n command: commandText(command).invocation,\n outcome: commandText(command).outcome,\n workingDirectory: command.manifest.workingDirectory.kind === \"project-relative\"\n ? command.manifest.workingDirectory.path\n : command.manifest.workingDirectory.kind,\n })).filter((row) => filter === undefined || filter.test(`${row.command}\\n${row.outcome}`));\n const timings = detail.timing.intervals.map((interval) => ({\n key: interval.intervalId,\n phase: interval.phase,\n label: interval.label,\n startMs: interval.startOffsetMs,\n durationMs: interval.durationMs,\n outcome: interval.outcome,\n parent: props.timingMode === \"full\" ? interval.parentIntervalId : null,\n }));\n const usage = detail.usage.observations.map((observation, index) => ({\n key: `${observation.provider}:${observation.kind}:${index}`,\n provider: observation.provider,\n kind: observation.kind,\n value: usageValue(observation),\n }));\n const diagnostics = detail.diagnostics.diagnostics.map((diagnostic) => ({\n key: diagnostic.diagnosticId,\n kind: diagnostic.kind,\n phase: diagnostic.phase,\n code: diagnostic.code,\n summary: diagnostic.summary,\n redaction: diagnostic.redaction.state === \"applied\" ? `${diagnostic.redaction.replacements} replacements` : \"none\",\n }));\n if (props.mode === \"timing\") {\n return (<Section title={`Timing · ${entry.attempt.locator}`} meta={detail.timing.collection.state}>\n {timings.length === 0 ? <Text>No recorded timing intervals.</Text> : (<Table rows={timings} columns={props.timingMode === \"full\"\n ? [\"phase\", \"label\", \"startMs\", \"durationMs\", \"outcome\", \"parent\"]\n : [\"phase\", \"label\", \"durationMs\", \"outcome\"]}/>)}\n </Section>);\n }\n return (<Section title={`Execution trace · ${entry.attempt.locator}`} meta={detail.conversation.collection.state}>\n <Table rows={[{\n key: entry.attempt.locator,\n turns: detail.conversation.turns.length,\n conversationItems: detail.conversation.items.length,\n commands: detail.commands.entries.length,\n timingIntervals: detail.timing.intervals.length,\n diagnostics: detail.diagnostics.diagnostics.length,\n }]} columns={[\"turns\", \"conversationItems\", \"commands\", \"timingIntervals\", \"diagnostics\"]}/>\n <Section title=\"Conversation\" meta={detail.conversation.collection.state}>\n {conversationRows.length === 0 ? <Text>No recorded conversation entries match this view.</Text> : (<Table rows={limited(conversationRows)} columns={[\"sequence\", \"turn\", \"event\", \"detail\"]}/>)}\n {omittedText(conversationRows.length, Math.min(conversationRows.length, DETAIL_ROWS_MAX), \"conversation entries\")}\n </Section>\n <Section title=\"Commands\" meta={detail.commands.collection.state}>\n {commands.length === 0 ? <Text>No recorded commands match this view.</Text> : (<Table rows={limited(commands)} columns={[\"phase\", \"command\", \"outcome\", \"workingDirectory\"]}/>)}\n {omittedText(commands.length, Math.min(commands.length, DETAIL_ROWS_MAX), \"commands\")}\n </Section>\n <Section title=\"Timing\" meta={detail.timing.collection.state}>\n {timings.length === 0 ? <Text>No recorded timing intervals.</Text> : (<Table rows={limited(timings)} columns={[\"phase\", \"label\", \"startMs\", \"durationMs\", \"outcome\"]}/>)}\n </Section>\n <Section title=\"Usage\" meta={detail.usage.collection.state}>\n {usage.length === 0 ? <Text>No recorded provider usage.</Text> : <Table rows={limited(usage)} columns={[\"provider\", \"kind\", \"value\"]}/>}\n </Section>\n <Section title=\"Diagnostics\" meta={detail.diagnostics.collection.state}>\n {diagnostics.length === 0 ? <Text>No recorded diagnostics.</Text> : (<Table rows={limited(diagnostics)} columns={[\"kind\", \"phase\", \"code\", \"summary\", \"redaction\"]}/>)}\n </Section>\n </Section>);\n}\nfunction attemptTraceTree(props: AttemptTraceProps) {\n const entries = props.view.entries\n .filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator)\n .slice(0, DETAIL_ROWS_MAX);\n return (<Col>\n {entries.length === 0 ? <Section title={props.mode === \"timing\" ? \"Timing\" : \"Execution trace\"}><Text>No matching closed trace data.</Text></Section> : null}\n {entries.map((entry) => entry.state === \"available\"\n ? <>{traceEntryTree(entry, props)}</>\n : <Section key={entry.attempt.locator} title={`${props.mode === \"timing\" ? \"Timing\" : \"Execution trace\"} · ${entry.attempt.locator}`}><Text>{`Trace data is ${entry.state}.`}</Text></Section>)}\n {issueSection(props.view)}\n </Col>);\n}\n/** Execution and timing never query: their only input is a closed observability DomainView. */\nexport const AttemptTrace = defineComponent<AttemptTraceProps>((props) => attemptTraceTree(props));\nAttemptTrace.displayName = \"AttemptTrace\";\nfunction endpointText(endpoint: {\n readonly state: \"absent\";\n} | {\n readonly state: \"present\";\n readonly revision: {\n readonly kind: string;\n };\n}): string {\n return endpoint.state === \"absent\" ? \"absent\" : endpoint.revision.kind;\n}\nfunction fileChangesTree(props: FileChangesTrajectoryProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n return (<Col>\n {entries.length === 0 ? <Section title=\"File changes\"><Text>No matching closed file-change data.</Text></Section> : null}\n {entries.map((entry) => {\n if (entry.state !== \"available\") {\n return <Section key={entry.attempt.locator} title={`File changes · ${entry.attempt.locator}`}><Text>{`File changes are ${entry.state}.`}</Text></Section>;\n }\n const changes = entry.detail.trajectory.flatMap((window) => window.changes.map((change) => ({\n key: `${window.windowId}:${change.changeId}`,\n window: window.sequence,\n path: change.path,\n kind: change.kind,\n before: endpointText(change.before),\n after: endpointText(change.after),\n })));\n const paths = entry.detail.paths.map((path) => ({\n key: path.path,\n path: path.path,\n changes: path.changes.length,\n net: path.net.state === \"available\" ? path.net.kind : path.net.reason,\n }));\n return (<Section key={entry.attempt.locator} title={`File changes · ${entry.attempt.locator}`} meta={entry.detail.collection.state}>\n <Table rows={[{\n key: entry.attempt.locator,\n attribution: entry.detail.attribution.kind,\n windows: entry.detail.trajectory.length,\n paths: entry.detail.paths.length,\n limitations: entry.detail.collection.limitations.length,\n }]} columns={[\"attribution\", \"windows\", \"paths\", \"limitations\"]}/>\n <Section title=\"Change trajectory\">\n {changes.length === 0 ? <Text>No retained changed paths.</Text> : <Table rows={limited(changes)} columns={[\"window\", \"path\", \"kind\", \"before\", \"after\"]}/>}\n {omittedText(changes.length, Math.min(changes.length, DETAIL_ROWS_MAX), \"file changes\")}\n </Section>\n <Section title=\"Path summary\">\n {paths.length === 0 ? <Text>No retained path summaries.</Text> : <Table rows={limited(paths)} columns={[\"path\", \"changes\", \"net\"]}/>}\n </Section>\n </Section>);\n })}\n {issueSection(props.view)}\n </Col>);\n}\nexport const FileChangesTrajectory = defineComponent<FileChangesTrajectoryProps>((props) => fileChangesTree(props));\nFileChangesTrajectory.displayName = \"FileChangesTrajectory\";\nfunction sourceContentText(content: {\n readonly state: \"available\";\n readonly text: string;\n} | {\n readonly state: \"unavailable\" | \"binary\";\n}): string {\n if (content.state !== \"available\")\n return content.state;\n return content.text.length <= SOURCE_TEXT_MAX\n ? content.text\n : `${content.text.slice(0, SOURCE_TEXT_MAX)}\\n… source text truncated for this page.`;\n}\nfunction sourcesTree(props: SourcesResultProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n return (<Col>\n {entries.length === 0 ? <Section title=\"Recorded source\"><Text>No matching closed source data.</Text></Section> : null}\n {entries.map((entry) => {\n if (entry.state !== \"available\") {\n return <Section key={entry.attempt.locator} title={`Recorded source · ${entry.attempt.locator}`}><Text>{`Sources are ${entry.state}.`}</Text></Section>;\n }\n const items = entry.detail.items.filter((item) => props.file === undefined || item.path === props.file);\n return (<Section key={entry.attempt.locator} title={`Recorded source · ${entry.attempt.locator}`}>\n {items.length === 0 ? <Text>{props.file === undefined ? \"No recorded source files.\" : `No recorded source matches ${props.file}.`}</Text> : null}\n {items.map((item) => (<Section key={item.sourceItemId} title={item.path} meta={item.sha256}>\n <Table rows={[{\n key: item.sourceItemId,\n sourceItem: item.sourceItemId,\n content: item.content.state,\n }]} columns={[\"sourceItem\", \"content\"]}/>\n <Text>{sourceContentText(item.content)}</Text>\n </Section>))}\n </Section>);\n })}\n {issueSection(props.view)}\n </Col>);\n}\nexport const SourcesResultView = defineComponent<SourcesResultProps>((props) => sourcesTree(props));\nSourcesResultView.displayName = \"SourcesResultView\";\nfunction sandboxTree(props: SandboxHistoryResultProps) {\n const entries = props.view.entries.filter((entry) => props.locator === undefined || entry.attempt.locator === props.locator);\n const rows = entries.map((entry) => ({\n key: entry.attempt.locator,\n locator: entry.attempt.locator,\n state: entry.state,\n commands: entry.state === \"available\" ? entry.detail.commands.entries.length : null,\n timingIntervals: entry.state === \"available\" ? entry.detail.timing.intervals.length : null,\n diagnostics: entry.state === \"available\" ? entry.detail.diagnostics.diagnostics.length : null,\n }));\n return (<Section title=\"Sandbox history\" meta={`${rows.length} attempt${rows.length === 1 ? \"\" : \"s\"}`}>\n {rows.length === 0 ? <Text>No matching closed sandbox history.</Text> : (<Table rows={limited(rows)} columns={[\"locator\", \"state\", \"commands\", \"timingIntervals\", \"diagnostics\"]}/>)}\n {omittedText(rows.length, Math.min(rows.length, DETAIL_ROWS_MAX), \"sandbox history rows\")}\n {issueSection(props.view)}\n </Section>);\n}\nexport const SandboxHistoryResultView = defineComponent<SandboxHistoryResultProps>((props) => sandboxTree(props));\nSandboxHistoryResultView.displayName = \"SandboxHistoryResultView\";\nfunction runMembershipTree(input: RunMembershipResult) {\n const hasAttempts = input.members.some((member) => member.locator !== null);\n const rows = input.members.map((member) => ({\n key: member.key,\n experiment: member.experiment,\n eval: member.eval,\n attempt: `#${member.attempt + 1}`,\n result: member.locator === null\n ? member.outcome === \"errored\" ? \"errored\" : \"not started\"\n : member.relation === \"reference\" || member.state === \"carried\" || member.state === \"accepted\"\n ? `using result ${member.locator}`\n : member.verdict ?? member.outcome ?? member.state,\n details: member.locator === null\n ? null\n : { kind: \"locator\" as const, locator: member.locator as AttemptLocator },\n }));\n return (<Col>\n <Hero data={input.hero}/>\n {runErrorsSection(input.errors)}\n <Section title=\"Planned attempts\" meta={`${input.members.length} attempt${input.members.length === 1 ? \"\" : \"s\"}`}>\n <Table rows={limited(rows)} columns={[\n { field: \"experiment\", label: \"Experiment\" },\n { field: \"eval\", label: \"Eval\" },\n { field: \"attempt\", label: \"Attempt\" },\n { field: \"result\", label: \"Result\" },\n { field: \"details\", label: \"Details\" },\n ]}/>\n {omittedText(rows.length, Math.min(rows.length, DETAIL_ROWS_MAX), \"planned attempts\")}\n </Section>\n {hasAttempts ? <AttemptEvidenceResultView view={input.evidence}/> : null}\n {hasAttempts ? issueSection(input.summary) : null}\n </Col>);\n}\nexport const RunMembershipResultView = defineComponent<RunMembershipResult>((input) => runMembershipTree(input));\nRunMembershipResultView.displayName = \"RunMembershipResultView\";\nfunction attemptDetailTree(input: AttemptDetailResult) {\n const locator = input.locator ?? undefined;\n return (<Col>\n <Hero data={input.hero}/>\n <Section title={`Attempt · ${input.locator ?? \"unavailable\"}`}>\n {membershipTable(input.members)}\n </Section>\n <AttemptEvidenceResultView view={input.evidence} locator={locator}/>\n <AttemptTrace view={input.observability} locator={locator} mode=\"execution\" timingMode=\"full\"/>\n <FileChangesTrajectory view={input.fileChanges} locator={locator}/>\n <SourcesResultView view={input.sources} locator={locator}/>\n <SandboxHistoryResultView view={input.sandbox} locator={locator}/>\n </Col>);\n}\nexport const AttemptDetailResultView = defineComponent<AttemptDetailResult>((input) => attemptDetailTree(input));\nAttemptDetailResultView.displayName = \"AttemptDetailResultView\";\nfunction experimentDetailTree(input: ExperimentDetailResult) {\n const rows = input.rows.filter((row) => String(row.experiment) === input.experiment);\n const hasScore = rows.some((row) => row.evaluationKind !== \"pass\");\n const hasPass = rows.some((row) => row.evaluationKind === \"pass\");\n const columns = [\n \"experiment\",\n ...(hasPass ? [\"passRate\"] : []),\n ...(hasScore ? [\"totalScore\"] : []),\n \"durationMs\",\n \"tokens\",\n ];\n return (<Col>\n <Hero data={input.hero}/>\n <Section title={`Experiment · ${input.experiment}`}>\n <Table rows={rows} columns={columns}/>\n </Section>\n <Section title=\"Experiment members\" meta={`${input.members.length} slots`}>\n {membershipTable(limited(input.members))}\n {omittedText(input.members.length, Math.min(input.members.length, DETAIL_ROWS_MAX), \"member rows\")}\n </Section>\n {issueSection(input.rows)}\n </Col>);\n}\nexport const ExperimentDetailResultView = defineComponent<ExperimentDetailResult>((input) => experimentDetailTree(input));\nExperimentDetailResultView.displayName = \"ExperimentDetailResultView\";\nfunction jsonText(value: JsonValue): string {\n const text = JSON.stringify(value);\n return text.length <= 1000 ? text : `${text.slice(0, 1000)}…`;\n}\n"]}
@@ -94,6 +94,7 @@ function standardGroupPage(input) {
94
94
  path: input.path,
95
95
  title: { en: "Experiment group", "zh-CN": "实验组" },
96
96
  navigation: false,
97
+ presentation: "page",
97
98
  role: { kind: "experiment-group", groupKind: input.groupKind },
98
99
  params: input.params,
99
100
  load: (sample, params) => (0, index_ts_1.experimentComparisonScope)(sample, params),
@@ -118,6 +119,7 @@ exports.standardAttemptPage = {
118
119
  path: "/attempt",
119
120
  title: "Attempt",
120
121
  navigation: false,
122
+ presentation: "overlay",
121
123
  params: details_ts_1.attemptDetailParams,
122
124
  load: async (_sample, params, context) => Object.freeze({
123
125
  target: params,
@@ -143,6 +145,7 @@ exports.standardExperimentPage = {
143
145
  path: "/experiment",
144
146
  title: "Experiment",
145
147
  navigation: false,
148
+ presentation: "overlay",
146
149
  params: details_ts_1.experimentDetailParams,
147
150
  load: async (sample, params) => {
148
151
  const experiment = experimentForTarget(sample, params);