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.
- package/dist/agents/bub.cjs +4 -4
- package/dist/agents/bub.cjs.map +1 -1
- package/dist/agents/bub.d.cts +2 -2
- package/dist/agents/bub.d.mts +2 -2
- package/dist/agents/bub.d.ts +2 -2
- package/dist/agents/codex-app-server.cjs +2 -3
- package/dist/agents/codex-app-server.cjs.map +1 -1
- package/dist/agents/codex.cjs +4 -4
- package/dist/agents/codex.cjs.map +1 -1
- package/dist/agents/codex.d.cts +3 -3
- package/dist/agents/codex.d.mts +3 -3
- package/dist/agents/codex.d.ts +3 -3
- package/dist/agents/sdk-streams.cjs +11 -4
- package/dist/agents/sdk-streams.cjs.map +1 -1
- package/dist/analysis/bindings.cjs +74 -19
- package/dist/analysis/bindings.cjs.map +1 -1
- package/dist/analysis/bindings.d.cts +534 -156
- package/dist/analysis/bindings.d.mts +534 -156
- package/dist/analysis/bindings.d.ts +534 -156
- package/dist/analysis/domain-view.cjs.map +1 -1
- package/dist/analysis/domain-view.d.cts +137 -8
- package/dist/analysis/domain-view.d.mts +137 -8
- package/dist/analysis/domain-view.d.ts +137 -8
- package/dist/analysis/index.cjs.map +1 -1
- package/dist/analysis/index.d.cts +1 -1
- package/dist/analysis/index.d.mts +1 -1
- package/dist/analysis/index.d.ts +1 -1
- package/dist/assertions/api.cjs.map +1 -1
- package/dist/assertions/api.d.cts +62 -0
- package/dist/assertions/api.d.mts +62 -0
- package/dist/assertions/api.d.ts +62 -0
- package/dist/assertions/judge.cjs +56 -5
- package/dist/assertions/judge.cjs.map +1 -1
- package/dist/assertions/match.cjs +66 -42
- package/dist/assertions/match.cjs.map +1 -1
- package/dist/assertions/match.d.cts +13 -0
- package/dist/assertions/match.d.mts +13 -0
- package/dist/assertions/match.d.ts +13 -0
- package/dist/assertions/record/attachment.cjs +104 -33
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/record/attachment.d.cts +294 -57
- package/dist/assertions/record/attachment.d.mts +294 -57
- package/dist/assertions/record/attachment.d.ts +294 -57
- package/dist/assertions/record/codec.cjs +91 -17
- package/dist/assertions/record/codec.cjs.map +1 -1
- package/dist/assertions/record/codec.d.cts +280 -52
- package/dist/assertions/record/codec.d.mts +280 -52
- package/dist/assertions/record/codec.d.ts +280 -52
- package/dist/assertions/record/index.js +2 -0
- package/dist/assertions/record/model.cjs +16 -0
- package/dist/assertions/record/model.cjs.map +1 -1
- package/dist/assertions/record/model.d.cts +120 -13
- package/dist/assertions/record/model.d.mts +120 -13
- package/dist/assertions/record/model.d.ts +120 -13
- package/dist/assertions/record/model.js +2 -0
- package/dist/assertions/record/producer.cjs +70 -50
- package/dist/assertions/record/producer.cjs.map +1 -1
- package/dist/assertions/record/producer.d.cts +8 -7
- package/dist/assertions/record/producer.d.mts +8 -7
- package/dist/assertions/record/producer.d.ts +8 -7
- package/dist/assertions/runtime.cjs +49 -7
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/cli/application.cjs +40 -0
- package/dist/cli/application.cjs.map +1 -0
- package/dist/cli/application.d.cts +129 -0
- package/dist/cli/application.d.mts +129 -0
- package/dist/cli/application.d.ts +129 -0
- package/dist/cli/application.js +24 -0
- package/dist/cli/application.js.map +1 -0
- package/dist/cli/bootstrap.cjs +10 -4
- package/dist/cli/bootstrap.cjs.map +1 -1
- package/dist/cli/node-application.cjs +123 -0
- package/dist/cli/node-application.cjs.map +1 -0
- package/dist/cli/node-application.d.cts +14 -0
- package/dist/cli/node-application.d.mts +14 -0
- package/dist/cli/node-application.d.ts +14 -0
- package/dist/cli/node-application.js +26 -0
- package/dist/cli/node-application.js.map +1 -0
- package/dist/cli/program.cjs +2807 -0
- package/dist/cli/program.cjs.map +1 -0
- package/dist/cli/program.d.cts +352 -0
- package/dist/cli/program.d.mts +352 -0
- package/dist/cli/program.d.ts +352 -0
- package/dist/cli/program.js +36 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/project-configuration.cjs +134 -0
- package/dist/cli/project-configuration.cjs.map +1 -0
- package/dist/cli/project-configuration.d.cts +64 -0
- package/dist/cli/project-configuration.d.mts +64 -0
- package/dist/cli/project-configuration.d.ts +64 -0
- package/dist/cli/project-configuration.js +22 -0
- package/dist/cli/project-configuration.js.map +1 -0
- package/dist/cli/record.cjs +20 -4
- package/dist/cli/record.cjs.map +1 -1
- package/dist/cli/record.d.cts +3 -3
- package/dist/cli/record.d.mts +3 -3
- package/dist/cli/record.d.ts +3 -3
- package/dist/cli.cjs +19 -3130
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.cts +2 -148
- package/dist/cli.d.mts +2 -148
- package/dist/cli.d.ts +2 -148
- package/dist/cli.js +22 -30
- package/dist/context/assert-first.cjs +20 -15
- package/dist/context/assert-first.cjs.map +1 -1
- package/dist/eval/record/verdict.cjs +3 -2
- package/dist/eval/record/verdict.cjs.map +1 -1
- package/dist/experiment/host/index.cjs +1 -6
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/experiment/host/index.d.cts +1 -0
- package/dist/experiment/host/index.d.mts +1 -0
- package/dist/experiment/host/index.d.ts +1 -0
- package/dist/load-config.cjs +13 -4
- package/dist/load-config.cjs.map +1 -1
- package/dist/load-config.d.cts +4 -3
- package/dist/load-config.d.mts +4 -3
- package/dist/load-config.d.ts +4 -3
- package/dist/load-config.js +4 -2
- package/dist/o11y/parsers/codex.cjs +29 -7
- package/dist/o11y/parsers/codex.cjs.map +1 -1
- package/dist/record/codec/core.d.cts +0 -2
- package/dist/record/codec/core.d.mts +0 -2
- package/dist/record/codec/core.d.ts +0 -2
- package/dist/record/codec/identifiers.cjs +2 -3
- package/dist/record/codec/identifiers.cjs.map +1 -1
- package/dist/record/codec/identifiers.d.cts +1 -2
- package/dist/record/codec/identifiers.d.mts +1 -2
- package/dist/record/codec/identifiers.d.ts +1 -2
- package/dist/record/codec/identifiers.js +10 -12
- package/dist/record/codec/index.js +42 -44
- package/dist/record/definition/attachment.cjs +1 -0
- package/dist/record/definition/attachment.cjs.map +1 -1
- package/dist/record/definition/attachment.d.cts +14 -0
- package/dist/record/definition/attachment.d.mts +14 -0
- package/dist/record/definition/attachment.d.ts +14 -0
- package/dist/record/family/assertions-v1.cjs +104 -0
- package/dist/record/family/assertions-v1.cjs.map +1 -0
- package/dist/record/family/assertions-v1.d.cts +2 -0
- package/dist/record/family/assertions-v1.d.mts +2 -0
- package/dist/record/family/assertions-v1.d.ts +2 -0
- package/dist/record/family/assertions-v1.js +6 -0
- package/dist/record/family/assertions-v1.js.map +1 -0
- package/dist/record/family/assertions.cjs +16 -5
- package/dist/record/family/assertions.cjs.map +1 -1
- package/dist/record/family/assertions.d.cts +510 -56
- package/dist/record/family/assertions.d.mts +510 -56
- package/dist/record/family/assertions.d.ts +510 -56
- package/dist/record/family/assertions.js +14 -10
- package/dist/record/family/catalog.cjs +17 -1
- package/dist/record/family/catalog.cjs.map +1 -1
- package/dist/record/family/catalog.d.cts +1292 -104
- package/dist/record/family/catalog.d.mts +1292 -104
- package/dist/record/family/catalog.d.ts +1292 -104
- package/dist/record/family/catalog.js +22 -20
- package/dist/record/family/index.js +144 -138
- package/dist/record/family/observability-v1.cjs +5 -0
- package/dist/record/family/observability-v1.cjs.map +1 -1
- package/dist/record/family/observability.cjs +1 -1
- package/dist/record/family/observability.cjs.map +1 -1
- package/dist/record/host/runtime.cjs +323 -173
- package/dist/record/host/runtime.cjs.map +1 -1
- package/dist/record/host/types.cjs.map +1 -1
- package/dist/record/host/types.d.cts +9 -7
- package/dist/record/host/types.d.mts +9 -7
- package/dist/record/host/types.d.ts +9 -7
- package/dist/record/model/core.cjs.map +1 -1
- package/dist/record/model/core.d.cts +1 -2
- package/dist/record/model/core.d.mts +1 -2
- package/dist/record/model/core.d.ts +1 -2
- package/dist/record/model/definition.cjs +1 -2
- package/dist/record/model/definition.cjs.map +1 -1
- package/dist/record/model/definition.d.cts +1 -7
- package/dist/record/model/definition.d.mts +1 -7
- package/dist/record/model/definition.d.ts +1 -7
- package/dist/record/model/identifiers.cjs +2 -3
- package/dist/record/model/identifiers.cjs.map +1 -1
- package/dist/record/model/identifiers.d.cts +1 -3
- package/dist/record/model/identifiers.d.mts +1 -3
- package/dist/record/model/identifiers.d.ts +1 -3
- package/dist/record/model/identifiers.js +36 -38
- package/dist/record/model/index.js +60 -62
- package/dist/record/platform/node.cjs +17 -7
- package/dist/record/platform/node.cjs.map +1 -1
- package/dist/record/platform/services.cjs.map +1 -1
- package/dist/record/platform/services.d.cts +8 -3
- package/dist/record/platform/services.d.mts +8 -3
- package/dist/record/platform/services.d.ts +8 -3
- package/dist/record/reader/format.cjs +16 -65
- package/dist/record/reader/format.cjs.map +1 -1
- package/dist/record/reader/format.d.cts +5 -9
- package/dist/record/reader/format.d.mts +5 -9
- package/dist/record/reader/format.d.ts +5 -9
- package/dist/record/reader/index.js +10 -8
- package/dist/record/reader/runtime.cjs +63 -32
- package/dist/record/reader/runtime.cjs.map +1 -1
- package/dist/record/reader/runtime.d.cts +40 -4
- package/dist/record/reader/runtime.d.mts +40 -4
- package/dist/record/reader/runtime.d.ts +40 -4
- package/dist/record/reader/runtime.js +6 -4
- package/dist/report/assets/enhance.js +5 -5
- package/dist/report/assets/styles.css +186 -24
- package/dist/report/built-in/result-components.cjs +8 -5
- package/dist/report/built-in/result-components.cjs.map +1 -1
- package/dist/report/built-in/standard.cjs +3 -0
- package/dist/report/built-in/standard.cjs.map +1 -1
- package/dist/report/built-in/standard.d.cts +2 -0
- package/dist/report/built-in/standard.d.mts +2 -0
- package/dist/report/built-in/standard.d.ts +2 -0
- package/dist/report/client-dist/app.js +53 -0
- package/dist/report/components/attempt-detail/compute.cjs +106 -231
- package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
- package/dist/report/components/attempt-detail/compute.d.cts +9 -43
- package/dist/report/components/attempt-detail/compute.d.mts +9 -43
- package/dist/report/components/attempt-detail/compute.d.ts +9 -43
- package/dist/report/components/attempt-detail/compute.js +2 -4
- package/dist/report/components/attempt-detail/content.cjs +3 -4
- package/dist/report/components/attempt-detail/content.cjs.map +1 -1
- package/dist/report/components/attempt-detail/validate.cjs +44 -2
- package/dist/report/components/attempt-detail/validate.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.cjs +9 -15
- package/dist/report/components/entity-lists/compute.cjs.map +1 -1
- package/dist/report/components/entity-lists/content.cjs +53 -40
- package/dist/report/components/entity-lists/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.cjs +1 -3
- package/dist/report/components/entity-lists/index.cjs.map +1 -1
- package/dist/report/components/experiment-detail/compute.cjs +4 -6
- package/dist/report/components/experiment-detail/compute.cjs.map +1 -1
- package/dist/report/definition/cell.cjs +14 -7
- package/dist/report/definition/cell.cjs.map +1 -1
- package/dist/report/definition/cell.d.cts +4 -0
- package/dist/report/definition/cell.d.mts +4 -0
- package/dist/report/definition/cell.d.ts +4 -0
- package/dist/report/definition/primitives/assertion-evidence.cjs +96 -0
- package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -0
- package/dist/report/definition/primitives/assertion-evidence.d.cts +11 -0
- package/dist/report/definition/primitives/assertion-evidence.d.mts +11 -0
- package/dist/report/definition/primitives/assertion-evidence.d.ts +11 -0
- package/dist/report/definition/primitives/assertion-evidence.js +6 -0
- package/dist/report/definition/primitives/assertion-evidence.js.map +1 -0
- package/dist/report/definition/primitives.cjs +14 -1
- package/dist/report/definition/primitives.cjs.map +1 -1
- package/dist/report/definition/report.cjs +16 -8
- package/dist/report/definition/report.cjs.map +1 -1
- package/dist/report/definition/report.d.cts +6 -0
- package/dist/report/definition/report.d.mts +6 -0
- package/dist/report/definition/report.d.ts +6 -0
- package/dist/report/definition/table-text.cjs +12 -3
- package/dist/report/definition/table-text.cjs.map +1 -1
- package/dist/report/definition/table-text.d.cts +6 -1
- package/dist/report/definition/table-text.d.mts +6 -1
- package/dist/report/definition/table-text.d.ts +6 -1
- package/dist/report/execution/model.cjs +6 -14
- package/dist/report/execution/model.cjs.map +1 -1
- package/dist/report/execution/model.d.cts +5 -10
- package/dist/report/execution/model.d.mts +5 -10
- package/dist/report/execution/model.d.ts +5 -10
- package/dist/report/execution/model.js +6 -6
- package/dist/report/execution/paths.cjs +0 -11
- package/dist/report/execution/paths.cjs.map +1 -1
- package/dist/report/execution/paths.d.cts +0 -1
- package/dist/report/execution/paths.d.mts +0 -1
- package/dist/report/execution/paths.d.ts +0 -1
- package/dist/report/execution/paths.js +6 -8
- package/dist/report/host/execute.cjs +13 -22
- package/dist/report/host/execute.cjs.map +1 -1
- package/dist/report/host/execute.d.cts +1 -4
- package/dist/report/host/execute.d.mts +1 -4
- package/dist/report/host/execute.d.ts +1 -4
- package/dist/report/host/from-record.cjs +3 -0
- package/dist/report/host/from-record.cjs.map +1 -1
- package/dist/report/host/from-record.d.cts +4 -1
- package/dist/report/host/from-record.d.mts +4 -1
- package/dist/report/host/from-record.d.ts +4 -1
- package/dist/report/host/site-assets.cjs +1 -2
- package/dist/report/host/site-assets.cjs.map +1 -1
- package/dist/report/host/site-assets.d.cts +0 -1
- package/dist/report/host/site-assets.d.mts +0 -1
- package/dist/report/host/site-assets.d.ts +0 -1
- package/dist/report/host/site-assets.js +2 -4
- package/dist/report/host/static.cjs +71 -346
- package/dist/report/host/static.cjs.map +1 -1
- package/dist/report/host/static.d.cts +1 -3
- package/dist/report/host/static.d.mts +1 -3
- package/dist/report/host/static.d.ts +1 -3
- package/dist/report/host/static.js +2 -2
- package/dist/report/host/view-session.cjs.map +1 -1
- package/dist/report/host/view-session.d.cts +1 -1
- package/dist/report/host/view-session.d.mts +1 -1
- package/dist/report/host/view-session.d.ts +1 -1
- package/dist/report/model/locale.cjs +1 -1
- package/dist/report/model/locale.cjs.map +1 -1
- package/dist/report/model/locale.d.cts +1 -1
- package/dist/report/model/locale.d.mts +1 -1
- package/dist/report/model/locale.d.ts +1 -1
- package/dist/report/model/pricing.cjs +2 -2
- package/dist/report/model/pricing.cjs.map +1 -1
- package/dist/report/react/enhance.js +5 -5
- package/dist/report/react/styles.css +186 -24
- package/dist/runner/adoption.cjs +4 -7
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/feedback/failure.cjs +77 -2
- package/dist/runner/feedback/failure.cjs.map +1 -1
- package/dist/runner/feedback/failure.d.cts +2 -1
- package/dist/runner/feedback/failure.d.mts +2 -1
- package/dist/runner/feedback/failure.d.ts +2 -1
- package/dist/runner/project-current.cjs +2 -13
- package/dist/runner/project-current.cjs.map +1 -1
- package/dist/runner/project-current.d.cts +4 -2
- package/dist/runner/project-current.d.mts +4 -2
- package/dist/runner/project-current.d.ts +4 -2
- package/dist/runner/reporters/braintrust.cjs +7 -7
- package/dist/runner/reporters/braintrust.cjs.map +1 -1
- package/dist/runner/reuse-readback.cjs +3 -4
- package/dist/runner/reuse-readback.cjs.map +1 -1
- package/dist/runner/run.cjs +5 -2
- package/dist/runner/run.cjs.map +1 -1
- package/dist/view/server.cjs +2 -37
- package/dist/view/server.cjs.map +1 -1
- package/dist/view/server.d.cts +0 -3
- package/dist/view/server.d.mts +0 -3
- package/dist/view/server.d.ts +0 -3
- package/docs-site/zh/reference/builtin-agents.mdx +7 -7
- package/docs-site/zh/reference/official-adapters.mdx +4 -4
- package/docs-site/zh/reference/report-components.mdx +2 -2
- package/docs-site/zh/tutorials/configuration.mdx +2 -2
- package/docs-site/zh/tutorials/deploy-report-site.mdx +24 -2
- package/docs-site/zh/tutorials/publish-report.mdx +4 -4
- package/docs-site/zh/tutorials/sandbox-agent.mdx +5 -5
- package/docs-site/zh/tutorials/theming.mdx +2 -2
- package/package.json +4 -6
- package/dist/record/migration/index.cjs +0 -5
- package/dist/record/migration/index.cjs.map +0 -1
- package/dist/record/migration/index.d.cts +0 -11
- package/dist/record/migration/index.d.mts +0 -11
- package/dist/record/migration/index.d.ts +0 -11
- package/dist/record/migration/index.js +0 -6
- package/dist/record/migration/index.js.map +0 -1
- package/dist/report/host/site-runtime.cjs +0 -92
- package/dist/report/host/site-runtime.cjs.map +0 -1
- package/dist/report/host/site-runtime.d.cts +0 -9
- package/dist/report/host/site-runtime.d.mts +0 -9
- package/dist/report/host/site-runtime.d.ts +0 -9
- package/dist/report/host/site-runtime.js +0 -10
- package/dist/report/host/site-runtime.js.map +0 -1
- package/dist/view/client-dist/app.css +0 -2
- package/dist/view/client-dist/app.js +0 -49
- package/dist/view/data.cjs +0 -3
- package/dist/view/data.cjs.map +0 -1
- package/dist/view/data.d.cts +0 -9
- package/dist/view/data.d.mts +0 -9
- package/dist/view/data.d.ts +0 -9
- package/dist/view/data.js +0 -4
- package/dist/view/data.js.map +0 -1
- package/dist/view/index.cjs +0 -24
- package/dist/view/index.cjs.map +0 -1
- package/dist/view/index.d.cts +0 -9
- package/dist/view/index.d.mts +0 -9
- package/dist/view/index.d.ts +0 -9
- package/dist/view/index.js +0 -28
- package/dist/view/index.js.map +0 -1
- package/dist/view/report-view-cache.cjs +0 -200
- package/dist/view/report-view-cache.cjs.map +0 -1
- package/dist/view/report-view-cache.d.cts +0 -67
- package/dist/view/report-view-cache.d.mts +0 -67
- package/dist/view/report-view-cache.d.ts +0 -67
- package/dist/view/report-view-cache.js +0 -8
- package/dist/view/report-view-cache.js.map +0 -1
- package/dist/view/shared/types.cjs +0 -3
- package/dist/view/shared/types.cjs.map +0 -1
- package/dist/view/shared/types.d.cts +0 -51
- package/dist/view/shared/types.d.mts +0 -51
- package/dist/view/shared/types.d.ts +0 -51
- package/dist/view/shared/types.js +0 -4
- package/dist/view/shared/types.js.map +0 -1
- package/dist/view/site.cjs +0 -32
- package/dist/view/site.cjs.map +0 -1
- package/dist/view/site.d.cts +0 -24
- package/dist/view/site.d.mts +0 -24
- package/dist/view/site.d.ts +0 -24
- package/dist/view/site.js +0 -8
- package/dist/view/site.js.map +0 -1
- package/dist/view/styles.css +0 -170
- package/dist/view/template.html +0 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standard.js","sourceRoot":"","sources":["standard.tsx"],"names":[],"mappings":";;;;AAQA,sDAAuF;AACvF,8EAAyF;AAEzF,gEAAkE;AAClE,mDAAwD;AACxD,qEAAwE;AACxE,mEAAuE;AAEvE,sEAA8F;AAC9F,gEAAsF;AACtF,sDAA6G;AAE7G,6DAA8F;AAC9F,kEAA0F;AAC1F,6CAA+E;AAW/E,SAAS,QAAQ,CAAC,QAAwB;IACtC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClK,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE;QACxE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;KAC7B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAAC,QAAwB,EAAE,SAG9C,EAAE;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK;SAC9B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,UAAU,CAAC;SACpG,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC;SACxH,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC7B,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;QACnC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;QACrC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACzB,OAAO,EAAE,IAAI,CAAC,cAAc;QAC5B,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QAC/B,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;QAC1D,OAAO,EAAE,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;KACnE,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,MAAM,yBAAyB,GAAG,IAAA,yBAAe,EAE9C,KAAK,EAAE,KAAK,EAAE,EAAE;IACf,OAAO,CAAC,wBAAC,oBAAG,eACV,uBAAC,wBAAO,IAAC,KAAK,EAAE,EAAE,EAAE,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,EAAE,YAC9D,uBAAC,6BAAiB,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,GAC1C,EACV,uBAAC,wBAAO,IAAC,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,YAClD,uBAAC,2BAAe,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,GACxC,IACN,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC;AACH,MAAM,0BAA0B,GAAG,IAAA,yBAAe,EAE/C,CAAC,KAAK,EAAE,EAAE;IACT,MAAM,MAAM,GAAG,IAAA,yDAAkC,EAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpE,OAAO,CAAC,wBAAC,oBAAG,eACV,uBAAC,gBAAI,IAAC,KAAK,EAAE,MAAM,GAAG,EACtB,uBAAC,yBAAa,IAAC,KAAK,EAAE,MAAM,GAAG,EAC/B,uBAAC,yBAAa,IAAC,KAAK,EAAE,MAAM,GAAG,EAC/B,uBAAC,yBAAyB,IAAC,UAAU,EAAE,KAAK,CAAC,UAAU,GAAG,IACtD,CAAC,CAAC;AACZ,CAAC,CAAC,CAAC;AACH,SAAS,gBAAgB,CAAC,MAAc;IACpC,MAAM,MAAM,GAAG,IAAA,2BAAgB,EAAC,MAAM,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACrB,OAAO,uBAAC,0BAA0B,IAAC,UAAU,EAAE,IAAA,oCAAyB,EAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;IACpG,CAAC;IACD,OAAO,CAAC,wBAAC,oBAAG,eACV,uBAAC,gBAAI,KAAG,EACR,uBAAC,yBAAa,KAAG,EACjB,uBAAC,yBAAa,KAAG,EACjB,uBAAC,wBAAO,IAAC,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,YAClD,uBAAC,oBAAG,cACD,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,uBAAC,qBAAI,IAAuB,MAAM,EAAE;4BACtD,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,iBAAiB;4BACtE,MAAM,EAAE,KAAK,CAAC,KAAK;yBACtB,YACE,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,IAJvD,KAAK,CAAC,KAAK,CAAC,GAAG,CAKzC,CAAC,CAAC,GACP,GACE,IACN,CAAC,CAAC;AACZ,CAAC;AACD,uFAAuF;AAC1E,QAAA,oBAAoB,GAAG;IAChC,EAAE,EAAE,UAAU;IACd,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE;IACxC,MAAM,EAAE,gBAAgB;CACZ,CAAC;AAWjB,MAAM,gBAAgB,GAAiC,MAAM,CAAC,MAAM,CAAC;IACjE,MAAM,EAAE,CAAC,MAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO;IACpD,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE;QACpB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;YACrC,MAAM,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,GAAG,EAAW,EAAE,CAAC,CAAC;IACjG,CAAC;IACD,SAAS,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAA,2BAAgB,EAAC,MAAM,CAAC;SAClD,MAAM,CAAC,CAAC,KAAK,EAEhB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;SAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;CACnC,CAAC,CAAC;AACH,MAAM,oBAAoB,GAAqC,MAAM,CAAC,MAAM,CAAC;IACzE,MAAM,EAAE,CAAC,MAA4B,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;IACrE,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE;QACpB,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,GAAG,CAAC;YACrC,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;QAC3E,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,WAAoB;YAC1B,YAAY,EAAE,GAAmB;YACjC,GAAG,EAAE,aAAa,GAAG,EAAW;SACnC,CAAC,CAAC;IACP,CAAC;IACD,SAAS,EAAE,CAAC,MAAc,EAAE,EAAE,CAAC,IAAA,2BAAgB,EAAC,MAAM,CAAC;SAClD,MAAM,CAAC,CAAC,KAAK,EAEhB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;SACjC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC;CACnC,CAAC,CAAC;AACH,SAAS,iBAAiB,CAA6D,KAKtF;IACG,OAAO;QACH,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,EAAE;QACjD,UAAU,EAAE,KAAc;QAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,kBAA2B,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;QACvE,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,CAAC,MAAc,EAAE,MAAc,EAAE,EAAE,CAAC,IAAA,oCAAyB,EAAC,MAAM,EAAE,MAAiC,CAAC;QAC9G,MAAM,EAAE,CAAC,UAAqC,EAAE,EAAE,CAAC,CAAC,uBAAC,0BAA0B,IAAC,UAAU,EAAE,UAAU,GAAG,CAAC;KACvD,CAAC;AAC5D,CAAC;AACY,QAAA,sBAAsB,GAAG,iBAAiB,CAAC;IACpD,EAAE,EAAE,aAAa;IACjB,IAAI,EAAE,cAAc;IACpB,SAAS,EAAE,OAAO;IAClB,MAAM,EAAE,gBAAgB;CAC3B,CAAC,CAAC;AACU,QAAA,0BAA0B,GAAG,iBAAiB,CAAC;IACxD,EAAE,EAAE,iBAAiB;IACrB,IAAI,EAAE,kBAAkB;IACxB,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,oBAAoB;CAC/B,CAAC,CAAC;AACH,iEAAiE;AACpD,QAAA,mBAAmB,GAAG;IAC/B,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,SAAS;IAChB,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,gCAAmB;IAC3B,IAAI,EAAE,KAAK,EAAE,OAAe,EAAE,MAA2B,EAAE,OAAO,EAAqC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACpH,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;KACnD,CAAC;IACF,MAAM,EAAE,CAAC,KAA+B,EAAE,EAAE,CAAC,uBAAC,0BAAc,IAAC,OAAO,EAAE,KAAK,GAAG;CACnB,CAAC;AAChE,SAAS,mBAAmB,CAAC,MAAc,EAAE,MAA8B;IACvE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAwB,CAAC;IACnD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI;QAClC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IAC/D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK;QACpC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACjE,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAA,mCAAsB,EAAC,SAAS,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;YACpD,OAAO,SAAS,CAAC;IACzB,CAAC;IACD,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;AACjF,CAAC;AACD,yEAAyE;AAC5D,QAAA,sBAAsB,GAAG;IAClC,EAAE,EAAE,YAAY;IAChB,IAAI,EAAE,aAAa;IACnB,KAAK,EAAE,YAAY;IACnB,UAAU,EAAE,KAAK;IACjB,MAAM,EAAE,mCAAsB;IAC9B,IAAI,EAAE,KAAK,EAAE,MAAc,EAAE,MAA8B,EAAwC,EAAE;QACjG,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC/B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,IAAI,EAAE,MAAM,IAAA,8CAAyB,EAAC,MAAM,CAAC;YAC7C,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;SAC/E,CAAC,CAAC;IACP,CAAC;IACD,MAAM,EAAE,CAAC,KAAkC,EAAE,EAAE,CAAC,uBAAC,kDAA0B,OAAK,KAAK,GAAG;CACvB,CAAC;AACtE,qEAAqE;AACxD,QAAA,QAAQ,GAAG,IAAA,gCAAmB,EAAC,sCAAyB,CAAC,QAAQ,EAAE;IAC5E,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE;QACH,4BAAoB;QACpB,8BAAsB;QACtB,kCAA0B;QAC1B,2BAAmB;QACnB,8BAAsB;KACzB;CACJ,CAAC,CAAC;AACH,kBAAe,gBAAQ,CAAC","sourcesContent":["/**\n * The standard information architecture.\n *\n * Detail Pages are deliberately listed here. `defineReport()` receives no\n * library page collection, so a consumer's arbitrary custom Report never\n * gains attempt or experiment routes as an implicit side effect.\n */\nimport type { ExperimentComparisonScope, ExperimentGroupIdentity, ExperimentId, Sample, SampleSnapshot, } from \"../../analysis/index.ts\";\nimport { experimentComparisonScope, experimentGroups, } from \"../../analysis/index.ts\";\nimport { sampleForExperimentComparisonScope } from \"../../analysis/experiment-groups.ts\";\nimport type { Page, PageEvidence, PageParams, } from \"../definition/report.ts\";\nimport { Col, Link, Section } from \"../definition/primitives.tsx\";\nimport { defineComponent } from \"../definition/tree.ts\";\nimport { AttemptDetails } from \"../components/attempt-detail/index.tsx\";\nimport { ExperimentTable } from \"../components/entity-lists/index.tsx\";\nimport { experimentListData } from \"../components/entity-lists/compute.ts\";\nimport { Hero, SampleNotices, type HeroData, } from \"../components/site-components/index.tsx\";\nimport { ExperimentScatter, SampleSummary, } from \"../components/summaries/index.tsx\";\nimport { attemptDetailParams, experimentDetailParams, experimentDetailTarget, } from \"../library/details.ts\";\nimport type { AttemptDetailTarget, ExperimentDetailTarget, } from \"../library/details.ts\";\nimport { loadBuiltInExperimentRows, type BuiltInExperimentRows, } from \"./analysis-values.ts\";\nimport { ExperimentDetailResultView, type MembershipRow, } from \"./result-components.tsx\";\nimport { builtInMachineProducerIds, defineBuiltInReport, } from \"./machine.ts\";\ninterface StandardAttemptPageInput {\n readonly target: AttemptDetailTarget;\n readonly evidence: PageEvidence;\n}\ninterface StandardExperimentPageInput {\n readonly hero: HeroData;\n readonly experiment: string;\n readonly rows: BuiltInExperimentRows;\n readonly members: readonly MembershipRow[];\n}\nfunction heroData(snapshot: SampleSnapshot): HeroData {\n const latest = snapshot.runs.reduce<number | null>((current, run) => current === null || Number(run.startedAt) > current ? Number(run.startedAt) : current, null);\n return Object.freeze({\n latestStartedAt: latest === null ? null : new Date(latest).toISOString(),\n runs: snapshot.runs.length,\n });\n}\nfunction membershipRows(snapshot: SampleSnapshot, filter: {\n readonly locator?: AttemptDetailTarget[\"locator\"];\n readonly experiment?: string;\n} = {}): readonly MembershipRow[] {\n return Object.freeze(snapshot.slots\n .filter((slot) => filter.experiment === undefined || String(slot.experimentId) === filter.experiment)\n .filter((slot) => filter.locator === undefined || (slot.state === \"included\" && slot.attempt.locator === filter.locator))\n .map((slot) => Object.freeze({\n key: `${slot.runId}:${slot.slotId}`,\n experiment: String(slot.experimentId),\n eval: String(slot.evalId),\n attempt: slot.attemptOrdinal,\n selectedRun: String(slot.runId),\n slot: String(slot.slotId),\n state: slot.state,\n relation: slot.state === \"included\" ? slot.relation : null,\n locator: slot.state === \"included\" ? slot.attempt.locator : null,\n })));\n}\nconst StandardExperimentResults = defineComponent<{\n readonly comparison: ExperimentComparisonScope;\n}>(async (props) => {\n return (<Col>\n <Section title={{ en: \"Experiment comparison\", \"zh-CN\": \"实验对比\" }}>\n <ExperimentScatter comparison={props.comparison}/>\n </Section>\n <Section title={{ en: \"Experiments\", \"zh-CN\": \"实验\" }}>\n <ExperimentTable comparison={props.comparison}/>\n </Section>\n </Col>);\n});\nconst StandardExperimentOverview = defineComponent<{\n readonly comparison: ExperimentComparisonScope;\n}>((props) => {\n const sample = sampleForExperimentComparisonScope(props.comparison);\n return (<Col>\n <Hero input={sample}/>\n <SampleNotices input={sample}/>\n <SampleSummary input={sample}/>\n <StandardExperimentResults comparison={props.comparison}/>\n </Col>);\n});\nfunction standardOverview(sample: Sample) {\n const groups = experimentGroups(sample);\n const only = groups.length === 1 ? groups[0] : undefined;\n if (only !== undefined) {\n return <StandardExperimentOverview comparison={experimentComparisonScope(sample, only.group)}/>;\n }\n return (<Col>\n <Hero />\n <SampleNotices />\n <SampleSummary />\n <Section title={{ en: \"Experiments\", \"zh-CN\": \"实验\" }}>\n <Col>\n {groups.map((entry) => (<Link key={entry.group.key} target={{\n page: entry.group.kind === \"named\" ? \"group-named\" : \"group-singleton\",\n params: entry.group,\n }}>\n {entry.group.kind === \"named\" ? entry.group.groupId : String(entry.group.experimentId)}\n </Link>))}\n </Col>\n </Section>\n </Col>);\n}\n/** The default top-level report Page uses the public classic component composition. */\nexport const standardOverviewPage = {\n id: \"overview\",\n path: \"/\",\n title: { en: \"Overview\", \"zh-CN\": \"总览\" },\n render: standardOverview,\n} satisfies Page;\ntype NamedGroupParams = {\n readonly kind: \"named\";\n readonly groupId: string;\n readonly key: `named/${string}`;\n};\ntype SingletonGroupParams = {\n readonly kind: \"singleton\";\n readonly experimentId: ExperimentId;\n readonly key: `singleton/${string}`;\n};\nconst namedGroupParams: PageParams<NamedGroupParams> = Object.freeze({\n encode: (params: NamedGroupParams) => params.groupId,\n decode: (key: string) => {\n if (!/^[a-z0-9][a-z0-9._~-]*$/u.test(key))\n throw new TypeError(\"named Experiment Group key is not canonical\");\n return Object.freeze({ kind: \"named\" as const, groupId: key, key: `named/${key}` as const });\n },\n enumerate: (sample: Sample) => experimentGroups(sample)\n .filter((entry): entry is typeof entry & {\n readonly group: NamedGroupParams;\n } => entry.group.kind === \"named\")\n .map((entry) => entry.group),\n});\nconst singletonGroupParams: PageParams<SingletonGroupParams> = Object.freeze({\n encode: (params: SingletonGroupParams) => String(params.experimentId),\n decode: (key: string) => {\n if (!/^[a-z0-9][a-z0-9._~-]*$/u.test(key))\n throw new TypeError(\"singleton Experiment Group key is not canonical\");\n return Object.freeze({\n kind: \"singleton\" as const,\n experimentId: key as ExperimentId,\n key: `singleton/${key}` as const,\n });\n },\n enumerate: (sample: Sample) => experimentGroups(sample)\n .filter((entry): entry is typeof entry & {\n readonly group: SingletonGroupParams;\n } => entry.group.kind === \"singleton\")\n .map((entry) => entry.group),\n});\nfunction standardGroupPage<Params extends import(\"../../analysis/index.ts\").JsonValue>(input: {\n readonly id: string;\n readonly path: string;\n readonly groupKind: \"named\" | \"singleton\";\n readonly params: PageParams<Params>;\n}): Page<Params, ExperimentComparisonScope> {\n return {\n id: input.id,\n path: input.path,\n title: { en: \"Experiment group\", \"zh-CN\": \"实验组\" },\n navigation: false as const,\n role: { kind: \"experiment-group\" as const, groupKind: input.groupKind },\n params: input.params,\n load: (sample: Sample, params: Params) => experimentComparisonScope(sample, params as ExperimentGroupIdentity),\n render: (comparison: ExperimentComparisonScope) => (<StandardExperimentOverview comparison={comparison}/>),\n } as unknown as Page<Params, ExperimentComparisonScope>;\n}\nexport const standardNamedGroupPage = standardGroupPage({\n id: \"group-named\",\n path: \"/group/named\",\n groupKind: \"named\",\n params: namedGroupParams,\n});\nexport const standardSingletonGroupPage = standardGroupPage({\n id: \"group-singleton\",\n path: \"/group/singleton\",\n groupKind: \"singleton\",\n params: singletonGroupParams,\n});\n/** One standard detail Page for one already-selected Attempt. */\nexport const standardAttemptPage = {\n id: \"attempt\",\n path: \"/attempt\",\n title: \"Attempt\",\n navigation: false,\n params: attemptDetailParams,\n load: async (_sample: Sample, params: AttemptDetailTarget, context): Promise<StandardAttemptPageInput> => Object.freeze({\n target: params,\n evidence: await context.evidence(params.locator),\n }),\n render: (input: StandardAttemptPageInput) => <AttemptDetails attempt={input}/>,\n} satisfies Page<AttemptDetailTarget, StandardAttemptPageInput>;\nfunction experimentForTarget(sample: Sample, target: ExperimentDetailTarget): ExperimentId {\n const candidates = new Map<string, ExperimentId>();\n for (const run of sample.snapshot.runs)\n candidates.set(String(run.experimentId), run.experimentId);\n for (const slot of sample.snapshot.slots)\n candidates.set(String(slot.experimentId), slot.experimentId);\n for (const candidate of candidates.values()) {\n if (experimentDetailTarget(candidate).key === target.key)\n return candidate;\n }\n throw new TypeError(\"Experiment Page target does not belong to this Sample\");\n}\n/** One standard detail Page for one fixed-Sample Experiment identity. */\nexport const standardExperimentPage = {\n id: \"experiment\",\n path: \"/experiment\",\n title: \"Experiment\",\n navigation: false,\n params: experimentDetailParams,\n load: async (sample: Sample, params: ExperimentDetailTarget): Promise<StandardExperimentPageInput> => {\n const experiment = experimentForTarget(sample, params);\n return Object.freeze({\n hero: heroData(sample.snapshot),\n experiment: String(experiment),\n rows: await loadBuiltInExperimentRows(sample),\n members: membershipRows(sample.snapshot, { experiment: String(experiment) }),\n });\n },\n render: (input: StandardExperimentPageInput) => <ExperimentDetailResultView {...input}/>,\n} satisfies Page<ExperimentDetailTarget, StandardExperimentPageInput>;\n/** Explicit composition only: standard owns its two detail Pages. */\nexport const standard = defineBuiltInReport(builtInMachineProducerIds.standard, {\n title: \"NiceEval overview\",\n pages: [\n standardOverviewPage,\n standardNamedGroupPage,\n standardSingletonGroupPage,\n standardAttemptPage,\n standardExperimentPage,\n ],\n});\nexport default standard;\n"]}
|
|
1
|
+
{"version":3,"file":"standard.js","sourceRoot":"","sources":["standard.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * The standard information architecture.\n *\n * Detail Pages are deliberately listed here. `defineReport()` receives no\n * library page collection, so a consumer's arbitrary custom Report never\n * gains attempt or experiment routes as an implicit side effect.\n */\nimport type { ExperimentComparisonScope, ExperimentGroupIdentity, ExperimentId, Sample, SampleSnapshot, } from \"../../analysis/index.ts\";\nimport { experimentComparisonScope, experimentGroups, } from \"../../analysis/index.ts\";\nimport { sampleForExperimentComparisonScope } from \"../../analysis/experiment-groups.ts\";\nimport type { Page, PageEvidence, PageParams, } from \"../definition/report.ts\";\nimport { Col, Link, Section } from \"../definition/primitives.tsx\";\nimport { defineComponent } from \"../definition/tree.ts\";\nimport { AttemptDetails } from \"../components/attempt-detail/index.tsx\";\nimport { ExperimentTable } from \"../components/entity-lists/index.tsx\";\nimport { experimentListData } from \"../components/entity-lists/compute.ts\";\nimport { Hero, SampleNotices, type HeroData, } from \"../components/site-components/index.tsx\";\nimport { ExperimentScatter, SampleSummary, } from \"../components/summaries/index.tsx\";\nimport { attemptDetailParams, experimentDetailParams, experimentDetailTarget, } from \"../library/details.ts\";\nimport type { AttemptDetailTarget, ExperimentDetailTarget, } from \"../library/details.ts\";\nimport { loadBuiltInExperimentRows, type BuiltInExperimentRows, } from \"./analysis-values.ts\";\nimport { ExperimentDetailResultView, type MembershipRow, } from \"./result-components.tsx\";\nimport { builtInMachineProducerIds, defineBuiltInReport, } from \"./machine.ts\";\ninterface StandardAttemptPageInput {\n readonly target: AttemptDetailTarget;\n readonly evidence: PageEvidence;\n}\ninterface StandardExperimentPageInput {\n readonly hero: HeroData;\n readonly experiment: string;\n readonly rows: BuiltInExperimentRows;\n readonly members: readonly MembershipRow[];\n}\nfunction heroData(snapshot: SampleSnapshot): HeroData {\n const latest = snapshot.runs.reduce<number | null>((current, run) => current === null || Number(run.startedAt) > current ? Number(run.startedAt) : current, null);\n return Object.freeze({\n latestStartedAt: latest === null ? null : new Date(latest).toISOString(),\n runs: snapshot.runs.length,\n });\n}\nfunction membershipRows(snapshot: SampleSnapshot, filter: {\n readonly locator?: AttemptDetailTarget[\"locator\"];\n readonly experiment?: string;\n} = {}): readonly MembershipRow[] {\n return Object.freeze(snapshot.slots\n .filter((slot) => filter.experiment === undefined || String(slot.experimentId) === filter.experiment)\n .filter((slot) => filter.locator === undefined || (slot.state === \"included\" && slot.attempt.locator === filter.locator))\n .map((slot) => Object.freeze({\n key: `${slot.runId}:${slot.slotId}`,\n experiment: String(slot.experimentId),\n eval: String(slot.evalId),\n attempt: slot.attemptOrdinal,\n selectedRun: String(slot.runId),\n slot: String(slot.slotId),\n state: slot.state,\n relation: slot.state === \"included\" ? slot.relation : null,\n locator: slot.state === \"included\" ? slot.attempt.locator : null,\n })));\n}\nconst StandardExperimentResults = defineComponent<{\n readonly comparison: ExperimentComparisonScope;\n}>(async (props) => {\n return (<Col>\n <Section title={{ en: \"Experiment comparison\", \"zh-CN\": \"实验对比\" }}>\n <ExperimentScatter comparison={props.comparison}/>\n </Section>\n <Section title={{ en: \"Experiments\", \"zh-CN\": \"实验\" }}>\n <ExperimentTable comparison={props.comparison}/>\n </Section>\n </Col>);\n});\nconst StandardExperimentOverview = defineComponent<{\n readonly comparison: ExperimentComparisonScope;\n}>((props) => {\n const sample = sampleForExperimentComparisonScope(props.comparison);\n return (<Col>\n <Hero input={sample}/>\n <SampleNotices input={sample}/>\n <SampleSummary input={sample}/>\n <StandardExperimentResults comparison={props.comparison}/>\n </Col>);\n});\nfunction standardOverview(sample: Sample) {\n const groups = experimentGroups(sample);\n const only = groups.length === 1 ? groups[0] : undefined;\n if (only !== undefined) {\n return <StandardExperimentOverview comparison={experimentComparisonScope(sample, only.group)}/>;\n }\n return (<Col>\n <Hero />\n <SampleNotices />\n <SampleSummary />\n <Section title={{ en: \"Experiments\", \"zh-CN\": \"实验\" }}>\n <Col>\n {groups.map((entry) => (<Link key={entry.group.key} target={{\n page: entry.group.kind === \"named\" ? \"group-named\" : \"group-singleton\",\n params: entry.group,\n }}>\n {entry.group.kind === \"named\" ? entry.group.groupId : String(entry.group.experimentId)}\n </Link>))}\n </Col>\n </Section>\n </Col>);\n}\n/** The default top-level report Page uses the public classic component composition. */\nexport const standardOverviewPage = {\n id: \"overview\",\n path: \"/\",\n title: { en: \"Overview\", \"zh-CN\": \"总览\" },\n render: standardOverview,\n} satisfies Page;\ntype NamedGroupParams = {\n readonly kind: \"named\";\n readonly groupId: string;\n readonly key: `named/${string}`;\n};\ntype SingletonGroupParams = {\n readonly kind: \"singleton\";\n readonly experimentId: ExperimentId;\n readonly key: `singleton/${string}`;\n};\nconst namedGroupParams: PageParams<NamedGroupParams> = Object.freeze({\n encode: (params: NamedGroupParams) => params.groupId,\n decode: (key: string) => {\n if (!/^[a-z0-9][a-z0-9._~-]*$/u.test(key))\n throw new TypeError(\"named Experiment Group key is not canonical\");\n return Object.freeze({ kind: \"named\" as const, groupId: key, key: `named/${key}` as const });\n },\n enumerate: (sample: Sample) => experimentGroups(sample)\n .filter((entry): entry is typeof entry & {\n readonly group: NamedGroupParams;\n } => entry.group.kind === \"named\")\n .map((entry) => entry.group),\n});\nconst singletonGroupParams: PageParams<SingletonGroupParams> = Object.freeze({\n encode: (params: SingletonGroupParams) => String(params.experimentId),\n decode: (key: string) => {\n if (!/^[a-z0-9][a-z0-9._~-]*$/u.test(key))\n throw new TypeError(\"singleton Experiment Group key is not canonical\");\n return Object.freeze({\n kind: \"singleton\" as const,\n experimentId: key as ExperimentId,\n key: `singleton/${key}` as const,\n });\n },\n enumerate: (sample: Sample) => experimentGroups(sample)\n .filter((entry): entry is typeof entry & {\n readonly group: SingletonGroupParams;\n } => entry.group.kind === \"singleton\")\n .map((entry) => entry.group),\n});\nfunction standardGroupPage<Params extends import(\"../../analysis/index.ts\").JsonValue>(input: {\n readonly id: string;\n readonly path: string;\n readonly groupKind: \"named\" | \"singleton\";\n readonly params: PageParams<Params>;\n}): Page<Params, ExperimentComparisonScope> {\n return {\n id: input.id,\n path: input.path,\n title: { en: \"Experiment group\", \"zh-CN\": \"实验组\" },\n navigation: false as const,\n presentation: \"page\" as const,\n role: { kind: \"experiment-group\" as const, groupKind: input.groupKind },\n params: input.params,\n load: (sample: Sample, params: Params) => experimentComparisonScope(sample, params as ExperimentGroupIdentity),\n render: (comparison: ExperimentComparisonScope) => (<StandardExperimentOverview comparison={comparison}/>),\n } as unknown as Page<Params, ExperimentComparisonScope>;\n}\nexport const standardNamedGroupPage = standardGroupPage({\n id: \"group-named\",\n path: \"/group/named\",\n groupKind: \"named\",\n params: namedGroupParams,\n});\nexport const standardSingletonGroupPage = standardGroupPage({\n id: \"group-singleton\",\n path: \"/group/singleton\",\n groupKind: \"singleton\",\n params: singletonGroupParams,\n});\n/** One standard detail Page for one already-selected Attempt. */\nexport const standardAttemptPage = {\n id: \"attempt\",\n path: \"/attempt\",\n title: \"Attempt\",\n navigation: false,\n presentation: \"overlay\",\n params: attemptDetailParams,\n load: async (_sample: Sample, params: AttemptDetailTarget, context): Promise<StandardAttemptPageInput> => Object.freeze({\n target: params,\n evidence: await context.evidence(params.locator),\n }),\n render: (input: StandardAttemptPageInput) => <AttemptDetails attempt={input}/>,\n} satisfies Page<AttemptDetailTarget, StandardAttemptPageInput>;\nfunction experimentForTarget(sample: Sample, target: ExperimentDetailTarget): ExperimentId {\n const candidates = new Map<string, ExperimentId>();\n for (const run of sample.snapshot.runs)\n candidates.set(String(run.experimentId), run.experimentId);\n for (const slot of sample.snapshot.slots)\n candidates.set(String(slot.experimentId), slot.experimentId);\n for (const candidate of candidates.values()) {\n if (experimentDetailTarget(candidate).key === target.key)\n return candidate;\n }\n throw new TypeError(\"Experiment Page target does not belong to this Sample\");\n}\n/** One standard detail Page for one fixed-Sample Experiment identity. */\nexport const standardExperimentPage = {\n id: \"experiment\",\n path: \"/experiment\",\n title: \"Experiment\",\n navigation: false,\n presentation: \"overlay\",\n params: experimentDetailParams,\n load: async (sample: Sample, params: ExperimentDetailTarget): Promise<StandardExperimentPageInput> => {\n const experiment = experimentForTarget(sample, params);\n return Object.freeze({\n hero: heroData(sample.snapshot),\n experiment: String(experiment),\n rows: await loadBuiltInExperimentRows(sample),\n members: membershipRows(sample.snapshot, { experiment: String(experiment) }),\n });\n },\n render: (input: StandardExperimentPageInput) => <ExperimentDetailResultView {...input}/>,\n} satisfies Page<ExperimentDetailTarget, StandardExperimentPageInput>;\n/** Explicit composition only: standard owns its two detail Pages. */\nexport const standard = defineBuiltInReport(builtInMachineProducerIds.standard, {\n title: \"NiceEval overview\",\n pages: [\n standardOverviewPage,\n standardNamedGroupPage,\n standardSingletonGroupPage,\n standardAttemptPage,\n standardExperimentPage,\n ],\n});\nexport default standard;\n"]}
|
|
@@ -50,6 +50,7 @@ export declare const standardAttemptPage: {
|
|
|
50
50
|
path: string;
|
|
51
51
|
title: string;
|
|
52
52
|
navigation: false;
|
|
53
|
+
presentation: "overlay";
|
|
53
54
|
params: PageParams<AttemptDetailTarget>;
|
|
54
55
|
load: (_sample: Sample, params: AttemptDetailTarget, context: import("../definition/report.cjs").PageLoadContext) => Promise<StandardAttemptPageInput>;
|
|
55
56
|
render: (input: StandardAttemptPageInput) => import("react").JSX.Element;
|
|
@@ -60,6 +61,7 @@ export declare const standardExperimentPage: {
|
|
|
60
61
|
path: string;
|
|
61
62
|
title: string;
|
|
62
63
|
navigation: false;
|
|
64
|
+
presentation: "overlay";
|
|
63
65
|
params: PageParams<ExperimentDetailTarget>;
|
|
64
66
|
load: (sample: Sample, params: ExperimentDetailTarget) => Promise<StandardExperimentPageInput>;
|
|
65
67
|
render: (input: StandardExperimentPageInput) => import("react").JSX.Element;
|
|
@@ -50,6 +50,7 @@ export declare const standardAttemptPage: {
|
|
|
50
50
|
path: string;
|
|
51
51
|
title: string;
|
|
52
52
|
navigation: false;
|
|
53
|
+
presentation: "overlay";
|
|
53
54
|
params: PageParams<AttemptDetailTarget>;
|
|
54
55
|
load: (_sample: Sample, params: AttemptDetailTarget, context: import("../definition/report.mjs").PageLoadContext) => Promise<StandardAttemptPageInput>;
|
|
55
56
|
render: (input: StandardAttemptPageInput) => import("react").JSX.Element;
|
|
@@ -60,6 +61,7 @@ export declare const standardExperimentPage: {
|
|
|
60
61
|
path: string;
|
|
61
62
|
title: string;
|
|
62
63
|
navigation: false;
|
|
64
|
+
presentation: "overlay";
|
|
63
65
|
params: PageParams<ExperimentDetailTarget>;
|
|
64
66
|
load: (sample: Sample, params: ExperimentDetailTarget) => Promise<StandardExperimentPageInput>;
|
|
65
67
|
render: (input: StandardExperimentPageInput) => import("react").JSX.Element;
|
|
@@ -50,6 +50,7 @@ export declare const standardAttemptPage: {
|
|
|
50
50
|
path: string;
|
|
51
51
|
title: string;
|
|
52
52
|
navigation: false;
|
|
53
|
+
presentation: "overlay";
|
|
53
54
|
params: PageParams<AttemptDetailTarget>;
|
|
54
55
|
load: (_sample: Sample, params: AttemptDetailTarget, context: import("../definition/report.js").PageLoadContext) => Promise<StandardAttemptPageInput>;
|
|
55
56
|
render: (input: StandardAttemptPageInput) => import("react").JSX.Element;
|
|
@@ -60,6 +61,7 @@ export declare const standardExperimentPage: {
|
|
|
60
61
|
path: string;
|
|
61
62
|
title: string;
|
|
62
63
|
navigation: false;
|
|
64
|
+
presentation: "overlay";
|
|
63
65
|
params: PageParams<ExperimentDetailTarget>;
|
|
64
66
|
load: (sample: Sample, params: ExperimentDetailTarget) => Promise<StandardExperimentPageInput>;
|
|
65
67
|
render: (input: StandardExperimentPageInput) => import("react").JSX.Element;
|