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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sink.js","sourceRoot":"","sources":["sink.ts"],"names":[],"mappings":"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","sourcesContent":["// run 激活期间,底层模块(sandbox provider、budget 记账、reporter 兜底、中断处理……)不得\n// 直接写 stdout/stderr(见 docs/feature/experiments/cli.md「输出流和落盘节奏」与本文件对应的\n// PLAN 第 2 节「一个 run 内只有一个终端协调者」)。它们改调用这里的 reportXxx() 系列函数。\n//\n// - 有活跃 FeedbackCoordinator 时(coordinator.start() 之后、finish() 之前,见 cli.ts 的\n// run:start 接线),转发给它 —— coordinator 负责去重、clear→append→redraw 排序、按 profile\n// 分派给 renderer。\n// - 没有活跃 coordinator 时(run:start 之前的 bootstrap 错误、finish() 之后、或不经过\n// cli.ts 的直接库调用),透传回 `src/tty-line.ts` 的 bootstrap 出口。\n//\n// 活跃 coordinator 用一个栈而不是单个全局变量:允许嵌套/连续的 runEvals() 调用(如测试里\n// 同进程跑多个 run,或未来某种「run 之内再跑一个子 run」的场景)各自持有自己的活跃身份,\n// 不会互相覆盖对方的 sink。用显式栈(而不是旧 `tty-line.ts` 那套「广播给所有监听者」的\n// 订阅模式)是因为 reportXxx() 需要一个*唯一*目的地来做去重决策,不能让多个监听者都收到\n// 同一条消息。\nimport { writeStderrLine } from \"../../tty-line.ts\";\nimport { t } from \"../../i18n/index.ts\";\nimport type { AttemptLifecycleEvent, AttemptRef, ExperimentHookName, FailureDetail } from \"../types.ts\";\nimport type { Verdict } from \"../../shared/types.ts\";\nimport type { JsonValue } from \"../../shared/types.ts\";\nimport type { AttemptLocator } from \"../../attempt-locator.ts\";\n/** `sink.diagnostic()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"diagnostic\" 变体字段一致,\n * 只是省略 `type`/`at`(由 coordinator 补上)。 */\nexport interface DiagnosticInput {\n /** 稳定去重 key —— 同一种 warning/error 用同一个 key(见 cli.md「同一 dedupeKey 并发出现时\n * 只留一条并显示次数」),不要把可变的实例细节(如具体 sandbox id)编进 key 本身,\n * 那些细节放 `data`。折叠身份(实验 / eval)可以编进 key,那是「折叠到多细」的表达;\n * 对外展示的稳定词由 `code` 单独给,不从 key 反推。 */\n key: string;\n /** 对外的稳定词法:`--json` 的 `warning.code`、human 诊断行的标题都读它(见 cli.md\n * `WarningEvent`,如 `lock-taken-over` / `dispatch-halted`)。省略 = 与 `key` 相同——\n * 折叠身份不进 key 的那些诊断天生就是干净字面量,不必重复写一遍。 */\n code?: string;\n severity: \"warning\" | \"error\";\n /** 一句话人类可读摘要;renderer 的 appendDurable 直接展示,不需要再解析。 */\n message: string;\n identity?: AttemptRef;\n data?: Readonly<globalThis.Record<string, JsonValue>>;\n}\n/** `sink.failure()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"failure\" 变体字段一致,只省略\n * `type`/`at`(由 coordinator 补上)。`locator` 只有在 attempt 挂靠 experiment 时才存在\n * (writer 从精确 AttemptId 派生的短 locator);调用方(run.ts)只在拿到 locator 之后\n * 才应该调用这个函数——没有 locator 的裸 run 不产出这类永久失败通知。 */\nexport type FailureInput = FailureDetail;\n/** `sink.budgetExhausted()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"budget-exhausted\" 变体字段\n * 一致,只省略 `type`/`at`。调用方(run.ts)对每一个因预算到顶而不派发的 attempt 各调一次\n * (与 `AttemptLifecycleEvent` 的 \"attempt:early-exit\" 同构);`unstarted` 是调用方自己维护的、\n * 发出这条时的累计未派发数,不是 reducer 能推导的值(见 reducer.ts 对应事件的注释)。 */\nexport interface BudgetExhaustedInput {\n experimentId: string;\n spent: number;\n unstarted: number;\n}\n/** `sink.experimentHook()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"experiment-hook\" 变体字段\n * 一致,省略 `type`/`at`(由 coordinator 补上)。调用方(run.ts)在钩子真正开始/结束时各调\n * 一次;`durationMs` 只在 done/failed 上给。 */\nexport interface ExperimentHookInput {\n experimentId: string;\n hook: ExperimentHookName;\n status: \"started\" | \"done\" | \"failed\";\n durationMs?: number;\n /** 强杀后启动自愈的补执行(只在 teardown 的 started 上有意义);省略 = 正常路径。 */\n recovery?: boolean;\n}\n/** `sink.experimentProgress()` 的输入 —— 实验级 `ctx.progress` 压好的单行文本。 */\nexport interface ExperimentProgressInput {\n experimentId: string;\n detail: string;\n}\n/** `sink.precheck()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"precheck\" 变体字段一致,省略\n * `type`/`at`(由 coordinator 补上)。调用方(run.ts)在预检真正开始/结束时各调一次;\n * `durationMs` 在 done 与 failed 上给。 */\nexport interface PrecheckInput {\n status: \"started\" | \"done\" | \"failed\";\n durationMs?: number;\n}\n/** `sink.lockWait()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"lock-wait\" 变体字段一致,省略\n * `type`/`at`(由 coordinator 补上)。调用方(run.ts)只在真正探测到撞上新鲜锁、需要等待时才\n * 调一次 \"started\"(取锁立即成功或接管成功都不调用这个函数);等待解决(锁释放/接管后重查\n * 携带完毕)时调一次 \"resolved\"。 */\nexport interface LockWaitInput {\n experimentId: string;\n evalId: string;\n status: \"started\" | \"resolved\";\n holderPid?: number;\n holderHost?: string;\n attempts?: number;\n carried?: number;\n dispatched?: number;\n waitedMs?: number;\n}\n/** `sink.runActivity()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"run-activity\" 变体字段一致,\n * 省略 `type`/`at`。调用方(run.ts 经构建协调器钩子)在每个 Run 级 activity 真正开始/结束时\n * 各调一次;`durationMs` 只在 done/failed 上给。`label` 是 producer 人读标签,展示层不查表。 */\nexport interface RunActivityInput {\n id: string;\n key: string;\n label: string;\n status: \"started\" | \"done\" | \"failed\";\n durationMs?: number;\n}\n/** `sink.kept()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"kept\" 变体字段一致,省略 type/at。 */\nexport interface KeptInput {\n locator: AttemptLocator;\n identity: AttemptRef;\n who: string;\n verdict: Verdict;\n provider: string;\n sandboxId: string;\n enter?: string;\n}\n/** `sink.ts` façade 函数实际转发到的最小接口 —— `FeedbackCoordinator`(coordinator.ts)实现它。\n * 定义在这里(而不是从 coordinator.ts 导入)是为了让 sink.ts 不必在运行时依赖 coordinator.ts,\n * 避免两个模块互相 import 造成的循环依赖 —— coordinator.ts 反过来 `import type` 这个接口。 */\nexport interface FeedbackSink {\n activity(text: string): void;\n diagnostic(input: DiagnosticInput): void;\n interrupted(): void;\n reporterError(input: {\n reporter: string;\n required: boolean;\n message: string;\n }): void;\n /** 一次失败/errored attempt 的永久通知(见 `FailureInput`)。 */\n failure(input: FailureInput): void;\n /** 一个因预算到顶而未被派发的 attempt(见 `BudgetExhaustedInput`)。 */\n budgetExhausted(input: BudgetExhaustedInput): void;\n /** 一次留存授予(--keep-sandbox);见 `KeptInput` 与 docs/feature/sandbox/cli.md。 */\n kept(input: KeptInput): void;\n /** 实验级钩子(`ExperimentDef.setup` / teardown)的起止(见 `ExperimentHookInput`)。 */\n experimentHook(input: ExperimentHookInput): void;\n /** judge 预检的起止(见 `PrecheckInput`)。整次运行至多一次,发生在任何 attempt 派发之前。 */\n precheck(input: PrecheckInput): void;\n /** 用例锁等待的起止(见 `LockWaitInput`)。 */\n lockWait(input: LockWaitInput): void;\n /** Run 级开放 activity 的起止(见 `RunActivityInput`)。不占 attempt 并发位。 */\n runActivity(input: RunActivityInput): void;\n /** 实验级 `ctx.progress` 的短命投影:只更新运行级行的 detail。与 `lifecycle` 同级别的\n * 「只服务正在画着的 dashboard」信号,没有活跃 coordinator 时静默丢弃是安全的。 */\n experimentProgress(input: ExperimentProgressInput): void;\n /** attempt 生命周期事件(queued/start/phase/progress/complete/early-exit),见\n * `AttemptLifecycleEvent`。只驱动 human dashboard 的 active slot,不落 InvocationSummary/结果文件,\n * 所以没有活跃 coordinator 时(见 `reportAttemptLifecycle`)静默丢弃是安全的 —— 这类信息\n * 本身就只服务「正在画着的 dashboard」,不是必须留痕的诊断。 */\n lifecycle(event: AttemptLifecycleEvent): void;\n}\nconst activeStack: FeedbackSink[] = [];\n/**\n * coordinator 进入「活跃」阶段时调用一次(见 coordinator.ts 的 start()),把自己注册为当前\n * reportXxx() 调用的目的地。返回的函数用于退出活跃状态(见 coordinator.ts 的 finish())——\n * 调用一次即失效,重复调用是安全的 no-op。\n */\nexport function activateFeedbackSink(sink: FeedbackSink): () => void {\n activeStack.push(sink);\n let active = true;\n return () => {\n if (!active)\n return;\n active = false;\n const idx = activeStack.lastIndexOf(sink);\n if (idx !== -1)\n activeStack.splice(idx, 1);\n };\n}\nfunction current(): FeedbackSink | undefined {\n return activeStack[activeStack.length - 1];\n}\n/** 仅供测试:断言没有遗留未退出的活跃 coordinator(避免一个测试忘记 finish() 污染下一个)。 */\nexport function activeFeedbackSinkCount(): number {\n return activeStack.length;\n}\n/** 不需要去重、不进入 RunFeedbackState 的瞬时活动文本(docker 镜像拉取进度、vercel session\n * rotate 成功通知……)。没有活跃 coordinator 时退回一行 stderr,与迁移前的裸写视觉效果一致。 */\nexport function reportActivity(text: string): void {\n const sink = current();\n if (sink) {\n sink.activity(text);\n return;\n }\n writeStderrLine(text.endsWith(\"\\n\") ? text : `${text}\\n`);\n}\n/** 需要去重、要出现在两种 profile 永久事件流里的一条 warning/error。 */\nexport function reportDiagnostic(input: DiagnosticInput): void {\n const sink = current();\n if (sink) {\n sink.diagnostic(input);\n return;\n }\n writeStderrLine(input.message.endsWith(\"\\n\") ? input.message : `${input.message}\\n`);\n}\n/** 一次失败/errored attempt 的永久通知(见 `FailureInput`)。与 `reportDiagnostic` 同级别的\n * 「必须留痕」信号 —— 没有活跃 coordinator 时退回一行 stderr,不像 `reportAttemptLifecycle`\n * 那样静默丢弃(定位一次真实失败不该因为没接 coordinator 就彻底没有出口)。 */\nexport function reportFailure(input: FailureInput): void {\n const sink = current();\n if (sink) {\n sink.failure(input);\n return;\n }\n writeStderrLine(`${input.who} ${input.verdict}: ${input.reason}\\n`);\n}\n/** 一个因预算到顶而未被派发的 attempt(见 `BudgetExhaustedInput`)。没有活跃 coordinator 时的\n * 兜底文案与 coordinator.ts 的 `fallbackTextFor` 对 \"budget-exhausted\" 事件的格式化保持一致。 */\n/** 一次留存授予的永久通知(--keep-sandbox);没有活跃 coordinator 时退回一行 stderr。 */\nexport function reportKept(input: KeptInput): void {\n const sink = current();\n if (sink) {\n sink.kept(input);\n return;\n }\n writeStderrLine(`kept sandbox ${input.sandboxId} (${input.provider}) — ${input.identity.evalId} #${input.identity.attempt} ${input.verdict}\\n`);\n}\n/** 实验级钩子的起止(见 `ExperimentHookInput`)。没有活跃 coordinator 时退回一行 stderr ——\n * 长 setup 的可见性正是这条通道存在的理由,不能像 lifecycle 那样静默丢弃。 */\nexport function reportExperimentHook(input: ExperimentHookInput): void {\n const sink = current();\n if (sink) {\n sink.experimentHook(input);\n return;\n }\n const duration = input.durationMs !== undefined ? ` (${Math.round(input.durationMs / 1000)}s)` : \"\";\n writeStderrLine(`experiment ${input.hook} ${input.status} · ${input.experimentId}${duration}\\n`);\n}\n/** 实验级 `ctx.progress` 的短命投影。与 `reportAttemptLifecycle` 同理:只服务正在画着的\n * dashboard,没有活跃 coordinator 时静默 no-op。 */\nexport function reportExperimentProgress(input: ExperimentProgressInput): void {\n current()?.experimentProgress(input);\n}\n/** judge 预检的起止(见 `PrecheckInput`)。没有活跃 coordinator 时退回一行 stderr ——\n * 慢预检的可见性正是这条通道存在的理由,不能像 lifecycle 那样静默丢弃。 */\nexport function reportPrecheck(input: PrecheckInput): void {\n const sink = current();\n if (sink) {\n sink.precheck(input);\n return;\n }\n const duration = input.durationMs !== undefined ? ` (${Math.round(input.durationMs / 1000)}s)` : \"\";\n const word = input.status === \"done\" ? t(\"feedback.human.precheckJudgeDone\") : t(\"feedback.human.precheckJudgeFailed\");\n writeStderrLine(input.status === \"started\" ? `${t(\"feedback.human.precheckJudge\")}\\n` : `${word}${duration}\\n`);\n}\n/** 用例锁等待的起止(见 `LockWaitInput`)。没有活跃 coordinator 时退回一行 stderr ——\n * 长等待期间的可见性正是这条通道存在的理由,不能像 lifecycle 那样静默丢弃。 */\nexport function reportLockWait(input: LockWaitInput): void {\n const sink = current();\n if (sink) {\n sink.lockWait(input);\n return;\n }\n writeStderrLine(input.status === \"started\"\n ? `waiting on another run · ${input.experimentId} ${input.evalId}\\n`\n : `lock wait resolved · ${input.experimentId} ${input.evalId}\\n`);\n}\nexport function reportRunActivity(input: RunActivityInput): void {\n const sink = current();\n if (sink) {\n sink.runActivity(input);\n return;\n }\n const duration = input.durationMs !== undefined ? ` (${input.durationMs}ms)` : \"\";\n const statusWord = input.status === \"started\" ? \"\" : ` ${input.status}`;\n writeStderrLine(`${input.label}${statusWord}${duration}\\n`);\n}\nexport function reportBudgetExhausted(input: BudgetExhaustedInput): void {\n const sink = current();\n if (sink) {\n sink.budgetExhausted(input);\n return;\n }\n writeStderrLine(`budget exhausted for ${input.experimentId} (spent ${input.spent}, unstarted ${input.unstarted})\\n`);\n}\n/** 用户中断(Ctrl+C)。没有活跃 coordinator 时的兜底文案与迁移前的 `runner.interrupted` 完全\n * 相同 —— 调用方(run.ts)不再需要自己持有这段 i18n 文案。 */\nexport function reportInterrupted(): void {\n const sink = current();\n if (sink) {\n sink.interrupted();\n return;\n }\n writeStderrLine(t(\"runner.interrupted\"));\n}\n/**\n * runner 自己驱动的 attempt 生命周期投影(见 docs/feature/experiments/cli.md「Attempt 阶段」)——\n * `src/runner/attempt.ts`(phase/progress)与 `src/runner/run.ts`(start/complete/early-exit)是\n * 目前仅有的两个调用方。没有活跃 coordinator 时(今天:CLI 还没接入 --output)静默 no-op ——\n * 与其它 reportXxx() 不同,这里不退回 `writeStderrLine` 兜底:这类事件只服务尚不存在的\n * dashboard,不是需要留痕的诊断,现有可观察行为(直到 CLI 接入真正的 coordinator 之前)因此\n * 完全不变。\n */\nexport function reportAttemptLifecycle(event: AttemptLifecycleEvent): void {\n current()?.lifecycle(event);\n}\n/** 一个 reporter 的某次回调抛错(见 `runner/report.ts` 的 `runReporter`)。`reporter`/`required`\n * 来自调用方注册这个 reporter 时的 `ReporterRegistration`(见其字段注释)——显式 `--junit`\n * 传 `required: true`,用户 `config.reporters`/`EvalDef.reporters`\n * 传 `required: false`。coordinator 把它折进 `RunFeedbackState.diagnostics`(reducer 按\n * `reporter-error:<reporter>` 去重),调用方(`cli.ts` 的 `assembleInvocationCompletion`)据此把\n * `required` 为真的失败折进 `InvocationCompletion.reporterErrors`,让 completion/CI 退出码判红。 */\nexport function reportReporterError(input: {\n reporter: string;\n required: boolean;\n message: string;\n}): void {\n const sink = current();\n if (sink) {\n sink.reporterError(input);\n return;\n }\n writeStderrLine(t(\"runner.reporterDiagnostic\", { stage: input.reporter, message: input.message }));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"sink.js","sourceRoot":"","sources":["sink.ts"],"names":[],"mappings":"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","sourcesContent":["// run 激活期间,底层模块(sandbox provider、budget 记账、reporter 兜底、中断处理……)不得\n// 直接写 stdout/stderr(见 docs/feature/experiments/cli.md「输出流和落盘节奏」与本文件对应的\n// PLAN 第 2 节「一个 run 内只有一个终端协调者」)。它们改调用这里的 reportXxx() 系列函数。\n//\n// - 有活跃 FeedbackCoordinator 时(coordinator.start() 之后、finish() 之前,见 cli.ts 的\n// run:start 接线),转发给它 —— coordinator 负责去重、clear→append→redraw 排序、按 profile\n// 分派给 renderer。\n// - 没有活跃 coordinator 时(run:start 之前的 bootstrap 错误、finish() 之后、或不经过\n// cli.ts 的直接库调用),透传回 `src/tty-line.ts` 的 bootstrap 出口。\n//\n// 活跃 coordinator 用一个栈而不是单个全局变量:允许嵌套/连续的 runEvals() 调用(如测试里\n// 同进程跑多个 run,或未来某种「run 之内再跑一个子 run」的场景)各自持有自己的活跃身份,\n// 不会互相覆盖对方的 sink。用显式栈(而不是旧 `tty-line.ts` 那套「广播给所有监听者」的\n// 订阅模式)是因为 reportXxx() 需要一个*唯一*目的地来做去重决策,不能让多个监听者都收到\n// 同一条消息。\nimport { writeStderrLine } from \"../../tty-line.ts\";\nimport { t } from \"../../i18n/index.ts\";\nimport type { AttemptLifecycleEvent, AttemptRef, DiagnosticSeverity, ExperimentHookName, FailureDetail } from \"../types.ts\";\nimport type { Verdict } from \"../../shared/types.ts\";\nimport type { JsonValue } from \"../../shared/types.ts\";\nimport type { AttemptLocator } from \"../../attempt-locator.ts\";\n/** `sink.diagnostic()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"diagnostic\" 变体字段一致,\n * 只是省略 `type`/`at`(由 coordinator 补上)。 */\nexport interface DiagnosticInput {\n /** 稳定去重 key —— 同一种 info/warning/error 用同一个 key(见 cli.md「同一 dedupeKey 并发出现时\n * 只留一条并显示次数」),不要把可变的实例细节(如具体 sandbox id)编进 key 本身,\n * 那些细节放 `data`。折叠身份(实验 / eval)可以编进 key,那是「折叠到多细」的表达;\n * 对外展示的稳定词由 `code` 单独给,不从 key 反推。 */\n key: string;\n /** 对外的稳定词法:`--json` 的 notice/warning `code`、human 通知行的标题都读它(见 cli.md)。\n * 省略 = 与 `key` 相同——\n * 折叠身份不进 key 的那些诊断天生就是干净字面量,不必重复写一遍。 */\n code?: string;\n severity: DiagnosticSeverity;\n /** 一句话人类可读摘要;renderer 的 appendDurable 直接展示,不需要再解析。 */\n message: string;\n identity?: AttemptRef;\n data?: Readonly<globalThis.Record<string, JsonValue>>;\n}\n/** `sink.failure()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"failure\" 变体字段一致,只省略\n * `type`/`at`(由 coordinator 补上)。`locator` 只有在 attempt 挂靠 experiment 时才存在\n * (writer 从精确 AttemptId 派生的短 locator);调用方(run.ts)只在拿到 locator 之后\n * 才应该调用这个函数——没有 locator 的裸 run 不产出这类永久失败通知。 */\nexport type FailureInput = FailureDetail;\n/** `sink.budgetExhausted()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"budget-exhausted\" 变体字段\n * 一致,只省略 `type`/`at`。调用方(run.ts)对每一个因预算到顶而不派发的 attempt 各调一次\n * (与 `AttemptLifecycleEvent` 的 \"attempt:early-exit\" 同构);`unstarted` 是调用方自己维护的、\n * 发出这条时的累计未派发数,不是 reducer 能推导的值(见 reducer.ts 对应事件的注释)。 */\nexport interface BudgetExhaustedInput {\n experimentId: string;\n spent: number;\n unstarted: number;\n}\n/** `sink.experimentHook()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"experiment-hook\" 变体字段\n * 一致,省略 `type`/`at`(由 coordinator 补上)。调用方(run.ts)在钩子真正开始/结束时各调\n * 一次;`durationMs` 只在 done/failed 上给。 */\nexport interface ExperimentHookInput {\n experimentId: string;\n hook: ExperimentHookName;\n status: \"started\" | \"done\" | \"failed\";\n durationMs?: number;\n /** 强杀后启动自愈的补执行(只在 teardown 的 started 上有意义);省略 = 正常路径。 */\n recovery?: boolean;\n}\n/** `sink.experimentProgress()` 的输入 —— 实验级 `ctx.progress` 压好的单行文本。 */\nexport interface ExperimentProgressInput {\n experimentId: string;\n detail: string;\n}\n/** `sink.precheck()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"precheck\" 变体字段一致,省略\n * `type`/`at`(由 coordinator 补上)。调用方(run.ts)在预检真正开始/结束时各调一次;\n * `durationMs` 在 done 与 failed 上给。 */\nexport interface PrecheckInput {\n status: \"started\" | \"done\" | \"failed\";\n durationMs?: number;\n}\n/** `sink.lockWait()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"lock-wait\" 变体字段一致,省略\n * `type`/`at`(由 coordinator 补上)。调用方(run.ts)只在真正探测到撞上新鲜锁、需要等待时才\n * 调一次 \"started\"(取锁立即成功或接管成功都不调用这个函数);等待解决(锁释放/接管后重查\n * 携带完毕)时调一次 \"resolved\"。 */\nexport interface LockWaitInput {\n experimentId: string;\n evalId: string;\n status: \"started\" | \"resolved\";\n holderPid?: number;\n holderHost?: string;\n attempts?: number;\n carried?: number;\n dispatched?: number;\n waitedMs?: number;\n}\n/** `sink.runActivity()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"run-activity\" 变体字段一致,\n * 省略 `type`/`at`。调用方(run.ts 经构建协调器钩子)在每个 Run 级 activity 真正开始/结束时\n * 各调一次;`durationMs` 只在 done/failed 上给。`label` 是 producer 人读标签,展示层不查表。 */\nexport interface RunActivityInput {\n id: string;\n key: string;\n label: string;\n status: \"started\" | \"done\" | \"failed\";\n durationMs?: number;\n}\n/** `sink.kept()` 的输入 —— 与 `DurableFeedbackEvent` 的 \"kept\" 变体字段一致,省略 type/at。 */\nexport interface KeptInput {\n locator: AttemptLocator;\n identity: AttemptRef;\n who: string;\n verdict: Verdict;\n provider: string;\n sandboxId: string;\n enter?: string;\n}\n/** `sink.ts` façade 函数实际转发到的最小接口 —— `FeedbackCoordinator`(coordinator.ts)实现它。\n * 定义在这里(而不是从 coordinator.ts 导入)是为了让 sink.ts 不必在运行时依赖 coordinator.ts,\n * 避免两个模块互相 import 造成的循环依赖 —— coordinator.ts 反过来 `import type` 这个接口。 */\nexport interface FeedbackSink {\n activity(text: string): void;\n diagnostic(input: DiagnosticInput): void;\n interrupted(): void;\n reporterError(input: {\n reporter: string;\n required: boolean;\n message: string;\n }): void;\n /** 一次失败/errored attempt 的永久通知(见 `FailureInput`)。 */\n failure(input: FailureInput): void;\n /** 一个因预算到顶而未被派发的 attempt(见 `BudgetExhaustedInput`)。 */\n budgetExhausted(input: BudgetExhaustedInput): void;\n /** 一次留存授予(--keep-sandbox);见 `KeptInput` 与 docs/feature/sandbox/cli.md。 */\n kept(input: KeptInput): void;\n /** 实验级钩子(`ExperimentDef.setup` / teardown)的起止(见 `ExperimentHookInput`)。 */\n experimentHook(input: ExperimentHookInput): void;\n /** judge 预检的起止(见 `PrecheckInput`)。整次运行至多一次,发生在任何 attempt 派发之前。 */\n precheck(input: PrecheckInput): void;\n /** 用例锁等待的起止(见 `LockWaitInput`)。 */\n lockWait(input: LockWaitInput): void;\n /** Run 级开放 activity 的起止(见 `RunActivityInput`)。不占 attempt 并发位。 */\n runActivity(input: RunActivityInput): void;\n /** 实验级 `ctx.progress` 的短命投影:只更新运行级行的 detail。与 `lifecycle` 同级别的\n * 「只服务正在画着的 dashboard」信号,没有活跃 coordinator 时静默丢弃是安全的。 */\n experimentProgress(input: ExperimentProgressInput): void;\n /** attempt 生命周期事件(queued/start/phase/progress/complete/early-exit),见\n * `AttemptLifecycleEvent`。只驱动 human dashboard 的 active slot,不落 InvocationSummary/结果文件,\n * 所以没有活跃 coordinator 时(见 `reportAttemptLifecycle`)静默丢弃是安全的 —— 这类信息\n * 本身就只服务「正在画着的 dashboard」,不是必须留痕的诊断。 */\n lifecycle(event: AttemptLifecycleEvent): void;\n}\nconst activeStack: FeedbackSink[] = [];\n/**\n * coordinator 进入「活跃」阶段时调用一次(见 coordinator.ts 的 start()),把自己注册为当前\n * reportXxx() 调用的目的地。返回的函数用于退出活跃状态(见 coordinator.ts 的 finish())——\n * 调用一次即失效,重复调用是安全的 no-op。\n */\nexport function activateFeedbackSink(sink: FeedbackSink): () => void {\n activeStack.push(sink);\n let active = true;\n return () => {\n if (!active)\n return;\n active = false;\n const idx = activeStack.lastIndexOf(sink);\n if (idx !== -1)\n activeStack.splice(idx, 1);\n };\n}\nfunction current(): FeedbackSink | undefined {\n return activeStack[activeStack.length - 1];\n}\n/** 仅供测试:断言没有遗留未退出的活跃 coordinator(避免一个测试忘记 finish() 污染下一个)。 */\nexport function activeFeedbackSinkCount(): number {\n return activeStack.length;\n}\n/** 不需要去重、不进入 RunFeedbackState 的瞬时活动文本(docker 镜像拉取进度、vercel session\n * rotate 成功通知……)。没有活跃 coordinator 时退回一行 stderr,与迁移前的裸写视觉效果一致。 */\nexport function reportActivity(text: string): void {\n const sink = current();\n if (sink) {\n sink.activity(text);\n return;\n }\n writeStderrLine(text.endsWith(\"\\n\") ? text : `${text}\\n`);\n}\n/** 需要去重、要出现在两种 profile 永久事件流里的一条 info/warning/error。 */\nexport function reportDiagnostic(input: DiagnosticInput): void {\n const sink = current();\n if (sink) {\n sink.diagnostic(input);\n return;\n }\n writeStderrLine(input.message.endsWith(\"\\n\") ? input.message : `${input.message}\\n`);\n}\n/** 一次失败/errored attempt 的永久通知(见 `FailureInput`)。与 `reportDiagnostic` 同级别的\n * 「必须留痕」信号 —— 没有活跃 coordinator 时退回一行 stderr,不像 `reportAttemptLifecycle`\n * 那样静默丢弃(定位一次真实失败不该因为没接 coordinator 就彻底没有出口)。 */\nexport function reportFailure(input: FailureInput): void {\n const sink = current();\n if (sink) {\n sink.failure(input);\n return;\n }\n writeStderrLine(`${input.who} ${input.verdict}: ${input.reason}\\n`);\n}\n/** 一个因预算到顶而未被派发的 attempt(见 `BudgetExhaustedInput`)。没有活跃 coordinator 时的\n * 兜底文案与 coordinator.ts 的 `fallbackTextFor` 对 \"budget-exhausted\" 事件的格式化保持一致。 */\n/** 一次留存授予的永久通知(--keep-sandbox);没有活跃 coordinator 时退回一行 stderr。 */\nexport function reportKept(input: KeptInput): void {\n const sink = current();\n if (sink) {\n sink.kept(input);\n return;\n }\n writeStderrLine(`kept sandbox ${input.sandboxId} (${input.provider}) — ${input.identity.evalId} #${input.identity.attempt} ${input.verdict}\\n`);\n}\n/** 实验级钩子的起止(见 `ExperimentHookInput`)。没有活跃 coordinator 时退回一行 stderr ——\n * 长 setup 的可见性正是这条通道存在的理由,不能像 lifecycle 那样静默丢弃。 */\nexport function reportExperimentHook(input: ExperimentHookInput): void {\n const sink = current();\n if (sink) {\n sink.experimentHook(input);\n return;\n }\n const duration = input.durationMs !== undefined ? ` (${Math.round(input.durationMs / 1000)}s)` : \"\";\n writeStderrLine(`experiment ${input.hook} ${input.status} · ${input.experimentId}${duration}\\n`);\n}\n/** 实验级 `ctx.progress` 的短命投影。与 `reportAttemptLifecycle` 同理:只服务正在画着的\n * dashboard,没有活跃 coordinator 时静默 no-op。 */\nexport function reportExperimentProgress(input: ExperimentProgressInput): void {\n current()?.experimentProgress(input);\n}\n/** judge 预检的起止(见 `PrecheckInput`)。没有活跃 coordinator 时退回一行 stderr ——\n * 慢预检的可见性正是这条通道存在的理由,不能像 lifecycle 那样静默丢弃。 */\nexport function reportPrecheck(input: PrecheckInput): void {\n const sink = current();\n if (sink) {\n sink.precheck(input);\n return;\n }\n const duration = input.durationMs !== undefined ? ` (${Math.round(input.durationMs / 1000)}s)` : \"\";\n const word = input.status === \"done\" ? t(\"feedback.human.precheckJudgeDone\") : t(\"feedback.human.precheckJudgeFailed\");\n writeStderrLine(input.status === \"started\" ? `${t(\"feedback.human.precheckJudge\")}\\n` : `${word}${duration}\\n`);\n}\n/** 用例锁等待的起止(见 `LockWaitInput`)。没有活跃 coordinator 时退回一行 stderr ——\n * 长等待期间的可见性正是这条通道存在的理由,不能像 lifecycle 那样静默丢弃。 */\nexport function reportLockWait(input: LockWaitInput): void {\n const sink = current();\n if (sink) {\n sink.lockWait(input);\n return;\n }\n writeStderrLine(input.status === \"started\"\n ? `waiting on another run · ${input.experimentId} ${input.evalId}\\n`\n : `lock wait resolved · ${input.experimentId} ${input.evalId}\\n`);\n}\nexport function reportRunActivity(input: RunActivityInput): void {\n const sink = current();\n if (sink) {\n sink.runActivity(input);\n return;\n }\n const duration = input.durationMs !== undefined ? ` (${input.durationMs}ms)` : \"\";\n const statusWord = input.status === \"started\" ? \"\" : ` ${input.status}`;\n writeStderrLine(`${input.label}${statusWord}${duration}\\n`);\n}\nexport function reportBudgetExhausted(input: BudgetExhaustedInput): void {\n const sink = current();\n if (sink) {\n sink.budgetExhausted(input);\n return;\n }\n writeStderrLine(`budget exhausted for ${input.experimentId} (spent ${input.spent}, unstarted ${input.unstarted})\\n`);\n}\n/** 用户中断(Ctrl+C)。没有活跃 coordinator 时的兜底文案与迁移前的 `runner.interrupted` 完全\n * 相同 —— 调用方(run.ts)不再需要自己持有这段 i18n 文案。 */\nexport function reportInterrupted(): void {\n const sink = current();\n if (sink) {\n sink.interrupted();\n return;\n }\n writeStderrLine(t(\"runner.interrupted\"));\n}\n/**\n * runner 自己驱动的 attempt 生命周期投影(见 docs/feature/experiments/cli.md「Attempt 阶段」)——\n * `src/runner/attempt.ts`(phase/progress)与 `src/runner/run.ts`(start/complete/early-exit)是\n * 目前仅有的两个调用方。没有活跃 coordinator 时(今天:CLI 还没接入 --output)静默 no-op ——\n * 与其它 reportXxx() 不同,这里不退回 `writeStderrLine` 兜底:这类事件只服务尚不存在的\n * dashboard,不是需要留痕的诊断,现有可观察行为(直到 CLI 接入真正的 coordinator 之前)因此\n * 完全不变。\n */\nexport function reportAttemptLifecycle(event: AttemptLifecycleEvent): void {\n current()?.lifecycle(event);\n}\n/** 一个 reporter 的某次回调抛错(见 `runner/report.ts` 的 `runReporter`)。`reporter`/`required`\n * 来自调用方注册这个 reporter 时的 `ReporterRegistration`(见其字段注释)——显式 `--junit`\n * 传 `required: true`,用户 `config.reporters`/`EvalDef.reporters`\n * 传 `required: false`。coordinator 把它折进 `RunFeedbackState.diagnostics`(reducer 按\n * `reporter-error:<reporter>` 去重),调用方(`cli.ts` 的 `assembleInvocationCompletion`)据此把\n * `required` 为真的失败折进 `InvocationCompletion.reporterErrors`,让 completion/CI 退出码判红。 */\nexport function reportReporterError(input: {\n reporter: string;\n required: boolean;\n message: string;\n}): void {\n const sink = current();\n if (sink) {\n sink.reporterError(input);\n return;\n }\n writeStderrLine(t(\"runner.reporterDiagnostic\", { stage: input.reporter, message: input.message }));\n}\n"]}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import type { AttemptLifecycleEvent, AttemptRef, ExperimentHookName, FailureDetail } from "../types.cjs";
|
|
1
|
+
import type { AttemptLifecycleEvent, AttemptRef, DiagnosticSeverity, ExperimentHookName, FailureDetail } from "../types.cjs";
|
|
2
2
|
import type { Verdict } from "../../shared/types.cjs";
|
|
3
3
|
import type { JsonValue } from "../../shared/types.cjs";
|
|
4
4
|
import type { AttemptLocator } from "../../attempt-locator.cjs";
|
|
5
5
|
/** `sink.diagnostic()` 的输入 —— 与 `DurableFeedbackEvent` 的 "diagnostic" 变体字段一致,
|
|
6
6
|
* 只是省略 `type`/`at`(由 coordinator 补上)。 */
|
|
7
7
|
export interface DiagnosticInput {
|
|
8
|
-
/** 稳定去重 key —— 同一种 warning/error 用同一个 key(见 cli.md「同一 dedupeKey 并发出现时
|
|
8
|
+
/** 稳定去重 key —— 同一种 info/warning/error 用同一个 key(见 cli.md「同一 dedupeKey 并发出现时
|
|
9
9
|
* 只留一条并显示次数」),不要把可变的实例细节(如具体 sandbox id)编进 key 本身,
|
|
10
10
|
* 那些细节放 `data`。折叠身份(实验 / eval)可以编进 key,那是「折叠到多细」的表达;
|
|
11
11
|
* 对外展示的稳定词由 `code` 单独给,不从 key 反推。 */
|
|
12
12
|
key: string;
|
|
13
|
-
/** 对外的稳定词法:`--json` 的 `
|
|
14
|
-
*
|
|
13
|
+
/** 对外的稳定词法:`--json` 的 notice/warning `code`、human 通知行的标题都读它(见 cli.md)。
|
|
14
|
+
* 省略 = 与 `key` 相同——
|
|
15
15
|
* 折叠身份不进 key 的那些诊断天生就是干净字面量,不必重复写一遍。 */
|
|
16
16
|
code?: string;
|
|
17
|
-
severity:
|
|
17
|
+
severity: DiagnosticSeverity;
|
|
18
18
|
/** 一句话人类可读摘要;renderer 的 appendDurable 直接展示,不需要再解析。 */
|
|
19
19
|
message: string;
|
|
20
20
|
identity?: AttemptRef;
|
|
@@ -138,7 +138,7 @@ export declare function activeFeedbackSinkCount(): number;
|
|
|
138
138
|
/** 不需要去重、不进入 RunFeedbackState 的瞬时活动文本(docker 镜像拉取进度、vercel session
|
|
139
139
|
* rotate 成功通知……)。没有活跃 coordinator 时退回一行 stderr,与迁移前的裸写视觉效果一致。 */
|
|
140
140
|
export declare function reportActivity(text: string): void;
|
|
141
|
-
/** 需要去重、要出现在两种 profile 永久事件流里的一条 warning/error。 */
|
|
141
|
+
/** 需要去重、要出现在两种 profile 永久事件流里的一条 info/warning/error。 */
|
|
142
142
|
export declare function reportDiagnostic(input: DiagnosticInput): void;
|
|
143
143
|
/** 一次失败/errored attempt 的永久通知(见 `FailureInput`)。与 `reportDiagnostic` 同级别的
|
|
144
144
|
* 「必须留痕」信号 —— 没有活跃 coordinator 时退回一行 stderr,不像 `reportAttemptLifecycle`
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import type { AttemptLifecycleEvent, AttemptRef, ExperimentHookName, FailureDetail } from "../types.mjs";
|
|
1
|
+
import type { AttemptLifecycleEvent, AttemptRef, DiagnosticSeverity, ExperimentHookName, FailureDetail } from "../types.mjs";
|
|
2
2
|
import type { Verdict } from "../../shared/types.mjs";
|
|
3
3
|
import type { JsonValue } from "../../shared/types.mjs";
|
|
4
4
|
import type { AttemptLocator } from "../../attempt-locator.mjs";
|
|
5
5
|
/** `sink.diagnostic()` 的输入 —— 与 `DurableFeedbackEvent` 的 "diagnostic" 变体字段一致,
|
|
6
6
|
* 只是省略 `type`/`at`(由 coordinator 补上)。 */
|
|
7
7
|
export interface DiagnosticInput {
|
|
8
|
-
/** 稳定去重 key —— 同一种 warning/error 用同一个 key(见 cli.md「同一 dedupeKey 并发出现时
|
|
8
|
+
/** 稳定去重 key —— 同一种 info/warning/error 用同一个 key(见 cli.md「同一 dedupeKey 并发出现时
|
|
9
9
|
* 只留一条并显示次数」),不要把可变的实例细节(如具体 sandbox id)编进 key 本身,
|
|
10
10
|
* 那些细节放 `data`。折叠身份(实验 / eval)可以编进 key,那是「折叠到多细」的表达;
|
|
11
11
|
* 对外展示的稳定词由 `code` 单独给,不从 key 反推。 */
|
|
12
12
|
key: string;
|
|
13
|
-
/** 对外的稳定词法:`--json` 的 `
|
|
14
|
-
*
|
|
13
|
+
/** 对外的稳定词法:`--json` 的 notice/warning `code`、human 通知行的标题都读它(见 cli.md)。
|
|
14
|
+
* 省略 = 与 `key` 相同——
|
|
15
15
|
* 折叠身份不进 key 的那些诊断天生就是干净字面量,不必重复写一遍。 */
|
|
16
16
|
code?: string;
|
|
17
|
-
severity:
|
|
17
|
+
severity: DiagnosticSeverity;
|
|
18
18
|
/** 一句话人类可读摘要;renderer 的 appendDurable 直接展示,不需要再解析。 */
|
|
19
19
|
message: string;
|
|
20
20
|
identity?: AttemptRef;
|
|
@@ -138,7 +138,7 @@ export declare function activeFeedbackSinkCount(): number;
|
|
|
138
138
|
/** 不需要去重、不进入 RunFeedbackState 的瞬时活动文本(docker 镜像拉取进度、vercel session
|
|
139
139
|
* rotate 成功通知……)。没有活跃 coordinator 时退回一行 stderr,与迁移前的裸写视觉效果一致。 */
|
|
140
140
|
export declare function reportActivity(text: string): void;
|
|
141
|
-
/** 需要去重、要出现在两种 profile 永久事件流里的一条 warning/error。 */
|
|
141
|
+
/** 需要去重、要出现在两种 profile 永久事件流里的一条 info/warning/error。 */
|
|
142
142
|
export declare function reportDiagnostic(input: DiagnosticInput): void;
|
|
143
143
|
/** 一次失败/errored attempt 的永久通知(见 `FailureInput`)。与 `reportDiagnostic` 同级别的
|
|
144
144
|
* 「必须留痕」信号 —— 没有活跃 coordinator 时退回一行 stderr,不像 `reportAttemptLifecycle`
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import type { AttemptLifecycleEvent, AttemptRef, ExperimentHookName, FailureDetail } from "../types.js";
|
|
1
|
+
import type { AttemptLifecycleEvent, AttemptRef, DiagnosticSeverity, ExperimentHookName, FailureDetail } from "../types.js";
|
|
2
2
|
import type { Verdict } from "../../shared/types.js";
|
|
3
3
|
import type { JsonValue } from "../../shared/types.js";
|
|
4
4
|
import type { AttemptLocator } from "../../attempt-locator.js";
|
|
5
5
|
/** `sink.diagnostic()` 的输入 —— 与 `DurableFeedbackEvent` 的 "diagnostic" 变体字段一致,
|
|
6
6
|
* 只是省略 `type`/`at`(由 coordinator 补上)。 */
|
|
7
7
|
export interface DiagnosticInput {
|
|
8
|
-
/** 稳定去重 key —— 同一种 warning/error 用同一个 key(见 cli.md「同一 dedupeKey 并发出现时
|
|
8
|
+
/** 稳定去重 key —— 同一种 info/warning/error 用同一个 key(见 cli.md「同一 dedupeKey 并发出现时
|
|
9
9
|
* 只留一条并显示次数」),不要把可变的实例细节(如具体 sandbox id)编进 key 本身,
|
|
10
10
|
* 那些细节放 `data`。折叠身份(实验 / eval)可以编进 key,那是「折叠到多细」的表达;
|
|
11
11
|
* 对外展示的稳定词由 `code` 单独给,不从 key 反推。 */
|
|
12
12
|
key: string;
|
|
13
|
-
/** 对外的稳定词法:`--json` 的 `
|
|
14
|
-
*
|
|
13
|
+
/** 对外的稳定词法:`--json` 的 notice/warning `code`、human 通知行的标题都读它(见 cli.md)。
|
|
14
|
+
* 省略 = 与 `key` 相同——
|
|
15
15
|
* 折叠身份不进 key 的那些诊断天生就是干净字面量,不必重复写一遍。 */
|
|
16
16
|
code?: string;
|
|
17
|
-
severity:
|
|
17
|
+
severity: DiagnosticSeverity;
|
|
18
18
|
/** 一句话人类可读摘要;renderer 的 appendDurable 直接展示,不需要再解析。 */
|
|
19
19
|
message: string;
|
|
20
20
|
identity?: AttemptRef;
|
|
@@ -138,7 +138,7 @@ export declare function activeFeedbackSinkCount(): number;
|
|
|
138
138
|
/** 不需要去重、不进入 RunFeedbackState 的瞬时活动文本(docker 镜像拉取进度、vercel session
|
|
139
139
|
* rotate 成功通知……)。没有活跃 coordinator 时退回一行 stderr,与迁移前的裸写视觉效果一致。 */
|
|
140
140
|
export declare function reportActivity(text: string): void;
|
|
141
|
-
/** 需要去重、要出现在两种 profile 永久事件流里的一条 warning/error。 */
|
|
141
|
+
/** 需要去重、要出现在两种 profile 永久事件流里的一条 info/warning/error。 */
|
|
142
142
|
export declare function reportDiagnostic(input: DiagnosticInput): void;
|
|
143
143
|
/** 一次失败/errored attempt 的永久通知(见 `FailureInput`)。与 `reportDiagnostic` 同级别的
|
|
144
144
|
* 「必须留痕」信号 —— 没有活跃 coordinator 时退回一行 stderr,不像 `reportAttemptLifecycle`
|
|
@@ -8,6 +8,7 @@ exports.hashConfigIdentity = hashConfigIdentity;
|
|
|
8
8
|
exports.computeFingerprint = computeFingerprint;
|
|
9
9
|
exports.fingerprintWithManifest = fingerprintWithManifest;
|
|
10
10
|
exports.planProjectTarget = planProjectTarget;
|
|
11
|
+
exports.planPreparedProjectTarget = planPreparedProjectTarget;
|
|
11
12
|
// ProjectTarget planning: current eval sources + resolved configuration become
|
|
12
13
|
// immutable input identities. Reuse is decided only by Frozen Record planning.
|
|
13
14
|
const node_crypto_1 = require("node:crypto");
|
|
@@ -247,9 +248,14 @@ function planProjectTarget(evals, agentRuns, configTimeoutMs, options = {}) {
|
|
|
247
248
|
return effect_1.Effect.flatMap((0, sandbox_selection_ts_1.prepareRunSandboxes)(evals, agentRuns, (0, plan_ts_1.liveSandboxPlanningServices)(), {
|
|
248
249
|
...(options.keepSandbox === undefined ? {} : { keepSandbox: options.keepSandbox }),
|
|
249
250
|
...(configTimeoutMs === undefined ? {} : { configTimeoutMs }),
|
|
250
|
-
}), (preparedPairs) =>
|
|
251
|
+
}), (preparedPairs) => planPreparedProjectTarget(preparedPairs, options));
|
|
251
252
|
}
|
|
252
|
-
|
|
253
|
+
/**
|
|
254
|
+
* Freezes identity and fingerprint planning for already linked physical pairs.
|
|
255
|
+
* Project-current reads and explicit adoption share this seam so neither can
|
|
256
|
+
* rebuild the effective Experiment identity with a different projection.
|
|
257
|
+
*/
|
|
258
|
+
function planPreparedProjectTarget(preparedPairs, options) {
|
|
253
259
|
return effect_1.Effect.gen(function* () {
|
|
254
260
|
const preparedPairsByKey = yield* effect_1.Effect.try({
|
|
255
261
|
try: () => (0, sandbox_selection_ts_1.preparedPairsByKey)(preparedPairs),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["fingerprint.ts"],"names":[],"mappings":"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","sourcesContent":["// ProjectTarget planning: current eval sources + resolved configuration become\n// immutable input identities. Reuse is decided only by Frozen Record planning.\nimport { createHash } from \"node:crypto\";\nimport { createReadStream } from \"node:fs\";\nimport { readFile, stat } from \"node:fs/promises\";\nimport { dirname, extname, relative, resolve } from \"node:path\";\nimport { Data, Effect } from \"effect\";\nimport { liveSandboxPlanningServices } from \"../sandbox/plan.ts\";\nimport type { DiscoveredEval, ResolvedJudgeConfig } from \"../types.ts\";\nimport type { ProjectCurrentExperimentTarget, ProjectCurrentTarget, } from \"./project-target.ts\";\nimport { EVALUATION_ALGORITHM, type AgentRun } from \"./types.ts\";\nimport { resolveJudge } from \"./judge-config.ts\";\nimport { prepareRunSandboxes, preparedPairsByKey as indexPreparedPairs, runPairKey, type PreparedRunPair, type SandboxRunPlanningError, } from \"./sandbox-selection.ts\";\nimport type { EvalManifest } from \"./manifest.ts\";\nimport { FINGERPRINT_ALGORITHM_VERSION, FINGERPRINT_COVERAGE_VERSION, } from \"../record/manifest.ts\";\nimport { configIdentityPaths, configIdentityForRun, type ConfigIdentity, } from \"./config-identity.ts\";\n/** Files that participate in a fingerprint are an explicit planning boundary. */\nexport class FingerprintFileError extends Data.TaggedError(\"FingerprintFileError\")<{\n readonly operation: \"read\" | \"hash\";\n readonly path: string;\n readonly message: string;\n}> {\n}\n/** A malformed or internally inconsistent planning input must not become a defect. */\nexport class FingerprintPlanningError extends Data.TaggedError(\"FingerprintPlanningError\")<{\n readonly stage: \"configuration\" | \"invariant\";\n readonly message: string;\n}> {\n}\nexport type FingerprintPlanningFailure = FingerprintFileError | FingerprintPlanningError;\nexport type FingerprintSourceCache = Map<string, Effect.Effect<string, FingerprintFileError>>;\nexport function createFingerprintSourceCache(): FingerprintSourceCache {\n return new Map();\n}\nfunction messageOf(cause: unknown): string {\n return cause instanceof Error ? cause.message : String(cause);\n}\nfunction fingerprintFileError(operation: FingerprintFileError[\"operation\"], path: string, cause: unknown): FingerprintFileError {\n return new FingerprintFileError({ operation, path, message: messageOf(cause) });\n}\nfunction fingerprintPlanningError(stage: FingerprintPlanningError[\"stage\"], cause: unknown): FingerprintPlanningError {\n return new FingerprintPlanningError({ stage, message: messageOf(cause) });\n}\nfunction invariant(message: string): FingerprintPlanningError {\n return new FingerprintPlanningError({ stage: \"invariant\", message });\n}\nexport function cacheKey(run: AgentRun, evalId: string): string {\n if (run.experimentId === undefined) {\n throw new Error(\"ProjectTarget planning requires a discovered Experiment id.\");\n }\n return runPairKey(run.experimentId, evalId);\n}\n/** Run 级配置身份。所有会改变结果解释口径的实验配置只在 `configIdentityForRun` 里裁决一次。 */\nexport function computeConfigHash(pair: PreparedRunPair): string {\n return hashConfigIdentity(configIdentityForRun(pair.run, pair.plan));\n}\n/** 身份对象 → 配置身份哈希。 */\nexport function hashConfigIdentity(identity: ConfigIdentity): string {\n return hash(identity);\n}\n/** The only supported projection is the immutable current configuration identity. */\nexport function computeFingerprint(pair: PreparedRunPair, sourceCache?: FingerprintSourceCache, projection: FingerprintProjection = currentFingerprintProjection(pair)): Effect.Effect<string, FingerprintPlanningFailure> {\n return Effect.map(fingerprintWithManifest(pair, sourceCache, projection), ({ fingerprint }) => fingerprint);\n}\nexport interface FingerprintProjection {\n readonly _tag: \"Current\";\n readonly identity: ConfigIdentity;\n}\nfunction currentFingerprintProjection(pair: PreparedRunPair, identity: ConfigIdentity = configIdentityForRun(pair.run, pair.plan)): FingerprintProjection {\n return Object.freeze({ _tag: \"Current\", identity });\n}\n/**\n * 指纹与它的可读清单一次算出。两者**同一份输入**:清单不是事后再扫一遍磁盘拼出来的近似,\n * 而是哈希那一刻手里的原料换一种投影(内容换成内容哈希)。分开算迟早分叉,症状是\n * 「`--dry` 说这个文件变了,指纹却相等」。\n *\n * @param projection The immutable current configuration identity.\n */\nexport function fingerprintWithManifest(pair: PreparedRunPair, sourceCache?: FingerprintSourceCache, projection: FingerprintProjection = currentFingerprintProjection(pair)): Effect.Effect<{\n fingerprint: string;\n manifest: EvalManifest;\n}, FingerprintPlanningFailure> {\n return fingerprintPreparedPair(pair, sourceCache, projection);\n}\nfunction fingerprintPreparedPair(pair: PreparedRunPair, sourceCache?: FingerprintSourceCache, projection: FingerprintProjection = currentFingerprintProjection(pair)): Effect.Effect<{\n fingerprint: string;\n manifest: EvalManifest;\n}, FingerprintPlanningFailure> {\n return Effect.gen(function* () {\n const { evalDef } = pair;\n const identity = projection.identity;\n const configHash = yield* Effect.try({\n try: () => hashConfigIdentity(identity),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n const source = yield* sourceClosure(evalDef, sourceCache);\n const loaderData = yield* Effect.forEach([...(evalDef.loaderDataPaths ?? [])].sort(), (path): Effect.Effect<readonly [\n string,\n string\n ], FingerprintFileError> => Effect.map(cachedRead(path, sourceCache), (content) => [relative(process.cwd(), path), content] as const), { concurrency: \"unbounded\" });\n // 判据树(loadCriteria 登记)进的是「项目根相对路径 × 内容流式哈希」对:内容从不进内存,\n // 权限位与 mtime 不参与,所以重新 clone 一份工作树不作废。增删文件与改一字节同等作废——\n // 前者改的是这张对表的成员,后者改的是某一项的哈希。\n const criteria = yield* Effect.forEach([...(evalDef.criteriaPaths ?? [])].sort(), (path): Effect.Effect<readonly [\n string,\n string\n ], FingerprintFileError> => Effect.map(cachedContentHash(path, sourceCache), (digest) => [relative(process.cwd(), path), digest] as const), { concurrency: \"unbounded\" });\n // private 与 criteria 同口径(路径 × 流式内容哈希),分键存放——混进 criteria 会让\n // 「只改 private」与「只改 verifier」在指纹上无法区分,也让存量无 private 的结果一次性作废。\n const privateFiles = yield* Effect.forEach([...(evalDef.privatePaths ?? [])].sort(), (path): Effect.Effect<readonly [\n string,\n string\n ], FingerprintFileError> => Effect.map(cachedContentHash(path, sourceCache), (digest) => [relative(process.cwd(), path), digest] as const), { concurrency: \"unbounded\" });\n const plugins = Object.freeze({ pair: pair.plugin.pairProjection });\n const payload = {\n evaluationAlgorithm: EVALUATION_ALGORITHM,\n plugins,\n configHash,\n pairPlan: pair.identity,\n source,\n eval: {\n id: evalDef.id,\n tags: evalDef.tags ?? [],\n metadata: evalDef.metadata ?? {},\n ...(evalDef.evalGroup === undefined ? {} : { group: {\n id: evalDef.evalGroup.id,\n evalIds: [...evalDef.evalGroup.evalIds],\n definitionHash: evalDef.evalGroup.definitionHash,\n onUnavailable: evalDef.evalGroup.onUnavailable,\n } }),\n },\n loaderData,\n // 没登记判据树的 eval 完全不带这个键:空数组也会改变 payload 的字节,让所有存量结果\n // 一次性作废,而它们的判据面本来什么都没变。\n ...(criteria.length > 0 ? { criteria } : {}),\n ...(privateFiles.length > 0 ? { private: privateFiles } : {}),\n };\n // timeoutMs(evalDef / run 两处来源)刻意不入哈希:超时上限不改变「结果是什么」,只决定\n // 「等不等得到」,把它掺进指纹会让单纯调高上限也作废全部已完成结果。它由\n // ExecutionReusePlan 的 current eligibility comparison 单独裁决,不参与指纹相等性。\n //\n // 清单与哈希同一份原料:源码面把内容换成内容哈希,数据面直接沿用已经算好的哈希/内容。\n const manifest = yield* Effect.try({\n try: (): EvalManifest => Object.freeze({\n algorithmVersion: FINGERPRINT_ALGORITHM_VERSION,\n coverageVersion: FINGERPRINT_COVERAGE_VERSION,\n config: Object.freeze(Object.fromEntries(configIdentityPaths(identity))),\n plan: pair.identity,\n plugins,\n source: Object.freeze(Object.fromEntries(source.map(([path, content]) => [path, hashText(content)]))),\n data: Object.freeze(Object.fromEntries([\n ...loaderData.map(([path, content]) => [path, hashText(content)]),\n ...criteria,\n ...privateFiles,\n ])),\n }),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n return yield* Effect.try({\n try: () => ({ fingerprint: hash(payload), manifest }),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n });\n}\nfunction cachedRead(path: string, cache?: FingerprintSourceCache): Effect.Effect<string, FingerprintFileError> {\n return cachedFileEffect(path, cache, () => Effect.tryPromise({\n try: () => readFile(path, \"utf8\"),\n catch: (cause) => fingerprintFileError(\"read\", path, cause),\n }));\n}\n/**\n * 判据树文件的内容哈希:流式算,几百个文件上百 MB 的判据树不整读进内存。\n * 与 `cachedRead` 共用同一张表,键加 `criteria:` 前缀——同一个文件可能既被 `loadText` 读入\n * (缓存的是内容)又被 `loadCriteria` 登记(缓存的是哈希),不分开两种值会互相顶掉。\n */\nfunction cachedContentHash(path: string, cache?: FingerprintSourceCache): Effect.Effect<string, FingerprintFileError> {\n const key = `criteria:${path}`;\n return cachedFileEffect(key, cache, () => streamHashEffect(path));\n}\nfunction cachedFileEffect(key: string, cache: FingerprintSourceCache | undefined, create: () => Effect.Effect<string, FingerprintFileError>): Effect.Effect<string, FingerprintFileError> {\n return Effect.suspend(() => {\n const existing = cache?.get(key);\n if (existing !== undefined)\n return existing;\n if (cache === undefined)\n return create();\n return Effect.flatMap(Effect.cached(create()), (memoized) => Effect.zipRight(Effect.sync(() => {\n cache.set(key, memoized);\n }), memoized));\n });\n}\nfunction streamHashEffect(path: string): Effect.Effect<string, FingerprintFileError> {\n return Effect.scoped(Effect.acquireRelease(Effect.try({\n try: () => createReadStream(path),\n catch: (cause) => fingerprintFileError(\"hash\", path, cause),\n }), (stream) => Effect.sync(() => {\n if (!stream.destroyed)\n stream.destroy();\n })).pipe(Effect.flatMap((stream) => Effect.tryPromise({\n try: async (signal) => {\n const abort = (): void => {\n if (!stream.destroyed) {\n stream.destroy(signal.reason instanceof Error ? signal.reason : undefined);\n }\n };\n if (signal.aborted)\n abort();\n signal.addEventListener(\"abort\", abort, { once: true });\n try {\n const hasher = createHash(\"sha256\");\n for await (const chunk of stream)\n hasher.update(chunk as Buffer);\n return hasher.digest(\"hex\");\n }\n finally {\n signal.removeEventListener(\"abort\", abort);\n }\n },\n catch: (cause) => fingerprintFileError(\"hash\", path, cause),\n }))));\n}\n/** 项目内静态 import 图;外部包和动态 import 有意不进入闭包。 */\nfunction sourceClosure(evalDef: DiscoveredEval, cache?: FingerprintSourceCache): Effect.Effect<Array<[\n string,\n string\n]>, FingerprintFileError> {\n const root = process.cwd();\n const visited = new Set<string>();\n const files: Array<[\n string,\n string\n ]> = [];\n const visit = (path: string): Effect.Effect<void, FingerprintFileError> => Effect.gen(function* () {\n const absolute = resolve(path);\n if (visited.has(absolute) || (!absolute.startsWith(`${root}/`) && absolute !== root))\n return;\n visited.add(absolute);\n const content = yield* cachedRead(absolute, cache);\n files.push([relative(root, absolute), content]);\n const specs = [...content.matchAll(/\\b(?:import|export)\\s+(?:[^\"'()]*?\\s+from\\s+)?[\"']([^\"']+)[\"']/g)]\n .flatMap((match) => match[1] === undefined ? [] : [match[1]]);\n for (const spec of specs) {\n if (!spec.startsWith(\".\") && !spec.startsWith(\"/\"))\n continue;\n const resolved = yield* resolveModule(dirname(absolute), spec);\n if (resolved)\n yield* visit(resolved);\n }\n });\n return Effect.zipRight(visit(evalDef.sourcePath), Effect.sync(() => files.sort(([a], [b]) => a.localeCompare(b))));\n}\nfunction resolveModule(from: string, specifier: string): Effect.Effect<string | undefined> {\n const raw = resolve(from, specifier);\n const candidates = extname(raw) ? [raw] : [raw, ...[\".ts\", \".tsx\", \".mts\", \".cts\", \".js\", \".jsx\"].map((ext) => `${raw}${ext}`), ...[\"index.ts\", \"index.tsx\", \"index.js\"].map((name) => resolve(raw, name))];\n const findAt = (index: number): Effect.Effect<string | undefined> => {\n const candidate = candidates[index];\n if (candidate === undefined)\n return Effect.succeed(undefined);\n return Effect.tryPromise({\n try: () => stat(candidate),\n // Existing behavior intentionally treats every stat failure as a missed candidate.\n catch: (cause) => fingerprintFileError(\"read\", candidate, cause),\n }).pipe(Effect.flatMap((info) => info?.isFile() ? Effect.succeed(candidate) : findAt(index + 1)), Effect.catchAll(() => findAt(index + 1)));\n };\n return findAt(0);\n}\n/** 无派发项目规划:身份目标与 runner 后续真正消费的 prepared pair 来自同一产物。 */\nexport interface ProjectTargetPlan {\n readonly target: ProjectCurrentTarget;\n readonly preparedPairsByKey: ReadonlyMap<string, PreparedRunPair>;\n readonly plannedConfigHashes: ReadonlyMap<string, string>;\n readonly resolvedJudgesByKey: ReadonlyMap<string, ResolvedJudgeConfig | undefined>;\n readonly plannedFingerprints: ReadonlyMap<string, string>;\n readonly manifestsByKey: ReadonlyMap<string, EvalManifest>;\n /** 仅供本地 watcher;不会序列化进 Target/report。 */\n readonly watchInputs: readonly string[];\n}\n/**\n * 只做 discovery 之后的 link + physical identity planning 与 fingerprint;不读 Record,\n * 不调用 setup/create/build/Agent Ensure,也不决定 reuse/派发。\n */\nexport function planProjectTarget(evals: readonly DiscoveredEval[], agentRuns: readonly AgentRun[], configTimeoutMs?: number, options: {\n readonly configJudge?: import(\"../types.ts\").JudgeConfig;\n readonly keepSandbox?: \"failed\" | \"all\";\n} = {}): Effect.Effect<ProjectTargetPlan, SandboxRunPlanningError | FingerprintPlanningFailure> {\n return Effect.flatMap(prepareRunSandboxes(evals, agentRuns, liveSandboxPlanningServices(), {\n ...(options.keepSandbox === undefined ? {} : { keepSandbox: options.keepSandbox }),\n ...(configTimeoutMs === undefined ? {} : { configTimeoutMs }),\n }), (preparedPairs) => planProjectTargetPrepared(preparedPairs, options));\n}\nfunction planProjectTargetPrepared(preparedPairs: readonly PreparedRunPair[], options: {\n readonly configJudge?: import(\"../types.ts\").JudgeConfig;\n readonly keepSandbox?: \"failed\" | \"all\";\n}): Effect.Effect<ProjectTargetPlan, FingerprintPlanningFailure> {\n return Effect.gen(function* () {\n const preparedPairsByKey = yield* Effect.try({\n try: () => indexPreparedPairs(preparedPairs),\n catch: (cause) => fingerprintPlanningError(\"invariant\", cause),\n });\n const sourceCache = createFingerprintSourceCache();\n const plannedFingerprints = new Map<string, string>();\n const manifestsByKey = new Map<string, EvalManifest>();\n const plannedConfigHashes = new Map<string, string>();\n const resolvedJudgesByKey = new Map<string, ResolvedJudgeConfig | undefined>();\n const runConfigHashes = new Map<string, string>();\n const targetEvals = new Map<string, ProjectCurrentExperimentTarget[\"evals\"][number][]>();\n yield* Effect.forEach(preparedPairs, (pair) => Effect.gen(function* () {\n const resolvedJudge = yield* Effect.try({\n try: () => resolveJudge(pair.run.judge, pair.evalDef.judge, options.configJudge),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n resolvedJudgesByKey.set(pair.key, resolvedJudge);\n const identity = yield* Effect.try({\n try: () => configIdentityForRun(pair.run, pair.plan, resolvedJudge),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n const resultConfigHash = yield* Effect.try({\n try: () => hashConfigIdentity(identity),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n const runConfigHash = yield* Effect.try({\n try: () => computeConfigHash(pair),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n const existingRunHash = runConfigHashes.get(pair.run.experimentId);\n if (existingRunHash !== undefined && existingRunHash !== runConfigHash) {\n return yield* Effect.fail(invariant(`Run config hash differs across evals for ${JSON.stringify(pair.run.experimentId)}.`));\n }\n runConfigHashes.set(pair.run.experimentId, runConfigHash);\n const { fingerprint, manifest } = yield* fingerprintWithManifest(pair, sourceCache, currentFingerprintProjection(pair, identity));\n plannedConfigHashes.set(pair.key, resultConfigHash);\n plannedFingerprints.set(pair.key, fingerprint);\n manifestsByKey.set(pair.key, manifest);\n const bucket = targetEvals.get(pair.run.experimentId) ?? [];\n bucket.push(Object.freeze({\n id: pair.evalDef.id,\n resultConfigHash,\n fingerprint,\n evaluationKind: pair.evalDef.evaluationKind ?? \"pass\",\n }));\n targetEvals.set(pair.run.experimentId, bucket);\n }), { concurrency: \"unbounded\", discard: true });\n const seenRuns = new Set<AgentRun>();\n const experiments: ProjectCurrentExperimentTarget[] = [];\n for (const pair of preparedPairs) {\n const run = pair.run;\n if (seenRuns.has(run))\n continue;\n seenRuns.add(run);\n const runConfigHash = runConfigHashes.get(run.experimentId);\n if (runConfigHash === undefined)\n continue;\n experiments.push(Object.freeze({\n id: run.experimentId,\n runConfigHash,\n attempts: run.attempts,\n agent: run.agent.name,\n ...(run.model !== undefined ? { model: run.model } : {}),\n ...(run.reasoningEffort !== undefined ? { reasoningEffort: run.reasoningEffort } : {}),\n flags: Object.freeze({ ...run.flags }),\n ...(run.labels !== undefined ? { labels: Object.freeze({ ...run.labels }) } : {}),\n ...(run.description !== undefined ? { description: run.description } : {}),\n evals: Object.freeze([...(targetEvals.get(run.experimentId) ?? [])].sort((a, b) => a.id.localeCompare(b.id))),\n }));\n }\n const watchInputs = new Set<string>();\n for (const pair of preparedPairs) {\n watchInputs.add(resolve(pair.run.experimentSourcePath));\n watchInputs.add(resolve(pair.evalDef.sourcePath));\n }\n for (const manifest of manifestsByKey.values()) {\n for (const path of [...Object.keys(manifest.source), ...Object.keys(manifest.data)]) {\n watchInputs.add(resolve(process.cwd(), path));\n }\n }\n return Object.freeze({\n target: Object.freeze({ plannedAt: new Date().toISOString(), experiments: Object.freeze(experiments) }),\n preparedPairsByKey: readonlyMapSnapshot(preparedPairsByKey),\n plannedConfigHashes: readonlyMapSnapshot(plannedConfigHashes),\n resolvedJudgesByKey: readonlyMapSnapshot(resolvedJudgesByKey),\n plannedFingerprints: readonlyMapSnapshot(plannedFingerprints),\n manifestsByKey: readonlyMapSnapshot(manifestsByKey),\n watchInputs: Object.freeze([...watchInputs].sort()),\n });\n });\n}\nfunction readonlyMapSnapshot<Key, Value>(entries: Iterable<readonly [\n Key,\n Value\n]>): ReadonlyMap<Key, Value> {\n const snapshot = new Map(entries);\n let view: ReadonlyMap<Key, Value>;\n view = {\n get size() { return snapshot.size; },\n get: (key) => snapshot.get(key),\n has: (key) => snapshot.has(key),\n forEach: (callback, thisArg) => snapshot.forEach((value, key) => callback.call(thisArg, value, key, view)),\n entries: () => snapshot.entries(),\n keys: () => snapshot.keys(),\n values: () => snapshot.values(),\n [Symbol.iterator]: () => snapshot[Symbol.iterator](),\n };\n return Object.freeze(view);\n}\nfunction hash(value: unknown): string {\n return createHash(\"sha256\").update(stableJson(value)).digest(\"hex\");\n}\n/** folder-local source 进指纹时只留纯数据面(brand 不参与)。 */\n/** 文本内容哈希:manifest 的源码面/数据面把「内容」换成「内容哈希」时用的唯一口径。 */\nfunction hashText(content: string): string {\n return createHash(\"sha256\").update(content).digest(\"hex\");\n}\n/** 键序稳定的 JSON 序列化(对象键排序),保证同一 payload 永远同一指纹。 */\nfunction stableJson(value: unknown): string {\n if (value === null || typeof value !== \"object\")\n return JSON.stringify(value) ?? \"undefined\";\n if (Array.isArray(value))\n return `[${value.map(stableJson).join(\",\")}]`;\n return `{${Object.entries(value)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, child]) => `${JSON.stringify(key)}:${stableJson(child)}`)\n .join(\",\")}}`;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["fingerprint.ts"],"names":[],"mappings":"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","sourcesContent":["// ProjectTarget planning: current eval sources + resolved configuration become\n// immutable input identities. Reuse is decided only by Frozen Record planning.\nimport { createHash } from \"node:crypto\";\nimport { createReadStream } from \"node:fs\";\nimport { readFile, stat } from \"node:fs/promises\";\nimport { dirname, extname, relative, resolve } from \"node:path\";\nimport { Data, Effect } from \"effect\";\nimport { liveSandboxPlanningServices } from \"../sandbox/plan.ts\";\nimport type { DiscoveredEval, ResolvedJudgeConfig } from \"../types.ts\";\nimport type { ProjectCurrentExperimentTarget, ProjectCurrentTarget, } from \"./project-target.ts\";\nimport { EVALUATION_ALGORITHM, type AgentRun } from \"./types.ts\";\nimport { resolveJudge } from \"./judge-config.ts\";\nimport { prepareRunSandboxes, preparedPairsByKey as indexPreparedPairs, runPairKey, type PreparedRunPair, type SandboxRunPlanningError, } from \"./sandbox-selection.ts\";\nimport type { EvalManifest } from \"./manifest.ts\";\nimport { FINGERPRINT_ALGORITHM_VERSION, FINGERPRINT_COVERAGE_VERSION, } from \"../record/manifest.ts\";\nimport { configIdentityPaths, configIdentityForRun, type ConfigIdentity, } from \"./config-identity.ts\";\n/** Files that participate in a fingerprint are an explicit planning boundary. */\nexport class FingerprintFileError extends Data.TaggedError(\"FingerprintFileError\")<{\n readonly operation: \"read\" | \"hash\";\n readonly path: string;\n readonly message: string;\n}> {\n}\n/** A malformed or internally inconsistent planning input must not become a defect. */\nexport class FingerprintPlanningError extends Data.TaggedError(\"FingerprintPlanningError\")<{\n readonly stage: \"configuration\" | \"invariant\";\n readonly message: string;\n}> {\n}\nexport type FingerprintPlanningFailure = FingerprintFileError | FingerprintPlanningError;\nexport type FingerprintSourceCache = Map<string, Effect.Effect<string, FingerprintFileError>>;\nexport function createFingerprintSourceCache(): FingerprintSourceCache {\n return new Map();\n}\nfunction messageOf(cause: unknown): string {\n return cause instanceof Error ? cause.message : String(cause);\n}\nfunction fingerprintFileError(operation: FingerprintFileError[\"operation\"], path: string, cause: unknown): FingerprintFileError {\n return new FingerprintFileError({ operation, path, message: messageOf(cause) });\n}\nfunction fingerprintPlanningError(stage: FingerprintPlanningError[\"stage\"], cause: unknown): FingerprintPlanningError {\n return new FingerprintPlanningError({ stage, message: messageOf(cause) });\n}\nfunction invariant(message: string): FingerprintPlanningError {\n return new FingerprintPlanningError({ stage: \"invariant\", message });\n}\nexport function cacheKey(run: AgentRun, evalId: string): string {\n if (run.experimentId === undefined) {\n throw new Error(\"ProjectTarget planning requires a discovered Experiment id.\");\n }\n return runPairKey(run.experimentId, evalId);\n}\n/** Run 级配置身份。所有会改变结果解释口径的实验配置只在 `configIdentityForRun` 里裁决一次。 */\nexport function computeConfigHash(pair: PreparedRunPair): string {\n return hashConfigIdentity(configIdentityForRun(pair.run, pair.plan));\n}\n/** 身份对象 → 配置身份哈希。 */\nexport function hashConfigIdentity(identity: ConfigIdentity): string {\n return hash(identity);\n}\n/** The only supported projection is the immutable current configuration identity. */\nexport function computeFingerprint(pair: PreparedRunPair, sourceCache?: FingerprintSourceCache, projection: FingerprintProjection = currentFingerprintProjection(pair)): Effect.Effect<string, FingerprintPlanningFailure> {\n return Effect.map(fingerprintWithManifest(pair, sourceCache, projection), ({ fingerprint }) => fingerprint);\n}\nexport interface FingerprintProjection {\n readonly _tag: \"Current\";\n readonly identity: ConfigIdentity;\n}\nfunction currentFingerprintProjection(pair: PreparedRunPair, identity: ConfigIdentity = configIdentityForRun(pair.run, pair.plan)): FingerprintProjection {\n return Object.freeze({ _tag: \"Current\", identity });\n}\n/**\n * 指纹与它的可读清单一次算出。两者**同一份输入**:清单不是事后再扫一遍磁盘拼出来的近似,\n * 而是哈希那一刻手里的原料换一种投影(内容换成内容哈希)。分开算迟早分叉,症状是\n * 「`--dry` 说这个文件变了,指纹却相等」。\n *\n * @param projection The immutable current configuration identity.\n */\nexport function fingerprintWithManifest(pair: PreparedRunPair, sourceCache?: FingerprintSourceCache, projection: FingerprintProjection = currentFingerprintProjection(pair)): Effect.Effect<{\n fingerprint: string;\n manifest: EvalManifest;\n}, FingerprintPlanningFailure> {\n return fingerprintPreparedPair(pair, sourceCache, projection);\n}\nfunction fingerprintPreparedPair(pair: PreparedRunPair, sourceCache?: FingerprintSourceCache, projection: FingerprintProjection = currentFingerprintProjection(pair)): Effect.Effect<{\n fingerprint: string;\n manifest: EvalManifest;\n}, FingerprintPlanningFailure> {\n return Effect.gen(function* () {\n const { evalDef } = pair;\n const identity = projection.identity;\n const configHash = yield* Effect.try({\n try: () => hashConfigIdentity(identity),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n const source = yield* sourceClosure(evalDef, sourceCache);\n const loaderData = yield* Effect.forEach([...(evalDef.loaderDataPaths ?? [])].sort(), (path): Effect.Effect<readonly [\n string,\n string\n ], FingerprintFileError> => Effect.map(cachedRead(path, sourceCache), (content) => [relative(process.cwd(), path), content] as const), { concurrency: \"unbounded\" });\n // 判据树(loadCriteria 登记)进的是「项目根相对路径 × 内容流式哈希」对:内容从不进内存,\n // 权限位与 mtime 不参与,所以重新 clone 一份工作树不作废。增删文件与改一字节同等作废——\n // 前者改的是这张对表的成员,后者改的是某一项的哈希。\n const criteria = yield* Effect.forEach([...(evalDef.criteriaPaths ?? [])].sort(), (path): Effect.Effect<readonly [\n string,\n string\n ], FingerprintFileError> => Effect.map(cachedContentHash(path, sourceCache), (digest) => [relative(process.cwd(), path), digest] as const), { concurrency: \"unbounded\" });\n // private 与 criteria 同口径(路径 × 流式内容哈希),分键存放——混进 criteria 会让\n // 「只改 private」与「只改 verifier」在指纹上无法区分,也让存量无 private 的结果一次性作废。\n const privateFiles = yield* Effect.forEach([...(evalDef.privatePaths ?? [])].sort(), (path): Effect.Effect<readonly [\n string,\n string\n ], FingerprintFileError> => Effect.map(cachedContentHash(path, sourceCache), (digest) => [relative(process.cwd(), path), digest] as const), { concurrency: \"unbounded\" });\n const plugins = Object.freeze({ pair: pair.plugin.pairProjection });\n const payload = {\n evaluationAlgorithm: EVALUATION_ALGORITHM,\n plugins,\n configHash,\n pairPlan: pair.identity,\n source,\n eval: {\n id: evalDef.id,\n tags: evalDef.tags ?? [],\n metadata: evalDef.metadata ?? {},\n ...(evalDef.evalGroup === undefined ? {} : { group: {\n id: evalDef.evalGroup.id,\n evalIds: [...evalDef.evalGroup.evalIds],\n definitionHash: evalDef.evalGroup.definitionHash,\n onUnavailable: evalDef.evalGroup.onUnavailable,\n } }),\n },\n loaderData,\n // 没登记判据树的 eval 完全不带这个键:空数组也会改变 payload 的字节,让所有存量结果\n // 一次性作废,而它们的判据面本来什么都没变。\n ...(criteria.length > 0 ? { criteria } : {}),\n ...(privateFiles.length > 0 ? { private: privateFiles } : {}),\n };\n // timeoutMs(evalDef / run 两处来源)刻意不入哈希:超时上限不改变「结果是什么」,只决定\n // 「等不等得到」,把它掺进指纹会让单纯调高上限也作废全部已完成结果。它由\n // ExecutionReusePlan 的 current eligibility comparison 单独裁决,不参与指纹相等性。\n //\n // 清单与哈希同一份原料:源码面把内容换成内容哈希,数据面直接沿用已经算好的哈希/内容。\n const manifest = yield* Effect.try({\n try: (): EvalManifest => Object.freeze({\n algorithmVersion: FINGERPRINT_ALGORITHM_VERSION,\n coverageVersion: FINGERPRINT_COVERAGE_VERSION,\n config: Object.freeze(Object.fromEntries(configIdentityPaths(identity))),\n plan: pair.identity,\n plugins,\n source: Object.freeze(Object.fromEntries(source.map(([path, content]) => [path, hashText(content)]))),\n data: Object.freeze(Object.fromEntries([\n ...loaderData.map(([path, content]) => [path, hashText(content)]),\n ...criteria,\n ...privateFiles,\n ])),\n }),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n return yield* Effect.try({\n try: () => ({ fingerprint: hash(payload), manifest }),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n });\n}\nfunction cachedRead(path: string, cache?: FingerprintSourceCache): Effect.Effect<string, FingerprintFileError> {\n return cachedFileEffect(path, cache, () => Effect.tryPromise({\n try: () => readFile(path, \"utf8\"),\n catch: (cause) => fingerprintFileError(\"read\", path, cause),\n }));\n}\n/**\n * 判据树文件的内容哈希:流式算,几百个文件上百 MB 的判据树不整读进内存。\n * 与 `cachedRead` 共用同一张表,键加 `criteria:` 前缀——同一个文件可能既被 `loadText` 读入\n * (缓存的是内容)又被 `loadCriteria` 登记(缓存的是哈希),不分开两种值会互相顶掉。\n */\nfunction cachedContentHash(path: string, cache?: FingerprintSourceCache): Effect.Effect<string, FingerprintFileError> {\n const key = `criteria:${path}`;\n return cachedFileEffect(key, cache, () => streamHashEffect(path));\n}\nfunction cachedFileEffect(key: string, cache: FingerprintSourceCache | undefined, create: () => Effect.Effect<string, FingerprintFileError>): Effect.Effect<string, FingerprintFileError> {\n return Effect.suspend(() => {\n const existing = cache?.get(key);\n if (existing !== undefined)\n return existing;\n if (cache === undefined)\n return create();\n return Effect.flatMap(Effect.cached(create()), (memoized) => Effect.zipRight(Effect.sync(() => {\n cache.set(key, memoized);\n }), memoized));\n });\n}\nfunction streamHashEffect(path: string): Effect.Effect<string, FingerprintFileError> {\n return Effect.scoped(Effect.acquireRelease(Effect.try({\n try: () => createReadStream(path),\n catch: (cause) => fingerprintFileError(\"hash\", path, cause),\n }), (stream) => Effect.sync(() => {\n if (!stream.destroyed)\n stream.destroy();\n })).pipe(Effect.flatMap((stream) => Effect.tryPromise({\n try: async (signal) => {\n const abort = (): void => {\n if (!stream.destroyed) {\n stream.destroy(signal.reason instanceof Error ? signal.reason : undefined);\n }\n };\n if (signal.aborted)\n abort();\n signal.addEventListener(\"abort\", abort, { once: true });\n try {\n const hasher = createHash(\"sha256\");\n for await (const chunk of stream)\n hasher.update(chunk as Buffer);\n return hasher.digest(\"hex\");\n }\n finally {\n signal.removeEventListener(\"abort\", abort);\n }\n },\n catch: (cause) => fingerprintFileError(\"hash\", path, cause),\n }))));\n}\n/** 项目内静态 import 图;外部包和动态 import 有意不进入闭包。 */\nfunction sourceClosure(evalDef: DiscoveredEval, cache?: FingerprintSourceCache): Effect.Effect<Array<[\n string,\n string\n]>, FingerprintFileError> {\n const root = process.cwd();\n const visited = new Set<string>();\n const files: Array<[\n string,\n string\n ]> = [];\n const visit = (path: string): Effect.Effect<void, FingerprintFileError> => Effect.gen(function* () {\n const absolute = resolve(path);\n if (visited.has(absolute) || (!absolute.startsWith(`${root}/`) && absolute !== root))\n return;\n visited.add(absolute);\n const content = yield* cachedRead(absolute, cache);\n files.push([relative(root, absolute), content]);\n const specs = [...content.matchAll(/\\b(?:import|export)\\s+(?:[^\"'()]*?\\s+from\\s+)?[\"']([^\"']+)[\"']/g)]\n .flatMap((match) => match[1] === undefined ? [] : [match[1]]);\n for (const spec of specs) {\n if (!spec.startsWith(\".\") && !spec.startsWith(\"/\"))\n continue;\n const resolved = yield* resolveModule(dirname(absolute), spec);\n if (resolved)\n yield* visit(resolved);\n }\n });\n return Effect.zipRight(visit(evalDef.sourcePath), Effect.sync(() => files.sort(([a], [b]) => a.localeCompare(b))));\n}\nfunction resolveModule(from: string, specifier: string): Effect.Effect<string | undefined> {\n const raw = resolve(from, specifier);\n const candidates = extname(raw) ? [raw] : [raw, ...[\".ts\", \".tsx\", \".mts\", \".cts\", \".js\", \".jsx\"].map((ext) => `${raw}${ext}`), ...[\"index.ts\", \"index.tsx\", \"index.js\"].map((name) => resolve(raw, name))];\n const findAt = (index: number): Effect.Effect<string | undefined> => {\n const candidate = candidates[index];\n if (candidate === undefined)\n return Effect.succeed(undefined);\n return Effect.tryPromise({\n try: () => stat(candidate),\n // Existing behavior intentionally treats every stat failure as a missed candidate.\n catch: (cause) => fingerprintFileError(\"read\", candidate, cause),\n }).pipe(Effect.flatMap((info) => info?.isFile() ? Effect.succeed(candidate) : findAt(index + 1)), Effect.catchAll(() => findAt(index + 1)));\n };\n return findAt(0);\n}\n/** 无派发项目规划:身份目标与 runner 后续真正消费的 prepared pair 来自同一产物。 */\nexport interface ProjectTargetPlan {\n readonly target: ProjectCurrentTarget;\n readonly preparedPairsByKey: ReadonlyMap<string, PreparedRunPair>;\n readonly plannedConfigHashes: ReadonlyMap<string, string>;\n readonly resolvedJudgesByKey: ReadonlyMap<string, ResolvedJudgeConfig | undefined>;\n readonly plannedFingerprints: ReadonlyMap<string, string>;\n readonly manifestsByKey: ReadonlyMap<string, EvalManifest>;\n /** 仅供本地 watcher;不会序列化进 Target/report。 */\n readonly watchInputs: readonly string[];\n}\n/**\n * 只做 discovery 之后的 link + physical identity planning 与 fingerprint;不读 Record,\n * 不调用 setup/create/build/Agent Ensure,也不决定 reuse/派发。\n */\nexport function planProjectTarget(evals: readonly DiscoveredEval[], agentRuns: readonly AgentRun[], configTimeoutMs?: number, options: {\n readonly configJudge?: import(\"../types.ts\").JudgeConfig;\n readonly keepSandbox?: \"failed\" | \"all\";\n} = {}): Effect.Effect<ProjectTargetPlan, SandboxRunPlanningError | FingerprintPlanningFailure> {\n return Effect.flatMap(prepareRunSandboxes(evals, agentRuns, liveSandboxPlanningServices(), {\n ...(options.keepSandbox === undefined ? {} : { keepSandbox: options.keepSandbox }),\n ...(configTimeoutMs === undefined ? {} : { configTimeoutMs }),\n }), (preparedPairs) => planPreparedProjectTarget(preparedPairs, options));\n}\n/**\n * Freezes identity and fingerprint planning for already linked physical pairs.\n * Project-current reads and explicit adoption share this seam so neither can\n * rebuild the effective Experiment identity with a different projection.\n */\nexport function planPreparedProjectTarget(preparedPairs: readonly PreparedRunPair[], options: {\n readonly configJudge?: import(\"../types.ts\").JudgeConfig;\n readonly keepSandbox?: \"failed\" | \"all\";\n}): Effect.Effect<ProjectTargetPlan, FingerprintPlanningFailure> {\n return Effect.gen(function* () {\n const preparedPairsByKey = yield* Effect.try({\n try: () => indexPreparedPairs(preparedPairs),\n catch: (cause) => fingerprintPlanningError(\"invariant\", cause),\n });\n const sourceCache = createFingerprintSourceCache();\n const plannedFingerprints = new Map<string, string>();\n const manifestsByKey = new Map<string, EvalManifest>();\n const plannedConfigHashes = new Map<string, string>();\n const resolvedJudgesByKey = new Map<string, ResolvedJudgeConfig | undefined>();\n const runConfigHashes = new Map<string, string>();\n const targetEvals = new Map<string, ProjectCurrentExperimentTarget[\"evals\"][number][]>();\n yield* Effect.forEach(preparedPairs, (pair) => Effect.gen(function* () {\n const resolvedJudge = yield* Effect.try({\n try: () => resolveJudge(pair.run.judge, pair.evalDef.judge, options.configJudge),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n resolvedJudgesByKey.set(pair.key, resolvedJudge);\n const identity = yield* Effect.try({\n try: () => configIdentityForRun(pair.run, pair.plan, resolvedJudge),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n const resultConfigHash = yield* Effect.try({\n try: () => hashConfigIdentity(identity),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n const runConfigHash = yield* Effect.try({\n try: () => computeConfigHash(pair),\n catch: (cause) => fingerprintPlanningError(\"configuration\", cause),\n });\n const existingRunHash = runConfigHashes.get(pair.run.experimentId);\n if (existingRunHash !== undefined && existingRunHash !== runConfigHash) {\n return yield* Effect.fail(invariant(`Run config hash differs across evals for ${JSON.stringify(pair.run.experimentId)}.`));\n }\n runConfigHashes.set(pair.run.experimentId, runConfigHash);\n const { fingerprint, manifest } = yield* fingerprintWithManifest(pair, sourceCache, currentFingerprintProjection(pair, identity));\n plannedConfigHashes.set(pair.key, resultConfigHash);\n plannedFingerprints.set(pair.key, fingerprint);\n manifestsByKey.set(pair.key, manifest);\n const bucket = targetEvals.get(pair.run.experimentId) ?? [];\n bucket.push(Object.freeze({\n id: pair.evalDef.id,\n resultConfigHash,\n fingerprint,\n evaluationKind: pair.evalDef.evaluationKind ?? \"pass\",\n }));\n targetEvals.set(pair.run.experimentId, bucket);\n }), { concurrency: \"unbounded\", discard: true });\n const seenRuns = new Set<AgentRun>();\n const experiments: ProjectCurrentExperimentTarget[] = [];\n for (const pair of preparedPairs) {\n const run = pair.run;\n if (seenRuns.has(run))\n continue;\n seenRuns.add(run);\n const runConfigHash = runConfigHashes.get(run.experimentId);\n if (runConfigHash === undefined)\n continue;\n experiments.push(Object.freeze({\n id: run.experimentId,\n runConfigHash,\n attempts: run.attempts,\n agent: run.agent.name,\n ...(run.model !== undefined ? { model: run.model } : {}),\n ...(run.reasoningEffort !== undefined ? { reasoningEffort: run.reasoningEffort } : {}),\n flags: Object.freeze({ ...run.flags }),\n ...(run.labels !== undefined ? { labels: Object.freeze({ ...run.labels }) } : {}),\n ...(run.description !== undefined ? { description: run.description } : {}),\n evals: Object.freeze([...(targetEvals.get(run.experimentId) ?? [])].sort((a, b) => a.id.localeCompare(b.id))),\n }));\n }\n const watchInputs = new Set<string>();\n for (const pair of preparedPairs) {\n watchInputs.add(resolve(pair.run.experimentSourcePath));\n watchInputs.add(resolve(pair.evalDef.sourcePath));\n }\n for (const manifest of manifestsByKey.values()) {\n for (const path of [...Object.keys(manifest.source), ...Object.keys(manifest.data)]) {\n watchInputs.add(resolve(process.cwd(), path));\n }\n }\n return Object.freeze({\n target: Object.freeze({ plannedAt: new Date().toISOString(), experiments: Object.freeze(experiments) }),\n preparedPairsByKey: readonlyMapSnapshot(preparedPairsByKey),\n plannedConfigHashes: readonlyMapSnapshot(plannedConfigHashes),\n resolvedJudgesByKey: readonlyMapSnapshot(resolvedJudgesByKey),\n plannedFingerprints: readonlyMapSnapshot(plannedFingerprints),\n manifestsByKey: readonlyMapSnapshot(manifestsByKey),\n watchInputs: Object.freeze([...watchInputs].sort()),\n });\n });\n}\nfunction readonlyMapSnapshot<Key, Value>(entries: Iterable<readonly [\n Key,\n Value\n]>): ReadonlyMap<Key, Value> {\n const snapshot = new Map(entries);\n let view: ReadonlyMap<Key, Value>;\n view = {\n get size() { return snapshot.size; },\n get: (key) => snapshot.get(key),\n has: (key) => snapshot.has(key),\n forEach: (callback, thisArg) => snapshot.forEach((value, key) => callback.call(thisArg, value, key, view)),\n entries: () => snapshot.entries(),\n keys: () => snapshot.keys(),\n values: () => snapshot.values(),\n [Symbol.iterator]: () => snapshot[Symbol.iterator](),\n };\n return Object.freeze(view);\n}\nfunction hash(value: unknown): string {\n return createHash(\"sha256\").update(stableJson(value)).digest(\"hex\");\n}\n/** folder-local source 进指纹时只留纯数据面(brand 不参与)。 */\n/** 文本内容哈希:manifest 的源码面/数据面把「内容」换成「内容哈希」时用的唯一口径。 */\nfunction hashText(content: string): string {\n return createHash(\"sha256\").update(content).digest(\"hex\");\n}\n/** 键序稳定的 JSON 序列化(对象键排序),保证同一 payload 永远同一指纹。 */\nfunction stableJson(value: unknown): string {\n if (value === null || typeof value !== \"object\")\n return JSON.stringify(value) ?? \"undefined\";\n if (Array.isArray(value))\n return `[${value.map(stableJson).join(\",\")}]`;\n return `{${Object.entries(value)\n .sort(([left], [right]) => left.localeCompare(right))\n .map(([key, child]) => `${JSON.stringify(key)}:${stableJson(child)}`)\n .join(\",\")}}`;\n}\n"]}
|
|
@@ -68,4 +68,13 @@ export declare function planProjectTarget(evals: readonly DiscoveredEval[], agen
|
|
|
68
68
|
readonly configJudge?: import("../types.cjs").JudgeConfig;
|
|
69
69
|
readonly keepSandbox?: "failed" | "all";
|
|
70
70
|
}): Effect.Effect<ProjectTargetPlan, SandboxRunPlanningError | FingerprintPlanningFailure>;
|
|
71
|
+
/**
|
|
72
|
+
* Freezes identity and fingerprint planning for already linked physical pairs.
|
|
73
|
+
* Project-current reads and explicit adoption share this seam so neither can
|
|
74
|
+
* rebuild the effective Experiment identity with a different projection.
|
|
75
|
+
*/
|
|
76
|
+
export declare function planPreparedProjectTarget(preparedPairs: readonly PreparedRunPair[], options: {
|
|
77
|
+
readonly configJudge?: import("../types.cjs").JudgeConfig;
|
|
78
|
+
readonly keepSandbox?: "failed" | "all";
|
|
79
|
+
}): Effect.Effect<ProjectTargetPlan, FingerprintPlanningFailure>;
|
|
71
80
|
export {};
|
|
@@ -68,4 +68,13 @@ export declare function planProjectTarget(evals: readonly DiscoveredEval[], agen
|
|
|
68
68
|
readonly configJudge?: import("../types.mjs").JudgeConfig;
|
|
69
69
|
readonly keepSandbox?: "failed" | "all";
|
|
70
70
|
}): Effect.Effect<ProjectTargetPlan, SandboxRunPlanningError | FingerprintPlanningFailure>;
|
|
71
|
+
/**
|
|
72
|
+
* Freezes identity and fingerprint planning for already linked physical pairs.
|
|
73
|
+
* Project-current reads and explicit adoption share this seam so neither can
|
|
74
|
+
* rebuild the effective Experiment identity with a different projection.
|
|
75
|
+
*/
|
|
76
|
+
export declare function planPreparedProjectTarget(preparedPairs: readonly PreparedRunPair[], options: {
|
|
77
|
+
readonly configJudge?: import("../types.mjs").JudgeConfig;
|
|
78
|
+
readonly keepSandbox?: "failed" | "all";
|
|
79
|
+
}): Effect.Effect<ProjectTargetPlan, FingerprintPlanningFailure>;
|
|
71
80
|
export {};
|
|
@@ -68,4 +68,13 @@ export declare function planProjectTarget(evals: readonly DiscoveredEval[], agen
|
|
|
68
68
|
readonly configJudge?: import("../types.js").JudgeConfig;
|
|
69
69
|
readonly keepSandbox?: "failed" | "all";
|
|
70
70
|
}): Effect.Effect<ProjectTargetPlan, SandboxRunPlanningError | FingerprintPlanningFailure>;
|
|
71
|
+
/**
|
|
72
|
+
* Freezes identity and fingerprint planning for already linked physical pairs.
|
|
73
|
+
* Project-current reads and explicit adoption share this seam so neither can
|
|
74
|
+
* rebuild the effective Experiment identity with a different projection.
|
|
75
|
+
*/
|
|
76
|
+
export declare function planPreparedProjectTarget(preparedPairs: readonly PreparedRunPair[], options: {
|
|
77
|
+
readonly configJudge?: import("../types.js").JudgeConfig;
|
|
78
|
+
readonly keepSandbox?: "failed" | "all";
|
|
79
|
+
}): Effect.Effect<ProjectTargetPlan, FingerprintPlanningFailure>;
|
|
71
80
|
export {};
|
|
@@ -17,6 +17,8 @@ const __niceevalExport6 = __niceevalCanonical["fingerprintWithManifest"];
|
|
|
17
17
|
export { __niceevalExport6 as fingerprintWithManifest };
|
|
18
18
|
const __niceevalExport7 = __niceevalCanonical["hashConfigIdentity"];
|
|
19
19
|
export { __niceevalExport7 as hashConfigIdentity };
|
|
20
|
-
const __niceevalExport8 = __niceevalCanonical["
|
|
21
|
-
export { __niceevalExport8 as
|
|
20
|
+
const __niceevalExport8 = __niceevalCanonical["planPreparedProjectTarget"];
|
|
21
|
+
export { __niceevalExport8 as planPreparedProjectTarget };
|
|
22
|
+
const __niceevalExport9 = __niceevalCanonical["planProjectTarget"];
|
|
23
|
+
export { __niceevalExport9 as planProjectTarget };
|
|
22
24
|
//# sourceMappingURL=fingerprint.js.map
|
|
@@ -185,23 +185,36 @@ function makeAbortError(signal) {
|
|
|
185
185
|
return err;
|
|
186
186
|
}
|
|
187
187
|
function awaitAbort(signal) {
|
|
188
|
+
if (signal === undefined)
|
|
189
|
+
return effect_1.Effect.never;
|
|
188
190
|
return effect_1.Effect.async((resume, effectSignal) => {
|
|
189
|
-
|
|
190
|
-
return;
|
|
191
|
+
let completed = false;
|
|
191
192
|
const cleanup = () => {
|
|
192
193
|
signal.removeEventListener("abort", onAbort);
|
|
193
|
-
effectSignal.removeEventListener("abort",
|
|
194
|
+
effectSignal.removeEventListener("abort", onEffectAbort);
|
|
194
195
|
};
|
|
195
|
-
const
|
|
196
|
+
const cancel = () => {
|
|
197
|
+
if (completed)
|
|
198
|
+
return;
|
|
199
|
+
completed = true;
|
|
196
200
|
cleanup();
|
|
201
|
+
};
|
|
202
|
+
const onAbort = () => {
|
|
203
|
+
if (completed)
|
|
204
|
+
return;
|
|
205
|
+
cancel();
|
|
197
206
|
resume(effect_1.Effect.fail(makeAbortError(signal)));
|
|
198
207
|
};
|
|
199
|
-
|
|
200
|
-
onAbort();
|
|
201
|
-
return;
|
|
202
|
-
}
|
|
208
|
+
const onEffectAbort = () => cancel();
|
|
203
209
|
signal.addEventListener("abort", onAbort, { once: true });
|
|
204
|
-
effectSignal.addEventListener("abort",
|
|
210
|
+
effectSignal.addEventListener("abort", onEffectAbort, { once: true });
|
|
211
|
+
// Both listeners must be live before inspecting either signal: otherwise
|
|
212
|
+
// an abort between inspection and registration could strand the waiter.
|
|
213
|
+
if (effectSignal.aborted)
|
|
214
|
+
onEffectAbort();
|
|
215
|
+
else if (signal.aborted)
|
|
216
|
+
onAbort();
|
|
217
|
+
return effect_1.Effect.sync(cancel);
|
|
205
218
|
});
|
|
206
219
|
}
|
|
207
220
|
function delayOrAbortEffect(ms, signal) {
|
|
@@ -221,7 +234,7 @@ function acquireGateSlotEffect(niceevalRoot, experimentId, maxConcurrency, ident
|
|
|
221
234
|
const acquireLoop = () => effect_1.Effect.suspend(() => {
|
|
222
235
|
if (opts.signal?.aborted)
|
|
223
236
|
return effect_1.Effect.fail(makeAbortError(opts.signal));
|
|
224
|
-
return tryAcquireGateSlotOnceEffect(niceevalRoot, experimentId, maxConcurrency, identity,
|
|
237
|
+
return effect_1.Clock.currentTimeMillis.pipe(effect_1.Effect.flatMap((nowMs) => tryAcquireGateSlotOnceEffect(niceevalRoot, experimentId, maxConcurrency, identity, nowMs)), effect_1.Effect.flatMap((result) => {
|
|
225
238
|
if (result.kind === "acquired")
|
|
226
239
|
return effect_1.Effect.succeed(result);
|
|
227
240
|
const reportWait = waitStarted
|
|
@@ -238,8 +251,7 @@ function acquireGateSlotEffect(niceevalRoot, experimentId, maxConcurrency, ident
|
|
|
238
251
|
const id = gateLeaseEntryId(experimentId, slot);
|
|
239
252
|
const key = heldKey(niceevalRoot, id);
|
|
240
253
|
let released = false;
|
|
241
|
-
const heartbeat = effect_1.Effect.forever(effect_1.Effect.sleep(heartbeatIntervalMs).pipe(effect_1.Effect.zipRight(effect_1.Effect.
|
|
242
|
-
.pipe(effect_1.Effect.ignore))));
|
|
254
|
+
const heartbeat = effect_1.Effect.forever(effect_1.Effect.sleep(heartbeatIntervalMs).pipe(effect_1.Effect.zipRight(effect_1.Effect.uninterruptible(effect_1.Clock.currentTimeMillis.pipe(effect_1.Effect.flatMap((nowMs) => renewHeartbeatEffect(dir, id, record, nowMs, () => released)))).pipe(effect_1.Effect.ignore))));
|
|
243
255
|
// A child inherits the parent's interruptibility. This branch still
|
|
244
256
|
// runs under the acquisition mask, so restore the heartbeat before
|
|
245
257
|
// forking; otherwise release would wait forever while interrupting an
|