niceeval 0.13.3 → 0.13.4-canary.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INDEX.md +5 -5
- package/dist/agents/index.cjs +2 -2
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/project.json +6 -0
- package/dist/agents/streaming.cjs.map +1 -1
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +1 -1
- package/dist/agents/types.d.mts +1 -1
- package/dist/agents/types.d.ts +1 -1
- package/dist/analysis/bindings.d.cts +8 -8
- package/dist/analysis/bindings.d.mts +8 -8
- package/dist/analysis/bindings.d.ts +8 -8
- package/dist/analysis/contracts.cjs.map +1 -1
- package/dist/analysis/contracts.d.cts +8 -19
- package/dist/analysis/contracts.d.mts +8 -19
- package/dist/analysis/contracts.d.ts +8 -19
- package/dist/analysis/experiment-groups.cjs +7 -14
- package/dist/analysis/experiment-groups.cjs.map +1 -1
- 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/cli/application.cjs +4 -13
- package/dist/cli/application.cjs.map +1 -1
- package/dist/cli/application.d.cts +62 -59
- package/dist/cli/application.d.mts +62 -59
- package/dist/cli/application.d.ts +62 -59
- package/dist/cli/application.js +6 -12
- package/dist/cli/bootstrap.cjs +28 -2
- package/dist/cli/bootstrap.cjs.map +1 -1
- package/dist/cli/contribution.cjs +185 -0
- package/dist/cli/contribution.cjs.map +1 -0
- package/dist/cli/contribution.d.cts +55 -0
- package/dist/cli/contribution.d.mts +55 -0
- package/dist/cli/contribution.d.ts +55 -0
- package/dist/cli/contribution.js +20 -0
- package/dist/cli/contribution.js.map +1 -0
- package/dist/cli/node-application.cjs +119 -87
- package/dist/cli/node-application.cjs.map +1 -1
- package/dist/cli/node-application.d.cts +2 -8
- package/dist/cli/node-application.d.mts +2 -8
- package/dist/cli/node-application.d.ts +2 -8
- package/dist/cli/node-application.js +12 -22
- package/dist/cli/program.cjs +87 -2756
- package/dist/cli/program.cjs.map +1 -1
- package/dist/cli/program.d.cts +11 -332
- package/dist/cli/program.d.mts +11 -332
- package/dist/cli/program.d.ts +11 -332
- package/dist/cli/program.js +4 -28
- package/dist/cli.cjs +0 -3
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.cts +0 -1
- package/dist/cli.d.mts +0 -1
- package/dist/cli.d.ts +0 -1
- package/dist/cli.js +6 -14
- package/dist/define.cjs +1 -1
- package/dist/define.cjs.map +1 -1
- package/dist/docker/cache-administration.cjs +8 -0
- package/dist/docker/cache-administration.cjs.map +1 -0
- package/dist/docker/cache-administration.d.cts +33 -0
- package/dist/docker/cache-administration.d.mts +33 -0
- package/dist/docker/cache-administration.d.ts +33 -0
- package/dist/docker/cache-administration.js +6 -0
- package/dist/docker/cache-administration.js.map +1 -0
- package/dist/docker/cache-live.cjs +27 -0
- package/dist/docker/cache-live.cjs.map +1 -0
- package/dist/docker/cache-live.d.cts +3 -0
- package/dist/docker/cache-live.d.mts +3 -0
- package/dist/docker/cache-live.d.ts +3 -0
- package/dist/docker/cache-live.js +6 -0
- package/dist/docker/cache-live.js.map +1 -0
- package/dist/docker/cli/contribution.cjs +223 -0
- package/dist/docker/cli/contribution.cjs.map +1 -0
- package/dist/docker/cli/contribution.d.cts +48 -0
- package/dist/docker/cli/contribution.d.mts +48 -0
- package/dist/docker/cli/contribution.d.ts +48 -0
- package/dist/docker/cli/contribution.js +8 -0
- package/dist/docker/cli/contribution.js.map +1 -0
- package/dist/eval/cli/contribution.cjs +62 -0
- package/dist/eval/cli/contribution.cjs.map +1 -0
- package/dist/eval/cli/contribution.d.cts +21 -0
- package/dist/eval/cli/contribution.d.mts +21 -0
- package/dist/eval/cli/contribution.d.ts +21 -0
- package/dist/eval/cli/contribution.js +8 -0
- package/dist/eval/cli/contribution.js.map +1 -0
- package/dist/eval/host/index.cjs +23 -0
- package/dist/eval/host/index.cjs.map +1 -0
- package/dist/eval/host/index.d.cts +27 -0
- package/dist/eval/host/index.d.mts +27 -0
- package/dist/eval/host/index.d.ts +27 -0
- package/dist/eval/host/index.js +8 -0
- package/dist/eval/host/index.js.map +1 -0
- package/dist/eval/host/index.mjs +8 -0
- package/dist/eval/host/index.mjs.map +1 -0
- package/dist/experiment/host/cli/contribution.cjs +835 -0
- package/dist/experiment/host/cli/contribution.cjs.map +1 -0
- package/dist/experiment/host/cli/contribution.d.cts +329 -0
- package/dist/experiment/host/cli/contribution.d.mts +329 -0
- package/dist/experiment/host/cli/contribution.d.ts +329 -0
- package/dist/experiment/host/cli/contribution.js +22 -0
- package/dist/experiment/host/cli/contribution.js.map +1 -0
- package/dist/experiment/host/cli/index.cjs +9 -0
- package/dist/experiment/host/cli/index.cjs.map +1 -0
- package/dist/experiment/host/cli/index.d.cts +2 -0
- package/dist/experiment/host/cli/index.d.mts +2 -0
- package/dist/experiment/host/cli/index.d.ts +2 -0
- package/dist/experiment/host/cli/index.js +10 -0
- package/dist/experiment/host/cli/index.js.map +1 -0
- package/dist/experiment/host/cli/terminal.cjs +15 -0
- package/dist/experiment/host/cli/terminal.cjs.map +1 -0
- package/dist/experiment/host/cli/terminal.d.cts +14 -0
- package/dist/experiment/host/cli/terminal.d.mts +14 -0
- package/dist/experiment/host/cli/terminal.d.ts +14 -0
- package/dist/experiment/host/cli/terminal.js +8 -0
- package/dist/experiment/host/cli/terminal.js.map +1 -0
- package/dist/experiment/host/index.cjs +35 -58
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/experiment/host/index.d.cts +5 -79
- package/dist/experiment/host/index.d.mts +5 -79
- package/dist/experiment/host/index.d.ts +5 -79
- package/dist/experiment/host/index.js +4 -2
- package/dist/experiment/host/index.mjs +4 -2
- package/dist/experiment/host/operations.cjs +678 -0
- package/dist/experiment/host/operations.cjs.map +1 -0
- package/dist/experiment/host/operations.d.cts +19 -0
- package/dist/experiment/host/operations.d.mts +19 -0
- package/dist/experiment/host/operations.d.ts +19 -0
- package/dist/experiment/host/operations.js +24 -0
- package/dist/experiment/host/operations.js.map +1 -0
- package/dist/experiment/host/presentation.cjs +81 -0
- package/dist/experiment/host/presentation.cjs.map +1 -0
- package/dist/experiment/host/presentation.d.cts +9 -0
- package/dist/experiment/host/presentation.d.mts +9 -0
- package/dist/experiment/host/presentation.d.ts +9 -0
- package/dist/experiment/host/presentation.js +8 -0
- package/dist/experiment/host/presentation.js.map +1 -0
- package/dist/experiment/host/teardown.cjs +394 -0
- package/dist/experiment/host/teardown.cjs.map +1 -0
- package/dist/experiment/host/teardown.d.cts +5 -0
- package/dist/experiment/host/teardown.d.mts +5 -0
- package/dist/experiment/host/teardown.d.ts +5 -0
- package/dist/experiment/host/teardown.js +8 -0
- package/dist/experiment/host/teardown.js.map +1 -0
- package/dist/experiment/host/types.cjs +9 -0
- package/dist/experiment/host/types.cjs.map +1 -0
- package/dist/experiment/host/types.d.cts +423 -0
- package/dist/experiment/host/types.d.mts +423 -0
- package/dist/experiment/host/types.d.ts +423 -0
- package/dist/experiment/host/types.js +6 -0
- package/dist/experiment/host/types.js.map +1 -0
- package/dist/i18n/en.cjs +8 -50
- package/dist/i18n/en.cjs.map +1 -1
- package/dist/i18n/en.d.cts +2 -6
- package/dist/i18n/en.d.mts +2 -6
- package/dist/i18n/en.d.ts +2 -6
- package/dist/o11y/project.json +6 -0
- package/dist/project/cli/contribution.cjs +66 -0
- package/dist/project/cli/contribution.cjs.map +1 -0
- package/dist/project/cli/contribution.d.cts +17 -0
- package/dist/project/cli/contribution.d.mts +17 -0
- package/dist/project/cli/contribution.d.ts +17 -0
- package/dist/project/cli/contribution.js +8 -0
- package/dist/project/cli/contribution.js.map +1 -0
- package/dist/project/cli/index.cjs +7 -0
- package/dist/project/cli/index.cjs.map +1 -0
- package/dist/project/cli/index.d.cts +1 -0
- package/dist/project/cli/index.d.mts +1 -0
- package/dist/project/cli/index.d.ts +1 -0
- package/dist/project/cli/index.js +8 -0
- package/dist/project/cli/index.js.map +1 -0
- package/dist/project/host/index.cjs +11 -0
- package/dist/project/host/index.cjs.map +1 -0
- package/dist/project/host/index.d.cts +4 -0
- package/dist/project/host/index.d.mts +4 -0
- package/dist/project/host/index.d.ts +4 -0
- package/dist/project/host/index.js +14 -0
- package/dist/project/host/index.js.map +1 -0
- package/dist/project/host/index.mjs +14 -0
- package/dist/project/host/index.mjs.map +1 -0
- package/dist/project/host.cjs +59 -0
- package/dist/project/host.cjs.map +1 -0
- package/dist/project/host.d.cts +17 -0
- package/dist/project/host.d.mts +17 -0
- package/dist/project/host.d.ts +17 -0
- package/dist/project/host.js +6 -0
- package/dist/project/host.js.map +1 -0
- package/dist/project/index.cjs +11 -0
- package/dist/project/index.cjs.map +1 -0
- package/dist/project/index.d.cts +4 -0
- package/dist/project/index.d.mts +4 -0
- package/dist/project/index.d.ts +4 -0
- package/dist/project/index.js +14 -0
- package/dist/project/index.js.map +1 -0
- package/dist/project/node.cjs +91 -0
- package/dist/project/node.cjs.map +1 -0
- package/dist/project/node.d.cts +6 -0
- package/dist/project/node.d.mts +6 -0
- package/dist/project/node.d.ts +6 -0
- package/dist/project/node.js +12 -0
- package/dist/project/node.js.map +1 -0
- package/dist/project/services.cjs +17 -0
- package/dist/project/services.cjs.map +1 -0
- package/dist/project/services.d.cts +47 -0
- package/dist/project/services.d.mts +47 -0
- package/dist/project/services.d.ts +47 -0
- package/dist/project/services.js +12 -0
- package/dist/project/services.js.map +1 -0
- package/dist/project/templates.cjs +28 -0
- package/dist/project/templates.cjs.map +1 -0
- package/dist/project/templates.d.cts +4 -0
- package/dist/project/templates.d.mts +4 -0
- package/dist/project/templates.d.ts +4 -0
- package/dist/project/templates.js +12 -0
- package/dist/project/templates.js.map +1 -0
- package/dist/project.json +6 -0
- package/dist/record/family/catalog.d.cts +10 -10
- package/dist/record/family/catalog.d.mts +10 -10
- package/dist/record/family/catalog.d.ts +10 -10
- package/dist/record/family/file-changes.d.cts +8 -8
- package/dist/record/family/file-changes.d.mts +8 -8
- package/dist/record/family/file-changes.d.ts +8 -8
- package/dist/record/host/cli/contribution.cjs +206 -0
- package/dist/record/host/cli/contribution.cjs.map +1 -0
- package/dist/record/host/cli/contribution.d.cts +32 -0
- package/dist/record/host/cli/contribution.d.mts +32 -0
- package/dist/record/host/cli/contribution.d.ts +32 -0
- package/dist/record/host/cli/contribution.js +10 -0
- package/dist/record/host/cli/contribution.js.map +1 -0
- package/dist/record/host/cli/index.cjs +8 -0
- package/dist/record/host/cli/index.cjs.map +1 -0
- package/dist/record/host/cli/index.d.cts +1 -0
- package/dist/record/host/cli/index.d.mts +1 -0
- package/dist/record/host/cli/index.d.ts +1 -0
- package/dist/record/host/cli/index.js +10 -0
- package/dist/record/host/cli/index.js.map +1 -0
- package/dist/record/host/cli/presentation.cjs +122 -0
- package/dist/record/host/cli/presentation.cjs.map +1 -0
- package/dist/record/host/cli/presentation.d.cts +7 -0
- package/dist/record/host/cli/presentation.d.mts +7 -0
- package/dist/record/host/cli/presentation.d.ts +7 -0
- package/dist/record/host/cli/presentation.js +12 -0
- package/dist/record/host/cli/presentation.js.map +1 -0
- package/dist/record/host/index.cjs.map +1 -1
- package/dist/record/host/index.d.cts +1 -1
- package/dist/record/host/index.d.mts +1 -1
- package/dist/record/host/index.d.ts +1 -1
- package/dist/record/host/runtime.cjs +184 -1
- 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 +120 -0
- package/dist/record/host/types.d.mts +120 -0
- package/dist/record/host/types.d.ts +120 -0
- package/dist/record/project.json +6 -0
- package/dist/report/assets/styles.css +80 -0
- package/dist/report/cli/contribution.cjs +325 -0
- package/dist/report/cli/contribution.cjs.map +1 -0
- package/dist/report/cli/contribution.d.cts +143 -0
- package/dist/report/cli/contribution.d.mts +143 -0
- package/dist/report/cli/contribution.d.ts +143 -0
- package/dist/report/cli/contribution.js +12 -0
- package/dist/report/cli/contribution.js.map +1 -0
- package/dist/report/client-dist/app.js +9 -9
- package/dist/report/components/attempt-detail/content.cjs +1 -1
- package/dist/report/components/attempt-detail/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.cjs +5 -0
- package/dist/report/components/entity-lists/compute.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.d.cts +2 -0
- package/dist/report/components/entity-lists/compute.d.mts +2 -0
- package/dist/report/components/entity-lists/compute.d.ts +2 -0
- package/dist/report/components/entity-lists/content.cjs +35 -12
- package/dist/report/components/entity-lists/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.cjs +0 -3
- package/dist/report/components/entity-lists/index.cjs.map +1 -1
- package/dist/report/components/summaries/index.cjs +2 -4
- package/dist/report/components/summaries/index.cjs.map +1 -1
- package/dist/report/definition/cell.cjs +7 -2
- package/dist/report/definition/cell.cjs.map +1 -1
- package/dist/report/definition/cell.d.cts +2 -0
- package/dist/report/definition/cell.d.mts +2 -0
- package/dist/report/definition/cell.d.ts +2 -0
- package/dist/report/definition/primitives/assertion-evidence.cjs +190 -4
- package/dist/report/definition/primitives/assertion-evidence.cjs.map +1 -1
- package/dist/report/definition/primitives/assertion-evidence.d.cts +4 -0
- package/dist/report/definition/primitives/assertion-evidence.d.mts +4 -0
- package/dist/report/definition/primitives/assertion-evidence.d.ts +4 -0
- package/dist/report/execution/machine.cjs +2 -3
- package/dist/report/execution/machine.cjs.map +1 -1
- package/dist/report/execution/machine.d.cts +11 -8
- package/dist/report/execution/machine.d.mts +11 -8
- package/dist/report/execution/machine.d.ts +11 -8
- package/dist/report/host/from-record.cjs +13 -8
- package/dist/report/host/from-record.cjs.map +1 -1
- package/dist/report/host/index.cjs +5 -1
- package/dist/report/host/index.cjs.map +1 -1
- package/dist/report/host/index.d.cts +1 -0
- package/dist/report/host/index.d.mts +1 -0
- package/dist/report/host/index.d.ts +1 -0
- package/dist/report/host/index.js +8 -2
- package/dist/report/host/index.mjs +8 -2
- package/dist/report/host/machine.cjs +23 -22
- package/dist/report/host/machine.cjs.map +1 -1
- package/dist/report/host/machine.d.cts +1 -1
- package/dist/report/host/machine.d.mts +1 -1
- package/dist/report/host/machine.d.ts +1 -1
- package/dist/report/host/node/loader.cjs +4 -2
- package/dist/report/host/node/loader.cjs.map +1 -1
- package/dist/report/host/node/loader.d.cts +3 -1
- package/dist/report/host/node/loader.d.mts +3 -1
- package/dist/report/host/node/loader.d.ts +3 -1
- package/dist/report/host/node.cjs +44 -9
- package/dist/report/host/node.cjs.map +1 -1
- package/dist/report/host/node.d.cts +13 -3
- package/dist/report/host/node.d.mts +13 -3
- package/dist/report/host/node.d.ts +13 -3
- package/dist/report/host/node.js +44 -32
- package/dist/report/host/operations.cjs +14 -0
- package/dist/report/host/operations.cjs.map +1 -0
- package/dist/report/host/operations.d.cts +39 -0
- package/dist/report/host/operations.d.mts +39 -0
- package/dist/report/host/operations.d.ts +39 -0
- package/dist/report/host/operations.js +10 -0
- package/dist/report/host/operations.js.map +1 -0
- package/dist/report/model/chart/plot.cjs +1 -1
- package/dist/report/model/chart/plot.cjs.map +1 -1
- package/dist/report/model/locale.cjs +4 -0
- package/dist/report/model/locale.cjs.map +1 -1
- package/dist/report/model/locale.d.cts +3 -1
- package/dist/report/model/locale.d.mts +3 -1
- package/dist/report/model/locale.d.ts +3 -1
- package/dist/report/react/styles.css +80 -0
- package/dist/runner/build-preparation.cjs +5 -5
- package/dist/runner/build-preparation.cjs.map +1 -1
- package/dist/runner/build-preparation.d.cts +2 -3
- package/dist/runner/build-preparation.d.mts +2 -3
- package/dist/runner/build-preparation.d.ts +2 -3
- package/dist/runner/feedback/coordinator.cjs +18 -15
- package/dist/runner/feedback/coordinator.cjs.map +1 -1
- package/dist/runner/feedback/coordinator.d.cts +6 -0
- package/dist/runner/feedback/coordinator.d.mts +6 -0
- package/dist/runner/feedback/coordinator.d.ts +6 -0
- package/dist/runner/ledger.cjs +3 -13
- package/dist/runner/ledger.cjs.map +1 -1
- package/dist/runner/ledger.d.cts +1 -3
- package/dist/runner/ledger.d.mts +1 -3
- package/dist/runner/ledger.d.ts +1 -3
- package/dist/runner/run.cjs +63 -18
- package/dist/runner/run.cjs.map +1 -1
- package/dist/runner/session.cjs +10 -0
- package/dist/runner/session.cjs.map +1 -1
- package/dist/runner/session.d.cts +25 -0
- package/dist/runner/session.d.mts +25 -0
- package/dist/runner/session.d.ts +25 -0
- package/dist/runner/types.cjs.map +1 -1
- package/dist/runner/types.d.cts +1 -2
- package/dist/runner/types.d.mts +1 -2
- package/dist/runner/types.d.ts +1 -2
- package/dist/sandbox/build-coordinator.cjs +38 -19
- package/dist/sandbox/build-coordinator.cjs.map +1 -1
- package/dist/sandbox/build-coordinator.d.cts +47 -7
- package/dist/sandbox/build-coordinator.d.mts +47 -7
- package/dist/sandbox/build-coordinator.d.ts +47 -7
- package/dist/sandbox/build-coordinator.js +8 -4
- package/dist/sandbox/cli/contribution.cjs +128 -0
- package/dist/sandbox/cli/contribution.cjs.map +1 -0
- package/dist/sandbox/cli/contribution.d.cts +71 -0
- package/dist/sandbox/cli/contribution.d.mts +71 -0
- package/dist/sandbox/cli/contribution.d.ts +71 -0
- package/dist/sandbox/cli/contribution.js +8 -0
- package/dist/sandbox/cli/contribution.js.map +1 -0
- package/dist/sandbox/cli-commands.cjs +14 -21
- package/dist/sandbox/cli-commands.cjs.map +1 -1
- package/dist/sandbox/cli-commands.d.cts +12 -8
- package/dist/sandbox/cli-commands.d.mts +12 -8
- package/dist/sandbox/cli-commands.d.ts +12 -8
- package/dist/sandbox/compose.cjs +22 -2
- package/dist/sandbox/compose.cjs.map +1 -1
- package/dist/sandbox/compose.d.cts +1 -1
- package/dist/sandbox/compose.d.mts +1 -1
- package/dist/sandbox/compose.d.ts +1 -1
- package/dist/sandbox/docker-profile/cli.cjs +13 -9
- package/dist/sandbox/docker-profile/cli.cjs.map +1 -1
- package/dist/sandbox/docker-profile/cli.d.cts +2 -0
- package/dist/sandbox/docker-profile/cli.d.mts +2 -0
- package/dist/sandbox/docker-profile/cli.d.ts +2 -0
- package/dist/sandbox/docker-profile/runtime.cjs +68 -7
- package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
- package/dist/sandbox/docker-profile/runtime.d.cts +19 -1
- package/dist/sandbox/docker-profile/runtime.d.mts +19 -1
- package/dist/sandbox/docker-profile/runtime.d.ts +19 -1
- package/dist/sandbox/docker-profile/runtime.js +10 -8
- package/dist/sandbox/docker-profile/schema.cjs +68 -19
- package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
- package/dist/sandbox/docker-profile/schema.d.cts +23 -9
- package/dist/sandbox/docker-profile/schema.d.mts +23 -9
- package/dist/sandbox/docker-profile/schema.d.ts +23 -9
- package/dist/sandbox/docker-task-build-cache.cjs +532 -0
- package/dist/sandbox/docker-task-build-cache.cjs.map +1 -0
- package/dist/sandbox/docker-task-build-cache.d.cts +68 -0
- package/dist/sandbox/docker-task-build-cache.d.mts +68 -0
- package/dist/sandbox/docker-task-build-cache.d.ts +68 -0
- package/dist/sandbox/docker-task-build-cache.js +20 -0
- package/dist/sandbox/docker-task-build-cache.js.map +1 -0
- package/dist/sandbox/docker.cjs +50 -0
- package/dist/sandbox/docker.cjs.map +1 -1
- package/dist/sandbox/docker.d.cts +15 -0
- package/dist/sandbox/docker.d.mts +15 -0
- package/dist/sandbox/docker.d.ts +15 -0
- package/dist/sandbox/dockerfile-build.cjs +55 -5
- package/dist/sandbox/dockerfile-build.cjs.map +1 -1
- package/dist/sandbox/dockerfile-build.d.cts +2 -2
- package/dist/sandbox/dockerfile-build.d.mts +2 -2
- package/dist/sandbox/dockerfile-build.d.ts +2 -2
- package/dist/sandbox/index.cjs +5 -3
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.d.cts +4 -3
- package/dist/sandbox/index.d.mts +4 -3
- package/dist/sandbox/index.d.ts +4 -3
- package/dist/sandbox/index.js +16 -14
- package/dist/sandbox/index.mjs +16 -14
- package/dist/sandbox/keep.cjs +1 -3
- package/dist/sandbox/keep.cjs.map +1 -1
- package/dist/sandbox/layer.cjs +70 -79
- package/dist/sandbox/layer.cjs.map +1 -1
- package/dist/sandbox/layer.d.cts +6 -12
- package/dist/sandbox/layer.d.mts +6 -12
- package/dist/sandbox/layer.d.ts +6 -12
- package/dist/sandbox/layer.js +16 -18
- package/dist/sandbox/ledger-paths.cjs +4 -18
- package/dist/sandbox/ledger-paths.cjs.map +1 -1
- package/dist/sandbox/ledger-paths.d.cts +3 -13
- package/dist/sandbox/ledger-paths.d.mts +3 -13
- package/dist/sandbox/ledger-paths.d.ts +3 -13
- package/dist/sandbox/ledger-paths.js +4 -8
- package/dist/sandbox/registry.cjs +1 -1
- package/dist/sandbox/registry.cjs.map +1 -1
- package/dist/sandbox/runtime.cjs +27 -37
- package/dist/sandbox/runtime.cjs.map +1 -1
- package/dist/sandbox/runtime.d.cts +1 -2
- package/dist/sandbox/runtime.d.mts +1 -2
- package/dist/sandbox/runtime.d.ts +1 -2
- package/dist/sandbox/runtime.js +6 -8
- package/dist/sandbox/types.cjs.map +1 -1
- package/dist/sandbox/types.d.cts +3 -3
- package/dist/sandbox/types.d.mts +3 -3
- package/dist/sandbox/types.d.ts +3 -3
- package/dist/sources/project.json +6 -0
- package/dist/vendor/remark/remark-gfm.cjs +72 -72
- package/dist/vendor/remark/remark-gfm.cjs.map +1 -1
- package/dist/vendor/remark/remark-parse.cjs +54 -54
- package/dist/vendor/remark/remark-parse.cjs.map +1 -1
- package/dist/vendor/remark/remark.cjs +125 -125
- package/dist/vendor/remark/remark.cjs.map +2 -2
- package/docs-site/zh/README.md +1 -1
- package/docs-site/zh/explanation/assert.mdx +4 -0
- package/docs-site/zh/explanation/judge.mdx +40 -9
- package/docs-site/zh/reference/cli.mdx +67 -43
- package/docs-site/zh/reference/define-agent.mdx +2 -2
- package/docs-site/zh/reference/report-components.mdx +4 -3
- package/docs-site/zh/troubleshooting/debug-sandbox.mdx +6 -0
- package/docs-site/zh/troubleshooting/debugging.mdx +28 -1
- package/docs-site/zh/tutorials/agent-feedback-loop.mdx +4 -2
- package/docs-site/zh/tutorials/concurrency.mdx +2 -2
- package/docs-site/zh/tutorials/custom-reports.mdx +175 -9
- package/docs-site/zh/tutorials/docker-in-docker.mdx +52 -7
- package/docs-site/zh/tutorials/eval-groups.mdx +1 -2
- package/docs-site/zh/tutorials/evaluation-kinds.mdx +39 -6
- package/docs-site/zh/tutorials/nixos-managed-dind.mdx +14 -5
- package/docs-site/zh/tutorials/sandbox-providers.mdx +1 -28
- package/docs-site/zh/tutorials/sandbox-reuse.mdx +1 -1
- package/docs-site/zh/tutorials/viewing-results.mdx +2 -0
- package/package.json +24 -19
- package/README.md +0 -176
- package/README.zh.md +0 -176
- package/dist/cli/record.cjs +0 -246
- package/dist/cli/record.cjs.map +0 -1
- package/dist/cli/record.d.cts +0 -40
- package/dist/cli/record.d.mts +0 -40
- package/dist/cli/record.d.ts +0 -40
- package/dist/cli/record.js +0 -10
- package/dist/cli/record.js.map +0 -1
- package/dist/sandbox/local.cjs +0 -361
- package/dist/sandbox/local.cjs.map +0 -1
- package/dist/sandbox/local.d.cts +0 -80
- package/dist/sandbox/local.d.mts +0 -80
- package/dist/sandbox/local.d.ts +0 -80
- package/dist/sandbox/local.js +0 -6
- package/dist/sandbox/local.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":";;;AAkBa,QAAA,mBAAmB,GAAkB,MAAM,CAAC,iCAAiC,CAAC,CAAC;AAC/E,QAAA,uBAAuB,GAAkB,MAAM,CAAC,qCAAqC,CAAC,CAAC;AACvF,QAAA,qBAAqB,GAAkB,MAAM,CAAC,mCAAmC,CAAC,CAAC;AACnF,QAAA,oBAAoB,GAAkB,MAAM,CAAC,kCAAkC,CAAC,CAAC;AACjF,QAAA,wBAAwB,GAAkB,MAAM,CAAC,sCAAsC,CAAC,CAAC","sourcesContent":["import type { Effect } from \"effect\";\nimport type { RecordAttachmentBlobs, RecordAttachmentPayloadSnapshot, RecordAttachmentWrite, } from \"../attachment/types.ts\";\nimport type { AssertionsAttachment, } from \"../family/assertions.ts\";\nimport type { ArtifactsAttachment, } from \"../family/artifacts.ts\";\nimport type { FileChangesAttachment, } from \"../family/file-changes.ts\";\nimport type { AttemptObservabilityAttachment, RunObservabilityAttachment, } from \"../family/observability.ts\";\nimport type { SourcesAttachment, } from \"../family/sources.ts\";\nimport type { SourceNavigationAttachment, } from \"../family/source-navigation.ts\";\nimport type { AttemptDocument, MemberDocument, RecordSlotIdentity, RunDocument, } from \"../model/core.ts\";\nimport type { RunContext } from \"../model/run-context.ts\";\nimport type { AttemptId, ExperimentId, RunId, SlotId, UtcMillis, } from \"../model/identifiers.ts\";\nimport type { RecordRoot } from \"../platform/root.ts\";\nimport type { RecordBackupState } from \"../platform/services.ts\";\nimport type { RecordCoreRead, RecordWarning } from \"../model/read-state.ts\";\nimport type { NonEmptyRecordIssues } from \"../errors/record-errors.ts\";\nimport type { RecordMaintenanceError, RecordMaintenanceOpenError, RecordReaderOpenError, RecordReaderReadError, } from \"../reader/errors.ts\";\nimport type { RecordWriteError } from \"../writer/types.ts\";\nimport type { RecordAttachmentMigrationRetention } from \"../definition/attachment.ts\";\nexport const selectedRunRefBrand: unique symbol = Symbol(\"@niceeval/record/SelectedRunRef\");\nexport const selectedAttemptRefBrand: unique symbol = Symbol(\"@niceeval/record/SelectedAttemptRef\");\nexport const selectedOwnerRefBrand: unique symbol = Symbol(\"@niceeval/record/SelectedOwnerRef\");\nexport const runWriteSessionBrand: unique symbol = Symbol(\"@niceeval/record/RunWriteSession\");\nexport const attemptWriteSessionBrand: unique symbol = Symbol(\"@niceeval/record/AttemptWriteSession\");\n/** Nominal ref issued only by one live RecordReadSession. */\nexport interface SelectedRunRef {\n readonly runId: RunId;\n readonly [selectedRunRefBrand]: () => void;\n}\n/** Nominal exact reference to one immutable origin Attempt. */\nexport interface SelectedAttemptRef {\n readonly originRunId: RunId;\n readonly attemptId: AttemptId;\n readonly [selectedAttemptRefBrand]: () => void;\n}\n/** Owner handle for a later lazy fixed-family read. */\nexport interface SelectedOwnerRef {\n readonly [selectedOwnerRefBrand]: () => void;\n}\n/**\n * The Host exposes the fixed-family states without importing maintenance.\n * A reachable older version is migration-required. Any other well-formed,\n * non-current version remains unsupported data; malformed envelopes and\n * closures are invalid, never a reader-wide failure.\n */\nexport type FixedFamilyRead<Payload> = {\n readonly state: \"migration-required\";\n readonly family: string;\n readonly fromSchemaVersion: number;\n readonly toSchemaVersion: number;\n readonly command: \"niceeval migrate\";\n} | {\n readonly state: \"available\";\n /** Direct business fields from the current owner value definition. */\n readonly value: RecordAttachmentPayloadSnapshot<Payload>;\n /** Owner-local blob closure for refs found inside `value`. */\n readonly blobs: RecordAttachmentBlobs;\n} | {\n readonly state: \"not-recorded\";\n} | {\n readonly state: \"unsupported\";\n readonly family: string;\n readonly schemaVersion: number;\n} | {\n readonly state: \"invalid\";\n readonly issues: NonEmptyRecordIssues;\n};\n/**\n * These aliases are deliberately owner- and method-specific. Runtime checks\n * additionally require the one installed static descriptor for each method,\n * so a caller cannot introduce another family through this boundary.\n */\nexport type SourcesWrite<E = never, R = never> = RecordAttachmentWrite<\"run\", E, R>;\nexport type RunObservabilityWrite<E = never, R = never> = RecordAttachmentWrite<\"run\", E, R>;\nexport type RunArtifactsWrite<E = never, R = never> = RecordAttachmentWrite<\"run\", E, R>;\nexport type AssertionsWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type AttemptObservabilityWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type FileChangesWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type SourceNavigationWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type AttemptArtifactsWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type RecordSelectionProblem = {\n readonly code: \"incomplete-run\";\n readonly runId: RunId;\n} | {\n readonly code: \"record-core-invalid\";\n readonly runId: RunId;\n} | {\n readonly code: \"selection-run-missing\";\n readonly runId: RunId;\n};\nexport interface RecordSelectionRequest {\n /** Omitted means every Run whose complete marker existed during this scan. */\n readonly runIds?: readonly RunId[];\n}\n/**\n * Closed Run facts verified by scanSelection. They retain the denominator\n * frame if a later member read becomes unavailable; they are not a durable\n * schema and contain no owner capability.\n */\nexport interface SelectedRunFacts {\n readonly run: SelectedRunRef;\n readonly experimentId: ExperimentId;\n readonly startedAt: UtcMillis;\n readonly completedAt: UtcMillis;\n readonly expectedSlots: readonly RecordSlotIdentity[];\n}\n/** A closed candidate set with only selected minimal Core; never Attachment payloads. */\nexport interface RecordSelection {\n readonly runRefs: readonly SelectedRunRef[];\n readonly runFacts: readonly SelectedRunFacts[];\n readonly expectedSlots: readonly {\n readonly run: SelectedRunRef;\n /** Closed at scan time from the selected Run, not stored in RecordSlotIdentity. */\n readonly experimentId: ExperimentId;\n readonly slot: RecordSlotIdentity;\n }[];\n readonly problems: readonly RecordSelectionProblem[];\n readonly warnings: readonly RecordWarning[];\n}\nexport interface ReadableRun {\n readonly ref: SelectedRunRef;\n readonly owner: SelectedOwnerRef;\n readonly document: RunDocument;\n readonly members: readonly {\n readonly document: MemberDocument;\n readonly attempt: SelectedAttemptRef | null;\n }[];\n}\nexport interface ReadableAttempt {\n readonly ref: SelectedAttemptRef;\n readonly owner: SelectedOwnerRef;\n readonly document: AttemptDocument;\n /**\n * Verified while resolving the exact nominal Attempt reference. It is the\n * only origin Run Core projection Sample may use. In particular, a carried\n * or accepted member must retain this origin's execution facts rather than\n * substituting the selected target Run.\n */\n readonly origin: {\n readonly owner: SelectedOwnerRef;\n readonly runId: RunId;\n readonly experimentId: ExperimentId;\n readonly startedAt: UtcMillis;\n readonly context: RunContext;\n };\n}\nexport interface RecordReadSession {\n readonly selectRuns: (request?: RecordSelectionRequest) => Effect.Effect<RecordSelection, RecordReaderReadError>;\n readonly readRun: (ref: SelectedRunRef) => Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError>;\n readonly readAttempt: (ref: SelectedAttemptRef) => Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError>;\n readonly readAssertions: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<AssertionsAttachment>, RecordReaderReadError>;\n readonly readAttemptObservability: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<AttemptObservabilityAttachment>, RecordReaderReadError>;\n readonly readFileChanges: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<FileChangesAttachment>, RecordReaderReadError>;\n readonly readSourceNavigation: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<SourceNavigationAttachment>, RecordReaderReadError>;\n readonly readAttemptArtifacts: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<ArtifactsAttachment>, RecordReaderReadError>;\n readonly readSources: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<SourcesAttachment>, RecordReaderReadError>;\n readonly readRunObservability: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<RunObservabilityAttachment>, RecordReaderReadError>;\n readonly readRunArtifacts: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<ArtifactsAttachment>, RecordReaderReadError>;\n}\nexport interface CreateRunRequest {\n readonly root: RecordRoot;\n readonly experimentId: ExperimentId;\n /** Required historical interpretation facts, written once into `run.json`. */\n readonly context: RunContext;\n readonly startedAt: UtcMillis;\n readonly expectedSlots: readonly RecordSlotIdentity[];\n}\nexport interface CreateReferenceRunRequest extends CreateRunRequest {\n}\nexport interface RunCompletion {\n readonly completedAt: UtcMillis;\n}\nexport interface RecordSealReceipt {\n readonly runId: RunId;\n readonly state: \"sealed\";\n}\nexport interface AttemptWriteSession {\n readonly attemptId: AttemptId;\n readonly slotId: SlotId;\n readonly [attemptWriteSessionBrand]: () => void;\n readonly complete: (outcome: AttemptDocument[\"outcome\"]) => Effect.Effect<void, RecordWriteError>;\n readonly writeAssertions: <E, R>(value: AssertionsWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeAttemptObservability: <E, R>(value: AttemptObservabilityWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeFileChanges: <E, R>(value: FileChangesWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeSourceNavigation: <E, R>(value: SourceNavigationWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeAttemptArtifacts: <E, R>(value: AttemptArtifactsWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n}\n/** One session owns exactly one freshly exclusive RunId directory. */\nexport interface RunWriteSession {\n readonly runId: RunId;\n readonly [runWriteSessionBrand]: () => void;\n readonly createAttempt: (input: {\n readonly slotId: SlotId;\n }) => Effect.Effect<AttemptWriteSession, RecordWriteError>;\n readonly referenceAttempt: (input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n }) => Effect.Effect<void, RecordWriteError>;\n /**\n * Explicit adoption / rename: occupy one current target Slot with an already\n * selected origin Attempt. The target Slot identity may differ from the\n * origin Attempt. This is not a generic Attachment writer.\n */\n readonly recordAcceptedMembership: (input: {\n readonly slotId: SlotId;\n readonly attempt: SelectedAttemptRef;\n }) => Effect.Effect<void, RecordWriteError>;\n readonly recordTerminalMember: (input: {\n readonly slotId: SlotId;\n readonly action: \"not-dispatched\" | \"interrupted\";\n }) => Effect.Effect<void, RecordWriteError>;\n readonly writeSources: <E, R>(value: SourcesWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeRunObservability: <E, R>(value: RunObservabilityWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeRunArtifacts: <E, R>(value: RunArtifactsWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly seal: (completion: RunCompletion) => Effect.Effect<RecordSealReceipt, RecordWriteError>;\n}\n/** A Run created solely from already-selected, sealed Attempts. */\nexport interface ReferenceRunWriteSession {\n readonly runId: RunId;\n readonly [runWriteSessionBrand]: () => void;\n readonly referenceAttempt: RunWriteSession[\"referenceAttempt\"];\n readonly recordAcceptedMembership: RunWriteSession[\"recordAcceptedMembership\"];\n readonly recordTerminalMember: RunWriteSession[\"recordTerminalMember\"];\n readonly writeRunObservability: RunWriteSession[\"writeRunObservability\"];\n readonly writeRunArtifacts: RunWriteSession[\"writeRunArtifacts\"];\n readonly seal: RunWriteSession[\"seal\"];\n}\nexport type RecordFormatInspection = {\n readonly state: \"already-current\";\n readonly format: \"niceeval.record\";\n} | {\n readonly state: \"migration-required\";\n readonly format: \"niceeval.record\";\n} | {\n readonly state: \"unsupported-format\";\n readonly format: string;\n};\nexport interface RecordAttachmentMigrationTarget {\n readonly family: string;\n readonly owner: \"attempt\" | \"run\";\n readonly runId: RunId;\n readonly attemptId?: AttemptId;\n readonly fromSchemaVersion: number;\n readonly toSchemaVersion: number;\n readonly retention: RecordAttachmentMigrationRetention;\n}\nexport type RecordMigrationPlan = {\n readonly state: \"already-current\";\n readonly format: \"niceeval.record\";\n} | {\n readonly state: \"migration-required\";\n readonly format: \"niceeval.record\";\n readonly backup: RecordBackupState;\n readonly attachments: readonly RecordAttachmentMigrationTarget[];\n} | {\n readonly state: \"unsupported-format\";\n readonly format: string;\n};\nexport type RecordMigrationReceipt = {\n readonly state: \"already-current\";\n readonly format: \"niceeval.record\";\n} | {\n readonly state: \"migrated\";\n readonly format: \"niceeval.record\";\n readonly attachments: readonly RecordAttachmentMigrationTarget[];\n};\nexport interface RecordMaintenanceSession {\n readonly inspect: () => Effect.Effect<RecordFormatInspection, RecordMaintenanceError>;\n readonly planMigrate: () => Effect.Effect<RecordMigrationPlan, RecordMaintenanceError>;\n readonly applyMigrate: (plan: RecordMigrationPlan) => Effect.Effect<RecordMigrationReceipt, RecordMaintenanceError>;\n}\nexport interface RecordHostSDK {\n readonly current: {\n readonly openRead: (input: {\n readonly root: RecordRoot;\n }) => Effect.Effect<RecordReadSession, RecordReaderOpenError, import(\"effect\").Scope.Scope | import(\"../platform/services.ts\").RecordFileSystem | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n readonly createRun: (request: CreateRunRequest) => Effect.Effect<RunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | import(\"../platform/services.ts\").RecordFileSystem | import(\"../platform/services.ts\").RecordEntropy | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n readonly createReferenceRun: (request: CreateReferenceRunRequest) => Effect.Effect<ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | import(\"../platform/services.ts\").RecordFileSystem | import(\"../platform/services.ts\").RecordEntropy | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n };\n readonly maintenance: {\n readonly open: (input: {\n readonly root: RecordRoot;\n }) => Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import(\"effect\").Scope.Scope | import(\"../platform/services.ts\").RecordFileSystem | import(\"../platform/services.ts\").RecordGit | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":";;;AAoBa,QAAA,mBAAmB,GAAkB,MAAM,CAAC,iCAAiC,CAAC,CAAC;AAC/E,QAAA,uBAAuB,GAAkB,MAAM,CAAC,qCAAqC,CAAC,CAAC;AACvF,QAAA,qBAAqB,GAAkB,MAAM,CAAC,mCAAmC,CAAC,CAAC;AACnF,QAAA,oBAAoB,GAAkB,MAAM,CAAC,kCAAkC,CAAC,CAAC;AACjF,QAAA,wBAAwB,GAAkB,MAAM,CAAC,sCAAsC,CAAC,CAAC","sourcesContent":["import type { Effect } from \"effect\";\nimport type { RecordAttachmentBlobs, RecordAttachmentPayloadSnapshot, RecordAttachmentWrite, } from \"../attachment/types.ts\";\nimport type { AssertionsAttachment, } from \"../family/assertions.ts\";\nimport type { ArtifactsAttachment, } from \"../family/artifacts.ts\";\nimport type { FileChangesAttachment, } from \"../family/file-changes.ts\";\nimport type { AttemptObservabilityAttachment, RunObservabilityAttachment, } from \"../family/observability.ts\";\nimport type { SourcesAttachment, } from \"../family/sources.ts\";\nimport type { SourceNavigationAttachment, } from \"../family/source-navigation.ts\";\nimport type { AttemptDocument, MemberDocument, RecordSlotIdentity, RunDocument, } from \"../model/core.ts\";\nimport type { RunContext } from \"../model/run-context.ts\";\nimport type { AttemptId, ExperimentId, RunId, SlotId, UtcMillis, } from \"../model/identifiers.ts\";\nimport type { RecordRoot } from \"../platform/root.ts\";\nimport type { RecordBackupState } from \"../platform/services.ts\";\nimport type { RecordCoreRead, RecordWarning } from \"../model/read-state.ts\";\nimport type { NonEmptyRecordIssues } from \"../errors/record-errors.ts\";\nimport type { RecordMaintenanceError, RecordMaintenanceOpenError, RecordReaderOpenError, RecordReaderReadError, } from \"../reader/errors.ts\";\nimport type { RecordWriteError } from \"../writer/types.ts\";\nimport type { RecordAttachmentMigrationRetention } from \"../definition/attachment.ts\";\nimport type { RecordFileSystemError } from \"../platform/errors.ts\";\nimport type { RecordAutoMigrationGitSaveRequired } from \"../reader/errors.ts\";\nexport const selectedRunRefBrand: unique symbol = Symbol(\"@niceeval/record/SelectedRunRef\");\nexport const selectedAttemptRefBrand: unique symbol = Symbol(\"@niceeval/record/SelectedAttemptRef\");\nexport const selectedOwnerRefBrand: unique symbol = Symbol(\"@niceeval/record/SelectedOwnerRef\");\nexport const runWriteSessionBrand: unique symbol = Symbol(\"@niceeval/record/RunWriteSession\");\nexport const attemptWriteSessionBrand: unique symbol = Symbol(\"@niceeval/record/AttemptWriteSession\");\n/** Nominal ref issued only by one live RecordReadSession. */\nexport interface SelectedRunRef {\n readonly runId: RunId;\n readonly [selectedRunRefBrand]: () => void;\n}\n/** Nominal exact reference to one immutable origin Attempt. */\nexport interface SelectedAttemptRef {\n readonly originRunId: RunId;\n readonly attemptId: AttemptId;\n readonly [selectedAttemptRefBrand]: () => void;\n}\n/** Owner handle for a later lazy fixed-family read. */\nexport interface SelectedOwnerRef {\n readonly [selectedOwnerRefBrand]: () => void;\n}\n/**\n * The Host exposes the fixed-family states without importing maintenance.\n * A reachable older version is migration-required. Any other well-formed,\n * non-current version remains unsupported data; malformed envelopes and\n * closures are invalid, never a reader-wide failure.\n */\nexport type FixedFamilyRead<Payload> = {\n readonly state: \"migration-required\";\n readonly family: string;\n readonly fromSchemaVersion: number;\n readonly toSchemaVersion: number;\n readonly command: \"niceeval migrate\";\n} | {\n readonly state: \"available\";\n /** Direct business fields from the current owner value definition. */\n readonly value: RecordAttachmentPayloadSnapshot<Payload>;\n /** Owner-local blob closure for refs found inside `value`. */\n readonly blobs: RecordAttachmentBlobs;\n} | {\n readonly state: \"not-recorded\";\n} | {\n readonly state: \"unsupported\";\n readonly family: string;\n readonly schemaVersion: number;\n} | {\n readonly state: \"invalid\";\n readonly issues: NonEmptyRecordIssues;\n};\n/**\n * These aliases are deliberately owner- and method-specific. Runtime checks\n * additionally require the one installed static descriptor for each method,\n * so a caller cannot introduce another family through this boundary.\n */\nexport type SourcesWrite<E = never, R = never> = RecordAttachmentWrite<\"run\", E, R>;\nexport type RunObservabilityWrite<E = never, R = never> = RecordAttachmentWrite<\"run\", E, R>;\nexport type RunArtifactsWrite<E = never, R = never> = RecordAttachmentWrite<\"run\", E, R>;\nexport type AssertionsWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type AttemptObservabilityWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type FileChangesWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type SourceNavigationWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type AttemptArtifactsWrite<E = never, R = never> = RecordAttachmentWrite<\"attempt\", E, R>;\nexport type RecordSelectionProblem = {\n readonly code: \"incomplete-run\";\n readonly runId: RunId;\n} | {\n readonly code: \"record-core-invalid\";\n readonly runId: RunId;\n} | {\n readonly code: \"selection-run-missing\";\n readonly runId: RunId;\n};\nexport interface RecordSelectionRequest {\n /** Omitted means every Run whose complete marker existed during this scan. */\n readonly runIds?: readonly RunId[];\n}\n/**\n * Closed Run facts verified by scanSelection. They retain the denominator\n * frame if a later member read becomes unavailable; they are not a durable\n * schema and contain no owner capability.\n */\nexport interface SelectedRunFacts {\n readonly run: SelectedRunRef;\n readonly experimentId: ExperimentId;\n readonly startedAt: UtcMillis;\n readonly completedAt: UtcMillis;\n readonly expectedSlots: readonly RecordSlotIdentity[];\n}\n/** A closed candidate set with only selected minimal Core; never Attachment payloads. */\nexport interface RecordSelection {\n readonly runRefs: readonly SelectedRunRef[];\n readonly runFacts: readonly SelectedRunFacts[];\n readonly expectedSlots: readonly {\n readonly run: SelectedRunRef;\n /** Closed at scan time from the selected Run, not stored in RecordSlotIdentity. */\n readonly experimentId: ExperimentId;\n readonly slot: RecordSlotIdentity;\n }[];\n readonly problems: readonly RecordSelectionProblem[];\n readonly warnings: readonly RecordWarning[];\n}\nexport interface ReadableRun {\n readonly ref: SelectedRunRef;\n readonly owner: SelectedOwnerRef;\n readonly document: RunDocument;\n readonly members: readonly {\n readonly document: MemberDocument;\n readonly attempt: SelectedAttemptRef | null;\n }[];\n}\nexport interface ReadableAttempt {\n readonly ref: SelectedAttemptRef;\n readonly owner: SelectedOwnerRef;\n readonly document: AttemptDocument;\n /**\n * Verified while resolving the exact nominal Attempt reference. It is the\n * only origin Run Core projection Sample may use. In particular, a carried\n * or accepted member must retain this origin's execution facts rather than\n * substituting the selected target Run.\n */\n readonly origin: {\n readonly owner: SelectedOwnerRef;\n readonly runId: RunId;\n readonly experimentId: ExperimentId;\n readonly startedAt: UtcMillis;\n readonly context: RunContext;\n };\n}\nexport interface RecordReadSession {\n readonly selectRuns: (request?: RecordSelectionRequest) => Effect.Effect<RecordSelection, RecordReaderReadError>;\n readonly readRun: (ref: SelectedRunRef) => Effect.Effect<RecordCoreRead<ReadableRun>, RecordReaderReadError>;\n readonly readAttempt: (ref: SelectedAttemptRef) => Effect.Effect<RecordCoreRead<ReadableAttempt>, RecordReaderReadError>;\n readonly readAssertions: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<AssertionsAttachment>, RecordReaderReadError>;\n readonly readAttemptObservability: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<AttemptObservabilityAttachment>, RecordReaderReadError>;\n readonly readFileChanges: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<FileChangesAttachment>, RecordReaderReadError>;\n readonly readSourceNavigation: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<SourceNavigationAttachment>, RecordReaderReadError>;\n readonly readAttemptArtifacts: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<ArtifactsAttachment>, RecordReaderReadError>;\n readonly readSources: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<SourcesAttachment>, RecordReaderReadError>;\n readonly readRunObservability: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<RunObservabilityAttachment>, RecordReaderReadError>;\n readonly readRunArtifacts: (owner: SelectedOwnerRef) => Effect.Effect<FixedFamilyRead<ArtifactsAttachment>, RecordReaderReadError>;\n}\nexport interface CreateRunRequest {\n readonly root: RecordRoot;\n readonly experimentId: ExperimentId;\n /** Required historical interpretation facts, written once into `run.json`. */\n readonly context: RunContext;\n readonly startedAt: UtcMillis;\n readonly expectedSlots: readonly RecordSlotIdentity[];\n}\nexport interface CreateReferenceRunRequest extends CreateRunRequest {\n}\nexport interface RunCompletion {\n readonly completedAt: UtcMillis;\n}\nexport interface RecordSealReceipt {\n readonly runId: RunId;\n readonly state: \"sealed\";\n}\nexport interface AttemptWriteSession {\n readonly attemptId: AttemptId;\n readonly slotId: SlotId;\n readonly [attemptWriteSessionBrand]: () => void;\n readonly complete: (outcome: AttemptDocument[\"outcome\"]) => Effect.Effect<void, RecordWriteError>;\n readonly writeAssertions: <E, R>(value: AssertionsWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeAttemptObservability: <E, R>(value: AttemptObservabilityWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeFileChanges: <E, R>(value: FileChangesWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeSourceNavigation: <E, R>(value: SourceNavigationWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeAttemptArtifacts: <E, R>(value: AttemptArtifactsWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n}\n/** One session owns exactly one freshly exclusive RunId directory. */\nexport interface RunWriteSession {\n readonly runId: RunId;\n readonly [runWriteSessionBrand]: () => void;\n readonly createAttempt: (input: {\n readonly slotId: SlotId;\n }) => Effect.Effect<AttemptWriteSession, RecordWriteError>;\n readonly referenceAttempt: (input: {\n readonly slotId: SlotId;\n readonly action: \"carried\" | \"accepted\";\n readonly attempt: SelectedAttemptRef;\n }) => Effect.Effect<void, RecordWriteError>;\n /**\n * Explicit adoption / rename: occupy one current target Slot with an already\n * selected origin Attempt. The target Slot identity may differ from the\n * origin Attempt. This is not a generic Attachment writer.\n */\n readonly recordAcceptedMembership: (input: {\n readonly slotId: SlotId;\n readonly attempt: SelectedAttemptRef;\n }) => Effect.Effect<void, RecordWriteError>;\n readonly recordTerminalMember: (input: {\n readonly slotId: SlotId;\n readonly action: \"not-dispatched\" | \"interrupted\";\n }) => Effect.Effect<void, RecordWriteError>;\n readonly writeSources: <E, R>(value: SourcesWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeRunObservability: <E, R>(value: RunObservabilityWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly writeRunArtifacts: <E, R>(value: RunArtifactsWrite<E, R>) => Effect.Effect<void, RecordWriteError | E, R>;\n readonly seal: (completion: RunCompletion) => Effect.Effect<RecordSealReceipt, RecordWriteError>;\n}\n/** A Run created solely from already-selected, sealed Attempts. */\nexport interface ReferenceRunWriteSession {\n readonly runId: RunId;\n readonly [runWriteSessionBrand]: () => void;\n readonly referenceAttempt: RunWriteSession[\"referenceAttempt\"];\n readonly recordAcceptedMembership: RunWriteSession[\"recordAcceptedMembership\"];\n readonly recordTerminalMember: RunWriteSession[\"recordTerminalMember\"];\n readonly writeRunObservability: RunWriteSession[\"writeRunObservability\"];\n readonly writeRunArtifacts: RunWriteSession[\"writeRunArtifacts\"];\n readonly seal: RunWriteSession[\"seal\"];\n}\nexport type RecordFormatInspection = {\n readonly state: \"already-current\";\n readonly format: \"niceeval.record\";\n} | {\n readonly state: \"migration-required\";\n readonly format: \"niceeval.record\";\n} | {\n readonly state: \"unsupported-format\";\n readonly format: string;\n};\nexport interface RecordAttachmentMigrationTarget {\n readonly family: string;\n readonly owner: \"attempt\" | \"run\";\n readonly runId: RunId;\n readonly attemptId?: AttemptId;\n readonly fromSchemaVersion: number;\n readonly toSchemaVersion: number;\n readonly retention: RecordAttachmentMigrationRetention;\n}\nexport type RecordMigrationPlan = {\n readonly state: \"already-current\";\n readonly format: \"niceeval.record\";\n} | {\n readonly state: \"migration-required\";\n readonly format: \"niceeval.record\";\n readonly backup: RecordBackupState;\n readonly attachments: readonly RecordAttachmentMigrationTarget[];\n} | {\n readonly state: \"unsupported-format\";\n readonly format: string;\n};\nexport type RecordMigrationReceipt = {\n readonly state: \"already-current\";\n readonly format: \"niceeval.record\";\n} | {\n readonly state: \"migrated\";\n readonly format: \"niceeval.record\";\n readonly attachments: readonly RecordAttachmentMigrationTarget[];\n};\n/**\n * Closed result of the ordinary-entry automatic migration preflight. A caller\n * opens its current reader only after this operation returns, so read and\n * maintenance leases can never overlap.\n */\nexport type RecordAutomaticMigrationResult = {\n readonly state: \"record-missing\";\n} | {\n readonly state: \"already-current\";\n} | {\n readonly state: \"migrated\";\n readonly restoreCommit: string;\n readonly attachments: readonly RecordAttachmentMigrationTarget[];\n};\nexport type RecordAutomaticMigrationError = RecordFileSystemError | RecordReaderOpenError | RecordMaintenanceOpenError | RecordMaintenanceError | RecordAutoMigrationGitSaveRequired;\n/** Closed, presentation-neutral plan for explicit incomplete-Run cleanup. */\nexport type RecordCleanOperationPlan = {\n readonly _tag: \"RecordCleanAlreadyClean\";\n} | {\n readonly _tag: \"RecordCleanConfirmationRequired\";\n readonly runIds: readonly RunId[];\n};\nexport interface RecordCleanOperationReceipt {\n readonly _tag: \"RecordCleanApplied\";\n readonly deleted: readonly RunId[];\n readonly skipped: readonly RunId[];\n}\n/**\n * A migration plan is safe to carry outside the maintenance Scope. The ready\n * branch remains nominally backed by the exact source-byte plan held by this\n * Host process; callers cannot manufacture an applicable plan from JSON.\n */\nexport type RecordMigrateOperationPlan = {\n readonly _tag: \"RecordMigrationAlreadyCurrent\";\n readonly format: \"niceeval.record\";\n} | {\n readonly _tag: \"RecordMigrationUnsupported\";\n readonly format: string;\n} | {\n readonly _tag: \"RecordMigrationRestoreRequired\";\n readonly format: \"niceeval.record\";\n readonly backup: Exclude<RecordBackupState, {\n readonly state: \"git-restore-point\";\n }>;\n readonly attachments: readonly RecordAttachmentMigrationTarget[];\n} | RecordMigrateReadyPlan;\nexport interface RecordMigrateReadyPlan {\n readonly _tag: \"RecordMigrationReady\";\n readonly format: \"niceeval.record\";\n readonly restoreCommit: string;\n readonly attachments: readonly RecordAttachmentMigrationTarget[];\n}\nexport type RecordMigrateOperationReceipt = {\n readonly _tag: \"RecordMigrationAlreadyCurrent\";\n readonly format: \"niceeval.record\";\n} | {\n readonly _tag: \"RecordMigrationApplied\";\n readonly format: \"niceeval.record\";\n readonly attachments: readonly RecordAttachmentMigrationTarget[];\n};\n/** Exhaustive failure vocabulary consumed by Record-owned CLI presentation. */\nexport type RecordMaintenanceOperationFailure = {\n readonly _tag: \"RecordMaintenanceBusy\";\n readonly code: \"record-maintenance-busy\";\n} | {\n readonly _tag: \"RecordMigrationInterrupted\";\n readonly code: \"record-migration-interrupted\";\n readonly restoreCommit?: string;\n readonly restoreSafe?: boolean;\n} | {\n readonly _tag: \"RecordMigrationPlanStale\";\n readonly code: \"record-migration-plan-stale\";\n} | {\n readonly _tag: \"RecordMigrationGitRestoreRequired\";\n readonly code: \"record-migration-git-restore-required\";\n} | {\n readonly _tag: \"RecordMigrationInvalid\";\n readonly code: \"record-migration-invalid\";\n} | {\n readonly _tag: \"RecordMigrationRecoveryRequired\";\n readonly code: \"record-migration-recovery-required\";\n readonly causeCode: string;\n readonly restoreCommit: string;\n readonly restoreSafe: boolean;\n} | {\n readonly _tag: \"RecordFormatUnsupported\";\n readonly code: \"record-format-unsupported\";\n} | {\n readonly _tag: \"RecordMigrationRequired\";\n readonly code: \"record-migration-required\";\n} | {\n readonly _tag: \"RecordMaintenanceOperationFailed\";\n readonly code: string;\n};\nexport interface RecordMaintenanceSession {\n readonly inspect: () => Effect.Effect<RecordFormatInspection, RecordMaintenanceError>;\n readonly planMigrate: () => Effect.Effect<RecordMigrationPlan, RecordMaintenanceError>;\n readonly applyMigrate: (plan: RecordMigrationPlan) => Effect.Effect<RecordMigrationReceipt, RecordMaintenanceError>;\n}\nexport interface RecordHostSDK {\n /**\n * Ordinary-entry read check followed, when required, by one Git-safe\n * maintenance migration. Every internally acquired Scope is closed before\n * this Effect completes; the caller must then perform a fresh current open.\n */\n readonly ensureAutomaticMigration: (input: {\n readonly root: RecordRoot;\n }) => Effect.Effect<RecordAutomaticMigrationResult, RecordAutomaticMigrationError, import(\"../platform/services.ts\").RecordFileSystem | import(\"../platform/services.ts\").RecordGit | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n readonly current: {\n readonly openRead: (input: {\n readonly root: RecordRoot;\n }) => Effect.Effect<RecordReadSession, RecordReaderOpenError, import(\"effect\").Scope.Scope | import(\"../platform/services.ts\").RecordFileSystem | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n readonly createRun: (request: CreateRunRequest) => Effect.Effect<RunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | import(\"../platform/services.ts\").RecordFileSystem | import(\"../platform/services.ts\").RecordEntropy | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n readonly createReferenceRun: (request: CreateReferenceRunRequest) => Effect.Effect<ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import(\"effect\").Scope.Scope | import(\"../platform/services.ts\").RecordFileSystem | import(\"../platform/services.ts\").RecordEntropy | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n };\n readonly maintenance: {\n readonly planClean: (input: {\n readonly root: RecordRoot;\n }) => Effect.Effect<RecordCleanOperationPlan, RecordMaintenanceOperationFailure, import(\"../platform/services.ts\").RecordFileSystem | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n readonly applyClean: (input: {\n readonly root: RecordRoot;\n readonly plan: Extract<RecordCleanOperationPlan, {\n readonly _tag: \"RecordCleanConfirmationRequired\";\n }>;\n }) => Effect.Effect<RecordCleanOperationReceipt, RecordMaintenanceOperationFailure, import(\"../platform/services.ts\").RecordFileSystem | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n readonly planMigrate: (input: {\n readonly root: RecordRoot;\n }) => Effect.Effect<RecordMigrateOperationPlan, RecordMaintenanceOperationFailure, import(\"../platform/services.ts\").RecordFileSystem | import(\"../platform/services.ts\").RecordGit | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n readonly applyMigrate: (input: {\n readonly root: RecordRoot;\n readonly plan: RecordMigrateReadyPlan;\n }) => Effect.Effect<RecordMigrateOperationReceipt, RecordMaintenanceOperationFailure, import(\"../platform/services.ts\").RecordFileSystem | import(\"../platform/services.ts\").RecordGit | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n readonly open: (input: {\n readonly root: RecordRoot;\n }) => Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import(\"effect\").Scope.Scope | import(\"../platform/services.ts\").RecordFileSystem | import(\"../platform/services.ts\").RecordGit | import(\"../../coordination/record-leases.ts\").RecordCoordination>;\n };\n}\n"]}
|
|
@@ -16,6 +16,8 @@ import type { NonEmptyRecordIssues } from "../errors/record-errors.cjs";
|
|
|
16
16
|
import type { RecordMaintenanceError, RecordMaintenanceOpenError, RecordReaderOpenError, RecordReaderReadError } from "../reader/errors.cjs";
|
|
17
17
|
import type { RecordWriteError } from "../writer/types.cjs";
|
|
18
18
|
import type { RecordAttachmentMigrationRetention } from "../definition/attachment.cjs";
|
|
19
|
+
import type { RecordFileSystemError } from "../platform/errors.cjs";
|
|
20
|
+
import type { RecordAutoMigrationGitSaveRequired } from "../reader/errors.cjs";
|
|
19
21
|
export declare const selectedRunRefBrand: unique symbol;
|
|
20
22
|
export declare const selectedAttemptRefBrand: unique symbol;
|
|
21
23
|
export declare const selectedOwnerRefBrand: unique symbol;
|
|
@@ -264,12 +266,114 @@ export type RecordMigrationReceipt = {
|
|
|
264
266
|
readonly format: "niceeval.record";
|
|
265
267
|
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
266
268
|
};
|
|
269
|
+
/**
|
|
270
|
+
* Closed result of the ordinary-entry automatic migration preflight. A caller
|
|
271
|
+
* opens its current reader only after this operation returns, so read and
|
|
272
|
+
* maintenance leases can never overlap.
|
|
273
|
+
*/
|
|
274
|
+
export type RecordAutomaticMigrationResult = {
|
|
275
|
+
readonly state: "record-missing";
|
|
276
|
+
} | {
|
|
277
|
+
readonly state: "already-current";
|
|
278
|
+
} | {
|
|
279
|
+
readonly state: "migrated";
|
|
280
|
+
readonly restoreCommit: string;
|
|
281
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
282
|
+
};
|
|
283
|
+
export type RecordAutomaticMigrationError = RecordFileSystemError | RecordReaderOpenError | RecordMaintenanceOpenError | RecordMaintenanceError | RecordAutoMigrationGitSaveRequired;
|
|
284
|
+
/** Closed, presentation-neutral plan for explicit incomplete-Run cleanup. */
|
|
285
|
+
export type RecordCleanOperationPlan = {
|
|
286
|
+
readonly _tag: "RecordCleanAlreadyClean";
|
|
287
|
+
} | {
|
|
288
|
+
readonly _tag: "RecordCleanConfirmationRequired";
|
|
289
|
+
readonly runIds: readonly RunId[];
|
|
290
|
+
};
|
|
291
|
+
export interface RecordCleanOperationReceipt {
|
|
292
|
+
readonly _tag: "RecordCleanApplied";
|
|
293
|
+
readonly deleted: readonly RunId[];
|
|
294
|
+
readonly skipped: readonly RunId[];
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* A migration plan is safe to carry outside the maintenance Scope. The ready
|
|
298
|
+
* branch remains nominally backed by the exact source-byte plan held by this
|
|
299
|
+
* Host process; callers cannot manufacture an applicable plan from JSON.
|
|
300
|
+
*/
|
|
301
|
+
export type RecordMigrateOperationPlan = {
|
|
302
|
+
readonly _tag: "RecordMigrationAlreadyCurrent";
|
|
303
|
+
readonly format: "niceeval.record";
|
|
304
|
+
} | {
|
|
305
|
+
readonly _tag: "RecordMigrationUnsupported";
|
|
306
|
+
readonly format: string;
|
|
307
|
+
} | {
|
|
308
|
+
readonly _tag: "RecordMigrationRestoreRequired";
|
|
309
|
+
readonly format: "niceeval.record";
|
|
310
|
+
readonly backup: Exclude<RecordBackupState, {
|
|
311
|
+
readonly state: "git-restore-point";
|
|
312
|
+
}>;
|
|
313
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
314
|
+
} | RecordMigrateReadyPlan;
|
|
315
|
+
export interface RecordMigrateReadyPlan {
|
|
316
|
+
readonly _tag: "RecordMigrationReady";
|
|
317
|
+
readonly format: "niceeval.record";
|
|
318
|
+
readonly restoreCommit: string;
|
|
319
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
320
|
+
}
|
|
321
|
+
export type RecordMigrateOperationReceipt = {
|
|
322
|
+
readonly _tag: "RecordMigrationAlreadyCurrent";
|
|
323
|
+
readonly format: "niceeval.record";
|
|
324
|
+
} | {
|
|
325
|
+
readonly _tag: "RecordMigrationApplied";
|
|
326
|
+
readonly format: "niceeval.record";
|
|
327
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
328
|
+
};
|
|
329
|
+
/** Exhaustive failure vocabulary consumed by Record-owned CLI presentation. */
|
|
330
|
+
export type RecordMaintenanceOperationFailure = {
|
|
331
|
+
readonly _tag: "RecordMaintenanceBusy";
|
|
332
|
+
readonly code: "record-maintenance-busy";
|
|
333
|
+
} | {
|
|
334
|
+
readonly _tag: "RecordMigrationInterrupted";
|
|
335
|
+
readonly code: "record-migration-interrupted";
|
|
336
|
+
readonly restoreCommit?: string;
|
|
337
|
+
readonly restoreSafe?: boolean;
|
|
338
|
+
} | {
|
|
339
|
+
readonly _tag: "RecordMigrationPlanStale";
|
|
340
|
+
readonly code: "record-migration-plan-stale";
|
|
341
|
+
} | {
|
|
342
|
+
readonly _tag: "RecordMigrationGitRestoreRequired";
|
|
343
|
+
readonly code: "record-migration-git-restore-required";
|
|
344
|
+
} | {
|
|
345
|
+
readonly _tag: "RecordMigrationInvalid";
|
|
346
|
+
readonly code: "record-migration-invalid";
|
|
347
|
+
} | {
|
|
348
|
+
readonly _tag: "RecordMigrationRecoveryRequired";
|
|
349
|
+
readonly code: "record-migration-recovery-required";
|
|
350
|
+
readonly causeCode: string;
|
|
351
|
+
readonly restoreCommit: string;
|
|
352
|
+
readonly restoreSafe: boolean;
|
|
353
|
+
} | {
|
|
354
|
+
readonly _tag: "RecordFormatUnsupported";
|
|
355
|
+
readonly code: "record-format-unsupported";
|
|
356
|
+
} | {
|
|
357
|
+
readonly _tag: "RecordMigrationRequired";
|
|
358
|
+
readonly code: "record-migration-required";
|
|
359
|
+
} | {
|
|
360
|
+
readonly _tag: "RecordMaintenanceOperationFailed";
|
|
361
|
+
readonly code: string;
|
|
362
|
+
};
|
|
267
363
|
export interface RecordMaintenanceSession {
|
|
268
364
|
readonly inspect: () => Effect.Effect<RecordFormatInspection, RecordMaintenanceError>;
|
|
269
365
|
readonly planMigrate: () => Effect.Effect<RecordMigrationPlan, RecordMaintenanceError>;
|
|
270
366
|
readonly applyMigrate: (plan: RecordMigrationPlan) => Effect.Effect<RecordMigrationReceipt, RecordMaintenanceError>;
|
|
271
367
|
}
|
|
272
368
|
export interface RecordHostSDK {
|
|
369
|
+
/**
|
|
370
|
+
* Ordinary-entry read check followed, when required, by one Git-safe
|
|
371
|
+
* maintenance migration. Every internally acquired Scope is closed before
|
|
372
|
+
* this Effect completes; the caller must then perform a fresh current open.
|
|
373
|
+
*/
|
|
374
|
+
readonly ensureAutomaticMigration: (input: {
|
|
375
|
+
readonly root: RecordRoot;
|
|
376
|
+
}) => Effect.Effect<RecordAutomaticMigrationResult, RecordAutomaticMigrationError, import("../platform/services.cjs").RecordFileSystem | import("../platform/services.cjs").RecordGit | import("../../coordination/record-leases.cjs").RecordCoordination>;
|
|
273
377
|
readonly current: {
|
|
274
378
|
readonly openRead: (input: {
|
|
275
379
|
readonly root: RecordRoot;
|
|
@@ -278,6 +382,22 @@ export interface RecordHostSDK {
|
|
|
278
382
|
readonly createReferenceRun: (request: CreateReferenceRunRequest) => Effect.Effect<ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import("effect").Scope.Scope | import("../platform/services.cjs").RecordFileSystem | import("../platform/services.cjs").RecordEntropy | import("../../coordination/record-leases.cjs").RecordCoordination>;
|
|
279
383
|
};
|
|
280
384
|
readonly maintenance: {
|
|
385
|
+
readonly planClean: (input: {
|
|
386
|
+
readonly root: RecordRoot;
|
|
387
|
+
}) => Effect.Effect<RecordCleanOperationPlan, RecordMaintenanceOperationFailure, import("../platform/services.cjs").RecordFileSystem | import("../../coordination/record-leases.cjs").RecordCoordination>;
|
|
388
|
+
readonly applyClean: (input: {
|
|
389
|
+
readonly root: RecordRoot;
|
|
390
|
+
readonly plan: Extract<RecordCleanOperationPlan, {
|
|
391
|
+
readonly _tag: "RecordCleanConfirmationRequired";
|
|
392
|
+
}>;
|
|
393
|
+
}) => Effect.Effect<RecordCleanOperationReceipt, RecordMaintenanceOperationFailure, import("../platform/services.cjs").RecordFileSystem | import("../../coordination/record-leases.cjs").RecordCoordination>;
|
|
394
|
+
readonly planMigrate: (input: {
|
|
395
|
+
readonly root: RecordRoot;
|
|
396
|
+
}) => Effect.Effect<RecordMigrateOperationPlan, RecordMaintenanceOperationFailure, import("../platform/services.cjs").RecordFileSystem | import("../platform/services.cjs").RecordGit | import("../../coordination/record-leases.cjs").RecordCoordination>;
|
|
397
|
+
readonly applyMigrate: (input: {
|
|
398
|
+
readonly root: RecordRoot;
|
|
399
|
+
readonly plan: RecordMigrateReadyPlan;
|
|
400
|
+
}) => Effect.Effect<RecordMigrateOperationReceipt, RecordMaintenanceOperationFailure, import("../platform/services.cjs").RecordFileSystem | import("../platform/services.cjs").RecordGit | import("../../coordination/record-leases.cjs").RecordCoordination>;
|
|
281
401
|
readonly open: (input: {
|
|
282
402
|
readonly root: RecordRoot;
|
|
283
403
|
}) => Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import("effect").Scope.Scope | import("../platform/services.cjs").RecordFileSystem | import("../platform/services.cjs").RecordGit | import("../../coordination/record-leases.cjs").RecordCoordination>;
|
|
@@ -16,6 +16,8 @@ import type { NonEmptyRecordIssues } from "../errors/record-errors.mjs";
|
|
|
16
16
|
import type { RecordMaintenanceError, RecordMaintenanceOpenError, RecordReaderOpenError, RecordReaderReadError } from "../reader/errors.mjs";
|
|
17
17
|
import type { RecordWriteError } from "../writer/types.mjs";
|
|
18
18
|
import type { RecordAttachmentMigrationRetention } from "../definition/attachment.mjs";
|
|
19
|
+
import type { RecordFileSystemError } from "../platform/errors.mjs";
|
|
20
|
+
import type { RecordAutoMigrationGitSaveRequired } from "../reader/errors.mjs";
|
|
19
21
|
export declare const selectedRunRefBrand: unique symbol;
|
|
20
22
|
export declare const selectedAttemptRefBrand: unique symbol;
|
|
21
23
|
export declare const selectedOwnerRefBrand: unique symbol;
|
|
@@ -264,12 +266,114 @@ export type RecordMigrationReceipt = {
|
|
|
264
266
|
readonly format: "niceeval.record";
|
|
265
267
|
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
266
268
|
};
|
|
269
|
+
/**
|
|
270
|
+
* Closed result of the ordinary-entry automatic migration preflight. A caller
|
|
271
|
+
* opens its current reader only after this operation returns, so read and
|
|
272
|
+
* maintenance leases can never overlap.
|
|
273
|
+
*/
|
|
274
|
+
export type RecordAutomaticMigrationResult = {
|
|
275
|
+
readonly state: "record-missing";
|
|
276
|
+
} | {
|
|
277
|
+
readonly state: "already-current";
|
|
278
|
+
} | {
|
|
279
|
+
readonly state: "migrated";
|
|
280
|
+
readonly restoreCommit: string;
|
|
281
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
282
|
+
};
|
|
283
|
+
export type RecordAutomaticMigrationError = RecordFileSystemError | RecordReaderOpenError | RecordMaintenanceOpenError | RecordMaintenanceError | RecordAutoMigrationGitSaveRequired;
|
|
284
|
+
/** Closed, presentation-neutral plan for explicit incomplete-Run cleanup. */
|
|
285
|
+
export type RecordCleanOperationPlan = {
|
|
286
|
+
readonly _tag: "RecordCleanAlreadyClean";
|
|
287
|
+
} | {
|
|
288
|
+
readonly _tag: "RecordCleanConfirmationRequired";
|
|
289
|
+
readonly runIds: readonly RunId[];
|
|
290
|
+
};
|
|
291
|
+
export interface RecordCleanOperationReceipt {
|
|
292
|
+
readonly _tag: "RecordCleanApplied";
|
|
293
|
+
readonly deleted: readonly RunId[];
|
|
294
|
+
readonly skipped: readonly RunId[];
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* A migration plan is safe to carry outside the maintenance Scope. The ready
|
|
298
|
+
* branch remains nominally backed by the exact source-byte plan held by this
|
|
299
|
+
* Host process; callers cannot manufacture an applicable plan from JSON.
|
|
300
|
+
*/
|
|
301
|
+
export type RecordMigrateOperationPlan = {
|
|
302
|
+
readonly _tag: "RecordMigrationAlreadyCurrent";
|
|
303
|
+
readonly format: "niceeval.record";
|
|
304
|
+
} | {
|
|
305
|
+
readonly _tag: "RecordMigrationUnsupported";
|
|
306
|
+
readonly format: string;
|
|
307
|
+
} | {
|
|
308
|
+
readonly _tag: "RecordMigrationRestoreRequired";
|
|
309
|
+
readonly format: "niceeval.record";
|
|
310
|
+
readonly backup: Exclude<RecordBackupState, {
|
|
311
|
+
readonly state: "git-restore-point";
|
|
312
|
+
}>;
|
|
313
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
314
|
+
} | RecordMigrateReadyPlan;
|
|
315
|
+
export interface RecordMigrateReadyPlan {
|
|
316
|
+
readonly _tag: "RecordMigrationReady";
|
|
317
|
+
readonly format: "niceeval.record";
|
|
318
|
+
readonly restoreCommit: string;
|
|
319
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
320
|
+
}
|
|
321
|
+
export type RecordMigrateOperationReceipt = {
|
|
322
|
+
readonly _tag: "RecordMigrationAlreadyCurrent";
|
|
323
|
+
readonly format: "niceeval.record";
|
|
324
|
+
} | {
|
|
325
|
+
readonly _tag: "RecordMigrationApplied";
|
|
326
|
+
readonly format: "niceeval.record";
|
|
327
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
328
|
+
};
|
|
329
|
+
/** Exhaustive failure vocabulary consumed by Record-owned CLI presentation. */
|
|
330
|
+
export type RecordMaintenanceOperationFailure = {
|
|
331
|
+
readonly _tag: "RecordMaintenanceBusy";
|
|
332
|
+
readonly code: "record-maintenance-busy";
|
|
333
|
+
} | {
|
|
334
|
+
readonly _tag: "RecordMigrationInterrupted";
|
|
335
|
+
readonly code: "record-migration-interrupted";
|
|
336
|
+
readonly restoreCommit?: string;
|
|
337
|
+
readonly restoreSafe?: boolean;
|
|
338
|
+
} | {
|
|
339
|
+
readonly _tag: "RecordMigrationPlanStale";
|
|
340
|
+
readonly code: "record-migration-plan-stale";
|
|
341
|
+
} | {
|
|
342
|
+
readonly _tag: "RecordMigrationGitRestoreRequired";
|
|
343
|
+
readonly code: "record-migration-git-restore-required";
|
|
344
|
+
} | {
|
|
345
|
+
readonly _tag: "RecordMigrationInvalid";
|
|
346
|
+
readonly code: "record-migration-invalid";
|
|
347
|
+
} | {
|
|
348
|
+
readonly _tag: "RecordMigrationRecoveryRequired";
|
|
349
|
+
readonly code: "record-migration-recovery-required";
|
|
350
|
+
readonly causeCode: string;
|
|
351
|
+
readonly restoreCommit: string;
|
|
352
|
+
readonly restoreSafe: boolean;
|
|
353
|
+
} | {
|
|
354
|
+
readonly _tag: "RecordFormatUnsupported";
|
|
355
|
+
readonly code: "record-format-unsupported";
|
|
356
|
+
} | {
|
|
357
|
+
readonly _tag: "RecordMigrationRequired";
|
|
358
|
+
readonly code: "record-migration-required";
|
|
359
|
+
} | {
|
|
360
|
+
readonly _tag: "RecordMaintenanceOperationFailed";
|
|
361
|
+
readonly code: string;
|
|
362
|
+
};
|
|
267
363
|
export interface RecordMaintenanceSession {
|
|
268
364
|
readonly inspect: () => Effect.Effect<RecordFormatInspection, RecordMaintenanceError>;
|
|
269
365
|
readonly planMigrate: () => Effect.Effect<RecordMigrationPlan, RecordMaintenanceError>;
|
|
270
366
|
readonly applyMigrate: (plan: RecordMigrationPlan) => Effect.Effect<RecordMigrationReceipt, RecordMaintenanceError>;
|
|
271
367
|
}
|
|
272
368
|
export interface RecordHostSDK {
|
|
369
|
+
/**
|
|
370
|
+
* Ordinary-entry read check followed, when required, by one Git-safe
|
|
371
|
+
* maintenance migration. Every internally acquired Scope is closed before
|
|
372
|
+
* this Effect completes; the caller must then perform a fresh current open.
|
|
373
|
+
*/
|
|
374
|
+
readonly ensureAutomaticMigration: (input: {
|
|
375
|
+
readonly root: RecordRoot;
|
|
376
|
+
}) => Effect.Effect<RecordAutomaticMigrationResult, RecordAutomaticMigrationError, import("../platform/services.mjs").RecordFileSystem | import("../platform/services.mjs").RecordGit | import("../../coordination/record-leases.mjs").RecordCoordination>;
|
|
273
377
|
readonly current: {
|
|
274
378
|
readonly openRead: (input: {
|
|
275
379
|
readonly root: RecordRoot;
|
|
@@ -278,6 +382,22 @@ export interface RecordHostSDK {
|
|
|
278
382
|
readonly createReferenceRun: (request: CreateReferenceRunRequest) => Effect.Effect<ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import("effect").Scope.Scope | import("../platform/services.mjs").RecordFileSystem | import("../platform/services.mjs").RecordEntropy | import("../../coordination/record-leases.mjs").RecordCoordination>;
|
|
279
383
|
};
|
|
280
384
|
readonly maintenance: {
|
|
385
|
+
readonly planClean: (input: {
|
|
386
|
+
readonly root: RecordRoot;
|
|
387
|
+
}) => Effect.Effect<RecordCleanOperationPlan, RecordMaintenanceOperationFailure, import("../platform/services.mjs").RecordFileSystem | import("../../coordination/record-leases.mjs").RecordCoordination>;
|
|
388
|
+
readonly applyClean: (input: {
|
|
389
|
+
readonly root: RecordRoot;
|
|
390
|
+
readonly plan: Extract<RecordCleanOperationPlan, {
|
|
391
|
+
readonly _tag: "RecordCleanConfirmationRequired";
|
|
392
|
+
}>;
|
|
393
|
+
}) => Effect.Effect<RecordCleanOperationReceipt, RecordMaintenanceOperationFailure, import("../platform/services.mjs").RecordFileSystem | import("../../coordination/record-leases.mjs").RecordCoordination>;
|
|
394
|
+
readonly planMigrate: (input: {
|
|
395
|
+
readonly root: RecordRoot;
|
|
396
|
+
}) => Effect.Effect<RecordMigrateOperationPlan, RecordMaintenanceOperationFailure, import("../platform/services.mjs").RecordFileSystem | import("../platform/services.mjs").RecordGit | import("../../coordination/record-leases.mjs").RecordCoordination>;
|
|
397
|
+
readonly applyMigrate: (input: {
|
|
398
|
+
readonly root: RecordRoot;
|
|
399
|
+
readonly plan: RecordMigrateReadyPlan;
|
|
400
|
+
}) => Effect.Effect<RecordMigrateOperationReceipt, RecordMaintenanceOperationFailure, import("../platform/services.mjs").RecordFileSystem | import("../platform/services.mjs").RecordGit | import("../../coordination/record-leases.mjs").RecordCoordination>;
|
|
281
401
|
readonly open: (input: {
|
|
282
402
|
readonly root: RecordRoot;
|
|
283
403
|
}) => Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import("effect").Scope.Scope | import("../platform/services.mjs").RecordFileSystem | import("../platform/services.mjs").RecordGit | import("../../coordination/record-leases.mjs").RecordCoordination>;
|
|
@@ -16,6 +16,8 @@ import type { NonEmptyRecordIssues } from "../errors/record-errors.js";
|
|
|
16
16
|
import type { RecordMaintenanceError, RecordMaintenanceOpenError, RecordReaderOpenError, RecordReaderReadError } from "../reader/errors.js";
|
|
17
17
|
import type { RecordWriteError } from "../writer/types.js";
|
|
18
18
|
import type { RecordAttachmentMigrationRetention } from "../definition/attachment.js";
|
|
19
|
+
import type { RecordFileSystemError } from "../platform/errors.js";
|
|
20
|
+
import type { RecordAutoMigrationGitSaveRequired } from "../reader/errors.js";
|
|
19
21
|
export declare const selectedRunRefBrand: unique symbol;
|
|
20
22
|
export declare const selectedAttemptRefBrand: unique symbol;
|
|
21
23
|
export declare const selectedOwnerRefBrand: unique symbol;
|
|
@@ -264,12 +266,114 @@ export type RecordMigrationReceipt = {
|
|
|
264
266
|
readonly format: "niceeval.record";
|
|
265
267
|
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
266
268
|
};
|
|
269
|
+
/**
|
|
270
|
+
* Closed result of the ordinary-entry automatic migration preflight. A caller
|
|
271
|
+
* opens its current reader only after this operation returns, so read and
|
|
272
|
+
* maintenance leases can never overlap.
|
|
273
|
+
*/
|
|
274
|
+
export type RecordAutomaticMigrationResult = {
|
|
275
|
+
readonly state: "record-missing";
|
|
276
|
+
} | {
|
|
277
|
+
readonly state: "already-current";
|
|
278
|
+
} | {
|
|
279
|
+
readonly state: "migrated";
|
|
280
|
+
readonly restoreCommit: string;
|
|
281
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
282
|
+
};
|
|
283
|
+
export type RecordAutomaticMigrationError = RecordFileSystemError | RecordReaderOpenError | RecordMaintenanceOpenError | RecordMaintenanceError | RecordAutoMigrationGitSaveRequired;
|
|
284
|
+
/** Closed, presentation-neutral plan for explicit incomplete-Run cleanup. */
|
|
285
|
+
export type RecordCleanOperationPlan = {
|
|
286
|
+
readonly _tag: "RecordCleanAlreadyClean";
|
|
287
|
+
} | {
|
|
288
|
+
readonly _tag: "RecordCleanConfirmationRequired";
|
|
289
|
+
readonly runIds: readonly RunId[];
|
|
290
|
+
};
|
|
291
|
+
export interface RecordCleanOperationReceipt {
|
|
292
|
+
readonly _tag: "RecordCleanApplied";
|
|
293
|
+
readonly deleted: readonly RunId[];
|
|
294
|
+
readonly skipped: readonly RunId[];
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* A migration plan is safe to carry outside the maintenance Scope. The ready
|
|
298
|
+
* branch remains nominally backed by the exact source-byte plan held by this
|
|
299
|
+
* Host process; callers cannot manufacture an applicable plan from JSON.
|
|
300
|
+
*/
|
|
301
|
+
export type RecordMigrateOperationPlan = {
|
|
302
|
+
readonly _tag: "RecordMigrationAlreadyCurrent";
|
|
303
|
+
readonly format: "niceeval.record";
|
|
304
|
+
} | {
|
|
305
|
+
readonly _tag: "RecordMigrationUnsupported";
|
|
306
|
+
readonly format: string;
|
|
307
|
+
} | {
|
|
308
|
+
readonly _tag: "RecordMigrationRestoreRequired";
|
|
309
|
+
readonly format: "niceeval.record";
|
|
310
|
+
readonly backup: Exclude<RecordBackupState, {
|
|
311
|
+
readonly state: "git-restore-point";
|
|
312
|
+
}>;
|
|
313
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
314
|
+
} | RecordMigrateReadyPlan;
|
|
315
|
+
export interface RecordMigrateReadyPlan {
|
|
316
|
+
readonly _tag: "RecordMigrationReady";
|
|
317
|
+
readonly format: "niceeval.record";
|
|
318
|
+
readonly restoreCommit: string;
|
|
319
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
320
|
+
}
|
|
321
|
+
export type RecordMigrateOperationReceipt = {
|
|
322
|
+
readonly _tag: "RecordMigrationAlreadyCurrent";
|
|
323
|
+
readonly format: "niceeval.record";
|
|
324
|
+
} | {
|
|
325
|
+
readonly _tag: "RecordMigrationApplied";
|
|
326
|
+
readonly format: "niceeval.record";
|
|
327
|
+
readonly attachments: readonly RecordAttachmentMigrationTarget[];
|
|
328
|
+
};
|
|
329
|
+
/** Exhaustive failure vocabulary consumed by Record-owned CLI presentation. */
|
|
330
|
+
export type RecordMaintenanceOperationFailure = {
|
|
331
|
+
readonly _tag: "RecordMaintenanceBusy";
|
|
332
|
+
readonly code: "record-maintenance-busy";
|
|
333
|
+
} | {
|
|
334
|
+
readonly _tag: "RecordMigrationInterrupted";
|
|
335
|
+
readonly code: "record-migration-interrupted";
|
|
336
|
+
readonly restoreCommit?: string;
|
|
337
|
+
readonly restoreSafe?: boolean;
|
|
338
|
+
} | {
|
|
339
|
+
readonly _tag: "RecordMigrationPlanStale";
|
|
340
|
+
readonly code: "record-migration-plan-stale";
|
|
341
|
+
} | {
|
|
342
|
+
readonly _tag: "RecordMigrationGitRestoreRequired";
|
|
343
|
+
readonly code: "record-migration-git-restore-required";
|
|
344
|
+
} | {
|
|
345
|
+
readonly _tag: "RecordMigrationInvalid";
|
|
346
|
+
readonly code: "record-migration-invalid";
|
|
347
|
+
} | {
|
|
348
|
+
readonly _tag: "RecordMigrationRecoveryRequired";
|
|
349
|
+
readonly code: "record-migration-recovery-required";
|
|
350
|
+
readonly causeCode: string;
|
|
351
|
+
readonly restoreCommit: string;
|
|
352
|
+
readonly restoreSafe: boolean;
|
|
353
|
+
} | {
|
|
354
|
+
readonly _tag: "RecordFormatUnsupported";
|
|
355
|
+
readonly code: "record-format-unsupported";
|
|
356
|
+
} | {
|
|
357
|
+
readonly _tag: "RecordMigrationRequired";
|
|
358
|
+
readonly code: "record-migration-required";
|
|
359
|
+
} | {
|
|
360
|
+
readonly _tag: "RecordMaintenanceOperationFailed";
|
|
361
|
+
readonly code: string;
|
|
362
|
+
};
|
|
267
363
|
export interface RecordMaintenanceSession {
|
|
268
364
|
readonly inspect: () => Effect.Effect<RecordFormatInspection, RecordMaintenanceError>;
|
|
269
365
|
readonly planMigrate: () => Effect.Effect<RecordMigrationPlan, RecordMaintenanceError>;
|
|
270
366
|
readonly applyMigrate: (plan: RecordMigrationPlan) => Effect.Effect<RecordMigrationReceipt, RecordMaintenanceError>;
|
|
271
367
|
}
|
|
272
368
|
export interface RecordHostSDK {
|
|
369
|
+
/**
|
|
370
|
+
* Ordinary-entry read check followed, when required, by one Git-safe
|
|
371
|
+
* maintenance migration. Every internally acquired Scope is closed before
|
|
372
|
+
* this Effect completes; the caller must then perform a fresh current open.
|
|
373
|
+
*/
|
|
374
|
+
readonly ensureAutomaticMigration: (input: {
|
|
375
|
+
readonly root: RecordRoot;
|
|
376
|
+
}) => Effect.Effect<RecordAutomaticMigrationResult, RecordAutomaticMigrationError, import("../platform/services.js").RecordFileSystem | import("../platform/services.js").RecordGit | import("../../coordination/record-leases.js").RecordCoordination>;
|
|
273
377
|
readonly current: {
|
|
274
378
|
readonly openRead: (input: {
|
|
275
379
|
readonly root: RecordRoot;
|
|
@@ -278,6 +382,22 @@ export interface RecordHostSDK {
|
|
|
278
382
|
readonly createReferenceRun: (request: CreateReferenceRunRequest) => Effect.Effect<ReferenceRunWriteSession, RecordReaderOpenError | RecordWriteError, import("effect").Scope.Scope | import("../platform/services.js").RecordFileSystem | import("../platform/services.js").RecordEntropy | import("../../coordination/record-leases.js").RecordCoordination>;
|
|
279
383
|
};
|
|
280
384
|
readonly maintenance: {
|
|
385
|
+
readonly planClean: (input: {
|
|
386
|
+
readonly root: RecordRoot;
|
|
387
|
+
}) => Effect.Effect<RecordCleanOperationPlan, RecordMaintenanceOperationFailure, import("../platform/services.js").RecordFileSystem | import("../../coordination/record-leases.js").RecordCoordination>;
|
|
388
|
+
readonly applyClean: (input: {
|
|
389
|
+
readonly root: RecordRoot;
|
|
390
|
+
readonly plan: Extract<RecordCleanOperationPlan, {
|
|
391
|
+
readonly _tag: "RecordCleanConfirmationRequired";
|
|
392
|
+
}>;
|
|
393
|
+
}) => Effect.Effect<RecordCleanOperationReceipt, RecordMaintenanceOperationFailure, import("../platform/services.js").RecordFileSystem | import("../../coordination/record-leases.js").RecordCoordination>;
|
|
394
|
+
readonly planMigrate: (input: {
|
|
395
|
+
readonly root: RecordRoot;
|
|
396
|
+
}) => Effect.Effect<RecordMigrateOperationPlan, RecordMaintenanceOperationFailure, import("../platform/services.js").RecordFileSystem | import("../platform/services.js").RecordGit | import("../../coordination/record-leases.js").RecordCoordination>;
|
|
397
|
+
readonly applyMigrate: (input: {
|
|
398
|
+
readonly root: RecordRoot;
|
|
399
|
+
readonly plan: RecordMigrateReadyPlan;
|
|
400
|
+
}) => Effect.Effect<RecordMigrateOperationReceipt, RecordMaintenanceOperationFailure, import("../platform/services.js").RecordFileSystem | import("../platform/services.js").RecordGit | import("../../coordination/record-leases.js").RecordCoordination>;
|
|
281
401
|
readonly open: (input: {
|
|
282
402
|
readonly root: RecordRoot;
|
|
283
403
|
}) => Effect.Effect<RecordMaintenanceSession, RecordMaintenanceOpenError, import("effect").Scope.Scope | import("../platform/services.js").RecordFileSystem | import("../platform/services.js").RecordGit | import("../../coordination/record-leases.js").RecordCoordination>;
|
|
@@ -1602,9 +1602,89 @@ table.niceeval-report,
|
|
|
1602
1602
|
color: color-mix(in oklch, var(--bad), var(--text) 38%);
|
|
1603
1603
|
}
|
|
1604
1604
|
.niceeval-assertion-evidence {
|
|
1605
|
+
min-width: 0;
|
|
1606
|
+
}
|
|
1607
|
+
.niceeval-match-node {
|
|
1608
|
+
min-width: 0;
|
|
1609
|
+
border-left: 2px solid var(--line-strong);
|
|
1610
|
+
padding-left: 10px;
|
|
1611
|
+
}
|
|
1612
|
+
.niceeval-match-node > summary {
|
|
1613
|
+
cursor: pointer;
|
|
1614
|
+
list-style: none;
|
|
1615
|
+
}
|
|
1616
|
+
.niceeval-match-node > summary::-webkit-details-marker { display: none; }
|
|
1617
|
+
.niceeval-match-summary {
|
|
1618
|
+
display: flex;
|
|
1619
|
+
min-width: 0;
|
|
1620
|
+
align-items: baseline;
|
|
1621
|
+
gap: 7px;
|
|
1622
|
+
font: 12px/1.5 var(--font-mono);
|
|
1623
|
+
font-weight: 650;
|
|
1624
|
+
}
|
|
1625
|
+
.niceeval-match-summary code {
|
|
1626
|
+
overflow: hidden;
|
|
1627
|
+
color: inherit;
|
|
1628
|
+
text-overflow: ellipsis;
|
|
1629
|
+
white-space: nowrap;
|
|
1630
|
+
}
|
|
1631
|
+
.niceeval-match-summary--matched { color: var(--good); }
|
|
1632
|
+
.niceeval-match-summary--mismatched { color: var(--bad); }
|
|
1633
|
+
.niceeval-match-summary--unavailable { color: var(--warn); }
|
|
1634
|
+
.niceeval-match-detail {
|
|
1635
|
+
display: grid;
|
|
1636
|
+
gap: 10px;
|
|
1637
|
+
padding: 8px 0 4px;
|
|
1638
|
+
}
|
|
1639
|
+
.niceeval-match-children {
|
|
1640
|
+
display: grid;
|
|
1641
|
+
gap: 7px;
|
|
1642
|
+
}
|
|
1643
|
+
.niceeval-match-body {
|
|
1644
|
+
display: grid;
|
|
1645
|
+
gap: 10px;
|
|
1646
|
+
}
|
|
1647
|
+
.niceeval-match-evidence-grid {
|
|
1648
|
+
display: grid;
|
|
1649
|
+
gap: 10px;
|
|
1650
|
+
}
|
|
1651
|
+
.niceeval-match-facts {
|
|
1605
1652
|
display: grid;
|
|
1653
|
+
gap: 5px;
|
|
1654
|
+
margin: 0;
|
|
1655
|
+
font: 11px/1.5 var(--font-mono);
|
|
1656
|
+
}
|
|
1657
|
+
.niceeval-match-facts > div {
|
|
1658
|
+
display: grid;
|
|
1659
|
+
grid-template-columns: minmax(5.5rem, max-content) minmax(0, 1fr);
|
|
1660
|
+
gap: 10px;
|
|
1661
|
+
}
|
|
1662
|
+
.niceeval-match-facts dt { color: var(--soft); }
|
|
1663
|
+
.niceeval-match-facts dd {
|
|
1664
|
+
min-width: 0;
|
|
1665
|
+
margin: 0;
|
|
1666
|
+
overflow-wrap: anywhere;
|
|
1667
|
+
color: var(--muted);
|
|
1668
|
+
}
|
|
1669
|
+
.niceeval-match-coverage {
|
|
1670
|
+
margin: 0;
|
|
1671
|
+
color: var(--soft);
|
|
1672
|
+
font: 10px/1.5 var(--font-mono);
|
|
1673
|
+
}
|
|
1674
|
+
.niceeval-match-raw {
|
|
1606
1675
|
min-width: 0;
|
|
1676
|
+
border-top: 1px dashed var(--line);
|
|
1677
|
+
padding-top: 8px;
|
|
1678
|
+
}
|
|
1679
|
+
.niceeval-match-raw > summary {
|
|
1680
|
+
color: var(--soft);
|
|
1681
|
+
cursor: pointer;
|
|
1682
|
+
font: 11px/1.4 var(--font-mono);
|
|
1683
|
+
}
|
|
1684
|
+
.niceeval-match-raw > div {
|
|
1685
|
+
display: grid;
|
|
1607
1686
|
gap: 12px;
|
|
1687
|
+
padding-top: 10px;
|
|
1608
1688
|
}
|
|
1609
1689
|
.niceeval-assertion-evidence-section { min-width: 0; }
|
|
1610
1690
|
.niceeval-assertion-evidence-section > h5 {
|