niceeval 0.13.2 → 0.13.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/bub.cjs +4 -4
- package/dist/agents/bub.cjs.map +1 -1
- package/dist/agents/bub.d.cts +2 -2
- package/dist/agents/bub.d.mts +2 -2
- package/dist/agents/bub.d.ts +2 -2
- package/dist/agents/claude-code-native.cjs +213 -0
- package/dist/agents/claude-code-native.cjs.map +1 -0
- package/dist/agents/claude-code-native.d.cts +5 -0
- package/dist/agents/claude-code-native.d.mts +5 -0
- package/dist/agents/claude-code-native.d.ts +5 -0
- package/dist/agents/claude-code-native.js +6 -0
- package/dist/agents/claude-code-native.js.map +1 -0
- package/dist/agents/claude-code.cjs +26 -80
- package/dist/agents/claude-code.cjs.map +1 -1
- package/dist/agents/codex-app-server.cjs +314 -0
- package/dist/agents/codex-app-server.cjs.map +1 -0
- package/dist/agents/codex-app-server.d.cts +9 -0
- package/dist/agents/codex-app-server.d.mts +9 -0
- package/dist/agents/codex-app-server.d.ts +9 -0
- package/dist/agents/codex-app-server.js +6 -0
- package/dist/agents/codex-app-server.js.map +1 -0
- package/dist/agents/codex.cjs +19 -68
- package/dist/agents/codex.cjs.map +1 -1
- package/dist/agents/codex.d.cts +3 -3
- package/dist/agents/codex.d.mts +3 -3
- package/dist/agents/codex.d.ts +3 -3
- package/dist/agents/index.cjs +3 -1
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +1 -0
- package/dist/agents/index.d.mts +1 -0
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/index.js +84 -82
- package/dist/agents/index.mjs +84 -82
- package/dist/agents/managed-jsonl.cjs +207 -0
- package/dist/agents/managed-jsonl.cjs.map +1 -0
- package/dist/agents/managed-jsonl.d.cts +39 -0
- package/dist/agents/managed-jsonl.d.mts +39 -0
- package/dist/agents/managed-jsonl.d.ts +39 -0
- package/dist/agents/managed-jsonl.js +6 -0
- package/dist/agents/managed-jsonl.js.map +1 -0
- package/dist/agents/managed-process.cjs +31 -0
- package/dist/agents/managed-process.cjs.map +1 -0
- package/dist/agents/managed-process.d.cts +3 -0
- package/dist/agents/managed-process.d.mts +3 -0
- package/dist/agents/managed-process.d.ts +3 -0
- package/dist/agents/managed-process.js +6 -0
- package/dist/agents/managed-process.js.map +1 -0
- package/dist/agents/omp.cjs +18 -1
- package/dist/agents/omp.cjs.map +1 -1
- package/dist/agents/sdk-streams.cjs +11 -4
- package/dist/agents/sdk-streams.cjs.map +1 -1
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +8 -0
- package/dist/agents/types.d.mts +8 -0
- package/dist/agents/types.d.ts +8 -0
- package/dist/analysis/bindings.cjs +74 -19
- package/dist/analysis/bindings.cjs.map +1 -1
- package/dist/analysis/bindings.d.cts +534 -156
- package/dist/analysis/bindings.d.mts +534 -156
- package/dist/analysis/bindings.d.ts +534 -156
- package/dist/analysis/domain-view.cjs.map +1 -1
- package/dist/analysis/domain-view.d.cts +137 -8
- package/dist/analysis/domain-view.d.mts +137 -8
- package/dist/analysis/domain-view.d.ts +137 -8
- package/dist/analysis/index.cjs.map +1 -1
- package/dist/analysis/index.d.cts +1 -1
- package/dist/analysis/index.d.mts +1 -1
- package/dist/analysis/index.d.ts +1 -1
- package/dist/assertions/api.cjs.map +1 -1
- package/dist/assertions/api.d.cts +62 -0
- package/dist/assertions/api.d.mts +62 -0
- package/dist/assertions/api.d.ts +62 -0
- package/dist/assertions/judge.cjs +56 -5
- package/dist/assertions/judge.cjs.map +1 -1
- package/dist/assertions/match.cjs +66 -42
- package/dist/assertions/match.cjs.map +1 -1
- package/dist/assertions/match.d.cts +13 -0
- package/dist/assertions/match.d.mts +13 -0
- package/dist/assertions/match.d.ts +13 -0
- package/dist/assertions/record/attachment.cjs +104 -33
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/record/attachment.d.cts +294 -57
- package/dist/assertions/record/attachment.d.mts +294 -57
- package/dist/assertions/record/attachment.d.ts +294 -57
- package/dist/assertions/record/codec.cjs +91 -17
- package/dist/assertions/record/codec.cjs.map +1 -1
- package/dist/assertions/record/codec.d.cts +280 -52
- package/dist/assertions/record/codec.d.mts +280 -52
- package/dist/assertions/record/codec.d.ts +280 -52
- package/dist/assertions/record/index.js +2 -0
- package/dist/assertions/record/model.cjs +16 -0
- package/dist/assertions/record/model.cjs.map +1 -1
- package/dist/assertions/record/model.d.cts +120 -13
- package/dist/assertions/record/model.d.mts +120 -13
- package/dist/assertions/record/model.d.ts +120 -13
- package/dist/assertions/record/model.js +2 -0
- package/dist/assertions/record/producer.cjs +70 -50
- package/dist/assertions/record/producer.cjs.map +1 -1
- package/dist/assertions/record/producer.d.cts +8 -7
- package/dist/assertions/record/producer.d.mts +8 -7
- package/dist/assertions/record/producer.d.ts +8 -7
- package/dist/assertions/runtime.cjs +49 -7
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/cli/application.cjs +40 -0
- package/dist/cli/application.cjs.map +1 -0
- package/dist/cli/application.d.cts +129 -0
- package/dist/cli/application.d.mts +129 -0
- package/dist/cli/application.d.ts +129 -0
- package/dist/cli/application.js +24 -0
- package/dist/cli/application.js.map +1 -0
- package/dist/cli/bootstrap.cjs +10 -4
- package/dist/cli/bootstrap.cjs.map +1 -1
- package/dist/cli/node-application.cjs +123 -0
- package/dist/cli/node-application.cjs.map +1 -0
- package/dist/cli/node-application.d.cts +14 -0
- package/dist/cli/node-application.d.mts +14 -0
- package/dist/cli/node-application.d.ts +14 -0
- package/dist/cli/node-application.js +26 -0
- package/dist/cli/node-application.js.map +1 -0
- package/dist/cli/program.cjs +2807 -0
- package/dist/cli/program.cjs.map +1 -0
- package/dist/cli/program.d.cts +352 -0
- package/dist/cli/program.d.mts +352 -0
- package/dist/cli/program.d.ts +352 -0
- package/dist/cli/program.js +36 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/project-configuration.cjs +134 -0
- package/dist/cli/project-configuration.cjs.map +1 -0
- package/dist/cli/project-configuration.d.cts +64 -0
- package/dist/cli/project-configuration.d.mts +64 -0
- package/dist/cli/project-configuration.d.ts +64 -0
- package/dist/cli/project-configuration.js +22 -0
- package/dist/cli/project-configuration.js.map +1 -0
- package/dist/cli/record.cjs +20 -4
- package/dist/cli/record.cjs.map +1 -1
- package/dist/cli/record.d.cts +3 -3
- package/dist/cli/record.d.mts +3 -3
- package/dist/cli/record.d.ts +3 -3
- package/dist/cli.cjs +19 -3130
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.cts +2 -148
- package/dist/cli.d.mts +2 -148
- package/dist/cli.d.ts +2 -148
- package/dist/cli.js +22 -30
- package/dist/context/assert-first.cjs +21 -15
- package/dist/context/assert-first.cjs.map +1 -1
- package/dist/context/assert-first.d.cts +1 -0
- package/dist/context/assert-first.d.mts +1 -0
- package/dist/context/assert-first.d.ts +1 -0
- package/dist/context/attempt-resources.cjs +13 -0
- package/dist/context/attempt-resources.cjs.map +1 -0
- package/dist/context/attempt-resources.d.cts +3 -0
- package/dist/context/attempt-resources.d.mts +3 -0
- package/dist/context/attempt-resources.d.ts +3 -0
- package/dist/context/attempt-resources.js +8 -0
- package/dist/context/attempt-resources.js.map +1 -0
- package/dist/context/session.cjs +4 -3
- package/dist/context/session.cjs.map +1 -1
- package/dist/context/session.d.cts +1 -0
- package/dist/context/session.d.mts +1 -0
- package/dist/context/session.d.ts +1 -0
- package/dist/eval/record/verdict.cjs +3 -2
- package/dist/eval/record/verdict.cjs.map +1 -1
- package/dist/experiment/host/index.cjs +1 -6
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/experiment/host/index.d.cts +1 -0
- package/dist/experiment/host/index.d.mts +1 -0
- package/dist/experiment/host/index.d.ts +1 -0
- package/dist/load-config.cjs +13 -4
- package/dist/load-config.cjs.map +1 -1
- package/dist/load-config.d.cts +4 -3
- package/dist/load-config.d.mts +4 -3
- package/dist/load-config.d.ts +4 -3
- package/dist/load-config.js +4 -2
- package/dist/o11y/parsers/codex.cjs +29 -7
- package/dist/o11y/parsers/codex.cjs.map +1 -1
- package/dist/record/codec/core.d.cts +0 -2
- package/dist/record/codec/core.d.mts +0 -2
- package/dist/record/codec/core.d.ts +0 -2
- package/dist/record/codec/identifiers.cjs +2 -3
- package/dist/record/codec/identifiers.cjs.map +1 -1
- package/dist/record/codec/identifiers.d.cts +1 -2
- package/dist/record/codec/identifiers.d.mts +1 -2
- package/dist/record/codec/identifiers.d.ts +1 -2
- package/dist/record/codec/identifiers.js +10 -12
- package/dist/record/codec/index.js +42 -44
- package/dist/record/definition/attachment.cjs +1 -0
- package/dist/record/definition/attachment.cjs.map +1 -1
- package/dist/record/definition/attachment.d.cts +14 -0
- package/dist/record/definition/attachment.d.mts +14 -0
- package/dist/record/definition/attachment.d.ts +14 -0
- package/dist/record/family/assertions-v1.cjs +104 -0
- package/dist/record/family/assertions-v1.cjs.map +1 -0
- package/dist/record/family/assertions-v1.d.cts +2 -0
- package/dist/record/family/assertions-v1.d.mts +2 -0
- package/dist/record/family/assertions-v1.d.ts +2 -0
- package/dist/record/family/assertions-v1.js +6 -0
- package/dist/record/family/assertions-v1.js.map +1 -0
- package/dist/record/family/assertions.cjs +16 -5
- package/dist/record/family/assertions.cjs.map +1 -1
- package/dist/record/family/assertions.d.cts +510 -56
- package/dist/record/family/assertions.d.mts +510 -56
- package/dist/record/family/assertions.d.ts +510 -56
- package/dist/record/family/assertions.js +14 -10
- package/dist/record/family/catalog.cjs +17 -1
- package/dist/record/family/catalog.cjs.map +1 -1
- package/dist/record/family/catalog.d.cts +1292 -104
- package/dist/record/family/catalog.d.mts +1292 -104
- package/dist/record/family/catalog.d.ts +1292 -104
- package/dist/record/family/catalog.js +22 -20
- package/dist/record/family/index.js +144 -138
- package/dist/record/family/observability-v1.cjs +5 -0
- package/dist/record/family/observability-v1.cjs.map +1 -1
- package/dist/record/family/observability.cjs +1 -1
- package/dist/record/family/observability.cjs.map +1 -1
- package/dist/record/host/runtime.cjs +323 -173
- package/dist/record/host/runtime.cjs.map +1 -1
- package/dist/record/host/types.cjs.map +1 -1
- package/dist/record/host/types.d.cts +9 -7
- package/dist/record/host/types.d.mts +9 -7
- package/dist/record/host/types.d.ts +9 -7
- package/dist/record/model/core.cjs.map +1 -1
- package/dist/record/model/core.d.cts +1 -2
- package/dist/record/model/core.d.mts +1 -2
- package/dist/record/model/core.d.ts +1 -2
- package/dist/record/model/definition.cjs +1 -2
- package/dist/record/model/definition.cjs.map +1 -1
- package/dist/record/model/definition.d.cts +1 -7
- package/dist/record/model/definition.d.mts +1 -7
- package/dist/record/model/definition.d.ts +1 -7
- package/dist/record/model/identifiers.cjs +2 -3
- package/dist/record/model/identifiers.cjs.map +1 -1
- package/dist/record/model/identifiers.d.cts +1 -3
- package/dist/record/model/identifiers.d.mts +1 -3
- package/dist/record/model/identifiers.d.ts +1 -3
- package/dist/record/model/identifiers.js +36 -38
- package/dist/record/model/index.js +60 -62
- package/dist/record/platform/node.cjs +17 -7
- package/dist/record/platform/node.cjs.map +1 -1
- package/dist/record/platform/services.cjs.map +1 -1
- package/dist/record/platform/services.d.cts +8 -3
- package/dist/record/platform/services.d.mts +8 -3
- package/dist/record/platform/services.d.ts +8 -3
- package/dist/record/reader/format.cjs +16 -65
- package/dist/record/reader/format.cjs.map +1 -1
- package/dist/record/reader/format.d.cts +5 -9
- package/dist/record/reader/format.d.mts +5 -9
- package/dist/record/reader/format.d.ts +5 -9
- package/dist/record/reader/index.js +10 -8
- package/dist/record/reader/runtime.cjs +63 -32
- package/dist/record/reader/runtime.cjs.map +1 -1
- package/dist/record/reader/runtime.d.cts +40 -4
- package/dist/record/reader/runtime.d.mts +40 -4
- package/dist/record/reader/runtime.d.ts +40 -4
- package/dist/record/reader/runtime.js +6 -4
- package/dist/report/assets/enhance.js +5 -5
- package/dist/report/assets/styles.css +190 -24
- package/dist/report/built-in/result-components.cjs +8 -5
- package/dist/report/built-in/result-components.cjs.map +1 -1
- package/dist/report/built-in/standard.cjs +3 -0
- package/dist/report/built-in/standard.cjs.map +1 -1
- package/dist/report/built-in/standard.d.cts +2 -0
- package/dist/report/built-in/standard.d.mts +2 -0
- package/dist/report/built-in/standard.d.ts +2 -0
- package/dist/report/client-dist/app.js +53 -0
- package/dist/report/components/attempt-detail/compute.cjs +108 -231
- package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
- package/dist/report/components/attempt-detail/compute.d.cts +11 -45
- package/dist/report/components/attempt-detail/compute.d.mts +11 -45
- package/dist/report/components/attempt-detail/compute.d.ts +11 -45
- package/dist/report/components/attempt-detail/compute.js +2 -4
- package/dist/report/components/attempt-detail/content.cjs +4 -4
- package/dist/report/components/attempt-detail/content.cjs.map +1 -1
- package/dist/report/components/attempt-detail/validate.cjs +47 -4
- package/dist/report/components/attempt-detail/validate.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.cjs +9 -15
- package/dist/report/components/entity-lists/compute.cjs.map +1 -1
- package/dist/report/components/entity-lists/content.cjs +53 -40
- package/dist/report/components/entity-lists/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.cjs +1 -3
- package/dist/report/components/entity-lists/index.cjs.map +1 -1
- package/dist/report/components/experiment-detail/compute.cjs +4 -6
- package/dist/report/components/experiment-detail/compute.cjs.map +1 -1
- package/dist/report/components/summaries/index.cjs +5 -1
- package/dist/report/components/summaries/index.cjs.map +1 -1
- package/dist/report/definition/cell.cjs +14 -7
- package/dist/report/definition/cell.cjs.map +1 -1
- package/dist/report/definition/cell.d.cts +4 -0
- package/dist/report/definition/cell.d.mts +4 -0
- package/dist/report/definition/cell.d.ts +4 -0
- package/dist/report/definition/primitives/assertion-evidence.cjs +96 -0
- package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -0
- package/dist/report/definition/primitives/assertion-evidence.d.cts +11 -0
- package/dist/report/definition/primitives/assertion-evidence.d.mts +11 -0
- package/dist/report/definition/primitives/assertion-evidence.d.ts +11 -0
- package/dist/report/definition/primitives/assertion-evidence.js +6 -0
- package/dist/report/definition/primitives/assertion-evidence.js.map +1 -0
- package/dist/report/definition/primitives/conversation.cjs +7 -0
- package/dist/report/definition/primitives/conversation.cjs.map +1 -1
- package/dist/report/definition/primitives/conversation.d.cts +2 -0
- package/dist/report/definition/primitives/conversation.d.mts +2 -0
- package/dist/report/definition/primitives/conversation.d.ts +2 -0
- package/dist/report/definition/primitives/turn-trace.cjs +53 -3
- package/dist/report/definition/primitives/turn-trace.cjs.map +1 -1
- package/dist/report/definition/primitives.cjs +14 -1
- package/dist/report/definition/primitives.cjs.map +1 -1
- package/dist/report/definition/report.cjs +16 -8
- package/dist/report/definition/report.cjs.map +1 -1
- package/dist/report/definition/report.d.cts +6 -0
- package/dist/report/definition/report.d.mts +6 -0
- package/dist/report/definition/report.d.ts +6 -0
- package/dist/report/definition/table-text.cjs +12 -3
- package/dist/report/definition/table-text.cjs.map +1 -1
- package/dist/report/definition/table-text.d.cts +6 -1
- package/dist/report/definition/table-text.d.mts +6 -1
- package/dist/report/definition/table-text.d.ts +6 -1
- package/dist/report/execution/model.cjs +6 -14
- package/dist/report/execution/model.cjs.map +1 -1
- package/dist/report/execution/model.d.cts +5 -10
- package/dist/report/execution/model.d.mts +5 -10
- package/dist/report/execution/model.d.ts +5 -10
- package/dist/report/execution/model.js +6 -6
- package/dist/report/execution/paths.cjs +0 -11
- package/dist/report/execution/paths.cjs.map +1 -1
- package/dist/report/execution/paths.d.cts +0 -1
- package/dist/report/execution/paths.d.mts +0 -1
- package/dist/report/execution/paths.d.ts +0 -1
- package/dist/report/execution/paths.js +6 -8
- package/dist/report/host/execute.cjs +13 -22
- package/dist/report/host/execute.cjs.map +1 -1
- package/dist/report/host/execute.d.cts +1 -4
- package/dist/report/host/execute.d.mts +1 -4
- package/dist/report/host/execute.d.ts +1 -4
- package/dist/report/host/from-record.cjs +3 -0
- package/dist/report/host/from-record.cjs.map +1 -1
- package/dist/report/host/from-record.d.cts +4 -1
- package/dist/report/host/from-record.d.mts +4 -1
- package/dist/report/host/from-record.d.ts +4 -1
- package/dist/report/host/site-assets.cjs +1 -2
- package/dist/report/host/site-assets.cjs.map +1 -1
- package/dist/report/host/site-assets.d.cts +0 -1
- package/dist/report/host/site-assets.d.mts +0 -1
- package/dist/report/host/site-assets.d.ts +0 -1
- package/dist/report/host/site-assets.js +2 -4
- package/dist/report/host/static.cjs +71 -346
- package/dist/report/host/static.cjs.map +1 -1
- package/dist/report/host/static.d.cts +1 -3
- package/dist/report/host/static.d.mts +1 -3
- package/dist/report/host/static.d.ts +1 -3
- package/dist/report/host/static.js +2 -2
- package/dist/report/host/view-session.cjs.map +1 -1
- package/dist/report/host/view-session.d.cts +1 -1
- package/dist/report/host/view-session.d.mts +1 -1
- package/dist/report/host/view-session.d.ts +1 -1
- package/dist/report/model/locale.cjs +1 -1
- package/dist/report/model/locale.cjs.map +1 -1
- package/dist/report/model/locale.d.cts +1 -1
- package/dist/report/model/locale.d.mts +1 -1
- package/dist/report/model/locale.d.ts +1 -1
- package/dist/report/model/pricing.cjs +2 -2
- package/dist/report/model/pricing.cjs.map +1 -1
- package/dist/report/react/enhance.js +5 -5
- package/dist/report/react/styles.css +190 -24
- package/dist/runner/adoption.cjs +4 -7
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/attempt-resources.cjs +60 -0
- package/dist/runner/attempt-resources.cjs.map +1 -0
- package/dist/runner/attempt-resources.d.cts +13 -0
- package/dist/runner/attempt-resources.d.mts +13 -0
- package/dist/runner/attempt-resources.d.ts +13 -0
- package/dist/runner/attempt-resources.js +6 -0
- package/dist/runner/attempt-resources.js.map +1 -0
- package/dist/runner/attempt.cjs +37 -3
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/runner/feedback/failure.cjs +77 -2
- package/dist/runner/feedback/failure.cjs.map +1 -1
- package/dist/runner/feedback/failure.d.cts +2 -1
- package/dist/runner/feedback/failure.d.mts +2 -1
- package/dist/runner/feedback/failure.d.ts +2 -1
- package/dist/runner/project-current.cjs +2 -13
- package/dist/runner/project-current.cjs.map +1 -1
- package/dist/runner/project-current.d.cts +4 -2
- package/dist/runner/project-current.d.mts +4 -2
- package/dist/runner/project-current.d.ts +4 -2
- package/dist/runner/reporters/braintrust.cjs +7 -7
- package/dist/runner/reporters/braintrust.cjs.map +1 -1
- package/dist/runner/reuse-readback.cjs +3 -4
- package/dist/runner/reuse-readback.cjs.map +1 -1
- package/dist/runner/run.cjs +5 -2
- package/dist/runner/run.cjs.map +1 -1
- package/dist/sandbox/backend.cjs +32 -2
- package/dist/sandbox/backend.cjs.map +1 -1
- package/dist/sandbox/backend.d.cts +12 -1
- package/dist/sandbox/backend.d.mts +12 -1
- package/dist/sandbox/backend.d.ts +12 -1
- package/dist/sandbox/backend.js +28 -22
- package/dist/sandbox/docker.cjs +140 -0
- package/dist/sandbox/docker.cjs.map +1 -1
- package/dist/sandbox/docker.d.cts +3 -1
- package/dist/sandbox/docker.d.mts +3 -1
- package/dist/sandbox/docker.d.ts +3 -1
- package/dist/sandbox/e2b.cjs +42 -0
- package/dist/sandbox/e2b.cjs.map +1 -1
- package/dist/sandbox/e2b.d.cts +2 -0
- package/dist/sandbox/e2b.d.mts +2 -0
- package/dist/sandbox/e2b.d.ts +2 -0
- package/dist/sandbox/local.cjs +64 -0
- package/dist/sandbox/local.cjs.map +1 -1
- package/dist/sandbox/local.d.cts +3 -1
- package/dist/sandbox/local.d.mts +3 -1
- package/dist/sandbox/local.d.ts +3 -1
- package/dist/sandbox/managed-process.cjs +49 -0
- package/dist/sandbox/managed-process.cjs.map +1 -0
- package/dist/sandbox/managed-process.d.cts +11 -0
- package/dist/sandbox/managed-process.d.mts +11 -0
- package/dist/sandbox/managed-process.d.ts +11 -0
- package/dist/sandbox/managed-process.js +6 -0
- package/dist/sandbox/managed-process.js.map +1 -0
- package/dist/sandbox/types.cjs.map +1 -1
- package/dist/sandbox/types.d.cts +24 -0
- package/dist/sandbox/types.d.mts +24 -0
- package/dist/sandbox/types.d.ts +24 -0
- package/dist/sandbox/vercel.cjs +1 -0
- package/dist/sandbox/vercel.cjs.map +1 -1
- package/dist/sandbox/vercel.d.cts +1 -0
- package/dist/sandbox/vercel.d.mts +1 -0
- package/dist/sandbox/vercel.d.ts +1 -0
- package/dist/view/server.cjs +2 -37
- package/dist/view/server.cjs.map +1 -1
- package/dist/view/server.d.cts +0 -3
- package/dist/view/server.d.mts +0 -3
- package/dist/view/server.d.ts +0 -3
- package/docs-site/zh/reference/builtin-agents.mdx +7 -7
- package/docs-site/zh/reference/official-adapters.mdx +4 -4
- package/docs-site/zh/reference/report-components.mdx +2 -2
- package/docs-site/zh/tutorials/configuration.mdx +2 -2
- package/docs-site/zh/tutorials/deploy-report-site.mdx +24 -2
- package/docs-site/zh/tutorials/publish-report.mdx +4 -4
- package/docs-site/zh/tutorials/sandbox-agent.mdx +5 -5
- package/docs-site/zh/tutorials/theming.mdx +2 -2
- package/package.json +4 -6
- package/dist/record/migration/index.cjs +0 -5
- package/dist/record/migration/index.cjs.map +0 -1
- package/dist/record/migration/index.d.cts +0 -11
- package/dist/record/migration/index.d.mts +0 -11
- package/dist/record/migration/index.d.ts +0 -11
- package/dist/record/migration/index.js +0 -6
- package/dist/record/migration/index.js.map +0 -1
- package/dist/report/host/site-runtime.cjs +0 -92
- package/dist/report/host/site-runtime.cjs.map +0 -1
- package/dist/report/host/site-runtime.d.cts +0 -9
- package/dist/report/host/site-runtime.d.mts +0 -9
- package/dist/report/host/site-runtime.d.ts +0 -9
- package/dist/report/host/site-runtime.js +0 -10
- package/dist/report/host/site-runtime.js.map +0 -1
- package/dist/view/client-dist/app.css +0 -2
- package/dist/view/client-dist/app.js +0 -49
- package/dist/view/data.cjs +0 -3
- package/dist/view/data.cjs.map +0 -1
- package/dist/view/data.d.cts +0 -9
- package/dist/view/data.d.mts +0 -9
- package/dist/view/data.d.ts +0 -9
- package/dist/view/data.js +0 -4
- package/dist/view/data.js.map +0 -1
- package/dist/view/index.cjs +0 -24
- package/dist/view/index.cjs.map +0 -1
- package/dist/view/index.d.cts +0 -9
- package/dist/view/index.d.mts +0 -9
- package/dist/view/index.d.ts +0 -9
- package/dist/view/index.js +0 -28
- package/dist/view/index.js.map +0 -1
- package/dist/view/report-view-cache.cjs +0 -200
- package/dist/view/report-view-cache.cjs.map +0 -1
- package/dist/view/report-view-cache.d.cts +0 -67
- package/dist/view/report-view-cache.d.mts +0 -67
- package/dist/view/report-view-cache.d.ts +0 -67
- package/dist/view/report-view-cache.js +0 -8
- package/dist/view/report-view-cache.js.map +0 -1
- package/dist/view/shared/types.cjs +0 -3
- package/dist/view/shared/types.cjs.map +0 -1
- package/dist/view/shared/types.d.cts +0 -51
- package/dist/view/shared/types.d.mts +0 -51
- package/dist/view/shared/types.d.ts +0 -51
- package/dist/view/shared/types.js +0 -4
- package/dist/view/shared/types.js.map +0 -1
- package/dist/view/site.cjs +0 -32
- package/dist/view/site.cjs.map +0 -1
- package/dist/view/site.d.cts +0 -24
- package/dist/view/site.d.mts +0 -24
- package/dist/view/site.d.ts +0 -24
- package/dist/view/site.js +0 -8
- package/dist/view/site.js.map +0 -1
- package/dist/view/styles.css +0 -170
- package/dist/view/template.html +0 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { Deferred, Effect, Either, Exit, Schema } from \"effect\";\nimport { RecordCoordination } from \"../../coordination/record-leases.ts\";\nimport { recordAttachmentWriteContents, } from \"../attachment/internal.ts\";\nimport { recordAttachmentClosureInvalid, recordAttachmentIssue, type RecordAttachmentPayloadInvalid, } from \"../attachment/errors.ts\";\nimport type { RecordAttachmentJson, RecordAttachmentWrite, RecordBlobRef, } from \"../attachment/types.ts\";\nimport { AttemptIdSchema, RecordFormatSchema, RecordIdSchema, RunIdSchema, SlotIdSchema, decodeAttemptDocument, decodeMemberDocument, decodeRunDocument, encodeAttemptDocument, encodeMemberDocument, encodeRecordDocument, encodeRecordCore, encodeRunDocument, RecordExactParseOptions, } from \"../codec/index.ts\";\nimport { RecordCoreInvalid, RecordReferenceInvalid, nonEmptyRecordIssues, recordIssue, type RecordCodecError, type NonEmptyRecordIssues, } from \"../errors/record-errors.ts\";\nimport { encodeFixedRecordAttachmentEnvelope, NiceEvalRecordAttachments, NiceEvalRecordFamilyCatalog, type FixedRecordFamilyDescriptor, type NiceEvalFamily, } from \"../family/catalog.ts\";\nimport { observabilitySourceFrameIntegrityIssues, type AttemptObservabilityAttachment, type ObservabilityAttachment, } from \"../family/observability.ts\";\nimport { assertionsSourceSiteIntegrityIssues, type AssertionsAttachment, } from \"../family/assertions.ts\";\nimport { sourceNavigationIntegrityIssues, type SourceNavigationAttachment, } from \"../family/source-navigation.ts\";\nimport type { SourcesAttachment } from \"../family/sources.ts\";\nimport type { AttemptDocument, MemberDocument, RecordAttachmentOwner, RecordAttemptRef, RecordDocument, RecordCore, RecordSlotIdentity, RunCore, RunDocument, } from \"../model/core.ts\";\nimport { canonicalizeRunContext, type RunContext, } from \"../model/run-context.ts\";\nimport { RecordSlotIdentityDefinition } from \"../model/definition.ts\";\nimport { validateExpectedSlots } from \"../model/validation.ts\";\nimport { RECORD_FORMAT, RECORD_SCHEMA_VERSION, compareCanonicalIdentity, isPortableSegment, type AttemptId, type RecordId, type RunId, type SlotId, } from \"../model/identifiers.ts\";\nimport type { RecordCoreRead, RecordWarning, } from \"../model/read-state.ts\";\nimport { RecordPathAlreadyExists, RecordPathTypeInvalid, type RecordFileSystemError, } from \"../platform/errors.ts\";\nimport { recordRootPaths, type RecordRoot } from \"../platform/root.ts\";\nimport { RecordEntropy, RecordFileSystem, RecordGit, recordPortablePath, type RecordDirectoryEntry, type RecordEntropyService, type RecordFileSystemService, type RecordGitService, } from \"../platform/services.ts\";\nimport { RecordBootstrapInvalid, RecordFormatUnsupported, RecordHandleInvalid, RecordMigrationInvalid, RecordMigrationRequired, RecordMigrationGitRestoreRequired, RecordMigrationInterruptedState, RecordMigrationPlanStale, RecordMigrationRecoveryRequired, RecordReaderClosed, type RecordMaintenanceError, type RecordMaintenanceOpenError, type RecordReaderOpenError, type RecordReaderReadError, } from \"../reader/errors.ts\";\nimport { RECORD_FORMAT_DOCUMENT_MAXIMUM_BYTES, readCurrentRecordFormat, readRecordFormatForMaintenance, } from \"../reader/format.ts\";\nimport { readFixedRecordAttachment, type FixedRecordAttachmentRead, validateFixedRecordAttachmentMigrationSource, } from \"../reader/runtime.ts\";\nimport { recordAttachmentEncodeError, recordDraftStateError, recordWriterClosed, type RecordDraftLifecycleState, } from \"../writer/errors.ts\";\nimport { attachmentPayloadStrings, encodeAttachmentPayloadForStorage, encodeRecordAttachmentJsonBytes, } from \"../writer/attachment-payload.ts\";\nimport { RECORD_JSON_MAXIMUM_BYTES, encodeRecordJsonUtf8 } from \"../writer/limits.ts\";\nimport type { RecordWriteError } from \"../writer/types.ts\";\nimport { attemptWriteSessionBrand, runWriteSessionBrand, selectedAttemptRefBrand, selectedOwnerRefBrand, selectedRunRefBrand, type AttemptWriteSession, type AttemptArtifactsWrite, type AttemptObservabilityWrite, type AssertionsWrite, type CreateReferenceRunRequest, type CreateRunRequest, type FileChangesWrite, type FixedFamilyRead, type ReadableAttempt, type ReadableRun, type RecordFormatInspection, type RecordHostSDK, type RecordAttachmentMigrationTarget, type RecordMaintenanceSession, type RecordMigrationPlan, type RecordMigrationReceipt, type RecordReadSession, type ReferenceRunWriteSession, type RecordSelection, type RecordSelectionProblem, type RecordSelectionRequest, type RecordSealReceipt, type RunCompletion, type RunArtifactsWrite, type RunObservabilityWrite, type RunWriteSession, type SelectedAttemptRef, type SelectedOwnerRef, type SelectedRunRef, type SourcesWrite, type SourceNavigationWrite, } from \"./types.ts\";\nconst MAXIMUM_RUN_ENTRIES = 100000;\nconst MAXIMUM_ATTEMPT_ENTRIES = 100000;\nconst MAXIMUM_CORE_BYTES = 1024 * 1024;\nconst ENTROPY_RETRY_LIMIT = 16;\nconst MAXIMUM_ATTACHMENT_BLOB_BYTES = 64 * 1024 * 1024;\nfunction sameFixedAttachmentWrite(actual: unknown, expected: {\n readonly write: unknown;\n}): boolean {\n return actual === expected.write;\n}\ninterface ReaderLifecycle {\n closed: boolean;\n}\ninterface SelectedAttemptRuntime {\n readonly root: RecordRoot;\n readonly lifecycle: ReaderLifecycle;\n}\ninterface SelectedRunRuntime {\n readonly document: RunDocument;\n readonly root: RecordRoot;\n readonly lifecycle: ReaderLifecycle;\n}\ntype SelectedOwnerRuntime = {\n readonly kind: \"run\";\n readonly runId: RunId;\n} | {\n readonly kind: \"attempt\";\n readonly ref: RecordAttemptRef;\n};\ninterface ReaderRuntime {\n readonly root: RecordRoot;\n /** Exact root identity retained for the aggregate Core refine. */\n readonly record: RecordDocument;\n readonly lifecycle: ReaderLifecycle;\n readonly runs: WeakMap<SelectedRunRef, SelectedRunRuntime>;\n readonly attempts: WeakMap<SelectedAttemptRef, SelectedAttemptRuntime>;\n readonly owners: WeakMap<SelectedOwnerRef, SelectedOwnerRuntime>;\n readonly runsById: Map<RunId, SelectedRunRef>;\n readonly attemptsByKey: Map<string, SelectedAttemptRef>;\n sealedCoreSnapshot: Deferred.Deferred<SealedCoreSnapshot, RecordFileSystemError> | undefined;\n}\ninterface AttemptRuntime {\n readonly draft: RunRuntime;\n readonly attemptId: AttemptId;\n readonly slotId: SlotId;\n readonly mutex: Effect.Semaphore;\n readonly settled: Deferred.Deferred<void>;\n state: \"open\" | \"completing\" | \"completed\" | \"failed\";\n document: AttemptDocument | undefined;\n readonly attachments: Map<string, FixedAttachmentRuntime>;\n handle: AttemptWriteSession | undefined;\n}\ninterface MembershipRuntime {\n readonly document: MemberDocument;\n}\ninterface RunRuntime {\n readonly root: RecordRoot;\n readonly fileSystem: RecordFileSystemService;\n readonly entropy: RecordEntropyService;\n readonly record: RecordDocument;\n readonly runId: RunId;\n readonly experimentId: CreateRunRequest[\"experimentId\"];\n readonly context: RunContext;\n readonly startedAt: CreateRunRequest[\"startedAt\"];\n readonly expectedSlots: readonly RecordSlotIdentity[];\n readonly expectedBySlot: ReadonlyMap<SlotId, RecordSlotIdentity>;\n readonly mutex: Effect.Semaphore;\n readonly attempts: Map<AttemptId, AttemptRuntime>;\n readonly slotReservations: Map<SlotId, \"attempt\" | \"reference\" | \"terminal\">;\n readonly membership: Map<SlotId, MembershipRuntime>;\n readonly attachments: Map<string, FixedAttachmentRuntime>;\n readonly inFlightMutations: Set<Deferred.Deferred<void>>;\n closed: boolean;\n markerCreated: boolean;\n state: RecordDraftLifecycleState;\n handle: object | undefined;\n}\ninterface FixedAttachmentRuntime {\n readonly owner: RecordAttachmentOwner;\n readonly name: string;\n readonly base: ReturnType<typeof recordPortablePath>;\n readonly descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>;\n readonly write: RecordAttachmentWrite<RecordAttachmentOwner, unknown, unknown>;\n readonly blobCount: number;\n readonly attemptId: AttemptId | undefined;\n}\nconst selectedAttemptCapabilities = new WeakMap<SelectedAttemptRef, SelectedAttemptRuntime>();\nconst runSessions = new WeakMap<object, RunRuntime>();\nconst attemptSessions = new WeakMap<AttemptWriteSession, AttemptRuntime>();\nconst consumedFixedFamilyWrites = new WeakMap<object, object>();\nfunction recordPath(root: RecordRoot, ...segments: readonly string[]) {\n return recordPortablePath(root, ...segments);\n}\nfunction runPath(root: RecordRoot, runId: RunId, ...segments: readonly string[]) {\n return recordPath(root, \"runs\", runId, ...segments);\n}\nfunction readerClosed(): RecordReaderClosed {\n return new RecordReaderClosed({ code: \"record-reader-closed\" });\n}\nfunction handleInvalid(): RecordHandleInvalid {\n return new RecordHandleInvalid({ code: \"record-handle-invalid\" });\n}\nfunction migrationInterrupted(restoreCommit?: string, restoreSafe?: boolean): RecordMigrationInterruptedState {\n return new RecordMigrationInterruptedState({\n code: \"record-migration-interrupted\",\n ...(restoreCommit === undefined ? {} : { restoreCommit }),\n ...(restoreSafe === undefined ? {} : { restoreSafe }),\n });\n}\nfunction bootstrapInvalid(): RecordBootstrapInvalid {\n return new RecordBootstrapInvalid({\n code: \"record-bootstrap-invalid\",\n reason: \"record-document-invalid\",\n });\n}\nfunction coreInvalid(): RecordCoreInvalid {\n const issues = nonEmptyRecordIssues([recordIssue(\"record-schema-invalid\")]);\n if (issues === undefined) {\n throw new Error(\"Record Core invalid state must contain one issue\");\n }\n return new RecordCoreInvalid({ code: \"record-core-invalid\", issues });\n}\nfunction coreInvalidFromCodec(error: RecordCodecError): RecordCoreInvalid {\n return new RecordCoreInvalid({\n code: \"record-core-invalid\",\n issues: error.issues,\n });\n}\nfunction referenceInvalid(): RecordReferenceInvalid {\n return new RecordReferenceInvalid({ code: \"record-reference-invalid\" });\n}\nfunction stateError(operation: \"create-attempt\" | \"reference\" | \"publish\" | \"record\", state: RecordDraftLifecycleState) {\n return recordDraftStateError({\n code: state === \"failed\" ? \"record-draft-write-failed\" : \"record-draft-state-invalid\",\n operation,\n state,\n });\n}\nfunction jsonBytes(value: unknown): Uint8Array {\n return encodeRecordJsonUtf8(value);\n}\nfunction parseJson(bytes: Uint8Array): unknown | undefined {\n try {\n return JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)) as unknown;\n }\n catch {\n return undefined;\n }\n}\nfunction readJson(fileSystem: RecordFileSystemService, path: ReturnType<typeof recordPortablePath>): Effect.Effect<unknown | undefined, RecordFileSystemError> {\n return fileSystem.readFile({ file: path, maximumBytes: MAXIMUM_CORE_BYTES }).pipe(Effect.map((bytes) => bytes === undefined ? undefined : parseJson(bytes)), Effect.catchTag(\"RecordResourceLimitExceeded\", () => Effect.succeed(undefined)), Effect.catchTag(\"RecordPathTypeInvalid\", () => Effect.succeed(undefined)));\n}\nfunction decodeRunId(value: string): RunId | undefined {\n const decoded = Schema.decodeUnknownEither(RunIdSchema)(value);\n return Either.isRight(decoded) ? decoded.right : undefined;\n}\nfunction decodeAttemptId(value: string): AttemptId | undefined {\n const decoded = Schema.decodeUnknownEither(AttemptIdSchema)(value);\n return Either.isRight(decoded) ? decoded.right : undefined;\n}\nfunction orderedEntries(entries: readonly RecordDirectoryEntry[]): readonly RecordDirectoryEntry[] {\n return Object.freeze([...entries].sort((left, right) => compareCanonicalIdentity(left.name, right.name)));\n}\nfunction sameRoot(left: RecordRoot, right: RecordRoot): boolean {\n const leftPaths = recordRootPaths(left);\n const rightPaths = recordRootPaths(right);\n return leftPaths !== undefined && rightPaths !== undefined &&\n leftPaths.portableRoot === rightPaths.portableRoot;\n}\nfunction currentFormatInspection(fileSystem: RecordFileSystemService, root: RecordRoot): Effect.Effect<RecordFormatInspection, RecordMaintenanceError> {\n return readRecordFormatForMaintenance(fileSystem, root).pipe(Effect.flatMap((format) => Effect.map(planAttachmentMigration({ fileSystem, root }), (attachments): RecordFormatInspection => ({\n state: format.sourceSchemaVersion === RECORD_SCHEMA_VERSION && attachments.targets.length === 0\n ? \"already-current\"\n : \"migration-required\",\n format: RECORD_FORMAT,\n }))), Effect.catchAll((error) => error instanceof RecordFormatUnsupported\n ? Effect.succeed({\n state: \"unsupported-format\" as const,\n format: error.format,\n })\n : Effect.fail(error)));\n}\nfunction isSealedRun(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<boolean, RecordFileSystemError> {\n return fileSystem.isCompleteMarker({ root, runId });\n}\nfunction readRunDocument(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<RunDocument | undefined, RecordFileSystemError> {\n return Effect.map(readJson(fileSystem, runPath(root, runId, \"run.json\")), (json) => {\n if (json === undefined)\n return undefined;\n const decoded = decodeRunDocument(json);\n return Either.isRight(decoded) && decoded.right.runId === runId\n ? decoded.right\n : undefined;\n });\n}\nfunction readAttemptDocument(fileSystem: RecordFileSystemService, root: RecordRoot, ref: RecordAttemptRef): Effect.Effect<AttemptDocument | undefined, RecordFileSystemError> {\n return Effect.map(readJson(fileSystem, runPath(root, ref.originRunId, \"attempts\", ref.attemptId, \"attempt.json\")), (json) => {\n if (json === undefined)\n return undefined;\n const decoded = decodeAttemptDocument(json);\n return Either.isRight(decoded) &&\n decoded.right.attemptId === ref.attemptId &&\n decoded.right.originRunId === ref.originRunId\n ? decoded.right\n : undefined;\n });\n}\nfunction readMemberDocument(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId, slotId: SlotId): Effect.Effect<MemberDocument | undefined, RecordFileSystemError> {\n return Effect.map(readJson(fileSystem, runPath(root, runId, \"members\", `${slotId}.json`)), (json) => {\n if (json === undefined)\n return undefined;\n const decoded = decodeMemberDocument(json);\n return Either.isRight(decoded) && decoded.right.slotId === slotId\n ? decoded.right\n : undefined;\n });\n}\nfunction decodeSlotId(value: string): SlotId | undefined {\n const decoded = Schema.decodeUnknownEither(SlotIdSchema)(value);\n return Either.isRight(decoded) ? decoded.right : undefined;\n}\nfunction readRunMembers(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<readonly MemberDocument[] | undefined, RecordFileSystemError> {\n return Effect.gen(function* () {\n const directory = runPath(root, runId, \"members\");\n if ((yield* fileSystem.pathKind(directory)) !== \"directory\")\n return undefined;\n const entries = orderedEntries(yield* fileSystem.listDirectory({\n directory,\n maximumEntries: MAXIMUM_ATTEMPT_ENTRIES,\n }));\n const members: MemberDocument[] = [];\n for (const entry of entries) {\n if (entry.kind !== \"file\" || !entry.name.endsWith(\".json\"))\n return undefined;\n const slotId = decodeSlotId(entry.name.slice(0, -\".json\".length));\n if (slotId === undefined)\n return undefined;\n const member = yield* readMemberDocument(fileSystem, root, runId, slotId);\n if (member === undefined || members.some((current) => current.slotId === member.slotId)) {\n return undefined;\n }\n members.push(member);\n }\n return Object.freeze(members);\n });\n}\n/**\n * Reads every exact Attempt document owned by a sealed Run. An absent attempts\n * directory is legitimate for an all-reference / terminal Run; every other\n * non-directory shape is a Core failure.\n */\nfunction readRunAttempts(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<readonly AttemptDocument[] | undefined, RecordFileSystemError> {\n return Effect.gen(function* () {\n const directory = runPath(root, runId, \"attempts\");\n const kind = yield* fileSystem.pathKind(directory);\n if (kind === \"missing\")\n return Object.freeze([]);\n if (kind !== \"directory\")\n return undefined;\n const entries = orderedEntries(yield* fileSystem.listDirectory({\n directory,\n maximumEntries: MAXIMUM_ATTEMPT_ENTRIES,\n }));\n const attempts: AttemptDocument[] = [];\n for (const entry of entries) {\n if (entry.kind !== \"directory\")\n return undefined;\n const attemptId = decodeAttemptId(entry.name);\n if (attemptId === undefined)\n return undefined;\n const document = yield* readAttemptDocument(fileSystem, root, {\n originRunId: runId,\n attemptId,\n });\n if (document === undefined)\n return undefined;\n attempts.push(document);\n }\n return Object.freeze(attempts);\n });\n}\ntype SealedCoreSnapshot = {\n readonly state: \"available\";\n readonly byRunId: ReadonlyMap<RunId, RunCore>;\n} | {\n readonly state: \"core-invalid\";\n readonly issues: NonEmptyRecordIssues;\n};\nfunction maintenanceReaderRuntime(root: RecordRoot, record: RecordDocument): ReaderRuntime {\n return {\n root,\n record,\n lifecycle: { closed: false },\n runs: new WeakMap(),\n attempts: new WeakMap(),\n owners: new WeakMap(),\n runsById: new Map(),\n attemptsByKey: new Map(),\n sealedCoreSnapshot: undefined,\n };\n}\n/**\n * The reader deliberately reconstructs the complete published aggregate only\n * at the point where it is about to sign a Run/Attempt as available. This is\n * the same `RecordCoreDefinition` refine used by the writer's seal boundary,\n * so a marker cannot promote a partial Member denominator to availability.\n */\nfunction loadSealedCoreSnapshot(runtime: ReaderRuntime, fileSystem: RecordFileSystemService): Effect.Effect<SealedCoreSnapshot, RecordFileSystemError> {\n return Effect.gen(function* () {\n const entries = orderedEntries(yield* fileSystem.listDirectory({\n directory: recordPath(runtime.root, \"runs\"),\n maximumEntries: MAXIMUM_RUN_ENTRIES,\n }));\n const cores: RunCore[] = [];\n for (const entry of entries) {\n if (entry.kind !== \"directory\")\n continue;\n const runId = decodeRunId(entry.name);\n if (runId === undefined || !(yield* isSealedRun(fileSystem, runtime.root, runId))) {\n continue;\n }\n const run = yield* readRunDocument(fileSystem, runtime.root, runId);\n const members = run === undefined\n ? undefined\n : yield* readRunMembers(fileSystem, runtime.root, runId);\n const attempts = members === undefined\n ? undefined\n : yield* readRunAttempts(fileSystem, runtime.root, runId);\n if (run === undefined || members === undefined || attempts === undefined) {\n return Object.freeze({ state: \"core-invalid\" as const, issues: coreInvalid().issues });\n }\n cores.push(Object.freeze({ run, members, attempts }));\n }\n const ordered = Object.freeze(cores.sort((left, right) => compareCanonicalIdentity(left.run.runId, right.run.runId)));\n const aggregate: RecordCore = Object.freeze({ record: runtime.record, runs: ordered });\n const encoded = encodeRecordCore(aggregate);\n if (Either.isLeft(encoded)) {\n return Object.freeze({ state: \"core-invalid\" as const, issues: encoded.left.issues });\n }\n return Object.freeze({\n state: \"available\" as const,\n byRunId: new Map(ordered.map((core) => [core.run.runId, core] as const)),\n });\n });\n}\n/**\n * A read session holds the Record read lease, so its published Core cannot\n * change underneath it. Share one exact snapshot across selection and all\n * subsequent Run / Attempt reads instead of rebuilding the whole aggregate\n * for every capability lookup.\n */\nfunction readSealedCoreSnapshot(runtime: ReaderRuntime, fileSystem: RecordFileSystemService): Effect.Effect<SealedCoreSnapshot, RecordFileSystemError> {\n return Effect.uninterruptibleMask((restore) => Effect.gen(function* () {\n const fresh = yield* Deferred.make<SealedCoreSnapshot, RecordFileSystemError>();\n const flight = yield* Effect.sync(() => {\n if (runtime.sealedCoreSnapshot !== undefined) {\n return { _tag: \"Follower\" as const, deferred: runtime.sealedCoreSnapshot };\n }\n runtime.sealedCoreSnapshot = fresh;\n return { _tag: \"Leader\" as const, deferred: fresh };\n });\n if (flight._tag === \"Follower\")\n return yield* restore(Deferred.await(flight.deferred));\n const completed = yield* Effect.exit(restore(loadSealedCoreSnapshot(runtime, fileSystem)));\n yield* Deferred.done(flight.deferred, completed);\n return yield* Deferred.await(flight.deferred);\n }));\n}\nfunction makeRunRef(runtime: ReaderRuntime, document: RunDocument): SelectedRunRef {\n const existing = runtime.runsById.get(document.runId);\n if (existing !== undefined)\n return existing;\n const ref: SelectedRunRef = Object.freeze({\n runId: document.runId,\n [selectedRunRefBrand]: () => undefined,\n });\n runtime.runs.set(ref, Object.freeze({\n document,\n root: runtime.root,\n lifecycle: runtime.lifecycle,\n }));\n runtime.runsById.set(document.runId, ref);\n return ref;\n}\nfunction attemptKey(ref: RecordAttemptRef): string {\n return `${ref.originRunId}\\u0000${ref.attemptId}`;\n}\nfunction makeAttemptRef(runtime: ReaderRuntime, input: RecordAttemptRef): SelectedAttemptRef {\n const key = attemptKey(input);\n const existing = runtime.attemptsByKey.get(key);\n if (existing !== undefined)\n return existing;\n const ref: SelectedAttemptRef = Object.freeze({\n originRunId: input.originRunId,\n attemptId: input.attemptId,\n [selectedAttemptRefBrand]: () => undefined,\n });\n const contents = Object.freeze({ root: runtime.root, lifecycle: runtime.lifecycle });\n runtime.attempts.set(ref, contents);\n selectedAttemptCapabilities.set(ref, contents);\n runtime.attemptsByKey.set(key, ref);\n return ref;\n}\nfunction makeOwner(runtime: ReaderRuntime, contents: SelectedOwnerRuntime): SelectedOwnerRef {\n const owner: SelectedOwnerRef = Object.freeze({\n [selectedOwnerRefBrand]: () => undefined,\n });\n runtime.owners.set(owner, Object.freeze(contents));\n return owner;\n}\nfunction assertReaderLive(runtime: ReaderRuntime): Effect.Effect<void, RecordReaderReadError> {\n return runtime.lifecycle.closed ? Effect.fail(readerClosed()) : Effect.void;\n}\nfunction scanSelection(runtime: ReaderRuntime, fileSystem: RecordFileSystemService, request: RecordSelectionRequest | undefined): Effect.Effect<RecordSelection, RecordReaderReadError> {\n return Effect.gen(function* () {\n yield* assertReaderLive(runtime);\n const wanted = request?.runIds === undefined\n ? undefined\n : new Set(request.runIds);\n const entries = orderedEntries(yield* fileSystem.listDirectory({\n directory: recordPath(runtime.root, \"runs\"),\n maximumEntries: MAXIMUM_RUN_ENTRIES,\n }));\n const snapshot = yield* readSealedCoreSnapshot(runtime, fileSystem);\n const found = new Set<RunId>();\n const warnings: RecordWarning[] = [];\n const problems: RecordSelectionProblem[] = [];\n const documents: RunDocument[] = [];\n for (const entry of entries) {\n if (entry.kind !== \"directory\")\n continue;\n const runId = decodeRunId(entry.name);\n if (runId === undefined)\n continue;\n found.add(runId);\n const sealed = yield* isSealedRun(fileSystem, runtime.root, runId);\n if (!sealed) {\n warnings.push(Object.freeze({\n code: \"incomplete-run\" as const,\n runId,\n cleanupCommand: \"niceeval clean\" as const,\n }));\n if (wanted?.has(runId)) {\n problems.push(Object.freeze({ code: \"incomplete-run\" as const, runId }));\n }\n continue;\n }\n if (wanted !== undefined && !wanted.has(runId))\n continue;\n const core = snapshot.state === \"available\" ? snapshot.byRunId.get(runId) : undefined;\n if (core === undefined) {\n problems.push(Object.freeze({ code: \"record-core-invalid\" as const, runId }));\n }\n else {\n documents.push(core.run);\n }\n }\n if (wanted !== undefined) {\n for (const runId of wanted) {\n if (!found.has(runId)) {\n problems.push(Object.freeze({ code: \"selection-run-missing\" as const, runId }));\n }\n }\n }\n const orderedDocuments = documents.sort((left, right) => compareCanonicalIdentity(left.runId, right.runId));\n const runFacts = orderedDocuments.map((document) => Object.freeze({\n run: makeRunRef(runtime, document),\n experimentId: document.experimentId,\n startedAt: document.startedAt,\n completedAt: document.completedAt,\n expectedSlots: Object.freeze([...document.expectedSlots]),\n }));\n const refs = runFacts.map((facts) => facts.run);\n const expectedSlots = runFacts.flatMap((facts) => {\n return facts.expectedSlots.map((slot) => Object.freeze({\n run: facts.run,\n experimentId: facts.experimentId,\n slot,\n }));\n });\n return Object.freeze({\n runRefs: Object.freeze(refs),\n runFacts: Object.freeze(runFacts),\n expectedSlots: Object.freeze(expectedSlots),\n problems: Object.freeze(problems),\n warnings: Object.freeze(warnings),\n });\n });\n}\nfunction readFixedFamily<Family extends NiceEvalFamily, Owner extends RecordAttachmentOwner, Payload>(input: {\n readonly runtime: ReaderRuntime;\n readonly fileSystem: RecordFileSystemService;\n readonly owner: SelectedOwnerRef;\n readonly descriptor: FixedRecordFamilyDescriptor<Family, Owner, Payload>;\n}): Effect.Effect<FixedFamilyRead<Payload>, RecordReaderReadError> {\n return Effect.suspend((): Effect.Effect<FixedFamilyRead<Payload>, RecordReaderReadError> => {\n if (input.runtime.lifecycle.closed)\n return Effect.fail(readerClosed());\n const owner = input.runtime.owners.get(input.owner);\n if (owner === undefined || owner.kind !== input.descriptor.owner) {\n return Effect.fail(handleInvalid());\n }\n if (owner.kind === \"run\") {\n const descriptor = input.descriptor as FixedRecordFamilyDescriptor<Family, \"run\", Payload>;\n return readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.runtime.root,\n location: Object.freeze({ owner: \"run\" as const, runId: owner.runId }),\n descriptor,\n }).pipe(Effect.flatMap((value): Effect.Effect<FixedFamilyRead<Payload>, RecordFileSystemError> => {\n if (value.state !== \"available\") {\n return Effect.succeed(value.state === \"unavailable\"\n ? Object.freeze({ state: \"not-recorded\" as const })\n : value);\n }\n return validateFixedCrossFamilyJoin({\n fileSystem: input.fileSystem,\n root: input.runtime.root,\n runId: owner.runId,\n descriptor: descriptor as FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>,\n payload: value.value,\n }).pipe(Effect.map((join): FixedFamilyRead<Payload> => join.state === \"joined\"\n ? value\n : join.state === \"migration-required\" || join.state === \"unsupported\"\n ? join\n : Object.freeze({ state: \"invalid\" as const, issues: coreInvalid().issues })));\n }));\n }\n const descriptor = input.descriptor as FixedRecordFamilyDescriptor<Family, \"attempt\", Payload>;\n return readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.runtime.root,\n location: Object.freeze({\n owner: \"attempt\" as const,\n runId: owner.ref.originRunId,\n attemptId: owner.ref.attemptId,\n }),\n descriptor,\n }).pipe(Effect.flatMap((value): Effect.Effect<FixedFamilyRead<Payload>, RecordFileSystemError> => {\n if (value.state !== \"available\") {\n return Effect.succeed(value.state === \"unavailable\"\n ? Object.freeze({ state: \"not-recorded\" as const })\n : value);\n }\n return validateFixedCrossFamilyJoin({\n fileSystem: input.fileSystem,\n root: input.runtime.root,\n runId: owner.ref.originRunId,\n attemptId: owner.ref.attemptId,\n descriptor: descriptor as FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>,\n payload: value.value,\n }).pipe(Effect.map((join): FixedFamilyRead<Payload> => join.state === \"joined\"\n ? value\n : join.state === \"migration-required\" || join.state === \"unsupported\"\n ? join\n : Object.freeze({ state: \"invalid\" as const, issues: coreInvalid().issues })));\n }));\n });\n}\nfunction isObservabilityDescriptor(descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>): boolean {\n return descriptor === NiceEvalRecordFamilyCatalog.observability.attempt ||\n descriptor === NiceEvalRecordFamilyCatalog.observability.run;\n}\nfunction isAssertionsDescriptor(descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>): boolean {\n return descriptor === NiceEvalRecordFamilyCatalog.assertions;\n}\nfunction isSourceNavigationDescriptor(descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>): boolean {\n return descriptor === NiceEvalRecordFamilyCatalog.sourceNavigation;\n}\nfunction hasSourceFrames(payload: ObservabilityAttachment): boolean {\n return payload.diagnostics.diagnostics.some((diagnostic) => diagnostic.sourceFrame !== null);\n}\ntype FixedCrossFamilyJoin = {\n readonly state: \"joined\";\n} | {\n readonly state: \"invalid\";\n} | Extract<FixedFamilyRead<unknown>, {\n readonly state: \"migration-required\" | \"unsupported\";\n}>;\nconst joinedCrossFamily = Object.freeze({ state: \"joined\" as const });\nconst invalidCrossFamily = Object.freeze({ state: \"invalid\" as const });\nfunction dependentFamilyJoin(read: FixedRecordAttachmentRead<unknown>): FixedCrossFamilyJoin {\n if (read.state === \"available\")\n return joinedCrossFamily;\n if (read.state === \"migration-required\" || read.state === \"unsupported\")\n return read;\n return invalidCrossFamily;\n}\n/** Common cross-family closure boundary used by both reader and writer seal. */\nfunction validateObservabilitySourceFrameJoin(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly runId: RunId;\n readonly payload: ObservabilityAttachment;\n}): Effect.Effect<FixedCrossFamilyJoin, RecordFileSystemError> {\n return Effect.gen(function* () {\n if (!hasSourceFrames(input.payload))\n return joinedCrossFamily;\n const sources = yield* readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.root,\n location: Object.freeze({ owner: \"run\" as const, runId: input.runId }),\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n });\n if (sources.state !== \"available\")\n return dependentFamilyJoin(sources);\n return observabilitySourceFrameIntegrityIssues(input.payload, sources.value as SourcesAttachment).length === 0 ? joinedCrossFamily : invalidCrossFamily;\n });\n}\nfunction hasMappedNavigationRows(payload: SourceNavigationAttachment): boolean {\n return payload.rows.some((row) => row.source.state === \"mapped\");\n}\n/**\n * The fixed catalog's only cross-family boundary. All joins use explicit\n * durable IDs and digests; absent siblings fail closed instead of falling\n * back to path lookup or array order.\n */\nfunction validateFixedCrossFamilyJoin(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly runId: RunId;\n readonly attemptId?: AttemptId;\n readonly descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>;\n readonly payload: unknown;\n}): Effect.Effect<FixedCrossFamilyJoin, RecordFileSystemError> {\n if (isObservabilityDescriptor(input.descriptor)) {\n return validateObservabilitySourceFrameJoin({\n fileSystem: input.fileSystem,\n root: input.root,\n runId: input.runId,\n payload: input.payload as ObservabilityAttachment,\n });\n }\n if (isAssertionsDescriptor(input.descriptor)) {\n const payload = input.payload as AssertionsAttachment;\n if (payload.sourceSites.length === 0)\n return Effect.succeed(joinedCrossFamily);\n return Effect.gen(function* () {\n const sources = yield* readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.root,\n location: Object.freeze({ owner: \"run\" as const, runId: input.runId }),\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n });\n if (sources.state !== \"available\")\n return dependentFamilyJoin(sources);\n return assertionsSourceSiteIntegrityIssues(payload, sources.value as SourcesAttachment).length === 0\n ? joinedCrossFamily\n : invalidCrossFamily;\n });\n }\n if (isSourceNavigationDescriptor(input.descriptor)) {\n const payload = input.payload as SourceNavigationAttachment;\n if (input.attemptId === undefined)\n return Effect.succeed(invalidCrossFamily);\n return Effect.gen(function* () {\n const observability = yield* readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.root,\n location: Object.freeze({\n owner: \"attempt\" as const,\n runId: input.runId,\n attemptId: input.attemptId!,\n }),\n descriptor: NiceEvalRecordFamilyCatalog.observability.attempt,\n });\n if (observability.state !== \"available\")\n return dependentFamilyJoin(observability);\n const sources = hasMappedNavigationRows(payload)\n ? yield* readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.root,\n location: Object.freeze({ owner: \"run\" as const, runId: input.runId }),\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n })\n : undefined;\n if (sources !== undefined) {\n if (sources.state !== \"available\")\n return dependentFamilyJoin(sources);\n }\n return sourceNavigationIntegrityIssues({\n payload,\n observability: observability.value as AttemptObservabilityAttachment,\n sources: sources?.state === \"available\" ? sources.value as SourcesAttachment : undefined,\n }).length === 0 ? joinedCrossFamily : invalidCrossFamily;\n });\n }\n return Effect.succeed(joinedCrossFamily);\n}\nfunction makeReadSession(runtime: ReaderRuntime, fileSystem: RecordFileSystemService): RecordReadSession {\n const session: RecordReadSession = Object.freeze({\n selectRuns: (request?: RecordSelectionRequest) => scanSelection(runtime, fileSystem, request),\n readRun: (ref: SelectedRunRef): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> => Effect.suspend((): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> => {\n const contents = runtime.runs.get(ref);\n if (runtime.lifecycle.closed)\n return Effect.fail(readerClosed());\n if (contents === undefined)\n return Effect.fail(handleInvalid());\n return Effect.map(readSealedCoreSnapshot(runtime, fileSystem), (snapshot) => {\n const core = snapshot.state === \"available\" ? snapshot.byRunId.get(ref.runId) : undefined;\n if (core === undefined) {\n return Object.freeze({\n state: \"core-invalid\" as const,\n issues: snapshot.state === \"core-invalid\" ? snapshot.issues : coreInvalid().issues,\n });\n }\n return Object.freeze({\n state: \"available\" as const,\n value: Object.freeze({\n ref,\n owner: makeOwner(runtime, Object.freeze({ kind: \"run\" as const, runId: ref.runId })),\n document: core.run,\n members: Object.freeze(core.members.map((document) => Object.freeze({\n document,\n attempt: document.attempt === null ? null : makeAttemptRef(runtime, document.attempt),\n }))),\n }),\n });\n });\n }),\n readAttempt: (ref: SelectedAttemptRef): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> => Effect.suspend((): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> => {\n const contents = runtime.attempts.get(ref);\n if (runtime.lifecycle.closed)\n return Effect.fail(readerClosed());\n if (contents === undefined)\n return Effect.fail(handleInvalid());\n const exact: RecordAttemptRef = {\n originRunId: ref.originRunId,\n attemptId: ref.attemptId,\n };\n return Effect.gen(function* () {\n if (!(yield* isSealedRun(fileSystem, contents.root, exact.originRunId))) {\n return Object.freeze({ state: \"missing\" as const }) satisfies RecordCoreRead<ReadableAttempt>;\n }\n const snapshot = yield* readSealedCoreSnapshot(runtime, fileSystem);\n const core = snapshot.state === \"available\"\n ? snapshot.byRunId.get(exact.originRunId)\n : undefined;\n if (core === undefined) {\n return Object.freeze({\n state: \"core-invalid\" as const,\n issues: snapshot.state === \"core-invalid\" ? snapshot.issues : coreInvalid().issues,\n }) satisfies RecordCoreRead<ReadableAttempt>;\n }\n const originRun = core.run;\n const document = core.attempts.find((attempt) => attempt.attemptId === exact.attemptId);\n if (document === undefined) {\n return Object.freeze({ state: \"core-invalid\" as const, issues: coreInvalid().issues }) satisfies RecordCoreRead<ReadableAttempt>;\n }\n const expected = originRun.expectedSlots.find((slot) => slot.slotId === document.slotId);\n if (expected === undefined\n || expected.evalId !== document.evalId\n || expected.executionIdentityDigest !== document.executionIdentityDigest) {\n return Object.freeze({ state: \"core-invalid\" as const, issues: coreInvalid().issues }) satisfies RecordCoreRead<ReadableAttempt>;\n }\n return Object.freeze({\n state: \"available\" as const,\n value: Object.freeze({\n ref,\n owner: makeOwner(runtime, Object.freeze({ kind: \"attempt\" as const, ref: exact })),\n document,\n origin: Object.freeze({\n owner: makeOwner(runtime, Object.freeze({\n kind: \"run\" as const,\n runId: originRun.runId,\n })),\n runId: originRun.runId,\n experimentId: originRun.experimentId,\n startedAt: originRun.startedAt,\n context: originRun.context,\n }),\n }),\n }) satisfies RecordCoreRead<ReadableAttempt>;\n });\n }),\n readAssertions: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.assertions,\n }),\n readAttemptObservability: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.observability.attempt,\n }),\n readFileChanges: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.fileChanges,\n }),\n readSourceNavigation: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.sourceNavigation,\n }),\n readAttemptArtifacts: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.attempt,\n }),\n readSources: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n }),\n readRunObservability: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.observability.run,\n }),\n readRunArtifacts: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.run,\n }),\n });\n return session;\n}\nfunction mintRecordDocument(entropy: RecordEntropyService): Effect.Effect<RecordDocument, RecordCoreInvalid> {\n const format = Schema.decodeUnknownEither(RecordFormatSchema, RecordExactParseOptions)(RECORD_FORMAT);\n if (Either.isLeft(format))\n return Effect.fail(coreInvalid());\n return Effect.flatMap(entropy.uuid, (raw) => {\n const id = Schema.decodeUnknownEither(RecordIdSchema, RecordExactParseOptions)(raw);\n return Either.isLeft(id)\n ? Effect.fail(coreInvalid())\n : Effect.succeed(Object.freeze({\n format: format.right,\n schemaVersion: RECORD_SCHEMA_VERSION,\n recordId: id.right,\n }));\n });\n}\nfunction createDirectoryIfMissing(fileSystem: RecordFileSystemService, path: ReturnType<typeof recordPortablePath>): Effect.Effect<void, RecordFileSystemError> {\n return fileSystem.createDirectory(path).pipe(Effect.catchAll((error) => error instanceof RecordPathAlreadyExists ? Effect.void : Effect.fail(error)));\n}\nfunction initializeRecord(input: {\n readonly root: RecordRoot;\n readonly fileSystem: RecordFileSystemService;\n readonly entropy: RecordEntropyService;\n}): Effect.Effect<void, RecordFileSystemError | RecordBootstrapInvalid | RecordCoreInvalid> {\n return Effect.gen(function* () {\n const documentPath = recordPath(input.root, \"record.json\");\n if ((yield* input.fileSystem.pathKind(documentPath)) !== \"missing\")\n return;\n yield* input.fileSystem.ensureDirectory(recordPath(input.root));\n yield* createDirectoryIfMissing(input.fileSystem, recordPath(input.root, \"runs\"));\n // If another append writer won the bootstrap race, do not inspect or alter\n // its durable identity. Re-read the election file and let exact format\n // validation decide the next step.\n if ((yield* input.fileSystem.pathKind(documentPath)) !== \"missing\")\n return;\n const entries = yield* input.fileSystem.listDirectory({\n directory: recordPath(input.root),\n maximumEntries: 2,\n });\n if (entries.some((entry) => entry.name !== \"runs\" || entry.kind !== \"directory\")) {\n if ((yield* input.fileSystem.pathKind(documentPath)) !== \"missing\")\n return;\n return yield* Effect.fail(bootstrapInvalid());\n }\n const document = yield* mintRecordDocument(input.entropy);\n const encoded = encodeRecordDocument(document);\n if (Either.isLeft(encoded))\n return yield* Effect.fail(coreInvalidFromCodec(encoded.left));\n yield* input.fileSystem.writeFile({\n file: documentPath,\n bytes: jsonBytes(encoded.right),\n maximumBytes: RECORD_FORMAT_DOCUMENT_MAXIMUM_BYTES,\n mode: \"exclusive\",\n }).pipe(Effect.catchAll((error) => error instanceof RecordPathAlreadyExists ? Effect.void : Effect.fail(error)));\n yield* input.fileSystem.syncDirectory(recordPath(input.root));\n });\n}\nfunction openCurrentRead(input: {\n readonly root: RecordRoot;\n}): Effect.Effect<RecordReadSession, RecordReaderOpenError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordCoordination> {\n return Effect.gen(function* () {\n const coordination = yield* RecordCoordination;\n const fileSystem = yield* RecordFileSystem;\n yield* coordination.enterRecordRead(input.root);\n if (yield* fileSystem.migrationSentinelPresent(input.root)) {\n return yield* Effect.fail(migrationInterrupted());\n }\n const current = yield* readCurrentRecordFormat(fileSystem, input.root);\n yield* ensureOrdinaryCurrentAttachments({ fileSystem, root: input.root });\n yield* coordination.verifyRecordIdentity({ root: input.root, recordId: current.document.recordId });\n const lifecycle: ReaderLifecycle = { closed: false };\n const runtime: ReaderRuntime = {\n root: input.root,\n record: current.document,\n lifecycle,\n runs: new WeakMap(),\n attempts: new WeakMap(),\n owners: new WeakMap(),\n runsById: new Map(),\n attemptsByKey: new Map(),\n sealedCoreSnapshot: undefined,\n };\n yield* Effect.addFinalizer(() => Effect.sync(() => { lifecycle.closed = true; }));\n return makeReadSession(runtime, fileSystem);\n });\n}\nfunction mintRunId(entropy: RecordEntropyService): Effect.Effect<RunId, RecordCoreInvalid> {\n return Effect.flatMap(entropy.uuid, (raw) => {\n const decoded = Schema.decodeUnknownEither(RunIdSchema, RecordExactParseOptions)(raw);\n return Either.isLeft(decoded) ? Effect.fail(coreInvalid()) : Effect.succeed(decoded.right);\n });\n}\nfunction mintAttemptId(entropy: RecordEntropyService): Effect.Effect<AttemptId, RecordCoreInvalid> {\n return Effect.flatMap(entropy.uuid, (raw) => {\n const decoded = Schema.decodeUnknownEither(AttemptIdSchema, RecordExactParseOptions)(raw);\n return Either.isLeft(decoded) ? Effect.fail(coreInvalid()) : Effect.succeed(decoded.right);\n });\n}\nfunction createFreshRunDirectory(root: RecordRoot, fileSystem: RecordFileSystemService, entropy: RecordEntropyService, remaining = ENTROPY_RETRY_LIMIT): Effect.Effect<RunId, RecordWriteError> {\n return Effect.flatMap(mintRunId(entropy), (runId) => fileSystem.createRunDirectory({ root, runId }).pipe(Effect.as(runId), Effect.catchAll((error) => error instanceof RecordPathAlreadyExists && remaining > 0\n ? createFreshRunDirectory(root, fileSystem, entropy, remaining - 1)\n : Effect.fail(error))));\n}\nfunction assertRunLive(run: RunRuntime): Effect.Effect<void, ReturnType<typeof recordWriterClosed>> {\n return run.closed ? Effect.fail(recordWriterClosed()) : Effect.void;\n}\n/**\n * `CreateRunRequest` is public-facing TypeScript but may still receive forged\n * JavaScript values. Normalize every Slot through the exact definition before\n * allocating a Run directory so both normal and reference Runs freeze the\n * same denominator facts.\n */\nfunction canonicalizeExpectedSlots(input: readonly RecordSlotIdentity[]): Either.Either<readonly RecordSlotIdentity[], NonEmptyRecordIssues> {\n const slots: RecordSlotIdentity[] = [];\n for (const [index, slot] of input.entries()) {\n const encoded = RecordSlotIdentityDefinition.encode(slot);\n if (Either.isLeft(encoded)) {\n const issues = nonEmptyRecordIssues([\n recordIssue(\"record-schema-invalid\", [\"expectedSlots\", String(index)]),\n ]);\n if (issues === undefined)\n throw new Error(\"Expected Slot codec failure must have an issue\");\n return Either.left(issues);\n }\n const decoded = RecordSlotIdentityDefinition.decode(encoded.right);\n if (Either.isLeft(decoded)) {\n const issues = nonEmptyRecordIssues([\n recordIssue(\"record-schema-invalid\", [\"expectedSlots\", String(index)]),\n ]);\n if (issues === undefined)\n throw new Error(\"Expected Slot codec failure must have an issue\");\n return Either.left(issues);\n }\n slots.push(decoded.right);\n }\n const issues = nonEmptyRecordIssues(validateExpectedSlots(slots));\n return issues === undefined\n ? Either.right(Object.freeze(slots))\n : Either.left(issues);\n}\nfunction createFreshAttemptDirectory(run: RunRuntime, remaining = ENTROPY_RETRY_LIMIT): Effect.Effect<AttemptId, RecordWriteError> {\n return Effect.flatMap(mintAttemptId(run.entropy), (attemptId) => run.fileSystem.ensureDirectory(runPath(run.root, run.runId, \"attempts\")).pipe(Effect.zipRight(run.fileSystem.createDirectory(runPath(run.root, run.runId, \"attempts\", attemptId))), Effect.as(attemptId), Effect.catchAll((error) => error instanceof RecordPathAlreadyExists && remaining > 0\n ? createFreshAttemptDirectory(run, remaining - 1)\n : Effect.fail(error))));\n}\nfunction beginRunMutation(run: RunRuntime, input: {\n readonly operation: \"create-attempt\" | \"reference\" | \"record\";\n readonly slotId?: SlotId;\n readonly reservation?: \"attempt\" | \"reference\" | \"terminal\";\n}): Effect.Effect<Deferred.Deferred<void>, RecordWriteError> {\n return run.mutex.withPermits(1)(Effect.gen(function* () {\n yield* assertRunLive(run);\n if (run.state !== \"open\") {\n return yield* Effect.fail(stateError(input.operation, run.state));\n }\n if (input.slotId !== undefined) {\n if (!run.expectedBySlot.has(input.slotId) || run.slotReservations.has(input.slotId)) {\n return yield* Effect.fail(coreInvalid());\n }\n run.slotReservations.set(input.slotId, input.reservation!);\n }\n const mutation = yield* Deferred.make<void>();\n run.inFlightMutations.add(mutation);\n return mutation;\n }));\n}\nfunction finishRunMutation(run: RunRuntime, mutation: Deferred.Deferred<void>, exit: Exit.Exit<unknown, unknown>): Effect.Effect<void> {\n return run.mutex.withPermits(1)(Effect.sync(() => {\n run.inFlightMutations.delete(mutation);\n if (!Exit.isSuccess(exit) && !run.markerCreated) {\n run.state = \"failed\";\n consumeRunCapabilities(run);\n }\n })).pipe(Effect.zipRight(Deferred.succeed(mutation, undefined).pipe(Effect.asVoid)));\n}\n/**\n * Publication consumes every writer capability for the Run, including child\n * Attempt capabilities. Durable visibility is still the complete marker; the\n * in-memory handles must never remain usable after that point.\n */\nfunction consumeRunCapabilities(run: RunRuntime): void {\n run.closed = true;\n if (run.handle !== undefined) {\n runSessions.delete(run.handle);\n run.handle = undefined;\n }\n for (const attempt of run.attempts.values()) {\n consumeAttemptCapability(attempt);\n }\n}\n/** Remove the exact-object authority before a completed/failed Attempt escapes. */\nfunction consumeAttemptCapability(attempt: AttemptRuntime): void {\n if (attempt.handle !== undefined) {\n attemptSessions.delete(attempt.handle);\n attempt.handle = undefined;\n }\n}\nfunction fixedFamilyWriteInvalid() {\n return recordAttachmentClosureInvalid([\n recordAttachmentIssue(\"record-attachment-schema-id-mismatch\", [\"family\"]),\n ]);\n}\nfunction attachmentEncodeFailure(error: RecordAttachmentPayloadInvalid) {\n return recordAttachmentEncodeError(error);\n}\nfunction nextBlobKey(entropy: RecordEntropyService, forbidden: ReadonlySet<string>, remaining = ENTROPY_RETRY_LIMIT): Effect.Effect<string, RecordCoreInvalid> {\n return Effect.flatMap(entropy.uuid, (candidate) => {\n if (isPortableSegment(candidate) && !forbidden.has(candidate)) {\n return Effect.succeed(candidate);\n }\n return remaining > 0\n ? nextBlobKey(entropy, forbidden, remaining - 1)\n : Effect.fail(coreInvalid());\n });\n}\nfunction allocateBlobKeys(input: {\n readonly entropy: RecordEntropyService;\n readonly payload: RecordAttachmentJson;\n readonly blobs: readonly {\n readonly ref: RecordBlobRef;\n readonly stream: unknown;\n }[];\n}): Effect.Effect<ReadonlyMap<object, string>, RecordCoreInvalid> {\n return Effect.gen(function* () {\n const forbidden = new Set(attachmentPayloadStrings(input.payload));\n const keys = new Map<object, string>();\n for (const blob of input.blobs) {\n const key = yield* nextBlobKey(input.entropy, forbidden);\n forbidden.add(key);\n keys.set(blob.ref, key);\n }\n return keys;\n });\n}\nfunction reserveFixedAttachment(input: {\n readonly run: RunRuntime;\n readonly target: RunRuntime | AttemptRuntime;\n readonly attachment: FixedAttachmentRuntime;\n}): Effect.Effect<void, RecordWriteError> {\n return input.run.mutex.withPermits(1)(Effect.suspend(() => {\n if (input.run.state !== \"open\") {\n return Effect.fail(stateError(\"record\", input.run.state));\n }\n if (input.target.attachments.has(input.attachment.name) ||\n consumedFixedFamilyWrites.has(input.attachment.write)) {\n return Effect.fail(stateError(\"record\", input.run.state));\n }\n input.target.attachments.set(input.attachment.name, input.attachment);\n consumedFixedFamilyWrites.set(input.attachment.write, input.target);\n return Effect.void;\n }));\n}\nfunction assertAttemptCollecting(attempt: AttemptRuntime): Effect.Effect<void, RecordWriteError> {\n return attempt.mutex.withPermits(1)(Effect.suspend(() => attempt.state === \"open\"\n ? Effect.void\n : Effect.fail(stateError(\"record\", attempt.draft.state))));\n}\nfunction writeFixedAttachment<Family extends NiceEvalFamily, Owner extends RecordAttachmentOwner, Payload, E, R>(input: {\n readonly run: RunRuntime;\n readonly target: RunRuntime | AttemptRuntime;\n readonly owner: Owner;\n readonly base: ReturnType<typeof recordPortablePath>;\n readonly descriptor: FixedRecordFamilyDescriptor<Family, Owner, Payload>;\n readonly write: RecordAttachmentWrite<Owner, E, R>;\n}): Effect.Effect<void, RecordWriteError | E, R> {\n return Effect.flatMap(beginRunMutation(input.run, { operation: \"record\" }), (mutation) => Effect.gen(function* () {\n if (input.target !== input.run) {\n yield* assertAttemptCollecting(input.target as AttemptRuntime);\n }\n const captured = recordAttachmentWriteContents(input.write);\n if (Either.isLeft(captured))\n return yield* Effect.fail(captured.left);\n if (!sameFixedAttachmentWrite(captured.right.fixed, input.descriptor)) {\n return yield* Effect.fail(fixedFamilyWriteInvalid());\n }\n const encodedPayload = input.descriptor.write.encodePayload(captured.right.payload as Payload);\n if (Either.isLeft(encodedPayload)) {\n return yield* Effect.fail(attachmentEncodeFailure(encodedPayload.left));\n }\n const attachment: FixedAttachmentRuntime = Object.freeze({\n owner: input.owner,\n name: input.descriptor.family,\n base: input.base,\n descriptor: input.descriptor as unknown as FixedAttachmentRuntime[\"descriptor\"],\n write: input.write as unknown as RecordAttachmentWrite<RecordAttachmentOwner, unknown, unknown>,\n blobCount: captured.right.blobs.length,\n attemptId: input.target === input.run\n ? undefined\n : (input.target as AttemptRuntime).attemptId,\n });\n yield* reserveFixedAttachment({ run: input.run, target: input.target, attachment });\n const blobKeys = yield* allocateBlobKeys({\n entropy: input.run.entropy,\n payload: encodedPayload.right,\n blobs: captured.right.blobs,\n });\n const storedPayload = encodeAttachmentPayloadForStorage({\n payload: encodedPayload.right,\n blobKeys,\n });\n if (Either.isLeft(storedPayload)) {\n return yield* Effect.fail(attachmentEncodeFailure(storedPayload.left));\n }\n const encodedEnvelope = encodeFixedRecordAttachmentEnvelope({\n family: input.descriptor.family,\n schemaVersion: input.descriptor.schemaVersion,\n });\n if (Either.isLeft(encodedEnvelope)) {\n return yield* Effect.fail(fixedFamilyWriteInvalid());\n }\n const attachmentRoot = recordPortablePath(input.base.root, ...input.base.segments, input.descriptor.family);\n yield* input.run.fileSystem.ensureDirectory(input.base);\n yield* input.run.fileSystem.createDirectory(attachmentRoot);\n yield* input.run.fileSystem.writeFile({\n file: recordPortablePath(input.base.root, ...attachmentRoot.segments, \"attachment.json\"),\n bytes: jsonBytes(encodedEnvelope.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* input.run.fileSystem.writeFile({\n file: recordPortablePath(input.base.root, ...attachmentRoot.segments, \"payload.json\"),\n bytes: encodeRecordAttachmentJsonBytes(storedPayload.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* Effect.forEach(captured.right.blobs, (blob) => {\n const key = blobKeys.get(blob.ref);\n if (key === undefined) {\n throw new Error(\"Record fixed Attachment lost its writer-assigned blob key\");\n }\n return input.run.fileSystem.writeFileStream({\n file: recordPortablePath(input.base.root, ...attachmentRoot.segments, \"blobs\", key),\n stream: blob.stream,\n maximumBytes: Math.min(MAXIMUM_ATTACHMENT_BLOB_BYTES, input.descriptor.write.budget.maximumBlobBytes),\n mode: \"exclusive\",\n });\n }, { discard: true });\n }).pipe(Effect.onExit((exit) => finishRunMutation(input.run, mutation, exit))));\n}\nfunction validateAndSyncFixedAttachment(run: RunRuntime, attachment: FixedAttachmentRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n const captured = recordAttachmentWriteContents(attachment.write);\n if (Either.isLeft(captured) ||\n !sameFixedAttachmentWrite(captured.right.fixed, attachment.descriptor) ||\n captured.right.blobs.length !== attachment.blobCount) {\n return yield* Effect.fail(Either.isLeft(captured) ? captured.left : fixedFamilyWriteInvalid());\n }\n const encodedPayload = attachment.descriptor.write.encodePayload(captured.right.payload);\n if (Either.isLeft(encodedPayload)) {\n return yield* Effect.fail(attachmentEncodeFailure(encodedPayload.left));\n }\n const root = recordPortablePath(attachment.base.root, ...attachment.base.segments, attachment.name);\n const blobs = recordPortablePath(attachment.base.root, ...root.segments, \"blobs\");\n if ((yield* run.fileSystem.pathKind(blobs)) === \"directory\") {\n yield* run.fileSystem.syncDirectory(blobs);\n }\n yield* run.fileSystem.syncDirectory(root);\n yield* run.fileSystem.syncDirectory(attachment.base);\n const materialized = yield* readFixedRecordAttachment({\n fileSystem: run.fileSystem,\n root: run.root,\n location: attachment.owner === \"run\"\n ? Object.freeze({ owner: \"run\" as const, runId: run.runId })\n : Object.freeze({\n owner: \"attempt\" as const,\n runId: run.runId,\n attemptId: attachment.attemptId!,\n }),\n descriptor: attachment.descriptor,\n });\n if (materialized.state !== \"available\") {\n return yield* Effect.fail(fixedFamilyWriteInvalid());\n }\n if (!(yield* validateFixedCrossFamilyJoin({\n fileSystem: run.fileSystem,\n root: run.root,\n runId: run.runId,\n ...(attachment.owner === \"attempt\" ? { attemptId: attachment.attemptId } : {}),\n descriptor: attachment.descriptor,\n payload: materialized.value,\n }))) {\n return yield* Effect.fail(fixedFamilyWriteInvalid());\n }\n });\n}\nfunction validateAndSyncFixedAttachments(run: RunRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n yield* Effect.forEach(run.attachments.values(), (attachment) => validateAndSyncFixedAttachment(run, attachment), { discard: true });\n for (const attempt of run.attempts.values()) {\n yield* Effect.forEach(attempt.attachments.values(), (attachment) => validateAndSyncFixedAttachment(run, attachment), { discard: true });\n const attemptDirectory = runPath(run.root, run.runId, \"attempts\", attempt.attemptId);\n if ((yield* run.fileSystem.pathKind(attemptDirectory)) === \"directory\") {\n yield* run.fileSystem.syncDirectory(attemptDirectory);\n }\n }\n const members = runPath(run.root, run.runId, \"members\");\n if ((yield* run.fileSystem.pathKind(members)) === \"directory\") {\n yield* run.fileSystem.syncDirectory(members);\n }\n const attempts = runPath(run.root, run.runId, \"attempts\");\n if ((yield* run.fileSystem.pathKind(attempts)) === \"directory\") {\n yield* run.fileSystem.syncDirectory(attempts);\n }\n });\n}\nfunction writeRunFamily<Family extends NiceEvalFamily, Payload, E, R>(input: {\n readonly run: RunRuntime;\n readonly descriptor: FixedRecordFamilyDescriptor<Family, \"run\", Payload>;\n readonly value: RecordAttachmentWrite<\"run\", E, R>;\n}): Effect.Effect<void, RecordWriteError | E, R> {\n return writeFixedAttachment({\n run: input.run,\n target: input.run,\n owner: \"run\",\n base: runPath(input.run.root, input.run.runId, \"attachments\"),\n descriptor: input.descriptor,\n write: input.value,\n });\n}\nfunction writeAttemptFamily<Family extends NiceEvalFamily, Payload, E, R>(input: {\n readonly attempt: AttemptRuntime;\n readonly descriptor: FixedRecordFamilyDescriptor<Family, \"attempt\", Payload>;\n readonly value: RecordAttachmentWrite<\"attempt\", E, R>;\n}): Effect.Effect<void, RecordWriteError | E, R> {\n return writeFixedAttachment({\n run: input.attempt.draft,\n target: input.attempt,\n owner: \"attempt\",\n base: runPath(input.attempt.draft.root, input.attempt.draft.runId, \"attempts\", input.attempt.attemptId, \"attachments\"),\n descriptor: input.descriptor,\n write: input.value,\n });\n}\nfunction completeAttempt(attempt: AttemptRuntime, outcome: AttemptDocument[\"outcome\"]): Effect.Effect<void, RecordWriteError> {\n return Effect.flatMap(beginRunMutation(attempt.draft, { operation: \"record\" }), (mutation) => Effect.gen(function* () {\n yield* attempt.mutex.withPermits(1)(Effect.gen(function* () {\n yield* assertRunLive(attempt.draft);\n if (attempt.state !== \"open\") {\n return yield* Effect.fail(stateError(\"record\", attempt.draft.state));\n }\n attempt.state = \"completing\";\n }));\n const slot = attempt.draft.expectedBySlot.get(attempt.slotId);\n if (slot === undefined)\n return yield* Effect.fail(coreInvalid());\n const document: AttemptDocument = {\n attemptId: attempt.attemptId,\n originRunId: attempt.draft.runId,\n slotId: attempt.slotId,\n evalId: slot.evalId,\n executionIdentityDigest: slot.executionIdentityDigest,\n outcome,\n };\n const member: MemberDocument = {\n slotId: attempt.slotId,\n action: \"executed\",\n attempt: { originRunId: attempt.draft.runId, attemptId: attempt.attemptId },\n };\n const encodedAttempt = encodeAttemptDocument(document);\n const encodedMember = encodeMemberDocument(member);\n if (Either.isLeft(encodedAttempt) || Either.isLeft(encodedMember)) {\n return yield* Effect.fail(coreInvalid());\n }\n yield* attempt.draft.fileSystem.writeFile({\n file: runPath(attempt.draft.root, attempt.draft.runId, \"attempts\", attempt.attemptId, \"attempt.json\"),\n bytes: jsonBytes(encodedAttempt.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* attempt.draft.fileSystem.writeFile({\n file: runPath(attempt.draft.root, attempt.draft.runId, \"members\", `${attempt.slotId}.json`),\n bytes: jsonBytes(encodedMember.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* attempt.mutex.withPermits(1)(attempt.draft.mutex.withPermits(1)(Effect.sync(() => {\n attempt.state = \"completed\";\n attempt.document = document;\n attempt.draft.membership.set(attempt.slotId, { document: member });\n })));\n yield* Deferred.succeed(attempt.settled, undefined).pipe(Effect.asVoid);\n }).pipe(Effect.onExit((exit) => attempt.mutex.withPermits(1)(Effect.sync(() => {\n if (!Exit.isSuccess(exit) && attempt.state === \"completing\") {\n attempt.state = \"failed\";\n }\n })).pipe(Effect.zipRight(Deferred.succeed(attempt.settled, undefined).pipe(Effect.asVoid)), Effect.zipRight(finishRunMutation(attempt.draft, mutation, exit)))))).pipe(\n // Complete is terminal even when its durable write fails or is interrupted.\n // A leaked session must then fail at the capability boundary, not re-enter\n // the draft state machine.\n Effect.onExit(() => Effect.sync(() => consumeAttemptCapability(attempt))));\n}\nfunction makeAttemptSession(attempt: AttemptRuntime): AttemptWriteSession {\n const session: AttemptWriteSession = Object.freeze({\n attemptId: attempt.attemptId,\n slotId: attempt.slotId,\n [attemptWriteSessionBrand]: () => undefined,\n complete(outcome: AttemptDocument[\"outcome\"]) {\n return attemptSessions.get(this) === attempt\n ? completeAttempt(attempt, outcome)\n : Effect.fail(recordWriterClosed());\n },\n writeAssertions<E, R>(value: AssertionsWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.assertions,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeAttemptObservability<E, R>(value: AttemptObservabilityWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.observability.attempt,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeFileChanges<E, R>(value: FileChangesWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.fileChanges,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeSourceNavigation<E, R>(value: SourceNavigationWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.sourceNavigation,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeAttemptArtifacts<E, R>(value: AttemptArtifactsWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.attempt,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n });\n attempt.handle = session;\n attemptSessions.set(session, attempt);\n return session;\n}\nfunction createAttempt(run: RunRuntime, input: {\n readonly slotId: SlotId;\n}): Effect.Effect<AttemptWriteSession, RecordWriteError> {\n return Effect.flatMap(beginRunMutation(run, {\n operation: \"create-attempt\",\n slotId: input.slotId,\n reservation: \"attempt\",\n }), (mutation) => Effect.gen(function* () {\n const attemptId = yield* createFreshAttemptDirectory(run);\n const mutex = yield* Effect.makeSemaphore(1);\n const settled = yield* Deferred.make<void>();\n const attempt: AttemptRuntime = {\n draft: run,\n attemptId,\n slotId: input.slotId,\n mutex,\n settled,\n state: \"open\",\n document: undefined,\n attachments: new Map(),\n handle: undefined,\n };\n yield* run.mutex.withPermits(1)(Effect.sync(() => {\n run.attempts.set(attemptId, attempt);\n }));\n return makeAttemptSession(attempt);\n }).pipe(Effect.onExit((exit) => finishRunMutation(run, mutation, exit))));\n}\nfunction assertSelectedReference(root: RecordRoot, ref: SelectedAttemptRef): Effect.Effect<void, RecordReferenceInvalid> {\n const selected = selectedAttemptCapabilities.get(ref);\n return selected === undefined || selected.lifecycle.closed || !sameRoot(selected.root, root)\n ? Effect.fail(referenceInvalid())\n : Effect.void;\n}\nfunction referenceAttempt(run: RunRuntime, input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n}): Effect.Effect<void, RecordWriteError> {\n return Effect.flatMap(assertSelectedReference(run.root, input.attempt), () => Effect.flatMap(beginRunMutation(run, {\n operation: \"reference\",\n slotId: input.slotId,\n reservation: \"reference\",\n }), (mutation) => Effect.gen(function* () {\n const member: MemberDocument = {\n slotId: input.slotId,\n action: input.action,\n attempt: {\n originRunId: input.attempt.originRunId,\n attemptId: input.attempt.attemptId,\n },\n };\n yield* validateReference(run, { document: member });\n const encoded = encodeMemberDocument(member);\n if (Either.isLeft(encoded))\n return yield* Effect.fail(coreInvalidFromCodec(encoded.left));\n yield* run.fileSystem.ensureDirectory(runPath(run.root, run.runId, \"members\"));\n yield* run.fileSystem.writeFile({\n file: runPath(run.root, run.runId, \"members\", `${input.slotId}.json`),\n bytes: jsonBytes(encoded.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* run.mutex.withPermits(1)(Effect.sync(() => {\n run.membership.set(input.slotId, { document: member });\n }));\n }).pipe(Effect.onExit((exit) => finishRunMutation(run, mutation, exit)))));\n}\nfunction recordTerminalMember(run: RunRuntime, input: {\n readonly slotId: SlotId;\n readonly action: \"not-dispatched\" | \"interrupted\";\n}): Effect.Effect<void, RecordWriteError> {\n return Effect.flatMap(beginRunMutation(run, {\n operation: \"record\",\n slotId: input.slotId,\n reservation: \"terminal\",\n }), (mutation) => Effect.gen(function* () {\n const member: MemberDocument = {\n slotId: input.slotId,\n action: input.action,\n attempt: null,\n };\n const encoded = encodeMemberDocument(member);\n if (Either.isLeft(encoded))\n return yield* Effect.fail(coreInvalidFromCodec(encoded.left));\n yield* run.fileSystem.ensureDirectory(runPath(run.root, run.runId, \"members\"));\n yield* run.fileSystem.writeFile({\n file: runPath(run.root, run.runId, \"members\", `${input.slotId}.json`),\n bytes: jsonBytes(encoded.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* run.mutex.withPermits(1)(Effect.sync(() => {\n run.membership.set(input.slotId, { document: member });\n }));\n }).pipe(Effect.onExit((exit) => finishRunMutation(run, mutation, exit))));\n}\nfunction draftRunDocument(run: RunRuntime, completion: RunCompletion): RunDocument {\n return Object.freeze({\n runId: run.runId,\n experimentId: run.experimentId,\n context: run.context,\n startedAt: run.startedAt,\n completedAt: completion.completedAt,\n expectedSlots: Object.freeze([...run.expectedSlots]),\n });\n}\nfunction readPublishedAttempts(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<readonly AttemptDocument[], RecordWriteError> {\n return Effect.flatMap(readRunAttempts(fileSystem, root, runId), (attempts) => attempts === undefined ? Effect.fail(coreInvalid()) : Effect.succeed(attempts));\n}\nfunction readPublishedMembers(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<readonly MemberDocument[], RecordWriteError> {\n return Effect.flatMap(readRunMembers(fileSystem, root, runId), (members) => members === undefined ? Effect.fail(coreInvalid()) : Effect.succeed(members));\n}\nfunction scanPublishedCore(fileSystem: RecordFileSystemService, root: RecordRoot, omitRunId: RunId): Effect.Effect<readonly RunCore[], RecordWriteError> {\n return Effect.gen(function* () {\n const entries = orderedEntries(yield* fileSystem.listDirectory({\n directory: recordPath(root, \"runs\"),\n maximumEntries: MAXIMUM_RUN_ENTRIES,\n }));\n const runs: RunCore[] = [];\n for (const entry of entries) {\n if (entry.kind !== \"directory\")\n continue;\n const runId = decodeRunId(entry.name);\n if (runId === undefined || runId === omitRunId)\n continue;\n if (!(yield* isSealedRun(fileSystem, root, runId)))\n continue;\n const run = yield* readRunDocument(fileSystem, root, runId);\n if (run === undefined)\n return yield* Effect.fail(coreInvalid());\n const members = yield* readPublishedMembers(fileSystem, root, runId);\n const attempts = yield* readPublishedAttempts(fileSystem, root, runId);\n runs.push(Object.freeze({ run, members, attempts }));\n }\n return Object.freeze(runs);\n });\n}\nfunction validateReference(run: RunRuntime, member: MembershipRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n const reference = member.document.attempt;\n if (reference === null)\n return;\n if (!(yield* isSealedRun(run.fileSystem, run.root, reference.originRunId))) {\n return yield* Effect.fail(referenceInvalid());\n }\n const source = yield* readAttemptDocument(run.fileSystem, run.root, reference);\n const originRun = yield* readRunDocument(run.fileSystem, run.root, reference.originRunId);\n const expected = run.expectedBySlot.get(member.document.slotId);\n if (source === undefined || expected === undefined || originRun === undefined) {\n return yield* Effect.fail(referenceInvalid());\n }\n const originExpected = originRun.expectedSlots.find((slot) => slot.slotId === source.slotId);\n if (originExpected === undefined)\n return yield* Effect.fail(referenceInvalid());\n if (source.slotId !== originExpected.slotId\n || source.evalId !== originExpected.evalId\n || source.executionIdentityDigest !== originExpected.executionIdentityDigest) {\n return yield* Effect.fail(referenceInvalid());\n }\n if (member.document.action === \"accepted\") {\n // Explicit adoption occupies a current target Slot. The origin Attempt\n // keeps its own Slot identity; only the exact sealed reference is required.\n return;\n }\n if (expected.slotId !== originExpected.slotId\n || expected.evalId !== originExpected.evalId\n || expected.attemptOrdinal !== originExpected.attemptOrdinal\n || expected.executionIdentityDigest !== originExpected.executionIdentityDigest) {\n return yield* Effect.fail(referenceInvalid());\n }\n });\n}\nfunction startSeal(run: RunRuntime): Effect.Effect<readonly Deferred.Deferred<void>[], RecordWriteError> {\n return run.mutex.withPermits(1)(Effect.gen(function* () {\n yield* assertRunLive(run);\n if (run.state !== \"open\")\n return yield* Effect.fail(stateError(\"publish\", run.state));\n run.state = \"publishing\";\n return Object.freeze([...run.inFlightMutations]);\n }));\n}\nfunction sealRun(run: RunRuntime, completion: RunCompletion): Effect.Effect<RecordSealReceipt, RecordWriteError> {\n return Effect.flatMap(startSeal(run), (inFlight) => Effect.gen(function* () {\n yield* Effect.forEach(inFlight, (mutation) => Deferred.await(mutation), {\n discard: true,\n });\n const attempts = yield* run.mutex.withPermits(1)(Effect.sync(() => Object.freeze([...run.attempts.values()])));\n yield* Effect.forEach(attempts, (attempt) => Deferred.await(attempt.settled), {\n discard: true,\n });\n yield* run.mutex.withPermits(1)(Effect.gen(function* () {\n if (run.state !== \"publishing\")\n return yield* Effect.fail(stateError(\"publish\", run.state));\n if (run.inFlightMutations.size !== 0 || attempts.some((attempt) => attempt.state !== \"completed\")) {\n return yield* Effect.fail(stateError(\"publish\", \"failed\"));\n }\n }));\n yield* validateAndSyncFixedAttachments(run);\n for (const slot of run.expectedSlots) {\n if (!run.membership.has(slot.slotId)) {\n return yield* Effect.fail(coreInvalid());\n }\n }\n const draft = draftRunDocument(run, completion);\n for (const member of run.membership.values()) {\n if (member.document.attempt !== null && member.document.attempt.originRunId !== run.runId) {\n yield* validateReference(run, member);\n }\n }\n const existing = yield* scanPublishedCore(run.fileSystem, run.root, run.runId);\n const currentAttempts = attempts.map((attempt) => attempt.document);\n if (currentAttempts.some((document) => document === undefined)) {\n return yield* Effect.fail(coreInvalid());\n }\n const currentMembers = [...run.membership.values()]\n .map((member) => member.document)\n .sort((left, right) => compareCanonicalIdentity(left.slotId, right.slotId));\n const aggregate: RecordCore = {\n record: run.record,\n runs: Object.freeze([...existing, Object.freeze({\n run: draft,\n members: Object.freeze(currentMembers),\n attempts: Object.freeze((currentAttempts as AttemptDocument[])\n .sort((left, right) => compareCanonicalIdentity(left.attemptId, right.attemptId))),\n })].sort((left, right) => compareCanonicalIdentity(left.run.runId, right.run.runId))),\n };\n const aggregateEncoded = encodeRecordCore(aggregate);\n if (Either.isLeft(aggregateEncoded))\n return yield* Effect.fail(coreInvalidFromCodec(aggregateEncoded.left));\n const encoded = encodeRunDocument(draft);\n if (Either.isLeft(encoded))\n return yield* Effect.fail(coreInvalidFromCodec(encoded.left));\n yield* run.fileSystem.writeFile({\n file: runPath(run.root, run.runId, \"run.json\"),\n bytes: jsonBytes(encoded.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* Effect.uninterruptibleMask(() => Effect.gen(function* () {\n yield* run.fileSystem.syncDirectory(runPath(run.root, run.runId));\n yield* run.fileSystem.createCompleteMarker({ root: run.root, runId: run.runId });\n yield* Effect.sync(() => {\n run.markerCreated = true;\n run.state = \"published\";\n consumeRunCapabilities(run);\n });\n yield* run.fileSystem.syncDirectory(runPath(run.root, run.runId));\n yield* run.fileSystem.syncDirectory(recordPath(run.root, \"runs\"));\n }));\n return Object.freeze({ runId: run.runId, state: \"sealed\" as const });\n }).pipe(Effect.onExit((exit) => Exit.isSuccess(exit)\n ? Effect.void\n :\n run.mutex.withPermits(1)(Effect.sync(() => {\n if (!run.markerCreated)\n run.state = \"failed\";\n }))))).pipe(\n // `startSeal` itself may fail, so this finalizer belongs outside the\n // flatMap. Both a failed seal and a published Run consume every writer\n // authority.\n Effect.onExit(() => Effect.sync(() => consumeRunCapabilities(run))));\n}\nfunction makeRunSession(run: RunRuntime): RunWriteSession {\n const session: RunWriteSession = Object.freeze({\n runId: run.runId,\n [runWriteSessionBrand]: () => undefined,\n createAttempt(input: {\n readonly slotId: SlotId;\n }) {\n return runSessions.get(this) === run\n ? createAttempt(run, input)\n : Effect.fail(recordWriterClosed());\n },\n referenceAttempt(input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n }) {\n return runSessions.get(this) === run\n ? referenceAttempt(run, input)\n : Effect.fail(recordWriterClosed());\n },\n recordAcceptedMembership(input: {\n readonly slotId: SlotId;\n readonly attempt: SelectedAttemptRef;\n }) {\n return runSessions.get(this) === run\n ? referenceAttempt(run, { slotId: input.slotId, action: \"accepted\", attempt: input.attempt })\n : Effect.fail(recordWriterClosed());\n },\n recordTerminalMember(input: {\n readonly slotId: SlotId;\n readonly action: \"not-dispatched\" | \"interrupted\";\n }) {\n return runSessions.get(this) === run\n ? recordTerminalMember(run, input)\n : Effect.fail(recordWriterClosed());\n },\n writeSources<E, R>(value: SourcesWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeRunObservability<E, R>(value: RunObservabilityWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.observability.run,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeRunArtifacts<E, R>(value: RunArtifactsWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.run,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n seal(completion: RunCompletion) {\n return runSessions.get(this) === run\n ? sealRun(run, completion)\n : Effect.fail(recordWriterClosed());\n },\n });\n run.handle = session;\n runSessions.set(session, run);\n return session;\n}\nfunction makeReferenceRunSession(run: RunRuntime): ReferenceRunWriteSession {\n const session: ReferenceRunWriteSession = Object.freeze({\n runId: run.runId,\n [runWriteSessionBrand]: () => undefined,\n referenceAttempt(input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n }) {\n return runSessions.get(this) === run\n ? referenceAttempt(run, input)\n : Effect.fail(recordWriterClosed());\n },\n recordAcceptedMembership(input: {\n readonly slotId: SlotId;\n readonly attempt: SelectedAttemptRef;\n }) {\n return runSessions.get(this) === run\n ? referenceAttempt(run, { slotId: input.slotId, action: \"accepted\", attempt: input.attempt })\n : Effect.fail(recordWriterClosed());\n },\n recordTerminalMember(input: {\n readonly slotId: SlotId;\n readonly action: \"not-dispatched\" | \"interrupted\";\n }) {\n return runSessions.get(this) === run\n ? recordTerminalMember(run, input)\n : Effect.fail(recordWriterClosed());\n },\n writeRunObservability<E, R>(value: RunObservabilityWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.observability.run,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeRunArtifacts<E, R>(value: RunArtifactsWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.run,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n seal(completion: RunCompletion) {\n return runSessions.get(this) === run\n ? sealRun(run, completion)\n : Effect.fail(recordWriterClosed());\n },\n });\n run.handle = session;\n runSessions.set(session, run);\n return session;\n}\nfunction openNewRuntime(request: CreateRunRequest | CreateReferenceRunRequest): Effect.Effect<RunRuntime, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordEntropy | RecordCoordination> {\n return Effect.gen(function* () {\n // This must precede bootstrap as well as `createRunDirectory`: malformed\n // public JS input must not leave even a newly initialized Record skeleton.\n const expectedSlots = canonicalizeExpectedSlots(request.expectedSlots);\n if (Either.isLeft(expectedSlots)) {\n return yield* Effect.fail(new RecordCoreInvalid({\n code: \"record-core-invalid\",\n issues: expectedSlots.left,\n }));\n }\n const context = canonicalizeRunContext(request.context);\n if (Either.isLeft(context)) {\n return yield* Effect.fail(new RecordCoreInvalid({\n code: \"record-core-invalid\",\n issues: context.left,\n }));\n }\n if (context.right.experimentId !== request.experimentId) {\n const issues = nonEmptyRecordIssues([\n recordIssue(\"record-run-context-experiment-mismatch\", [\"context\", \"experimentId\"]),\n ]);\n if (issues === undefined)\n return yield* Effect.fail(coreInvalid());\n return yield* Effect.fail(new RecordCoreInvalid({\n code: \"record-core-invalid\",\n issues,\n }));\n }\n const expectedBySlot = new Map(expectedSlots.right.map((slot) => [slot.slotId, slot]));\n if (expectedBySlot.size !== expectedSlots.right.length)\n return yield* Effect.fail(coreInvalid());\n const coordination = yield* RecordCoordination;\n const fileSystem = yield* RecordFileSystem;\n const entropy = yield* RecordEntropy;\n yield* coordination.enterRecordAppend(request.root);\n if (yield* fileSystem.migrationSentinelPresent(request.root)) {\n return yield* Effect.fail(migrationInterrupted());\n }\n yield* initializeRecord({ root: request.root, fileSystem, entropy });\n const current = yield* readCurrentRecordFormat(fileSystem, request.root);\n yield* ensureOrdinaryCurrentAttachments({ fileSystem, root: request.root });\n yield* coordination.verifyRecordIdentity({ root: request.root, recordId: current.document.recordId });\n const runId = yield* createFreshRunDirectory(request.root, fileSystem, entropy);\n const mutex = yield* Effect.makeSemaphore(1);\n const runtime: RunRuntime = {\n root: request.root,\n fileSystem,\n entropy,\n record: current.document,\n runId,\n experimentId: request.experimentId,\n context: context.right,\n startedAt: request.startedAt,\n expectedSlots: expectedSlots.right,\n expectedBySlot,\n mutex,\n attempts: new Map(),\n slotReservations: new Map(),\n membership: new Map(),\n attachments: new Map(),\n inFlightMutations: new Set(),\n closed: false,\n markerCreated: false,\n state: \"open\",\n handle: undefined,\n };\n yield* Effect.addFinalizer(() => runtime.mutex.withPermits(1)(Effect.sync(() => {\n if (!runtime.markerCreated && runtime.state !== \"published\")\n runtime.state = \"failed\";\n consumeRunCapabilities(runtime);\n })));\n return runtime;\n });\n}\nfunction openNewRun(request: CreateRunRequest): Effect.Effect<RunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordEntropy | RecordCoordination> {\n return Effect.map(openNewRuntime(request), makeRunSession);\n}\nfunction openNewReferenceRun(request: CreateReferenceRunRequest): Effect.Effect<ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordEntropy | RecordCoordination> {\n return Effect.map(openNewRuntime(request), makeReferenceRunSession);\n}\ntype AnyMigrationDescriptor = FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>;\ninterface KnownMigrationAttachment {\n readonly owner: RecordAttachmentOwner;\n readonly runId: RunId;\n readonly attemptId?: AttemptId;\n readonly descriptor: AnyMigrationDescriptor;\n}\nfunction migrationDescriptor<Family extends NiceEvalFamily, Owner extends RecordAttachmentOwner, Payload>(descriptor: FixedRecordFamilyDescriptor<Family, Owner, Payload>): AnyMigrationDescriptor {\n return descriptor as unknown as AnyMigrationDescriptor;\n}\nconst runMigrationDescriptors = Object.freeze([\n migrationDescriptor(NiceEvalRecordFamilyCatalog.observability.run),\n migrationDescriptor(NiceEvalRecordFamilyCatalog.sources),\n migrationDescriptor(NiceEvalRecordFamilyCatalog.artifacts.run),\n]);\nconst attemptMigrationDescriptors = Object.freeze([\n migrationDescriptor(NiceEvalRecordFamilyCatalog.assertions),\n migrationDescriptor(NiceEvalRecordFamilyCatalog.observability.attempt),\n migrationDescriptor(NiceEvalRecordFamilyCatalog.fileChanges),\n migrationDescriptor(NiceEvalRecordFamilyCatalog.sourceNavigation),\n migrationDescriptor(NiceEvalRecordFamilyCatalog.artifacts.attempt),\n]);\nfunction validateAttachmentDirectoryInventory(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly directory: ReturnType<typeof recordPortablePath>;\n readonly allowed: ReadonlySet<string>;\n}): Effect.Effect<void, RecordFileSystemError | RecordFormatUnsupported> {\n return Effect.gen(function* () {\n const kind = yield* input.fileSystem.pathKind(input.directory);\n if (kind === \"missing\")\n return;\n if (kind !== \"directory\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: \"attachment-inventory\",\n }));\n }\n const entries = yield* input.fileSystem.listDirectory({\n directory: input.directory,\n maximumEntries: 256,\n });\n const unsupported = entries.find((entry) => entry.kind !== \"directory\" || !input.allowed.has(entry.name));\n if (unsupported !== undefined) {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: `unknown-family:${unsupported.name}`,\n }));\n }\n });\n}\nfunction validateCurrentFamilyInventory(fileSystem: RecordFileSystemService, root: RecordRoot): Effect.Effect<void, RecordFileSystemError | RecordFormatUnsupported> {\n const runFamilies = new Set(runMigrationDescriptors.map((descriptor) => descriptor.family));\n const attemptFamilies = new Set(attemptMigrationDescriptors.map((descriptor) => descriptor.family));\n return Effect.gen(function* () {\n const runs = yield* fileSystem.listDirectory({\n directory: recordPortablePath(root, \"runs\"),\n maximumEntries: MAXIMUM_RUN_ENTRIES,\n });\n for (const entry of runs) {\n if (entry.kind !== \"directory\")\n continue;\n const runId = decodeRunId(entry.name);\n if (runId === undefined || !(yield* isSealedRun(fileSystem, root, runId)))\n continue;\n yield* validateAttachmentDirectoryInventory({\n fileSystem,\n directory: recordPortablePath(root, \"runs\", runId, \"attachments\"),\n allowed: runFamilies,\n });\n const attemptsDirectory = recordPortablePath(root, \"runs\", runId, \"attempts\");\n if ((yield* fileSystem.pathKind(attemptsDirectory)) !== \"directory\")\n continue;\n const attempts = yield* fileSystem.listDirectory({\n directory: attemptsDirectory,\n maximumEntries: MAXIMUM_ATTEMPT_ENTRIES,\n });\n for (const attempt of attempts) {\n if (attempt.kind !== \"directory\")\n continue;\n const attemptId = decodeAttemptId(attempt.name);\n if (attemptId === undefined)\n continue;\n yield* validateAttachmentDirectoryInventory({\n fileSystem,\n directory: recordPortablePath(root, \"runs\", runId, \"attempts\", attemptId, \"attachments\"),\n allowed: attemptFamilies,\n });\n }\n }\n });\n}\nfunction migrationAttachmentDirectory(root: RecordRoot, location: KnownMigrationAttachment) {\n return location.owner === \"run\"\n ? recordPortablePath(root, \"runs\", location.runId, \"attachments\", location.descriptor.family)\n : recordPortablePath(root, \"runs\", location.runId, \"attempts\", location.attemptId!, \"attachments\", location.descriptor.family);\n}\nfunction migrationReaderLocation(location: KnownMigrationAttachment) {\n return location.owner === \"run\"\n ? Object.freeze({ owner: \"run\" as const, runId: location.runId })\n : Object.freeze({\n owner: \"attempt\" as const,\n runId: location.runId,\n attemptId: location.attemptId!,\n });\n}\n/**\n * This traversal only addresses declared family directories. It deliberately\n * never enumerates an attachment directory, so unknown families cannot enter\n * the migration graph or be rewritten as a side effect.\n */\nfunction knownMigrationAttachments(fileSystem: RecordFileSystemService, root: RecordRoot): Effect.Effect<readonly KnownMigrationAttachment[], RecordFileSystemError> {\n return Effect.gen(function* () {\n const locations: KnownMigrationAttachment[] = [];\n const runs = yield* fileSystem.listDirectory({\n directory: recordPortablePath(root, \"runs\"),\n maximumEntries: MAXIMUM_RUN_ENTRIES,\n });\n for (const entry of runs) {\n if (entry.kind !== \"directory\")\n continue;\n const runId = decodeRunId(entry.name);\n if (runId === undefined)\n continue;\n // Draft directories are not Runs and belong exclusively to `niceeval\n // clean`; maintenance must preserve every byte beneath them.\n if (!(yield* isSealedRun(fileSystem, root, runId)))\n continue;\n for (const descriptor of runMigrationDescriptors) {\n const location: KnownMigrationAttachment = Object.freeze({\n owner: \"run\" as const,\n runId,\n descriptor,\n });\n if ((yield* fileSystem.pathKind(migrationAttachmentDirectory(root, location))) !== \"missing\") {\n locations.push(location);\n }\n }\n const attempts = yield* fileSystem.listDirectory({\n directory: recordPortablePath(root, \"runs\", runId, \"attempts\"),\n maximumEntries: MAXIMUM_ATTEMPT_ENTRIES,\n });\n for (const attemptEntry of attempts) {\n if (attemptEntry.kind !== \"directory\")\n continue;\n const attemptId = decodeAttemptId(attemptEntry.name);\n if (attemptId === undefined)\n continue;\n for (const descriptor of attemptMigrationDescriptors) {\n const location: KnownMigrationAttachment = Object.freeze({\n owner: \"attempt\" as const,\n runId,\n attemptId,\n descriptor,\n });\n if ((yield* fileSystem.pathKind(migrationAttachmentDirectory(root, location))) !== \"missing\") {\n locations.push(location);\n }\n }\n }\n }\n return Object.freeze(locations);\n });\n}\nfunction readKnownMigrationAttachment(fileSystem: RecordFileSystemService, root: RecordRoot, location: KnownMigrationAttachment) {\n return readFixedRecordAttachment({\n fileSystem,\n root,\n location: migrationReaderLocation(location),\n descriptor: location.descriptor,\n });\n}\nfunction migrationInvalid(family: string): RecordMigrationInvalid {\n return new RecordMigrationInvalid({ code: \"record-migration-invalid\", family });\n}\nfunction migrationPlanStale(): RecordMigrationPlanStale {\n return new RecordMigrationPlanStale({ code: \"record-migration-plan-stale\" });\n}\nfunction migrationFailureCode(error: unknown): string {\n if (typeof error !== \"object\" || error === null)\n return \"record-command-failed\";\n const code = Reflect.get(error, \"code\");\n return typeof code === \"string\" ? code : \"record-command-failed\";\n}\nfunction migrationTarget(location: KnownMigrationAttachment): RecordAttachmentMigrationTarget {\n return Object.freeze({\n family: location.descriptor.family,\n owner: location.owner,\n runId: location.runId,\n ...(location.attemptId === undefined ? {} : { attemptId: location.attemptId }),\n fromSchemaVersion: 1,\n toSchemaVersion: location.descriptor.schemaVersion,\n });\n}\ninterface PlannedMigrationSource {\n readonly target: RecordAttachmentMigrationTarget;\n readonly envelopeBytes: Uint8Array;\n}\ninterface PlannedMigrationSources {\n readonly attachments: readonly PlannedMigrationSource[];\n readonly rootBytes: Uint8Array | null;\n readonly record: RecordDocument;\n readonly implementationIdentity: typeof RECORD_MIGRATION_IMPLEMENTATION_ID;\n}\nconst RECORD_MIGRATION_IMPLEMENTATION_ID = \"niceeval.record/root-1-observability-1-to-root-2-observability-2/v1\" as const;\nconst migrationPlanSources = new WeakMap<object, PlannedMigrationSources>();\nfunction bytesEqual(left: Uint8Array, right: Uint8Array): boolean {\n return left.byteLength === right.byteLength && left.every((byte, index) => byte === right[index]);\n}\nfunction migrationEnvelopePath(root: RecordRoot, location: KnownMigrationAttachment) {\n return recordPortablePath(root, ...migrationAttachmentDirectory(root, location).segments, \"attachment.json\");\n}\nfunction sameMigrationPlan(left: RecordMigrationPlan, right: RecordMigrationPlan): boolean {\n if (left.state !== right.state || left.format !== right.format)\n return false;\n if (left.state !== \"migration-required\" || right.state !== \"migration-required\")\n return true;\n if (JSON.stringify(left.backup) !== JSON.stringify(right.backup))\n return false;\n if (JSON.stringify(left.root) !== JSON.stringify(right.root))\n return false;\n if (left.attachments.length !== right.attachments.length)\n return false;\n return left.attachments.every((target, index) => {\n const candidate = right.attachments[index];\n return candidate !== undefined &&\n target.family === candidate.family &&\n target.owner === candidate.owner &&\n target.runId === candidate.runId &&\n target.attemptId === candidate.attemptId &&\n target.fromSchemaVersion === candidate.fromSchemaVersion &&\n target.toSchemaVersion === candidate.toSchemaVersion;\n });\n}\nfunction planAttachmentMigration(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n}): Effect.Effect<{\n readonly targets: readonly RecordAttachmentMigrationTarget[];\n readonly sources: readonly PlannedMigrationSource[];\n}, RecordFileSystemError | RecordFormatUnsupported | RecordMigrationInvalid> {\n return Effect.gen(function* () {\n yield* validateCurrentFamilyInventory(input.fileSystem, input.root);\n const targets: RecordAttachmentMigrationTarget[] = [];\n const sources: PlannedMigrationSource[] = [];\n for (const location of yield* knownMigrationAttachments(input.fileSystem, input.root)) {\n const read = yield* readKnownMigrationAttachment(input.fileSystem, input.root, location);\n if (read.state === \"available\")\n continue;\n if (read.state === \"migration-required\" &&\n location.descriptor.family === NiceEvalRecordAttachments.observability.family &&\n read.fromSchemaVersion === 1 &&\n read.toSchemaVersion === 2) {\n const target = migrationTarget(location);\n const envelopeBytes = yield* input.fileSystem.readFile({\n file: migrationEnvelopePath(input.root, location),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (envelopeBytes === undefined) {\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n targets.push(target);\n sources.push(Object.freeze({ target, envelopeBytes }));\n continue;\n }\n if (read.state === \"unsupported\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: `${read.family}@${read.schemaVersion}`,\n }));\n }\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n return Object.freeze({\n targets: Object.freeze(targets),\n sources: Object.freeze(sources),\n });\n });\n}\nfunction ensureOrdinaryCurrentAttachments(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n}): Effect.Effect<void, RecordReaderOpenError> {\n return planAttachmentMigration(input).pipe(Effect.flatMap((plan) => plan.targets.length === 0\n ? Effect.void\n : Effect.fail(new RecordMigrationRequired({\n code: \"record-migration-required\",\n source: \"niceeval.record attachment predecessor\",\n target: `${RECORD_FORMAT}@${RECORD_SCHEMA_VERSION}`,\n command: \"niceeval migrate\",\n }))), Effect.mapError((error): RecordReaderOpenError => error instanceof RecordMigrationInvalid\n ? bootstrapInvalid()\n : error));\n}\nfunction migrationPlan(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly git: RecordGitService;\n}): Effect.Effect<RecordMigrationPlan, RecordMaintenanceError> {\n return Effect.gen(function* () {\n const format = yield* readRecordFormatForMaintenance(input.fileSystem, input.root);\n yield* validateSealedCoreForMigration(input.fileSystem, input.root, format.document);\n const attachments = yield* planAttachmentMigration(input);\n const rootMigration = format.sourceSchemaVersion === RECORD_SCHEMA_VERSION\n ? null\n : Object.freeze({\n fromSchemaVersion: format.sourceSchemaVersion,\n toSchemaVersion: RECORD_SCHEMA_VERSION,\n });\n if (rootMigration === null && attachments.targets.length === 0) {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n const backup = yield* input.git.inspectBackupState(input.root);\n const plan = Object.freeze({\n state: \"migration-required\" as const,\n format: RECORD_FORMAT,\n backup,\n root: rootMigration,\n attachments: attachments.targets,\n });\n migrationPlanSources.set(plan, Object.freeze({\n attachments: attachments.sources,\n rootBytes: rootMigration === null ? null : format.sourceBytes,\n record: format.document,\n implementationIdentity: RECORD_MIGRATION_IMPLEMENTATION_ID,\n }));\n return plan;\n });\n}\nfunction validateSealedCoreForMigration(fileSystem: RecordFileSystemService, root: RecordRoot, record: RecordDocument): Effect.Effect<void, RecordMaintenanceError> {\n return Effect.flatMap(loadSealedCoreSnapshot(maintenanceReaderRuntime(root, record), fileSystem), (snapshot) => snapshot.state === \"available\"\n ? Effect.void\n : Effect.fail(migrationInvalid(\"niceeval.core\")));\n}\nfunction loadObservabilityV1Maintenance(): Effect.Effect<Awaited<ReturnType<NonNullable<typeof NiceEvalRecordAttachments.observability.maintenance>>>, RecordMigrationInvalid> {\n const loader = NiceEvalRecordAttachments.observability.maintenance;\n if (loader === undefined)\n return Effect.fail(migrationInvalid(NiceEvalRecordAttachments.observability.family));\n return Effect.tryPromise({\n try: loader,\n catch: () => migrationInvalid(NiceEvalRecordAttachments.observability.family),\n });\n}\nfunction migrateObservabilityAttachment(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly target: RecordAttachmentMigrationTarget;\n readonly expectedEnvelopeBytes: Uint8Array;\n}): Effect.Effect<void, RecordMaintenanceError> {\n return Effect.gen(function* () {\n if (input.target.family !== NiceEvalRecordAttachments.observability.family ||\n input.target.fromSchemaVersion !== 1 ||\n input.target.toSchemaVersion !== 2) {\n return yield* Effect.fail(migrationInvalid(input.target.family));\n }\n const descriptor = input.target.owner === \"run\"\n ? migrationDescriptor(NiceEvalRecordFamilyCatalog.observability.run)\n : migrationDescriptor(NiceEvalRecordFamilyCatalog.observability.attempt);\n const location: KnownMigrationAttachment = input.target.owner === \"run\"\n ? Object.freeze({ owner: \"run\" as const, runId: input.target.runId, descriptor })\n : Object.freeze({\n owner: \"attempt\" as const,\n runId: input.target.runId,\n attemptId: input.target.attemptId!,\n descriptor,\n });\n const facet = yield* loadObservabilityV1Maintenance();\n const historical = facet.historicalCodecs.find((codec) => codec.schemaVersion === 1);\n const step = facet.adjacentMigrations.find((migration) => migration.fromSchemaVersion === 1 && migration.toSchemaVersion === 2);\n if (historical === undefined || step === undefined) {\n return yield* Effect.fail(migrationInvalid(input.target.family));\n }\n const envelopePath = migrationEnvelopePath(input.root, location);\n const sourceBeforeValidation = yield* input.fileSystem.readFile({\n file: envelopePath,\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (sourceBeforeValidation === undefined || !bytesEqual(sourceBeforeValidation, input.expectedEnvelopeBytes)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n const valid = yield* validateFixedRecordAttachmentMigrationSource({\n fileSystem: input.fileSystem,\n root: input.root,\n location: migrationReaderLocation(location),\n descriptor,\n fromSchemaVersion: 1,\n decodeHistorical: historical.decode,\n migrate: step.migrate,\n });\n if (!valid) {\n const sourceAfterInvalid = yield* input.fileSystem.readFile({\n file: envelopePath,\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (sourceAfterInvalid === undefined || !bytesEqual(sourceAfterInvalid, input.expectedEnvelopeBytes)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n return yield* Effect.fail(migrationInvalid(input.target.family));\n }\n const envelope = encodeFixedRecordAttachmentEnvelope({\n family: NiceEvalRecordAttachments.observability.family,\n schemaVersion: 2,\n });\n if (Either.isLeft(envelope))\n return yield* Effect.fail(migrationInvalid(input.target.family));\n const sourceBeforeWrite = yield* input.fileSystem.readFile({\n file: envelopePath,\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (sourceBeforeWrite === undefined || !bytesEqual(sourceBeforeWrite, input.expectedEnvelopeBytes)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n yield* input.fileSystem.writeFile({\n file: envelopePath,\n bytes: jsonBytes(envelope.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"replace-no-follow\",\n });\n });\n}\nfunction validateCurrentKnownAttachments(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n}): Effect.Effect<void, RecordMaintenanceError> {\n return Effect.gen(function* () {\n for (const location of yield* knownMigrationAttachments(input.fileSystem, input.root)) {\n const read = yield* readKnownMigrationAttachment(input.fileSystem, input.root, location);\n if (read.state !== \"available\") {\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n const joined = yield* validateFixedCrossFamilyJoin({\n fileSystem: input.fileSystem,\n root: input.root,\n runId: location.runId,\n ...(location.attemptId === undefined ? {} : { attemptId: location.attemptId }),\n descriptor: location.descriptor,\n payload: read.value,\n });\n if (joined.state !== \"joined\") {\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n }\n });\n}\nfunction migrationRecoveryIsSafe(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly git: RecordGitService;\n readonly root: RecordRoot;\n readonly restoreCommit: string;\n}): Effect.Effect<boolean> {\n return Effect.gen(function* () {\n const encoded = encodeFixedRecordAttachmentEnvelope({\n family: NiceEvalRecordAttachments.observability.family,\n schemaVersion: 2,\n });\n if (Either.isLeft(encoded))\n return false;\n const currentEnvelopeBytes = jsonBytes(encoded.right);\n const expectedPaths = [recordPortablePath(input.root, \"migration.in-progress\")];\n const currentRoot = yield* input.fileSystem.readFile({\n file: recordPortablePath(input.root, \"record.json\"),\n maximumBytes: RECORD_FORMAT_DOCUMENT_MAXIMUM_BYTES,\n });\n if (currentRoot !== undefined) {\n const parsed = parseJson(currentRoot);\n if (typeof parsed === \"object\" && parsed !== null &&\n Reflect.get(parsed, \"schemaVersion\") === RECORD_SCHEMA_VERSION)\n expectedPaths.push(recordPortablePath(input.root, \"record.json\"));\n }\n for (const location of yield* knownMigrationAttachments(input.fileSystem, input.root)) {\n if (location.descriptor.family !== NiceEvalRecordAttachments.observability.family)\n continue;\n const path = migrationEnvelopePath(input.root, location);\n const bytes = yield* input.fileSystem.readFile({\n file: path,\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (bytes !== undefined && bytesEqual(bytes, currentEnvelopeBytes))\n expectedPaths.push(path);\n }\n return yield* input.git.recoveryChangesAreExpected({\n root: input.root,\n restoreCommit: input.restoreCommit,\n expectedPaths,\n });\n }).pipe(Effect.catchAll(() => Effect.succeed(false)));\n}\nfunction openMaintenance(input: {\n readonly root: RecordRoot;\n}): Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordGit | RecordCoordination> {\n return Effect.gen(function* () {\n const coordination = yield* RecordCoordination;\n const fileSystem = yield* RecordFileSystem;\n const git = yield* RecordGit;\n yield* coordination.enterRecordMaintenance(input.root);\n if (yield* fileSystem.migrationSentinelPresent(input.root)) {\n const restoreCommit = yield* fileSystem.readMigrationSentinelRestoreCommit(input.root);\n const restoreSafe = restoreCommit === undefined\n ? false\n : yield* migrationRecoveryIsSafe({ fileSystem, git, root: input.root, restoreCommit });\n return yield* Effect.fail(migrationInterrupted(restoreCommit, restoreSafe));\n }\n const inspect = () => currentFormatInspection(fileSystem, input.root);\n const planMigrate = () => Effect.gen(function* () {\n const format = yield* readRecordFormatForMaintenance(fileSystem, input.root);\n yield* coordination.verifyRecordIdentity({ root: input.root, recordId: format.document.recordId });\n return yield* migrationPlan({ fileSystem, root: input.root, git });\n });\n return Object.freeze({\n inspect,\n planMigrate,\n applyMigrate: (plan: RecordMigrationPlan): Effect.Effect<RecordMigrationReceipt, RecordMaintenanceError> => Effect.gen(function* () {\n const currentPlan = yield* planMigrate();\n if (!sameMigrationPlan(plan, currentPlan)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n if (currentPlan.state === \"already-current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n if (currentPlan.state === \"unsupported-format\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: currentPlan.format,\n }));\n }\n if (currentPlan.backup.state !== \"git-restore-point\") {\n return yield* Effect.fail(new RecordMigrationGitRestoreRequired({\n code: \"record-migration-git-restore-required\",\n }));\n }\n const restoreCommit = currentPlan.backup.commit;\n const plannedSources = migrationPlanSources.get(currentPlan);\n if (plannedSources === undefined ||\n plannedSources.implementationIdentity !== RECORD_MIGRATION_IMPLEMENTATION_ID ||\n plannedSources.attachments.length !== currentPlan.attachments.length ||\n (currentPlan.root === null) !== (plannedSources.rootBytes === null)) {\n return yield* Effect.fail(migrationInvalid(NiceEvalRecordAttachments.observability.family));\n }\n let portableTargetWritten = false;\n // The sentinel is the first portable write. Any later failure or\n // interruption intentionally leaves it behind for Git recovery.\n yield* fileSystem.createMigrationSentinel(input.root, restoreCommit);\n const sentinelOnly = yield* git.recoveryChangesAreExpected({\n root: input.root,\n restoreCommit,\n expectedPaths: [recordPortablePath(input.root, \"migration.in-progress\")],\n });\n if (!sentinelOnly) {\n yield* fileSystem.removeMigrationSentinel(input.root);\n return yield* Effect.fail(migrationPlanStale());\n }\n yield* Effect.gen(function* () {\n for (const source of plannedSources.attachments) {\n yield* migrateObservabilityAttachment({\n fileSystem,\n root: input.root,\n target: source.target,\n expectedEnvelopeBytes: source.envelopeBytes,\n });\n portableTargetWritten = true;\n }\n if (plannedSources.rootBytes !== null) {\n const rootPath = recordPortablePath(input.root, \"record.json\");\n const sourceBeforeRootWrite = yield* fileSystem.readFile({\n file: rootPath,\n maximumBytes: RECORD_FORMAT_DOCUMENT_MAXIMUM_BYTES,\n });\n if (sourceBeforeRootWrite === undefined ||\n !bytesEqual(sourceBeforeRootWrite, plannedSources.rootBytes))\n return yield* Effect.fail(migrationPlanStale());\n const encodedRoot = encodeRecordDocument(plannedSources.record);\n if (Either.isLeft(encodedRoot))\n return yield* Effect.fail(migrationInvalid(\"niceeval.core\"));\n yield* fileSystem.writeFile({\n file: rootPath,\n bytes: jsonBytes(encodedRoot.right),\n maximumBytes: RECORD_FORMAT_DOCUMENT_MAXIMUM_BYTES,\n mode: \"replace-no-follow\",\n });\n portableTargetWritten = true;\n }\n const current = yield* readCurrentRecordFormat(fileSystem, input.root);\n yield* validateSealedCoreForMigration(fileSystem, input.root, current.document);\n yield* validateCurrentKnownAttachments({ fileSystem, root: input.root });\n yield* fileSystem.removeMigrationSentinel(input.root);\n }).pipe(Effect.catchAll((error) => {\n const recoveryRequired = () => Effect.flatMap(migrationRecoveryIsSafe({ fileSystem, git, root: input.root, restoreCommit }), (restoreSafe) => Effect.fail(new RecordMigrationRecoveryRequired({\n code: \"record-migration-recovery-required\",\n causeCode: migrationFailureCode(error),\n restoreCommit,\n restoreSafe,\n })));\n if (error instanceof RecordMigrationPlanStale && !portableTargetWritten) {\n return fileSystem.removeMigrationSentinel(input.root).pipe(Effect.matchEffect({\n onFailure: () => recoveryRequired(),\n onSuccess: () => Effect.fail(error),\n }));\n }\n return recoveryRequired();\n }));\n return Object.freeze({ state: \"migrated\" as const, format: RECORD_FORMAT });\n }),\n });\n });\n}\nexport const recordHost: RecordHostSDK = Object.freeze({\n current: Object.freeze({\n openRead: openCurrentRead,\n createRun: openNewRun,\n createReferenceRun: openNewReferenceRun,\n }),\n maintenance: Object.freeze({ open: openMaintenance }),\n});\n"]}
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import { Deferred, Effect, Either, Exit, Schema } from \"effect\";\nimport { RecordCoordination } from \"../../coordination/record-leases.ts\";\nimport { recordAttachmentWriteContents, } from \"../attachment/internal.ts\";\nimport { recordAttachmentClosureInvalid, recordAttachmentIssue, type RecordAttachmentPayloadInvalid, } from \"../attachment/errors.ts\";\nimport type { RecordAttachmentJson, RecordAttachmentWrite, RecordBlobRef, } from \"../attachment/types.ts\";\nimport { AttemptIdSchema, RecordFormatSchema, RecordIdSchema, RunIdSchema, SlotIdSchema, decodeAttemptDocument, decodeMemberDocument, decodeRunDocument, encodeAttemptDocument, encodeMemberDocument, encodeRecordDocument, encodeRecordCore, encodeRunDocument, RecordExactParseOptions, } from \"../codec/index.ts\";\nimport { RecordCoreInvalid, RecordReferenceInvalid, nonEmptyRecordIssues, recordIssue, type RecordCodecError, type NonEmptyRecordIssues, } from \"../errors/record-errors.ts\";\nimport { encodeFixedRecordAttachmentEnvelope, NiceEvalRecordAttachments, NiceEvalRecordFamilyCatalog, NiceEvalRecordFamilyDescriptorsByOwner, type FixedRecordFamilyDescriptor, type NiceEvalFamily, } from \"../family/catalog.ts\";\nimport { observabilitySourceFrameIntegrityIssues, type AttemptObservabilityAttachment, type ObservabilityAttachment, } from \"../family/observability.ts\";\nimport { assertionsSourceSiteIntegrityIssues, type AssertionsAttachment, } from \"../family/assertions.ts\";\nimport { sourceNavigationIntegrityIssues, type SourceNavigationAttachment, } from \"../family/source-navigation.ts\";\nimport type { SourcesAttachment } from \"../family/sources.ts\";\nimport type { AttemptDocument, MemberDocument, RecordAttachmentOwner, RecordAttemptRef, RecordDocument, RecordCore, RecordSlotIdentity, RunCore, RunDocument, } from \"../model/core.ts\";\nimport { canonicalizeRunContext, type RunContext, } from \"../model/run-context.ts\";\nimport { RecordSlotIdentityDefinition } from \"../model/definition.ts\";\nimport { validateExpectedSlots } from \"../model/validation.ts\";\nimport { RECORD_FORMAT, compareCanonicalIdentity, isPortableSegment, type AttemptId, type RecordId, type RunId, type SlotId, } from \"../model/identifiers.ts\";\nimport type { RecordCoreRead, RecordWarning, } from \"../model/read-state.ts\";\nimport { RecordPathAlreadyExists, RecordPathTypeInvalid, type RecordFileSystemError, } from \"../platform/errors.ts\";\nimport { recordRootPaths, type RecordRoot } from \"../platform/root.ts\";\nimport { RecordEntropy, RecordFileSystem, RecordGit, recordPortablePath, type RecordDirectoryEntry, type RecordEntropyService, type RecordFileSystemService, type RecordGitService, } from \"../platform/services.ts\";\nimport { RecordBootstrapInvalid, RecordFormatUnsupported, RecordHandleInvalid, RecordMigrationInvalid, RecordMigrationRequired, RecordMigrationGitRestoreRequired, RecordMigrationInterruptedState, RecordMigrationPlanStale, RecordMigrationRecoveryRequired, RecordReaderClosed, type RecordMaintenanceError, type RecordMaintenanceOpenError, type RecordReaderOpenError, type RecordReaderReadError, } from \"../reader/errors.ts\";\nimport { RECORD_FORMAT_DOCUMENT_MAXIMUM_BYTES, readCurrentRecordFormat, readRecordFormatForMaintenance, } from \"../reader/format.ts\";\nimport { inspectFixedRecordAttachmentEnvelope, readFixedRecordAttachment, type FixedRecordAttachmentRead, validateFixedRecordAttachmentMigrationSource, } from \"../reader/runtime.ts\";\nimport { recordAttachmentEncodeError, recordDraftStateError, recordWriterClosed, type RecordDraftLifecycleState, } from \"../writer/errors.ts\";\nimport { attachmentPayloadStrings, encodeAttachmentPayloadForStorage, encodeRecordAttachmentJsonBytes, } from \"../writer/attachment-payload.ts\";\nimport { RECORD_JSON_MAXIMUM_BYTES, encodeRecordJsonUtf8 } from \"../writer/limits.ts\";\nimport type { RecordWriteError } from \"../writer/types.ts\";\nimport { attemptWriteSessionBrand, runWriteSessionBrand, selectedAttemptRefBrand, selectedOwnerRefBrand, selectedRunRefBrand, type AttemptWriteSession, type AttemptArtifactsWrite, type AttemptObservabilityWrite, type AssertionsWrite, type CreateReferenceRunRequest, type CreateRunRequest, type FileChangesWrite, type FixedFamilyRead, type ReadableAttempt, type ReadableRun, type RecordFormatInspection, type RecordHostSDK, type RecordAttachmentMigrationTarget, type RecordMaintenanceSession, type RecordMigrationPlan, type RecordMigrationReceipt, type RecordReadSession, type ReferenceRunWriteSession, type RecordSelection, type RecordSelectionProblem, type RecordSelectionRequest, type RecordSealReceipt, type RunCompletion, type RunArtifactsWrite, type RunObservabilityWrite, type RunWriteSession, type SelectedAttemptRef, type SelectedOwnerRef, type SelectedRunRef, type SourcesWrite, type SourceNavigationWrite, } from \"./types.ts\";\nconst MAXIMUM_RUN_ENTRIES = 100000;\nconst MAXIMUM_ATTEMPT_ENTRIES = 100000;\nconst MAXIMUM_CORE_BYTES = 1024 * 1024;\nconst ENTROPY_RETRY_LIMIT = 16;\nconst MAXIMUM_ATTACHMENT_BLOB_BYTES = 64 * 1024 * 1024;\nfunction sameFixedAttachmentWrite(actual: unknown, expected: {\n readonly write: unknown;\n}): boolean {\n return actual === expected.write;\n}\ninterface ReaderLifecycle {\n closed: boolean;\n}\ninterface SelectedAttemptRuntime {\n readonly root: RecordRoot;\n readonly lifecycle: ReaderLifecycle;\n}\ninterface SelectedRunRuntime {\n readonly document: RunDocument;\n readonly root: RecordRoot;\n readonly lifecycle: ReaderLifecycle;\n}\ntype SelectedOwnerRuntime = {\n readonly kind: \"run\";\n readonly runId: RunId;\n} | {\n readonly kind: \"attempt\";\n readonly ref: RecordAttemptRef;\n};\ninterface ReaderRuntime {\n readonly root: RecordRoot;\n /** Exact root identity retained for the aggregate Core refine. */\n readonly record: RecordDocument;\n readonly lifecycle: ReaderLifecycle;\n readonly runs: WeakMap<SelectedRunRef, SelectedRunRuntime>;\n readonly attempts: WeakMap<SelectedAttemptRef, SelectedAttemptRuntime>;\n readonly owners: WeakMap<SelectedOwnerRef, SelectedOwnerRuntime>;\n readonly runsById: Map<RunId, SelectedRunRef>;\n readonly attemptsByKey: Map<string, SelectedAttemptRef>;\n sealedCoreSnapshot: Deferred.Deferred<SealedCoreSnapshot, RecordFileSystemError> | undefined;\n}\ninterface AttemptRuntime {\n readonly draft: RunRuntime;\n readonly attemptId: AttemptId;\n readonly slotId: SlotId;\n readonly mutex: Effect.Semaphore;\n readonly settled: Deferred.Deferred<void>;\n state: \"open\" | \"completing\" | \"completed\" | \"failed\";\n document: AttemptDocument | undefined;\n readonly attachments: Map<string, FixedAttachmentRuntime>;\n handle: AttemptWriteSession | undefined;\n}\ninterface MembershipRuntime {\n readonly document: MemberDocument;\n}\ninterface RunRuntime {\n readonly root: RecordRoot;\n readonly fileSystem: RecordFileSystemService;\n readonly entropy: RecordEntropyService;\n readonly record: RecordDocument;\n readonly runId: RunId;\n readonly experimentId: CreateRunRequest[\"experimentId\"];\n readonly context: RunContext;\n readonly startedAt: CreateRunRequest[\"startedAt\"];\n readonly expectedSlots: readonly RecordSlotIdentity[];\n readonly expectedBySlot: ReadonlyMap<SlotId, RecordSlotIdentity>;\n readonly mutex: Effect.Semaphore;\n readonly attempts: Map<AttemptId, AttemptRuntime>;\n readonly slotReservations: Map<SlotId, \"attempt\" | \"reference\" | \"terminal\">;\n readonly membership: Map<SlotId, MembershipRuntime>;\n readonly attachments: Map<string, FixedAttachmentRuntime>;\n readonly inFlightMutations: Set<Deferred.Deferred<void>>;\n closed: boolean;\n markerCreated: boolean;\n state: RecordDraftLifecycleState;\n handle: object | undefined;\n}\ninterface FixedAttachmentRuntime {\n readonly owner: RecordAttachmentOwner;\n readonly name: string;\n readonly base: ReturnType<typeof recordPortablePath>;\n readonly descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>;\n readonly write: RecordAttachmentWrite<RecordAttachmentOwner, unknown, unknown>;\n readonly blobCount: number;\n readonly attemptId: AttemptId | undefined;\n}\nconst selectedAttemptCapabilities = new WeakMap<SelectedAttemptRef, SelectedAttemptRuntime>();\nconst runSessions = new WeakMap<object, RunRuntime>();\nconst attemptSessions = new WeakMap<AttemptWriteSession, AttemptRuntime>();\nconst consumedFixedFamilyWrites = new WeakMap<object, object>();\nfunction recordPath(root: RecordRoot, ...segments: readonly string[]) {\n return recordPortablePath(root, ...segments);\n}\nfunction runPath(root: RecordRoot, runId: RunId, ...segments: readonly string[]) {\n return recordPath(root, \"runs\", runId, ...segments);\n}\nfunction readerClosed(): RecordReaderClosed {\n return new RecordReaderClosed({ code: \"record-reader-closed\" });\n}\nfunction handleInvalid(): RecordHandleInvalid {\n return new RecordHandleInvalid({ code: \"record-handle-invalid\" });\n}\nfunction migrationInterrupted(restoreCommit?: string, restoreSafe?: boolean): RecordMigrationInterruptedState {\n return new RecordMigrationInterruptedState({\n code: \"record-migration-interrupted\",\n ...(restoreCommit === undefined ? {} : { restoreCommit }),\n ...(restoreSafe === undefined ? {} : { restoreSafe }),\n });\n}\nfunction bootstrapInvalid(): RecordBootstrapInvalid {\n return new RecordBootstrapInvalid({\n code: \"record-bootstrap-invalid\",\n reason: \"record-document-invalid\",\n });\n}\nfunction coreInvalid(): RecordCoreInvalid {\n const issues = nonEmptyRecordIssues([recordIssue(\"record-schema-invalid\")]);\n if (issues === undefined) {\n throw new Error(\"Record Core invalid state must contain one issue\");\n }\n return new RecordCoreInvalid({ code: \"record-core-invalid\", issues });\n}\nfunction coreInvalidFromCodec(error: RecordCodecError): RecordCoreInvalid {\n return new RecordCoreInvalid({\n code: \"record-core-invalid\",\n issues: error.issues,\n });\n}\nfunction referenceInvalid(): RecordReferenceInvalid {\n return new RecordReferenceInvalid({ code: \"record-reference-invalid\" });\n}\nfunction stateError(operation: \"create-attempt\" | \"reference\" | \"publish\" | \"record\", state: RecordDraftLifecycleState) {\n return recordDraftStateError({\n code: state === \"failed\" ? \"record-draft-write-failed\" : \"record-draft-state-invalid\",\n operation,\n state,\n });\n}\nfunction jsonBytes(value: unknown): Uint8Array {\n return encodeRecordJsonUtf8(value);\n}\nfunction parseJson(bytes: Uint8Array): unknown | undefined {\n try {\n return JSON.parse(new TextDecoder(\"utf-8\", { fatal: true }).decode(bytes)) as unknown;\n }\n catch {\n return undefined;\n }\n}\nfunction readJson(fileSystem: RecordFileSystemService, path: ReturnType<typeof recordPortablePath>): Effect.Effect<unknown | undefined, RecordFileSystemError> {\n return fileSystem.readFile({ file: path, maximumBytes: MAXIMUM_CORE_BYTES }).pipe(Effect.map((bytes) => bytes === undefined ? undefined : parseJson(bytes)), Effect.catchTag(\"RecordResourceLimitExceeded\", () => Effect.succeed(undefined)), Effect.catchTag(\"RecordPathTypeInvalid\", () => Effect.succeed(undefined)));\n}\nfunction decodeRunId(value: string): RunId | undefined {\n const decoded = Schema.decodeUnknownEither(RunIdSchema)(value);\n return Either.isRight(decoded) ? decoded.right : undefined;\n}\nfunction decodeAttemptId(value: string): AttemptId | undefined {\n const decoded = Schema.decodeUnknownEither(AttemptIdSchema)(value);\n return Either.isRight(decoded) ? decoded.right : undefined;\n}\nfunction orderedEntries(entries: readonly RecordDirectoryEntry[]): readonly RecordDirectoryEntry[] {\n return Object.freeze([...entries].sort((left, right) => compareCanonicalIdentity(left.name, right.name)));\n}\nfunction sameRoot(left: RecordRoot, right: RecordRoot): boolean {\n const leftPaths = recordRootPaths(left);\n const rightPaths = recordRootPaths(right);\n return leftPaths !== undefined && rightPaths !== undefined &&\n leftPaths.portableRoot === rightPaths.portableRoot;\n}\nfunction currentFormatInspection(fileSystem: RecordFileSystemService, root: RecordRoot): Effect.Effect<RecordFormatInspection, RecordMaintenanceError> {\n return readRecordFormatForMaintenance(fileSystem, root).pipe(Effect.flatMap(() => Effect.map(planAttachmentMigration({ fileSystem, root }), (attachments): RecordFormatInspection => ({\n state: attachments.targets.length === 0\n ? \"already-current\"\n : \"migration-required\",\n format: RECORD_FORMAT,\n }))), Effect.catchAll((error) => error instanceof RecordFormatUnsupported\n ? Effect.succeed({\n state: \"unsupported-format\" as const,\n format: error.format,\n })\n : Effect.fail(error)));\n}\nfunction isSealedRun(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<boolean, RecordFileSystemError> {\n return fileSystem.isCompleteMarker({ root, runId });\n}\nfunction readRunDocument(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<RunDocument | undefined, RecordFileSystemError> {\n return Effect.map(readJson(fileSystem, runPath(root, runId, \"run.json\")), (json) => {\n if (json === undefined)\n return undefined;\n const decoded = decodeRunDocument(json);\n return Either.isRight(decoded) && decoded.right.runId === runId\n ? decoded.right\n : undefined;\n });\n}\nfunction readAttemptDocument(fileSystem: RecordFileSystemService, root: RecordRoot, ref: RecordAttemptRef): Effect.Effect<AttemptDocument | undefined, RecordFileSystemError> {\n return Effect.map(readJson(fileSystem, runPath(root, ref.originRunId, \"attempts\", ref.attemptId, \"attempt.json\")), (json) => {\n if (json === undefined)\n return undefined;\n const decoded = decodeAttemptDocument(json);\n return Either.isRight(decoded) &&\n decoded.right.attemptId === ref.attemptId &&\n decoded.right.originRunId === ref.originRunId\n ? decoded.right\n : undefined;\n });\n}\nfunction readMemberDocument(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId, slotId: SlotId): Effect.Effect<MemberDocument | undefined, RecordFileSystemError> {\n return Effect.map(readJson(fileSystem, runPath(root, runId, \"members\", `${slotId}.json`)), (json) => {\n if (json === undefined)\n return undefined;\n const decoded = decodeMemberDocument(json);\n return Either.isRight(decoded) && decoded.right.slotId === slotId\n ? decoded.right\n : undefined;\n });\n}\nfunction decodeSlotId(value: string): SlotId | undefined {\n const decoded = Schema.decodeUnknownEither(SlotIdSchema)(value);\n return Either.isRight(decoded) ? decoded.right : undefined;\n}\nfunction readRunMembers(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<readonly MemberDocument[] | undefined, RecordFileSystemError> {\n return Effect.gen(function* () {\n const directory = runPath(root, runId, \"members\");\n if ((yield* fileSystem.pathKind(directory)) !== \"directory\")\n return undefined;\n const entries = orderedEntries(yield* fileSystem.listDirectory({\n directory,\n maximumEntries: MAXIMUM_ATTEMPT_ENTRIES,\n }));\n const members: MemberDocument[] = [];\n for (const entry of entries) {\n if (entry.kind !== \"file\" || !entry.name.endsWith(\".json\"))\n return undefined;\n const slotId = decodeSlotId(entry.name.slice(0, -\".json\".length));\n if (slotId === undefined)\n return undefined;\n const member = yield* readMemberDocument(fileSystem, root, runId, slotId);\n if (member === undefined || members.some((current) => current.slotId === member.slotId)) {\n return undefined;\n }\n members.push(member);\n }\n return Object.freeze(members);\n });\n}\n/**\n * Reads every exact Attempt document owned by a sealed Run. An absent attempts\n * directory is legitimate for an all-reference / terminal Run; every other\n * non-directory shape is a Core failure.\n */\nfunction readRunAttempts(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<readonly AttemptDocument[] | undefined, RecordFileSystemError> {\n return Effect.gen(function* () {\n const directory = runPath(root, runId, \"attempts\");\n const kind = yield* fileSystem.pathKind(directory);\n if (kind === \"missing\")\n return Object.freeze([]);\n if (kind !== \"directory\")\n return undefined;\n const entries = orderedEntries(yield* fileSystem.listDirectory({\n directory,\n maximumEntries: MAXIMUM_ATTEMPT_ENTRIES,\n }));\n const attempts: AttemptDocument[] = [];\n for (const entry of entries) {\n if (entry.kind !== \"directory\")\n return undefined;\n const attemptId = decodeAttemptId(entry.name);\n if (attemptId === undefined)\n return undefined;\n const document = yield* readAttemptDocument(fileSystem, root, {\n originRunId: runId,\n attemptId,\n });\n if (document === undefined)\n return undefined;\n attempts.push(document);\n }\n return Object.freeze(attempts);\n });\n}\ntype SealedCoreSnapshot = {\n readonly state: \"available\";\n readonly byRunId: ReadonlyMap<RunId, RunCore>;\n} | {\n readonly state: \"core-invalid\";\n readonly issues: NonEmptyRecordIssues;\n};\nfunction maintenanceReaderRuntime(root: RecordRoot, record: RecordDocument): ReaderRuntime {\n return {\n root,\n record,\n lifecycle: { closed: false },\n runs: new WeakMap(),\n attempts: new WeakMap(),\n owners: new WeakMap(),\n runsById: new Map(),\n attemptsByKey: new Map(),\n sealedCoreSnapshot: undefined,\n };\n}\n/**\n * The reader deliberately reconstructs the complete published aggregate only\n * at the point where it is about to sign a Run/Attempt as available. This is\n * the same `RecordCoreDefinition` refine used by the writer's seal boundary,\n * so a marker cannot promote a partial Member denominator to availability.\n */\nfunction loadSealedCoreSnapshot(runtime: ReaderRuntime, fileSystem: RecordFileSystemService): Effect.Effect<SealedCoreSnapshot, RecordFileSystemError> {\n return Effect.gen(function* () {\n const entries = orderedEntries(yield* fileSystem.listDirectory({\n directory: recordPath(runtime.root, \"runs\"),\n maximumEntries: MAXIMUM_RUN_ENTRIES,\n }));\n const cores: RunCore[] = [];\n for (const entry of entries) {\n if (entry.kind !== \"directory\")\n continue;\n const runId = decodeRunId(entry.name);\n if (runId === undefined || !(yield* isSealedRun(fileSystem, runtime.root, runId))) {\n continue;\n }\n const run = yield* readRunDocument(fileSystem, runtime.root, runId);\n const members = run === undefined\n ? undefined\n : yield* readRunMembers(fileSystem, runtime.root, runId);\n const attempts = members === undefined\n ? undefined\n : yield* readRunAttempts(fileSystem, runtime.root, runId);\n if (run === undefined || members === undefined || attempts === undefined) {\n return Object.freeze({ state: \"core-invalid\" as const, issues: coreInvalid().issues });\n }\n cores.push(Object.freeze({ run, members, attempts }));\n }\n const ordered = Object.freeze(cores.sort((left, right) => compareCanonicalIdentity(left.run.runId, right.run.runId)));\n const aggregate: RecordCore = Object.freeze({ record: runtime.record, runs: ordered });\n const encoded = encodeRecordCore(aggregate);\n if (Either.isLeft(encoded)) {\n return Object.freeze({ state: \"core-invalid\" as const, issues: encoded.left.issues });\n }\n return Object.freeze({\n state: \"available\" as const,\n byRunId: new Map(ordered.map((core) => [core.run.runId, core] as const)),\n });\n });\n}\n/**\n * A read session holds the Record read lease, so its published Core cannot\n * change underneath it. Share one exact snapshot across selection and all\n * subsequent Run / Attempt reads instead of rebuilding the whole aggregate\n * for every capability lookup.\n */\nfunction readSealedCoreSnapshot(runtime: ReaderRuntime, fileSystem: RecordFileSystemService): Effect.Effect<SealedCoreSnapshot, RecordFileSystemError> {\n return Effect.uninterruptibleMask((restore) => Effect.gen(function* () {\n const fresh = yield* Deferred.make<SealedCoreSnapshot, RecordFileSystemError>();\n const flight = yield* Effect.sync(() => {\n if (runtime.sealedCoreSnapshot !== undefined) {\n return { _tag: \"Follower\" as const, deferred: runtime.sealedCoreSnapshot };\n }\n runtime.sealedCoreSnapshot = fresh;\n return { _tag: \"Leader\" as const, deferred: fresh };\n });\n if (flight._tag === \"Follower\")\n return yield* restore(Deferred.await(flight.deferred));\n const completed = yield* Effect.exit(restore(loadSealedCoreSnapshot(runtime, fileSystem)));\n yield* Deferred.done(flight.deferred, completed);\n return yield* Deferred.await(flight.deferred);\n }));\n}\nfunction makeRunRef(runtime: ReaderRuntime, document: RunDocument): SelectedRunRef {\n const existing = runtime.runsById.get(document.runId);\n if (existing !== undefined)\n return existing;\n const ref: SelectedRunRef = Object.freeze({\n runId: document.runId,\n [selectedRunRefBrand]: () => undefined,\n });\n runtime.runs.set(ref, Object.freeze({\n document,\n root: runtime.root,\n lifecycle: runtime.lifecycle,\n }));\n runtime.runsById.set(document.runId, ref);\n return ref;\n}\nfunction attemptKey(ref: RecordAttemptRef): string {\n return `${ref.originRunId}\\u0000${ref.attemptId}`;\n}\nfunction makeAttemptRef(runtime: ReaderRuntime, input: RecordAttemptRef): SelectedAttemptRef {\n const key = attemptKey(input);\n const existing = runtime.attemptsByKey.get(key);\n if (existing !== undefined)\n return existing;\n const ref: SelectedAttemptRef = Object.freeze({\n originRunId: input.originRunId,\n attemptId: input.attemptId,\n [selectedAttemptRefBrand]: () => undefined,\n });\n const contents = Object.freeze({ root: runtime.root, lifecycle: runtime.lifecycle });\n runtime.attempts.set(ref, contents);\n selectedAttemptCapabilities.set(ref, contents);\n runtime.attemptsByKey.set(key, ref);\n return ref;\n}\nfunction makeOwner(runtime: ReaderRuntime, contents: SelectedOwnerRuntime): SelectedOwnerRef {\n const owner: SelectedOwnerRef = Object.freeze({\n [selectedOwnerRefBrand]: () => undefined,\n });\n runtime.owners.set(owner, Object.freeze(contents));\n return owner;\n}\nfunction assertReaderLive(runtime: ReaderRuntime): Effect.Effect<void, RecordReaderReadError> {\n return runtime.lifecycle.closed ? Effect.fail(readerClosed()) : Effect.void;\n}\nfunction scanSelection(runtime: ReaderRuntime, fileSystem: RecordFileSystemService, request: RecordSelectionRequest | undefined): Effect.Effect<RecordSelection, RecordReaderReadError> {\n return Effect.gen(function* () {\n yield* assertReaderLive(runtime);\n const wanted = request?.runIds === undefined\n ? undefined\n : new Set(request.runIds);\n const snapshot = yield* readSealedCoreSnapshot(runtime, fileSystem);\n const warnings: RecordWarning[] = [];\n const problems: RecordSelectionProblem[] = [];\n const documents: RunDocument[] = [];\n if (snapshot.state === \"core-invalid\") {\n for (const runId of wanted ?? []) {\n problems.push(Object.freeze({ code: \"record-core-invalid\" as const, runId }));\n }\n }\n else if (wanted === undefined) {\n documents.push(...[...snapshot.byRunId.values()].map((core) => core.run));\n }\n else {\n for (const runId of wanted) {\n const core = snapshot.byRunId.get(runId);\n if (core === undefined)\n problems.push(Object.freeze({ code: \"selection-run-missing\" as const, runId }));\n else\n documents.push(core.run);\n }\n }\n const orderedDocuments = documents.sort((left, right) => compareCanonicalIdentity(left.runId, right.runId));\n const runFacts = orderedDocuments.map((document) => Object.freeze({\n run: makeRunRef(runtime, document),\n experimentId: document.experimentId,\n startedAt: document.startedAt,\n completedAt: document.completedAt,\n expectedSlots: Object.freeze([...document.expectedSlots]),\n }));\n const refs = runFacts.map((facts) => facts.run);\n const expectedSlots = runFacts.flatMap((facts) => {\n return facts.expectedSlots.map((slot) => Object.freeze({\n run: facts.run,\n experimentId: facts.experimentId,\n slot,\n }));\n });\n return Object.freeze({\n runRefs: Object.freeze(refs),\n runFacts: Object.freeze(runFacts),\n expectedSlots: Object.freeze(expectedSlots),\n problems: Object.freeze(problems),\n warnings: Object.freeze(warnings),\n });\n });\n}\nfunction readFixedFamily<Family extends NiceEvalFamily, Owner extends RecordAttachmentOwner, Payload>(input: {\n readonly runtime: ReaderRuntime;\n readonly fileSystem: RecordFileSystemService;\n readonly owner: SelectedOwnerRef;\n readonly descriptor: FixedRecordFamilyDescriptor<Family, Owner, Payload>;\n}): Effect.Effect<FixedFamilyRead<Payload>, RecordReaderReadError> {\n return Effect.suspend((): Effect.Effect<FixedFamilyRead<Payload>, RecordReaderReadError> => {\n if (input.runtime.lifecycle.closed)\n return Effect.fail(readerClosed());\n const owner = input.runtime.owners.get(input.owner);\n if (owner === undefined || owner.kind !== input.descriptor.owner) {\n return Effect.fail(handleInvalid());\n }\n if (owner.kind === \"run\") {\n const descriptor = input.descriptor as FixedRecordFamilyDescriptor<Family, \"run\", Payload>;\n return readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.runtime.root,\n location: Object.freeze({ owner: \"run\" as const, runId: owner.runId }),\n descriptor,\n }).pipe(Effect.flatMap((value): Effect.Effect<FixedFamilyRead<Payload>, RecordFileSystemError> => {\n if (value.state !== \"available\") {\n return Effect.succeed(value.state === \"unavailable\"\n ? Object.freeze({ state: \"not-recorded\" as const })\n : value);\n }\n return validateFixedCrossFamilyJoin({\n fileSystem: input.fileSystem,\n root: input.runtime.root,\n runId: owner.runId,\n descriptor: descriptor as FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>,\n payload: value.value,\n }).pipe(Effect.map((join): FixedFamilyRead<Payload> => join.state === \"joined\"\n ? value\n : join.state === \"migration-required\" || join.state === \"unsupported\"\n ? join\n : Object.freeze({ state: \"invalid\" as const, issues: coreInvalid().issues })));\n }));\n }\n const descriptor = input.descriptor as FixedRecordFamilyDescriptor<Family, \"attempt\", Payload>;\n return readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.runtime.root,\n location: Object.freeze({\n owner: \"attempt\" as const,\n runId: owner.ref.originRunId,\n attemptId: owner.ref.attemptId,\n }),\n descriptor,\n }).pipe(Effect.flatMap((value): Effect.Effect<FixedFamilyRead<Payload>, RecordFileSystemError> => {\n if (value.state !== \"available\") {\n return Effect.succeed(value.state === \"unavailable\"\n ? Object.freeze({ state: \"not-recorded\" as const })\n : value);\n }\n return validateFixedCrossFamilyJoin({\n fileSystem: input.fileSystem,\n root: input.runtime.root,\n runId: owner.ref.originRunId,\n attemptId: owner.ref.attemptId,\n descriptor: descriptor as FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>,\n payload: value.value,\n }).pipe(Effect.map((join): FixedFamilyRead<Payload> => join.state === \"joined\"\n ? value\n : join.state === \"migration-required\" || join.state === \"unsupported\"\n ? join\n : Object.freeze({ state: \"invalid\" as const, issues: coreInvalid().issues })));\n }));\n });\n}\nfunction isObservabilityDescriptor(descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>): boolean {\n return descriptor === NiceEvalRecordFamilyCatalog.observability.attempt ||\n descriptor === NiceEvalRecordFamilyCatalog.observability.run;\n}\nfunction isAssertionsDescriptor(descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>): boolean {\n return descriptor === NiceEvalRecordFamilyCatalog.assertions;\n}\nfunction isSourceNavigationDescriptor(descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>): boolean {\n return descriptor === NiceEvalRecordFamilyCatalog.sourceNavigation;\n}\nfunction hasSourceFrames(payload: ObservabilityAttachment): boolean {\n return payload.diagnostics.diagnostics.some((diagnostic) => diagnostic.sourceFrame !== null);\n}\ntype FixedCrossFamilyJoin = {\n readonly state: \"joined\";\n} | {\n readonly state: \"invalid\";\n} | Extract<FixedFamilyRead<unknown>, {\n readonly state: \"migration-required\" | \"unsupported\";\n}>;\nconst joinedCrossFamily = Object.freeze({ state: \"joined\" as const });\nconst invalidCrossFamily = Object.freeze({ state: \"invalid\" as const });\nfunction dependentFamilyJoin(read: FixedRecordAttachmentRead<unknown>): FixedCrossFamilyJoin {\n if (read.state === \"available\")\n return joinedCrossFamily;\n if (read.state === \"migration-required\" || read.state === \"unsupported\")\n return read;\n return invalidCrossFamily;\n}\n/** Common cross-family closure boundary used by both reader and writer seal. */\nfunction validateObservabilitySourceFrameJoin(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly runId: RunId;\n readonly payload: ObservabilityAttachment;\n}): Effect.Effect<FixedCrossFamilyJoin, RecordFileSystemError> {\n return Effect.gen(function* () {\n if (!hasSourceFrames(input.payload))\n return joinedCrossFamily;\n const sources = yield* readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.root,\n location: Object.freeze({ owner: \"run\" as const, runId: input.runId }),\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n });\n if (sources.state !== \"available\")\n return dependentFamilyJoin(sources);\n return observabilitySourceFrameIntegrityIssues(input.payload, sources.value as SourcesAttachment).length === 0 ? joinedCrossFamily : invalidCrossFamily;\n });\n}\nfunction hasMappedNavigationRows(payload: SourceNavigationAttachment): boolean {\n return payload.rows.some((row) => row.source.state === \"mapped\");\n}\n/**\n * The fixed catalog's only cross-family boundary. All joins use explicit\n * durable IDs and digests; absent siblings fail closed instead of falling\n * back to path lookup or array order.\n */\nfunction validateFixedCrossFamilyJoin(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly runId: RunId;\n readonly attemptId?: AttemptId;\n readonly descriptor: FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>;\n readonly payload: unknown;\n}): Effect.Effect<FixedCrossFamilyJoin, RecordFileSystemError> {\n if (isObservabilityDescriptor(input.descriptor)) {\n return validateObservabilitySourceFrameJoin({\n fileSystem: input.fileSystem,\n root: input.root,\n runId: input.runId,\n payload: input.payload as ObservabilityAttachment,\n });\n }\n if (isAssertionsDescriptor(input.descriptor)) {\n const payload = input.payload as AssertionsAttachment;\n if (payload.sourceSites.length === 0)\n return Effect.succeed(joinedCrossFamily);\n return Effect.gen(function* () {\n const sources = yield* readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.root,\n location: Object.freeze({ owner: \"run\" as const, runId: input.runId }),\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n });\n if (sources.state !== \"available\")\n return dependentFamilyJoin(sources);\n return assertionsSourceSiteIntegrityIssues(payload, sources.value as SourcesAttachment).length === 0\n ? joinedCrossFamily\n : invalidCrossFamily;\n });\n }\n if (isSourceNavigationDescriptor(input.descriptor)) {\n const payload = input.payload as SourceNavigationAttachment;\n if (input.attemptId === undefined)\n return Effect.succeed(invalidCrossFamily);\n return Effect.gen(function* () {\n const observability = yield* readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.root,\n location: Object.freeze({\n owner: \"attempt\" as const,\n runId: input.runId,\n attemptId: input.attemptId!,\n }),\n descriptor: NiceEvalRecordFamilyCatalog.observability.attempt,\n });\n if (observability.state !== \"available\")\n return dependentFamilyJoin(observability);\n const sources = hasMappedNavigationRows(payload)\n ? yield* readFixedRecordAttachment({\n fileSystem: input.fileSystem,\n root: input.root,\n location: Object.freeze({ owner: \"run\" as const, runId: input.runId }),\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n })\n : undefined;\n if (sources !== undefined) {\n if (sources.state !== \"available\")\n return dependentFamilyJoin(sources);\n }\n return sourceNavigationIntegrityIssues({\n payload,\n observability: observability.value as AttemptObservabilityAttachment,\n sources: sources?.state === \"available\" ? sources.value as SourcesAttachment : undefined,\n }).length === 0 ? joinedCrossFamily : invalidCrossFamily;\n });\n }\n return Effect.succeed(joinedCrossFamily);\n}\nfunction makeReadSession(runtime: ReaderRuntime, fileSystem: RecordFileSystemService): RecordReadSession {\n const session: RecordReadSession = Object.freeze({\n selectRuns: (request?: RecordSelectionRequest) => scanSelection(runtime, fileSystem, request),\n readRun: (ref: SelectedRunRef): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> => Effect.suspend((): Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError> => {\n const contents = runtime.runs.get(ref);\n if (runtime.lifecycle.closed)\n return Effect.fail(readerClosed());\n if (contents === undefined)\n return Effect.fail(handleInvalid());\n return Effect.map(readSealedCoreSnapshot(runtime, fileSystem), (snapshot) => {\n const core = snapshot.state === \"available\" ? snapshot.byRunId.get(ref.runId) : undefined;\n if (core === undefined) {\n return Object.freeze({\n state: \"core-invalid\" as const,\n issues: snapshot.state === \"core-invalid\" ? snapshot.issues : coreInvalid().issues,\n });\n }\n return Object.freeze({\n state: \"available\" as const,\n value: Object.freeze({\n ref,\n owner: makeOwner(runtime, Object.freeze({ kind: \"run\" as const, runId: ref.runId })),\n document: core.run,\n members: Object.freeze(core.members.map((document) => Object.freeze({\n document,\n attempt: document.attempt === null ? null : makeAttemptRef(runtime, document.attempt),\n }))),\n }),\n });\n });\n }),\n readAttempt: (ref: SelectedAttemptRef): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> => Effect.suspend((): Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError> => {\n const contents = runtime.attempts.get(ref);\n if (runtime.lifecycle.closed)\n return Effect.fail(readerClosed());\n if (contents === undefined)\n return Effect.fail(handleInvalid());\n const exact: RecordAttemptRef = {\n originRunId: ref.originRunId,\n attemptId: ref.attemptId,\n };\n return Effect.gen(function* () {\n if (!(yield* isSealedRun(fileSystem, contents.root, exact.originRunId))) {\n return Object.freeze({ state: \"missing\" as const }) satisfies RecordCoreRead<ReadableAttempt>;\n }\n const snapshot = yield* readSealedCoreSnapshot(runtime, fileSystem);\n const core = snapshot.state === \"available\"\n ? snapshot.byRunId.get(exact.originRunId)\n : undefined;\n if (core === undefined) {\n return Object.freeze({\n state: \"core-invalid\" as const,\n issues: snapshot.state === \"core-invalid\" ? snapshot.issues : coreInvalid().issues,\n }) satisfies RecordCoreRead<ReadableAttempt>;\n }\n const originRun = core.run;\n const document = core.attempts.find((attempt) => attempt.attemptId === exact.attemptId);\n if (document === undefined) {\n return Object.freeze({ state: \"core-invalid\" as const, issues: coreInvalid().issues }) satisfies RecordCoreRead<ReadableAttempt>;\n }\n const expected = originRun.expectedSlots.find((slot) => slot.slotId === document.slotId);\n if (expected === undefined\n || expected.evalId !== document.evalId\n || expected.executionIdentityDigest !== document.executionIdentityDigest) {\n return Object.freeze({ state: \"core-invalid\" as const, issues: coreInvalid().issues }) satisfies RecordCoreRead<ReadableAttempt>;\n }\n return Object.freeze({\n state: \"available\" as const,\n value: Object.freeze({\n ref,\n owner: makeOwner(runtime, Object.freeze({ kind: \"attempt\" as const, ref: exact })),\n document,\n origin: Object.freeze({\n owner: makeOwner(runtime, Object.freeze({\n kind: \"run\" as const,\n runId: originRun.runId,\n })),\n runId: originRun.runId,\n experimentId: originRun.experimentId,\n startedAt: originRun.startedAt,\n context: originRun.context,\n }),\n }),\n }) satisfies RecordCoreRead<ReadableAttempt>;\n });\n }),\n readAssertions: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.assertions,\n }),\n readAttemptObservability: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.observability.attempt,\n }),\n readFileChanges: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.fileChanges,\n }),\n readSourceNavigation: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.sourceNavigation,\n }),\n readAttemptArtifacts: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.attempt,\n }),\n readSources: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n }),\n readRunObservability: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.observability.run,\n }),\n readRunArtifacts: (owner: SelectedOwnerRef) => readFixedFamily({\n runtime,\n fileSystem,\n owner,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.run,\n }),\n });\n return session;\n}\nfunction mintRecordDocument(entropy: RecordEntropyService): Effect.Effect<RecordDocument, RecordCoreInvalid> {\n const format = Schema.decodeUnknownEither(RecordFormatSchema, RecordExactParseOptions)(RECORD_FORMAT);\n if (Either.isLeft(format))\n return Effect.fail(coreInvalid());\n return Effect.flatMap(entropy.uuid, (raw) => {\n const id = Schema.decodeUnknownEither(RecordIdSchema, RecordExactParseOptions)(raw);\n return Either.isLeft(id)\n ? Effect.fail(coreInvalid())\n : Effect.succeed(Object.freeze({\n format: format.right,\n recordId: id.right,\n }));\n });\n}\nfunction createDirectoryIfMissing(fileSystem: RecordFileSystemService, path: ReturnType<typeof recordPortablePath>): Effect.Effect<void, RecordFileSystemError> {\n return fileSystem.createDirectory(path).pipe(Effect.catchAll((error) => error instanceof RecordPathAlreadyExists ? Effect.void : Effect.fail(error)));\n}\nfunction initializeRecord(input: {\n readonly root: RecordRoot;\n readonly fileSystem: RecordFileSystemService;\n readonly entropy: RecordEntropyService;\n}): Effect.Effect<void, RecordFileSystemError | RecordBootstrapInvalid | RecordCoreInvalid> {\n return Effect.gen(function* () {\n const documentPath = recordPath(input.root, \"record.json\");\n if ((yield* input.fileSystem.pathKind(documentPath)) !== \"missing\")\n return;\n yield* input.fileSystem.ensureDirectory(recordPath(input.root));\n yield* createDirectoryIfMissing(input.fileSystem, recordPath(input.root, \"runs\"));\n // If another append writer won the bootstrap race, do not inspect or alter\n // its durable identity. Re-read the election file and let exact format\n // validation decide the next step.\n if ((yield* input.fileSystem.pathKind(documentPath)) !== \"missing\")\n return;\n const entries = yield* input.fileSystem.listDirectory({\n directory: recordPath(input.root),\n maximumEntries: 2,\n });\n if (entries.some((entry) => entry.name !== \"runs\" || entry.kind !== \"directory\")) {\n if ((yield* input.fileSystem.pathKind(documentPath)) !== \"missing\")\n return;\n return yield* Effect.fail(bootstrapInvalid());\n }\n const document = yield* mintRecordDocument(input.entropy);\n const encoded = encodeRecordDocument(document);\n if (Either.isLeft(encoded))\n return yield* Effect.fail(coreInvalidFromCodec(encoded.left));\n yield* input.fileSystem.writeFile({\n file: documentPath,\n bytes: jsonBytes(encoded.right),\n maximumBytes: RECORD_FORMAT_DOCUMENT_MAXIMUM_BYTES,\n mode: \"exclusive\",\n }).pipe(Effect.catchAll((error) => error instanceof RecordPathAlreadyExists ? Effect.void : Effect.fail(error)));\n yield* input.fileSystem.syncDirectory(recordPath(input.root));\n });\n}\nfunction openCurrentRead(input: {\n readonly root: RecordRoot;\n}): Effect.Effect<RecordReadSession, RecordReaderOpenError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordCoordination> {\n return Effect.gen(function* () {\n const coordination = yield* RecordCoordination;\n const fileSystem = yield* RecordFileSystem;\n yield* coordination.enterRecordRead(input.root);\n if (yield* fileSystem.migrationSentinelPresent(input.root)) {\n return yield* Effect.fail(migrationInterrupted());\n }\n const current = yield* readCurrentRecordFormat(fileSystem, input.root);\n const lifecycle: ReaderLifecycle = { closed: false };\n const runtime: ReaderRuntime = {\n root: input.root,\n record: current.document,\n lifecycle,\n runs: new WeakMap(),\n attempts: new WeakMap(),\n owners: new WeakMap(),\n runsById: new Map(),\n attemptsByKey: new Map(),\n sealedCoreSnapshot: undefined,\n };\n const snapshot = yield* readSealedCoreSnapshot(runtime, fileSystem);\n if (snapshot.state === \"core-invalid\")\n return yield* Effect.fail(bootstrapInvalid());\n yield* ensureOrdinaryCurrentAttachments({\n fileSystem,\n root: input.root,\n runIds: new Set(snapshot.byRunId.keys()),\n });\n yield* coordination.verifyRecordIdentity({ root: input.root, recordId: current.document.recordId });\n yield* Effect.addFinalizer(() => Effect.sync(() => { lifecycle.closed = true; }));\n return makeReadSession(runtime, fileSystem);\n });\n}\nfunction mintRunId(entropy: RecordEntropyService): Effect.Effect<RunId, RecordCoreInvalid> {\n return Effect.flatMap(entropy.uuid, (raw) => {\n const decoded = Schema.decodeUnknownEither(RunIdSchema, RecordExactParseOptions)(raw);\n return Either.isLeft(decoded) ? Effect.fail(coreInvalid()) : Effect.succeed(decoded.right);\n });\n}\nfunction mintAttemptId(entropy: RecordEntropyService): Effect.Effect<AttemptId, RecordCoreInvalid> {\n return Effect.flatMap(entropy.uuid, (raw) => {\n const decoded = Schema.decodeUnknownEither(AttemptIdSchema, RecordExactParseOptions)(raw);\n return Either.isLeft(decoded) ? Effect.fail(coreInvalid()) : Effect.succeed(decoded.right);\n });\n}\nfunction createFreshRunDirectory(root: RecordRoot, fileSystem: RecordFileSystemService, entropy: RecordEntropyService, remaining = ENTROPY_RETRY_LIMIT): Effect.Effect<RunId, RecordWriteError> {\n return Effect.flatMap(mintRunId(entropy), (runId) => fileSystem.createRunDirectory({ root, runId }).pipe(Effect.as(runId), Effect.catchAll((error) => error instanceof RecordPathAlreadyExists && remaining > 0\n ? createFreshRunDirectory(root, fileSystem, entropy, remaining - 1)\n : Effect.fail(error))));\n}\nfunction assertRunLive(run: RunRuntime): Effect.Effect<void, ReturnType<typeof recordWriterClosed>> {\n return run.closed ? Effect.fail(recordWriterClosed()) : Effect.void;\n}\n/**\n * `CreateRunRequest` is public-facing TypeScript but may still receive forged\n * JavaScript values. Normalize every Slot through the exact definition before\n * allocating a Run directory so both normal and reference Runs freeze the\n * same denominator facts.\n */\nfunction canonicalizeExpectedSlots(input: readonly RecordSlotIdentity[]): Either.Either<readonly RecordSlotIdentity[], NonEmptyRecordIssues> {\n const slots: RecordSlotIdentity[] = [];\n for (const [index, slot] of input.entries()) {\n const encoded = RecordSlotIdentityDefinition.encode(slot);\n if (Either.isLeft(encoded)) {\n const issues = nonEmptyRecordIssues([\n recordIssue(\"record-schema-invalid\", [\"expectedSlots\", String(index)]),\n ]);\n if (issues === undefined)\n throw new Error(\"Expected Slot codec failure must have an issue\");\n return Either.left(issues);\n }\n const decoded = RecordSlotIdentityDefinition.decode(encoded.right);\n if (Either.isLeft(decoded)) {\n const issues = nonEmptyRecordIssues([\n recordIssue(\"record-schema-invalid\", [\"expectedSlots\", String(index)]),\n ]);\n if (issues === undefined)\n throw new Error(\"Expected Slot codec failure must have an issue\");\n return Either.left(issues);\n }\n slots.push(decoded.right);\n }\n const issues = nonEmptyRecordIssues(validateExpectedSlots(slots));\n return issues === undefined\n ? Either.right(Object.freeze(slots))\n : Either.left(issues);\n}\nfunction createFreshAttemptDirectory(run: RunRuntime, remaining = ENTROPY_RETRY_LIMIT): Effect.Effect<AttemptId, RecordWriteError> {\n return Effect.flatMap(mintAttemptId(run.entropy), (attemptId) => run.fileSystem.ensureDirectory(runPath(run.root, run.runId, \"attempts\")).pipe(Effect.zipRight(run.fileSystem.createDirectory(runPath(run.root, run.runId, \"attempts\", attemptId))), Effect.as(attemptId), Effect.catchAll((error) => error instanceof RecordPathAlreadyExists && remaining > 0\n ? createFreshAttemptDirectory(run, remaining - 1)\n : Effect.fail(error))));\n}\nfunction beginRunMutation(run: RunRuntime, input: {\n readonly operation: \"create-attempt\" | \"reference\" | \"record\";\n readonly slotId?: SlotId;\n readonly reservation?: \"attempt\" | \"reference\" | \"terminal\";\n}): Effect.Effect<Deferred.Deferred<void>, RecordWriteError> {\n return run.mutex.withPermits(1)(Effect.gen(function* () {\n yield* assertRunLive(run);\n if (run.state !== \"open\") {\n return yield* Effect.fail(stateError(input.operation, run.state));\n }\n if (input.slotId !== undefined) {\n if (!run.expectedBySlot.has(input.slotId) || run.slotReservations.has(input.slotId)) {\n return yield* Effect.fail(coreInvalid());\n }\n run.slotReservations.set(input.slotId, input.reservation!);\n }\n const mutation = yield* Deferred.make<void>();\n run.inFlightMutations.add(mutation);\n return mutation;\n }));\n}\nfunction finishRunMutation(run: RunRuntime, mutation: Deferred.Deferred<void>, exit: Exit.Exit<unknown, unknown>): Effect.Effect<void> {\n return run.mutex.withPermits(1)(Effect.sync(() => {\n run.inFlightMutations.delete(mutation);\n if (!Exit.isSuccess(exit) && !run.markerCreated) {\n run.state = \"failed\";\n consumeRunCapabilities(run);\n }\n })).pipe(Effect.zipRight(Deferred.succeed(mutation, undefined).pipe(Effect.asVoid)));\n}\n/**\n * Publication consumes every writer capability for the Run, including child\n * Attempt capabilities. Durable visibility is still the complete marker; the\n * in-memory handles must never remain usable after that point.\n */\nfunction consumeRunCapabilities(run: RunRuntime): void {\n run.closed = true;\n if (run.handle !== undefined) {\n runSessions.delete(run.handle);\n run.handle = undefined;\n }\n for (const attempt of run.attempts.values()) {\n consumeAttemptCapability(attempt);\n }\n}\n/** Remove the exact-object authority before a completed/failed Attempt escapes. */\nfunction consumeAttemptCapability(attempt: AttemptRuntime): void {\n if (attempt.handle !== undefined) {\n attemptSessions.delete(attempt.handle);\n attempt.handle = undefined;\n }\n}\nfunction fixedFamilyWriteInvalid() {\n return recordAttachmentClosureInvalid([\n recordAttachmentIssue(\"record-attachment-schema-id-mismatch\", [\"family\"]),\n ]);\n}\nfunction attachmentEncodeFailure(error: RecordAttachmentPayloadInvalid) {\n return recordAttachmentEncodeError(error);\n}\nfunction nextBlobKey(entropy: RecordEntropyService, forbidden: ReadonlySet<string>, remaining = ENTROPY_RETRY_LIMIT): Effect.Effect<string, RecordCoreInvalid> {\n return Effect.flatMap(entropy.uuid, (candidate) => {\n if (isPortableSegment(candidate) && !forbidden.has(candidate)) {\n return Effect.succeed(candidate);\n }\n return remaining > 0\n ? nextBlobKey(entropy, forbidden, remaining - 1)\n : Effect.fail(coreInvalid());\n });\n}\nfunction allocateBlobKeys(input: {\n readonly entropy: RecordEntropyService;\n readonly payload: RecordAttachmentJson;\n readonly blobs: readonly {\n readonly ref: RecordBlobRef;\n readonly stream: unknown;\n }[];\n}): Effect.Effect<ReadonlyMap<object, string>, RecordCoreInvalid> {\n return Effect.gen(function* () {\n const forbidden = new Set(attachmentPayloadStrings(input.payload));\n const keys = new Map<object, string>();\n for (const blob of input.blobs) {\n const key = yield* nextBlobKey(input.entropy, forbidden);\n forbidden.add(key);\n keys.set(blob.ref, key);\n }\n return keys;\n });\n}\nfunction reserveFixedAttachment(input: {\n readonly run: RunRuntime;\n readonly target: RunRuntime | AttemptRuntime;\n readonly attachment: FixedAttachmentRuntime;\n}): Effect.Effect<void, RecordWriteError> {\n return input.run.mutex.withPermits(1)(Effect.suspend(() => {\n if (input.run.state !== \"open\") {\n return Effect.fail(stateError(\"record\", input.run.state));\n }\n if (input.target.attachments.has(input.attachment.name) ||\n consumedFixedFamilyWrites.has(input.attachment.write)) {\n return Effect.fail(stateError(\"record\", input.run.state));\n }\n input.target.attachments.set(input.attachment.name, input.attachment);\n consumedFixedFamilyWrites.set(input.attachment.write, input.target);\n return Effect.void;\n }));\n}\nfunction assertAttemptCollecting(attempt: AttemptRuntime): Effect.Effect<void, RecordWriteError> {\n return attempt.mutex.withPermits(1)(Effect.suspend(() => attempt.state === \"open\"\n ? Effect.void\n : Effect.fail(stateError(\"record\", attempt.draft.state))));\n}\nfunction writeFixedAttachment<Family extends NiceEvalFamily, Owner extends RecordAttachmentOwner, Payload, E, R>(input: {\n readonly run: RunRuntime;\n readonly target: RunRuntime | AttemptRuntime;\n readonly owner: Owner;\n readonly base: ReturnType<typeof recordPortablePath>;\n readonly descriptor: FixedRecordFamilyDescriptor<Family, Owner, Payload>;\n readonly write: RecordAttachmentWrite<Owner, E, R>;\n}): Effect.Effect<void, RecordWriteError | E, R> {\n return Effect.flatMap(beginRunMutation(input.run, { operation: \"record\" }), (mutation) => Effect.gen(function* () {\n if (input.target !== input.run) {\n yield* assertAttemptCollecting(input.target as AttemptRuntime);\n }\n const captured = recordAttachmentWriteContents(input.write);\n if (Either.isLeft(captured))\n return yield* Effect.fail(captured.left);\n if (!sameFixedAttachmentWrite(captured.right.fixed, input.descriptor)) {\n return yield* Effect.fail(fixedFamilyWriteInvalid());\n }\n const encodedPayload = input.descriptor.write.encodePayload(captured.right.payload as Payload);\n if (Either.isLeft(encodedPayload)) {\n return yield* Effect.fail(attachmentEncodeFailure(encodedPayload.left));\n }\n const attachment: FixedAttachmentRuntime = Object.freeze({\n owner: input.owner,\n name: input.descriptor.family,\n base: input.base,\n descriptor: input.descriptor as unknown as FixedAttachmentRuntime[\"descriptor\"],\n write: input.write as unknown as RecordAttachmentWrite<RecordAttachmentOwner, unknown, unknown>,\n blobCount: captured.right.blobs.length,\n attemptId: input.target === input.run\n ? undefined\n : (input.target as AttemptRuntime).attemptId,\n });\n yield* reserveFixedAttachment({ run: input.run, target: input.target, attachment });\n const blobKeys = yield* allocateBlobKeys({\n entropy: input.run.entropy,\n payload: encodedPayload.right,\n blobs: captured.right.blobs,\n });\n const storedPayload = encodeAttachmentPayloadForStorage({\n payload: encodedPayload.right,\n blobKeys,\n });\n if (Either.isLeft(storedPayload)) {\n return yield* Effect.fail(attachmentEncodeFailure(storedPayload.left));\n }\n const encodedEnvelope = encodeFixedRecordAttachmentEnvelope({\n family: input.descriptor.family,\n schemaVersion: input.descriptor.schemaVersion,\n });\n if (Either.isLeft(encodedEnvelope)) {\n return yield* Effect.fail(fixedFamilyWriteInvalid());\n }\n const attachmentRoot = recordPortablePath(input.base.root, ...input.base.segments, input.descriptor.family);\n yield* input.run.fileSystem.ensureDirectory(input.base);\n yield* input.run.fileSystem.createDirectory(attachmentRoot);\n yield* input.run.fileSystem.writeFile({\n file: recordPortablePath(input.base.root, ...attachmentRoot.segments, \"attachment.json\"),\n bytes: jsonBytes(encodedEnvelope.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* input.run.fileSystem.writeFile({\n file: recordPortablePath(input.base.root, ...attachmentRoot.segments, \"payload.json\"),\n bytes: encodeRecordAttachmentJsonBytes(storedPayload.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* Effect.forEach(captured.right.blobs, (blob) => {\n const key = blobKeys.get(blob.ref);\n if (key === undefined) {\n throw new Error(\"Record fixed Attachment lost its writer-assigned blob key\");\n }\n return input.run.fileSystem.writeFileStream({\n file: recordPortablePath(input.base.root, ...attachmentRoot.segments, \"blobs\", key),\n stream: blob.stream,\n maximumBytes: Math.min(MAXIMUM_ATTACHMENT_BLOB_BYTES, input.descriptor.write.budget.maximumBlobBytes),\n mode: \"exclusive\",\n });\n }, { discard: true });\n }).pipe(Effect.onExit((exit) => finishRunMutation(input.run, mutation, exit))));\n}\nfunction validateAndSyncFixedAttachment(run: RunRuntime, attachment: FixedAttachmentRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n const captured = recordAttachmentWriteContents(attachment.write);\n if (Either.isLeft(captured) ||\n !sameFixedAttachmentWrite(captured.right.fixed, attachment.descriptor) ||\n captured.right.blobs.length !== attachment.blobCount) {\n return yield* Effect.fail(Either.isLeft(captured) ? captured.left : fixedFamilyWriteInvalid());\n }\n const encodedPayload = attachment.descriptor.write.encodePayload(captured.right.payload);\n if (Either.isLeft(encodedPayload)) {\n return yield* Effect.fail(attachmentEncodeFailure(encodedPayload.left));\n }\n const root = recordPortablePath(attachment.base.root, ...attachment.base.segments, attachment.name);\n const blobs = recordPortablePath(attachment.base.root, ...root.segments, \"blobs\");\n if ((yield* run.fileSystem.pathKind(blobs)) === \"directory\") {\n yield* run.fileSystem.syncDirectory(blobs);\n }\n yield* run.fileSystem.syncDirectory(root);\n yield* run.fileSystem.syncDirectory(attachment.base);\n const materialized = yield* readFixedRecordAttachment({\n fileSystem: run.fileSystem,\n root: run.root,\n location: attachment.owner === \"run\"\n ? Object.freeze({ owner: \"run\" as const, runId: run.runId })\n : Object.freeze({\n owner: \"attempt\" as const,\n runId: run.runId,\n attemptId: attachment.attemptId!,\n }),\n descriptor: attachment.descriptor,\n });\n if (materialized.state !== \"available\") {\n return yield* Effect.fail(fixedFamilyWriteInvalid());\n }\n if (!(yield* validateFixedCrossFamilyJoin({\n fileSystem: run.fileSystem,\n root: run.root,\n runId: run.runId,\n ...(attachment.owner === \"attempt\" ? { attemptId: attachment.attemptId } : {}),\n descriptor: attachment.descriptor,\n payload: materialized.value,\n }))) {\n return yield* Effect.fail(fixedFamilyWriteInvalid());\n }\n });\n}\nfunction validateAndSyncFixedAttachments(run: RunRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n yield* Effect.forEach(run.attachments.values(), (attachment) => validateAndSyncFixedAttachment(run, attachment), { discard: true });\n for (const attempt of run.attempts.values()) {\n yield* Effect.forEach(attempt.attachments.values(), (attachment) => validateAndSyncFixedAttachment(run, attachment), { discard: true });\n const attemptDirectory = runPath(run.root, run.runId, \"attempts\", attempt.attemptId);\n if ((yield* run.fileSystem.pathKind(attemptDirectory)) === \"directory\") {\n yield* run.fileSystem.syncDirectory(attemptDirectory);\n }\n }\n const members = runPath(run.root, run.runId, \"members\");\n if ((yield* run.fileSystem.pathKind(members)) === \"directory\") {\n yield* run.fileSystem.syncDirectory(members);\n }\n const attempts = runPath(run.root, run.runId, \"attempts\");\n if ((yield* run.fileSystem.pathKind(attempts)) === \"directory\") {\n yield* run.fileSystem.syncDirectory(attempts);\n }\n });\n}\nfunction writeRunFamily<Family extends NiceEvalFamily, Payload, E, R>(input: {\n readonly run: RunRuntime;\n readonly descriptor: FixedRecordFamilyDescriptor<Family, \"run\", Payload>;\n readonly value: RecordAttachmentWrite<\"run\", E, R>;\n}): Effect.Effect<void, RecordWriteError | E, R> {\n return writeFixedAttachment({\n run: input.run,\n target: input.run,\n owner: \"run\",\n base: runPath(input.run.root, input.run.runId, \"attachments\"),\n descriptor: input.descriptor,\n write: input.value,\n });\n}\nfunction writeAttemptFamily<Family extends NiceEvalFamily, Payload, E, R>(input: {\n readonly attempt: AttemptRuntime;\n readonly descriptor: FixedRecordFamilyDescriptor<Family, \"attempt\", Payload>;\n readonly value: RecordAttachmentWrite<\"attempt\", E, R>;\n}): Effect.Effect<void, RecordWriteError | E, R> {\n return writeFixedAttachment({\n run: input.attempt.draft,\n target: input.attempt,\n owner: \"attempt\",\n base: runPath(input.attempt.draft.root, input.attempt.draft.runId, \"attempts\", input.attempt.attemptId, \"attachments\"),\n descriptor: input.descriptor,\n write: input.value,\n });\n}\nfunction completeAttempt(attempt: AttemptRuntime, outcome: AttemptDocument[\"outcome\"]): Effect.Effect<void, RecordWriteError> {\n return Effect.flatMap(beginRunMutation(attempt.draft, { operation: \"record\" }), (mutation) => Effect.gen(function* () {\n yield* attempt.mutex.withPermits(1)(Effect.gen(function* () {\n yield* assertRunLive(attempt.draft);\n if (attempt.state !== \"open\") {\n return yield* Effect.fail(stateError(\"record\", attempt.draft.state));\n }\n attempt.state = \"completing\";\n }));\n const slot = attempt.draft.expectedBySlot.get(attempt.slotId);\n if (slot === undefined)\n return yield* Effect.fail(coreInvalid());\n const document: AttemptDocument = {\n attemptId: attempt.attemptId,\n originRunId: attempt.draft.runId,\n slotId: attempt.slotId,\n evalId: slot.evalId,\n executionIdentityDigest: slot.executionIdentityDigest,\n outcome,\n };\n const member: MemberDocument = {\n slotId: attempt.slotId,\n action: \"executed\",\n attempt: { originRunId: attempt.draft.runId, attemptId: attempt.attemptId },\n };\n const encodedAttempt = encodeAttemptDocument(document);\n const encodedMember = encodeMemberDocument(member);\n if (Either.isLeft(encodedAttempt) || Either.isLeft(encodedMember)) {\n return yield* Effect.fail(coreInvalid());\n }\n yield* attempt.draft.fileSystem.writeFile({\n file: runPath(attempt.draft.root, attempt.draft.runId, \"attempts\", attempt.attemptId, \"attempt.json\"),\n bytes: jsonBytes(encodedAttempt.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* attempt.draft.fileSystem.writeFile({\n file: runPath(attempt.draft.root, attempt.draft.runId, \"members\", `${attempt.slotId}.json`),\n bytes: jsonBytes(encodedMember.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* attempt.mutex.withPermits(1)(attempt.draft.mutex.withPermits(1)(Effect.sync(() => {\n attempt.state = \"completed\";\n attempt.document = document;\n attempt.draft.membership.set(attempt.slotId, { document: member });\n })));\n yield* Deferred.succeed(attempt.settled, undefined).pipe(Effect.asVoid);\n }).pipe(Effect.onExit((exit) => attempt.mutex.withPermits(1)(Effect.sync(() => {\n if (!Exit.isSuccess(exit) && attempt.state === \"completing\") {\n attempt.state = \"failed\";\n }\n })).pipe(Effect.zipRight(Deferred.succeed(attempt.settled, undefined).pipe(Effect.asVoid)), Effect.zipRight(finishRunMutation(attempt.draft, mutation, exit)))))).pipe(\n // Complete is terminal even when its durable write fails or is interrupted.\n // A leaked session must then fail at the capability boundary, not re-enter\n // the draft state machine.\n Effect.onExit(() => Effect.sync(() => consumeAttemptCapability(attempt))));\n}\nfunction makeAttemptSession(attempt: AttemptRuntime): AttemptWriteSession {\n const session: AttemptWriteSession = Object.freeze({\n attemptId: attempt.attemptId,\n slotId: attempt.slotId,\n [attemptWriteSessionBrand]: () => undefined,\n complete(outcome: AttemptDocument[\"outcome\"]) {\n return attemptSessions.get(this) === attempt\n ? completeAttempt(attempt, outcome)\n : Effect.fail(recordWriterClosed());\n },\n writeAssertions<E, R>(value: AssertionsWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.assertions,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeAttemptObservability<E, R>(value: AttemptObservabilityWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.observability.attempt,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeFileChanges<E, R>(value: FileChangesWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.fileChanges,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeSourceNavigation<E, R>(value: SourceNavigationWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.sourceNavigation,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeAttemptArtifacts<E, R>(value: AttemptArtifactsWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return attemptSessions.get(this) === attempt\n ? writeAttemptFamily({\n attempt,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.attempt,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n });\n attempt.handle = session;\n attemptSessions.set(session, attempt);\n return session;\n}\nfunction createAttempt(run: RunRuntime, input: {\n readonly slotId: SlotId;\n}): Effect.Effect<AttemptWriteSession, RecordWriteError> {\n return Effect.flatMap(beginRunMutation(run, {\n operation: \"create-attempt\",\n slotId: input.slotId,\n reservation: \"attempt\",\n }), (mutation) => Effect.gen(function* () {\n const attemptId = yield* createFreshAttemptDirectory(run);\n const mutex = yield* Effect.makeSemaphore(1);\n const settled = yield* Deferred.make<void>();\n const attempt: AttemptRuntime = {\n draft: run,\n attemptId,\n slotId: input.slotId,\n mutex,\n settled,\n state: \"open\",\n document: undefined,\n attachments: new Map(),\n handle: undefined,\n };\n yield* run.mutex.withPermits(1)(Effect.sync(() => {\n run.attempts.set(attemptId, attempt);\n }));\n return makeAttemptSession(attempt);\n }).pipe(Effect.onExit((exit) => finishRunMutation(run, mutation, exit))));\n}\nfunction assertSelectedReference(root: RecordRoot, ref: SelectedAttemptRef): Effect.Effect<void, RecordReferenceInvalid> {\n const selected = selectedAttemptCapabilities.get(ref);\n return selected === undefined || selected.lifecycle.closed || !sameRoot(selected.root, root)\n ? Effect.fail(referenceInvalid())\n : Effect.void;\n}\nfunction referenceAttempt(run: RunRuntime, input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n}): Effect.Effect<void, RecordWriteError> {\n return Effect.flatMap(assertSelectedReference(run.root, input.attempt), () => Effect.flatMap(beginRunMutation(run, {\n operation: \"reference\",\n slotId: input.slotId,\n reservation: \"reference\",\n }), (mutation) => Effect.gen(function* () {\n const member: MemberDocument = {\n slotId: input.slotId,\n action: input.action,\n attempt: {\n originRunId: input.attempt.originRunId,\n attemptId: input.attempt.attemptId,\n },\n };\n yield* validateReference(run, { document: member });\n const encoded = encodeMemberDocument(member);\n if (Either.isLeft(encoded))\n return yield* Effect.fail(coreInvalidFromCodec(encoded.left));\n yield* run.fileSystem.ensureDirectory(runPath(run.root, run.runId, \"members\"));\n yield* run.fileSystem.writeFile({\n file: runPath(run.root, run.runId, \"members\", `${input.slotId}.json`),\n bytes: jsonBytes(encoded.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* run.mutex.withPermits(1)(Effect.sync(() => {\n run.membership.set(input.slotId, { document: member });\n }));\n }).pipe(Effect.onExit((exit) => finishRunMutation(run, mutation, exit)))));\n}\nfunction recordTerminalMember(run: RunRuntime, input: {\n readonly slotId: SlotId;\n readonly action: \"not-dispatched\" | \"interrupted\";\n}): Effect.Effect<void, RecordWriteError> {\n return Effect.flatMap(beginRunMutation(run, {\n operation: \"record\",\n slotId: input.slotId,\n reservation: \"terminal\",\n }), (mutation) => Effect.gen(function* () {\n const member: MemberDocument = {\n slotId: input.slotId,\n action: input.action,\n attempt: null,\n };\n const encoded = encodeMemberDocument(member);\n if (Either.isLeft(encoded))\n return yield* Effect.fail(coreInvalidFromCodec(encoded.left));\n yield* run.fileSystem.ensureDirectory(runPath(run.root, run.runId, \"members\"));\n yield* run.fileSystem.writeFile({\n file: runPath(run.root, run.runId, \"members\", `${input.slotId}.json`),\n bytes: jsonBytes(encoded.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* run.mutex.withPermits(1)(Effect.sync(() => {\n run.membership.set(input.slotId, { document: member });\n }));\n }).pipe(Effect.onExit((exit) => finishRunMutation(run, mutation, exit))));\n}\nfunction draftRunDocument(run: RunRuntime, completion: RunCompletion): RunDocument {\n return Object.freeze({\n runId: run.runId,\n experimentId: run.experimentId,\n context: run.context,\n startedAt: run.startedAt,\n completedAt: completion.completedAt,\n expectedSlots: Object.freeze([...run.expectedSlots]),\n });\n}\nfunction readPublishedAttempts(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<readonly AttemptDocument[], RecordWriteError> {\n return Effect.flatMap(readRunAttempts(fileSystem, root, runId), (attempts) => attempts === undefined ? Effect.fail(coreInvalid()) : Effect.succeed(attempts));\n}\nfunction readPublishedMembers(fileSystem: RecordFileSystemService, root: RecordRoot, runId: RunId): Effect.Effect<readonly MemberDocument[], RecordWriteError> {\n return Effect.flatMap(readRunMembers(fileSystem, root, runId), (members) => members === undefined ? Effect.fail(coreInvalid()) : Effect.succeed(members));\n}\nfunction scanPublishedCore(fileSystem: RecordFileSystemService, root: RecordRoot, omitRunId: RunId): Effect.Effect<readonly RunCore[], RecordWriteError> {\n return Effect.gen(function* () {\n const entries = orderedEntries(yield* fileSystem.listDirectory({\n directory: recordPath(root, \"runs\"),\n maximumEntries: MAXIMUM_RUN_ENTRIES,\n }));\n const runs: RunCore[] = [];\n for (const entry of entries) {\n if (entry.kind !== \"directory\")\n continue;\n const runId = decodeRunId(entry.name);\n if (runId === undefined || runId === omitRunId)\n continue;\n if (!(yield* isSealedRun(fileSystem, root, runId)))\n continue;\n const run = yield* readRunDocument(fileSystem, root, runId);\n if (run === undefined)\n return yield* Effect.fail(coreInvalid());\n const members = yield* readPublishedMembers(fileSystem, root, runId);\n const attempts = yield* readPublishedAttempts(fileSystem, root, runId);\n runs.push(Object.freeze({ run, members, attempts }));\n }\n return Object.freeze(runs);\n });\n}\nfunction validateReference(run: RunRuntime, member: MembershipRuntime): Effect.Effect<void, RecordWriteError> {\n return Effect.gen(function* () {\n const reference = member.document.attempt;\n if (reference === null)\n return;\n if (!(yield* isSealedRun(run.fileSystem, run.root, reference.originRunId))) {\n return yield* Effect.fail(referenceInvalid());\n }\n const source = yield* readAttemptDocument(run.fileSystem, run.root, reference);\n const originRun = yield* readRunDocument(run.fileSystem, run.root, reference.originRunId);\n const expected = run.expectedBySlot.get(member.document.slotId);\n if (source === undefined || expected === undefined || originRun === undefined) {\n return yield* Effect.fail(referenceInvalid());\n }\n const originExpected = originRun.expectedSlots.find((slot) => slot.slotId === source.slotId);\n if (originExpected === undefined)\n return yield* Effect.fail(referenceInvalid());\n if (source.slotId !== originExpected.slotId\n || source.evalId !== originExpected.evalId\n || source.executionIdentityDigest !== originExpected.executionIdentityDigest) {\n return yield* Effect.fail(referenceInvalid());\n }\n if (member.document.action === \"accepted\") {\n // Explicit adoption occupies a current target Slot. The origin Attempt\n // keeps its own Slot identity; only the exact sealed reference is required.\n return;\n }\n if (expected.slotId !== originExpected.slotId\n || expected.evalId !== originExpected.evalId\n || expected.attemptOrdinal !== originExpected.attemptOrdinal\n || expected.executionIdentityDigest !== originExpected.executionIdentityDigest) {\n return yield* Effect.fail(referenceInvalid());\n }\n });\n}\nfunction startSeal(run: RunRuntime): Effect.Effect<readonly Deferred.Deferred<void>[], RecordWriteError> {\n return run.mutex.withPermits(1)(Effect.gen(function* () {\n yield* assertRunLive(run);\n if (run.state !== \"open\")\n return yield* Effect.fail(stateError(\"publish\", run.state));\n run.state = \"publishing\";\n return Object.freeze([...run.inFlightMutations]);\n }));\n}\nfunction sealRun(run: RunRuntime, completion: RunCompletion): Effect.Effect<RecordSealReceipt, RecordWriteError> {\n return Effect.flatMap(startSeal(run), (inFlight) => Effect.gen(function* () {\n yield* Effect.forEach(inFlight, (mutation) => Deferred.await(mutation), {\n discard: true,\n });\n const attempts = yield* run.mutex.withPermits(1)(Effect.sync(() => Object.freeze([...run.attempts.values()])));\n yield* Effect.forEach(attempts, (attempt) => Deferred.await(attempt.settled), {\n discard: true,\n });\n yield* run.mutex.withPermits(1)(Effect.gen(function* () {\n if (run.state !== \"publishing\")\n return yield* Effect.fail(stateError(\"publish\", run.state));\n if (run.inFlightMutations.size !== 0 || attempts.some((attempt) => attempt.state !== \"completed\")) {\n return yield* Effect.fail(stateError(\"publish\", \"failed\"));\n }\n }));\n yield* validateAndSyncFixedAttachments(run);\n for (const slot of run.expectedSlots) {\n if (!run.membership.has(slot.slotId)) {\n return yield* Effect.fail(coreInvalid());\n }\n }\n const draft = draftRunDocument(run, completion);\n for (const member of run.membership.values()) {\n if (member.document.attempt !== null && member.document.attempt.originRunId !== run.runId) {\n yield* validateReference(run, member);\n }\n }\n const existing = yield* scanPublishedCore(run.fileSystem, run.root, run.runId);\n const currentAttempts = attempts.map((attempt) => attempt.document);\n if (currentAttempts.some((document) => document === undefined)) {\n return yield* Effect.fail(coreInvalid());\n }\n const currentMembers = [...run.membership.values()]\n .map((member) => member.document)\n .sort((left, right) => compareCanonicalIdentity(left.slotId, right.slotId));\n const aggregate: RecordCore = {\n record: run.record,\n runs: Object.freeze([...existing, Object.freeze({\n run: draft,\n members: Object.freeze(currentMembers),\n attempts: Object.freeze((currentAttempts as AttemptDocument[])\n .sort((left, right) => compareCanonicalIdentity(left.attemptId, right.attemptId))),\n })].sort((left, right) => compareCanonicalIdentity(left.run.runId, right.run.runId))),\n };\n const aggregateEncoded = encodeRecordCore(aggregate);\n if (Either.isLeft(aggregateEncoded))\n return yield* Effect.fail(coreInvalidFromCodec(aggregateEncoded.left));\n const encoded = encodeRunDocument(draft);\n if (Either.isLeft(encoded))\n return yield* Effect.fail(coreInvalidFromCodec(encoded.left));\n yield* run.fileSystem.writeFile({\n file: runPath(run.root, run.runId, \"run.json\"),\n bytes: jsonBytes(encoded.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"exclusive\",\n });\n yield* Effect.uninterruptibleMask(() => Effect.gen(function* () {\n yield* run.fileSystem.syncDirectory(runPath(run.root, run.runId));\n yield* run.fileSystem.createCompleteMarker({ root: run.root, runId: run.runId });\n yield* Effect.sync(() => {\n run.markerCreated = true;\n run.state = \"published\";\n consumeRunCapabilities(run);\n });\n yield* run.fileSystem.syncDirectory(runPath(run.root, run.runId));\n yield* run.fileSystem.syncDirectory(recordPath(run.root, \"runs\"));\n }));\n return Object.freeze({ runId: run.runId, state: \"sealed\" as const });\n }).pipe(Effect.onExit((exit) => Exit.isSuccess(exit)\n ? Effect.void\n :\n run.mutex.withPermits(1)(Effect.sync(() => {\n if (!run.markerCreated)\n run.state = \"failed\";\n }))))).pipe(\n // `startSeal` itself may fail, so this finalizer belongs outside the\n // flatMap. Both a failed seal and a published Run consume every writer\n // authority.\n Effect.onExit(() => Effect.sync(() => consumeRunCapabilities(run))));\n}\nfunction makeRunSession(run: RunRuntime): RunWriteSession {\n const session: RunWriteSession = Object.freeze({\n runId: run.runId,\n [runWriteSessionBrand]: () => undefined,\n createAttempt(input: {\n readonly slotId: SlotId;\n }) {\n return runSessions.get(this) === run\n ? createAttempt(run, input)\n : Effect.fail(recordWriterClosed());\n },\n referenceAttempt(input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n }) {\n return runSessions.get(this) === run\n ? referenceAttempt(run, input)\n : Effect.fail(recordWriterClosed());\n },\n recordAcceptedMembership(input: {\n readonly slotId: SlotId;\n readonly attempt: SelectedAttemptRef;\n }) {\n return runSessions.get(this) === run\n ? referenceAttempt(run, { slotId: input.slotId, action: \"accepted\", attempt: input.attempt })\n : Effect.fail(recordWriterClosed());\n },\n recordTerminalMember(input: {\n readonly slotId: SlotId;\n readonly action: \"not-dispatched\" | \"interrupted\";\n }) {\n return runSessions.get(this) === run\n ? recordTerminalMember(run, input)\n : Effect.fail(recordWriterClosed());\n },\n writeSources<E, R>(value: SourcesWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.sources,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeRunObservability<E, R>(value: RunObservabilityWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.observability.run,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeRunArtifacts<E, R>(value: RunArtifactsWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.run,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n seal(completion: RunCompletion) {\n return runSessions.get(this) === run\n ? sealRun(run, completion)\n : Effect.fail(recordWriterClosed());\n },\n });\n run.handle = session;\n runSessions.set(session, run);\n return session;\n}\nfunction makeReferenceRunSession(run: RunRuntime): ReferenceRunWriteSession {\n const session: ReferenceRunWriteSession = Object.freeze({\n runId: run.runId,\n [runWriteSessionBrand]: () => undefined,\n referenceAttempt(input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n }) {\n return runSessions.get(this) === run\n ? referenceAttempt(run, input)\n : Effect.fail(recordWriterClosed());\n },\n recordAcceptedMembership(input: {\n readonly slotId: SlotId;\n readonly attempt: SelectedAttemptRef;\n }) {\n return runSessions.get(this) === run\n ? referenceAttempt(run, { slotId: input.slotId, action: \"accepted\", attempt: input.attempt })\n : Effect.fail(recordWriterClosed());\n },\n recordTerminalMember(input: {\n readonly slotId: SlotId;\n readonly action: \"not-dispatched\" | \"interrupted\";\n }) {\n return runSessions.get(this) === run\n ? recordTerminalMember(run, input)\n : Effect.fail(recordWriterClosed());\n },\n writeRunObservability<E, R>(value: RunObservabilityWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.observability.run,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n writeRunArtifacts<E, R>(value: RunArtifactsWrite<E, R>): Effect.Effect<void, RecordWriteError | E, R> {\n return runSessions.get(this) === run\n ? writeRunFamily({\n run,\n descriptor: NiceEvalRecordFamilyCatalog.artifacts.run,\n value,\n })\n : Effect.fail(recordWriterClosed());\n },\n seal(completion: RunCompletion) {\n return runSessions.get(this) === run\n ? sealRun(run, completion)\n : Effect.fail(recordWriterClosed());\n },\n });\n run.handle = session;\n runSessions.set(session, run);\n return session;\n}\nfunction openNewRuntime(request: CreateRunRequest | CreateReferenceRunRequest): Effect.Effect<RunRuntime, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordEntropy | RecordCoordination> {\n return Effect.gen(function* () {\n // This must precede bootstrap as well as `createRunDirectory`: malformed\n // public JS input must not leave even a newly initialized Record skeleton.\n const expectedSlots = canonicalizeExpectedSlots(request.expectedSlots);\n if (Either.isLeft(expectedSlots)) {\n return yield* Effect.fail(new RecordCoreInvalid({\n code: \"record-core-invalid\",\n issues: expectedSlots.left,\n }));\n }\n const context = canonicalizeRunContext(request.context);\n if (Either.isLeft(context)) {\n return yield* Effect.fail(new RecordCoreInvalid({\n code: \"record-core-invalid\",\n issues: context.left,\n }));\n }\n if (context.right.experimentId !== request.experimentId) {\n const issues = nonEmptyRecordIssues([\n recordIssue(\"record-run-context-experiment-mismatch\", [\"context\", \"experimentId\"]),\n ]);\n if (issues === undefined)\n return yield* Effect.fail(coreInvalid());\n return yield* Effect.fail(new RecordCoreInvalid({\n code: \"record-core-invalid\",\n issues,\n }));\n }\n const expectedBySlot = new Map(expectedSlots.right.map((slot) => [slot.slotId, slot]));\n if (expectedBySlot.size !== expectedSlots.right.length)\n return yield* Effect.fail(coreInvalid());\n const coordination = yield* RecordCoordination;\n const fileSystem = yield* RecordFileSystem;\n const entropy = yield* RecordEntropy;\n yield* coordination.enterRecordAppend(request.root);\n if (yield* fileSystem.migrationSentinelPresent(request.root)) {\n return yield* Effect.fail(migrationInterrupted());\n }\n yield* initializeRecord({ root: request.root, fileSystem, entropy });\n const current = yield* readCurrentRecordFormat(fileSystem, request.root);\n yield* ensureOrdinaryCurrentAttachments({ fileSystem, root: request.root });\n yield* coordination.verifyRecordIdentity({ root: request.root, recordId: current.document.recordId });\n const runId = yield* createFreshRunDirectory(request.root, fileSystem, entropy);\n const mutex = yield* Effect.makeSemaphore(1);\n const runtime: RunRuntime = {\n root: request.root,\n fileSystem,\n entropy,\n record: current.document,\n runId,\n experimentId: request.experimentId,\n context: context.right,\n startedAt: request.startedAt,\n expectedSlots: expectedSlots.right,\n expectedBySlot,\n mutex,\n attempts: new Map(),\n slotReservations: new Map(),\n membership: new Map(),\n attachments: new Map(),\n inFlightMutations: new Set(),\n closed: false,\n markerCreated: false,\n state: \"open\",\n handle: undefined,\n };\n yield* Effect.addFinalizer(() => runtime.mutex.withPermits(1)(Effect.sync(() => {\n if (!runtime.markerCreated && runtime.state !== \"published\")\n runtime.state = \"failed\";\n consumeRunCapabilities(runtime);\n })));\n return runtime;\n });\n}\nfunction openNewRun(request: CreateRunRequest): Effect.Effect<RunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordEntropy | RecordCoordination> {\n return Effect.map(openNewRuntime(request), makeRunSession);\n}\nfunction openNewReferenceRun(request: CreateReferenceRunRequest): Effect.Effect<ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordEntropy | RecordCoordination> {\n return Effect.map(openNewRuntime(request), makeReferenceRunSession);\n}\ntype AnyMigrationDescriptor = FixedRecordFamilyDescriptor<NiceEvalFamily, RecordAttachmentOwner, unknown>;\ninterface KnownMigrationAttachment {\n readonly owner: RecordAttachmentOwner;\n readonly runId: RunId;\n readonly attemptId?: AttemptId;\n readonly descriptor: AnyMigrationDescriptor;\n}\ntype KnownFamilyDescriptor = (typeof NiceEvalRecordFamilyDescriptorsByOwner.attempt)[number] | (typeof NiceEvalRecordFamilyDescriptorsByOwner.run)[number];\nfunction migrationDescriptor(descriptor: KnownFamilyDescriptor): AnyMigrationDescriptor {\n return descriptor as unknown as AnyMigrationDescriptor;\n}\nconst runMigrationDescriptors = Object.freeze([\n ...NiceEvalRecordFamilyDescriptorsByOwner.run.map(migrationDescriptor),\n]);\nconst attemptMigrationDescriptors = Object.freeze([\n ...NiceEvalRecordFamilyDescriptorsByOwner.attempt.map(migrationDescriptor),\n]);\nfunction validateAttachmentDirectoryInventory(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly directory: ReturnType<typeof recordPortablePath>;\n readonly allowed: ReadonlySet<string>;\n}): Effect.Effect<void, RecordFileSystemError | RecordFormatUnsupported> {\n return Effect.gen(function* () {\n const kind = yield* input.fileSystem.pathKind(input.directory);\n if (kind === \"missing\")\n return;\n if (kind !== \"directory\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: \"attachment-inventory\",\n }));\n }\n const entries = yield* input.fileSystem.listDirectory({\n directory: input.directory,\n maximumEntries: 256,\n });\n const unsupported = entries.find((entry) => entry.kind !== \"directory\" || !input.allowed.has(entry.name));\n if (unsupported !== undefined) {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: `unknown-family:${unsupported.name}`,\n }));\n }\n });\n}\nfunction validateCurrentFamilyInventory(fileSystem: RecordFileSystemService, root: RecordRoot, runIds?: ReadonlySet<RunId>): Effect.Effect<void, RecordFileSystemError | RecordFormatUnsupported> {\n const runFamilies = new Set(runMigrationDescriptors.map((descriptor) => descriptor.family));\n const attemptFamilies = new Set(attemptMigrationDescriptors.map((descriptor) => descriptor.family));\n return Effect.gen(function* () {\n const runs = yield* fileSystem.listDirectory({\n directory: recordPortablePath(root, \"runs\"),\n maximumEntries: MAXIMUM_RUN_ENTRIES,\n });\n for (const entry of runs) {\n if (entry.kind !== \"directory\")\n continue;\n const runId = decodeRunId(entry.name);\n if (runId === undefined || !(yield* isSealedRun(fileSystem, root, runId)))\n continue;\n if (runIds !== undefined && !runIds.has(runId))\n continue;\n yield* validateAttachmentDirectoryInventory({\n fileSystem,\n directory: recordPortablePath(root, \"runs\", runId, \"attachments\"),\n allowed: runFamilies,\n });\n const attemptsDirectory = recordPortablePath(root, \"runs\", runId, \"attempts\");\n if ((yield* fileSystem.pathKind(attemptsDirectory)) !== \"directory\")\n continue;\n const attempts = yield* fileSystem.listDirectory({\n directory: attemptsDirectory,\n maximumEntries: MAXIMUM_ATTEMPT_ENTRIES,\n });\n for (const attempt of attempts) {\n if (attempt.kind !== \"directory\")\n continue;\n const attemptId = decodeAttemptId(attempt.name);\n if (attemptId === undefined)\n continue;\n yield* validateAttachmentDirectoryInventory({\n fileSystem,\n directory: recordPortablePath(root, \"runs\", runId, \"attempts\", attemptId, \"attachments\"),\n allowed: attemptFamilies,\n });\n }\n }\n });\n}\nfunction migrationAttachmentDirectory(root: RecordRoot, location: KnownMigrationAttachment) {\n return location.owner === \"run\"\n ? recordPortablePath(root, \"runs\", location.runId, \"attachments\", location.descriptor.family)\n : recordPortablePath(root, \"runs\", location.runId, \"attempts\", location.attemptId!, \"attachments\", location.descriptor.family);\n}\nfunction migrationReaderLocation(location: KnownMigrationAttachment) {\n return location.owner === \"run\"\n ? Object.freeze({ owner: \"run\" as const, runId: location.runId })\n : Object.freeze({\n owner: \"attempt\" as const,\n runId: location.runId,\n attemptId: location.attemptId!,\n });\n}\n/**\n * This traversal only addresses declared family directories. It deliberately\n * never enumerates an attachment directory, so unknown families cannot enter\n * the migration graph or be rewritten as a side effect.\n */\nfunction knownMigrationAttachments(fileSystem: RecordFileSystemService, root: RecordRoot, runIds?: ReadonlySet<RunId>): Effect.Effect<readonly KnownMigrationAttachment[], RecordFileSystemError> {\n return Effect.gen(function* () {\n const locations: KnownMigrationAttachment[] = [];\n const runs = yield* fileSystem.listDirectory({\n directory: recordPortablePath(root, \"runs\"),\n maximumEntries: MAXIMUM_RUN_ENTRIES,\n });\n for (const entry of runs) {\n if (entry.kind !== \"directory\")\n continue;\n const runId = decodeRunId(entry.name);\n if (runId === undefined)\n continue;\n if (runIds !== undefined && !runIds.has(runId))\n continue;\n // Draft directories are not Runs and belong exclusively to `niceeval\n // clean`; maintenance must preserve every byte beneath them.\n if (!(yield* isSealedRun(fileSystem, root, runId)))\n continue;\n for (const descriptor of runMigrationDescriptors) {\n const location: KnownMigrationAttachment = Object.freeze({\n owner: \"run\" as const,\n runId,\n descriptor,\n });\n if ((yield* fileSystem.pathKind(migrationAttachmentDirectory(root, location))) !== \"missing\") {\n locations.push(location);\n }\n }\n const attempts = yield* fileSystem.listDirectory({\n directory: recordPortablePath(root, \"runs\", runId, \"attempts\"),\n maximumEntries: MAXIMUM_ATTEMPT_ENTRIES,\n });\n for (const attemptEntry of attempts) {\n if (attemptEntry.kind !== \"directory\")\n continue;\n const attemptId = decodeAttemptId(attemptEntry.name);\n if (attemptId === undefined)\n continue;\n for (const descriptor of attemptMigrationDescriptors) {\n const location: KnownMigrationAttachment = Object.freeze({\n owner: \"attempt\" as const,\n runId,\n attemptId,\n descriptor,\n });\n if ((yield* fileSystem.pathKind(migrationAttachmentDirectory(root, location))) !== \"missing\") {\n locations.push(location);\n }\n }\n }\n }\n return Object.freeze(locations);\n });\n}\nfunction readKnownMigrationAttachment(fileSystem: RecordFileSystemService, root: RecordRoot, location: KnownMigrationAttachment) {\n return readFixedRecordAttachment({\n fileSystem,\n root,\n location: migrationReaderLocation(location),\n descriptor: location.descriptor,\n });\n}\nfunction migrationInvalid(family: string): RecordMigrationInvalid {\n return new RecordMigrationInvalid({ code: \"record-migration-invalid\", family });\n}\nfunction migrationPlanStale(): RecordMigrationPlanStale {\n return new RecordMigrationPlanStale({ code: \"record-migration-plan-stale\" });\n}\nfunction migrationFailureCode(error: unknown): string {\n if (typeof error !== \"object\" || error === null)\n return \"record-command-failed\";\n const code = Reflect.get(error, \"code\");\n return typeof code === \"string\" ? code : \"record-command-failed\";\n}\nfunction normalizedMigrationRetention(value: unknown): import(\"../definition/attachment.ts\").RecordAttachmentMigrationRetention | undefined {\n if (typeof value !== \"object\" || value === null || Array.isArray(value))\n return undefined;\n const retention = value as Record<string, unknown>;\n const retainedFacts = retention.retainedFacts;\n const droppedFacts = retention.droppedFacts;\n const rerunRecommendation = retention.rerunRecommendation;\n if (!Array.isArray(retainedFacts) || retainedFacts.some((fact) => typeof fact !== \"string\" || fact.length === 0) ||\n !Array.isArray(droppedFacts) || droppedFacts.some((fact) => typeof fact !== \"string\" || fact.length === 0) ||\n (rerunRecommendation !== null &&\n (typeof rerunRecommendation !== \"string\" || rerunRecommendation.length === 0)))\n return undefined;\n return Object.freeze({\n retainedFacts: Object.freeze([...retainedFacts] as string[]),\n droppedFacts: Object.freeze([...droppedFacts] as string[]),\n rerunRecommendation,\n });\n}\nfunction migrationTarget(location: KnownMigrationAttachment, fromSchemaVersion: number, toSchemaVersion: number, retention: import(\"../definition/attachment.ts\").RecordAttachmentMigrationRetention): RecordAttachmentMigrationTarget {\n return Object.freeze({\n family: location.descriptor.family,\n owner: location.owner,\n runId: location.runId,\n ...(location.attemptId === undefined ? {} : { attemptId: location.attemptId }),\n fromSchemaVersion,\n toSchemaVersion,\n retention,\n });\n}\nfunction migrationLocationKey(owner: RecordAttachmentOwner, runId: RunId, attemptId: AttemptId | undefined, family: string): string {\n return `${owner}\\u0000${runId}\\u0000${attemptId ?? \"\"}\\u0000${family}`;\n}\nfunction validateProspectiveCrossFamilyJoins(values: readonly {\n readonly location: KnownMigrationAttachment;\n readonly payload: unknown;\n}[]): boolean {\n const byLocation = new Map(values.map(({ location, payload }) => [\n migrationLocationKey(location.owner, location.runId, location.attemptId, location.descriptor.family),\n payload,\n ] as const));\n for (const { location, payload } of values) {\n const runSources = () => byLocation.get(migrationLocationKey(\"run\", location.runId, undefined, NiceEvalRecordFamilyCatalog.sources.family)) as SourcesAttachment | undefined;\n if (isObservabilityDescriptor(location.descriptor)) {\n const observability = payload as ObservabilityAttachment;\n if (hasSourceFrames(observability)) {\n const sources = runSources();\n if (sources === undefined || observabilitySourceFrameIntegrityIssues(observability, sources).length > 0) {\n return false;\n }\n }\n }\n else if (isAssertionsDescriptor(location.descriptor)) {\n const assertions = payload as AssertionsAttachment;\n if (assertions.sourceSites.length > 0) {\n const sources = runSources();\n if (sources === undefined || assertionsSourceSiteIntegrityIssues(assertions, sources).length > 0) {\n return false;\n }\n }\n }\n else if (isSourceNavigationDescriptor(location.descriptor)) {\n if (location.attemptId === undefined)\n return false;\n const navigation = payload as SourceNavigationAttachment;\n const observability = byLocation.get(migrationLocationKey(\"attempt\", location.runId, location.attemptId, NiceEvalRecordFamilyCatalog.observability.attempt.family)) as AttemptObservabilityAttachment | undefined;\n const sources = hasMappedNavigationRows(navigation) ? runSources() : undefined;\n if (observability === undefined ||\n (hasMappedNavigationRows(navigation) && sources === undefined) ||\n sourceNavigationIntegrityIssues({ payload: navigation, observability, sources }).length > 0)\n return false;\n }\n }\n return true;\n}\ninterface PlannedMigrationSource {\n readonly target: RecordAttachmentMigrationTarget;\n readonly location: KnownMigrationAttachment;\n readonly envelopeBytes: Uint8Array;\n readonly payloadBytes: Uint8Array;\n readonly removedBlobs: readonly {\n readonly key: string;\n readonly bytes: Uint8Array;\n }[];\n readonly rewritePayload: boolean;\n}\ninterface PlannedMigrationSources {\n readonly attachments: readonly PlannedMigrationSource[];\n readonly rootIdentityBytes: Uint8Array;\n readonly implementationIdentity: typeof RECORD_MIGRATION_IMPLEMENTATION_ID;\n}\nconst RECORD_MIGRATION_IMPLEMENTATION_ID = \"niceeval.record/current-attachments/v2\" as const;\nconst migrationPlanSources = new WeakMap<object, PlannedMigrationSources>();\nfunction bytesEqual(left: Uint8Array, right: Uint8Array): boolean {\n return left.byteLength === right.byteLength && left.every((byte, index) => byte === right[index]);\n}\nfunction migrationEnvelopePath(root: RecordRoot, location: KnownMigrationAttachment) {\n return recordPortablePath(root, ...migrationAttachmentDirectory(root, location).segments, \"attachment.json\");\n}\nfunction sameMigrationPlan(left: RecordMigrationPlan, right: RecordMigrationPlan): boolean {\n if (left.state !== right.state || left.format !== right.format)\n return false;\n if (left.state !== \"migration-required\" || right.state !== \"migration-required\")\n return true;\n if (JSON.stringify(left.backup) !== JSON.stringify(right.backup))\n return false;\n if (left.attachments.length !== right.attachments.length)\n return false;\n if (!left.attachments.every((target, index) => {\n const candidate = right.attachments[index];\n return candidate !== undefined &&\n target.family === candidate.family &&\n target.owner === candidate.owner &&\n target.runId === candidate.runId &&\n target.attemptId === candidate.attemptId &&\n target.fromSchemaVersion === candidate.fromSchemaVersion &&\n target.toSchemaVersion === candidate.toSchemaVersion &&\n JSON.stringify(target.retention) === JSON.stringify(candidate.retention);\n }))\n return false;\n const leftSources = migrationPlanSources.get(left);\n const rightSources = migrationPlanSources.get(right);\n if (leftSources === undefined || rightSources === undefined ||\n leftSources.implementationIdentity !== rightSources.implementationIdentity ||\n !bytesEqual(leftSources.rootIdentityBytes, rightSources.rootIdentityBytes) ||\n leftSources.attachments.length !== rightSources.attachments.length)\n return false;\n return leftSources.attachments.every((source, index) => {\n const candidate = rightSources.attachments[index];\n return candidate !== undefined &&\n bytesEqual(source.envelopeBytes, candidate.envelopeBytes) &&\n bytesEqual(source.payloadBytes, candidate.payloadBytes) &&\n source.rewritePayload === candidate.rewritePayload &&\n source.removedBlobs.length === candidate.removedBlobs.length &&\n source.removedBlobs.every((blob, blobIndex) => {\n const other = candidate.removedBlobs[blobIndex];\n return other !== undefined && blob.key === other.key && bytesEqual(blob.bytes, other.bytes);\n });\n });\n}\nfunction planAttachmentMigration(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly runIds?: ReadonlySet<RunId>;\n}): Effect.Effect<{\n readonly targets: readonly RecordAttachmentMigrationTarget[];\n readonly sources: readonly PlannedMigrationSource[];\n}, RecordFileSystemError | RecordFormatUnsupported | RecordMigrationInvalid> {\n return Effect.gen(function* () {\n yield* validateCurrentFamilyInventory(input.fileSystem, input.root, input.runIds);\n const targets: RecordAttachmentMigrationTarget[] = [];\n const sources: PlannedMigrationSource[] = [];\n const prospective: {\n readonly location: KnownMigrationAttachment;\n readonly payload: unknown;\n }[] = [];\n for (const location of yield* knownMigrationAttachments(input.fileSystem, input.root, input.runIds)) {\n const read = yield* readKnownMigrationAttachment(input.fileSystem, input.root, location);\n if (read.state === \"available\") {\n prospective.push(Object.freeze({ location, payload: read.value }));\n continue;\n }\n const migrationLink = read.state === \"migration-required\"\n ? location.descriptor.adjacentMigrationLinks.find((link) => link.fromSchemaVersion === read.fromSchemaVersion && link.toSchemaVersion === read.toSchemaVersion)\n : undefined;\n if (read.state === \"migration-required\" && migrationLink !== undefined) {\n const envelopeBytes = yield* input.fileSystem.readFile({\n file: migrationEnvelopePath(input.root, location),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (envelopeBytes === undefined) {\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n const facet = yield* loadAttachmentMaintenance(location.descriptor);\n const historical = facet.historicalCodecs.find((codec) => codec.schemaVersion === read.fromSchemaVersion);\n const step = facet.adjacentMigrations.find((migration) => migration.fromSchemaVersion === read.fromSchemaVersion &&\n migration.toSchemaVersion === read.toSchemaVersion);\n if (historical === undefined || step === undefined) {\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n const retention = normalizedMigrationRetention(step.retention);\n if (retention === undefined) {\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n const target = migrationTarget(location, read.fromSchemaVersion, read.toSchemaVersion, retention);\n const prepared = yield* validateFixedRecordAttachmentMigrationSource({\n fileSystem: input.fileSystem,\n root: input.root,\n location: migrationReaderLocation(location),\n descriptor: location.descriptor,\n fromSchemaVersion: read.fromSchemaVersion,\n decodeHistorical: historical.decode,\n ...(historical.verify === undefined ? {} : { verifyHistorical: historical.verify }),\n migrate: step.migrate,\n });\n if (prepared === false || prepared.rewritePayload !== migrationLink.rewritePayload) {\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n prospective.push(Object.freeze({ location, payload: prepared.payload }));\n const payloadBytes = yield* input.fileSystem.readFile({\n file: recordPortablePath(input.root, ...migrationAttachmentDirectory(input.root, location).segments, \"payload.json\"),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (payloadBytes === undefined)\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n targets.push(target);\n sources.push(Object.freeze({\n target,\n location,\n envelopeBytes,\n payloadBytes,\n removedBlobs: prepared.removedBlobs,\n rewritePayload: migrationLink.rewritePayload,\n }));\n continue;\n }\n if (read.state === \"unsupported\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: `${read.family}@${read.schemaVersion}`,\n }));\n }\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n if (!validateProspectiveCrossFamilyJoins(prospective)) {\n return yield* Effect.fail(migrationInvalid(\"niceeval.record cross-family\"));\n }\n return Object.freeze({\n targets: Object.freeze(targets),\n sources: Object.freeze(sources),\n });\n });\n}\nfunction ensureOrdinaryCurrentAttachments(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly runIds?: ReadonlySet<RunId>;\n}): Effect.Effect<void, RecordReaderOpenError> {\n return Effect.gen(function* () {\n yield* validateCurrentFamilyInventory(input.fileSystem, input.root, input.runIds);\n for (const location of yield* knownMigrationAttachments(input.fileSystem, input.root, input.runIds)) {\n const envelope = yield* inspectFixedRecordAttachmentEnvelope({\n fileSystem: input.fileSystem,\n root: input.root,\n location: migrationReaderLocation(location),\n descriptor: location.descriptor,\n });\n if (envelope.state === \"current\" || envelope.state === \"unavailable\")\n continue;\n if (envelope.state === \"migration-required\") {\n return yield* Effect.fail(new RecordMigrationRequired({\n code: \"record-migration-required\",\n source: `${envelope.family}@${envelope.fromSchemaVersion}`,\n target: `${envelope.family}@${envelope.toSchemaVersion}`,\n command: \"niceeval migrate\",\n }));\n }\n if (envelope.state === \"unsupported\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: `${envelope.family}@${envelope.schemaVersion}`,\n }));\n }\n return yield* Effect.fail(bootstrapInvalid());\n }\n });\n}\nfunction migrationPlan(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly git: RecordGitService;\n}): Effect.Effect<RecordMigrationPlan, RecordMaintenanceError> {\n return Effect.gen(function* () {\n const format = yield* readRecordFormatForMaintenance(input.fileSystem, input.root);\n yield* validateSealedCoreForMigration(input.fileSystem, input.root, format.document);\n const attachments = yield* planAttachmentMigration(input);\n if (attachments.targets.length === 0) {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n const backup = yield* input.git.inspectBackupState(input.root);\n const plan = Object.freeze({\n state: \"migration-required\" as const,\n format: RECORD_FORMAT,\n backup,\n attachments: attachments.targets,\n });\n migrationPlanSources.set(plan, Object.freeze({\n attachments: attachments.sources,\n rootIdentityBytes: format.sourceBytes,\n implementationIdentity: RECORD_MIGRATION_IMPLEMENTATION_ID,\n }));\n return plan;\n });\n}\nfunction validateSealedCoreForMigration(fileSystem: RecordFileSystemService, root: RecordRoot, record: RecordDocument): Effect.Effect<void, RecordMaintenanceError> {\n return Effect.flatMap(loadSealedCoreSnapshot(maintenanceReaderRuntime(root, record), fileSystem), (snapshot) => snapshot.state === \"available\"\n ? Effect.void\n : Effect.fail(migrationInvalid(\"niceeval.core\")));\n}\nfunction loadAttachmentMaintenance(descriptor: AnyMigrationDescriptor): Effect.Effect<import(\"../definition/attachment.ts\").RecordAttachmentMaintenanceFacet, RecordMigrationInvalid> {\n const loader = descriptor.maintenance;\n if (loader === undefined)\n return Effect.fail(migrationInvalid(descriptor.family));\n return Effect.tryPromise({\n try: loader,\n catch: () => migrationInvalid(descriptor.family),\n });\n}\nfunction migrateKnownAttachment(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n readonly location: KnownMigrationAttachment;\n readonly target: RecordAttachmentMigrationTarget;\n readonly expectedEnvelopeBytes: Uint8Array;\n readonly expectedPayloadBytes: Uint8Array;\n readonly expectedRemovedBlobs: readonly {\n readonly key: string;\n readonly bytes: Uint8Array;\n }[];\n readonly rewritePayload: boolean;\n}): Effect.Effect<void, RecordMaintenanceError> {\n return Effect.gen(function* () {\n const descriptor = input.location.descriptor;\n const migrationLink = descriptor.adjacentMigrationLinks.find((link) => link.fromSchemaVersion === input.target.fromSchemaVersion &&\n link.toSchemaVersion === input.target.toSchemaVersion);\n if (migrationLink === undefined || migrationLink.rewritePayload !== input.rewritePayload) {\n return yield* Effect.fail(migrationInvalid(input.target.family));\n }\n const location = input.location;\n const facet = yield* loadAttachmentMaintenance(descriptor);\n const historical = facet.historicalCodecs.find((codec) => codec.schemaVersion === input.target.fromSchemaVersion);\n const step = facet.adjacentMigrations.find((migration) => migration.fromSchemaVersion === input.target.fromSchemaVersion &&\n migration.toSchemaVersion === input.target.toSchemaVersion);\n if (historical === undefined || step === undefined) {\n return yield* Effect.fail(migrationInvalid(input.target.family));\n }\n const retention = normalizedMigrationRetention(step.retention);\n if (retention === undefined || JSON.stringify(retention) !== JSON.stringify(input.target.retention)) {\n return yield* Effect.fail(migrationInvalid(input.target.family));\n }\n const envelopePath = migrationEnvelopePath(input.root, location);\n const sourceBeforeValidation = yield* input.fileSystem.readFile({\n file: envelopePath,\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (sourceBeforeValidation === undefined || !bytesEqual(sourceBeforeValidation, input.expectedEnvelopeBytes)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n const payloadPath = recordPortablePath(input.root, ...migrationAttachmentDirectory(input.root, location).segments, \"payload.json\");\n const payloadBeforeValidation = yield* input.fileSystem.readFile({\n file: payloadPath,\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (payloadBeforeValidation === undefined || !bytesEqual(payloadBeforeValidation, input.expectedPayloadBytes)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n const validated = yield* validateFixedRecordAttachmentMigrationSource({\n fileSystem: input.fileSystem,\n root: input.root,\n location: migrationReaderLocation(location),\n descriptor,\n fromSchemaVersion: input.target.fromSchemaVersion,\n decodeHistorical: historical.decode,\n ...(historical.verify === undefined ? {} : { verifyHistorical: historical.verify }),\n migrate: step.migrate,\n });\n if (validated === false) {\n const sourceAfterInvalid = yield* input.fileSystem.readFile({\n file: envelopePath,\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (sourceAfterInvalid === undefined || !bytesEqual(sourceAfterInvalid, input.expectedEnvelopeBytes)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n return yield* Effect.fail(migrationInvalid(input.target.family));\n }\n const envelope = encodeFixedRecordAttachmentEnvelope({\n family: descriptor.family,\n schemaVersion: input.target.toSchemaVersion,\n });\n if (Either.isLeft(envelope))\n return yield* Effect.fail(migrationInvalid(input.target.family));\n const sourceBeforeWrite = yield* input.fileSystem.readFile({\n file: envelopePath,\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n });\n if (sourceBeforeWrite === undefined || !bytesEqual(sourceBeforeWrite, input.expectedEnvelopeBytes)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n if (validated.rewritePayload !== input.rewritePayload) {\n return yield* Effect.fail(migrationInvalid(input.target.family));\n }\n if (validated.removedBlobs.length !== input.expectedRemovedBlobs.length ||\n validated.removedBlobs.some((blob, index) => {\n const expected = input.expectedRemovedBlobs[index];\n return expected === undefined || blob.key !== expected.key || !bytesEqual(blob.bytes, expected.bytes);\n })) {\n return yield* Effect.fail(migrationPlanStale());\n }\n if (input.rewritePayload) {\n const encodedPayload = descriptor.write.encodePayload(validated.payload);\n if (Either.isLeft(encodedPayload))\n return yield* Effect.fail(migrationInvalid(input.target.family));\n const durablePayload = encodeAttachmentPayloadForStorage({\n payload: encodedPayload.right,\n blobKeys: validated.blobKeys,\n });\n if (Either.isLeft(durablePayload))\n return yield* Effect.fail(migrationInvalid(input.target.family));\n yield* input.fileSystem.writeFile({\n file: payloadPath,\n bytes: jsonBytes(durablePayload.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"replace-no-follow\",\n });\n }\n for (const blob of input.expectedRemovedBlobs) {\n const blobPath = recordPortablePath(input.root, ...migrationAttachmentDirectory(input.root, location).segments, \"blobs\", blob.key);\n const beforeDelete = yield* input.fileSystem.readFile({\n file: blobPath,\n maximumBytes: descriptor.write.budget.maximumBlobBytes,\n });\n if (beforeDelete === undefined || !bytesEqual(beforeDelete, blob.bytes)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n yield* input.fileSystem.removeFile(recordPortablePath(input.root, ...migrationAttachmentDirectory(input.root, location).segments, \"blobs\", blob.key));\n }\n yield* input.fileSystem.writeFile({\n file: envelopePath,\n bytes: jsonBytes(envelope.right),\n maximumBytes: RECORD_JSON_MAXIMUM_BYTES,\n mode: \"replace-no-follow\",\n });\n });\n}\nfunction validateCurrentKnownAttachments(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly root: RecordRoot;\n}): Effect.Effect<void, RecordMaintenanceError> {\n return Effect.gen(function* () {\n for (const location of yield* knownMigrationAttachments(input.fileSystem, input.root)) {\n const read = yield* readKnownMigrationAttachment(input.fileSystem, input.root, location);\n if (read.state !== \"available\") {\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n const joined = yield* validateFixedCrossFamilyJoin({\n fileSystem: input.fileSystem,\n root: input.root,\n runId: location.runId,\n ...(location.attemptId === undefined ? {} : { attemptId: location.attemptId }),\n descriptor: location.descriptor,\n payload: read.value,\n });\n if (joined.state !== \"joined\") {\n return yield* Effect.fail(migrationInvalid(location.descriptor.family));\n }\n }\n });\n}\nfunction migrationRecoveryIsSafe(input: {\n readonly fileSystem: RecordFileSystemService;\n readonly git: RecordGitService;\n readonly root: RecordRoot;\n readonly restoreCommit: string;\n readonly expectedRelativePaths: readonly string[];\n}): Effect.Effect<boolean> {\n return Effect.gen(function* () {\n const expectedPaths = [\n recordPortablePath(input.root, \"migration.in-progress\"),\n ...input.expectedRelativePaths.map((relative) => recordPortablePath(input.root, ...relative.split(\"/\"))),\n ];\n return yield* input.git.recoveryChangesAreExpected({\n root: input.root,\n restoreCommit: input.restoreCommit,\n expectedPaths,\n });\n }).pipe(Effect.catchAll(() => Effect.succeed(false)));\n}\nfunction openMaintenance(input: {\n readonly root: RecordRoot;\n}): Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import(\"effect\").Scope.Scope | RecordFileSystem | RecordGit | RecordCoordination> {\n return Effect.gen(function* () {\n const coordination = yield* RecordCoordination;\n const fileSystem = yield* RecordFileSystem;\n const git = yield* RecordGit;\n yield* coordination.enterRecordMaintenance(input.root);\n if (yield* fileSystem.migrationSentinelPresent(input.root)) {\n const sentinel = yield* fileSystem.readMigrationSentinel(input.root);\n const restoreSafe = sentinel === undefined\n ? false\n : yield* migrationRecoveryIsSafe({\n fileSystem,\n git,\n root: input.root,\n restoreCommit: sentinel.restoreCommit,\n expectedRelativePaths: sentinel.expectedRelativePaths,\n });\n return yield* Effect.fail(migrationInterrupted(sentinel?.restoreCommit, restoreSafe));\n }\n const inspect = () => currentFormatInspection(fileSystem, input.root);\n const planMigrate = () => Effect.gen(function* () {\n const format = yield* readRecordFormatForMaintenance(fileSystem, input.root);\n yield* coordination.verifyRecordIdentity({ root: input.root, recordId: format.document.recordId });\n return yield* migrationPlan({ fileSystem, root: input.root, git });\n });\n return Object.freeze({\n inspect,\n planMigrate,\n applyMigrate: (plan: RecordMigrationPlan): Effect.Effect<RecordMigrationReceipt, RecordMaintenanceError> => Effect.gen(function* () {\n const currentPlan = yield* planMigrate();\n if (!sameMigrationPlan(plan, currentPlan)) {\n return yield* Effect.fail(migrationPlanStale());\n }\n if (currentPlan.state === \"already-current\") {\n return Object.freeze({ state: \"already-current\" as const, format: RECORD_FORMAT });\n }\n if (currentPlan.state === \"unsupported-format\") {\n return yield* Effect.fail(new RecordFormatUnsupported({\n code: \"record-format-unsupported\",\n format: currentPlan.format,\n }));\n }\n if (currentPlan.backup.state !== \"git-restore-point\") {\n return yield* Effect.fail(new RecordMigrationGitRestoreRequired({\n code: \"record-migration-git-restore-required\",\n }));\n }\n const restoreCommit = currentPlan.backup.commit;\n const plannedSources = migrationPlanSources.get(currentPlan);\n if (plannedSources === undefined ||\n plannedSources.implementationIdentity !== RECORD_MIGRATION_IMPLEMENTATION_ID ||\n plannedSources.attachments.length !== currentPlan.attachments.length) {\n return yield* Effect.fail(migrationInvalid(\"niceeval.core\"));\n }\n let portableTargetWritten = false;\n const expectedRelativePaths = Object.freeze([\n ...plannedSources.attachments.flatMap((source) => {\n const base = migrationAttachmentDirectory(input.root, source.location).segments.join(\"/\");\n return source.rewritePayload\n ? [\n `${base}/attachment.json`,\n `${base}/payload.json`,\n ...source.removedBlobs.map((blob) => `${base}/blobs/${blob.key}`),\n ]\n : [`${base}/attachment.json`];\n }),\n ]);\n const rootBeforeSentinel = yield* fileSystem.readFile({\n file: recordPortablePath(input.root, \"record.json\"),\n maximumBytes: RECORD_FORMAT_DOCUMENT_MAXIMUM_BYTES,\n });\n if (rootBeforeSentinel === undefined ||\n !bytesEqual(rootBeforeSentinel, plannedSources.rootIdentityBytes))\n return yield* Effect.fail(migrationPlanStale());\n // The sentinel is the first portable write. Any later failure or\n // interruption intentionally leaves it behind for Git recovery.\n yield* fileSystem.createMigrationSentinel(input.root, restoreCommit, expectedRelativePaths);\n const sentinelOnly = yield* git.recoveryChangesAreExpected({\n root: input.root,\n restoreCommit,\n expectedPaths: [recordPortablePath(input.root, \"migration.in-progress\")],\n });\n if (!sentinelOnly) {\n yield* fileSystem.removeMigrationSentinel(input.root);\n return yield* Effect.fail(migrationPlanStale());\n }\n yield* Effect.gen(function* () {\n for (const source of plannedSources.attachments) {\n yield* migrateKnownAttachment({\n fileSystem,\n root: input.root,\n location: source.location,\n target: source.target,\n expectedEnvelopeBytes: source.envelopeBytes,\n expectedPayloadBytes: source.payloadBytes,\n expectedRemovedBlobs: source.removedBlobs,\n rewritePayload: source.rewritePayload,\n });\n portableTargetWritten = true;\n }\n const current = yield* readCurrentRecordFormat(fileSystem, input.root);\n yield* validateSealedCoreForMigration(fileSystem, input.root, current.document);\n yield* validateCurrentKnownAttachments({ fileSystem, root: input.root });\n yield* fileSystem.removeMigrationSentinel(input.root);\n }).pipe(Effect.catchAll((error) => {\n const recoveryRequired = () => Effect.flatMap(migrationRecoveryIsSafe({\n fileSystem,\n git,\n root: input.root,\n restoreCommit,\n expectedRelativePaths,\n }), (restoreSafe) => Effect.fail(new RecordMigrationRecoveryRequired({\n code: \"record-migration-recovery-required\",\n causeCode: migrationFailureCode(error),\n restoreCommit,\n restoreSafe,\n })));\n if (error instanceof RecordMigrationPlanStale && !portableTargetWritten) {\n return fileSystem.removeMigrationSentinel(input.root).pipe(Effect.matchEffect({\n onFailure: () => recoveryRequired(),\n onSuccess: () => Effect.fail(error),\n }));\n }\n return recoveryRequired();\n }));\n return Object.freeze({\n state: \"migrated\" as const,\n format: RECORD_FORMAT,\n attachments: currentPlan.attachments,\n });\n }),\n });\n });\n}\nexport const recordHost: RecordHostSDK = Object.freeze({\n current: Object.freeze({\n openRead: openCurrentRead,\n createRun: openNewRun,\n createReferenceRun: openNewReferenceRun,\n }),\n maintenance: Object.freeze({ open: openMaintenance }),\n});\n"]}
|