niceeval 0.12.2-canary.31 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INDEX.md +10 -10
- package/README.md +2 -0
- package/README.zh.md +2 -0
- package/bin/niceeval.js +15 -0
- package/dist/agents/claude-code.cjs +9 -1
- package/dist/agents/claude-code.cjs.map +1 -1
- package/dist/agents/post-setup.cjs +0 -2
- package/dist/agents/post-setup.cjs.map +1 -1
- package/dist/agents/provisioner.cjs +2 -13
- package/dist/agents/provisioner.cjs.map +1 -1
- package/dist/agents/provisioner.d.cts +0 -5
- package/dist/agents/provisioner.d.mts +0 -5
- package/dist/agents/provisioner.d.ts +0 -5
- package/dist/agents/provisioner.js +22 -26
- package/dist/agents/sdk-streams.cjs +2 -1
- package/dist/agents/sdk-streams.cjs.map +1 -1
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +2 -10
- package/dist/agents/types.d.mts +2 -10
- package/dist/agents/types.d.ts +2 -10
- package/dist/analysis/api.cjs +689 -0
- package/dist/analysis/api.cjs.map +1 -0
- package/dist/analysis/api.d.cts +126 -0
- package/dist/analysis/api.d.mts +126 -0
- package/dist/analysis/api.d.ts +126 -0
- package/dist/analysis/api.js +24 -0
- package/dist/analysis/api.js.map +1 -0
- package/dist/analysis/bindings.cjs +617 -0
- package/dist/analysis/bindings.cjs.map +1 -0
- package/dist/analysis/bindings.d.cts +8313 -0
- package/dist/analysis/bindings.d.mts +8313 -0
- package/dist/analysis/bindings.d.ts +8313 -0
- package/dist/analysis/bindings.js +22 -0
- package/dist/analysis/bindings.js.map +1 -0
- package/dist/analysis/contracts.cjs +39 -0
- package/dist/analysis/contracts.cjs.map +1 -0
- package/dist/analysis/contracts.d.cts +293 -0
- package/dist/analysis/contracts.d.mts +293 -0
- package/dist/analysis/contracts.d.ts +293 -0
- package/dist/analysis/contracts.js +12 -0
- package/dist/analysis/contracts.js.map +1 -0
- package/dist/analysis/cost-decimal.cjs +177 -0
- package/dist/analysis/cost-decimal.cjs.map +1 -0
- package/dist/analysis/cost-decimal.d.cts +51 -0
- package/dist/analysis/cost-decimal.d.mts +51 -0
- package/dist/analysis/cost-decimal.d.ts +51 -0
- package/dist/analysis/cost-decimal.js +28 -0
- package/dist/analysis/cost-decimal.js.map +1 -0
- package/dist/analysis/cost-projection.cjs +430 -0
- package/dist/analysis/cost-projection.cjs.map +1 -0
- package/dist/analysis/cost-projection.d.cts +37 -0
- package/dist/analysis/cost-projection.d.mts +37 -0
- package/dist/analysis/cost-projection.d.ts +37 -0
- package/dist/analysis/cost-projection.js +10 -0
- package/dist/analysis/cost-projection.js.map +1 -0
- package/dist/analysis/cost.cjs +814 -0
- package/dist/analysis/cost.cjs.map +1 -0
- package/dist/analysis/cost.d.cts +310 -0
- package/dist/analysis/cost.d.mts +310 -0
- package/dist/analysis/cost.d.ts +310 -0
- package/dist/analysis/cost.js +26 -0
- package/dist/analysis/cost.js.map +1 -0
- package/dist/analysis/definitions.cjs +346 -0
- package/dist/analysis/definitions.cjs.map +1 -0
- package/dist/analysis/definitions.d.cts +230 -0
- package/dist/analysis/definitions.d.mts +230 -0
- package/dist/analysis/definitions.d.ts +230 -0
- package/dist/analysis/definitions.js +70 -0
- package/dist/analysis/definitions.js.map +1 -0
- package/dist/analysis/domain-view.cjs +3 -0
- package/dist/analysis/domain-view.cjs.map +1 -0
- package/dist/analysis/domain-view.d.cts +367 -0
- package/dist/analysis/domain-view.d.mts +367 -0
- package/dist/analysis/domain-view.d.ts +367 -0
- package/dist/analysis/domain-view.js +4 -0
- package/dist/analysis/domain-view.js.map +1 -0
- package/dist/analysis/file-changes.cjs +225 -0
- package/dist/analysis/file-changes.cjs.map +1 -0
- package/dist/analysis/file-changes.d.cts +30 -0
- package/dist/analysis/file-changes.d.mts +30 -0
- package/dist/analysis/file-changes.d.ts +30 -0
- package/dist/analysis/file-changes.js +6 -0
- package/dist/analysis/file-changes.js.map +1 -0
- package/dist/analysis/host.cjs +8 -0
- package/dist/analysis/host.cjs.map +1 -0
- package/dist/analysis/host.d.cts +19 -0
- package/dist/analysis/host.d.mts +19 -0
- package/dist/analysis/host.d.ts +19 -0
- package/dist/analysis/host.js +6 -0
- package/dist/analysis/host.js.map +1 -0
- package/dist/analysis/host.mjs +6 -0
- package/dist/analysis/host.mjs.map +1 -0
- package/dist/analysis/index.cjs +45 -8
- package/dist/analysis/index.cjs.map +1 -1
- package/dist/analysis/index.d.cts +10 -2
- package/dist/analysis/index.d.mts +10 -2
- package/dist/analysis/index.d.ts +10 -2
- package/dist/analysis/index.js +70 -6
- package/dist/analysis/index.mjs +70 -6
- package/dist/assertions/api.cjs.map +1 -1
- package/dist/assertions/api.d.cts +1 -1
- package/dist/assertions/api.d.mts +1 -1
- package/dist/assertions/api.d.ts +1 -1
- package/dist/assertions/diff.cjs +2 -2
- package/dist/assertions/diff.cjs.map +1 -1
- package/dist/assertions/diff.d.cts +2 -2
- package/dist/assertions/diff.d.mts +2 -2
- package/dist/assertions/diff.d.ts +2 -2
- package/dist/assertions/judge.cjs +11 -10
- package/dist/assertions/judge.cjs.map +1 -1
- package/dist/assertions/record/attachment.cjs +64 -81
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/record/attachment.d.cts +88 -143
- package/dist/assertions/record/attachment.d.mts +88 -143
- package/dist/assertions/record/attachment.d.ts +88 -143
- package/dist/assertions/record/attachment.js +12 -16
- package/dist/assertions/record/codec.cjs +178 -100
- package/dist/assertions/record/codec.cjs.map +1 -1
- package/dist/assertions/record/codec.d.cts +75 -56
- package/dist/assertions/record/codec.d.mts +75 -56
- package/dist/assertions/record/codec.d.ts +75 -56
- package/dist/assertions/record/codec.js +36 -32
- package/dist/assertions/record/diff.cjs +545 -134
- package/dist/assertions/record/diff.cjs.map +1 -1
- package/dist/assertions/record/diff.d.cts +73 -25
- package/dist/assertions/record/diff.d.mts +73 -25
- package/dist/assertions/record/diff.d.ts +73 -25
- package/dist/assertions/record/diff.js +12 -14
- package/dist/assertions/record/index.js +70 -72
- package/dist/assertions/record/model.cjs.map +1 -1
- package/dist/assertions/record/model.d.cts +62 -70
- package/dist/assertions/record/model.d.mts +62 -70
- package/dist/assertions/record/model.d.ts +62 -70
- package/dist/assertions/record/producer.cjs +5 -2
- package/dist/assertions/record/producer.cjs.map +1 -1
- package/dist/assertions/record/producer.d.cts +18 -18
- package/dist/assertions/record/producer.d.mts +18 -18
- package/dist/assertions/record/producer.d.ts +18 -18
- package/dist/assertions/record/producer.js +2 -2
- package/dist/assertions/runtime.cjs +14 -9
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/assertions/workspace-diff.cjs +18 -4
- package/dist/assertions/workspace-diff.cjs.map +1 -1
- package/dist/assertions/workspace-diff.d.cts +3 -1
- package/dist/assertions/workspace-diff.d.mts +3 -1
- package/dist/assertions/workspace-diff.d.ts +3 -1
- package/dist/assertions/workspace-diff.js +14 -12
- package/dist/attempt-locator-resolution.cjs +33 -38
- package/dist/attempt-locator-resolution.cjs.map +1 -1
- package/dist/attempt-locator-resolution.d.cts +15 -8
- package/dist/attempt-locator-resolution.d.mts +15 -8
- package/dist/attempt-locator-resolution.d.ts +15 -8
- package/dist/cli/record.cjs +16 -89
- package/dist/cli/record.cjs.map +1 -1
- package/dist/cli/record.d.cts +2 -9
- package/dist/cli/record.d.mts +2 -9
- package/dist/cli/record.d.ts +2 -9
- package/dist/cli/record.js +2 -6
- package/dist/cli.cjs +609 -245
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.cts +6 -5
- package/dist/cli.d.mts +6 -5
- package/dist/cli.d.ts +6 -5
- package/dist/context/assert-first.cjs +13 -4
- package/dist/context/assert-first.cjs.map +1 -1
- package/dist/context/assert-first.d.cts +3 -4
- package/dist/context/assert-first.d.mts +3 -4
- package/dist/context/assert-first.d.ts +3 -4
- package/dist/context/send-retry.cjs +18 -21
- package/dist/context/send-retry.cjs.map +1 -1
- package/dist/context/send-retry.d.cts +0 -3
- package/dist/context/send-retry.d.mts +0 -3
- package/dist/context/send-retry.d.ts +0 -3
- package/dist/context/session.cjs +46 -42
- package/dist/context/session.cjs.map +1 -1
- package/dist/context/session.d.cts +4 -6
- package/dist/context/session.d.mts +4 -6
- package/dist/context/session.d.ts +4 -6
- package/dist/coordination/host/index.cjs +10 -0
- package/dist/coordination/host/index.cjs.map +1 -0
- package/dist/coordination/host/index.d.cts +6 -0
- package/dist/coordination/host/index.d.mts +6 -0
- package/dist/coordination/host/index.d.ts +6 -0
- package/dist/coordination/host/index.js +6 -0
- package/dist/coordination/host/index.mjs +6 -0
- package/dist/coordination/host/runtime.cjs +57 -0
- package/dist/coordination/host/runtime.cjs.map +1 -0
- package/dist/coordination/host/runtime.d.cts +13 -0
- package/dist/coordination/host/runtime.d.mts +13 -0
- package/dist/coordination/host/runtime.d.ts +13 -0
- package/dist/coordination/host/runtime.js +8 -0
- package/dist/coordination/host/types.cjs.map +1 -0
- package/dist/coordination/host/types.d.cts +37 -0
- package/dist/coordination/host/types.d.mts +37 -0
- package/dist/coordination/host/types.d.ts +37 -0
- package/dist/coordination/identity.cjs +48 -0
- package/dist/coordination/identity.cjs.map +1 -0
- package/dist/coordination/identity.d.cts +14 -0
- package/dist/coordination/identity.d.mts +14 -0
- package/dist/coordination/identity.d.ts +14 -0
- package/dist/coordination/identity.js +6 -0
- package/dist/coordination/index.cjs +23 -0
- package/dist/coordination/index.cjs.map +1 -0
- package/dist/coordination/index.d.cts +6 -0
- package/dist/coordination/index.d.mts +6 -0
- package/dist/coordination/index.d.ts +6 -0
- package/dist/coordination/index.js +16 -0
- package/dist/coordination/platform/index.cjs +18 -0
- package/dist/coordination/platform/index.cjs.map +1 -0
- package/dist/coordination/platform/index.d.cts +1 -0
- package/dist/coordination/platform/index.d.mts +1 -0
- package/dist/coordination/platform/index.d.ts +1 -0
- package/dist/coordination/platform/index.js +6 -0
- package/dist/coordination/platform/node.cjs +251 -0
- package/dist/coordination/platform/node.cjs.map +1 -0
- package/dist/coordination/platform/node.d.cts +3 -0
- package/dist/coordination/platform/node.d.mts +3 -0
- package/dist/coordination/platform/node.d.ts +3 -0
- package/dist/coordination/platform/node.js +6 -0
- package/dist/coordination/platform/node.js.map +1 -0
- package/dist/coordination/record-leases.cjs +22 -0
- package/dist/coordination/record-leases.cjs.map +1 -0
- package/dist/coordination/record-leases.d.cts +39 -0
- package/dist/coordination/record-leases.d.mts +39 -0
- package/dist/coordination/record-leases.d.ts +39 -0
- package/dist/coordination/record-leases.js +10 -0
- package/dist/coordination/record-leases.js.map +1 -0
- package/dist/eval/experiment-id.cjs +1 -5
- package/dist/eval/experiment-id.cjs.map +1 -1
- package/dist/eval/experiment-id.d.cts +0 -2
- package/dist/eval/experiment-id.d.mts +0 -2
- package/dist/eval/experiment-id.d.ts +0 -2
- package/dist/eval/experiment-id.js +0 -4
- package/dist/eval/record/attachment.cjs +7 -47
- package/dist/eval/record/attachment.cjs.map +1 -1
- package/dist/eval/record/attachment.d.cts +8 -24
- package/dist/eval/record/attachment.d.mts +8 -24
- package/dist/eval/record/attachment.d.ts +8 -24
- package/dist/eval/record/attachment.js +4 -10
- package/dist/eval/record/coherence.cjs +6 -6
- package/dist/eval/record/coherence.cjs.map +1 -1
- package/dist/eval/record/coherence.d.cts +16 -16
- package/dist/eval/record/coherence.d.mts +16 -16
- package/dist/eval/record/coherence.d.ts +16 -16
- package/dist/eval/record/coherence.js +2 -2
- package/dist/eval/record/eligibility.cjs +53 -135
- package/dist/eval/record/eligibility.cjs.map +1 -1
- package/dist/eval/record/eligibility.d.cts +38 -140
- package/dist/eval/record/eligibility.d.mts +38 -140
- package/dist/eval/record/eligibility.d.ts +38 -140
- package/dist/eval/record/eligibility.js +16 -38
- package/dist/eval/record/evaluation-plan.cjs +18 -23
- package/dist/eval/record/evaluation-plan.cjs.map +1 -1
- package/dist/eval/record/evaluation-plan.d.cts +6 -9
- package/dist/eval/record/evaluation-plan.d.mts +6 -9
- package/dist/eval/record/evaluation-plan.d.ts +6 -9
- package/dist/eval/record/evaluation-plan.js +2 -2
- package/dist/eval/record/evaluation-record.cjs +161 -454
- package/dist/eval/record/evaluation-record.cjs.map +1 -1
- package/dist/eval/record/evaluation-record.d.cts +67 -128
- package/dist/eval/record/evaluation-record.d.mts +67 -128
- package/dist/eval/record/evaluation-record.d.ts +67 -128
- package/dist/eval/record/evaluation-record.js +16 -16
- package/dist/eval/record/evaluation.cjs +59 -174
- package/dist/eval/record/evaluation.cjs.map +1 -1
- package/dist/eval/record/evaluation.d.cts +43 -119
- package/dist/eval/record/evaluation.d.mts +43 -119
- package/dist/eval/record/evaluation.d.ts +43 -119
- package/dist/eval/record/evaluation.js +20 -32
- package/dist/eval/record/index.js +144 -238
- package/dist/eval/record/membership-provenance.cjs +58 -191
- package/dist/eval/record/membership-provenance.cjs.map +1 -1
- package/dist/eval/record/membership-provenance.d.cts +83 -659
- package/dist/eval/record/membership-provenance.d.mts +83 -659
- package/dist/eval/record/membership-provenance.d.ts +83 -659
- package/dist/eval/record/membership-provenance.js +34 -54
- package/dist/eval/record/score.cjs +58 -170
- package/dist/eval/record/score.cjs.map +1 -1
- package/dist/eval/record/score.d.cts +36 -104
- package/dist/eval/record/score.d.mts +36 -104
- package/dist/eval/record/score.d.ts +36 -104
- package/dist/eval/record/score.js +22 -40
- package/dist/eval/record/sealed-assertion.cjs +10 -10
- package/dist/eval/record/sealed-assertion.cjs.map +1 -1
- package/dist/eval/record/sealed-assertion.d.cts +12 -12
- package/dist/eval/record/sealed-assertion.d.mts +12 -12
- package/dist/eval/record/sealed-assertion.d.ts +12 -12
- package/dist/eval/record/sealed-assertion.js +10 -10
- package/dist/eval/record/verdict.cjs +42 -64
- package/dist/eval/record/verdict.cjs.map +1 -1
- package/dist/eval/record/verdict.d.cts +35 -48
- package/dist/eval/record/verdict.d.mts +35 -48
- package/dist/eval/record/verdict.d.ts +35 -48
- package/dist/eval/record/verdict.js +16 -32
- package/dist/experiment/host/index.cjs +210 -0
- package/dist/experiment/host/index.cjs.map +1 -0
- package/dist/experiment/host/index.d.cts +125 -0
- package/dist/experiment/host/index.d.mts +125 -0
- package/dist/experiment/host/index.d.ts +125 -0
- package/dist/experiment/host/index.js +6 -0
- package/dist/experiment/host/index.mjs +6 -0
- package/dist/experiment/host/index.mjs.map +1 -0
- package/dist/fresh-import.cjs +33 -119
- package/dist/fresh-import.cjs.map +1 -1
- package/dist/i18n/en.cjs +10 -5
- package/dist/i18n/en.cjs.map +1 -1
- package/dist/i18n/en.d.cts +9 -4
- package/dist/i18n/en.d.mts +9 -4
- package/dist/i18n/en.d.ts +9 -4
- package/dist/index.cjs +1 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +0 -2
- package/dist/index.d.mts +0 -2
- package/dist/index.d.ts +0 -2
- package/dist/index.js +18 -20
- package/dist/index.mjs +18 -20
- package/dist/o11y/cost.cjs +16 -6
- package/dist/o11y/cost.cjs.map +1 -1
- package/dist/o11y/parsers/bub.cjs +16 -4
- package/dist/o11y/parsers/bub.cjs.map +1 -1
- package/dist/o11y/parsers/hermes.cjs +19 -6
- package/dist/o11y/parsers/hermes.cjs.map +1 -1
- package/dist/o11y/parsers/openclaw.cjs +5 -10
- package/dist/o11y/parsers/openclaw.cjs.map +1 -1
- package/dist/o11y/parsers/opencode.cjs +6 -11
- package/dist/o11y/parsers/opencode.cjs.map +1 -1
- package/dist/o11y/prices.json +1335 -557
- package/dist/o11y/record/capture.cjs +38 -38
- package/dist/o11y/record/capture.cjs.map +1 -1
- package/dist/o11y/record/capture.d.cts +25 -25
- package/dist/o11y/record/capture.d.mts +25 -25
- package/dist/o11y/record/capture.d.ts +25 -25
- package/dist/o11y/record/capture.js +26 -26
- package/dist/o11y/record/codec.cjs +139 -140
- package/dist/o11y/record/codec.cjs.map +1 -1
- package/dist/o11y/record/codec.d.cts +262 -266
- package/dist/o11y/record/codec.d.mts +262 -266
- package/dist/o11y/record/codec.d.ts +262 -266
- package/dist/o11y/record/codec.js +58 -60
- package/dist/o11y/record/errors.cjs +20 -20
- package/dist/o11y/record/errors.cjs.map +1 -1
- package/dist/o11y/record/errors.d.cts +18 -18
- package/dist/o11y/record/errors.d.mts +18 -18
- package/dist/o11y/record/errors.d.ts +18 -18
- package/dist/o11y/record/errors.js +20 -20
- package/dist/o11y/record/families.cjs +269 -264
- package/dist/o11y/record/families.cjs.map +1 -1
- package/dist/o11y/record/families.d.cts +1589 -1573
- package/dist/o11y/record/families.d.mts +1589 -1573
- package/dist/o11y/record/families.d.ts +1589 -1573
- package/dist/o11y/record/families.js +64 -64
- package/dist/o11y/record/family-projectors.cjs +31 -58
- package/dist/o11y/record/family-projectors.cjs.map +1 -1
- package/dist/o11y/record/family-projectors.d.cts +2933 -34
- package/dist/o11y/record/family-projectors.d.mts +2933 -34
- package/dist/o11y/record/family-projectors.d.ts +2933 -34
- package/dist/o11y/record/family-projectors.js +10 -4
- package/dist/o11y/record/family-writers.cjs +207 -336
- package/dist/o11y/record/family-writers.cjs.map +1 -1
- package/dist/o11y/record/family-writers.d.cts +637 -5260
- package/dist/o11y/record/family-writers.d.mts +637 -5260
- package/dist/o11y/record/family-writers.d.ts +637 -5260
- package/dist/o11y/record/family-writers.js +14 -56
- package/dist/o11y/record/index.js +446 -484
- package/dist/o11y/record/limits.cjs +45 -45
- package/dist/o11y/record/limits.cjs.map +1 -1
- package/dist/o11y/record/limits.d.cts +32 -32
- package/dist/o11y/record/limits.d.mts +32 -32
- package/dist/o11y/record/limits.d.ts +32 -32
- package/dist/o11y/record/limits.js +64 -64
- package/dist/o11y/record/model.cjs +271 -277
- package/dist/o11y/record/model.cjs.map +1 -1
- package/dist/o11y/record/model.d.cts +160 -186
- package/dist/o11y/record/model.d.mts +160 -186
- package/dist/o11y/record/model.d.ts +160 -186
- package/dist/o11y/record/model.js +154 -154
- package/dist/o11y/record/runner-producer.cjs +649 -520
- package/dist/o11y/record/runner-producer.cjs.map +1 -1
- package/dist/o11y/record/runner-producer.d.cts +39 -25
- package/dist/o11y/record/runner-producer.d.mts +39 -25
- package/dist/o11y/record/runner-producer.d.ts +39 -25
- package/dist/o11y/record/runner-producer.js +26 -22
- package/dist/o11y/record/validation.cjs +75 -75
- package/dist/o11y/record/validation.cjs.map +1 -1
- package/dist/o11y/record/validation.d.cts +35 -35
- package/dist/o11y/record/validation.d.mts +35 -35
- package/dist/o11y/record/validation.d.ts +35 -35
- package/dist/o11y/record/validation.js +24 -24
- package/dist/o11y/types.cjs.map +1 -1
- package/dist/o11y/types.d.cts +7 -5
- package/dist/o11y/types.d.mts +7 -5
- package/dist/o11y/types.d.ts +7 -5
- package/dist/plugin/contracts.cjs.map +1 -1
- package/dist/plugin/contracts.d.cts +0 -3
- package/dist/plugin/contracts.d.mts +0 -3
- package/dist/plugin/contracts.d.ts +0 -3
- package/dist/plugins/record/attachment.cjs +0 -59
- package/dist/plugins/record/attachment.cjs.map +1 -1
- package/dist/plugins/record/attachment.d.cts +6 -14
- package/dist/plugins/record/attachment.d.mts +6 -14
- package/dist/plugins/record/attachment.d.ts +6 -14
- package/dist/plugins/record/attachment.js +0 -16
- package/dist/plugins/record/capability.cjs +0 -255
- package/dist/plugins/record/capability.cjs.map +1 -1
- package/dist/plugins/record/capability.d.cts +1 -93
- package/dist/plugins/record/capability.d.mts +1 -93
- package/dist/plugins/record/capability.d.ts +1 -93
- package/dist/plugins/record/capability.js +0 -22
- package/dist/plugins/record/codec.cjs +0 -241
- package/dist/plugins/record/codec.cjs.map +1 -1
- package/dist/plugins/record/codec.d.cts +2 -28
- package/dist/plugins/record/codec.d.mts +2 -28
- package/dist/plugins/record/codec.d.ts +2 -28
- package/dist/plugins/record/codec.js +0 -44
- package/dist/plugins/record/index.cjs +0 -51
- package/dist/plugins/record/index.cjs.map +1 -1
- package/dist/plugins/record/index.d.cts +5 -9
- package/dist/plugins/record/index.d.mts +5 -9
- package/dist/plugins/record/index.d.ts +5 -9
- package/dist/plugins/record/index.js +0 -90
- package/dist/plugins/record/migration.cjs +0 -30
- package/dist/plugins/record/migration.cjs.map +1 -1
- package/dist/plugins/record/migration.d.cts +3 -20
- package/dist/plugins/record/migration.d.mts +3 -20
- package/dist/plugins/record/migration.d.ts +3 -20
- package/dist/plugins/record/migration.js +0 -2
- package/dist/plugins/record/model.cjs.map +1 -1
- package/dist/plugins/record/model.d.cts +2 -93
- package/dist/plugins/record/model.d.mts +2 -93
- package/dist/plugins/record/model.d.ts +2 -93
- package/dist/plugins/record/provenance.cjs +0 -316
- package/dist/plugins/record/provenance.cjs.map +1 -1
- package/dist/plugins/record/provenance.d.cts +1 -78
- package/dist/plugins/record/provenance.d.mts +1 -78
- package/dist/plugins/record/provenance.d.ts +1 -78
- package/dist/plugins/record/provenance.js +0 -20
- package/dist/record/attachment/blob-policy.cjs +3 -0
- package/dist/record/attachment/blob-policy.cjs.map +1 -0
- package/dist/record/attachment/blob-policy.d.cts +18 -0
- package/dist/record/attachment/blob-policy.d.mts +18 -0
- package/dist/record/attachment/blob-policy.d.ts +18 -0
- package/dist/record/attachment/blob-policy.js +4 -0
- package/dist/record/attachment/blob-policy.js.map +1 -0
- package/dist/record/attachment/blob-ref.cjs +42 -0
- package/dist/record/attachment/blob-ref.cjs.map +1 -0
- package/dist/record/attachment/blob-ref.d.cts +22 -0
- package/dist/record/attachment/blob-ref.d.mts +22 -0
- package/dist/record/attachment/blob-ref.d.ts +22 -0
- package/dist/record/attachment/blob-ref.js +14 -0
- package/dist/record/attachment/blob-ref.js.map +1 -0
- package/dist/record/attachment/errors.cjs +6 -34
- package/dist/record/attachment/errors.cjs.map +1 -1
- package/dist/record/attachment/errors.d.cts +2 -24
- package/dist/record/attachment/errors.d.mts +2 -24
- package/dist/record/attachment/errors.d.ts +2 -24
- package/dist/record/attachment/errors.js +4 -10
- package/dist/record/attachment/index.cjs +2 -8
- package/dist/record/attachment/index.cjs.map +1 -1
- package/dist/record/attachment/index.d.cts +3 -3
- package/dist/record/attachment/index.d.mts +3 -3
- package/dist/record/attachment/index.d.ts +3 -3
- package/dist/record/attachment/index.js +6 -18
- package/dist/record/attachment/internal.cjs +5 -14
- package/dist/record/attachment/internal.cjs.map +1 -1
- package/dist/record/attachment/internal.d.cts +3 -2
- package/dist/record/attachment/internal.d.mts +3 -2
- package/dist/record/attachment/internal.d.ts +3 -2
- package/dist/record/attachment/internal.js +12 -30
- package/dist/record/attachment/runtime.cjs +155 -745
- package/dist/record/attachment/runtime.cjs.map +1 -1
- package/dist/record/attachment/runtime.d.cts +25 -68
- package/dist/record/attachment/runtime.d.mts +25 -68
- package/dist/record/attachment/runtime.d.ts +25 -68
- package/dist/record/attachment/runtime.js +16 -48
- package/dist/record/attachment/types.cjs +3 -26
- package/dist/record/attachment/types.cjs.map +1 -1
- package/dist/record/attachment/types.d.cts +33 -132
- package/dist/record/attachment/types.d.mts +33 -132
- package/dist/record/attachment/types.d.ts +33 -132
- package/dist/record/attachment/types.js +10 -22
- package/dist/record/codec/core.cjs +102 -85
- package/dist/record/codec/core.cjs.map +1 -1
- package/dist/record/codec/core.d.cts +205 -55
- package/dist/record/codec/core.d.mts +205 -55
- package/dist/record/codec/core.d.ts +205 -55
- package/dist/record/codec/core.js +50 -42
- package/dist/record/codec/identifiers.cjs +24 -2
- package/dist/record/codec/identifiers.cjs.map +1 -1
- package/dist/record/codec/identifiers.d.cts +11 -2
- package/dist/record/codec/identifiers.d.mts +11 -2
- package/dist/record/codec/identifiers.d.ts +11 -2
- package/dist/record/codec/identifiers.js +36 -18
- package/dist/record/codec/index.js +86 -60
- package/dist/record/definition/attachment.cjs +108 -0
- package/dist/record/definition/attachment.cjs.map +1 -0
- package/dist/record/definition/attachment.d.cts +77 -0
- package/dist/record/definition/attachment.d.mts +77 -0
- package/dist/record/definition/attachment.d.ts +77 -0
- package/dist/record/definition/attachment.js +8 -0
- package/dist/record/definition/attachment.js.map +1 -0
- package/dist/record/definition/canonical.cjs +271 -0
- package/dist/record/definition/canonical.cjs.map +1 -0
- package/dist/record/definition/canonical.d.cts +38 -0
- package/dist/record/definition/canonical.d.mts +38 -0
- package/dist/record/definition/canonical.d.ts +38 -0
- package/dist/record/definition/canonical.js +10 -0
- package/dist/record/definition/canonical.js.map +1 -0
- package/dist/record/definition/core.cjs +13 -0
- package/dist/record/definition/core.cjs.map +1 -0
- package/dist/record/definition/core.d.cts +10 -0
- package/dist/record/definition/core.d.mts +10 -0
- package/dist/record/definition/core.d.ts +10 -0
- package/dist/record/definition/core.js +6 -0
- package/dist/record/definition/core.js.map +1 -0
- package/dist/record/definition/index.cjs +21 -0
- package/dist/record/definition/index.cjs.map +1 -0
- package/dist/record/definition/index.d.cts +4 -0
- package/dist/record/definition/index.d.mts +4 -0
- package/dist/record/definition/index.d.ts +4 -0
- package/dist/record/definition/index.js +16 -0
- package/dist/record/definition/index.js.map +1 -0
- package/dist/record/definition/schema-codec.cjs +347 -0
- package/dist/record/definition/schema-codec.cjs.map +1 -0
- package/dist/record/definition/schema-codec.d.cts +48 -0
- package/dist/record/definition/schema-codec.d.mts +48 -0
- package/dist/record/definition/schema-codec.d.ts +48 -0
- package/dist/record/definition/schema-codec.js +8 -0
- package/dist/record/definition/schema-codec.js.map +1 -0
- package/dist/record/errors/record-errors.cjs +2 -2
- package/dist/record/errors/record-errors.cjs.map +1 -1
- package/dist/record/errors/record-errors.d.cts +2 -2
- package/dist/record/errors/record-errors.d.mts +2 -2
- package/dist/record/errors/record-errors.d.ts +2 -2
- package/dist/record/family/artifacts.cjs +83 -0
- package/dist/record/family/artifacts.cjs.map +1 -0
- package/dist/record/family/artifacts.d.cts +225 -0
- package/dist/record/family/artifacts.d.mts +225 -0
- package/dist/record/family/artifacts.d.ts +225 -0
- package/dist/record/family/artifacts.js +14 -0
- package/dist/record/family/artifacts.js.map +1 -0
- package/dist/record/family/assertions.cjs +172 -0
- package/dist/record/family/assertions.cjs.map +1 -0
- package/dist/record/family/assertions.d.cts +292 -0
- package/dist/record/family/assertions.d.mts +292 -0
- package/dist/record/family/assertions.d.ts +292 -0
- package/dist/record/family/assertions.js +20 -0
- package/dist/record/family/assertions.js.map +1 -0
- package/dist/record/family/catalog.cjs +91 -0
- package/dist/record/family/catalog.cjs.map +1 -0
- package/dist/record/family/catalog.d.cts +3653 -0
- package/dist/record/family/catalog.d.mts +3653 -0
- package/dist/record/family/catalog.d.ts +3653 -0
- package/dist/record/family/catalog.js +34 -0
- package/dist/record/family/catalog.js.map +1 -0
- package/dist/record/family/common.cjs +80 -0
- package/dist/record/family/common.cjs.map +1 -0
- package/dist/record/family/common.d.cts +44 -0
- package/dist/record/family/common.d.mts +44 -0
- package/dist/record/family/common.d.ts +44 -0
- package/dist/record/family/common.js +28 -0
- package/dist/record/family/common.js.map +1 -0
- package/dist/record/family/file-changes.cjs +278 -0
- package/dist/record/family/file-changes.cjs.map +1 -0
- package/dist/record/family/file-changes.d.cts +643 -0
- package/dist/record/family/file-changes.d.mts +643 -0
- package/dist/record/family/file-changes.d.ts +643 -0
- package/dist/record/family/file-changes.js +32 -0
- package/dist/record/family/file-changes.js.map +1 -0
- package/dist/record/family/index.cjs +24 -0
- package/dist/record/family/index.cjs.map +1 -0
- package/dist/record/family/index.d.cts +7 -0
- package/dist/record/family/index.d.mts +7 -0
- package/dist/record/family/index.d.ts +7 -0
- package/dist/record/family/index.js +148 -0
- package/dist/record/family/index.js.map +1 -0
- package/dist/record/family/observability.cjs +511 -0
- package/dist/record/family/observability.cjs.map +1 -0
- package/dist/record/family/observability.d.cts +2879 -0
- package/dist/record/family/observability.d.mts +2879 -0
- package/dist/record/family/observability.d.ts +2879 -0
- package/dist/record/family/observability.js +30 -0
- package/dist/record/family/observability.js.map +1 -0
- package/dist/record/family/source-navigation.cjs +215 -0
- package/dist/record/family/source-navigation.cjs.map +1 -0
- package/dist/record/family/source-navigation.d.cts +330 -0
- package/dist/record/family/source-navigation.d.mts +330 -0
- package/dist/record/family/source-navigation.d.ts +330 -0
- package/dist/record/family/source-navigation.js +24 -0
- package/dist/record/family/source-navigation.js.map +1 -0
- package/dist/record/family/sources.cjs +82 -0
- package/dist/record/family/sources.cjs.map +1 -0
- package/dist/record/family/sources.d.cts +81 -0
- package/dist/record/family/sources.d.mts +81 -0
- package/dist/record/family/sources.d.ts +81 -0
- package/dist/record/family/sources.js +14 -0
- package/dist/record/family/sources.js.map +1 -0
- package/dist/record/host/index.cjs +11 -0
- package/dist/record/host/index.cjs.map +1 -0
- package/dist/record/host/index.d.cts +7 -0
- package/dist/record/host/index.d.mts +7 -0
- package/dist/record/host/index.d.ts +7 -0
- package/dist/record/host/index.js +6 -0
- package/dist/record/host/index.js.map +1 -0
- package/dist/record/host/index.mjs +6 -0
- package/dist/record/host/index.mjs.map +1 -0
- package/dist/record/host/runtime.cjs +1696 -0
- package/dist/record/host/runtime.cjs.map +1 -0
- package/dist/record/host/runtime.d.cts +2 -0
- package/dist/record/host/runtime.d.mts +2 -0
- package/dist/record/host/runtime.d.ts +2 -0
- package/dist/record/host/runtime.js +6 -0
- package/dist/record/host/types.cjs +9 -0
- package/dist/record/host/types.cjs.map +1 -0
- package/dist/record/host/types.d.cts +259 -0
- package/dist/record/host/types.d.mts +259 -0
- package/dist/record/host/types.d.ts +259 -0
- package/dist/record/host/types.js +14 -0
- package/dist/record/host/types.js.map +1 -0
- package/dist/record/index.cjs +19 -52
- package/dist/record/index.cjs.map +1 -1
- package/dist/record/index.d.cts +14 -11
- package/dist/record/index.d.mts +14 -11
- package/dist/record/index.d.ts +14 -11
- package/dist/record/index.js +16 -310
- package/dist/record/index.mjs +20 -0
- package/dist/record/index.mjs.map +1 -0
- package/dist/record/maintenance/runtime.cjs +9 -11
- package/dist/record/maintenance/runtime.cjs.map +1 -1
- package/dist/record/maintenance/runtime.d.cts +4 -5
- package/dist/record/maintenance/runtime.d.mts +4 -5
- package/dist/record/maintenance/runtime.d.ts +4 -5
- package/dist/record/maintenance/types.cjs.map +1 -1
- package/dist/record/maintenance/types.d.cts +7 -8
- package/dist/record/maintenance/types.d.mts +7 -8
- package/dist/record/maintenance/types.d.ts +7 -8
- package/dist/record/migration/index.cjs +2 -25
- package/dist/record/migration/index.cjs.map +1 -1
- package/dist/record/migration/index.d.cts +11 -8
- package/dist/record/migration/index.d.mts +11 -8
- package/dist/record/migration/index.d.ts +11 -8
- package/dist/record/migration/index.js +2 -44
- package/dist/record/model/core.cjs +1 -4
- package/dist/record/model/core.cjs.map +1 -1
- package/dist/record/model/core.d.cts +59 -39
- package/dist/record/model/core.d.mts +59 -39
- package/dist/record/model/core.d.ts +59 -39
- package/dist/record/model/definition.cjs +147 -0
- package/dist/record/model/definition.cjs.map +1 -0
- package/dist/record/model/definition.d.cts +463 -0
- package/dist/record/model/definition.d.mts +463 -0
- package/dist/record/model/definition.d.ts +463 -0
- package/dist/record/model/definition.js +40 -0
- package/dist/record/model/definition.js.map +1 -0
- package/dist/record/model/identifiers.cjs +52 -10
- package/dist/record/model/identifiers.cjs.map +1 -1
- package/dist/record/model/identifiers.d.cts +44 -3
- package/dist/record/model/identifiers.d.mts +44 -3
- package/dist/record/model/identifiers.d.ts +44 -3
- package/dist/record/model/identifiers.js +62 -36
- package/dist/record/model/index.cjs +1 -0
- package/dist/record/model/index.cjs.map +1 -1
- package/dist/record/model/index.d.cts +1 -0
- package/dist/record/model/index.d.mts +1 -0
- package/dist/record/model/index.d.ts +1 -0
- package/dist/record/model/index.js +86 -48
- package/dist/record/model/read-state.cjs.map +1 -1
- package/dist/record/model/read-state.d.cts +6 -9
- package/dist/record/model/read-state.d.mts +6 -9
- package/dist/record/model/read-state.d.ts +6 -9
- package/dist/record/model/run-context.cjs +80 -0
- package/dist/record/model/run-context.cjs.map +1 -0
- package/dist/record/model/run-context.d.cts +30 -0
- package/dist/record/model/run-context.d.mts +30 -0
- package/dist/record/model/run-context.d.ts +30 -0
- package/dist/record/model/run-context.js +14 -0
- package/dist/record/model/run-context.js.map +1 -0
- package/dist/record/model/validation.cjs +155 -54
- package/dist/record/model/validation.cjs.map +1 -1
- package/dist/record/model/validation.d.cts +16 -11
- package/dist/record/model/validation.d.mts +16 -11
- package/dist/record/model/validation.d.ts +16 -11
- package/dist/record/model/validation.js +10 -8
- package/dist/record/platform/errors.cjs +2 -8
- package/dist/record/platform/errors.cjs.map +1 -1
- package/dist/record/platform/errors.d.cts +3 -13
- package/dist/record/platform/errors.d.mts +3 -13
- package/dist/record/platform/errors.d.ts +3 -13
- package/dist/record/platform/errors.js +0 -2
- package/dist/record/platform/index.js +38 -48
- package/dist/record/platform/node.cjs +3 -142
- package/dist/record/platform/node.cjs.map +1 -1
- package/dist/record/platform/node.d.cts +2 -4
- package/dist/record/platform/node.d.mts +2 -4
- package/dist/record/platform/node.d.ts +2 -4
- package/dist/record/platform/node.js +0 -4
- package/dist/record/platform/root.cjs +0 -11
- package/dist/record/platform/root.cjs.map +1 -1
- package/dist/record/platform/root.d.cts +0 -2
- package/dist/record/platform/root.d.mts +0 -2
- package/dist/record/platform/root.d.ts +0 -2
- package/dist/record/platform/services.cjs +1 -7
- package/dist/record/platform/services.cjs.map +1 -1
- package/dist/record/platform/services.d.cts +2 -29
- package/dist/record/platform/services.d.mts +2 -29
- package/dist/record/platform/services.d.ts +2 -29
- package/dist/record/platform/services.js +2 -6
- package/dist/record/reader/errors.cjs.map +1 -1
- package/dist/record/reader/errors.d.cts +3 -2
- package/dist/record/reader/errors.d.mts +3 -2
- package/dist/record/reader/errors.d.ts +3 -2
- package/dist/record/reader/format.cjs +26 -40
- package/dist/record/reader/format.cjs.map +1 -1
- package/dist/record/reader/format.d.cts +6 -7
- package/dist/record/reader/format.d.mts +6 -7
- package/dist/record/reader/format.d.ts +6 -7
- package/dist/record/reader/index.js +22 -30
- package/dist/record/reader/runtime.cjs +112 -636
- package/dist/record/reader/runtime.cjs.map +1 -1
- package/dist/record/reader/runtime.d.cts +43 -12
- package/dist/record/reader/runtime.d.mts +43 -12
- package/dist/record/reader/runtime.d.ts +43 -12
- package/dist/record/reader/runtime.js +6 -10
- package/dist/record/reader/types.cjs +3 -6
- package/dist/record/reader/types.cjs.map +1 -1
- package/dist/record/reader/types.d.cts +3 -42
- package/dist/record/reader/types.d.mts +3 -42
- package/dist/record/reader/types.d.ts +3 -42
- package/dist/record/reader/types.js +0 -4
- package/dist/record/writer/errors.cjs +7 -0
- package/dist/record/writer/errors.cjs.map +1 -1
- package/dist/record/writer/errors.d.cts +5 -0
- package/dist/record/writer/errors.d.mts +5 -0
- package/dist/record/writer/errors.d.ts +5 -0
- package/dist/record/writer/errors.js +6 -4
- package/dist/record/writer/index.cjs +0 -1
- package/dist/record/writer/index.cjs.map +1 -1
- package/dist/record/writer/index.d.cts +0 -1
- package/dist/record/writer/index.d.mts +0 -1
- package/dist/record/writer/index.d.ts +0 -1
- package/dist/record/writer/index.js +10 -10
- package/dist/record/writer/types.cjs.map +1 -1
- package/dist/record/writer/types.d.cts +12 -17
- package/dist/record/writer/types.d.mts +12 -17
- package/dist/record/writer/types.d.ts +12 -17
- package/dist/report/assets/colors.cjs +70 -0
- package/dist/report/assets/colors.cjs.map +1 -0
- package/dist/report/assets/colors.d.cts +22 -0
- package/dist/report/assets/colors.d.mts +22 -0
- package/dist/report/assets/colors.d.ts +22 -0
- package/dist/report/assets/colors.js +18 -0
- package/dist/report/assets/colors.js.map +1 -0
- package/dist/report/assets/enhance.js +466 -0
- package/dist/report/assets/series-encoding.cjs +116 -0
- package/dist/report/assets/series-encoding.cjs.map +1 -0
- package/dist/report/assets/series-encoding.d.cts +36 -0
- package/dist/report/assets/series-encoding.d.mts +36 -0
- package/dist/report/assets/series-encoding.d.ts +36 -0
- package/dist/report/assets/series-encoding.js +22 -0
- package/dist/report/assets/series-encoding.js.map +1 -0
- package/dist/report/assets/styles.css +2678 -0
- package/dist/report/built-in/analysis-values.cjs +28 -0
- package/dist/report/built-in/analysis-values.cjs.map +1 -0
- package/dist/report/built-in/analysis-values.d.cts +41 -0
- package/dist/report/built-in/analysis-values.d.mts +41 -0
- package/dist/report/built-in/analysis-values.d.ts +41 -0
- package/dist/report/built-in/analysis-values.js +10 -0
- package/dist/report/built-in/analysis-values.js.map +1 -0
- package/dist/report/built-in/attempt-overview.cjs +62 -384
- package/dist/report/built-in/attempt-overview.cjs.map +1 -1
- package/dist/report/built-in/attempt-overview.d.cts +4 -8
- package/dist/report/built-in/attempt-overview.d.mts +4 -8
- package/dist/report/built-in/attempt-overview.d.ts +4 -8
- package/dist/report/built-in/execution.cjs +40 -747
- package/dist/report/built-in/execution.cjs.map +1 -1
- package/dist/report/built-in/execution.d.cts +10 -19
- package/dist/report/built-in/execution.d.mts +10 -19
- package/dist/report/built-in/execution.d.ts +10 -19
- package/dist/report/built-in/index.cjs +15 -28
- package/dist/report/built-in/index.cjs.map +1 -1
- package/dist/report/built-in/index.d.cts +4 -6
- package/dist/report/built-in/index.d.mts +4 -6
- package/dist/report/built-in/index.d.ts +4 -6
- package/dist/report/built-in/index.js +22 -31
- package/dist/report/built-in/index.mjs +22 -31
- package/dist/report/built-in/machine.cjs +41 -0
- package/dist/report/built-in/machine.cjs.map +1 -0
- package/dist/report/built-in/machine.d.cts +29 -0
- package/dist/report/built-in/machine.d.mts +29 -0
- package/dist/report/built-in/machine.d.ts +29 -0
- package/dist/report/built-in/machine.js +8 -0
- package/dist/report/built-in/machine.js.map +1 -0
- package/dist/report/built-in/overview.cjs +38 -200
- package/dist/report/built-in/overview.cjs.map +1 -1
- package/dist/report/built-in/overview.d.cts +5 -5
- package/dist/report/built-in/overview.d.mts +5 -5
- package/dist/report/built-in/overview.d.ts +5 -5
- package/dist/report/built-in/overview.js +0 -2
- package/dist/report/built-in/result-components.cjs +325 -0
- package/dist/report/built-in/result-components.cjs.map +1 -0
- package/dist/report/built-in/result-components.d.cts +94 -0
- package/dist/report/built-in/result-components.d.mts +94 -0
- package/dist/report/built-in/result-components.d.ts +94 -0
- package/dist/report/built-in/result-components.js +24 -0
- package/dist/report/built-in/result-components.js.map +1 -0
- package/dist/report/built-in/run-membership-overview.cjs +48 -184
- package/dist/report/built-in/run-membership-overview.cjs.map +1 -1
- package/dist/report/built-in/run-membership-overview.d.cts +5 -5
- package/dist/report/built-in/run-membership-overview.d.mts +5 -5
- package/dist/report/built-in/run-membership-overview.d.ts +5 -5
- package/dist/report/built-in/sandbox-history.cjs +31 -372
- package/dist/report/built-in/sandbox-history.cjs.map +1 -1
- package/dist/report/built-in/sandbox-history.d.cts +5 -8
- package/dist/report/built-in/sandbox-history.d.mts +5 -8
- package/dist/report/built-in/sandbox-history.d.ts +5 -8
- package/dist/report/built-in/source.cjs +40 -150
- package/dist/report/built-in/source.cjs.map +1 -1
- package/dist/report/built-in/source.d.cts +10 -11
- package/dist/report/built-in/source.d.mts +10 -11
- package/dist/report/built-in/source.d.ts +10 -11
- package/dist/report/built-in/source.js +1 -0
- package/dist/report/built-in/standard.cjs +135 -0
- package/dist/report/built-in/standard.cjs.map +1 -0
- package/dist/report/built-in/standard.d.cts +91 -0
- package/dist/report/built-in/standard.d.mts +91 -0
- package/dist/report/built-in/standard.d.ts +91 -0
- package/dist/report/built-in/standard.js +17 -0
- package/dist/report/built-in/standard.js.map +1 -0
- package/dist/report/components/attempt-detail/compute.cjs +763 -0
- package/dist/report/components/attempt-detail/compute.cjs.map +1 -0
- package/dist/report/components/attempt-detail/compute.d.cts +370 -0
- package/dist/report/components/attempt-detail/compute.d.mts +370 -0
- package/dist/report/components/attempt-detail/compute.d.ts +370 -0
- package/dist/report/components/attempt-detail/compute.js +46 -0
- package/dist/report/components/attempt-detail/compute.js.map +1 -0
- package/dist/report/components/attempt-detail/content.cjs +411 -0
- package/dist/report/components/attempt-detail/content.cjs.map +1 -0
- package/dist/report/components/attempt-detail/content.d.cts +34 -0
- package/dist/report/components/attempt-detail/content.d.mts +34 -0
- package/dist/report/components/attempt-detail/content.d.ts +34 -0
- package/dist/report/components/attempt-detail/content.js +30 -0
- package/dist/report/components/attempt-detail/content.js.map +1 -0
- package/dist/report/components/attempt-detail/index.cjs +314 -0
- package/dist/report/components/attempt-detail/index.cjs.map +1 -0
- package/dist/report/components/attempt-detail/index.d.cts +27 -0
- package/dist/report/components/attempt-detail/index.d.mts +27 -0
- package/dist/report/components/attempt-detail/index.d.ts +27 -0
- package/dist/report/components/attempt-detail/index.js +34 -0
- package/dist/report/components/attempt-detail/index.js.map +1 -0
- package/dist/report/components/attempt-detail/validate.cjs +497 -0
- package/dist/report/components/attempt-detail/validate.cjs.map +1 -0
- package/dist/report/components/attempt-detail/validate.d.cts +14 -0
- package/dist/report/components/attempt-detail/validate.d.mts +14 -0
- package/dist/report/components/attempt-detail/validate.d.ts +14 -0
- package/dist/report/components/attempt-detail/validate.js +30 -0
- package/dist/report/components/attempt-detail/validate.js.map +1 -0
- package/dist/report/components/entity-lists/compute.cjs +426 -0
- package/dist/report/components/entity-lists/compute.cjs.map +1 -0
- package/dist/report/components/entity-lists/compute.d.cts +107 -0
- package/dist/report/components/entity-lists/compute.d.mts +107 -0
- package/dist/report/components/entity-lists/compute.d.ts +107 -0
- package/dist/report/components/entity-lists/compute.js +12 -0
- package/dist/report/components/entity-lists/compute.js.map +1 -0
- package/dist/report/components/entity-lists/content.cjs +275 -0
- package/dist/report/components/entity-lists/content.cjs.map +1 -0
- package/dist/report/components/entity-lists/content.d.cts +4 -0
- package/dist/report/components/entity-lists/content.d.mts +4 -0
- package/dist/report/components/entity-lists/content.d.ts +4 -0
- package/dist/report/components/entity-lists/content.js +8 -0
- package/dist/report/components/entity-lists/content.js.map +1 -0
- package/dist/report/components/entity-lists/index.cjs +48 -0
- package/dist/report/components/entity-lists/index.cjs.map +1 -0
- package/dist/report/components/entity-lists/index.d.cts +39 -0
- package/dist/report/components/entity-lists/index.d.mts +39 -0
- package/dist/report/components/entity-lists/index.d.ts +39 -0
- package/dist/report/components/entity-lists/index.js +22 -0
- package/dist/report/components/entity-lists/index.js.map +1 -0
- package/dist/report/components/experiment-detail/compute.cjs +228 -0
- package/dist/report/components/experiment-detail/compute.cjs.map +1 -0
- package/dist/report/components/experiment-detail/compute.d.cts +72 -0
- package/dist/report/components/experiment-detail/compute.d.mts +72 -0
- package/dist/report/components/experiment-detail/compute.d.ts +72 -0
- package/dist/report/components/experiment-detail/compute.js +6 -0
- package/dist/report/components/experiment-detail/compute.js.map +1 -0
- package/dist/report/components/experiment-detail/index.cjs +84 -0
- package/dist/report/components/experiment-detail/index.cjs.map +1 -0
- package/dist/report/components/experiment-detail/index.d.cts +13 -0
- package/dist/report/components/experiment-detail/index.d.mts +13 -0
- package/dist/report/components/experiment-detail/index.d.ts +13 -0
- package/dist/report/components/experiment-detail/index.js +6 -0
- package/dist/report/components/experiment-detail/index.js.map +1 -0
- package/dist/report/components/site-components/HeroCard.cjs +38 -0
- package/dist/report/components/site-components/HeroCard.cjs.map +1 -0
- package/dist/report/components/site-components/HeroCard.d.cts +14 -0
- package/dist/report/components/site-components/HeroCard.d.mts +14 -0
- package/dist/report/components/site-components/HeroCard.d.ts +14 -0
- package/dist/report/components/site-components/HeroCard.js +6 -0
- package/dist/report/components/site-components/HeroCard.js.map +1 -0
- package/dist/report/components/site-components/PoweredBy.cjs +12 -0
- package/dist/report/components/site-components/PoweredBy.cjs.map +1 -0
- package/dist/report/components/site-components/PoweredBy.d.cts +5 -0
- package/dist/report/components/site-components/PoweredBy.d.mts +5 -0
- package/dist/report/components/site-components/PoweredBy.d.ts +5 -0
- package/dist/report/components/site-components/PoweredBy.js +8 -0
- package/dist/report/components/site-components/PoweredBy.js.map +1 -0
- package/dist/report/components/site-components/compute.cjs +130 -0
- package/dist/report/components/site-components/compute.cjs.map +1 -0
- package/dist/report/components/site-components/compute.d.cts +36 -0
- package/dist/report/components/site-components/compute.d.mts +36 -0
- package/dist/report/components/site-components/compute.d.ts +36 -0
- package/dist/report/components/site-components/compute.js +16 -0
- package/dist/report/components/site-components/compute.js.map +1 -0
- package/dist/report/components/site-components/content.cjs +9 -0
- package/dist/report/components/site-components/content.cjs.map +1 -0
- package/dist/report/components/site-components/content.d.cts +118 -0
- package/dist/report/components/site-components/content.d.mts +118 -0
- package/dist/report/components/site-components/content.d.ts +118 -0
- package/dist/report/components/site-components/content.js +12 -0
- package/dist/report/components/site-components/content.js.map +1 -0
- package/dist/report/components/site-components/faces.cjs +33 -0
- package/dist/report/components/site-components/faces.cjs.map +1 -0
- package/dist/report/components/site-components/faces.d.cts +9 -0
- package/dist/report/components/site-components/faces.d.mts +9 -0
- package/dist/report/components/site-components/faces.d.ts +9 -0
- package/dist/report/components/site-components/faces.js +6 -0
- package/dist/report/components/site-components/faces.js.map +1 -0
- package/dist/report/components/site-components/hero-types.cjs +3 -0
- package/dist/report/components/site-components/hero-types.cjs.map +1 -0
- package/dist/report/components/site-components/hero-types.d.cts +17 -0
- package/dist/report/components/site-components/hero-types.d.mts +17 -0
- package/dist/report/components/site-components/hero-types.d.ts +17 -0
- package/dist/report/components/site-components/hero-types.js +4 -0
- package/dist/report/components/site-components/hero-types.js.map +1 -0
- package/dist/report/components/site-components/index.cjs +90 -0
- package/dist/report/components/site-components/index.cjs.map +1 -0
- package/dist/report/components/site-components/index.d.cts +58 -0
- package/dist/report/components/site-components/index.d.mts +58 -0
- package/dist/report/components/site-components/index.d.ts +58 -0
- package/dist/report/components/site-components/index.js +26 -0
- package/dist/report/components/site-components/index.js.map +1 -0
- package/dist/report/components/site-components/projections.cjs +86 -0
- package/dist/report/components/site-components/projections.cjs.map +1 -0
- package/dist/report/components/site-components/projections.d.cts +11 -0
- package/dist/report/components/site-components/projections.d.mts +11 -0
- package/dist/report/components/site-components/projections.d.ts +11 -0
- package/dist/report/components/site-components/projections.js +12 -0
- package/dist/report/components/site-components/projections.js.map +1 -0
- package/dist/report/components/site-components/scope-warnings.cjs +89 -0
- package/dist/report/components/site-components/scope-warnings.cjs.map +1 -0
- package/dist/report/components/site-components/scope-warnings.d.cts +34 -0
- package/dist/report/components/site-components/scope-warnings.d.mts +34 -0
- package/dist/report/components/site-components/scope-warnings.d.ts +34 -0
- package/dist/report/components/site-components/scope-warnings.js +8 -0
- package/dist/report/components/site-components/scope-warnings.js.map +1 -0
- package/dist/report/components/site-components/snapshot-diagnostics.cjs +43 -0
- package/dist/report/components/site-components/snapshot-diagnostics.cjs.map +1 -0
- package/dist/report/components/site-components/snapshot-diagnostics.d.cts +15 -0
- package/dist/report/components/site-components/snapshot-diagnostics.d.mts +15 -0
- package/dist/report/components/site-components/snapshot-diagnostics.d.ts +15 -0
- package/dist/report/components/site-components/snapshot-diagnostics.js +8 -0
- package/dist/report/components/site-components/snapshot-diagnostics.js.map +1 -0
- package/dist/report/components/site-components/validators.cjs +140 -0
- package/dist/report/components/site-components/validators.cjs.map +1 -0
- package/dist/report/components/site-components/validators.d.cts +9 -0
- package/dist/report/components/site-components/validators.d.mts +9 -0
- package/dist/report/components/site-components/validators.d.ts +9 -0
- package/dist/report/components/site-components/validators.js +16 -0
- package/dist/report/components/site-components/validators.js.map +1 -0
- package/dist/report/components/summaries/compute.cjs +224 -0
- package/dist/report/components/summaries/compute.cjs.map +1 -0
- package/dist/report/components/summaries/compute.d.cts +78 -0
- package/dist/report/components/summaries/compute.d.mts +78 -0
- package/dist/report/components/summaries/compute.d.ts +78 -0
- package/dist/report/components/summaries/compute.js +10 -0
- package/dist/report/components/summaries/compute.js.map +1 -0
- package/dist/report/components/summaries/index.cjs +68 -0
- package/dist/report/components/summaries/index.cjs.map +1 -0
- package/dist/report/components/summaries/index.d.cts +42 -0
- package/dist/report/components/summaries/index.d.mts +42 -0
- package/dist/report/components/summaries/index.d.ts +42 -0
- package/dist/report/components/summaries/index.js +12 -0
- package/dist/report/components/summaries/index.js.map +1 -0
- package/dist/report/components/summaries/stability-overview.cjs +27 -0
- package/dist/report/components/summaries/stability-overview.cjs.map +1 -0
- package/dist/report/components/summaries/stability-overview.d.cts +19 -0
- package/dist/report/components/summaries/stability-overview.d.mts +19 -0
- package/dist/report/components/summaries/stability-overview.d.ts +19 -0
- package/dist/report/components/summaries/stability-overview.js +6 -0
- package/dist/report/components/summaries/stability-overview.js.map +1 -0
- package/dist/report/definition/cell.cjs +90 -0
- package/dist/report/definition/cell.cjs.map +1 -0
- package/dist/report/definition/cell.d.cts +99 -0
- package/dist/report/definition/cell.d.mts +99 -0
- package/dist/report/definition/cell.d.ts +99 -0
- package/dist/report/definition/cell.js +8 -0
- package/dist/report/definition/cell.js.map +1 -0
- package/dist/report/definition/grid-layout.cjs +151 -0
- package/dist/report/definition/grid-layout.cjs.map +1 -0
- package/dist/report/definition/grid-layout.d.cts +77 -0
- package/dist/report/definition/grid-layout.d.mts +77 -0
- package/dist/report/definition/grid-layout.d.ts +77 -0
- package/dist/report/definition/grid-layout.js +20 -0
- package/dist/report/definition/grid-layout.js.map +1 -0
- package/dist/report/definition/primitives/callouts-logic.cjs +113 -0
- package/dist/report/definition/primitives/callouts-logic.cjs.map +1 -0
- package/dist/report/definition/primitives/callouts-logic.d.cts +26 -0
- package/dist/report/definition/primitives/callouts-logic.d.mts +26 -0
- package/dist/report/definition/primitives/callouts-logic.d.ts +26 -0
- package/dist/report/definition/primitives/callouts-logic.js +20 -0
- package/dist/report/definition/primitives/callouts-logic.js.map +1 -0
- package/dist/report/definition/primitives/callouts.cjs +105 -0
- package/dist/report/definition/primitives/callouts.cjs.map +1 -0
- package/dist/report/definition/primitives/callouts.d.cts +9 -0
- package/dist/report/definition/primitives/callouts.d.mts +9 -0
- package/dist/report/definition/primitives/callouts.d.ts +9 -0
- package/dist/report/definition/primitives/callouts.js +6 -0
- package/dist/report/definition/primitives/callouts.js.map +1 -0
- package/dist/report/definition/primitives/chart-map.cjs +138 -0
- package/dist/report/definition/primitives/chart-map.cjs.map +1 -0
- package/dist/report/definition/primitives/chart-map.d.cts +77 -0
- package/dist/report/definition/primitives/chart-map.d.mts +77 -0
- package/dist/report/definition/primitives/chart-map.d.ts +77 -0
- package/dist/report/definition/primitives/chart-map.js +12 -0
- package/dist/report/definition/primitives/chart-map.js.map +1 -0
- package/dist/report/definition/primitives/chart.cjs +651 -0
- package/dist/report/definition/primitives/chart.cjs.map +1 -0
- package/dist/report/definition/primitives/chart.d.cts +43 -0
- package/dist/report/definition/primitives/chart.d.mts +43 -0
- package/dist/report/definition/primitives/chart.d.ts +43 -0
- package/dist/report/definition/primitives/chart.js +8 -0
- package/dist/report/definition/primitives/chart.js.map +1 -0
- package/dist/report/definition/primitives/conversation.cjs +255 -0
- package/dist/report/definition/primitives/conversation.cjs.map +1 -0
- package/dist/report/definition/primitives/conversation.d.cts +71 -0
- package/dist/report/definition/primitives/conversation.d.mts +71 -0
- package/dist/report/definition/primitives/conversation.d.ts +71 -0
- package/dist/report/definition/primitives/conversation.js +16 -0
- package/dist/report/definition/primitives/conversation.js.map +1 -0
- package/dist/report/definition/primitives/copy-block.cjs +55 -0
- package/dist/report/definition/primitives/copy-block.cjs.map +1 -0
- package/dist/report/definition/primitives/copy-block.d.cts +19 -0
- package/dist/report/definition/primitives/copy-block.d.mts +19 -0
- package/dist/report/definition/primitives/copy-block.d.ts +19 -0
- package/dist/report/definition/primitives/copy-block.js +6 -0
- package/dist/report/definition/primitives/copy-block.js.map +1 -0
- package/dist/report/definition/primitives/diff-lines.cjs +163 -0
- package/dist/report/definition/primitives/diff-lines.cjs.map +1 -0
- package/dist/report/definition/primitives/diff-lines.d.cts +68 -0
- package/dist/report/definition/primitives/diff-lines.d.mts +68 -0
- package/dist/report/definition/primitives/diff-lines.d.ts +68 -0
- package/dist/report/definition/primitives/diff-lines.js +28 -0
- package/dist/report/definition/primitives/diff-lines.js.map +1 -0
- package/dist/report/definition/primitives/diff-view.cjs +155 -0
- package/dist/report/definition/primitives/diff-view.cjs.map +1 -0
- package/dist/report/definition/primitives/diff-view.d.cts +14 -0
- package/dist/report/definition/primitives/diff-view.d.mts +14 -0
- package/dist/report/definition/primitives/diff-view.d.ts +14 -0
- package/dist/report/definition/primitives/diff-view.js +8 -0
- package/dist/report/definition/primitives/diff-view.js.map +1 -0
- package/dist/report/definition/primitives/downloads.cjs +89 -0
- package/dist/report/definition/primitives/downloads.cjs.map +1 -0
- package/dist/report/definition/primitives/downloads.d.cts +28 -0
- package/dist/report/definition/primitives/downloads.d.mts +28 -0
- package/dist/report/definition/primitives/downloads.d.ts +28 -0
- package/dist/report/definition/primitives/downloads.js +8 -0
- package/dist/report/definition/primitives/downloads.js.map +1 -0
- package/dist/report/definition/primitives/markdown.cjs +290 -0
- package/dist/report/definition/primitives/markdown.cjs.map +1 -0
- package/dist/report/definition/primitives/markdown.d.cts +29 -0
- package/dist/report/definition/primitives/markdown.d.mts +29 -0
- package/dist/report/definition/primitives/markdown.d.ts +29 -0
- package/dist/report/definition/primitives/markdown.js +16 -0
- package/dist/report/definition/primitives/markdown.js.map +1 -0
- package/dist/report/definition/primitives/marks.cjs +96 -0
- package/dist/report/definition/primitives/marks.cjs.map +1 -0
- package/dist/report/definition/primitives/marks.d.cts +125 -0
- package/dist/report/definition/primitives/marks.d.mts +125 -0
- package/dist/report/definition/primitives/marks.d.ts +125 -0
- package/dist/report/definition/primitives/marks.js +14 -0
- package/dist/report/definition/primitives/marks.js.map +1 -0
- package/dist/report/definition/primitives/points-dataset.cjs +147 -0
- package/dist/report/definition/primitives/points-dataset.cjs.map +1 -0
- package/dist/report/definition/primitives/points-dataset.d.cts +17 -0
- package/dist/report/definition/primitives/points-dataset.d.mts +17 -0
- package/dist/report/definition/primitives/points-dataset.d.ts +17 -0
- package/dist/report/definition/primitives/points-dataset.js +6 -0
- package/dist/report/definition/primitives/points-dataset.js.map +1 -0
- package/dist/report/definition/primitives/shared.cjs +131 -0
- package/dist/report/definition/primitives/shared.cjs.map +1 -0
- package/dist/report/definition/primitives/shared.d.cts +67 -0
- package/dist/report/definition/primitives/shared.d.mts +67 -0
- package/dist/report/definition/primitives/shared.d.ts +67 -0
- package/dist/report/definition/primitives/shared.js +34 -0
- package/dist/report/definition/primitives/shared.js.map +1 -0
- package/dist/report/definition/primitives/source-view.cjs +204 -0
- package/dist/report/definition/primitives/source-view.cjs.map +1 -0
- package/dist/report/definition/primitives/source-view.d.cts +47 -0
- package/dist/report/definition/primitives/source-view.d.mts +47 -0
- package/dist/report/definition/primitives/source-view.d.ts +47 -0
- package/dist/report/definition/primitives/source-view.js +8 -0
- package/dist/report/definition/primitives/source-view.js.map +1 -0
- package/dist/report/definition/primitives/text-panel-state.cjs +38 -0
- package/dist/report/definition/primitives/text-panel-state.cjs.map +1 -0
- package/dist/report/definition/primitives/text-panel-state.d.cts +9 -0
- package/dist/report/definition/primitives/text-panel-state.d.mts +9 -0
- package/dist/report/definition/primitives/text-panel-state.d.ts +9 -0
- package/dist/report/definition/primitives/text-panel-state.js +12 -0
- package/dist/report/definition/primitives/text-panel-state.js.map +1 -0
- package/dist/report/definition/primitives/tool-evidence.cjs +95 -0
- package/dist/report/definition/primitives/tool-evidence.cjs.map +1 -0
- package/dist/report/definition/primitives/tool-evidence.d.cts +11 -0
- package/dist/report/definition/primitives/tool-evidence.d.mts +11 -0
- package/dist/report/definition/primitives/tool-evidence.d.ts +11 -0
- package/dist/report/definition/primitives/tool-evidence.js +6 -0
- package/dist/report/definition/primitives/tool-evidence.js.map +1 -0
- package/dist/report/definition/primitives/turn-trace.cjs +205 -0
- package/dist/report/definition/primitives/turn-trace.cjs.map +1 -0
- package/dist/report/definition/primitives/turn-trace.d.cts +8 -0
- package/dist/report/definition/primitives/turn-trace.d.mts +8 -0
- package/dist/report/definition/primitives/turn-trace.d.ts +8 -0
- package/dist/report/definition/primitives/turn-trace.js +6 -0
- package/dist/report/definition/primitives/turn-trace.js.map +1 -0
- package/dist/report/definition/primitives/waterfall.cjs +206 -0
- package/dist/report/definition/primitives/waterfall.cjs.map +1 -0
- package/dist/report/definition/primitives/waterfall.d.cts +34 -0
- package/dist/report/definition/primitives/waterfall.d.mts +34 -0
- package/dist/report/definition/primitives/waterfall.d.ts +34 -0
- package/dist/report/definition/primitives/waterfall.js +8 -0
- package/dist/report/definition/primitives/waterfall.js.map +1 -0
- package/dist/report/definition/primitives.cjs +826 -0
- package/dist/report/definition/primitives.cjs.map +1 -0
- package/dist/report/definition/primitives.d.cts +194 -0
- package/dist/report/definition/primitives.d.mts +194 -0
- package/dist/report/definition/primitives.d.ts +194 -0
- package/dist/report/definition/primitives.js +84 -0
- package/dist/report/definition/primitives.js.map +1 -0
- package/dist/report/definition/report.cjs +778 -0
- package/dist/report/definition/report.cjs.map +1 -0
- package/dist/report/definition/report.d.cts +203 -0
- package/dist/report/definition/report.d.mts +203 -0
- package/dist/report/definition/report.d.ts +203 -0
- package/dist/report/definition/report.js +16 -0
- package/dist/report/definition/report.js.map +1 -0
- package/dist/report/definition/table-text.cjs +184 -0
- package/dist/report/definition/table-text.cjs.map +1 -0
- package/dist/report/definition/table-text.d.cts +14 -0
- package/dist/report/definition/table-text.d.mts +14 -0
- package/dist/report/definition/table-text.d.ts +14 -0
- package/dist/report/definition/table-text.js +6 -0
- package/dist/report/definition/table-text.js.map +1 -0
- package/dist/report/definition/tree.cjs +685 -0
- package/dist/report/definition/tree.cjs.map +1 -0
- package/dist/report/definition/tree.d.cts +165 -0
- package/dist/report/definition/tree.d.mts +165 -0
- package/dist/report/definition/tree.d.ts +165 -0
- package/dist/report/definition/tree.js +44 -0
- package/dist/report/definition/tree.js.map +1 -0
- package/dist/report/execution/machine.cjs +587 -0
- package/dist/report/execution/machine.cjs.map +1 -0
- package/dist/report/execution/machine.d.cts +291 -0
- package/dist/report/execution/machine.d.mts +291 -0
- package/dist/report/execution/machine.d.ts +291 -0
- package/dist/report/execution/machine.js +36 -0
- package/dist/report/execution/machine.js.map +1 -0
- package/dist/report/execution/model.cjs +91 -463
- package/dist/report/execution/model.cjs.map +1 -1
- package/dist/report/execution/model.d.cts +57 -39
- package/dist/report/execution/model.d.mts +57 -39
- package/dist/report/execution/model.d.ts +57 -39
- package/dist/report/execution/model.js +36 -12
- package/dist/report/execution/paths.cjs +182 -0
- package/dist/report/execution/paths.cjs.map +1 -0
- package/dist/report/execution/paths.d.cts +27 -0
- package/dist/report/execution/paths.d.mts +27 -0
- package/dist/report/execution/paths.d.ts +27 -0
- package/dist/report/execution/paths.js +20 -0
- package/dist/report/execution/paths.js.map +1 -0
- package/dist/report/extension/assets.cjs +143 -0
- package/dist/report/extension/assets.cjs.map +1 -0
- package/dist/report/extension/assets.d.cts +17 -0
- package/dist/report/extension/assets.d.mts +17 -0
- package/dist/report/extension/assets.d.ts +17 -0
- package/dist/report/extension/assets.js +10 -0
- package/dist/report/extension/assets.js.map +1 -0
- package/dist/report/extension/define.cjs +119 -0
- package/dist/report/extension/define.cjs.map +1 -0
- package/dist/report/extension/define.d.cts +11 -0
- package/dist/report/extension/define.d.mts +11 -0
- package/dist/report/extension/define.d.ts +11 -0
- package/dist/report/extension/define.js +6 -0
- package/dist/report/extension/define.js.map +1 -0
- package/dist/report/extension/index.cjs +10 -0
- package/dist/report/extension/index.cjs.map +1 -0
- package/dist/report/extension/index.d.cts +6 -0
- package/dist/report/extension/index.d.mts +6 -0
- package/dist/report/extension/index.d.ts +6 -0
- package/dist/report/extension/index.js +10 -0
- package/dist/report/extension/index.js.map +1 -0
- package/dist/report/extension/index.mjs +10 -0
- package/dist/report/extension/index.mjs.map +1 -0
- package/dist/report/extension/meta.cjs +59 -0
- package/dist/report/extension/meta.cjs.map +1 -0
- package/dist/report/extension/meta.d.cts +13 -0
- package/dist/report/extension/meta.d.mts +13 -0
- package/dist/report/extension/meta.d.ts +13 -0
- package/dist/report/extension/meta.js +12 -0
- package/dist/report/extension/meta.js.map +1 -0
- package/dist/report/extension/types.cjs +3 -0
- package/dist/report/extension/types.cjs.map +1 -0
- package/dist/report/extension/types.d.cts +44 -0
- package/dist/report/extension/types.d.mts +44 -0
- package/dist/report/extension/types.d.ts +44 -0
- package/dist/report/extension/types.js +4 -0
- package/dist/report/extension/types.js.map +1 -0
- package/dist/report/host/execute.cjs +457 -1238
- package/dist/report/host/execute.cjs.map +1 -1
- package/dist/report/host/execute.d.cts +66 -19
- package/dist/report/host/execute.d.mts +66 -19
- package/dist/report/host/execute.d.ts +66 -19
- package/dist/report/host/execute.js +10 -2
- package/dist/report/host/from-record.cjs +441 -27
- package/dist/report/host/from-record.cjs.map +1 -1
- package/dist/report/host/from-record.d.cts +62 -30
- package/dist/report/host/from-record.d.mts +62 -30
- package/dist/report/host/from-record.d.ts +62 -30
- package/dist/report/host/from-record.js +8 -4
- package/dist/report/host/index.cjs +31 -18
- package/dist/report/host/index.cjs.map +1 -1
- package/dist/report/host/index.d.cts +20 -11
- package/dist/report/host/index.d.mts +20 -11
- package/dist/report/host/index.d.ts +20 -11
- package/dist/report/host/index.js +2 -20
- package/dist/report/host/index.mjs +6 -0
- package/dist/report/host/index.mjs.map +1 -0
- package/dist/report/host/machine.cjs +102 -0
- package/dist/report/host/machine.cjs.map +1 -0
- package/dist/report/host/machine.d.cts +7 -0
- package/dist/report/host/machine.d.mts +7 -0
- package/dist/report/host/machine.d.ts +7 -0
- package/dist/report/host/machine.js +6 -0
- package/dist/report/host/machine.js.map +1 -0
- package/dist/report/host/node/loader.cjs +40 -19
- package/dist/report/host/node/loader.cjs.map +1 -1
- package/dist/report/host/node/loader.d.cts +8 -7
- package/dist/report/host/node/loader.d.mts +8 -7
- package/dist/report/host/node/loader.d.ts +8 -7
- package/dist/report/host/node.cjs +1 -1
- package/dist/report/host/node.cjs.map +1 -1
- package/dist/report/host/node.d.cts +3 -3
- package/dist/report/host/node.d.mts +3 -3
- package/dist/report/host/node.d.ts +3 -3
- package/dist/report/host/progress.cjs +41 -0
- package/dist/report/host/progress.cjs.map +1 -0
- package/dist/report/host/progress.d.cts +22 -0
- package/dist/report/host/progress.d.mts +22 -0
- package/dist/report/host/progress.d.ts +22 -0
- package/dist/report/host/progress.js +8 -0
- package/dist/report/host/progress.js.map +1 -0
- package/dist/report/host/show-target.cjs +214 -0
- package/dist/report/host/show-target.cjs.map +1 -0
- package/dist/report/host/show-target.d.cts +107 -0
- package/dist/report/host/show-target.d.mts +107 -0
- package/dist/report/host/show-target.d.ts +107 -0
- package/dist/report/host/show-target.js +8 -0
- package/dist/report/host/show-target.js.map +1 -0
- package/dist/report/host/site-assets.cjs +11 -0
- package/dist/report/host/site-assets.cjs.map +1 -0
- package/dist/report/host/site-assets.d.cts +7 -0
- package/dist/report/host/site-assets.d.mts +7 -0
- package/dist/report/host/site-assets.d.ts +7 -0
- package/dist/report/host/site-assets.js +8 -0
- package/dist/report/host/site-assets.js.map +1 -0
- package/dist/report/host/site-runtime.cjs +91 -0
- package/dist/report/host/site-runtime.cjs.map +1 -0
- package/dist/report/host/site-runtime.d.cts +9 -0
- package/dist/report/host/site-runtime.d.mts +9 -0
- package/dist/report/host/site-runtime.d.ts +9 -0
- package/dist/report/host/site-runtime.js +10 -0
- package/dist/report/host/site-runtime.js.map +1 -0
- package/dist/report/host/static.cjs +694 -99
- package/dist/report/host/static.cjs.map +1 -1
- package/dist/report/host/static.d.cts +36 -19
- package/dist/report/host/static.d.mts +36 -19
- package/dist/report/host/static.d.ts +36 -19
- package/dist/report/host/static.js +14 -4
- package/dist/report/host/target-route.cjs +58 -0
- package/dist/report/host/target-route.cjs.map +1 -0
- package/dist/report/host/target-route.d.cts +15 -0
- package/dist/report/host/target-route.d.mts +15 -0
- package/dist/report/host/target-route.d.ts +15 -0
- package/dist/report/host/target-route.js +8 -0
- package/dist/report/host/target-route.js.map +1 -0
- package/dist/report/host/view-session.cjs +68 -51
- package/dist/report/host/view-session.cjs.map +1 -1
- package/dist/report/host/view-session.d.cts +38 -44
- package/dist/report/host/view-session.d.mts +38 -44
- package/dist/report/host/view-session.d.ts +38 -44
- package/dist/report/index.cjs +111 -52
- package/dist/report/index.cjs.map +1 -1
- package/dist/report/index.d.cts +39 -11
- package/dist/report/index.d.mts +39 -11
- package/dist/report/index.d.ts +39 -11
- package/dist/report/index.js +188 -116
- package/dist/report/index.mjs +188 -116
- package/dist/report/library/details.cjs +166 -0
- package/dist/report/library/details.cjs.map +1 -0
- package/dist/report/library/details.d.cts +29 -0
- package/dist/report/library/details.d.mts +29 -0
- package/dist/report/library/details.d.ts +29 -0
- package/dist/report/library/details.js +18 -0
- package/dist/report/library/details.js.map +1 -0
- package/dist/report/model/aggregate.cjs +243 -0
- package/dist/report/model/aggregate.cjs.map +1 -0
- package/dist/report/model/aggregate.d.cts +88 -0
- package/dist/report/model/aggregate.d.mts +88 -0
- package/dist/report/model/aggregate.d.ts +88 -0
- package/dist/report/model/aggregate.js +26 -0
- package/dist/report/model/aggregate.js.map +1 -0
- package/dist/report/model/chart/math.cjs +206 -0
- package/dist/report/model/chart/math.cjs.map +1 -0
- package/dist/report/model/chart/math.d.cts +73 -0
- package/dist/report/model/chart/math.d.mts +73 -0
- package/dist/report/model/chart/math.d.ts +73 -0
- package/dist/report/model/chart/math.js +14 -0
- package/dist/report/model/chart/math.js.map +1 -0
- package/dist/report/model/chart/plot.cjs +94 -0
- package/dist/report/model/chart/plot.cjs.map +1 -0
- package/dist/report/model/chart/plot.d.cts +52 -0
- package/dist/report/model/chart/plot.d.mts +52 -0
- package/dist/report/model/chart/plot.d.ts +52 -0
- package/dist/report/model/chart/plot.js +8 -0
- package/dist/report/model/chart/plot.js.map +1 -0
- package/dist/report/model/conversions.cjs +100 -0
- package/dist/report/model/conversions.cjs.map +1 -0
- package/dist/report/model/conversions.d.cts +40 -0
- package/dist/report/model/conversions.d.mts +40 -0
- package/dist/report/model/conversions.d.ts +40 -0
- package/dist/report/model/conversions.js +24 -0
- package/dist/report/model/conversions.js.map +1 -0
- package/dist/report/model/dataset.cjs +255 -0
- package/dist/report/model/dataset.cjs.map +1 -0
- package/dist/report/model/dataset.d.cts +33 -0
- package/dist/report/model/dataset.d.mts +33 -0
- package/dist/report/model/dataset.d.ts +33 -0
- package/dist/report/model/dataset.js +22 -0
- package/dist/report/model/dataset.js.map +1 -0
- package/dist/report/model/format.cjs +377 -0
- package/dist/report/model/format.cjs.map +1 -0
- package/dist/report/model/format.d.cts +98 -0
- package/dist/report/model/format.d.mts +98 -0
- package/dist/report/model/format.d.ts +98 -0
- package/dist/report/model/format.js +38 -0
- package/dist/report/model/format.js.map +1 -0
- package/dist/report/model/locale.cjs +437 -0
- package/dist/report/model/locale.cjs.map +1 -0
- package/dist/report/model/locale.d.cts +220 -0
- package/dist/report/model/locale.d.mts +220 -0
- package/dist/report/model/locale.d.ts +220 -0
- package/dist/report/model/locale.js +20 -0
- package/dist/report/model/locale.js.map +1 -0
- package/dist/report/model/metrics.cjs +254 -0
- package/dist/report/model/metrics.cjs.map +1 -0
- package/dist/report/model/metrics.d.cts +73 -0
- package/dist/report/model/metrics.d.mts +73 -0
- package/dist/report/model/metrics.d.ts +73 -0
- package/dist/report/model/metrics.js +26 -0
- package/dist/report/model/metrics.js.map +1 -0
- package/dist/report/model/pricing.cjs +126 -0
- package/dist/report/model/pricing.cjs.map +1 -0
- package/dist/report/model/pricing.d.cts +37 -0
- package/dist/report/model/pricing.d.mts +37 -0
- package/dist/report/model/pricing.d.ts +37 -0
- package/dist/report/model/pricing.js +16 -0
- package/dist/report/model/pricing.js.map +1 -0
- package/dist/report/model/text-layout.cjs +8 -0
- package/dist/report/model/text-layout.cjs.map +1 -1
- package/dist/report/model/text-layout.d.cts +7 -0
- package/dist/report/model/text-layout.d.mts +7 -0
- package/dist/report/model/text-layout.d.ts +7 -0
- package/dist/report/model/text-layout.js +30 -18
- package/dist/report/model/types.cjs +3 -0
- package/dist/report/model/types.cjs.map +1 -0
- package/dist/report/model/types.d.cts +64 -0
- package/dist/report/model/types.d.mts +64 -0
- package/dist/report/model/types.d.ts +64 -0
- package/dist/report/model/types.js +4 -0
- package/dist/report/model/types.js.map +1 -0
- package/dist/report/presentation.cjs +219 -0
- package/dist/report/presentation.cjs.map +1 -0
- package/dist/report/presentation.d.cts +114 -0
- package/dist/report/presentation.d.mts +114 -0
- package/dist/report/presentation.d.ts +114 -0
- package/dist/report/presentation.js +18 -0
- package/dist/report/react/enhance.js +466 -0
- package/dist/report/react/index.cjs +40 -0
- package/dist/report/react/index.cjs.map +1 -0
- package/dist/report/react/index.d.cts +9 -0
- package/dist/report/react/index.d.mts +9 -0
- package/dist/report/react/index.d.ts +9 -0
- package/dist/report/react/index.js +64 -0
- package/dist/report/react/index.js.map +1 -0
- package/dist/report/react/index.mjs +64 -0
- package/dist/report/react/index.mjs.map +1 -0
- package/dist/report/react/styles.css +2678 -0
- package/dist/report/runtime/resolved-page.cjs +317 -0
- package/dist/report/runtime/resolved-page.cjs.map +1 -0
- package/dist/report/runtime/resolved-page.d.cts +133 -0
- package/dist/report/runtime/resolved-page.d.mts +133 -0
- package/dist/report/runtime/resolved-page.d.ts +133 -0
- package/dist/report/runtime/resolved-page.js +14 -0
- package/dist/report/runtime/resolved-page.js.map +1 -0
- package/dist/report/runtime/text.cjs +32 -0
- package/dist/report/runtime/text.cjs.map +1 -0
- package/dist/report/runtime/text.d.cts +24 -0
- package/dist/report/runtime/text.d.mts +24 -0
- package/dist/report/runtime/text.d.ts +24 -0
- package/dist/report/runtime/text.js +8 -0
- package/dist/report/runtime/text.js.map +1 -0
- package/dist/report/runtime/web.cjs +31 -0
- package/dist/report/runtime/web.cjs.map +1 -0
- package/dist/report/runtime/web.d.cts +21 -0
- package/dist/report/runtime/web.d.mts +21 -0
- package/dist/report/runtime/web.d.ts +21 -0
- package/dist/report/runtime/web.js +8 -0
- package/dist/report/runtime/web.js.map +1 -0
- package/dist/report/theme.cjs +141 -0
- package/dist/report/theme.cjs.map +1 -0
- package/dist/report/theme.d.cts +57 -0
- package/dist/report/theme.d.mts +57 -0
- package/dist/report/theme.d.ts +57 -0
- package/dist/report/theme.js +20 -0
- package/dist/runner/accept.cjs +74 -87
- package/dist/runner/accept.cjs.map +1 -1
- package/dist/runner/accept.d.cts +14 -17
- package/dist/runner/accept.d.mts +14 -17
- package/dist/runner/accept.d.ts +14 -17
- package/dist/runner/accept.js +4 -8
- package/dist/runner/adoption.cjs +346 -408
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/adoption.d.cts +132 -116
- package/dist/runner/adoption.d.mts +132 -116
- package/dist/runner/adoption.d.ts +132 -116
- package/dist/runner/adoption.js +42 -46
- package/dist/runner/attempt.cjs +175 -74
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/runner/attempt.d.cts +1 -1
- package/dist/runner/attempt.d.mts +1 -1
- package/dist/runner/attempt.d.ts +1 -1
- package/dist/runner/cleanup-timeout.cjs +12 -6
- package/dist/runner/cleanup-timeout.cjs.map +1 -1
- package/dist/runner/cleanup-timeout.d.cts +5 -5
- package/dist/runner/cleanup-timeout.d.mts +5 -5
- package/dist/runner/cleanup-timeout.d.ts +5 -5
- package/dist/runner/execution-identity.cjs +25 -0
- package/dist/runner/execution-identity.cjs.map +1 -0
- package/dist/runner/execution-identity.d.cts +39 -0
- package/dist/runner/execution-identity.d.mts +39 -0
- package/dist/runner/execution-identity.d.ts +39 -0
- package/dist/runner/execution-identity.js +8 -0
- package/dist/runner/execution-identity.js.map +1 -0
- package/dist/runner/feedback/failure.cjs +0 -2
- package/dist/runner/feedback/failure.cjs.map +1 -1
- package/dist/runner/feedback/human.cjs +47 -20
- package/dist/runner/feedback/human.cjs.map +1 -1
- package/dist/runner/feedback/index.cjs.map +1 -1
- package/dist/runner/feedback/index.d.cts +1 -1
- package/dist/runner/feedback/index.d.mts +1 -1
- package/dist/runner/feedback/index.d.ts +1 -1
- package/dist/runner/feedback/json.cjs +29 -7
- package/dist/runner/feedback/json.cjs.map +1 -1
- package/dist/runner/feedback/json.d.cts +14 -1
- package/dist/runner/feedback/json.d.mts +14 -1
- package/dist/runner/feedback/json.d.ts +14 -1
- package/dist/runner/feedback/reducer.cjs +3 -1
- package/dist/runner/feedback/reducer.cjs.map +1 -1
- package/dist/runner/feedback/sink.cjs +1 -1
- package/dist/runner/feedback/sink.cjs.map +1 -1
- package/dist/runner/feedback/sink.d.cts +6 -6
- package/dist/runner/feedback/sink.d.mts +6 -6
- package/dist/runner/feedback/sink.d.ts +6 -6
- package/dist/runner/fingerprint.cjs +8 -2
- package/dist/runner/fingerprint.cjs.map +1 -1
- package/dist/runner/fingerprint.d.cts +9 -0
- package/dist/runner/fingerprint.d.mts +9 -0
- package/dist/runner/fingerprint.d.ts +9 -0
- package/dist/runner/fingerprint.js +4 -2
- package/dist/runner/gate-lease.cjs +24 -12
- package/dist/runner/gate-lease.cjs.map +1 -1
- package/dist/runner/ledger.cjs +27 -5
- package/dist/runner/ledger.cjs.map +1 -1
- package/dist/runner/lock.cjs +24 -11
- package/dist/runner/lock.cjs.map +1 -1
- package/dist/runner/project-current.cjs +63 -0
- package/dist/runner/project-current.cjs.map +1 -1
- package/dist/runner/project-current.d.cts +2 -0
- package/dist/runner/project-current.d.mts +2 -0
- package/dist/runner/project-current.d.ts +2 -0
- package/dist/runner/record.cjs +659 -667
- package/dist/runner/record.cjs.map +1 -1
- package/dist/runner/record.d.cts +54 -81
- package/dist/runner/record.d.mts +54 -81
- package/dist/runner/record.d.ts +54 -81
- package/dist/runner/rename-experiment.cjs +95 -54
- package/dist/runner/rename-experiment.cjs.map +1 -1
- package/dist/runner/rename-experiment.d.cts +19 -21
- package/dist/runner/rename-experiment.d.mts +19 -21
- package/dist/runner/rename-experiment.d.ts +19 -21
- package/dist/runner/rename-experiment.js +2 -4
- package/dist/runner/report.cjs +7 -2
- package/dist/runner/report.cjs.map +1 -1
- package/dist/runner/reporters/braintrust.cjs +4 -16
- package/dist/runner/reporters/braintrust.cjs.map +1 -1
- package/dist/runner/reporters/braintrust.d.cts +22 -5
- package/dist/runner/reporters/braintrust.d.mts +22 -5
- package/dist/runner/reporters/braintrust.d.ts +22 -5
- package/dist/runner/reuse-plan.cjs +256 -435
- package/dist/runner/reuse-plan.cjs.map +1 -1
- package/dist/runner/reuse-plan.d.cts +43 -63
- package/dist/runner/reuse-plan.d.mts +43 -63
- package/dist/runner/reuse-plan.d.ts +43 -63
- package/dist/runner/reuse-plan.js +6 -8
- package/dist/runner/reuse-readback.cjs +157 -170
- package/dist/runner/reuse-readback.cjs.map +1 -1
- package/dist/runner/reuse-readback.d.cts +46 -62
- package/dist/runner/reuse-readback.d.mts +46 -62
- package/dist/runner/reuse-readback.d.ts +46 -62
- package/dist/runner/reuse-readback.js +0 -2
- package/dist/runner/run.cjs +110 -135
- package/dist/runner/run.cjs.map +1 -1
- package/dist/runner/run.d.cts +1 -1
- package/dist/runner/run.d.mts +1 -1
- package/dist/runner/run.d.ts +1 -1
- package/dist/runner/sandbox-pool.cjs +55 -43
- package/dist/runner/sandbox-pool.cjs.map +1 -1
- package/dist/runner/sandbox-record-producer.cjs +21 -6
- package/dist/runner/sandbox-record-producer.cjs.map +1 -1
- package/dist/runner/sandbox-record-producer.d.cts +6 -4
- package/dist/runner/sandbox-record-producer.d.mts +6 -4
- package/dist/runner/sandbox-record-producer.d.ts +6 -4
- package/dist/runner/sandbox-record-producer.js +4 -0
- package/dist/runner/source-producer.cjs +208 -268
- package/dist/runner/source-producer.cjs.map +1 -1
- package/dist/runner/source-producer.d.cts +32 -17
- package/dist/runner/source-producer.d.mts +32 -17
- package/dist/runner/source-producer.d.ts +32 -17
- package/dist/runner/source-producer.js +6 -4
- package/dist/runner/timing.cjs +13 -9
- package/dist/runner/timing.cjs.map +1 -1
- package/dist/runner/types.cjs +3 -2
- package/dist/runner/types.cjs.map +1 -1
- package/dist/runner/types.d.cts +34 -52
- package/dist/runner/types.d.mts +34 -52
- package/dist/runner/types.d.ts +34 -52
- package/dist/runner/types.js +30 -28
- package/dist/sample/analysis.cjs +925 -919
- package/dist/sample/analysis.cjs.map +1 -1
- package/dist/sample/analysis.d.cts +32 -144
- package/dist/sample/analysis.d.mts +32 -144
- package/dist/sample/analysis.d.ts +32 -144
- package/dist/sample/analysis.js +14 -26
- package/dist/sample/capability.cjs +761 -0
- package/dist/sample/capability.cjs.map +1 -0
- package/dist/sample/capability.d.cts +189 -0
- package/dist/sample/capability.d.mts +189 -0
- package/dist/sample/capability.d.ts +189 -0
- package/dist/sample/capability.js +36 -0
- package/dist/sample/capability.js.map +1 -0
- package/dist/sample/index.cjs +9 -13
- package/dist/sample/index.cjs.map +1 -1
- package/dist/sample/index.d.cts +2 -2
- package/dist/sample/index.d.mts +2 -2
- package/dist/sample/index.d.ts +2 -2
- package/dist/sample/index.js +10 -24
- package/dist/sandbox/build-coordinator.cjs +146 -147
- package/dist/sandbox/build-coordinator.cjs.map +1 -1
- package/dist/sandbox/case-types.cjs.map +1 -1
- package/dist/sandbox/case-types.d.cts +6 -0
- package/dist/sandbox/case-types.d.mts +6 -0
- package/dist/sandbox/case-types.d.ts +6 -0
- package/dist/sandbox/commands.cjs.map +1 -1
- package/dist/sandbox/commands.d.cts +0 -2
- package/dist/sandbox/commands.d.mts +0 -2
- package/dist/sandbox/commands.d.ts +0 -2
- package/dist/sandbox/compose.cjs +212 -153
- package/dist/sandbox/compose.cjs.map +1 -1
- package/dist/sandbox/compose.d.cts +11 -2
- package/dist/sandbox/compose.d.mts +11 -2
- package/dist/sandbox/compose.d.ts +11 -2
- package/dist/sandbox/compose.js +32 -30
- package/dist/sandbox/docker.cjs +59 -38
- package/dist/sandbox/docker.cjs.map +1 -1
- package/dist/sandbox/docker.d.cts +2 -1
- package/dist/sandbox/docker.d.mts +2 -1
- package/dist/sandbox/docker.d.ts +2 -1
- package/dist/sandbox/e2b.cjs +30 -18
- package/dist/sandbox/e2b.cjs.map +1 -1
- package/dist/sandbox/index.cjs +2 -2
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.d.cts +2 -2
- package/dist/sandbox/index.d.mts +2 -2
- package/dist/sandbox/index.d.ts +2 -2
- package/dist/sandbox/index.js +52 -52
- package/dist/sandbox/index.mjs +52 -52
- package/dist/sandbox/io-retry.cjs +18 -14
- package/dist/sandbox/io-retry.cjs.map +1 -1
- package/dist/sandbox/io-retry.d.cts +7 -4
- package/dist/sandbox/io-retry.d.mts +7 -4
- package/dist/sandbox/io-retry.d.ts +7 -4
- package/dist/sandbox/keep.cjs +79 -52
- package/dist/sandbox/keep.cjs.map +1 -1
- package/dist/sandbox/layer.cjs.map +1 -1
- package/dist/sandbox/layer.d.cts +3 -3
- package/dist/sandbox/layer.d.mts +3 -3
- package/dist/sandbox/layer.d.ts +3 -3
- package/dist/sandbox/paths.cjs +96 -12
- package/dist/sandbox/paths.cjs.map +1 -1
- package/dist/sandbox/paths.d.cts +16 -0
- package/dist/sandbox/paths.d.mts +16 -0
- package/dist/sandbox/paths.d.ts +16 -0
- package/dist/sandbox/paths.js +10 -8
- package/dist/sandbox/prepare-commands.cjs +0 -5
- package/dist/sandbox/prepare-commands.cjs.map +1 -1
- package/dist/sandbox/prepare-commands.d.cts +1 -1
- package/dist/sandbox/prepare-commands.d.mts +1 -1
- package/dist/sandbox/prepare-commands.d.ts +1 -1
- package/dist/sandbox/record/attachment.cjs +16 -53
- package/dist/sandbox/record/attachment.cjs.map +1 -1
- package/dist/sandbox/record/attachment.d.cts +11 -15
- package/dist/sandbox/record/attachment.d.mts +11 -15
- package/dist/sandbox/record/attachment.d.ts +11 -15
- package/dist/sandbox/record/attachment.js +2 -6
- package/dist/sandbox/record/codec.cjs +17 -17
- package/dist/sandbox/record/codec.cjs.map +1 -1
- package/dist/sandbox/record/codec.d.cts +12 -12
- package/dist/sandbox/record/codec.d.mts +12 -12
- package/dist/sandbox/record/codec.d.ts +12 -12
- package/dist/sandbox/record/codec.js +4 -4
- package/dist/sandbox/record/model.cjs +7 -7
- package/dist/sandbox/record/model.cjs.map +1 -1
- package/dist/sandbox/record/model.d.cts +13 -13
- package/dist/sandbox/record/model.d.mts +13 -13
- package/dist/sandbox/record/model.d.ts +13 -13
- package/dist/sandbox/record/model.js +6 -6
- package/dist/sandbox/record/projector.cjs +16 -25
- package/dist/sandbox/record/projector.cjs.map +1 -1
- package/dist/sandbox/record/projector.d.cts +4 -18
- package/dist/sandbox/record/projector.d.mts +4 -18
- package/dist/sandbox/record/projector.d.ts +4 -18
- package/dist/sandbox/record/projector.js +2 -2
- package/dist/sandbox/registry.cjs +19 -9
- package/dist/sandbox/registry.cjs.map +1 -1
- package/dist/sandbox/request-executor.cjs +63 -0
- package/dist/sandbox/request-executor.cjs.map +1 -0
- package/dist/sandbox/request-executor.d.cts +16 -0
- package/dist/sandbox/request-executor.d.mts +16 -0
- package/dist/sandbox/request-executor.d.ts +16 -0
- package/dist/sandbox/request-executor.js +8 -0
- package/dist/sandbox/request-executor.js.map +1 -0
- package/dist/sandbox/retry.cjs +42 -38
- package/dist/sandbox/retry.cjs.map +1 -1
- package/dist/sandbox/retry.d.cts +6 -6
- package/dist/sandbox/retry.d.mts +6 -6
- package/dist/sandbox/retry.d.ts +6 -6
- package/dist/sandbox/runtime.cjs +47 -56
- package/dist/sandbox/runtime.cjs.map +1 -1
- package/dist/sandbox/runtime.d.cts +1 -1
- package/dist/sandbox/runtime.d.mts +1 -1
- package/dist/sandbox/runtime.d.ts +1 -1
- package/dist/sandbox/transfer-errors.cjs +37 -5
- package/dist/sandbox/transfer-errors.cjs.map +1 -1
- package/dist/sandbox/transfer-errors.d.cts +14 -0
- package/dist/sandbox/transfer-errors.d.mts +14 -0
- package/dist/sandbox/transfer-errors.d.ts +14 -0
- package/dist/sandbox/transfer-errors.js +12 -8
- package/dist/sandbox/types.cjs.map +1 -1
- package/dist/sandbox/types.d.cts +0 -7
- package/dist/sandbox/types.d.mts +0 -7
- package/dist/sandbox/types.d.ts +0 -7
- package/dist/sandbox/vercel.cjs +10 -14
- package/dist/sandbox/vercel.cjs.map +1 -1
- package/dist/sources/attachment.cjs +103 -248
- package/dist/sources/attachment.cjs.map +1 -1
- package/dist/sources/attachment.d.cts +47 -319
- package/dist/sources/attachment.d.mts +47 -319
- package/dist/sources/attachment.d.ts +47 -319
- package/dist/sources/attachment.js +8 -18
- package/dist/sources/codec.cjs +56 -56
- package/dist/sources/codec.cjs.map +1 -1
- package/dist/sources/codec.d.cts +63 -63
- package/dist/sources/codec.d.mts +63 -63
- package/dist/sources/codec.d.ts +63 -63
- package/dist/sources/codec.js +44 -44
- package/dist/sources/index.cjs +0 -2
- package/dist/sources/index.cjs.map +1 -1
- package/dist/sources/index.d.cts +0 -2
- package/dist/sources/index.d.mts +0 -2
- package/dist/sources/index.d.ts +0 -2
- package/dist/sources/index.js +72 -86
- package/dist/sources/model.cjs +2 -2
- package/dist/sources/model.cjs.map +1 -1
- package/dist/sources/model.d.cts +41 -41
- package/dist/sources/model.d.mts +41 -41
- package/dist/sources/model.d.ts +41 -41
- package/dist/sources/model.js +2 -2
- package/dist/sources/projector.cjs +39 -268
- package/dist/sources/projector.cjs.map +1 -1
- package/dist/sources/projector.d.cts +40 -8
- package/dist/sources/projector.d.mts +40 -8
- package/dist/sources/projector.d.ts +40 -8
- package/dist/sources/projector.js +4 -6
- package/dist/types.js +30 -28
- package/dist/view/data.cjs.map +1 -1
- package/dist/view/data.d.cts +5 -4
- package/dist/view/data.d.mts +5 -4
- package/dist/view/data.d.ts +5 -4
- package/dist/view/index.cjs +3 -4
- package/dist/view/index.cjs.map +1 -1
- package/dist/view/index.d.cts +2 -2
- package/dist/view/index.d.mts +2 -2
- package/dist/view/index.d.ts +2 -2
- package/dist/view/index.js +2 -4
- package/dist/view/report-view-cache.cjs +200 -0
- package/dist/view/report-view-cache.cjs.map +1 -0
- package/dist/view/report-view-cache.d.cts +67 -0
- package/dist/view/report-view-cache.d.mts +67 -0
- package/dist/view/report-view-cache.d.ts +67 -0
- package/dist/view/report-view-cache.js +8 -0
- package/dist/view/report-view-cache.js.map +1 -0
- package/dist/view/server.cjs +99 -102
- package/dist/view/server.cjs.map +1 -1
- package/dist/view/server.d.cts +0 -6
- package/dist/view/server.d.mts +0 -6
- package/dist/view/server.d.ts +0 -6
- package/dist/view/shared/types.cjs.map +1 -1
- package/dist/view/site.cjs +19 -27
- package/dist/view/site.cjs.map +1 -1
- package/dist/view/site.d.cts +10 -12
- package/dist/view/site.d.mts +10 -12
- package/dist/view/site.d.ts +10 -12
- package/dist/view/site.js +2 -4
- package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +8 -8
- package/docs-site/zh/examples/integrations/claude-sdk.mdx +8 -8
- package/docs-site/zh/examples/integrations/codex-sdk.mdx +4 -4
- package/docs-site/zh/examples/integrations/langgraph.mdx +6 -6
- package/docs-site/zh/examples/integrations/pi-sdk.mdx +9 -9
- package/docs-site/zh/explanation/adapter.mdx +3 -1
- package/docs-site/zh/explanation/assert.mdx +6 -6
- package/docs-site/zh/explanation/drive.mdx +1 -1
- package/docs-site/zh/explanation/evals.mdx +6 -3
- package/docs-site/zh/explanation/hitl.mdx +4 -2
- package/docs-site/zh/explanation/judge.mdx +6 -6
- package/docs-site/zh/explanation/overview.mdx +28 -29
- package/docs-site/zh/explanation/record.mdx +26 -36
- package/docs-site/zh/explanation/runner.mdx +7 -8
- package/docs-site/zh/index.mdx +1 -1
- package/docs-site/zh/introduction.mdx +1 -1
- package/docs-site/zh/reference/cli.mdx +16 -19
- package/docs-site/zh/reference/define-agent.mdx +0 -8
- package/docs-site/zh/reference/define-config.mdx +6 -2
- package/docs-site/zh/reference/define-eval.mdx +7 -5
- package/docs-site/zh/reference/events.mdx +6 -3
- package/docs-site/zh/reference/report-components.mdx +92 -88
- package/docs-site/zh/reference/results-data.mdx +39 -49
- package/docs-site/zh/troubleshooting/debug-sandbox.mdx +1 -1
- package/docs-site/zh/troubleshooting/debugging.mdx +27 -28
- package/docs-site/zh/tutorials/agent-feedback-loop.mdx +4 -4
- package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
- package/docs-site/zh/tutorials/authoring.mdx +6 -3
- package/docs-site/zh/tutorials/connect-your-agent.mdx +2 -2
- package/docs-site/zh/tutorials/custom-reports.mdx +148 -76
- package/docs-site/zh/tutorials/deploy-report-site.mdx +14 -17
- package/docs-site/zh/tutorials/evaluation-kinds.mdx +3 -3
- package/docs-site/zh/tutorials/fixtures.mdx +5 -5
- package/docs-site/zh/tutorials/handle-execution-failures.mdx +1 -1
- package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +1 -1
- package/docs-site/zh/tutorials/publish-report.mdx +28 -28
- package/docs-site/zh/tutorials/quickstart.mdx +2 -2
- package/docs-site/zh/tutorials/reporters.mdx +4 -4
- package/docs-site/zh/tutorials/rerun-and-cache.mdx +5 -5
- package/docs-site/zh/tutorials/sandbox-agent.mdx +2 -2
- package/docs-site/zh/tutorials/sandbox-providers.mdx +3 -3
- package/docs-site/zh/tutorials/theming.mdx +47 -19
- package/docs-site/zh/tutorials/viewing-results.mdx +43 -80
- package/docs-site/zh/tutorials/write-experiment.mdx +16 -11
- package/docs-site/zh/tutorials/write-send.mdx +11 -3
- package/package.json +83 -11
- package/dist/assertions/record/diff-model.cjs +0 -120
- package/dist/assertions/record/diff-model.cjs.map +0 -1
- package/dist/assertions/record/diff-model.d.cts +0 -47
- package/dist/assertions/record/diff-model.d.mts +0 -47
- package/dist/assertions/record/diff-model.d.ts +0 -47
- package/dist/assertions/record/diff-model.js +0 -12
- package/dist/assertions/record/diff-model.js.map +0 -1
- package/dist/projection/attachment-result.cjs +0 -50
- package/dist/projection/attachment-result.cjs.map +0 -1
- package/dist/projection/attachment-result.d.cts +0 -38
- package/dist/projection/attachment-result.d.mts +0 -38
- package/dist/projection/attachment-result.d.ts +0 -38
- package/dist/projection/attachment-result.js +0 -6
- package/dist/projection/attachment-result.js.map +0 -1
- package/dist/projection/attempt-selection.cjs +0 -87
- package/dist/projection/attempt-selection.cjs.map +0 -1
- package/dist/projection/attempt-selection.d.cts +0 -40
- package/dist/projection/attempt-selection.d.mts +0 -40
- package/dist/projection/attempt-selection.d.ts +0 -40
- package/dist/projection/attempt-selection.js +0 -8
- package/dist/projection/attempt-selection.js.map +0 -1
- package/dist/projection/coverage.cjs +0 -106
- package/dist/projection/coverage.cjs.map +0 -1
- package/dist/projection/coverage.d.cts +0 -43
- package/dist/projection/coverage.d.mts +0 -43
- package/dist/projection/coverage.d.ts +0 -43
- package/dist/projection/coverage.js +0 -6
- package/dist/projection/coverage.js.map +0 -1
- package/dist/projection/index.cjs +0 -36
- package/dist/projection/index.cjs.map +0 -1
- package/dist/projection/index.d.cts +0 -25
- package/dist/projection/index.d.mts +0 -25
- package/dist/projection/index.d.ts +0 -25
- package/dist/projection/index.js +0 -46
- package/dist/projection/index.mjs +0 -46
- package/dist/projection/model.cjs +0 -3
- package/dist/projection/model.cjs.map +0 -1
- package/dist/projection/model.d.cts +0 -49
- package/dist/projection/model.d.mts +0 -49
- package/dist/projection/model.d.ts +0 -49
- package/dist/projection/model.js +0 -4
- package/dist/projection/model.js.map +0 -1
- package/dist/projection/projector.cjs +0 -111
- package/dist/projection/projector.cjs.map +0 -1
- package/dist/projection/projector.d.cts +0 -51
- package/dist/projection/projector.d.mts +0 -51
- package/dist/projection/projector.d.ts +0 -51
- package/dist/projection/projector.js +0 -16
- package/dist/projection/projector.js.map +0 -1
- package/dist/projection/runtime.cjs +0 -246
- package/dist/projection/runtime.cjs.map +0 -1
- package/dist/projection/runtime.d.cts +0 -14
- package/dist/projection/runtime.d.mts +0 -14
- package/dist/projection/runtime.d.ts +0 -14
- package/dist/projection/runtime.js +0 -6
- package/dist/record/migration/errors.cjs +0 -68
- package/dist/record/migration/errors.cjs.map +0 -1
- package/dist/record/migration/errors.d.cts +0 -73
- package/dist/record/migration/errors.d.mts +0 -73
- package/dist/record/migration/errors.d.ts +0 -73
- package/dist/record/migration/errors.js +0 -22
- package/dist/record/migration/errors.js.map +0 -1
- package/dist/record/migration/identity.cjs +0 -27
- package/dist/record/migration/identity.cjs.map +0 -1
- package/dist/record/migration/identity.d.cts +0 -5
- package/dist/record/migration/identity.d.mts +0 -5
- package/dist/record/migration/identity.d.ts +0 -5
- package/dist/record/migration/identity.js +0 -8
- package/dist/record/migration/internal.cjs +0 -3
- package/dist/record/migration/internal.cjs.map +0 -1
- package/dist/record/migration/internal.d.cts +0 -111
- package/dist/record/migration/internal.d.mts +0 -111
- package/dist/record/migration/internal.d.ts +0 -111
- package/dist/record/migration/internal.js +0 -4
- package/dist/record/migration/internal.js.map +0 -1
- package/dist/record/migration/orchestrate.cjs +0 -368
- package/dist/record/migration/orchestrate.cjs.map +0 -1
- package/dist/record/migration/orchestrate.d.cts +0 -113
- package/dist/record/migration/orchestrate.d.mts +0 -113
- package/dist/record/migration/orchestrate.d.ts +0 -113
- package/dist/record/migration/orchestrate.js +0 -16
- package/dist/record/migration/orchestrate.js.map +0 -1
- package/dist/record/migration/plan.cjs +0 -63
- package/dist/record/migration/plan.cjs.map +0 -1
- package/dist/record/migration/plan.d.cts +0 -32
- package/dist/record/migration/plan.d.mts +0 -32
- package/dist/record/migration/plan.d.ts +0 -32
- package/dist/record/migration/plan.js +0 -10
- package/dist/record/migration/plan.js.map +0 -1
- package/dist/record/migration/registry.cjs +0 -150
- package/dist/record/migration/registry.cjs.map +0 -1
- package/dist/record/migration/registry.d.cts +0 -61
- package/dist/record/migration/registry.d.mts +0 -61
- package/dist/record/migration/registry.d.ts +0 -61
- package/dist/record/migration/registry.js +0 -14
- package/dist/record/migration/registry.js.map +0 -1
- package/dist/record/migration/storage.cjs +0 -382
- package/dist/record/migration/storage.cjs.map +0 -1
- package/dist/record/migration/storage.d.cts +0 -18
- package/dist/record/migration/storage.d.mts +0 -18
- package/dist/record/migration/storage.d.ts +0 -18
- package/dist/record/migration/storage.js +0 -6
- package/dist/record/migration/storage.js.map +0 -1
- package/dist/record/migration/types.cjs.map +0 -1
- package/dist/record/migration/types.d.cts +0 -16
- package/dist/record/migration/types.d.mts +0 -16
- package/dist/record/migration/types.d.ts +0 -16
- package/dist/record/reader/internal.cjs +0 -17
- package/dist/record/reader/internal.cjs.map +0 -1
- package/dist/record/reader/internal.d.cts +0 -26
- package/dist/record/reader/internal.d.mts +0 -26
- package/dist/record/reader/internal.d.ts +0 -26
- package/dist/record/reader/internal.js +0 -8
- package/dist/record/reader/internal.js.map +0 -1
- package/dist/record/writer/runtime.cjs +0 -656
- package/dist/record/writer/runtime.cjs.map +0 -1
- package/dist/record/writer/runtime.d.cts +0 -7
- package/dist/record/writer/runtime.d.mts +0 -7
- package/dist/record/writer/runtime.d.ts +0 -7
- package/dist/record/writer/runtime.js +0 -6
- package/dist/report/author/identity.cjs +0 -268
- package/dist/report/author/identity.cjs.map +0 -1
- package/dist/report/author/identity.d.cts +0 -75
- package/dist/report/author/identity.d.mts +0 -75
- package/dist/report/author/identity.d.ts +0 -75
- package/dist/report/author/identity.js +0 -34
- package/dist/report/author/identity.js.map +0 -1
- package/dist/report/author/index.cjs +0 -19
- package/dist/report/author/index.cjs.map +0 -1
- package/dist/report/author/index.d.cts +0 -4
- package/dist/report/author/index.d.mts +0 -4
- package/dist/report/author/index.d.ts +0 -4
- package/dist/report/author/index.js +0 -30
- package/dist/report/author/internal.cjs +0 -98
- package/dist/report/author/internal.cjs.map +0 -1
- package/dist/report/author/internal.d.cts +0 -91
- package/dist/report/author/internal.d.mts +0 -91
- package/dist/report/author/internal.d.ts +0 -91
- package/dist/report/author/internal.js +0 -18
- package/dist/report/author/internal.js.map +0 -1
- package/dist/report/author/model.cjs +0 -467
- package/dist/report/author/model.cjs.map +0 -1
- package/dist/report/author/model.d.cts +0 -241
- package/dist/report/author/model.d.mts +0 -241
- package/dist/report/author/model.d.ts +0 -241
- package/dist/report/author/model.js +0 -32
- package/dist/report/author/model.js.map +0 -1
- package/dist/report/execution/index.cjs +0 -20
- package/dist/report/execution/index.cjs.map +0 -1
- package/dist/report/execution/index.d.cts +0 -3
- package/dist/report/execution/index.d.mts +0 -3
- package/dist/report/execution/index.d.ts +0 -3
- package/dist/report/execution/index.js +0 -30
- package/dist/report/execution/problems.cjs +0 -210
- package/dist/report/execution/problems.cjs.map +0 -1
- package/dist/report/execution/problems.d.cts +0 -54
- package/dist/report/execution/problems.d.mts +0 -54
- package/dist/report/execution/problems.d.ts +0 -54
- package/dist/report/execution/problems.js +0 -14
- package/dist/report/execution/problems.js.map +0 -1
- package/dist/report/execution/results.cjs +0 -26
- package/dist/report/execution/results.cjs.map +0 -1
- package/dist/report/execution/results.d.cts +0 -102
- package/dist/report/execution/results.d.mts +0 -102
- package/dist/report/execution/results.d.ts +0 -102
- package/dist/report/execution/results.js +0 -8
- package/dist/report/execution/results.js.map +0 -1
- package/dist/report/host/html.cjs +0 -424
- package/dist/report/host/html.cjs.map +0 -1
- package/dist/report/host/html.d.cts +0 -28
- package/dist/report/host/html.d.mts +0 -28
- package/dist/report/host/html.d.ts +0 -28
- package/dist/report/host/html.js +0 -6
- package/dist/report/host/html.js.map +0 -1
- package/dist/report/host/node/theme.cjs +0 -21
- package/dist/report/host/node/theme.cjs.map +0 -1
- package/dist/report/host/node/theme.d.cts +0 -1
- package/dist/report/host/node/theme.d.mts +0 -1
- package/dist/report/host/node/theme.d.ts +0 -1
- package/dist/report/host/node/theme.js +0 -14
- package/dist/report/host/presentation.cjs +0 -423
- package/dist/report/host/presentation.cjs.map +0 -1
- package/dist/report/host/presentation.d.cts +0 -42
- package/dist/report/host/presentation.d.mts +0 -42
- package/dist/report/host/presentation.d.ts +0 -42
- package/dist/report/host/presentation.js +0 -16
- package/dist/report/host/theme.cjs +0 -223
- package/dist/report/host/theme.cjs.map +0 -1
- package/dist/report/host/theme.d.cts +0 -64
- package/dist/report/host/theme.d.mts +0 -64
- package/dist/report/host/theme.d.ts +0 -64
- package/dist/report/host/theme.js +0 -14
- package/dist/report/host/theme.js.map +0 -1
- package/dist/report/semantic/document.cjs +0 -593
- package/dist/report/semantic/document.cjs.map +0 -1
- package/dist/report/semantic/document.d.cts +0 -162
- package/dist/report/semantic/document.d.mts +0 -162
- package/dist/report/semantic/document.d.ts +0 -162
- package/dist/report/semantic/document.js +0 -38
- package/dist/report/semantic/document.js.map +0 -1
- package/dist/report/semantic/index.cjs +0 -18
- package/dist/report/semantic/index.cjs.map +0 -1
- package/dist/report/semantic/index.d.cts +0 -1
- package/dist/report/semantic/index.d.mts +0 -1
- package/dist/report/semantic/index.d.ts +0 -1
- package/dist/report/semantic/index.js +0 -38
- package/dist/shared/facts.cjs +0 -24
- package/dist/shared/facts.cjs.map +0 -1
- package/dist/shared/facts.d.cts +0 -7
- package/dist/shared/facts.d.mts +0 -7
- package/dist/shared/facts.d.ts +0 -7
- package/dist/shared/facts.js +0 -6
- package/dist/shared/facts.js.map +0 -1
- package/dist/show/json.cjs +0 -8
- package/dist/show/json.cjs.map +0 -1
- package/dist/show/json.d.cts +0 -2
- package/dist/show/json.d.mts +0 -2
- package/dist/show/json.d.ts +0 -2
- package/dist/show/json.js +0 -8
- package/dist/show/json.js.map +0 -1
- package/dist/show/render.cjs +0 -7
- package/dist/show/render.cjs.map +0 -1
- package/dist/show/render.d.cts +0 -2
- package/dist/show/render.d.mts +0 -2
- package/dist/show/render.d.ts +0 -2
- package/dist/show/render.js +0 -6
- package/dist/show/render.js.map +0 -1
- package/dist/sources/assemble.cjs +0 -634
- package/dist/sources/assemble.cjs.map +0 -1
- package/dist/sources/assemble.d.cts +0 -6
- package/dist/sources/assemble.d.mts +0 -6
- package/dist/sources/assemble.d.ts +0 -6
- package/dist/sources/assemble.js +0 -6
- package/dist/sources/assemble.js.map +0 -1
- package/dist/sources/projection-model.cjs +0 -3
- package/dist/sources/projection-model.cjs.map +0 -1
- package/dist/sources/projection-model.d.cts +0 -327
- package/dist/sources/projection-model.d.mts +0 -327
- package/dist/sources/projection-model.d.ts +0 -327
- package/dist/sources/projection-model.js +0 -4
- package/dist/sources/projection-model.js.map +0 -1
- /package/dist/{projection → coordination/host}/index.js.map +0 -0
- /package/dist/{projection → coordination/host}/index.mjs.map +0 -0
- /package/dist/{projection → coordination/host}/runtime.js.map +0 -0
- /package/dist/{record/migration → coordination/host}/types.cjs +0 -0
- /package/dist/{record/migration → coordination/host}/types.js +0 -0
- /package/dist/{record/migration → coordination/host}/types.js.map +0 -0
- /package/dist/{record/migration → coordination}/identity.js.map +0 -0
- /package/dist/{report/author → coordination}/index.js.map +0 -0
- /package/dist/{report/execution → coordination/platform}/index.js.map +0 -0
- /package/dist/{report/semantic → experiment/host}/index.js.map +0 -0
- /package/dist/record/{writer → host}/runtime.js.map +0 -0
- /package/dist/report/{host/presentation.js.map → presentation.js.map} +0 -0
- /package/dist/report/{host/node/theme.js.map → theme.js.map} +0 -0
package/dist/view/server.cjs
CHANGED
|
@@ -2,17 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.openViewServer = openViewServer;
|
|
4
4
|
// The Node view host owns transport and watch lifetime only. Its caller has
|
|
5
|
-
// already closed
|
|
6
|
-
//
|
|
5
|
+
// already closed Record -> Sample -> Report into a fixed execution rebuild;
|
|
6
|
+
// this module never reopens Record facts.
|
|
7
7
|
const node_fs_1 = require("node:fs");
|
|
8
8
|
const node_http_1 = require("node:http");
|
|
9
9
|
const node_os_1 = require("node:os");
|
|
10
10
|
const node_path_1 = require("node:path");
|
|
11
11
|
const effect_1 = require("effect");
|
|
12
|
-
const
|
|
13
|
-
const presentation_ts_1 = require("../report/host/presentation.cjs");
|
|
12
|
+
const model_ts_1 = require("../report/execution/model.cjs");
|
|
14
13
|
const view_session_ts_1 = require("../report/host/view-session.cjs");
|
|
15
|
-
const site_ts_1 = require("./site.cjs");
|
|
16
14
|
const inboxClosed = Object.freeze({ code: "report-view-inbox-closed" });
|
|
17
15
|
const HTTP_REQUEST_QUEUE_MAX = 128;
|
|
18
16
|
/**
|
|
@@ -120,6 +118,7 @@ class RefreshInbox {
|
|
|
120
118
|
*/
|
|
121
119
|
function openViewServer(options = {}) {
|
|
122
120
|
return effect_1.Effect.gen(function* () {
|
|
121
|
+
const serverScope = yield* effect_1.Effect.scope;
|
|
123
122
|
if (options.session !== undefined && options.request !== undefined) {
|
|
124
123
|
return yield* effect_1.Effect.fail(serverError("open", "provide either session or request, not both"));
|
|
125
124
|
}
|
|
@@ -151,7 +150,7 @@ function openViewServer(options = {}) {
|
|
|
151
150
|
const advertisedAuthorities = Object.freeze(new Set(urls.map((url) => new URL(url).host)));
|
|
152
151
|
const watches = yield* effect_1.Effect.acquireRelease(openWatchers(initialWatchInputs, () => resources.refreshes.request()), (value) => closeWatchers(value));
|
|
153
152
|
yield* effect_1.Effect.forkScoped(effect_1.Effect.forever(effect_1.Effect.flatMap(resources.requests.take(), (request) => serveRequest(session, request, advertisedAuthorities))).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.void)));
|
|
154
|
-
yield* effect_1.Effect.forkScoped(effect_1.Effect.forever(effect_1.Effect.flatMap(resources.refreshes.take(), () =>
|
|
153
|
+
yield* effect_1.Effect.forkScoped(effect_1.Effect.forever(effect_1.Effect.flatMap(resources.refreshes.take(), () => registerRefreshIntent(session, watches, options.onRebuild, serverScope))).pipe(effect_1.Effect.catchAll(() => effect_1.Effect.void)));
|
|
155
154
|
const close = effect_1.Effect.zipRight(closeWatchers(watches), closeResources(resources));
|
|
156
155
|
return Object.freeze({ url: urls[0], urls, close });
|
|
157
156
|
});
|
|
@@ -220,67 +219,58 @@ function serveRequest(session, request, advertisedAuthorities) {
|
|
|
220
219
|
const headers = Object.freeze({
|
|
221
220
|
"cache-control": "no-store",
|
|
222
221
|
"x-niceeval-report-revision": String(state.current.revision),
|
|
222
|
+
"x-niceeval-report-content-hash": (0, model_ts_1.closedSiteRevisionData)(state.current.site).identity.contentHash,
|
|
223
223
|
...(state.lastProblem === undefined ? {} : { "x-niceeval-last-rebuild-problem": "1" }),
|
|
224
224
|
});
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
return effect_1.Effect.sync(() => send(request.response,
|
|
233
|
-
}
|
|
234
|
-
const download = downloadForPath(url.pathname, state.current.execution);
|
|
235
|
-
if (download !== undefined) {
|
|
236
|
-
return effect_1.Effect.sync(() => send(request.response, 200, download.bytes, downloadContentType(download.mediaType), {
|
|
225
|
+
// Optional host transport probe. It contains no Report body and does
|
|
226
|
+
// not belong to the content-addressed file mapping. The HTML response
|
|
227
|
+
// below establishes its own served revision through an HttpOnly cookie;
|
|
228
|
+
// after publication this endpoint can report that the browser document
|
|
229
|
+
// is stale without putting revision information into its body bytes.
|
|
230
|
+
if (url.pathname === "/_niceeval/refresh") {
|
|
231
|
+
const servedIdentity = reportRevisionCookieValue(request.request.headers.cookie);
|
|
232
|
+
return effect_1.Effect.sync(() => send(request.response, 204, new Uint8Array(), "text/plain; charset=utf-8", {
|
|
237
233
|
...headers,
|
|
238
|
-
"
|
|
239
|
-
|
|
234
|
+
"x-niceeval-view-stale": servedIdentity === undefined || servedIdentity === (0, model_ts_1.closedSiteRevisionData)(state.current.site).identity.contentHash
|
|
235
|
+
? "0"
|
|
236
|
+
: "1",
|
|
240
237
|
}));
|
|
241
238
|
}
|
|
242
|
-
const
|
|
243
|
-
if (
|
|
244
|
-
|
|
245
|
-
pageForPath(canonical, state.current.execution) !== "missing") {
|
|
246
|
-
return effect_1.Effect.sync(() => redirect(request.response, canonical, headers));
|
|
239
|
+
const resolved = siteFileForPath(url.pathname, state.current.site);
|
|
240
|
+
if (resolved.state === "redirect") {
|
|
241
|
+
return effect_1.Effect.sync(() => redirect(request.response, resolved.location, headers));
|
|
247
242
|
}
|
|
248
|
-
|
|
249
|
-
if (page === "missing") {
|
|
243
|
+
if (resolved.state === "missing") {
|
|
250
244
|
return effect_1.Effect.sync(() => sendText(request.response, 404, url.pathname.startsWith("/downloads/") ? "download not found" : "page not found", headers));
|
|
251
245
|
}
|
|
252
|
-
return effect_1.Effect.sync(() => send(request.response, 200,
|
|
253
|
-
?
|
|
254
|
-
: (
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
theme: state.current.theme,
|
|
258
|
-
hostMetadata: {
|
|
259
|
-
revision: state.current.revision,
|
|
260
|
-
...(state.lastProblem === undefined
|
|
261
|
-
? {}
|
|
262
|
-
: { lastRebuildProblem: state.lastProblem.summary }),
|
|
263
|
-
},
|
|
264
|
-
}), "text/html; charset=utf-8", headers));
|
|
246
|
+
return effect_1.Effect.sync(() => send(request.response, 200, resolved.file.bytes, siteContentType(resolved.file.mediaType), resolved.file.path.startsWith("downloads/")
|
|
247
|
+
? { ...headers, "content-disposition": "attachment", "x-content-type-options": "nosniff" }
|
|
248
|
+
: resolved.file.mediaType.startsWith("text/html;")
|
|
249
|
+
? { ...headers, "set-cookie": reportRevisionCookie((0, model_ts_1.closedSiteRevisionData)(state.current.site).identity.contentHash) }
|
|
250
|
+
: headers));
|
|
265
251
|
}), effect_1.Effect.catchAll(() => effect_1.Effect.sync(() => sendText(request.response, 503, "report view session is closed"))));
|
|
266
252
|
}
|
|
267
|
-
|
|
253
|
+
/**
|
|
254
|
+
* Register immediately, then subscribe in a scoped waiter. The refresh inbox
|
|
255
|
+
* can therefore accept a newer intent while this candidate still performs
|
|
256
|
+
* author work; only a published outcome mutates watcher ownership or emits a
|
|
257
|
+
* browser-facing rebuild notification.
|
|
258
|
+
*/
|
|
259
|
+
function registerRefreshIntent(session, watches, onRebuild, serverScope) {
|
|
268
260
|
return effect_1.Effect.gen(function* () {
|
|
269
|
-
const
|
|
270
|
-
yield*
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
}).pipe(effect_1.Effect.ignore);
|
|
283
|
-
}
|
|
261
|
+
const intent = yield* session.refresh;
|
|
262
|
+
yield* effect_1.Effect.forkIn(intent.outcome.pipe(effect_1.Effect.flatMap((outcome) => outcome.state !== "published"
|
|
263
|
+
? effect_1.Effect.void
|
|
264
|
+
: effect_1.Effect.gen(function* () {
|
|
265
|
+
// One published revision owns its corresponding successful watch set.
|
|
266
|
+
yield* effect_1.Effect.sync(() => replaceWatchInputs(watches, outcome.revision.watchInputs));
|
|
267
|
+
if (onRebuild !== undefined) {
|
|
268
|
+
yield* effect_1.Effect.try({
|
|
269
|
+
try: () => onRebuild(new Date()),
|
|
270
|
+
catch: () => undefined,
|
|
271
|
+
}).pipe(effect_1.Effect.ignore);
|
|
272
|
+
}
|
|
273
|
+
}))), serverScope);
|
|
284
274
|
});
|
|
285
275
|
}
|
|
286
276
|
function optionWatchInputs(options) {
|
|
@@ -517,53 +507,45 @@ function closeServer(server) {
|
|
|
517
507
|
return effect_1.Effect.void;
|
|
518
508
|
});
|
|
519
509
|
}
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
const
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
510
|
+
/**
|
|
511
|
+
* Resolves HTTP paths strictly through the current revision's finished file
|
|
512
|
+
* map. There is intentionally no route callback, renderer, Sample, or Record
|
|
513
|
+
* fallback here, so a request can never splice two revisions together.
|
|
514
|
+
*/
|
|
515
|
+
function siteFileForPath(pathname, site) {
|
|
516
|
+
if (!pathname.startsWith("/") || pathname.includes("%") || pathname.includes("\\")) {
|
|
517
|
+
return Object.freeze({ state: "missing" });
|
|
518
|
+
}
|
|
519
|
+
const requested = pathname.slice(1);
|
|
520
|
+
const exact = requested === "" ? "index.html" : requested;
|
|
521
|
+
const revision = (0, model_ts_1.closedSiteRevisionData)(site);
|
|
522
|
+
const files = revision.files;
|
|
523
|
+
const direct = files.find((file) => file.path === exact);
|
|
524
|
+
if (direct !== undefined)
|
|
525
|
+
return Object.freeze({ state: "file", file: direct });
|
|
526
|
+
// A report may deliberately declare its first Page at /overview (or another
|
|
527
|
+
// route), so its immutable closure has no root index.html. The advertised
|
|
528
|
+
// root must still land on that revision's canonical entry route rather than
|
|
529
|
+
// becoming a host-generated 404 or re-entering Report execution.
|
|
530
|
+
if (requested === "" && revision.defaultRoute !== undefined) {
|
|
531
|
+
const entryFile = staticPageFileForRoute(revision.defaultRoute);
|
|
532
|
+
if (files.some((file) => file.path === entryFile)) {
|
|
533
|
+
return Object.freeze({ state: "redirect", location: revision.defaultRoute });
|
|
534
|
+
}
|
|
541
535
|
}
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
536
|
+
// Keep direct Page URLs convenient without manufacturing a different body.
|
|
537
|
+
// The redirect selects the exact generated index.html path from this same map.
|
|
538
|
+
const indexPath = requested.endsWith("/")
|
|
539
|
+
? `${requested}index.html`
|
|
540
|
+
: `${requested}/index.html`;
|
|
541
|
+
const page = files.find((file) => file.path === indexPath);
|
|
542
|
+
if (page !== undefined) {
|
|
543
|
+
return Object.freeze({ state: "redirect", location: `/${indexPath}` });
|
|
547
544
|
}
|
|
548
|
-
|
|
549
|
-
return undefined;
|
|
550
|
-
return (0, identity_ts_1.reportRoute)(pathname.slice(0, -"/index.html".length)).pipe(effect_1.Either.getOrUndefined);
|
|
545
|
+
return Object.freeze({ state: "missing" });
|
|
551
546
|
}
|
|
552
|
-
function
|
|
553
|
-
|
|
554
|
-
if (!pathname.startsWith(prefix))
|
|
555
|
-
return undefined;
|
|
556
|
-
const path = pathname.slice(prefix.length);
|
|
557
|
-
if (!(0, identity_ts_1.isReportDownloadPath)(path))
|
|
558
|
-
return undefined;
|
|
559
|
-
for (const download of execution.downloads) {
|
|
560
|
-
if (download.state !== "built")
|
|
561
|
-
continue;
|
|
562
|
-
const file = download.files.find((candidate) => candidate.path === path);
|
|
563
|
-
if (file !== undefined)
|
|
564
|
-
return file;
|
|
565
|
-
}
|
|
566
|
-
return undefined;
|
|
547
|
+
function staticPageFileForRoute(route) {
|
|
548
|
+
return route === "/" ? "index.html" : `${route.slice(1)}/index.html`;
|
|
567
549
|
}
|
|
568
550
|
function requestUrl(request) {
|
|
569
551
|
try {
|
|
@@ -573,6 +555,20 @@ function requestUrl(request) {
|
|
|
573
555
|
return undefined;
|
|
574
556
|
}
|
|
575
557
|
}
|
|
558
|
+
const REPORT_REVISION_COOKIE = "niceeval_report_revision";
|
|
559
|
+
function reportRevisionCookie(contentHash) {
|
|
560
|
+
return `${REPORT_REVISION_COOKIE}=${contentHash}; Path=/; SameSite=Strict; HttpOnly`;
|
|
561
|
+
}
|
|
562
|
+
function reportRevisionCookieValue(cookie) {
|
|
563
|
+
if (cookie === undefined)
|
|
564
|
+
return undefined;
|
|
565
|
+
for (const entry of cookie.split(";")) {
|
|
566
|
+
const [name, ...value] = entry.trim().split("=");
|
|
567
|
+
if (name === REPORT_REVISION_COOKIE)
|
|
568
|
+
return value.join("=");
|
|
569
|
+
}
|
|
570
|
+
return undefined;
|
|
571
|
+
}
|
|
576
572
|
function sendText(response, status, body, headers = {}) {
|
|
577
573
|
send(response, status, body, "text/plain; charset=utf-8", headers);
|
|
578
574
|
}
|
|
@@ -589,8 +585,9 @@ function redirect(response, location, headers) {
|
|
|
589
585
|
response.end();
|
|
590
586
|
}
|
|
591
587
|
const SAFE_MEDIA_TYPE = /^[A-Za-z0-9!#$%&'*+.^_`|~-]+\/[A-Za-z0-9!#$%&'*+.^_`|~-]+$/;
|
|
592
|
-
function
|
|
593
|
-
|
|
588
|
+
function siteContentType(mediaType) {
|
|
589
|
+
const base = mediaType.split(";", 1)[0]?.trim() ?? "";
|
|
590
|
+
return SAFE_MEDIA_TYPE.test(base) ? base : "application/octet-stream";
|
|
594
591
|
}
|
|
595
592
|
function viewUrls(host, port) {
|
|
596
593
|
if (host === "0.0.0.0") {
|
package/dist/view/server.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"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","sourcesContent":["// The Node view host owns transport and watch lifetime only. Its caller has\n// already closed RecordReader -> AnalysisSampleHandle -> executeReport into a\n// fixed execution rebuild; this module never reopens a retired Record graph.\nimport { readdirSync, statSync, watch, type FSWatcher } from \"node:fs\";\nimport { createServer, type IncomingMessage, type Server, type ServerResponse } from \"node:http\";\nimport type { Socket } from \"node:net\";\nimport { networkInterfaces } from \"node:os\";\nimport { basename, dirname, resolve } from \"node:path\";\nimport { Effect, Either } from \"effect\";\nimport type * as Scope from \"effect/Scope\";\nimport { isReportDownloadPath, reportRoute, type ReportRoute, } from \"../report/author/identity.ts\";\nimport type { ReportExecution } from \"../report/execution/model.ts\";\nimport type { ReportPageResult } from \"../report/execution/results.ts\";\nimport { renderReportExecutionJson, renderReportExecutionProblemsText, renderReportExecutionText, } from \"../report/host/presentation.ts\";\nimport { openReportViewSession, type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSessionClosed, type ReportViewSession, } from \"../report/host/view-session.ts\";\nimport type { ThemeDefinition } from \"../report/host/node/theme.ts\";\nimport type { ViewScanOptions } from \"./data.ts\";\nimport { renderHtml } from \"./site.ts\";\nexport interface NodeViewServerError {\n readonly code: \"report-view-server-failed\";\n readonly operation: \"open\" | \"listen\" | \"watch\";\n readonly reason: string;\n}\nexport interface ViewOptions<Requirements = never> {\n readonly input?: string;\n readonly out?: string;\n readonly port?: number;\n /** Defaults to loopback. An explicit address opts into that network exposure. */\n readonly host?: string;\n /** Retained for the CLI-shaped facade; it is never interpreted as Record data. */\n readonly scan?: ViewScanOptions;\n /**\n * Bootstrap watch inputs when the session/request has none yet. After each\n * successful rebuild the session revision owns the next-round watch set.\n */\n readonly watchInputs?: readonly string[];\n readonly onRebuild?: (completedAt: Date) => void;\n /** Static export consumes this exact fixed execution. */\n readonly reportExecution?: ReportExecution;\n /** A one-shot static export Theme; an open session keeps its revision Theme. */\n readonly theme?: ThemeDefinition;\n /** An already-open scoped session owned by the caller. */\n readonly session?: ReportViewSession<Requirements>;\n /** Or let this scope open a session from a caller-supplied current rebuild. */\n readonly request?: OpenReportViewSessionInput<Requirements>;\n}\n/** The native Effect-facing server handle. Its resources are also Scope-owned. */\nexport interface ReportViewServer {\n readonly url: string;\n readonly urls: readonly string[];\n readonly close: Effect.Effect<void>;\n}\nexport type RebuildReason = \"records\" | \"modules\";\ninterface InboxClosed {\n readonly code: \"report-view-inbox-closed\";\n}\nconst inboxClosed: InboxClosed = Object.freeze({ code: \"report-view-inbox-closed\" });\ninterface HttpRequest {\n readonly request: IncomingMessage;\n readonly response: ServerResponse;\n}\ntype RenderedPage = Extract<ReportPageResult, {\n readonly state: \"rendered\";\n}>;\ntype PageLookup = RenderedPage | \"fallback\" | \"missing\";\nconst HTTP_REQUEST_QUEUE_MAX = 128;\n/**\n * A small callback-to-Effect bridge. Node callbacks only enqueue a value; the\n * long-lived scoped Effect performs every session operation, so callbacks do\n * not create private runtimes or invoke `runPromise`/`runSync`.\n */\nclass Inbox<Value> {\n private readonly values: Value[] = [];\n private resume: ((effect: Effect.Effect<Value, InboxClosed>) => void) | undefined;\n private closed = false;\n constructor(private readonly capacity: number) { }\n take(): Effect.Effect<Value, InboxClosed> {\n return Effect.async((resume) => {\n if (this.values.length > 0) {\n resume(Effect.succeed(this.values.shift()!));\n return Effect.void;\n }\n if (this.closed) {\n resume(Effect.fail(inboxClosed));\n return Effect.void;\n }\n this.resume = resume;\n return Effect.sync(() => {\n if (this.resume === resume)\n this.resume = undefined;\n });\n });\n }\n offer(value: Value): boolean {\n if (this.closed)\n return false;\n const resume = this.resume;\n if (resume === undefined) {\n if (this.values.length >= this.capacity)\n return false;\n this.values.push(value);\n return true;\n }\n this.resume = undefined;\n resume(Effect.succeed(value));\n return true;\n }\n close(): void {\n if (this.closed)\n return;\n this.closed = true;\n const resume = this.resume;\n this.resume = undefined;\n resume?.(Effect.fail(inboxClosed));\n }\n}\n/** Coalesces a burst of filesystem events into sequential refresh requests. */\nclass RefreshInbox {\n private pending = false;\n private resume: ((effect: Effect.Effect<void, InboxClosed>) => void) | undefined;\n private closed = false;\n take(): Effect.Effect<void, InboxClosed> {\n return Effect.async((resume) => {\n if (this.pending) {\n this.pending = false;\n resume(Effect.void);\n return Effect.void;\n }\n if (this.closed) {\n resume(Effect.fail(inboxClosed));\n return Effect.void;\n }\n this.resume = resume;\n return Effect.sync(() => {\n if (this.resume === resume)\n this.resume = undefined;\n });\n });\n }\n request(): void {\n if (this.closed)\n return;\n const resume = this.resume;\n if (resume === undefined) {\n this.pending = true;\n return;\n }\n this.resume = undefined;\n resume(Effect.void);\n }\n close(): void {\n if (this.closed)\n return;\n this.closed = true;\n const resume = this.resume;\n this.resume = undefined;\n resume?.(Effect.fail(inboxClosed));\n }\n}\ninterface ServerResources {\n readonly server: Server;\n readonly sockets: Set<Socket>;\n readonly requests: Inbox<HttpRequest>;\n readonly refreshes: RefreshInbox;\n closed: boolean;\n}\ninterface WatchResources {\n /** The one currently published watcher closure. */\n current: WatchSet;\n /** Stable refresh request callback for the current server lifetime. */\n onChange: () => void;\n closed: boolean;\n}\n/**\n * A complete watcher closure. A candidate stays `opening` until every watch\n * for its current directory tree has opened. Callbacks test both this state\n * and the owning resource's current reference, so an old or failed candidate\n * cannot enqueue a late rebuild.\n */\ninterface WatchSet {\n readonly inputs: readonly string[];\n readonly watchers: Map<string, FSWatcher>;\n state: \"opening\" | \"active\" | \"closed\";\n}\n/**\n * Opens a real HTTP server, defaulting to loopback. A watcher event only requests\n * `session.refresh`; the session serializes rebuild and close, preserves the\n * last good immutable execution and recoverable watch set, and publishes a new\n * revision only on success. The Node server then atomically replaces its\n * fs.watch resources from that revision's watchInputs.\n */\nexport function openViewServer<Requirements>(options: ViewOptions<Requirements> = {}): Effect.Effect<ReportViewServer, NodeViewServerError | ReportViewOpenError, Scope.Scope | Requirements> {\n return Effect.gen(function* () {\n if (options.session !== undefined && options.request !== undefined) {\n return yield* Effect.fail(serverError(\"open\", \"provide either session or request, not both\"));\n }\n const host = (options.host ?? \"127.0.0.1\").trim();\n if (host.length === 0) {\n return yield* Effect.fail(serverError(\"open\", \"view host must not be empty\"));\n }\n if (host.includes(\"%\")) {\n return yield* Effect.fail(serverError(\"open\", \"scoped IPv6 view hosts are not supported\"));\n }\n const port = options.port ?? 0;\n if (!Number.isInteger(port) || port < 0 || port > 65535) {\n return yield* Effect.fail(serverError(\"open\", `view port must be an integer from 0 through 65535, got ${port}`));\n }\n const session = options.session ?? (options.request === undefined\n ? yield* Effect.fail(serverError(\"open\", \"view needs a scoped ReportViewSession or current rebuild request\"))\n : yield* openReportViewSession({\n ...options.request,\n // Bootstrap the opening revision when the request omitted a watch set.\n watchInputs: options.request.watchInputs ?? optionWatchInputs(options),\n }));\n const opening = yield* session.snapshot.pipe(Effect.mapError(() => serverError(\"open\", \"report view session closed before watchers opened\")));\n const initialWatchInputs = opening.current.watchInputs.length > 0\n ? opening.current.watchInputs\n : optionWatchInputs(options);\n const resources = yield* Effect.acquireRelease(Effect.sync(() => makeResources()), (value) => closeResources(value));\n const address = yield* listen(resources.server, host, port);\n const urls = viewUrls(host, address.port);\n const advertisedAuthorities = Object.freeze(new Set(urls.map((url) => new URL(url).host)));\n const watches = yield* Effect.acquireRelease(openWatchers(initialWatchInputs, () => resources.refreshes.request()), (value) => closeWatchers(value));\n yield* Effect.forkScoped(Effect.forever(Effect.flatMap(resources.requests.take(), (request) => serveRequest(session, request, advertisedAuthorities))).pipe(Effect.catchAll(() => Effect.void)));\n yield* Effect.forkScoped(Effect.forever(Effect.flatMap(resources.refreshes.take(), () => refreshSession(session, watches, options.onRebuild))).pipe(Effect.catchAll(() => Effect.void)));\n const close = Effect.zipRight(closeWatchers(watches), closeResources(resources));\n return Object.freeze({ url: urls[0]!, urls, close });\n });\n}\nfunction makeResources(): ServerResources {\n const requests = new Inbox<HttpRequest>(HTTP_REQUEST_QUEUE_MAX);\n const refreshes = new RefreshInbox();\n const sockets = new Set<Socket>();\n const server = createServer((request, response) => {\n if (!requests.offer(Object.freeze({ request, response }))) {\n sendText(response, 503, \"report view is busy; retry shortly\");\n }\n });\n server.on(\"connection\", (socket) => {\n sockets.add(socket);\n socket.once(\"close\", () => sockets.delete(socket));\n });\n return { server, sockets, requests, refreshes, closed: false };\n}\nfunction listen(server: Server, host: string, port: number): Effect.Effect<{\n readonly host: string;\n readonly port: number;\n}, NodeViewServerError> {\n return Effect.async((resume) => {\n const cleanup = (): void => {\n server.off(\"error\", onError);\n server.off(\"listening\", onListening);\n };\n const onError = (error: Error): void => {\n cleanup();\n resume(Effect.fail(serverError(\"listen\", error.message)));\n };\n const onListening = (): void => {\n cleanup();\n const address = server.address();\n if (address === null || typeof address === \"string\") {\n resume(Effect.fail(serverError(\"listen\", \"server did not expose a TCP address\")));\n return;\n }\n resume(Effect.succeed(Object.freeze({ host: address.address, port: address.port })));\n };\n server.once(\"error\", onError);\n server.once(\"listening\", onListening);\n try {\n server.listen({ host, port });\n }\n catch (error) {\n onError(asError(error));\n }\n return Effect.sync(() => cleanup());\n });\n}\nfunction serveRequest<Requirements>(session: ReportViewSession<Requirements>, request: HttpRequest, advertisedAuthorities: ReadonlySet<string>): Effect.Effect<void> {\n const authority = requestAuthority(request.request.headers.host);\n if (authority === undefined || !advertisedAuthorities.has(authority)) {\n return Effect.sync(() => sendText(request.response, 421, \"view host is not advertised\"));\n }\n if (request.request.method !== \"GET\" && request.request.method !== \"HEAD\") {\n return Effect.sync(() => sendText(request.response, 405, \"method not allowed\", { allow: \"GET, HEAD\" }));\n }\n const url = requestUrl(request.request);\n if (url === undefined) {\n return Effect.sync(() => sendText(request.response, 400, \"bad request\"));\n }\n if (url.pathname === \"/healthz\") {\n return Effect.sync(() => sendText(request.response, 200, \"ok\"));\n }\n return session.snapshot.pipe(Effect.flatMap((state) => {\n const headers = Object.freeze({\n \"cache-control\": \"no-store\",\n \"x-niceeval-report-revision\": String(state.current.revision),\n ...(state.lastProblem === undefined ? {} : { \"x-niceeval-last-rebuild-problem\": \"1\" }),\n });\n const hostTextPrefix = state.lastProblem === undefined\n ? `Revision ${state.current.revision}\\n\\n`\n : `Revision ${state.current.revision}\\nLast rebuild failed: ${state.lastProblem.summary}\\n\\n`;\n if (url.pathname === \"/_niceeval/execution.json\") {\n return Effect.flatMap(renderReportExecutionJson({ execution: state.current.execution }), (body) => Effect.sync(() => send(request.response, 200, body, \"application/json; charset=utf-8\", headers)));\n }\n if (url.pathname === \"/_niceeval/problems\" || url.pathname === \"/_niceeval/problems/\") {\n return Effect.sync(() => send(request.response, 200, renderHtml(`${hostTextPrefix}${renderReportExecutionProblemsText(state.current.execution)}`, state.current.theme), \"text/html; charset=utf-8\", headers));\n }\n const download = downloadForPath(url.pathname, state.current.execution);\n if (download !== undefined) {\n return Effect.sync(() => send(request.response, 200, download.bytes, downloadContentType(download.mediaType), {\n ...headers,\n \"content-disposition\": \"attachment\",\n \"x-content-type-options\": \"nosniff\",\n }));\n }\n const canonical = canonicalPagePath(url.pathname);\n if (canonical !== undefined &&\n canonical !== url.pathname &&\n pageForPath(canonical, state.current.execution) !== \"missing\") {\n return Effect.sync(() => redirect(request.response, canonical, headers));\n }\n const page = pageForPath(url.pathname, state.current.execution);\n if (page === \"missing\") {\n return Effect.sync(() => sendText(request.response, 404, url.pathname.startsWith(\"/downloads/\") ? \"download not found\" : \"page not found\", headers));\n }\n return Effect.sync(() => send(request.response, 200, page === \"fallback\"\n ? renderHtml(`${hostTextPrefix}${renderReportExecutionText({ execution: state.current.execution })}`, state.current.theme)\n : renderHtml({\n document: page.document,\n route: page.route,\n theme: state.current.theme,\n hostMetadata: {\n revision: state.current.revision,\n ...(state.lastProblem === undefined\n ? {}\n : { lastRebuildProblem: state.lastProblem.summary }),\n },\n }), \"text/html; charset=utf-8\", headers));\n }), Effect.catchAll(() => Effect.sync(() => sendText(request.response, 503, \"report view session is closed\"))));\n}\nfunction refreshSession<Requirements>(session: ReportViewSession<Requirements>, watches: WatchResources, onRebuild: ViewOptions[\"onRebuild\"]): Effect.Effect<void, ReportViewSessionClosed, Requirements> {\n return Effect.gen(function* () {\n const before = yield* session.snapshot;\n yield* session.refresh;\n const after = yield* session.snapshot;\n if (after.current.revision <= before.current.revision) {\n // Failure kept last-good execution and the prior recoverable watch set.\n return;\n }\n // One successful revision owns one fixed execution and one next-round watch set.\n yield* Effect.sync(() => replaceWatchInputs(watches, after.current.watchInputs));\n if (onRebuild !== undefined) {\n yield* Effect.try({\n try: () => onRebuild(new Date()),\n catch: () => undefined,\n }).pipe(Effect.ignore);\n }\n });\n}\nfunction optionWatchInputs<Requirements>(options: ViewOptions<Requirements>): readonly string[] {\n const values = options.watchInputs ?? [];\n return Object.freeze([...new Set(values.map((value) => resolve(value)))]);\n}\nfunction openWatchers(inputs: readonly string[], onChange: () => void): Effect.Effect<WatchResources, NodeViewServerError> {\n return Effect.try({\n try: () => {\n const resources: WatchResources = {\n current: closedWatchSet(),\n onChange,\n closed: false,\n };\n try {\n const opening = openWatchSet(resources, inputs);\n publishWatchSet(resources, opening);\n return resources;\n }\n catch (error) {\n closeWatchSet(resources.current);\n throw error;\n }\n },\n catch: (error): NodeViewServerError => serverError(\"watch\", asError(error).message),\n });\n}\n/**\n * Atomically swaps the next-round watch set after a successful revision. Failure\n * paths never call this, so last-good entry edges remain recoverable.\n */\nfunction replaceWatchInputs(resources: WatchResources, inputs: readonly string[]): void {\n if (resources.closed)\n return;\n try {\n const opening = openWatchSet(resources, inputs);\n if (resources.closed) {\n closeWatchSet(opening);\n return;\n }\n // No Effect boundary or callback can interleave this publication: the\n // replacement is entirely synchronous after the candidate validated.\n publishWatchSet(resources, opening);\n }\n catch {\n // A transient directory race must not discard the previous recoverable\n // closure. The next filesystem hint retries full reconciliation.\n }\n}\nfunction closedWatchSet(): WatchSet {\n return {\n inputs: Object.freeze([]),\n watchers: new Map(),\n state: \"closed\",\n };\n}\n/**\n * Opens a whole candidate closure without touching the published set. This is\n * also the full reconciliation path for directory-tree changes: fs.watch is a\n * hint, so every event rescans all inputs before requesting a rebuild.\n */\nfunction openWatchSet(resources: WatchResources, inputs: readonly string[]): WatchSet {\n const watchSet: WatchSet = {\n inputs: normalizeWatchInputs(inputs),\n watchers: new Map(),\n state: \"opening\",\n };\n try {\n synchronizeWatchSet(resources, watchSet);\n return watchSet;\n }\n catch (error) {\n closeWatchSet(watchSet);\n throw error;\n }\n}\n/** Watch the Record root and its current Run directories without a polling loop. */\nfunction synchronizeWatchSet(resources: WatchResources, watchSet: WatchSet): void {\n for (const input of watchSet.inputs) {\n let inputIsDirectory: boolean;\n try {\n inputIsDirectory = statSync(input).isDirectory();\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n // A missing config / module / Record root remains observable through its\n // parent directory. It can appear later without restarting the host.\n watchNamedInput(resources, watchSet, dirname(input), basename(input));\n continue;\n }\n if (inputIsDirectory) {\n watchDirectoryTree(resources, watchSet, input, 0);\n }\n else {\n watchNamedInput(resources, watchSet, dirname(input), basename(input));\n }\n }\n}\nfunction normalizeWatchInputs(inputs: readonly string[]): readonly string[] {\n return Object.freeze([...new Set(inputs.map((input) => resolve(input)))].sort());\n}\nconst WATCH_DIRECTORY_DEPTH_MAX = 4;\nfunction watchDirectoryTree(resources: WatchResources, watchSet: WatchSet, directory: string, depth: number): void {\n try {\n watchDirectory(resources, watchSet, directory);\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n watchNamedInput(resources, watchSet, dirname(directory), basename(directory));\n return;\n }\n if (depth >= WATCH_DIRECTORY_DEPTH_MAX)\n return;\n let entries: readonly {\n readonly name: string;\n isDirectory(): boolean;\n }[];\n try {\n entries = readdirSync(directory, { withFileTypes: true });\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n watchNamedInput(resources, watchSet, dirname(directory), basename(directory));\n return;\n }\n for (const entry of entries) {\n if (entry.isDirectory()) {\n watchDirectoryTree(resources, watchSet, resolve(directory, entry.name), depth + 1);\n }\n }\n}\nfunction watchDirectory(resources: WatchResources, watchSet: WatchSet, directory: string): void {\n const key = `directory:${directory}`;\n if (watchSet.watchers.has(key))\n return;\n const watcher = watch(directory, () => watchSetChanged(resources, watchSet));\n watchSet.watchers.set(key, watcher);\n watchFailure(resources, watchSet, key, watcher);\n}\nfunction watchNamedInput(resources: WatchResources, watchSet: WatchSet, directory: string, name: string): void {\n const key = `named:${directory}:${name}`;\n if (watchSet.watchers.has(key))\n return;\n const watcher = watch(directory, (_event, filename) => {\n if (filename === null || filename.toString() === name)\n watchSetChanged(resources, watchSet);\n });\n watchSet.watchers.set(key, watcher);\n watchFailure(resources, watchSet, key, watcher);\n}\nfunction watchFailure(resources: WatchResources, watchSet: WatchSet, key: string, watcher: FSWatcher): void {\n watcher.once(\"error\", () => {\n if (watchSet.watchers.get(key) === watcher) {\n watchSet.watchers.delete(key);\n closeWatcher(watcher);\n }\n watchSetChanged(resources, watchSet);\n });\n}\nfunction watchSetChanged(resources: WatchResources, watchSet: WatchSet): void {\n if (!isCurrentWatchSet(resources, watchSet))\n return;\n // A new Run gets its own directory before its completion marker. Reconcile\n // the whole closure now so the marker change is observed as well as the\n // first incomplete rebuild. Failure leaves this complete old set active.\n replaceWatchInputs(resources, watchSet.inputs);\n if (isCurrentWatchSet(resources, resources.current))\n resources.onChange();\n}\nfunction isCurrentWatchSet(resources: WatchResources, watchSet: WatchSet): boolean {\n return !resources.closed && resources.current === watchSet && watchSet.state === \"active\";\n}\n/** Publishes a fully opened candidate, then retires the old closure synchronously. */\nfunction publishWatchSet(resources: WatchResources, opening: WatchSet): void {\n if (resources.closed) {\n closeWatchSet(opening);\n return;\n }\n const previous = resources.current;\n opening.state = \"active\";\n resources.current = opening;\n closeWatchSet(previous);\n}\nfunction closeWatchSet(watchSet: WatchSet): void {\n if (watchSet.state === \"closed\")\n return;\n watchSet.state = \"closed\";\n const watchers = [...watchSet.watchers.values()];\n watchSet.watchers.clear();\n for (const watcher of watchers)\n closeWatcher(watcher);\n}\nfunction closeWatcher(watcher: FSWatcher): void {\n try {\n watcher.close();\n }\n catch {\n // Closing is best-effort and idempotent at the Node boundary.\n }\n}\nfunction closeResources(resources: ServerResources): Effect.Effect<void> {\n return Effect.suspend(() => {\n if (resources.closed)\n return Effect.void;\n resources.closed = true;\n return Effect.zipRight(Effect.sync(() => {\n resources.requests.close();\n resources.refreshes.close();\n for (const socket of resources.sockets)\n socket.destroy();\n }), closeServer(resources.server));\n });\n}\nfunction closeWatchers(resources: WatchResources): Effect.Effect<void> {\n return Effect.suspend(() => {\n if (resources.closed)\n return Effect.void;\n resources.closed = true;\n return Effect.sync(() => closeWatchSet(resources.current));\n });\n}\nfunction closeServer(server: Server): Effect.Effect<void> {\n return Effect.async((resume) => {\n if (!server.listening) {\n resume(Effect.void);\n return Effect.void;\n }\n try {\n server.close(() => resume(Effect.void));\n }\n catch {\n resume(Effect.void);\n }\n return Effect.void;\n });\n}\nfunction pageForPath(pathname: string, execution: ReportExecution): PageLookup {\n const route = routeForOutputPath(pathname);\n if (route === undefined)\n return \"missing\";\n const page = execution.pages.find((candidate): candidate is RenderedPage => candidate.state === \"rendered\" && candidate.route === route);\n if (page !== undefined)\n return page;\n return route === \"/\" ? \"fallback\" : \"missing\";\n}\nfunction canonicalPagePath(pathname: string): string | undefined {\n if (routeForOutputPath(pathname) !== undefined)\n return pathname;\n const direct = reportRoute(pathname);\n if (Either.isRight(direct) && direct.right !== \"/\") {\n return `${direct.right}/index.html`;\n }\n if (pathname.endsWith(\"/\") && pathname.length > 1) {\n const withoutTrailingSlash = pathname.slice(0, -1);\n const parsed = reportRoute(withoutTrailingSlash);\n if (Either.isRight(parsed))\n return `${parsed.right}/index.html`;\n }\n return undefined;\n}\nfunction routeForOutputPath(pathname: string): ReportRoute | undefined {\n if (pathname === \"/\" || pathname === \"/index.html\") {\n return reportRoute(\"/\").pipe(Either.getOrUndefined);\n }\n if (!pathname.endsWith(\"/index.html\"))\n return undefined;\n return reportRoute(pathname.slice(0, -\"/index.html\".length)).pipe(Either.getOrUndefined);\n}\nfunction downloadForPath(pathname: string, execution: ReportExecution): {\n readonly bytes: Uint8Array;\n readonly mediaType: string;\n} | undefined {\n const prefix = \"/downloads/\";\n if (!pathname.startsWith(prefix))\n return undefined;\n const path = pathname.slice(prefix.length);\n if (!isReportDownloadPath(path))\n return undefined;\n for (const download of execution.downloads) {\n if (download.state !== \"built\")\n continue;\n const file = download.files.find((candidate) => candidate.path === path);\n if (file !== undefined)\n return file;\n }\n return undefined;\n}\nfunction requestUrl(request: IncomingMessage): URL | undefined {\n try {\n return new URL(request.url ?? \"/\", \"http://127.0.0.1\");\n }\n catch {\n return undefined;\n }\n}\nfunction sendText(response: ServerResponse, status: number, body: string, headers: Readonly<Record<string, string>> = {}): void {\n send(response, status, body, \"text/plain; charset=utf-8\", headers);\n}\nfunction send(response: ServerResponse, status: number, body: string | Uint8Array, contentType: string, headers: Readonly<Record<string, string>>): void {\n if (response.destroyed)\n return;\n response.writeHead(status, { \"content-type\": contentType, ...headers });\n response.end(body);\n}\nfunction redirect(response: ServerResponse, location: string, headers: Readonly<Record<string, string>>): void {\n if (response.destroyed)\n return;\n response.writeHead(308, { location, ...headers });\n response.end();\n}\nconst SAFE_MEDIA_TYPE = /^[A-Za-z0-9!#$%&'*+.^_`|~-]+\\/[A-Za-z0-9!#$%&'*+.^_`|~-]+$/;\nfunction downloadContentType(mediaType: string): string {\n return SAFE_MEDIA_TYPE.test(mediaType) ? mediaType : \"application/octet-stream\";\n}\nfunction viewUrls(host: string, port: number): readonly string[] {\n if (host === \"0.0.0.0\") {\n return urlsForAddresses([\n \"127.0.0.1\",\n ...interfaceAddresses(\"IPv4\"),\n ], port);\n }\n if (host === \"::\") {\n return urlsForAddresses([\n \"::1\",\n ...interfaceAddresses(\"IPv6\"),\n ], port);\n }\n return Object.freeze([viewUrl(host, port)]);\n}\nfunction interfaceAddresses(family: \"IPv4\" | \"IPv6\"): readonly string[] {\n const addresses: string[] = [];\n for (const entries of Object.values(networkInterfaces())) {\n for (const entry of entries ?? []) {\n if (entry.family === family &&\n !entry.internal &&\n !entry.address.includes(\"%\") &&\n (family !== \"IPv6\" || entry.scopeid === 0)) {\n addresses.push(entry.address);\n }\n }\n }\n return addresses.sort((left, right) => left.localeCompare(right));\n}\nfunction urlsForAddresses(addresses: readonly string[], port: number): readonly string[] {\n return Object.freeze([...new Set(addresses)].map((address) => viewUrl(address, port)));\n}\nfunction viewUrl(host: string, port: number): string {\n return new URL(`http://${formatHost(host)}:${port}/`).toString();\n}\nfunction requestAuthority(value: string | undefined): string | undefined {\n if (value === undefined)\n return undefined;\n try {\n const url = new URL(`http://${value}`);\n if (url.username.length > 0 || url.password.length > 0)\n return undefined;\n return url.host;\n }\n catch {\n return undefined;\n }\n}\nfunction formatHost(host: string): string {\n return host.includes(\":\") ? `[${host}]` : host;\n}\nfunction serverError(operation: NodeViewServerError[\"operation\"], reason: string): NodeViewServerError {\n return Object.freeze({ code: \"report-view-server-failed\", operation, reason });\n}\nfunction asError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\nfunction isMissingPath(error: unknown): boolean {\n if (typeof error !== \"object\" || error === null)\n return false;\n const code = Reflect.get(error, \"code\");\n return code === \"ENOENT\" || code === \"ENOTDIR\";\n}\n"]}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"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","sourcesContent":["// The Node view host owns transport and watch lifetime only. Its caller has\n// already closed Record -> Sample -> Report into a fixed execution rebuild;\n// this module never reopens Record facts.\nimport { readdirSync, statSync, watch, type FSWatcher } from \"node:fs\";\nimport { createServer, type IncomingMessage, type Server, type ServerResponse } from \"node:http\";\nimport type { Socket } from \"node:net\";\nimport { networkInterfaces } from \"node:os\";\nimport { basename, dirname, resolve } from \"node:path\";\nimport { Effect } from \"effect\";\nimport type * as Scope from \"effect/Scope\";\nimport { closedSiteRevisionData, type ClosedSiteFile, type ClosedSiteRevision, } from \"../report/execution/model.ts\";\nimport { openReportViewSession, type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSessionClosed, type ReportViewSession, } from \"../report/host/view-session.ts\";\nimport type { ViewScanOptions } from \"./data.ts\";\nexport interface NodeViewServerError {\n readonly code: \"report-view-server-failed\";\n readonly operation: \"open\" | \"listen\" | \"watch\";\n readonly reason: string;\n}\nexport interface ViewOptions<Requirements = never> {\n readonly input?: string;\n readonly out?: string;\n readonly port?: number;\n /** Defaults to loopback. An explicit address opts into that network exposure. */\n readonly host?: string;\n /** Retained for the CLI-shaped facade; it is never interpreted as Record data. */\n readonly scan?: ViewScanOptions;\n /**\n * Bootstrap watch inputs when the session/request has none yet. After each\n * successful rebuild the session revision owns the next-round watch set.\n */\n readonly watchInputs?: readonly string[];\n readonly onRebuild?: (completedAt: Date) => void;\n /** An already-open scoped session owned by the caller. */\n readonly session?: ReportViewSession<Requirements>;\n /** Or let this scope open a session from a caller-supplied current rebuild. */\n readonly request?: OpenReportViewSessionInput<Requirements>;\n}\n/** The native Effect-facing server handle. Its resources are also Scope-owned. */\nexport interface ReportViewServer {\n readonly url: string;\n readonly urls: readonly string[];\n readonly close: Effect.Effect<void>;\n}\nexport type RebuildReason = \"records\" | \"modules\";\ninterface InboxClosed {\n readonly code: \"report-view-inbox-closed\";\n}\nconst inboxClosed: InboxClosed = Object.freeze({ code: \"report-view-inbox-closed\" });\ninterface HttpRequest {\n readonly request: IncomingMessage;\n readonly response: ServerResponse;\n}\nconst HTTP_REQUEST_QUEUE_MAX = 128;\n/**\n * A small callback-to-Effect bridge. Node callbacks only enqueue a value; the\n * long-lived scoped Effect performs every session operation, so callbacks do\n * not create private runtimes or invoke `runPromise`/`runSync`.\n */\nclass Inbox<Value> {\n private readonly values: Value[] = [];\n private resume: ((effect: Effect.Effect<Value, InboxClosed>) => void) | undefined;\n private closed = false;\n constructor(private readonly capacity: number) { }\n take(): Effect.Effect<Value, InboxClosed> {\n return Effect.async((resume) => {\n if (this.values.length > 0) {\n resume(Effect.succeed(this.values.shift()!));\n return Effect.void;\n }\n if (this.closed) {\n resume(Effect.fail(inboxClosed));\n return Effect.void;\n }\n this.resume = resume;\n return Effect.sync(() => {\n if (this.resume === resume)\n this.resume = undefined;\n });\n });\n }\n offer(value: Value): boolean {\n if (this.closed)\n return false;\n const resume = this.resume;\n if (resume === undefined) {\n if (this.values.length >= this.capacity)\n return false;\n this.values.push(value);\n return true;\n }\n this.resume = undefined;\n resume(Effect.succeed(value));\n return true;\n }\n close(): void {\n if (this.closed)\n return;\n this.closed = true;\n const resume = this.resume;\n this.resume = undefined;\n resume?.(Effect.fail(inboxClosed));\n }\n}\n/** Coalesces a burst of filesystem events into sequential refresh requests. */\nclass RefreshInbox {\n private pending = false;\n private resume: ((effect: Effect.Effect<void, InboxClosed>) => void) | undefined;\n private closed = false;\n take(): Effect.Effect<void, InboxClosed> {\n return Effect.async((resume) => {\n if (this.pending) {\n this.pending = false;\n resume(Effect.void);\n return Effect.void;\n }\n if (this.closed) {\n resume(Effect.fail(inboxClosed));\n return Effect.void;\n }\n this.resume = resume;\n return Effect.sync(() => {\n if (this.resume === resume)\n this.resume = undefined;\n });\n });\n }\n request(): void {\n if (this.closed)\n return;\n const resume = this.resume;\n if (resume === undefined) {\n this.pending = true;\n return;\n }\n this.resume = undefined;\n resume(Effect.void);\n }\n close(): void {\n if (this.closed)\n return;\n this.closed = true;\n const resume = this.resume;\n this.resume = undefined;\n resume?.(Effect.fail(inboxClosed));\n }\n}\ninterface ServerResources {\n readonly server: Server;\n readonly sockets: Set<Socket>;\n readonly requests: Inbox<HttpRequest>;\n readonly refreshes: RefreshInbox;\n closed: boolean;\n}\ninterface WatchResources {\n /** The one currently published watcher closure. */\n current: WatchSet;\n /** Stable refresh request callback for the current server lifetime. */\n onChange: () => void;\n closed: boolean;\n}\n/**\n * A complete watcher closure. A candidate stays `opening` until every watch\n * for its current directory tree has opened. Callbacks test both this state\n * and the owning resource's current reference, so an old or failed candidate\n * cannot enqueue a late rebuild.\n */\ninterface WatchSet {\n readonly inputs: readonly string[];\n readonly watchers: Map<string, FSWatcher>;\n state: \"opening\" | \"active\" | \"closed\";\n}\n/**\n * Opens a real HTTP server, defaulting to loopback. A watcher event only requests\n * `session.refresh`; the session serializes rebuild and close, preserves the\n * last good immutable execution and recoverable watch set, and publishes a new\n * revision only on success. The Node server then atomically replaces its\n * fs.watch resources from that revision's watchInputs.\n */\nexport function openViewServer<Requirements>(options: ViewOptions<Requirements> = {}): Effect.Effect<ReportViewServer, NodeViewServerError | ReportViewOpenError, Scope.Scope | Requirements> {\n return Effect.gen(function* () {\n const serverScope = yield* Effect.scope;\n if (options.session !== undefined && options.request !== undefined) {\n return yield* Effect.fail(serverError(\"open\", \"provide either session or request, not both\"));\n }\n const host = (options.host ?? \"127.0.0.1\").trim();\n if (host.length === 0) {\n return yield* Effect.fail(serverError(\"open\", \"view host must not be empty\"));\n }\n if (host.includes(\"%\")) {\n return yield* Effect.fail(serverError(\"open\", \"scoped IPv6 view hosts are not supported\"));\n }\n const port = options.port ?? 0;\n if (!Number.isInteger(port) || port < 0 || port > 65535) {\n return yield* Effect.fail(serverError(\"open\", `view port must be an integer from 0 through 65535, got ${port}`));\n }\n const session = options.session ?? (options.request === undefined\n ? yield* Effect.fail(serverError(\"open\", \"view needs a scoped ReportViewSession or current rebuild request\"))\n : yield* openReportViewSession({\n ...options.request,\n // Bootstrap the opening revision when the request omitted a watch set.\n watchInputs: options.request.watchInputs ?? optionWatchInputs(options),\n }));\n const opening = yield* session.snapshot.pipe(Effect.mapError(() => serverError(\"open\", \"report view session closed before watchers opened\")));\n const initialWatchInputs = opening.current.watchInputs.length > 0\n ? opening.current.watchInputs\n : optionWatchInputs(options);\n const resources = yield* Effect.acquireRelease(Effect.sync(() => makeResources()), (value) => closeResources(value));\n const address = yield* listen(resources.server, host, port);\n const urls = viewUrls(host, address.port);\n const advertisedAuthorities = Object.freeze(new Set(urls.map((url) => new URL(url).host)));\n const watches = yield* Effect.acquireRelease(openWatchers(initialWatchInputs, () => resources.refreshes.request()), (value) => closeWatchers(value));\n yield* Effect.forkScoped(Effect.forever(Effect.flatMap(resources.requests.take(), (request) => serveRequest(session, request, advertisedAuthorities))).pipe(Effect.catchAll(() => Effect.void)));\n yield* Effect.forkScoped(Effect.forever(Effect.flatMap(resources.refreshes.take(), () => registerRefreshIntent(session, watches, options.onRebuild, serverScope))).pipe(Effect.catchAll(() => Effect.void)));\n const close = Effect.zipRight(closeWatchers(watches), closeResources(resources));\n return Object.freeze({ url: urls[0]!, urls, close });\n });\n}\nfunction makeResources(): ServerResources {\n const requests = new Inbox<HttpRequest>(HTTP_REQUEST_QUEUE_MAX);\n const refreshes = new RefreshInbox();\n const sockets = new Set<Socket>();\n const server = createServer((request, response) => {\n if (!requests.offer(Object.freeze({ request, response }))) {\n sendText(response, 503, \"report view is busy; retry shortly\");\n }\n });\n server.on(\"connection\", (socket) => {\n sockets.add(socket);\n socket.once(\"close\", () => sockets.delete(socket));\n });\n return { server, sockets, requests, refreshes, closed: false };\n}\nfunction listen(server: Server, host: string, port: number): Effect.Effect<{\n readonly host: string;\n readonly port: number;\n}, NodeViewServerError> {\n return Effect.async((resume) => {\n const cleanup = (): void => {\n server.off(\"error\", onError);\n server.off(\"listening\", onListening);\n };\n const onError = (error: Error): void => {\n cleanup();\n resume(Effect.fail(serverError(\"listen\", error.message)));\n };\n const onListening = (): void => {\n cleanup();\n const address = server.address();\n if (address === null || typeof address === \"string\") {\n resume(Effect.fail(serverError(\"listen\", \"server did not expose a TCP address\")));\n return;\n }\n resume(Effect.succeed(Object.freeze({ host: address.address, port: address.port })));\n };\n server.once(\"error\", onError);\n server.once(\"listening\", onListening);\n try {\n server.listen({ host, port });\n }\n catch (error) {\n onError(asError(error));\n }\n return Effect.sync(() => cleanup());\n });\n}\nfunction serveRequest<Requirements>(session: ReportViewSession<Requirements>, request: HttpRequest, advertisedAuthorities: ReadonlySet<string>): Effect.Effect<void> {\n const authority = requestAuthority(request.request.headers.host);\n if (authority === undefined || !advertisedAuthorities.has(authority)) {\n return Effect.sync(() => sendText(request.response, 421, \"view host is not advertised\"));\n }\n if (request.request.method !== \"GET\" && request.request.method !== \"HEAD\") {\n return Effect.sync(() => sendText(request.response, 405, \"method not allowed\", { allow: \"GET, HEAD\" }));\n }\n const url = requestUrl(request.request);\n if (url === undefined) {\n return Effect.sync(() => sendText(request.response, 400, \"bad request\"));\n }\n if (url.pathname === \"/healthz\") {\n return Effect.sync(() => sendText(request.response, 200, \"ok\"));\n }\n return session.snapshot.pipe(Effect.flatMap((state) => {\n const headers = Object.freeze({\n \"cache-control\": \"no-store\",\n \"x-niceeval-report-revision\": String(state.current.revision),\n \"x-niceeval-report-content-hash\": closedSiteRevisionData(state.current.site).identity.contentHash,\n ...(state.lastProblem === undefined ? {} : { \"x-niceeval-last-rebuild-problem\": \"1\" }),\n });\n // Optional host transport probe. It contains no Report body and does\n // not belong to the content-addressed file mapping. The HTML response\n // below establishes its own served revision through an HttpOnly cookie;\n // after publication this endpoint can report that the browser document\n // is stale without putting revision information into its body bytes.\n if (url.pathname === \"/_niceeval/refresh\") {\n const servedIdentity = reportRevisionCookieValue(request.request.headers.cookie);\n return Effect.sync(() => send(request.response, 204, new Uint8Array(), \"text/plain; charset=utf-8\", {\n ...headers,\n \"x-niceeval-view-stale\": servedIdentity === undefined || servedIdentity === closedSiteRevisionData(state.current.site).identity.contentHash\n ? \"0\"\n : \"1\",\n }));\n }\n const resolved = siteFileForPath(url.pathname, state.current.site);\n if (resolved.state === \"redirect\") {\n return Effect.sync(() => redirect(request.response, resolved.location, headers));\n }\n if (resolved.state === \"missing\") {\n return Effect.sync(() => sendText(request.response, 404, url.pathname.startsWith(\"/downloads/\") ? \"download not found\" : \"page not found\", headers));\n }\n return Effect.sync(() => send(request.response, 200, resolved.file.bytes, siteContentType(resolved.file.mediaType), resolved.file.path.startsWith(\"downloads/\")\n ? { ...headers, \"content-disposition\": \"attachment\", \"x-content-type-options\": \"nosniff\" }\n : resolved.file.mediaType.startsWith(\"text/html;\")\n ? { ...headers, \"set-cookie\": reportRevisionCookie(closedSiteRevisionData(state.current.site).identity.contentHash) }\n : headers));\n }), Effect.catchAll(() => Effect.sync(() => sendText(request.response, 503, \"report view session is closed\"))));\n}\n/**\n * Register immediately, then subscribe in a scoped waiter. The refresh inbox\n * can therefore accept a newer intent while this candidate still performs\n * author work; only a published outcome mutates watcher ownership or emits a\n * browser-facing rebuild notification.\n */\nfunction registerRefreshIntent<Requirements>(session: ReportViewSession<Requirements>, watches: WatchResources, onRebuild: ViewOptions[\"onRebuild\"], serverScope: Scope.Scope): Effect.Effect<void, ReportViewSessionClosed, Requirements> {\n return Effect.gen(function* () {\n const intent = yield* session.refresh;\n yield* Effect.forkIn(intent.outcome.pipe(Effect.flatMap((outcome) => outcome.state !== \"published\"\n ? Effect.void\n : Effect.gen(function* () {\n // One published revision owns its corresponding successful watch set.\n yield* Effect.sync(() => replaceWatchInputs(watches, outcome.revision.watchInputs));\n if (onRebuild !== undefined) {\n yield* Effect.try({\n try: () => onRebuild(new Date()),\n catch: () => undefined,\n }).pipe(Effect.ignore);\n }\n }))), serverScope);\n });\n}\nfunction optionWatchInputs<Requirements>(options: ViewOptions<Requirements>): readonly string[] {\n const values = options.watchInputs ?? [];\n return Object.freeze([...new Set(values.map((value) => resolve(value)))]);\n}\nfunction openWatchers(inputs: readonly string[], onChange: () => void): Effect.Effect<WatchResources, NodeViewServerError> {\n return Effect.try({\n try: () => {\n const resources: WatchResources = {\n current: closedWatchSet(),\n onChange,\n closed: false,\n };\n try {\n const opening = openWatchSet(resources, inputs);\n publishWatchSet(resources, opening);\n return resources;\n }\n catch (error) {\n closeWatchSet(resources.current);\n throw error;\n }\n },\n catch: (error): NodeViewServerError => serverError(\"watch\", asError(error).message),\n });\n}\n/**\n * Atomically swaps the next-round watch set after a successful revision. Failure\n * paths never call this, so last-good entry edges remain recoverable.\n */\nfunction replaceWatchInputs(resources: WatchResources, inputs: readonly string[]): void {\n if (resources.closed)\n return;\n try {\n const opening = openWatchSet(resources, inputs);\n if (resources.closed) {\n closeWatchSet(opening);\n return;\n }\n // No Effect boundary or callback can interleave this publication: the\n // replacement is entirely synchronous after the candidate validated.\n publishWatchSet(resources, opening);\n }\n catch {\n // A transient directory race must not discard the previous recoverable\n // closure. The next filesystem hint retries full reconciliation.\n }\n}\nfunction closedWatchSet(): WatchSet {\n return {\n inputs: Object.freeze([]),\n watchers: new Map(),\n state: \"closed\",\n };\n}\n/**\n * Opens a whole candidate closure without touching the published set. This is\n * also the full reconciliation path for directory-tree changes: fs.watch is a\n * hint, so every event rescans all inputs before requesting a rebuild.\n */\nfunction openWatchSet(resources: WatchResources, inputs: readonly string[]): WatchSet {\n const watchSet: WatchSet = {\n inputs: normalizeWatchInputs(inputs),\n watchers: new Map(),\n state: \"opening\",\n };\n try {\n synchronizeWatchSet(resources, watchSet);\n return watchSet;\n }\n catch (error) {\n closeWatchSet(watchSet);\n throw error;\n }\n}\n/** Watch the Record root and its current Run directories without a polling loop. */\nfunction synchronizeWatchSet(resources: WatchResources, watchSet: WatchSet): void {\n for (const input of watchSet.inputs) {\n let inputIsDirectory: boolean;\n try {\n inputIsDirectory = statSync(input).isDirectory();\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n // A missing config / module / Record root remains observable through its\n // parent directory. It can appear later without restarting the host.\n watchNamedInput(resources, watchSet, dirname(input), basename(input));\n continue;\n }\n if (inputIsDirectory) {\n watchDirectoryTree(resources, watchSet, input, 0);\n }\n else {\n watchNamedInput(resources, watchSet, dirname(input), basename(input));\n }\n }\n}\nfunction normalizeWatchInputs(inputs: readonly string[]): readonly string[] {\n return Object.freeze([...new Set(inputs.map((input) => resolve(input)))].sort());\n}\nconst WATCH_DIRECTORY_DEPTH_MAX = 4;\nfunction watchDirectoryTree(resources: WatchResources, watchSet: WatchSet, directory: string, depth: number): void {\n try {\n watchDirectory(resources, watchSet, directory);\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n watchNamedInput(resources, watchSet, dirname(directory), basename(directory));\n return;\n }\n if (depth >= WATCH_DIRECTORY_DEPTH_MAX)\n return;\n let entries: readonly {\n readonly name: string;\n isDirectory(): boolean;\n }[];\n try {\n entries = readdirSync(directory, { withFileTypes: true });\n }\n catch (error) {\n if (!isMissingPath(error))\n throw error;\n watchNamedInput(resources, watchSet, dirname(directory), basename(directory));\n return;\n }\n for (const entry of entries) {\n if (entry.isDirectory()) {\n watchDirectoryTree(resources, watchSet, resolve(directory, entry.name), depth + 1);\n }\n }\n}\nfunction watchDirectory(resources: WatchResources, watchSet: WatchSet, directory: string): void {\n const key = `directory:${directory}`;\n if (watchSet.watchers.has(key))\n return;\n const watcher = watch(directory, () => watchSetChanged(resources, watchSet));\n watchSet.watchers.set(key, watcher);\n watchFailure(resources, watchSet, key, watcher);\n}\nfunction watchNamedInput(resources: WatchResources, watchSet: WatchSet, directory: string, name: string): void {\n const key = `named:${directory}:${name}`;\n if (watchSet.watchers.has(key))\n return;\n const watcher = watch(directory, (_event, filename) => {\n if (filename === null || filename.toString() === name)\n watchSetChanged(resources, watchSet);\n });\n watchSet.watchers.set(key, watcher);\n watchFailure(resources, watchSet, key, watcher);\n}\nfunction watchFailure(resources: WatchResources, watchSet: WatchSet, key: string, watcher: FSWatcher): void {\n watcher.once(\"error\", () => {\n if (watchSet.watchers.get(key) === watcher) {\n watchSet.watchers.delete(key);\n closeWatcher(watcher);\n }\n watchSetChanged(resources, watchSet);\n });\n}\nfunction watchSetChanged(resources: WatchResources, watchSet: WatchSet): void {\n if (!isCurrentWatchSet(resources, watchSet))\n return;\n // A new Run gets its own directory before its completion marker. Reconcile\n // the whole closure now so the marker change is observed as well as the\n // first incomplete rebuild. Failure leaves this complete old set active.\n replaceWatchInputs(resources, watchSet.inputs);\n if (isCurrentWatchSet(resources, resources.current))\n resources.onChange();\n}\nfunction isCurrentWatchSet(resources: WatchResources, watchSet: WatchSet): boolean {\n return !resources.closed && resources.current === watchSet && watchSet.state === \"active\";\n}\n/** Publishes a fully opened candidate, then retires the old closure synchronously. */\nfunction publishWatchSet(resources: WatchResources, opening: WatchSet): void {\n if (resources.closed) {\n closeWatchSet(opening);\n return;\n }\n const previous = resources.current;\n opening.state = \"active\";\n resources.current = opening;\n closeWatchSet(previous);\n}\nfunction closeWatchSet(watchSet: WatchSet): void {\n if (watchSet.state === \"closed\")\n return;\n watchSet.state = \"closed\";\n const watchers = [...watchSet.watchers.values()];\n watchSet.watchers.clear();\n for (const watcher of watchers)\n closeWatcher(watcher);\n}\nfunction closeWatcher(watcher: FSWatcher): void {\n try {\n watcher.close();\n }\n catch {\n // Closing is best-effort and idempotent at the Node boundary.\n }\n}\nfunction closeResources(resources: ServerResources): Effect.Effect<void> {\n return Effect.suspend(() => {\n if (resources.closed)\n return Effect.void;\n resources.closed = true;\n return Effect.zipRight(Effect.sync(() => {\n resources.requests.close();\n resources.refreshes.close();\n for (const socket of resources.sockets)\n socket.destroy();\n }), closeServer(resources.server));\n });\n}\nfunction closeWatchers(resources: WatchResources): Effect.Effect<void> {\n return Effect.suspend(() => {\n if (resources.closed)\n return Effect.void;\n resources.closed = true;\n return Effect.sync(() => closeWatchSet(resources.current));\n });\n}\nfunction closeServer(server: Server): Effect.Effect<void> {\n return Effect.async((resume) => {\n if (!server.listening) {\n resume(Effect.void);\n return Effect.void;\n }\n try {\n server.close(() => resume(Effect.void));\n }\n catch {\n resume(Effect.void);\n }\n return Effect.void;\n });\n}\ntype SitePathLookup = {\n readonly state: \"file\";\n readonly file: ClosedSiteFile;\n} | {\n readonly state: \"redirect\";\n readonly location: string;\n} | {\n readonly state: \"missing\";\n};\n/**\n * Resolves HTTP paths strictly through the current revision's finished file\n * map. There is intentionally no route callback, renderer, Sample, or Record\n * fallback here, so a request can never splice two revisions together.\n */\nfunction siteFileForPath(pathname: string, site: ClosedSiteRevision): SitePathLookup {\n if (!pathname.startsWith(\"/\") || pathname.includes(\"%\") || pathname.includes(\"\\\\\")) {\n return Object.freeze({ state: \"missing\" as const });\n }\n const requested = pathname.slice(1);\n const exact = requested === \"\" ? \"index.html\" : requested;\n const revision = closedSiteRevisionData(site);\n const files = revision.files;\n const direct = files.find((file) => file.path === exact);\n if (direct !== undefined)\n return Object.freeze({ state: \"file\" as const, file: direct });\n // A report may deliberately declare its first Page at /overview (or another\n // route), so its immutable closure has no root index.html. The advertised\n // root must still land on that revision's canonical entry route rather than\n // becoming a host-generated 404 or re-entering Report execution.\n if (requested === \"\" && revision.defaultRoute !== undefined) {\n const entryFile = staticPageFileForRoute(revision.defaultRoute);\n if (files.some((file) => file.path === entryFile)) {\n return Object.freeze({ state: \"redirect\" as const, location: revision.defaultRoute });\n }\n }\n // Keep direct Page URLs convenient without manufacturing a different body.\n // The redirect selects the exact generated index.html path from this same map.\n const indexPath = requested.endsWith(\"/\")\n ? `${requested}index.html`\n : `${requested}/index.html`;\n const page = files.find((file) => file.path === indexPath);\n if (page !== undefined) {\n return Object.freeze({ state: \"redirect\" as const, location: `/${indexPath}` });\n }\n return Object.freeze({ state: \"missing\" as const });\n}\nfunction staticPageFileForRoute(route: string): string {\n return route === \"/\" ? \"index.html\" : `${route.slice(1)}/index.html`;\n}\nfunction requestUrl(request: IncomingMessage): URL | undefined {\n try {\n return new URL(request.url ?? \"/\", \"http://127.0.0.1\");\n }\n catch {\n return undefined;\n }\n}\nconst REPORT_REVISION_COOKIE = \"niceeval_report_revision\";\nfunction reportRevisionCookie(contentHash: string): string {\n return `${REPORT_REVISION_COOKIE}=${contentHash}; Path=/; SameSite=Strict; HttpOnly`;\n}\nfunction reportRevisionCookieValue(cookie: string | undefined): string | undefined {\n if (cookie === undefined)\n return undefined;\n for (const entry of cookie.split(\";\")) {\n const [name, ...value] = entry.trim().split(\"=\");\n if (name === REPORT_REVISION_COOKIE)\n return value.join(\"=\");\n }\n return undefined;\n}\nfunction sendText(response: ServerResponse, status: number, body: string, headers: Readonly<Record<string, string>> = {}): void {\n send(response, status, body, \"text/plain; charset=utf-8\", headers);\n}\nfunction send(response: ServerResponse, status: number, body: string | Uint8Array, contentType: string, headers: Readonly<Record<string, string>>): void {\n if (response.destroyed)\n return;\n response.writeHead(status, { \"content-type\": contentType, ...headers });\n response.end(body);\n}\nfunction redirect(response: ServerResponse, location: string, headers: Readonly<Record<string, string>>): void {\n if (response.destroyed)\n return;\n response.writeHead(308, { location, ...headers });\n response.end();\n}\nconst SAFE_MEDIA_TYPE = /^[A-Za-z0-9!#$%&'*+.^_`|~-]+\\/[A-Za-z0-9!#$%&'*+.^_`|~-]+$/;\nfunction siteContentType(mediaType: string): string {\n const base = mediaType.split(\";\", 1)[0]?.trim() ?? \"\";\n return SAFE_MEDIA_TYPE.test(base) ? base : \"application/octet-stream\";\n}\nfunction viewUrls(host: string, port: number): readonly string[] {\n if (host === \"0.0.0.0\") {\n return urlsForAddresses([\n \"127.0.0.1\",\n ...interfaceAddresses(\"IPv4\"),\n ], port);\n }\n if (host === \"::\") {\n return urlsForAddresses([\n \"::1\",\n ...interfaceAddresses(\"IPv6\"),\n ], port);\n }\n return Object.freeze([viewUrl(host, port)]);\n}\nfunction interfaceAddresses(family: \"IPv4\" | \"IPv6\"): readonly string[] {\n const addresses: string[] = [];\n for (const entries of Object.values(networkInterfaces())) {\n for (const entry of entries ?? []) {\n if (entry.family === family &&\n !entry.internal &&\n !entry.address.includes(\"%\") &&\n (family !== \"IPv6\" || entry.scopeid === 0)) {\n addresses.push(entry.address);\n }\n }\n }\n return addresses.sort((left, right) => left.localeCompare(right));\n}\nfunction urlsForAddresses(addresses: readonly string[], port: number): readonly string[] {\n return Object.freeze([...new Set(addresses)].map((address) => viewUrl(address, port)));\n}\nfunction viewUrl(host: string, port: number): string {\n return new URL(`http://${formatHost(host)}:${port}/`).toString();\n}\nfunction requestAuthority(value: string | undefined): string | undefined {\n if (value === undefined)\n return undefined;\n try {\n const url = new URL(`http://${value}`);\n if (url.username.length > 0 || url.password.length > 0)\n return undefined;\n return url.host;\n }\n catch {\n return undefined;\n }\n}\nfunction formatHost(host: string): string {\n return host.includes(\":\") ? `[${host}]` : host;\n}\nfunction serverError(operation: NodeViewServerError[\"operation\"], reason: string): NodeViewServerError {\n return Object.freeze({ code: \"report-view-server-failed\", operation, reason });\n}\nfunction asError(error: unknown): Error {\n return error instanceof Error ? error : new Error(String(error));\n}\nfunction isMissingPath(error: unknown): boolean {\n if (typeof error !== \"object\" || error === null)\n return false;\n const code = Reflect.get(error, \"code\");\n return code === \"ENOENT\" || code === \"ENOTDIR\";\n}\n"]}
|
package/dist/view/server.d.cts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
2
|
import type * as Scope from "effect/Scope";
|
|
3
|
-
import type { ReportExecution } from "../report/execution/model.cjs";
|
|
4
3
|
import { type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSession } from "../report/host/view-session.cjs";
|
|
5
|
-
import type { ThemeDefinition } from "../report/host/node/theme.cjs";
|
|
6
4
|
import type { ViewScanOptions } from "./data.cjs";
|
|
7
5
|
export interface NodeViewServerError {
|
|
8
6
|
readonly code: "report-view-server-failed";
|
|
@@ -23,10 +21,6 @@ export interface ViewOptions<Requirements = never> {
|
|
|
23
21
|
*/
|
|
24
22
|
readonly watchInputs?: readonly string[];
|
|
25
23
|
readonly onRebuild?: (completedAt: Date) => void;
|
|
26
|
-
/** Static export consumes this exact fixed execution. */
|
|
27
|
-
readonly reportExecution?: ReportExecution;
|
|
28
|
-
/** A one-shot static export Theme; an open session keeps its revision Theme. */
|
|
29
|
-
readonly theme?: ThemeDefinition;
|
|
30
24
|
/** An already-open scoped session owned by the caller. */
|
|
31
25
|
readonly session?: ReportViewSession<Requirements>;
|
|
32
26
|
/** Or let this scope open a session from a caller-supplied current rebuild. */
|
package/dist/view/server.d.mts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
2
|
import type * as Scope from "effect/Scope";
|
|
3
|
-
import type { ReportExecution } from "../report/execution/model.mjs";
|
|
4
3
|
import { type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSession } from "../report/host/view-session.mjs";
|
|
5
|
-
import type { ThemeDefinition } from "../report/host/node/theme.mjs";
|
|
6
4
|
import type { ViewScanOptions } from "./data.mjs";
|
|
7
5
|
export interface NodeViewServerError {
|
|
8
6
|
readonly code: "report-view-server-failed";
|
|
@@ -23,10 +21,6 @@ export interface ViewOptions<Requirements = never> {
|
|
|
23
21
|
*/
|
|
24
22
|
readonly watchInputs?: readonly string[];
|
|
25
23
|
readonly onRebuild?: (completedAt: Date) => void;
|
|
26
|
-
/** Static export consumes this exact fixed execution. */
|
|
27
|
-
readonly reportExecution?: ReportExecution;
|
|
28
|
-
/** A one-shot static export Theme; an open session keeps its revision Theme. */
|
|
29
|
-
readonly theme?: ThemeDefinition;
|
|
30
24
|
/** An already-open scoped session owned by the caller. */
|
|
31
25
|
readonly session?: ReportViewSession<Requirements>;
|
|
32
26
|
/** Or let this scope open a session from a caller-supplied current rebuild. */
|
package/dist/view/server.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
2
|
import type * as Scope from "effect/Scope";
|
|
3
|
-
import type { ReportExecution } from "../report/execution/model.js";
|
|
4
3
|
import { type OpenReportViewSessionInput, type ReportViewOpenError, type ReportViewSession } from "../report/host/view-session.js";
|
|
5
|
-
import type { ThemeDefinition } from "../report/host/node/theme.js";
|
|
6
4
|
import type { ViewScanOptions } from "./data.js";
|
|
7
5
|
export interface NodeViewServerError {
|
|
8
6
|
readonly code: "report-view-server-failed";
|
|
@@ -23,10 +21,6 @@ export interface ViewOptions<Requirements = never> {
|
|
|
23
21
|
*/
|
|
24
22
|
readonly watchInputs?: readonly string[];
|
|
25
23
|
readonly onRebuild?: (completedAt: Date) => void;
|
|
26
|
-
/** Static export consumes this exact fixed execution. */
|
|
27
|
-
readonly reportExecution?: ReportExecution;
|
|
28
|
-
/** A one-shot static export Theme; an open session keeps its revision Theme. */
|
|
29
|
-
readonly theme?: ThemeDefinition;
|
|
30
24
|
/** An already-open scoped session owned by the caller. */
|
|
31
25
|
readonly session?: ReportViewSession<Requirements>;
|
|
32
26
|
/** Or let this scope open a session from a caller-supplied current rebuild. */
|