niceeval 0.13.1 → 0.13.2
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/INDEX.md +25 -2
- package/README.md +9 -10
- package/README.zh.md +9 -10
- package/dist/agents/ai-sdk.cjs.map +1 -1
- package/dist/agents/ai-sdk.d.cts +1 -1
- package/dist/agents/ai-sdk.d.mts +1 -1
- package/dist/agents/ai-sdk.d.ts +1 -1
- package/dist/agents/bub-install-spec.cjs +19 -5
- package/dist/agents/bub-install-spec.cjs.map +1 -1
- package/dist/agents/bub-install-spec.d.cts +9 -2
- package/dist/agents/bub-install-spec.d.mts +9 -2
- package/dist/agents/bub-install-spec.d.ts +9 -2
- package/dist/agents/bub-install-spec.js +14 -12
- package/dist/agents/bub.cjs +10 -6
- 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/claude-code.cjs.map +1 -1
- package/dist/agents/claude-code.d.cts +2 -2
- package/dist/agents/claude-code.d.mts +2 -2
- package/dist/agents/claude-code.d.ts +2 -2
- 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/coding-cli-versions.cjs +10 -1
- package/dist/agents/coding-cli-versions.cjs.map +1 -1
- package/dist/agents/coding-cli-versions.d.cts +8 -3
- package/dist/agents/coding-cli-versions.d.mts +8 -3
- package/dist/agents/coding-cli-versions.d.ts +8 -3
- package/dist/agents/coding-cli-versions.js +18 -12
- package/dist/agents/deepseek-harness.cjs +151 -0
- package/dist/agents/deepseek-harness.cjs.map +1 -0
- package/dist/agents/deepseek-harness.d.cts +14 -0
- package/dist/agents/deepseek-harness.d.mts +14 -0
- package/dist/agents/deepseek-harness.d.ts +14 -0
- package/dist/agents/deepseek-harness.js +7 -0
- package/dist/agents/deepseek-harness.js.map +1 -0
- package/dist/agents/exact-npm-plugins.cjs +28 -0
- package/dist/agents/exact-npm-plugins.cjs.map +1 -0
- package/dist/agents/exact-npm-plugins.d.cts +10 -0
- package/dist/agents/exact-npm-plugins.d.mts +10 -0
- package/dist/agents/exact-npm-plugins.d.ts +10 -0
- package/dist/agents/exact-npm-plugins.js +8 -0
- package/dist/agents/exact-npm-plugins.js.map +1 -0
- package/dist/agents/index.cjs +5 -1
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +4 -0
- package/dist/agents/index.d.mts +4 -0
- package/dist/agents/index.d.ts +4 -0
- package/dist/agents/index.js +54 -50
- package/dist/agents/index.mjs +54 -50
- package/dist/agents/omp.cjs +170 -0
- package/dist/agents/omp.cjs.map +1 -0
- package/dist/agents/omp.d.cts +14 -0
- package/dist/agents/omp.d.mts +14 -0
- package/dist/agents/omp.d.ts +14 -0
- package/dist/agents/omp.js +7 -0
- package/dist/agents/omp.js.map +1 -0
- package/dist/agents/openclaw.cjs +51 -2
- package/dist/agents/openclaw.cjs.map +1 -1
- package/dist/agents/openclaw.d.cts +2 -0
- package/dist/agents/openclaw.d.mts +2 -0
- package/dist/agents/openclaw.d.ts +2 -0
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +4 -4
- package/dist/agents/types.d.mts +4 -4
- package/dist/agents/types.d.ts +4 -4
- package/dist/agents/ui-message-stream.cjs +24 -7
- package/dist/agents/ui-message-stream.cjs.map +1 -1
- package/dist/analysis/api.cjs +28 -2
- package/dist/analysis/api.cjs.map +1 -1
- package/dist/analysis/api.d.cts +22 -1
- package/dist/analysis/api.d.mts +22 -1
- package/dist/analysis/api.d.ts +22 -1
- package/dist/analysis/api.js +8 -6
- package/dist/analysis/bindings.cjs +11 -18
- package/dist/analysis/bindings.cjs.map +1 -1
- package/dist/analysis/bindings.d.cts +177 -49
- package/dist/analysis/bindings.d.mts +177 -49
- package/dist/analysis/bindings.d.ts +177 -49
- package/dist/analysis/contracts.cjs +1 -0
- package/dist/analysis/contracts.cjs.map +1 -1
- package/dist/analysis/contracts.d.cts +43 -3
- package/dist/analysis/contracts.d.mts +43 -3
- package/dist/analysis/contracts.d.ts +43 -3
- package/dist/analysis/cost-projection.cjs +2 -1
- package/dist/analysis/cost-projection.cjs.map +1 -1
- package/dist/analysis/cost-projection.d.cts +1 -1
- package/dist/analysis/cost-projection.d.mts +1 -1
- package/dist/analysis/cost-projection.d.ts +1 -1
- package/dist/analysis/cost.cjs +13 -3
- package/dist/analysis/cost.cjs.map +1 -1
- package/dist/analysis/cost.d.cts +10 -3
- package/dist/analysis/cost.d.mts +10 -3
- package/dist/analysis/cost.d.ts +10 -3
- package/dist/analysis/experiment-groups.cjs +96 -0
- package/dist/analysis/experiment-groups.cjs.map +1 -0
- package/dist/analysis/experiment-groups.d.cts +9 -0
- package/dist/analysis/experiment-groups.d.mts +9 -0
- package/dist/analysis/experiment-groups.d.ts +9 -0
- package/dist/analysis/experiment-groups.js +10 -0
- package/dist/analysis/experiment-groups.js.map +1 -0
- package/dist/analysis/index.cjs +4 -1
- package/dist/analysis/index.cjs.map +1 -1
- package/dist/analysis/index.d.cts +4 -2
- package/dist/analysis/index.d.mts +4 -2
- package/dist/analysis/index.d.ts +4 -2
- package/dist/analysis/index.js +40 -36
- package/dist/analysis/index.mjs +40 -36
- package/dist/assertions/limits.cjs +4 -0
- package/dist/assertions/limits.cjs.map +1 -1
- package/dist/assertions/limits.d.cts +4 -0
- package/dist/assertions/limits.d.mts +4 -0
- package/dist/assertions/limits.d.ts +4 -0
- package/dist/assertions/match.cjs +63 -25
- package/dist/assertions/match.cjs.map +1 -1
- package/dist/assertions/match.d.cts +7 -0
- package/dist/assertions/match.d.mts +7 -0
- package/dist/assertions/match.d.ts +7 -0
- package/dist/assertions/record/attachment.cjs +32 -4
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/record/diff.cjs +10 -4
- package/dist/assertions/record/diff.cjs.map +1 -1
- package/dist/assertions/record/producer.cjs +101 -4
- package/dist/assertions/record/producer.cjs.map +1 -1
- package/dist/assertions/record/producer.d.cts +4 -1
- package/dist/assertions/record/producer.d.mts +4 -1
- package/dist/assertions/record/producer.d.ts +4 -1
- package/dist/assertions/runtime.cjs +45 -5
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/cli/record.cjs +113 -8
- package/dist/cli/record.cjs.map +1 -1
- package/dist/cli/record.d.cts +20 -1
- package/dist/cli/record.d.mts +20 -1
- package/dist/cli/record.d.ts +20 -1
- package/dist/cli/record.js +4 -2
- package/dist/cli.cjs +386 -31
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.cts +10 -2
- package/dist/cli.d.mts +10 -2
- package/dist/cli.d.ts +10 -2
- package/dist/context/send-retry.cjs +4 -4
- package/dist/context/send-retry.cjs.map +1 -1
- package/dist/coordination/host/runtime.cjs +8 -30
- package/dist/coordination/host/runtime.cjs.map +1 -1
- package/dist/coordination/host/runtime.d.cts +3 -3
- package/dist/coordination/host/runtime.d.mts +3 -3
- package/dist/coordination/host/runtime.d.ts +3 -3
- package/dist/coordination/host/types.cjs.map +1 -1
- package/dist/coordination/host/types.d.cts +0 -5
- package/dist/coordination/host/types.d.mts +0 -5
- package/dist/coordination/host/types.d.ts +0 -5
- package/dist/coordination/platform/node.cjs +90 -9
- package/dist/coordination/platform/node.cjs.map +1 -1
- package/dist/define.cjs +25 -1
- package/dist/define.cjs.map +1 -1
- package/dist/experiment/host/index.cjs +1 -0
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/i18n/en.cjs +26 -8
- package/dist/i18n/en.cjs.map +1 -1
- package/dist/i18n/en.d.cts +19 -6
- package/dist/i18n/en.d.mts +19 -6
- package/dist/i18n/en.d.ts +19 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/o11y/parsers/hermes.cjs +1 -1
- package/dist/o11y/parsers/hermes.cjs.map +1 -1
- package/dist/o11y/prices.json +1 -1
- package/dist/o11y/record/families.cjs +12 -3
- package/dist/o11y/record/families.cjs.map +1 -1
- package/dist/o11y/record/families.d.cts +8 -8
- package/dist/o11y/record/families.d.mts +8 -8
- package/dist/o11y/record/families.d.ts +8 -8
- package/dist/o11y/record/family-projectors.d.cts +66 -18
- package/dist/o11y/record/family-projectors.d.mts +66 -18
- package/dist/o11y/record/family-projectors.d.ts +66 -18
- package/dist/o11y/record/family-writers.d.cts +11 -3
- package/dist/o11y/record/family-writers.d.mts +11 -3
- package/dist/o11y/record/family-writers.d.ts +11 -3
- package/dist/o11y/record/runner-producer.cjs +14 -4
- package/dist/o11y/record/runner-producer.cjs.map +1 -1
- package/dist/record/codec/core.d.cts +2 -2
- package/dist/record/codec/core.d.mts +2 -2
- package/dist/record/codec/core.d.ts +2 -2
- package/dist/record/family/catalog.d.cts +44 -12
- package/dist/record/family/catalog.d.mts +44 -12
- package/dist/record/family/catalog.d.ts +44 -12
- package/dist/record/family/index.js +128 -124
- package/dist/record/family/observability-v1.cjs +35 -0
- package/dist/record/family/observability-v1.cjs.map +1 -0
- package/dist/record/family/observability-v1.d.cts +3 -0
- package/dist/record/family/observability-v1.d.mts +3 -0
- package/dist/record/family/observability-v1.d.ts +3 -0
- package/dist/record/family/observability-v1.js +6 -0
- package/dist/record/family/observability-v1.js.map +1 -0
- package/dist/record/family/observability.cjs +58 -9
- package/dist/record/family/observability.cjs.map +1 -1
- package/dist/record/family/observability.d.cts +1014 -15
- package/dist/record/family/observability.d.mts +1014 -15
- package/dist/record/family/observability.d.ts +1014 -15
- package/dist/record/family/observability.js +22 -18
- package/dist/record/host/runtime.cjs +600 -31
- 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 +33 -9
- package/dist/record/host/types.d.mts +33 -9
- package/dist/record/host/types.d.ts +33 -9
- package/dist/record/maintenance/runtime.cjs +1 -2
- package/dist/record/maintenance/runtime.cjs.map +1 -1
- package/dist/record/model/core.cjs.map +1 -1
- package/dist/record/model/core.d.cts +1 -1
- package/dist/record/model/core.d.mts +1 -1
- package/dist/record/model/core.d.ts +1 -1
- package/dist/record/model/definition.d.cts +6 -6
- package/dist/record/model/definition.d.mts +6 -6
- package/dist/record/model/definition.d.ts +6 -6
- package/dist/record/model/identifiers.cjs +1 -1
- package/dist/record/model/identifiers.cjs.map +1 -1
- package/dist/record/model/identifiers.d.cts +1 -1
- package/dist/record/model/identifiers.d.mts +1 -1
- package/dist/record/model/identifiers.d.ts +1 -1
- package/dist/record/platform/node.cjs +159 -23
- 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 +15 -2
- package/dist/record/platform/services.d.mts +15 -2
- package/dist/record/platform/services.d.ts +15 -2
- package/dist/record/reader/errors.cjs +37 -1
- package/dist/record/reader/errors.cjs.map +1 -1
- package/dist/record/reader/errors.d.cts +49 -1
- package/dist/record/reader/errors.d.mts +49 -1
- package/dist/record/reader/errors.d.ts +49 -1
- package/dist/record/reader/errors.js +22 -12
- package/dist/record/reader/format.cjs +76 -17
- package/dist/record/reader/format.cjs.map +1 -1
- package/dist/record/reader/format.d.cts +11 -4
- package/dist/record/reader/format.d.mts +11 -4
- package/dist/record/reader/format.d.ts +11 -4
- package/dist/record/reader/format.js +2 -0
- package/dist/record/reader/index.js +32 -18
- package/dist/record/reader/runtime.cjs +64 -0
- package/dist/record/reader/runtime.cjs.map +1 -1
- package/dist/record/reader/runtime.d.cts +15 -0
- package/dist/record/reader/runtime.d.mts +15 -0
- package/dist/record/reader/runtime.d.ts +15 -0
- package/dist/record/reader/runtime.js +2 -0
- package/dist/report/assets/styles.css +53 -29
- package/dist/report/built-in/analysis-values.cjs +21 -13
- package/dist/report/built-in/analysis-values.cjs.map +1 -1
- package/dist/report/built-in/analysis-values.d.cts +11 -22
- package/dist/report/built-in/analysis-values.d.mts +11 -22
- package/dist/report/built-in/analysis-values.d.ts +11 -22
- package/dist/report/built-in/analysis-values.js +4 -6
- package/dist/report/built-in/index.cjs +1 -3
- package/dist/report/built-in/index.cjs.map +1 -1
- package/dist/report/built-in/index.d.cts +1 -1
- package/dist/report/built-in/index.d.mts +1 -1
- package/dist/report/built-in/index.d.ts +1 -1
- package/dist/report/built-in/index.js +4 -8
- package/dist/report/built-in/index.mjs +4 -8
- package/dist/report/built-in/machine.cjs +0 -2
- package/dist/report/built-in/machine.cjs.map +1 -1
- package/dist/report/built-in/machine.d.cts +0 -2
- package/dist/report/built-in/machine.d.mts +0 -2
- package/dist/report/built-in/machine.d.ts +0 -2
- package/dist/report/built-in/result-components.cjs +49 -51
- package/dist/report/built-in/result-components.cjs.map +1 -1
- package/dist/report/built-in/result-components.d.cts +16 -17
- package/dist/report/built-in/result-components.d.mts +16 -17
- package/dist/report/built-in/result-components.d.ts +16 -17
- package/dist/report/built-in/result-components.js +0 -4
- package/dist/report/built-in/run-membership-overview.cjs +126 -17
- package/dist/report/built-in/run-membership-overview.cjs.map +1 -1
- package/dist/report/built-in/run-membership-overview.d.cts +14 -0
- package/dist/report/built-in/run-membership-overview.d.mts +14 -0
- package/dist/report/built-in/run-membership-overview.d.ts +14 -0
- package/dist/report/built-in/run-membership-overview.js +4 -2
- package/dist/report/built-in/standard.cjs +80 -45
- package/dist/report/built-in/standard.cjs.map +1 -1
- package/dist/report/built-in/standard.d.cts +19 -41
- package/dist/report/built-in/standard.d.mts +19 -41
- package/dist/report/built-in/standard.d.ts +19 -41
- package/dist/report/built-in/standard.js +6 -6
- package/dist/report/components/attempt-detail/compute.cjs +78 -2
- package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
- package/dist/report/components/attempt-detail/compute.d.cts +1 -1
- package/dist/report/components/attempt-detail/compute.d.mts +1 -1
- package/dist/report/components/attempt-detail/compute.d.ts +1 -1
- package/dist/report/components/attempt-detail/content.cjs +1 -1
- package/dist/report/components/attempt-detail/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.cjs +42 -5
- package/dist/report/components/entity-lists/compute.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.d.cts +10 -8
- package/dist/report/components/entity-lists/compute.d.mts +10 -8
- package/dist/report/components/entity-lists/compute.d.ts +10 -8
- package/dist/report/components/entity-lists/content.cjs +31 -6
- package/dist/report/components/entity-lists/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.cjs +9 -4
- package/dist/report/components/entity-lists/index.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.d.cts +4 -7
- package/dist/report/components/entity-lists/index.d.mts +4 -7
- package/dist/report/components/entity-lists/index.d.ts +4 -7
- package/dist/report/components/summaries/compute.cjs +8 -1
- package/dist/report/components/summaries/compute.cjs.map +1 -1
- package/dist/report/components/summaries/compute.d.cts +9 -1
- package/dist/report/components/summaries/compute.d.mts +9 -1
- package/dist/report/components/summaries/compute.d.ts +9 -1
- package/dist/report/components/summaries/index.cjs +48 -4
- package/dist/report/components/summaries/index.cjs.map +1 -1
- package/dist/report/components/summaries/index.d.cts +7 -4
- package/dist/report/components/summaries/index.d.mts +7 -4
- package/dist/report/components/summaries/index.d.ts +7 -4
- package/dist/report/definition/cell.cjs +3 -0
- package/dist/report/definition/cell.cjs.map +1 -1
- package/dist/report/definition/cell.d.cts +2 -0
- package/dist/report/definition/cell.d.mts +2 -0
- package/dist/report/definition/cell.d.ts +2 -0
- package/dist/report/definition/primitives/chart.cjs +8 -5
- package/dist/report/definition/primitives/chart.cjs.map +1 -1
- package/dist/report/definition/primitives/points-dataset.cjs +1 -0
- package/dist/report/definition/primitives/points-dataset.cjs.map +1 -1
- package/dist/report/definition/primitives.cjs +15 -2
- package/dist/report/definition/primitives.cjs.map +1 -1
- package/dist/report/definition/report.cjs +27 -3
- package/dist/report/definition/report.cjs.map +1 -1
- package/dist/report/definition/report.d.cts +8 -0
- package/dist/report/definition/report.d.mts +8 -0
- package/dist/report/definition/report.d.ts +8 -0
- package/dist/report/execution/machine.cjs +30 -14
- package/dist/report/execution/machine.cjs.map +1 -1
- package/dist/report/execution/machine.d.cts +20 -10
- package/dist/report/execution/machine.d.mts +20 -10
- package/dist/report/execution/machine.d.ts +20 -10
- package/dist/report/execution/machine.js +6 -6
- package/dist/report/host/execute.cjs +25 -16
- package/dist/report/host/execute.cjs.map +1 -1
- package/dist/report/host/execute.d.cts +4 -0
- package/dist/report/host/execute.d.mts +4 -0
- package/dist/report/host/execute.d.ts +4 -0
- package/dist/report/host/from-record.cjs +22 -5
- package/dist/report/host/from-record.cjs.map +1 -1
- package/dist/report/host/machine.cjs +53 -11
- package/dist/report/host/machine.cjs.map +1 -1
- package/dist/report/host/site-runtime.cjs +9 -8
- package/dist/report/host/site-runtime.cjs.map +1 -1
- package/dist/report/host/site-runtime.d.cts +1 -1
- package/dist/report/host/site-runtime.d.mts +1 -1
- package/dist/report/host/site-runtime.d.ts +1 -1
- package/dist/report/host/static.cjs +56 -9
- package/dist/report/host/static.cjs.map +1 -1
- package/dist/report/index.cjs.map +1 -1
- package/dist/report/index.d.cts +1 -1
- package/dist/report/index.d.mts +1 -1
- package/dist/report/index.d.ts +1 -1
- package/dist/report/model/dataset.cjs +7 -2
- package/dist/report/model/dataset.cjs.map +1 -1
- package/dist/report/model/locale.cjs +2 -0
- package/dist/report/model/locale.cjs.map +1 -1
- package/dist/report/model/locale.d.cts +1 -0
- package/dist/report/model/locale.d.mts +1 -0
- package/dist/report/model/locale.d.ts +1 -0
- package/dist/report/model/metrics.cjs +3 -1
- package/dist/report/model/metrics.cjs.map +1 -1
- package/dist/report/model/pricing.cjs +16 -11
- package/dist/report/model/pricing.cjs.map +1 -1
- package/dist/report/react/styles.css +53 -29
- package/dist/runner/adoption.cjs +1 -0
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/attempt.cjs +44 -5
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/runner/attempt.d.cts +13 -1
- package/dist/runner/attempt.d.mts +13 -1
- package/dist/runner/attempt.d.ts +13 -1
- package/dist/runner/config-identity.cjs +10 -2
- package/dist/runner/config-identity.cjs.map +1 -1
- package/dist/runner/config-identity.d.cts +4 -2
- package/dist/runner/config-identity.d.mts +4 -2
- package/dist/runner/config-identity.d.ts +4 -2
- package/dist/runner/feedback/human.cjs +298 -59
- package/dist/runner/feedback/human.cjs.map +1 -1
- package/dist/runner/feedback/json.cjs +14 -6
- package/dist/runner/feedback/json.cjs.map +1 -1
- package/dist/runner/feedback/json.d.cts +3 -2
- package/dist/runner/feedback/json.d.mts +3 -2
- package/dist/runner/feedback/json.d.ts +3 -2
- package/dist/runner/feedback/reducer.cjs +2 -0
- package/dist/runner/feedback/reducer.cjs.map +1 -1
- package/dist/runner/judge-config.cjs +1 -1
- package/dist/runner/judge-config.cjs.map +1 -1
- package/dist/runner/ledger.cjs +124 -12
- package/dist/runner/ledger.cjs.map +1 -1
- package/dist/runner/project-current.cjs +13 -5
- package/dist/runner/project-current.cjs.map +1 -1
- package/dist/runner/run.cjs +564 -256
- package/dist/runner/run.cjs.map +1 -1
- package/dist/runner/sandbox-pool.cjs +161 -30
- package/dist/runner/sandbox-pool.cjs.map +1 -1
- package/dist/runner/sandbox-pool.d.cts +34 -2
- package/dist/runner/sandbox-pool.d.mts +34 -2
- package/dist/runner/sandbox-pool.d.ts +34 -2
- package/dist/runner/shared-state-lease.cjs +803 -0
- package/dist/runner/shared-state-lease.cjs.map +1 -0
- package/dist/runner/shared-state-lease.d.cts +121 -0
- package/dist/runner/shared-state-lease.d.mts +121 -0
- package/dist/runner/shared-state-lease.d.ts +121 -0
- package/dist/runner/shared-state-lease.js +24 -0
- package/dist/runner/shared-state-lease.js.map +1 -0
- package/dist/runner/teardown-registry.cjs +97 -34
- package/dist/runner/teardown-registry.cjs.map +1 -1
- package/dist/runner/teardown-registry.d.cts +27 -1
- package/dist/runner/teardown-registry.d.mts +27 -1
- package/dist/runner/teardown-registry.d.ts +27 -1
- package/dist/runner/teardown-registry.js +20 -16
- package/dist/runner/types.cjs.map +1 -1
- package/dist/runner/types.d.cts +31 -5
- package/dist/runner/types.d.mts +31 -5
- package/dist/runner/types.d.ts +31 -5
- package/dist/sample/analysis.cjs +249 -459
- package/dist/sample/analysis.cjs.map +1 -1
- package/dist/sample/capability.cjs +138 -7
- package/dist/sample/capability.cjs.map +1 -1
- package/dist/sample/capability.d.cts +3 -1
- package/dist/sample/capability.d.mts +3 -1
- package/dist/sample/capability.d.ts +3 -1
- package/dist/sample/capability.js +8 -6
- package/dist/sandbox/docker-agent-image.cjs +5 -1
- package/dist/sandbox/docker-agent-image.cjs.map +1 -1
- package/dist/sandbox/docker-agent-image.d.cts +2 -0
- package/dist/sandbox/docker-agent-image.d.mts +2 -0
- package/dist/sandbox/docker-agent-image.d.ts +2 -0
- package/dist/sandbox/docker-agent-image.js +14 -10
- package/dist/sandbox/docker-profile/schema.cjs +283 -534
- package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
- package/dist/sandbox/docker-profile/schema.d.cts +10 -27
- package/dist/sandbox/docker-profile/schema.d.mts +10 -27
- package/dist/sandbox/docker-profile/schema.d.ts +10 -27
- package/dist/sandbox/e2b-agent-template.cjs +5 -2
- package/dist/sandbox/e2b-agent-template.cjs.map +1 -1
- package/dist/sandbox/index.cjs +4 -2
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.d.cts +1 -1
- package/dist/sandbox/index.d.mts +1 -1
- package/dist/sandbox/index.d.ts +1 -1
- package/dist/sandbox/index.js +120 -116
- package/dist/sandbox/index.mjs +120 -116
- package/dist/sandbox/keep-registry.cjs +28 -66
- package/dist/sandbox/keep-registry.cjs.map +1 -1
- package/dist/sandbox/types.cjs.map +1 -1
- package/dist/sandbox/types.d.cts +1 -1
- package/dist/sandbox/types.d.mts +1 -1
- package/dist/sandbox/types.d.ts +1 -1
- package/dist/shared/aggregate.cjs +16 -6
- package/dist/shared/aggregate.cjs.map +1 -1
- package/dist/shared/aggregate.d.cts +12 -4
- package/dist/shared/aggregate.d.mts +12 -4
- package/dist/shared/aggregate.d.ts +12 -4
- package/dist/shared/turn-label.cjs +20 -2
- package/dist/shared/turn-label.cjs.map +1 -1
- package/dist/shared/turn-label.d.cts +2 -0
- package/dist/shared/turn-label.d.mts +2 -0
- package/dist/shared/turn-label.d.ts +2 -0
- package/dist/shared/turn-label.js +4 -2
- package/dist/vendor/remark/remark-gfm.cjs +7 -7
- package/dist/vendor/remark/remark-gfm.cjs.map +1 -1
- package/dist/vendor/remark/remark-parse.cjs +12 -12
- package/dist/vendor/remark/remark-parse.cjs.map +1 -1
- package/dist/vendor/remark/remark.cjs +13 -13
- package/dist/vendor/remark/remark.cjs.map +1 -1
- package/dist/view/server.cjs +6 -0
- package/dist/view/server.cjs.map +1 -1
- package/docs-site/images/hitl-handshake-zh.svg +3 -3
- package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
- package/docs-site/zh/examples/coding-agent-extensions.mdx +1 -1
- package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +4 -3
- package/docs-site/zh/examples/integrations/claude-sdk.mdx +3 -3
- package/docs-site/zh/examples/integrations/codex-sdk.mdx +5 -5
- package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
- package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
- package/docs-site/zh/explanation/adapter.mdx +5 -5
- package/docs-site/zh/explanation/assert.mdx +7 -7
- package/docs-site/zh/explanation/drive.mdx +4 -2
- package/docs-site/zh/explanation/evals.mdx +10 -8
- package/docs-site/zh/explanation/experiment.mdx +2 -2
- package/docs-site/zh/explanation/hitl.mdx +9 -9
- package/docs-site/zh/explanation/judge.mdx +5 -5
- package/docs-site/zh/explanation/overview.mdx +3 -3
- package/docs-site/zh/explanation/runner.mdx +1 -1
- package/docs-site/zh/index.mdx +3 -3
- package/docs-site/zh/reference/builtin-agents.mdx +13 -13
- package/docs-site/zh/reference/capabilities.mdx +1 -1
- package/docs-site/zh/reference/cli.mdx +18 -12
- package/docs-site/zh/reference/define-agent.mdx +130 -5
- package/docs-site/zh/reference/define-config.mdx +2 -2
- package/docs-site/zh/reference/define-eval.mdx +4 -4
- package/docs-site/zh/reference/events.mdx +11 -11
- package/docs-site/zh/reference/official-adapters.mdx +6 -6
- package/docs-site/zh/reference/results-data.mdx +6 -0
- package/docs-site/zh/troubleshooting/debugging.mdx +1 -1
- package/docs-site/zh/troubleshooting/recover-after-kill.mdx +37 -5
- package/docs-site/zh/tutorials/accept-results.mdx +72 -0
- package/docs-site/zh/tutorials/agent-onboarding.mdx +6 -6
- package/docs-site/zh/tutorials/authoring.mdx +9 -13
- package/docs-site/zh/tutorials/ci-integration.mdx +6 -6
- package/docs-site/zh/tutorials/compare-runs.mdx +61 -0
- package/docs-site/zh/tutorials/concurrency.mdx +13 -12
- package/docs-site/zh/tutorials/configuration.mdx +4 -6
- package/docs-site/zh/tutorials/connect-your-agent.mdx +1 -1
- package/docs-site/zh/tutorials/control-run-cost.mdx +58 -0
- package/docs-site/zh/tutorials/criteria-files.mdx +2 -2
- package/docs-site/zh/tutorials/custom-reports.mdx +2 -2
- package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +46 -0
- package/docs-site/zh/tutorials/docker-in-docker.mdx +52 -43
- package/docs-site/zh/tutorials/eval-groups.mdx +6 -6
- package/docs-site/zh/tutorials/evaluation-kinds.mdx +3 -3
- package/docs-site/zh/tutorials/experiments.mdx +2 -3
- package/docs-site/zh/tutorials/handle-execution-failures.mdx +18 -10
- package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +16 -8
- package/docs-site/zh/tutorials/nixos-managed-dind.mdx +160 -0
- package/docs-site/zh/tutorials/plugins.mdx +14 -0
- package/docs-site/zh/tutorials/rerun-and-cache.mdx +4 -2
- package/docs-site/zh/tutorials/sandbox-agent.mdx +17 -11
- package/docs-site/zh/tutorials/sandbox-providers.mdx +17 -13
- package/docs-site/zh/tutorials/sandbox-reuse.mdx +12 -19
- package/docs-site/zh/tutorials/select-and-preview.mdx +65 -0
- package/docs-site/zh/tutorials/verify-judge.mdx +78 -0
- package/docs-site/zh/tutorials/viewing-results.mdx +38 -1
- package/docs-site/zh/tutorials/write-experiment.mdx +7 -5
- package/docs-site/zh/tutorials/write-send.mdx +9 -8
- package/package.json +9 -5
- package/dist/report/built-in/overview.cjs +0 -44
- package/dist/report/built-in/overview.cjs.map +0 -1
- package/dist/report/built-in/overview.d.cts +0 -6
- package/dist/report/built-in/overview.d.mts +0 -6
- package/dist/report/built-in/overview.d.ts +0 -6
- package/dist/report/built-in/overview.js +0 -9
- package/dist/report/built-in/overview.js.map +0 -1
- package/dist/runner/gate-lease.cjs +0 -283
- package/dist/runner/gate-lease.cjs.map +0 -1
- package/dist/runner/gate-lease.d.cts +0 -62
- package/dist/runner/gate-lease.d.mts +0 -62
- package/dist/runner/gate-lease.d.ts +0 -62
- package/dist/runner/gate-lease.js +0 -22
- package/dist/runner/gate-lease.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-membership-overview.js","sourceRoot":"","sources":["run-membership-overview.ts"],"names":[],"mappings":";;;AAsDA,kEAKC;AAzDD,mDAAwC;AAGxC,4DAA4D;AAC5D,6DAAwF;AACxF,kEAAuF;AACvF,6CAA+E;AAO/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;IAC5C,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5D,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,iBAAiB,GAAG;IACtB,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,yBAAyB;IAChC,IAAI,EAAE,KAAK,EAAE,MAAc,EAAmC,EAAE;QAC5D,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1C,IAAA,2CAAsB,EAAC,MAAM,CAAC;YAC9B,IAAA,kCAAiB,EAAC,MAAM,CAAC;SAC5B,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC/B,OAAO;YACP,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;YACxC,QAAQ;SACX,CAAC,CAAC;IACP,CAAC;IACD,MAAM,EAAE,CAAC,KAA6B,EAAE,EAAE,CAAC,IAAA,iBAAG,EAAC,+CAAuB,EAAE,KAAK,CAAC;CACpC,CAAC;AAC/C,iEAAiE;AACjE,SAAgB,2BAA2B;IACvC,OAAO,IAAA,gCAAmB,EAAC,sCAAyB,CAAC,qBAAqB,EAAE;QACxE,KAAK,EAAE,yBAAyB;QAChC,KAAK,EAAE,CAAC,iBAAiB,CAAC;KAC7B,CAAC,CAAC;AACP,CAAC;AACD,yEAAyE;AAC5D,QAAA,kCAAkC,GAAG,2BAA2B,EAAE,CAAC;AAChF,kBAAe,0CAAkC,CAAC","sourcesContent":["/** The stable explicit-Run membership selector. */\nimport type { Sample, SampleSnapshot, } from \"../../analysis/index.ts\";\nimport { jsx } from \"react/jsx-runtime\";\nimport type { Page } from \"../definition/report.ts\";\nimport { type HeroData } from \"../components/site-components/index.tsx\";\nimport { toAttemptEvidence } from \"../model/conversions.ts\";\nimport { loadBuiltInSummaryRows, type BuiltInSummaryRows, } from \"./analysis-values.ts\";\nimport { RunMembershipResultView, type MembershipRow, } from \"./result-components.tsx\";\nimport { builtInMachineProducerIds, defineBuiltInReport, } from \"./machine.ts\";\ninterface RunMembershipPageInput {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly members: readonly MembershipRow[];\n readonly evidence: Awaited<ReturnType<typeof toAttemptEvidence>>;\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): readonly MembershipRow[] {\n return Object.freeze(snapshot.slots.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 runMembershipPage = {\n id: \"run-membership\",\n path: \"/\",\n title: \"Run membership overview\",\n load: async (sample: Sample): Promise<RunMembershipPageInput> => {\n const [summary, evidence] = await Promise.all([\n loadBuiltInSummaryRows(sample),\n toAttemptEvidence(sample),\n ]);\n return Object.freeze({\n hero: heroData(sample.snapshot),\n summary,\n members: membershipRows(sample.snapshot),\n evidence,\n });\n },\n render: (input: RunMembershipPageInput) => jsx(RunMembershipResultView, input),\n} satisfies Page<void, RunMembershipPageInput>;\n/** The bounded default for explicit historical Run selectors. */\nexport function runMembershipOverviewReport() {\n return defineBuiltInReport(builtInMachineProducerIds.runMembershipOverview, {\n title: \"Run membership overview\",\n pages: [runMembershipPage],\n });\n}\n/** The CLI default Report for one or more explicit `--run` selectors. */\nexport const defaultRunMembershipOverviewReport = runMembershipOverviewReport();\nexport default defaultRunMembershipOverviewReport;\n"]}
|
|
1
|
+
{"version":3,"file":"run-membership-overview.js","sourceRoot":"","sources":["run-membership-overview.ts"],"names":[],"mappings":"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","sourcesContent":["/** The stable explicit-Run membership selector. */\nimport type { Sample, SampleSnapshot, } from \"../../analysis/index.ts\";\nimport { query } from \"../../analysis/index.ts\";\nimport { runDiagnosticsView, type RunDiagnosticsDomainView, } from \"../../analysis/api.ts\";\nimport { jsx } from \"react/jsx-runtime\";\nimport type { Page } from \"../definition/report.ts\";\nimport { type HeroData } from \"../components/site-components/index.tsx\";\nimport { toAttemptEvidence } from \"../model/conversions.ts\";\nimport { loadBuiltInSummaryRows, type BuiltInSummaryRows, } from \"./analysis-values.ts\";\nimport { RunMembershipResultView, type MembershipRow, type RunErrorRow, } from \"./result-components.tsx\";\nimport { builtInMachineProducerIds, defineBuiltInReport, } from \"./machine.ts\";\nimport { standardAttemptPage, standardExperimentPage, standardNamedGroupPage, standardSingletonGroupPage, } from \"./standard.tsx\";\nexport interface RunMembershipPageInput {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly members: readonly MembershipRow[];\n readonly errors: readonly RunErrorRow[];\n readonly evidence: Awaited<ReturnType<typeof toAttemptEvidence>>;\n}\n/** Closes the data shared by the Human Page and its Host-owned machine producer. */\nexport async function loadRunMembershipPageInput(sample: Sample): Promise<RunMembershipPageInput> {\n const [summary, evidence, diagnostics] = await Promise.all([\n loadBuiltInSummaryRows(sample),\n toAttemptEvidence(sample),\n query(sample, { kind: \"domain-view\", view: runDiagnosticsView }),\n ]);\n return Object.freeze({\n hero: heroData(sample.snapshot),\n summary,\n members: membershipRows(sample.snapshot, diagnostics, evidence),\n errors: runErrorRows(diagnostics),\n evidence,\n });\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}\ninterface SharedBuildFailureDiagnostic {\n readonly schema: \"niceeval.shared-build-failure/v1\";\n readonly failureId: string;\n readonly evalId: string;\n readonly attemptOrdinal: number;\n readonly phase: \"sandbox.image.build\";\n readonly errorCode: string;\n readonly message: string;\n readonly remediation?: \"pnpm-allow-builds\";\n}\nfunction sharedBuildFailure(summary: string): SharedBuildFailureDiagnostic | undefined {\n let value: unknown;\n try {\n value = JSON.parse(summary);\n }\n catch {\n return undefined;\n }\n if (typeof value !== \"object\" || value === null)\n return undefined;\n const item = value as Partial<SharedBuildFailureDiagnostic>;\n return item.schema === \"niceeval.shared-build-failure/v1\"\n && typeof item.failureId === \"string\"\n && typeof item.evalId === \"string\"\n && Number.isSafeInteger(item.attemptOrdinal)\n && item.phase === \"sandbox.image.build\"\n && typeof item.errorCode === \"string\"\n && typeof item.message === \"string\"\n && (item.remediation === undefined || item.remediation === \"pnpm-allow-builds\")\n ? item as SharedBuildFailureDiagnostic\n : undefined;\n}\nfunction failureBySlot(view: RunDiagnosticsDomainView): ReadonlyMap<string, SharedBuildFailureDiagnostic> {\n const failures = new Map<string, SharedBuildFailureDiagnostic>();\n for (const entry of view.entries) {\n if (entry.state !== \"available\")\n continue;\n for (const diagnostic of entry.detail.diagnostics) {\n if (diagnostic.code !== \"sandbox-build-failed\")\n continue;\n const failure = sharedBuildFailure(diagnostic.summary);\n if (failure !== undefined) {\n failures.set(`${entry.runId}\\u0000${failure.evalId}\\u0000${failure.attemptOrdinal}`, failure);\n }\n }\n }\n return failures;\n}\nfunction runErrorRows(view: RunDiagnosticsDomainView): readonly RunErrorRow[] {\n const groups = new Map<string, {\n readonly runId: string;\n readonly experimentId: string;\n readonly failure: SharedBuildFailureDiagnostic;\n readonly affected: string[];\n }>();\n for (const entry of view.entries) {\n if (entry.state !== \"available\")\n continue;\n for (const diagnostic of entry.detail.diagnostics) {\n if (diagnostic.code !== \"sandbox-build-failed\")\n continue;\n const failure = sharedBuildFailure(diagnostic.summary);\n if (failure === undefined)\n continue;\n const key = `${entry.runId}\\u0000${failure.failureId}`;\n const group = groups.get(key);\n const affected = `${failure.evalId}#${failure.attemptOrdinal + 1}`;\n if (group === undefined) {\n groups.set(key, {\n runId: entry.runId,\n experimentId: entry.experimentId,\n failure,\n affected: [affected],\n });\n }\n else {\n group.affected.push(affected);\n }\n }\n }\n return Object.freeze([...groups.entries()].map(([key, group]) => Object.freeze({\n key,\n failure: group.failure.failureId,\n phase: group.failure.phase,\n affected: `${group.experimentId} · ${group.affected.join(\", \")}`,\n affectedCount: group.affected.length,\n error: group.failure.errorCode,\n message: group.failure.message,\n fix: group.failure.remediation === \"pnpm-allow-builds\"\n ? \"Review these dependencies and configure pnpm allowBuilds.\"\n : null,\n })));\n}\nfunction membershipRows(snapshot: SampleSnapshot, diagnostics: RunDiagnosticsDomainView, evidence: Awaited<ReturnType<typeof toAttemptEvidence>>): readonly MembershipRow[] {\n const failures = failureBySlot(diagnostics);\n const outcomes = new Map(evidence.entries.flatMap((entry) => entry.state === \"available\" ? [[entry.attempt.locator, entry.detail.outcome] as const] : []));\n const verdicts = new Map(evidence.entries.flatMap((entry) => entry.state === \"available\" ? [[entry.attempt.locator, entry.detail.verdict] as const] : []));\n return Object.freeze(snapshot.slots.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 === \"included\" ? slot.action : slot.state === \"not-recorded\" ? slot.action ?? slot.state : slot.state,\n relation: slot.state === \"included\" ? slot.relation : null,\n locator: slot.state === \"included\" ? slot.attempt.locator : null,\n outcome: slot.state === \"included\" ? outcomes.get(slot.attempt.locator) ?? null : null,\n verdict: slot.state === \"included\" ? verdicts.get(slot.attempt.locator) ?? null : null,\n phase: null,\n error: null,\n sharedFailure: null,\n ...(() => {\n const failure = failures.get(`${slot.runId}\\u0000${slot.evalId}\\u0000${slot.attemptOrdinal}`);\n return failure === undefined ? {} : {\n outcome: \"errored\",\n phase: failure.phase,\n error: failure.errorCode,\n sharedFailure: failure.failureId,\n };\n })(),\n })));\n}\nconst runMembershipPage = {\n id: \"run-membership\",\n path: \"/\",\n title: \"Run results\",\n load: loadRunMembershipPageInput,\n render: (input: RunMembershipPageInput) => jsx(RunMembershipResultView, input),\n} satisfies Page<void, RunMembershipPageInput>;\n/** The bounded default for explicit historical Run selectors. */\nexport function runMembershipOverviewReport() {\n return defineBuiltInReport(builtInMachineProducerIds.runMembershipOverview, {\n title: \"Run results\",\n pages: [\n runMembershipPage,\n standardNamedGroupPage,\n standardSingletonGroupPage,\n standardAttemptPage,\n standardExperimentPage,\n ],\n });\n}\n/** The CLI default Report for one or more explicit `--run` selectors. */\nexport const defaultRunMembershipOverviewReport = runMembershipOverviewReport();\nexport default defaultRunMembershipOverviewReport;\n"]}
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
/** The stable explicit-Run membership selector. */
|
|
2
|
+
import type { Sample } from "../../analysis/index.cjs";
|
|
3
|
+
import { type HeroData } from "../components/site-components/index.cjs";
|
|
4
|
+
import { toAttemptEvidence } from "../model/conversions.cjs";
|
|
5
|
+
import { type BuiltInSummaryRows } from "./analysis-values.cjs";
|
|
6
|
+
import { type MembershipRow, type RunErrorRow } from "./result-components.cjs";
|
|
7
|
+
export interface RunMembershipPageInput {
|
|
8
|
+
readonly hero: HeroData;
|
|
9
|
+
readonly summary: BuiltInSummaryRows;
|
|
10
|
+
readonly members: readonly MembershipRow[];
|
|
11
|
+
readonly errors: readonly RunErrorRow[];
|
|
12
|
+
readonly evidence: Awaited<ReturnType<typeof toAttemptEvidence>>;
|
|
13
|
+
}
|
|
14
|
+
/** Closes the data shared by the Human Page and its Host-owned machine producer. */
|
|
15
|
+
export declare function loadRunMembershipPageInput(sample: Sample): Promise<RunMembershipPageInput>;
|
|
2
16
|
/** The bounded default for explicit historical Run selectors. */
|
|
3
17
|
export declare function runMembershipOverviewReport(): import("../definition/report.cjs").ReportDefinition;
|
|
4
18
|
/** The CLI default Report for one or more explicit `--run` selectors. */
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
/** The stable explicit-Run membership selector. */
|
|
2
|
+
import type { Sample } from "../../analysis/index.mjs";
|
|
3
|
+
import { type HeroData } from "../components/site-components/index.mjs";
|
|
4
|
+
import { toAttemptEvidence } from "../model/conversions.mjs";
|
|
5
|
+
import { type BuiltInSummaryRows } from "./analysis-values.mjs";
|
|
6
|
+
import { type MembershipRow, type RunErrorRow } from "./result-components.mjs";
|
|
7
|
+
export interface RunMembershipPageInput {
|
|
8
|
+
readonly hero: HeroData;
|
|
9
|
+
readonly summary: BuiltInSummaryRows;
|
|
10
|
+
readonly members: readonly MembershipRow[];
|
|
11
|
+
readonly errors: readonly RunErrorRow[];
|
|
12
|
+
readonly evidence: Awaited<ReturnType<typeof toAttemptEvidence>>;
|
|
13
|
+
}
|
|
14
|
+
/** Closes the data shared by the Human Page and its Host-owned machine producer. */
|
|
15
|
+
export declare function loadRunMembershipPageInput(sample: Sample): Promise<RunMembershipPageInput>;
|
|
2
16
|
/** The bounded default for explicit historical Run selectors. */
|
|
3
17
|
export declare function runMembershipOverviewReport(): import("../definition/report.mjs").ReportDefinition;
|
|
4
18
|
/** The CLI default Report for one or more explicit `--run` selectors. */
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
/** The stable explicit-Run membership selector. */
|
|
2
|
+
import type { Sample } from "../../analysis/index.js";
|
|
3
|
+
import { type HeroData } from "../components/site-components/index.js";
|
|
4
|
+
import { toAttemptEvidence } from "../model/conversions.js";
|
|
5
|
+
import { type BuiltInSummaryRows } from "./analysis-values.js";
|
|
6
|
+
import { type MembershipRow, type RunErrorRow } from "./result-components.js";
|
|
7
|
+
export interface RunMembershipPageInput {
|
|
8
|
+
readonly hero: HeroData;
|
|
9
|
+
readonly summary: BuiltInSummaryRows;
|
|
10
|
+
readonly members: readonly MembershipRow[];
|
|
11
|
+
readonly errors: readonly RunErrorRow[];
|
|
12
|
+
readonly evidence: Awaited<ReturnType<typeof toAttemptEvidence>>;
|
|
13
|
+
}
|
|
14
|
+
/** Closes the data shared by the Human Page and its Host-owned machine producer. */
|
|
15
|
+
export declare function loadRunMembershipPageInput(sample: Sample): Promise<RunMembershipPageInput>;
|
|
2
16
|
/** The bounded default for explicit historical Run selectors. */
|
|
3
17
|
export declare function runMembershipOverviewReport(): import("../definition/report.js").ReportDefinition;
|
|
4
18
|
/** The CLI default Report for one or more explicit `--run` selectors. */
|
|
@@ -4,6 +4,8 @@ const __niceevalCanonical = __niceevalRequire("./run-membership-overview.cjs");
|
|
|
4
4
|
export default __niceevalCanonical.default;
|
|
5
5
|
const __niceevalExport0 = __niceevalCanonical["defaultRunMembershipOverviewReport"];
|
|
6
6
|
export { __niceevalExport0 as defaultRunMembershipOverviewReport };
|
|
7
|
-
const __niceevalExport1 = __niceevalCanonical["
|
|
8
|
-
export { __niceevalExport1 as
|
|
7
|
+
const __niceevalExport1 = __niceevalCanonical["loadRunMembershipPageInput"];
|
|
8
|
+
export { __niceevalExport1 as loadRunMembershipPageInput };
|
|
9
|
+
const __niceevalExport2 = __niceevalCanonical["runMembershipOverviewReport"];
|
|
10
|
+
export { __niceevalExport2 as runMembershipOverviewReport };
|
|
9
11
|
//# sourceMappingURL=run-membership-overview.js.map
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.standard = exports.standardExperimentPage = exports.standardAttemptPage = exports.
|
|
3
|
+
exports.standard = exports.standardExperimentPage = exports.standardAttemptPage = exports.standardSingletonGroupPage = exports.standardNamedGroupPage = exports.standardOverviewPage = void 0;
|
|
4
4
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const index_ts_1 = require("../../analysis/index.cjs");
|
|
6
|
+
const experiment_groups_ts_1 = require("../../analysis/experiment-groups.cjs");
|
|
5
7
|
const primitives_tsx_1 = require("../definition/primitives.cjs");
|
|
8
|
+
const tree_ts_1 = require("../definition/tree.cjs");
|
|
6
9
|
const index_tsx_1 = require("../components/attempt-detail/index.cjs");
|
|
7
|
-
const index_tsx_2 = require("../components/
|
|
8
|
-
const
|
|
10
|
+
const index_tsx_2 = require("../components/entity-lists/index.cjs");
|
|
11
|
+
const index_tsx_3 = require("../components/site-components/index.cjs");
|
|
12
|
+
const index_tsx_4 = require("../components/summaries/index.cjs");
|
|
9
13
|
const details_ts_1 = require("../library/details.cjs");
|
|
10
14
|
const analysis_values_ts_1 = require("./analysis-values.cjs");
|
|
11
15
|
const result_components_tsx_1 = require("./result-components.cjs");
|
|
@@ -33,50 +37,81 @@ function membershipRows(snapshot, filter = {}) {
|
|
|
33
37
|
locator: slot.state === "included" ? slot.attempt.locator : null,
|
|
34
38
|
})));
|
|
35
39
|
}
|
|
36
|
-
|
|
37
|
-
return
|
|
40
|
+
const StandardExperimentResults = (0, tree_ts_1.defineComponent)(async (props) => {
|
|
41
|
+
return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Col, { children: [(0, jsx_runtime_1.jsx)(primitives_tsx_1.Section, { title: { en: "Experiment comparison", "zh-CN": "实验对比" }, children: (0, jsx_runtime_1.jsx)(index_tsx_4.ExperimentScatter, { comparison: props.comparison }) }), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Section, { title: { en: "Experiments", "zh-CN": "实验" }, children: (0, jsx_runtime_1.jsx)(index_tsx_2.ExperimentTable, { comparison: props.comparison }) })] }));
|
|
42
|
+
});
|
|
43
|
+
const StandardExperimentOverview = (0, tree_ts_1.defineComponent)((props) => {
|
|
44
|
+
const sample = (0, experiment_groups_ts_1.sampleForExperimentComparisonScope)(props.comparison);
|
|
45
|
+
return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Col, { children: [(0, jsx_runtime_1.jsx)(index_tsx_3.Hero, { input: sample }), (0, jsx_runtime_1.jsx)(index_tsx_3.SampleNotices, { input: sample }), (0, jsx_runtime_1.jsx)(index_tsx_4.SampleSummary, { input: sample }), (0, jsx_runtime_1.jsx)(StandardExperimentResults, { comparison: props.comparison })] }));
|
|
46
|
+
});
|
|
47
|
+
function standardOverview(sample) {
|
|
48
|
+
const groups = (0, index_ts_1.experimentGroups)(sample);
|
|
49
|
+
const only = groups.length === 1 ? groups[0] : undefined;
|
|
50
|
+
if (only !== undefined) {
|
|
51
|
+
return (0, jsx_runtime_1.jsx)(StandardExperimentOverview, { comparison: (0, index_ts_1.experimentComparisonScope)(sample, only.group) });
|
|
52
|
+
}
|
|
53
|
+
return ((0, jsx_runtime_1.jsxs)(primitives_tsx_1.Col, { children: [(0, jsx_runtime_1.jsx)(index_tsx_3.Hero, {}), (0, jsx_runtime_1.jsx)(index_tsx_3.SampleNotices, {}), (0, jsx_runtime_1.jsx)(index_tsx_4.SampleSummary, {}), (0, jsx_runtime_1.jsx)(primitives_tsx_1.Section, { title: { en: "Experiments", "zh-CN": "实验" }, children: (0, jsx_runtime_1.jsx)(primitives_tsx_1.Col, { children: groups.map((entry) => ((0, jsx_runtime_1.jsx)(primitives_tsx_1.Link, { target: {
|
|
54
|
+
page: entry.group.kind === "named" ? "group-named" : "group-singleton",
|
|
55
|
+
params: entry.group,
|
|
56
|
+
}, children: entry.group.kind === "named" ? entry.group.groupId : String(entry.group.experimentId) }, entry.group.key))) }) })] }));
|
|
38
57
|
}
|
|
39
|
-
/** The default top-level report Page. */
|
|
58
|
+
/** The default top-level report Page uses the public classic component composition. */
|
|
40
59
|
exports.standardOverviewPage = {
|
|
41
|
-
id: "
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
60
|
+
id: "overview",
|
|
61
|
+
path: "/",
|
|
62
|
+
title: { en: "Overview", "zh-CN": "总览" },
|
|
63
|
+
render: standardOverview,
|
|
64
|
+
};
|
|
65
|
+
const namedGroupParams = Object.freeze({
|
|
66
|
+
encode: (params) => params.groupId,
|
|
67
|
+
decode: (key) => {
|
|
68
|
+
if (!/^[a-z0-9][a-z0-9._~-]*$/u.test(key))
|
|
69
|
+
throw new TypeError("named Experiment Group key is not canonical");
|
|
70
|
+
return Object.freeze({ kind: "named", groupId: key, key: `named/${key}` });
|
|
71
|
+
},
|
|
72
|
+
enumerate: (sample) => (0, index_ts_1.experimentGroups)(sample)
|
|
73
|
+
.filter((entry) => entry.group.kind === "named")
|
|
74
|
+
.map((entry) => entry.group),
|
|
75
|
+
});
|
|
76
|
+
const singletonGroupParams = Object.freeze({
|
|
77
|
+
encode: (params) => String(params.experimentId),
|
|
78
|
+
decode: (key) => {
|
|
79
|
+
if (!/^[a-z0-9][a-z0-9._~-]*$/u.test(key))
|
|
80
|
+
throw new TypeError("singleton Experiment Group key is not canonical");
|
|
48
81
|
return Object.freeze({
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
counts: Object.freeze({
|
|
53
|
-
experiments: experiments.length,
|
|
54
|
-
attempts: includedAttemptCount(sample.snapshot),
|
|
55
|
-
}),
|
|
82
|
+
kind: "singleton",
|
|
83
|
+
experimentId: key,
|
|
84
|
+
key: `singleton/${key}`,
|
|
56
85
|
});
|
|
57
86
|
},
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
};
|
|
87
|
+
enumerate: (sample) => (0, index_ts_1.experimentGroups)(sample)
|
|
88
|
+
.filter((entry) => entry.group.kind === "singleton")
|
|
89
|
+
.map((entry) => entry.group),
|
|
90
|
+
});
|
|
91
|
+
function standardGroupPage(input) {
|
|
92
|
+
return {
|
|
93
|
+
id: input.id,
|
|
94
|
+
path: input.path,
|
|
95
|
+
title: { en: "Experiment group", "zh-CN": "实验组" },
|
|
96
|
+
navigation: false,
|
|
97
|
+
role: { kind: "experiment-group", groupKind: input.groupKind },
|
|
98
|
+
params: input.params,
|
|
99
|
+
load: (sample, params) => (0, index_ts_1.experimentComparisonScope)(sample, params),
|
|
100
|
+
render: (comparison) => ((0, jsx_runtime_1.jsx)(StandardExperimentOverview, { comparison: comparison })),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
exports.standardNamedGroupPage = standardGroupPage({
|
|
104
|
+
id: "group-named",
|
|
105
|
+
path: "/group/named",
|
|
106
|
+
groupKind: "named",
|
|
107
|
+
params: namedGroupParams,
|
|
108
|
+
});
|
|
109
|
+
exports.standardSingletonGroupPage = standardGroupPage({
|
|
110
|
+
id: "group-singleton",
|
|
111
|
+
path: "/group/singleton",
|
|
112
|
+
groupKind: "singleton",
|
|
113
|
+
params: singletonGroupParams,
|
|
114
|
+
});
|
|
80
115
|
/** One standard detail Page for one already-selected Attempt. */
|
|
81
116
|
exports.standardAttemptPage = {
|
|
82
117
|
id: "attempt",
|
|
@@ -122,11 +157,11 @@ exports.standardExperimentPage = {
|
|
|
122
157
|
};
|
|
123
158
|
/** Explicit composition only: standard owns its two detail Pages. */
|
|
124
159
|
exports.standard = (0, machine_ts_1.defineBuiltInReport)(machine_ts_1.builtInMachineProducerIds.standard, {
|
|
125
|
-
title: "NiceEval
|
|
160
|
+
title: "NiceEval overview",
|
|
126
161
|
pages: [
|
|
127
162
|
exports.standardOverviewPage,
|
|
128
|
-
exports.
|
|
129
|
-
exports.
|
|
163
|
+
exports.standardNamedGroupPage,
|
|
164
|
+
exports.standardSingletonGroupPage,
|
|
130
165
|
exports.standardAttemptPage,
|
|
131
166
|
exports.standardExperimentPage,
|
|
132
167
|
],
|
|
@@ -1 +1 @@
|
|
|
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 { ExperimentId, Sample, SampleSnapshot, } from \"../../analysis/index.ts\";\nimport type { Page, PageEvidence, } from \"../definition/report.ts\";\nimport { Col } from \"../definition/primitives.tsx\";\nimport { AttemptDetails } from \"../components/attempt-detail/index.tsx\";\nimport { Hero, type HeroData } from \"../components/site-components/index.tsx\";\nimport { toAttemptObservability } from \"../model/conversions.ts\";\nimport { attemptDetailParams, experimentDetailParams, experimentDetailTarget, } from \"../library/details.ts\";\nimport type { AttemptDetailTarget, ExperimentDetailTarget, } from \"../library/details.ts\";\nimport { loadBuiltInAttemptRows, loadBuiltInExperimentRows, loadBuiltInSummaryRows, type BuiltInAttemptRows, type BuiltInExperimentRows, type BuiltInSummaryRows, } from \"./analysis-values.ts\";\nimport { AttemptTrace, ExperimentDetailResultView, StandardAttemptsResultView, StandardOverviewResultView, type MembershipRow, } from \"./result-components.tsx\";\nimport { builtInMachineProducerIds, defineBuiltInReport, } from \"./machine.ts\";\ninterface StandardOverviewPageInput {\n readonly hero: HeroData;\n readonly summary: BuiltInSummaryRows;\n readonly experiments: BuiltInExperimentRows;\n readonly counts: {\n readonly experiments: number;\n readonly attempts: number;\n };\n}\ninterface StandardAttemptsPageInput {\n readonly hero: HeroData;\n readonly attempts: BuiltInAttemptRows;\n}\ninterface StandardTracesPageInput {\n readonly hero: HeroData;\n readonly observability: Awaited<ReturnType<typeof toAttemptObservability>>;\n}\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}\nfunction includedAttemptCount(snapshot: SampleSnapshot): number {\n return snapshot.slots.filter((slot) => slot.state === \"included\").length;\n}\n/** The default top-level report Page. */\nexport const standardOverviewPage = {\n id: \"report\",\n title: { en: \"Report\", \"zh-CN\": \"报告\" },\n load: async (sample: Sample): Promise<StandardOverviewPageInput> => {\n const [summary, experiments] = await Promise.all([\n loadBuiltInSummaryRows(sample),\n loadBuiltInExperimentRows(sample),\n ]);\n return Object.freeze({\n hero: heroData(sample.snapshot),\n summary,\n experiments,\n counts: Object.freeze({\n experiments: experiments.length,\n attempts: includedAttemptCount(sample.snapshot),\n }),\n });\n },\n render: (input: StandardOverviewPageInput) => <StandardOverviewResultView {...input}/>,\n} satisfies Page<void, StandardOverviewPageInput>;\n/** The standard attempt list does one aggregation and never queries detail views. */\nexport const standardAttemptsPage = {\n id: \"attempts\",\n title: \"Attempts\",\n load: async (sample: Sample): Promise<StandardAttemptsPageInput> => Object.freeze({\n hero: heroData(sample.snapshot),\n attempts: await loadBuiltInAttemptRows(sample),\n }),\n render: (input: StandardAttemptsPageInput) => <StandardAttemptsResultView {...input}/>,\n} satisfies Page<void, StandardAttemptsPageInput>;\n/** Trace navigation reads only the observability DomainView needed by this Page. */\nexport const standardTracesPage = {\n id: \"traces\",\n title: { en: \"Traces\", \"zh-CN\": \"追踪\" },\n load: async (sample: Sample): Promise<StandardTracesPageInput> => Object.freeze({\n hero: heroData(sample.snapshot),\n observability: await toAttemptObservability(sample),\n }),\n render: (input: StandardTracesPageInput) => (<Col>\n <Hero data={input.hero}/>\n <AttemptTrace view={input.observability} mode=\"execution\" timingMode=\"full\"/>\n </Col>),\n} satisfies Page<void, StandardTracesPageInput>;\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 standard report\",\n pages: [\n standardOverviewPage,\n standardAttemptsPage,\n standardTracesPage,\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 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"]}
|
|
@@ -5,30 +5,12 @@
|
|
|
5
5
|
* library page collection, so a consumer's arbitrary custom Report never
|
|
6
6
|
* gains attempt or experiment routes as an implicit side effect.
|
|
7
7
|
*/
|
|
8
|
-
import type { Sample } from "../../analysis/index.cjs";
|
|
9
|
-
import type { PageEvidence } from "../definition/report.cjs";
|
|
8
|
+
import type { ExperimentComparisonScope, ExperimentId, Sample } from "../../analysis/index.cjs";
|
|
9
|
+
import type { PageEvidence, PageParams } from "../definition/report.cjs";
|
|
10
10
|
import { type HeroData } from "../components/site-components/index.cjs";
|
|
11
|
-
import { toAttemptObservability } from "../model/conversions.cjs";
|
|
12
11
|
import type { AttemptDetailTarget, ExperimentDetailTarget } from "../library/details.cjs";
|
|
13
|
-
import { type
|
|
12
|
+
import { type BuiltInExperimentRows } from "./analysis-values.cjs";
|
|
14
13
|
import { type MembershipRow } from "./result-components.cjs";
|
|
15
|
-
interface StandardOverviewPageInput {
|
|
16
|
-
readonly hero: HeroData;
|
|
17
|
-
readonly summary: BuiltInSummaryRows;
|
|
18
|
-
readonly experiments: BuiltInExperimentRows;
|
|
19
|
-
readonly counts: {
|
|
20
|
-
readonly experiments: number;
|
|
21
|
-
readonly attempts: number;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
interface StandardAttemptsPageInput {
|
|
25
|
-
readonly hero: HeroData;
|
|
26
|
-
readonly attempts: BuiltInAttemptRows;
|
|
27
|
-
}
|
|
28
|
-
interface StandardTracesPageInput {
|
|
29
|
-
readonly hero: HeroData;
|
|
30
|
-
readonly observability: Awaited<ReturnType<typeof toAttemptObservability>>;
|
|
31
|
-
}
|
|
32
14
|
interface StandardAttemptPageInput {
|
|
33
15
|
readonly target: AttemptDetailTarget;
|
|
34
16
|
readonly evidence: PageEvidence;
|
|
@@ -39,40 +21,36 @@ interface StandardExperimentPageInput {
|
|
|
39
21
|
readonly rows: BuiltInExperimentRows;
|
|
40
22
|
readonly members: readonly MembershipRow[];
|
|
41
23
|
}
|
|
42
|
-
|
|
24
|
+
declare function standardOverview(sample: Sample): import("react").JSX.Element;
|
|
25
|
+
/** The default top-level report Page uses the public classic component composition. */
|
|
43
26
|
export declare const standardOverviewPage: {
|
|
44
27
|
id: string;
|
|
28
|
+
path: string;
|
|
45
29
|
title: {
|
|
46
30
|
en: string;
|
|
47
31
|
"zh-CN": string;
|
|
48
32
|
};
|
|
49
|
-
|
|
50
|
-
render: (input: StandardOverviewPageInput) => import("react").JSX.Element;
|
|
33
|
+
render: typeof standardOverview;
|
|
51
34
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
load: (sample: Sample) => Promise<StandardAttemptsPageInput>;
|
|
57
|
-
render: (input: StandardAttemptsPageInput) => import("react").JSX.Element;
|
|
35
|
+
type NamedGroupParams = {
|
|
36
|
+
readonly kind: "named";
|
|
37
|
+
readonly groupId: string;
|
|
38
|
+
readonly key: `named/${string}`;
|
|
58
39
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
en: string;
|
|
64
|
-
"zh-CN": string;
|
|
65
|
-
};
|
|
66
|
-
load: (sample: Sample) => Promise<StandardTracesPageInput>;
|
|
67
|
-
render: (input: StandardTracesPageInput) => import("react").JSX.Element;
|
|
40
|
+
type SingletonGroupParams = {
|
|
41
|
+
readonly kind: "singleton";
|
|
42
|
+
readonly experimentId: ExperimentId;
|
|
43
|
+
readonly key: `singleton/${string}`;
|
|
68
44
|
};
|
|
45
|
+
export declare const standardNamedGroupPage: import("../definition/report.cjs").ParameterizedPage<NamedGroupParams, ExperimentComparisonScope>;
|
|
46
|
+
export declare const standardSingletonGroupPage: import("../definition/report.cjs").ParameterizedPage<SingletonGroupParams, ExperimentComparisonScope>;
|
|
69
47
|
/** One standard detail Page for one already-selected Attempt. */
|
|
70
48
|
export declare const standardAttemptPage: {
|
|
71
49
|
id: string;
|
|
72
50
|
path: string;
|
|
73
51
|
title: string;
|
|
74
52
|
navigation: false;
|
|
75
|
-
params:
|
|
53
|
+
params: PageParams<AttemptDetailTarget>;
|
|
76
54
|
load: (_sample: Sample, params: AttemptDetailTarget, context: import("../definition/report.cjs").PageLoadContext) => Promise<StandardAttemptPageInput>;
|
|
77
55
|
render: (input: StandardAttemptPageInput) => import("react").JSX.Element;
|
|
78
56
|
};
|
|
@@ -82,7 +60,7 @@ export declare const standardExperimentPage: {
|
|
|
82
60
|
path: string;
|
|
83
61
|
title: string;
|
|
84
62
|
navigation: false;
|
|
85
|
-
params:
|
|
63
|
+
params: PageParams<ExperimentDetailTarget>;
|
|
86
64
|
load: (sample: Sample, params: ExperimentDetailTarget) => Promise<StandardExperimentPageInput>;
|
|
87
65
|
render: (input: StandardExperimentPageInput) => import("react").JSX.Element;
|
|
88
66
|
};
|
|
@@ -5,30 +5,12 @@
|
|
|
5
5
|
* library page collection, so a consumer's arbitrary custom Report never
|
|
6
6
|
* gains attempt or experiment routes as an implicit side effect.
|
|
7
7
|
*/
|
|
8
|
-
import type { Sample } from "../../analysis/index.mjs";
|
|
9
|
-
import type { PageEvidence } from "../definition/report.mjs";
|
|
8
|
+
import type { ExperimentComparisonScope, ExperimentId, Sample } from "../../analysis/index.mjs";
|
|
9
|
+
import type { PageEvidence, PageParams } from "../definition/report.mjs";
|
|
10
10
|
import { type HeroData } from "../components/site-components/index.mjs";
|
|
11
|
-
import { toAttemptObservability } from "../model/conversions.mjs";
|
|
12
11
|
import type { AttemptDetailTarget, ExperimentDetailTarget } from "../library/details.mjs";
|
|
13
|
-
import { type
|
|
12
|
+
import { type BuiltInExperimentRows } from "./analysis-values.mjs";
|
|
14
13
|
import { type MembershipRow } from "./result-components.mjs";
|
|
15
|
-
interface StandardOverviewPageInput {
|
|
16
|
-
readonly hero: HeroData;
|
|
17
|
-
readonly summary: BuiltInSummaryRows;
|
|
18
|
-
readonly experiments: BuiltInExperimentRows;
|
|
19
|
-
readonly counts: {
|
|
20
|
-
readonly experiments: number;
|
|
21
|
-
readonly attempts: number;
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
interface StandardAttemptsPageInput {
|
|
25
|
-
readonly hero: HeroData;
|
|
26
|
-
readonly attempts: BuiltInAttemptRows;
|
|
27
|
-
}
|
|
28
|
-
interface StandardTracesPageInput {
|
|
29
|
-
readonly hero: HeroData;
|
|
30
|
-
readonly observability: Awaited<ReturnType<typeof toAttemptObservability>>;
|
|
31
|
-
}
|
|
32
14
|
interface StandardAttemptPageInput {
|
|
33
15
|
readonly target: AttemptDetailTarget;
|
|
34
16
|
readonly evidence: PageEvidence;
|
|
@@ -39,40 +21,36 @@ interface StandardExperimentPageInput {
|
|
|
39
21
|
readonly rows: BuiltInExperimentRows;
|
|
40
22
|
readonly members: readonly MembershipRow[];
|
|
41
23
|
}
|
|
42
|
-
|
|
24
|
+
declare function standardOverview(sample: Sample): import("react").JSX.Element;
|
|
25
|
+
/** The default top-level report Page uses the public classic component composition. */
|
|
43
26
|
export declare const standardOverviewPage: {
|
|
44
27
|
id: string;
|
|
28
|
+
path: string;
|
|
45
29
|
title: {
|
|
46
30
|
en: string;
|
|
47
31
|
"zh-CN": string;
|
|
48
32
|
};
|
|
49
|
-
|
|
50
|
-
render: (input: StandardOverviewPageInput) => import("react").JSX.Element;
|
|
33
|
+
render: typeof standardOverview;
|
|
51
34
|
};
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
load: (sample: Sample) => Promise<StandardAttemptsPageInput>;
|
|
57
|
-
render: (input: StandardAttemptsPageInput) => import("react").JSX.Element;
|
|
35
|
+
type NamedGroupParams = {
|
|
36
|
+
readonly kind: "named";
|
|
37
|
+
readonly groupId: string;
|
|
38
|
+
readonly key: `named/${string}`;
|
|
58
39
|
};
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
en: string;
|
|
64
|
-
"zh-CN": string;
|
|
65
|
-
};
|
|
66
|
-
load: (sample: Sample) => Promise<StandardTracesPageInput>;
|
|
67
|
-
render: (input: StandardTracesPageInput) => import("react").JSX.Element;
|
|
40
|
+
type SingletonGroupParams = {
|
|
41
|
+
readonly kind: "singleton";
|
|
42
|
+
readonly experimentId: ExperimentId;
|
|
43
|
+
readonly key: `singleton/${string}`;
|
|
68
44
|
};
|
|
45
|
+
export declare const standardNamedGroupPage: import("../definition/report.mjs").ParameterizedPage<NamedGroupParams, ExperimentComparisonScope>;
|
|
46
|
+
export declare const standardSingletonGroupPage: import("../definition/report.mjs").ParameterizedPage<SingletonGroupParams, ExperimentComparisonScope>;
|
|
69
47
|
/** One standard detail Page for one already-selected Attempt. */
|
|
70
48
|
export declare const standardAttemptPage: {
|
|
71
49
|
id: string;
|
|
72
50
|
path: string;
|
|
73
51
|
title: string;
|
|
74
52
|
navigation: false;
|
|
75
|
-
params:
|
|
53
|
+
params: PageParams<AttemptDetailTarget>;
|
|
76
54
|
load: (_sample: Sample, params: AttemptDetailTarget, context: import("../definition/report.mjs").PageLoadContext) => Promise<StandardAttemptPageInput>;
|
|
77
55
|
render: (input: StandardAttemptPageInput) => import("react").JSX.Element;
|
|
78
56
|
};
|
|
@@ -82,7 +60,7 @@ export declare const standardExperimentPage: {
|
|
|
82
60
|
path: string;
|
|
83
61
|
title: string;
|
|
84
62
|
navigation: false;
|
|
85
|
-
params:
|
|
63
|
+
params: PageParams<ExperimentDetailTarget>;
|
|
86
64
|
load: (sample: Sample, params: ExperimentDetailTarget) => Promise<StandardExperimentPageInput>;
|
|
87
65
|
render: (input: StandardExperimentPageInput) => import("react").JSX.Element;
|
|
88
66
|
};
|