niceeval 0.13.1 → 0.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/INDEX.md +25 -2
- package/README.md +9 -10
- package/README.zh.md +9 -10
- package/dist/agents/ai-sdk.cjs.map +1 -1
- package/dist/agents/ai-sdk.d.cts +1 -1
- package/dist/agents/ai-sdk.d.mts +1 -1
- package/dist/agents/ai-sdk.d.ts +1 -1
- package/dist/agents/bub-install-spec.cjs +19 -5
- package/dist/agents/bub-install-spec.cjs.map +1 -1
- package/dist/agents/bub-install-spec.d.cts +9 -2
- package/dist/agents/bub-install-spec.d.mts +9 -2
- package/dist/agents/bub-install-spec.d.ts +9 -2
- package/dist/agents/bub-install-spec.js +14 -12
- package/dist/agents/bub.cjs +10 -6
- package/dist/agents/bub.cjs.map +1 -1
- package/dist/agents/bub.d.cts +2 -2
- package/dist/agents/bub.d.mts +2 -2
- package/dist/agents/bub.d.ts +2 -2
- package/dist/agents/claude-code.cjs.map +1 -1
- package/dist/agents/claude-code.d.cts +2 -2
- package/dist/agents/claude-code.d.mts +2 -2
- package/dist/agents/claude-code.d.ts +2 -2
- package/dist/agents/codex.cjs +4 -4
- package/dist/agents/codex.cjs.map +1 -1
- package/dist/agents/codex.d.cts +3 -3
- package/dist/agents/codex.d.mts +3 -3
- package/dist/agents/codex.d.ts +3 -3
- package/dist/agents/coding-cli-versions.cjs +10 -1
- package/dist/agents/coding-cli-versions.cjs.map +1 -1
- package/dist/agents/coding-cli-versions.d.cts +8 -3
- package/dist/agents/coding-cli-versions.d.mts +8 -3
- package/dist/agents/coding-cli-versions.d.ts +8 -3
- package/dist/agents/coding-cli-versions.js +18 -12
- package/dist/agents/deepseek-harness.cjs +151 -0
- package/dist/agents/deepseek-harness.cjs.map +1 -0
- package/dist/agents/deepseek-harness.d.cts +14 -0
- package/dist/agents/deepseek-harness.d.mts +14 -0
- package/dist/agents/deepseek-harness.d.ts +14 -0
- package/dist/agents/deepseek-harness.js +7 -0
- package/dist/agents/deepseek-harness.js.map +1 -0
- package/dist/agents/exact-npm-plugins.cjs +28 -0
- package/dist/agents/exact-npm-plugins.cjs.map +1 -0
- package/dist/agents/exact-npm-plugins.d.cts +10 -0
- package/dist/agents/exact-npm-plugins.d.mts +10 -0
- package/dist/agents/exact-npm-plugins.d.ts +10 -0
- package/dist/agents/exact-npm-plugins.js +8 -0
- package/dist/agents/exact-npm-plugins.js.map +1 -0
- package/dist/agents/index.cjs +5 -1
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +4 -0
- package/dist/agents/index.d.mts +4 -0
- package/dist/agents/index.d.ts +4 -0
- package/dist/agents/index.js +54 -50
- package/dist/agents/index.mjs +54 -50
- package/dist/agents/omp.cjs +170 -0
- package/dist/agents/omp.cjs.map +1 -0
- package/dist/agents/omp.d.cts +14 -0
- package/dist/agents/omp.d.mts +14 -0
- package/dist/agents/omp.d.ts +14 -0
- package/dist/agents/omp.js +7 -0
- package/dist/agents/omp.js.map +1 -0
- package/dist/agents/openclaw.cjs +51 -2
- package/dist/agents/openclaw.cjs.map +1 -1
- package/dist/agents/openclaw.d.cts +2 -0
- package/dist/agents/openclaw.d.mts +2 -0
- package/dist/agents/openclaw.d.ts +2 -0
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +4 -4
- package/dist/agents/types.d.mts +4 -4
- package/dist/agents/types.d.ts +4 -4
- package/dist/agents/ui-message-stream.cjs +24 -7
- package/dist/agents/ui-message-stream.cjs.map +1 -1
- package/dist/analysis/api.cjs +28 -2
- package/dist/analysis/api.cjs.map +1 -1
- package/dist/analysis/api.d.cts +22 -1
- package/dist/analysis/api.d.mts +22 -1
- package/dist/analysis/api.d.ts +22 -1
- package/dist/analysis/api.js +8 -6
- package/dist/analysis/bindings.cjs +11 -18
- package/dist/analysis/bindings.cjs.map +1 -1
- package/dist/analysis/bindings.d.cts +177 -49
- package/dist/analysis/bindings.d.mts +177 -49
- package/dist/analysis/bindings.d.ts +177 -49
- package/dist/analysis/contracts.cjs +1 -0
- package/dist/analysis/contracts.cjs.map +1 -1
- package/dist/analysis/contracts.d.cts +43 -3
- package/dist/analysis/contracts.d.mts +43 -3
- package/dist/analysis/contracts.d.ts +43 -3
- package/dist/analysis/cost-projection.cjs +2 -1
- package/dist/analysis/cost-projection.cjs.map +1 -1
- package/dist/analysis/cost-projection.d.cts +1 -1
- package/dist/analysis/cost-projection.d.mts +1 -1
- package/dist/analysis/cost-projection.d.ts +1 -1
- package/dist/analysis/cost.cjs +13 -3
- package/dist/analysis/cost.cjs.map +1 -1
- package/dist/analysis/cost.d.cts +10 -3
- package/dist/analysis/cost.d.mts +10 -3
- package/dist/analysis/cost.d.ts +10 -3
- package/dist/analysis/experiment-groups.cjs +96 -0
- package/dist/analysis/experiment-groups.cjs.map +1 -0
- package/dist/analysis/experiment-groups.d.cts +9 -0
- package/dist/analysis/experiment-groups.d.mts +9 -0
- package/dist/analysis/experiment-groups.d.ts +9 -0
- package/dist/analysis/experiment-groups.js +10 -0
- package/dist/analysis/experiment-groups.js.map +1 -0
- package/dist/analysis/index.cjs +4 -1
- package/dist/analysis/index.cjs.map +1 -1
- package/dist/analysis/index.d.cts +4 -2
- package/dist/analysis/index.d.mts +4 -2
- package/dist/analysis/index.d.ts +4 -2
- package/dist/analysis/index.js +40 -36
- package/dist/analysis/index.mjs +40 -36
- package/dist/assertions/limits.cjs +4 -0
- package/dist/assertions/limits.cjs.map +1 -1
- package/dist/assertions/limits.d.cts +4 -0
- package/dist/assertions/limits.d.mts +4 -0
- package/dist/assertions/limits.d.ts +4 -0
- package/dist/assertions/match.cjs +63 -25
- package/dist/assertions/match.cjs.map +1 -1
- package/dist/assertions/match.d.cts +7 -0
- package/dist/assertions/match.d.mts +7 -0
- package/dist/assertions/match.d.ts +7 -0
- package/dist/assertions/record/attachment.cjs +32 -4
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/record/diff.cjs +10 -4
- package/dist/assertions/record/diff.cjs.map +1 -1
- package/dist/assertions/record/producer.cjs +101 -4
- package/dist/assertions/record/producer.cjs.map +1 -1
- package/dist/assertions/record/producer.d.cts +4 -1
- package/dist/assertions/record/producer.d.mts +4 -1
- package/dist/assertions/record/producer.d.ts +4 -1
- package/dist/assertions/runtime.cjs +45 -5
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/cli/record.cjs +113 -8
- package/dist/cli/record.cjs.map +1 -1
- package/dist/cli/record.d.cts +20 -1
- package/dist/cli/record.d.mts +20 -1
- package/dist/cli/record.d.ts +20 -1
- package/dist/cli/record.js +4 -2
- package/dist/cli.cjs +386 -31
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.d.cts +10 -2
- package/dist/cli.d.mts +10 -2
- package/dist/cli.d.ts +10 -2
- package/dist/context/send-retry.cjs +4 -4
- package/dist/context/send-retry.cjs.map +1 -1
- package/dist/coordination/host/runtime.cjs +8 -30
- package/dist/coordination/host/runtime.cjs.map +1 -1
- package/dist/coordination/host/runtime.d.cts +3 -3
- package/dist/coordination/host/runtime.d.mts +3 -3
- package/dist/coordination/host/runtime.d.ts +3 -3
- package/dist/coordination/host/types.cjs.map +1 -1
- package/dist/coordination/host/types.d.cts +0 -5
- package/dist/coordination/host/types.d.mts +0 -5
- package/dist/coordination/host/types.d.ts +0 -5
- package/dist/coordination/platform/node.cjs +90 -9
- package/dist/coordination/platform/node.cjs.map +1 -1
- package/dist/define.cjs +25 -1
- package/dist/define.cjs.map +1 -1
- package/dist/experiment/host/index.cjs +1 -0
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/i18n/en.cjs +26 -8
- package/dist/i18n/en.cjs.map +1 -1
- package/dist/i18n/en.d.cts +19 -6
- package/dist/i18n/en.d.mts +19 -6
- package/dist/i18n/en.d.ts +19 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/o11y/parsers/hermes.cjs +1 -1
- package/dist/o11y/parsers/hermes.cjs.map +1 -1
- package/dist/o11y/prices.json +1 -1
- package/dist/o11y/record/families.cjs +12 -3
- package/dist/o11y/record/families.cjs.map +1 -1
- package/dist/o11y/record/families.d.cts +8 -8
- package/dist/o11y/record/families.d.mts +8 -8
- package/dist/o11y/record/families.d.ts +8 -8
- package/dist/o11y/record/family-projectors.d.cts +66 -18
- package/dist/o11y/record/family-projectors.d.mts +66 -18
- package/dist/o11y/record/family-projectors.d.ts +66 -18
- package/dist/o11y/record/family-writers.d.cts +11 -3
- package/dist/o11y/record/family-writers.d.mts +11 -3
- package/dist/o11y/record/family-writers.d.ts +11 -3
- package/dist/o11y/record/runner-producer.cjs +14 -4
- package/dist/o11y/record/runner-producer.cjs.map +1 -1
- package/dist/record/codec/core.d.cts +2 -2
- package/dist/record/codec/core.d.mts +2 -2
- package/dist/record/codec/core.d.ts +2 -2
- package/dist/record/family/catalog.d.cts +44 -12
- package/dist/record/family/catalog.d.mts +44 -12
- package/dist/record/family/catalog.d.ts +44 -12
- package/dist/record/family/index.js +128 -124
- package/dist/record/family/observability-v1.cjs +35 -0
- package/dist/record/family/observability-v1.cjs.map +1 -0
- package/dist/record/family/observability-v1.d.cts +3 -0
- package/dist/record/family/observability-v1.d.mts +3 -0
- package/dist/record/family/observability-v1.d.ts +3 -0
- package/dist/record/family/observability-v1.js +6 -0
- package/dist/record/family/observability-v1.js.map +1 -0
- package/dist/record/family/observability.cjs +58 -9
- package/dist/record/family/observability.cjs.map +1 -1
- package/dist/record/family/observability.d.cts +1014 -15
- package/dist/record/family/observability.d.mts +1014 -15
- package/dist/record/family/observability.d.ts +1014 -15
- package/dist/record/family/observability.js +22 -18
- package/dist/record/host/runtime.cjs +600 -31
- package/dist/record/host/runtime.cjs.map +1 -1
- package/dist/record/host/types.cjs.map +1 -1
- package/dist/record/host/types.d.cts +33 -9
- package/dist/record/host/types.d.mts +33 -9
- package/dist/record/host/types.d.ts +33 -9
- package/dist/record/maintenance/runtime.cjs +1 -2
- package/dist/record/maintenance/runtime.cjs.map +1 -1
- package/dist/record/model/core.cjs.map +1 -1
- package/dist/record/model/core.d.cts +1 -1
- package/dist/record/model/core.d.mts +1 -1
- package/dist/record/model/core.d.ts +1 -1
- package/dist/record/model/definition.d.cts +6 -6
- package/dist/record/model/definition.d.mts +6 -6
- package/dist/record/model/definition.d.ts +6 -6
- package/dist/record/model/identifiers.cjs +1 -1
- package/dist/record/model/identifiers.cjs.map +1 -1
- package/dist/record/model/identifiers.d.cts +1 -1
- package/dist/record/model/identifiers.d.mts +1 -1
- package/dist/record/model/identifiers.d.ts +1 -1
- package/dist/record/platform/node.cjs +159 -23
- package/dist/record/platform/node.cjs.map +1 -1
- package/dist/record/platform/services.cjs.map +1 -1
- package/dist/record/platform/services.d.cts +15 -2
- package/dist/record/platform/services.d.mts +15 -2
- package/dist/record/platform/services.d.ts +15 -2
- package/dist/record/reader/errors.cjs +37 -1
- package/dist/record/reader/errors.cjs.map +1 -1
- package/dist/record/reader/errors.d.cts +49 -1
- package/dist/record/reader/errors.d.mts +49 -1
- package/dist/record/reader/errors.d.ts +49 -1
- package/dist/record/reader/errors.js +22 -12
- package/dist/record/reader/format.cjs +76 -17
- package/dist/record/reader/format.cjs.map +1 -1
- package/dist/record/reader/format.d.cts +11 -4
- package/dist/record/reader/format.d.mts +11 -4
- package/dist/record/reader/format.d.ts +11 -4
- package/dist/record/reader/format.js +2 -0
- package/dist/record/reader/index.js +32 -18
- package/dist/record/reader/runtime.cjs +64 -0
- package/dist/record/reader/runtime.cjs.map +1 -1
- package/dist/record/reader/runtime.d.cts +15 -0
- package/dist/record/reader/runtime.d.mts +15 -0
- package/dist/record/reader/runtime.d.ts +15 -0
- package/dist/record/reader/runtime.js +2 -0
- package/dist/report/assets/styles.css +53 -29
- package/dist/report/built-in/analysis-values.cjs +21 -13
- package/dist/report/built-in/analysis-values.cjs.map +1 -1
- package/dist/report/built-in/analysis-values.d.cts +11 -22
- package/dist/report/built-in/analysis-values.d.mts +11 -22
- package/dist/report/built-in/analysis-values.d.ts +11 -22
- package/dist/report/built-in/analysis-values.js +4 -6
- package/dist/report/built-in/index.cjs +1 -3
- package/dist/report/built-in/index.cjs.map +1 -1
- package/dist/report/built-in/index.d.cts +1 -1
- package/dist/report/built-in/index.d.mts +1 -1
- package/dist/report/built-in/index.d.ts +1 -1
- package/dist/report/built-in/index.js +4 -8
- package/dist/report/built-in/index.mjs +4 -8
- package/dist/report/built-in/machine.cjs +0 -2
- package/dist/report/built-in/machine.cjs.map +1 -1
- package/dist/report/built-in/machine.d.cts +0 -2
- package/dist/report/built-in/machine.d.mts +0 -2
- package/dist/report/built-in/machine.d.ts +0 -2
- package/dist/report/built-in/result-components.cjs +49 -51
- package/dist/report/built-in/result-components.cjs.map +1 -1
- package/dist/report/built-in/result-components.d.cts +16 -17
- package/dist/report/built-in/result-components.d.mts +16 -17
- package/dist/report/built-in/result-components.d.ts +16 -17
- package/dist/report/built-in/result-components.js +0 -4
- package/dist/report/built-in/run-membership-overview.cjs +126 -17
- package/dist/report/built-in/run-membership-overview.cjs.map +1 -1
- package/dist/report/built-in/run-membership-overview.d.cts +14 -0
- package/dist/report/built-in/run-membership-overview.d.mts +14 -0
- package/dist/report/built-in/run-membership-overview.d.ts +14 -0
- package/dist/report/built-in/run-membership-overview.js +4 -2
- package/dist/report/built-in/standard.cjs +80 -45
- package/dist/report/built-in/standard.cjs.map +1 -1
- package/dist/report/built-in/standard.d.cts +19 -41
- package/dist/report/built-in/standard.d.mts +19 -41
- package/dist/report/built-in/standard.d.ts +19 -41
- package/dist/report/built-in/standard.js +6 -6
- package/dist/report/components/attempt-detail/compute.cjs +78 -2
- package/dist/report/components/attempt-detail/compute.cjs.map +1 -1
- package/dist/report/components/attempt-detail/compute.d.cts +1 -1
- package/dist/report/components/attempt-detail/compute.d.mts +1 -1
- package/dist/report/components/attempt-detail/compute.d.ts +1 -1
- package/dist/report/components/attempt-detail/content.cjs +1 -1
- package/dist/report/components/attempt-detail/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.cjs +42 -5
- package/dist/report/components/entity-lists/compute.cjs.map +1 -1
- package/dist/report/components/entity-lists/compute.d.cts +10 -8
- package/dist/report/components/entity-lists/compute.d.mts +10 -8
- package/dist/report/components/entity-lists/compute.d.ts +10 -8
- package/dist/report/components/entity-lists/content.cjs +31 -6
- package/dist/report/components/entity-lists/content.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.cjs +9 -4
- package/dist/report/components/entity-lists/index.cjs.map +1 -1
- package/dist/report/components/entity-lists/index.d.cts +4 -7
- package/dist/report/components/entity-lists/index.d.mts +4 -7
- package/dist/report/components/entity-lists/index.d.ts +4 -7
- package/dist/report/components/summaries/compute.cjs +8 -1
- package/dist/report/components/summaries/compute.cjs.map +1 -1
- package/dist/report/components/summaries/compute.d.cts +9 -1
- package/dist/report/components/summaries/compute.d.mts +9 -1
- package/dist/report/components/summaries/compute.d.ts +9 -1
- package/dist/report/components/summaries/index.cjs +48 -4
- package/dist/report/components/summaries/index.cjs.map +1 -1
- package/dist/report/components/summaries/index.d.cts +7 -4
- package/dist/report/components/summaries/index.d.mts +7 -4
- package/dist/report/components/summaries/index.d.ts +7 -4
- package/dist/report/definition/cell.cjs +3 -0
- package/dist/report/definition/cell.cjs.map +1 -1
- package/dist/report/definition/cell.d.cts +2 -0
- package/dist/report/definition/cell.d.mts +2 -0
- package/dist/report/definition/cell.d.ts +2 -0
- package/dist/report/definition/primitives/chart.cjs +8 -5
- package/dist/report/definition/primitives/chart.cjs.map +1 -1
- package/dist/report/definition/primitives/points-dataset.cjs +1 -0
- package/dist/report/definition/primitives/points-dataset.cjs.map +1 -1
- package/dist/report/definition/primitives.cjs +15 -2
- package/dist/report/definition/primitives.cjs.map +1 -1
- package/dist/report/definition/report.cjs +27 -3
- package/dist/report/definition/report.cjs.map +1 -1
- package/dist/report/definition/report.d.cts +8 -0
- package/dist/report/definition/report.d.mts +8 -0
- package/dist/report/definition/report.d.ts +8 -0
- package/dist/report/execution/machine.cjs +30 -14
- package/dist/report/execution/machine.cjs.map +1 -1
- package/dist/report/execution/machine.d.cts +20 -10
- package/dist/report/execution/machine.d.mts +20 -10
- package/dist/report/execution/machine.d.ts +20 -10
- package/dist/report/execution/machine.js +6 -6
- package/dist/report/host/execute.cjs +25 -16
- package/dist/report/host/execute.cjs.map +1 -1
- package/dist/report/host/execute.d.cts +4 -0
- package/dist/report/host/execute.d.mts +4 -0
- package/dist/report/host/execute.d.ts +4 -0
- package/dist/report/host/from-record.cjs +22 -5
- package/dist/report/host/from-record.cjs.map +1 -1
- package/dist/report/host/machine.cjs +53 -11
- package/dist/report/host/machine.cjs.map +1 -1
- package/dist/report/host/site-runtime.cjs +9 -8
- package/dist/report/host/site-runtime.cjs.map +1 -1
- package/dist/report/host/site-runtime.d.cts +1 -1
- package/dist/report/host/site-runtime.d.mts +1 -1
- package/dist/report/host/site-runtime.d.ts +1 -1
- package/dist/report/host/static.cjs +56 -9
- package/dist/report/host/static.cjs.map +1 -1
- package/dist/report/index.cjs.map +1 -1
- package/dist/report/index.d.cts +1 -1
- package/dist/report/index.d.mts +1 -1
- package/dist/report/index.d.ts +1 -1
- package/dist/report/model/dataset.cjs +7 -2
- package/dist/report/model/dataset.cjs.map +1 -1
- package/dist/report/model/locale.cjs +2 -0
- package/dist/report/model/locale.cjs.map +1 -1
- package/dist/report/model/locale.d.cts +1 -0
- package/dist/report/model/locale.d.mts +1 -0
- package/dist/report/model/locale.d.ts +1 -0
- package/dist/report/model/metrics.cjs +3 -1
- package/dist/report/model/metrics.cjs.map +1 -1
- package/dist/report/model/pricing.cjs +16 -11
- package/dist/report/model/pricing.cjs.map +1 -1
- package/dist/report/react/styles.css +53 -29
- package/dist/runner/adoption.cjs +1 -0
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/attempt.cjs +44 -5
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/runner/attempt.d.cts +13 -1
- package/dist/runner/attempt.d.mts +13 -1
- package/dist/runner/attempt.d.ts +13 -1
- package/dist/runner/config-identity.cjs +10 -2
- package/dist/runner/config-identity.cjs.map +1 -1
- package/dist/runner/config-identity.d.cts +4 -2
- package/dist/runner/config-identity.d.mts +4 -2
- package/dist/runner/config-identity.d.ts +4 -2
- package/dist/runner/feedback/human.cjs +298 -59
- package/dist/runner/feedback/human.cjs.map +1 -1
- package/dist/runner/feedback/json.cjs +14 -6
- package/dist/runner/feedback/json.cjs.map +1 -1
- package/dist/runner/feedback/json.d.cts +3 -2
- package/dist/runner/feedback/json.d.mts +3 -2
- package/dist/runner/feedback/json.d.ts +3 -2
- package/dist/runner/feedback/reducer.cjs +2 -0
- package/dist/runner/feedback/reducer.cjs.map +1 -1
- package/dist/runner/judge-config.cjs +1 -1
- package/dist/runner/judge-config.cjs.map +1 -1
- package/dist/runner/ledger.cjs +124 -12
- package/dist/runner/ledger.cjs.map +1 -1
- package/dist/runner/project-current.cjs +13 -5
- package/dist/runner/project-current.cjs.map +1 -1
- package/dist/runner/run.cjs +564 -256
- package/dist/runner/run.cjs.map +1 -1
- package/dist/runner/sandbox-pool.cjs +161 -30
- package/dist/runner/sandbox-pool.cjs.map +1 -1
- package/dist/runner/sandbox-pool.d.cts +34 -2
- package/dist/runner/sandbox-pool.d.mts +34 -2
- package/dist/runner/sandbox-pool.d.ts +34 -2
- package/dist/runner/shared-state-lease.cjs +803 -0
- package/dist/runner/shared-state-lease.cjs.map +1 -0
- package/dist/runner/shared-state-lease.d.cts +121 -0
- package/dist/runner/shared-state-lease.d.mts +121 -0
- package/dist/runner/shared-state-lease.d.ts +121 -0
- package/dist/runner/shared-state-lease.js +24 -0
- package/dist/runner/shared-state-lease.js.map +1 -0
- package/dist/runner/teardown-registry.cjs +97 -34
- package/dist/runner/teardown-registry.cjs.map +1 -1
- package/dist/runner/teardown-registry.d.cts +27 -1
- package/dist/runner/teardown-registry.d.mts +27 -1
- package/dist/runner/teardown-registry.d.ts +27 -1
- package/dist/runner/teardown-registry.js +20 -16
- package/dist/runner/types.cjs.map +1 -1
- package/dist/runner/types.d.cts +31 -5
- package/dist/runner/types.d.mts +31 -5
- package/dist/runner/types.d.ts +31 -5
- package/dist/sample/analysis.cjs +249 -459
- package/dist/sample/analysis.cjs.map +1 -1
- package/dist/sample/capability.cjs +138 -7
- package/dist/sample/capability.cjs.map +1 -1
- package/dist/sample/capability.d.cts +3 -1
- package/dist/sample/capability.d.mts +3 -1
- package/dist/sample/capability.d.ts +3 -1
- package/dist/sample/capability.js +8 -6
- package/dist/sandbox/docker-agent-image.cjs +5 -1
- package/dist/sandbox/docker-agent-image.cjs.map +1 -1
- package/dist/sandbox/docker-agent-image.d.cts +2 -0
- package/dist/sandbox/docker-agent-image.d.mts +2 -0
- package/dist/sandbox/docker-agent-image.d.ts +2 -0
- package/dist/sandbox/docker-agent-image.js +14 -10
- package/dist/sandbox/docker-profile/schema.cjs +283 -534
- package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
- package/dist/sandbox/docker-profile/schema.d.cts +10 -27
- package/dist/sandbox/docker-profile/schema.d.mts +10 -27
- package/dist/sandbox/docker-profile/schema.d.ts +10 -27
- package/dist/sandbox/e2b-agent-template.cjs +5 -2
- package/dist/sandbox/e2b-agent-template.cjs.map +1 -1
- package/dist/sandbox/index.cjs +4 -2
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.d.cts +1 -1
- package/dist/sandbox/index.d.mts +1 -1
- package/dist/sandbox/index.d.ts +1 -1
- package/dist/sandbox/index.js +120 -116
- package/dist/sandbox/index.mjs +120 -116
- package/dist/sandbox/keep-registry.cjs +28 -66
- package/dist/sandbox/keep-registry.cjs.map +1 -1
- package/dist/sandbox/types.cjs.map +1 -1
- package/dist/sandbox/types.d.cts +1 -1
- package/dist/sandbox/types.d.mts +1 -1
- package/dist/sandbox/types.d.ts +1 -1
- package/dist/shared/aggregate.cjs +16 -6
- package/dist/shared/aggregate.cjs.map +1 -1
- package/dist/shared/aggregate.d.cts +12 -4
- package/dist/shared/aggregate.d.mts +12 -4
- package/dist/shared/aggregate.d.ts +12 -4
- package/dist/shared/turn-label.cjs +20 -2
- package/dist/shared/turn-label.cjs.map +1 -1
- package/dist/shared/turn-label.d.cts +2 -0
- package/dist/shared/turn-label.d.mts +2 -0
- package/dist/shared/turn-label.d.ts +2 -0
- package/dist/shared/turn-label.js +4 -2
- package/dist/vendor/remark/remark-gfm.cjs +7 -7
- package/dist/vendor/remark/remark-gfm.cjs.map +1 -1
- package/dist/vendor/remark/remark-parse.cjs +12 -12
- package/dist/vendor/remark/remark-parse.cjs.map +1 -1
- package/dist/vendor/remark/remark.cjs +13 -13
- package/dist/vendor/remark/remark.cjs.map +1 -1
- package/dist/view/server.cjs +6 -0
- package/dist/view/server.cjs.map +1 -1
- package/docs-site/images/hitl-handshake-zh.svg +3 -3
- package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
- package/docs-site/zh/examples/coding-agent-extensions.mdx +1 -1
- package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +4 -3
- package/docs-site/zh/examples/integrations/claude-sdk.mdx +3 -3
- package/docs-site/zh/examples/integrations/codex-sdk.mdx +5 -5
- package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
- package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
- package/docs-site/zh/explanation/adapter.mdx +5 -5
- package/docs-site/zh/explanation/assert.mdx +7 -7
- package/docs-site/zh/explanation/drive.mdx +4 -2
- package/docs-site/zh/explanation/evals.mdx +10 -8
- package/docs-site/zh/explanation/experiment.mdx +2 -2
- package/docs-site/zh/explanation/hitl.mdx +9 -9
- package/docs-site/zh/explanation/judge.mdx +5 -5
- package/docs-site/zh/explanation/overview.mdx +3 -3
- package/docs-site/zh/explanation/runner.mdx +1 -1
- package/docs-site/zh/index.mdx +3 -3
- package/docs-site/zh/reference/builtin-agents.mdx +13 -13
- package/docs-site/zh/reference/capabilities.mdx +1 -1
- package/docs-site/zh/reference/cli.mdx +18 -12
- package/docs-site/zh/reference/define-agent.mdx +130 -5
- package/docs-site/zh/reference/define-config.mdx +2 -2
- package/docs-site/zh/reference/define-eval.mdx +4 -4
- package/docs-site/zh/reference/events.mdx +11 -11
- package/docs-site/zh/reference/official-adapters.mdx +6 -6
- package/docs-site/zh/reference/results-data.mdx +6 -0
- package/docs-site/zh/troubleshooting/debugging.mdx +1 -1
- package/docs-site/zh/troubleshooting/recover-after-kill.mdx +37 -5
- package/docs-site/zh/tutorials/accept-results.mdx +72 -0
- package/docs-site/zh/tutorials/agent-onboarding.mdx +6 -6
- package/docs-site/zh/tutorials/authoring.mdx +9 -13
- package/docs-site/zh/tutorials/ci-integration.mdx +6 -6
- package/docs-site/zh/tutorials/compare-runs.mdx +61 -0
- package/docs-site/zh/tutorials/concurrency.mdx +13 -12
- package/docs-site/zh/tutorials/configuration.mdx +4 -6
- package/docs-site/zh/tutorials/connect-your-agent.mdx +1 -1
- package/docs-site/zh/tutorials/control-run-cost.mdx +58 -0
- package/docs-site/zh/tutorials/criteria-files.mdx +2 -2
- package/docs-site/zh/tutorials/custom-reports.mdx +2 -2
- package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +46 -0
- package/docs-site/zh/tutorials/docker-in-docker.mdx +52 -43
- package/docs-site/zh/tutorials/eval-groups.mdx +6 -6
- package/docs-site/zh/tutorials/evaluation-kinds.mdx +3 -3
- package/docs-site/zh/tutorials/experiments.mdx +2 -3
- package/docs-site/zh/tutorials/handle-execution-failures.mdx +18 -10
- package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +16 -8
- package/docs-site/zh/tutorials/nixos-managed-dind.mdx +160 -0
- package/docs-site/zh/tutorials/plugins.mdx +14 -0
- package/docs-site/zh/tutorials/rerun-and-cache.mdx +4 -2
- package/docs-site/zh/tutorials/sandbox-agent.mdx +17 -11
- package/docs-site/zh/tutorials/sandbox-providers.mdx +17 -13
- package/docs-site/zh/tutorials/sandbox-reuse.mdx +12 -19
- package/docs-site/zh/tutorials/select-and-preview.mdx +65 -0
- package/docs-site/zh/tutorials/verify-judge.mdx +78 -0
- package/docs-site/zh/tutorials/viewing-results.mdx +38 -1
- package/docs-site/zh/tutorials/write-experiment.mdx +7 -5
- package/docs-site/zh/tutorials/write-send.mdx +9 -8
- package/package.json +9 -5
- package/dist/report/built-in/overview.cjs +0 -44
- package/dist/report/built-in/overview.cjs.map +0 -1
- package/dist/report/built-in/overview.d.cts +0 -6
- package/dist/report/built-in/overview.d.mts +0 -6
- package/dist/report/built-in/overview.d.ts +0 -6
- package/dist/report/built-in/overview.js +0 -9
- package/dist/report/built-in/overview.js.map +0 -1
- package/dist/runner/gate-lease.cjs +0 -283
- package/dist/runner/gate-lease.cjs.map +0 -1
- package/dist/runner/gate-lease.d.cts +0 -62
- package/dist/runner/gate-lease.d.mts +0 -62
- package/dist/runner/gate-lease.d.ts +0 -62
- package/dist/runner/gate-lease.js +0 -22
- package/dist/runner/gate-lease.js.map +0 -1
package/dist/cli/record.cjs
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NodeRecordCliLive = void 0;
|
|
4
|
+
exports.ensureAutomaticRecordMigration = ensureAutomaticRecordMigration;
|
|
4
5
|
exports.runRecordCliCommand = runRecordCliCommand;
|
|
5
6
|
const node_path_1 = require("node:path");
|
|
6
7
|
const effect_1 = require("effect");
|
|
7
8
|
const index_ts_1 = require("../record/index.cjs");
|
|
8
9
|
const index_ts_2 = require("../record/host/index.cjs");
|
|
10
|
+
const identifiers_ts_1 = require("../record/model/identifiers.cjs");
|
|
11
|
+
const errors_ts_1 = require("../record/reader/errors.cjs");
|
|
12
|
+
const services_ts_1 = require("../record/platform/services.cjs");
|
|
9
13
|
function output(input) {
|
|
10
14
|
return Object.freeze({
|
|
11
15
|
exitCode: input.exitCode,
|
|
@@ -14,6 +18,46 @@ function output(input) {
|
|
|
14
18
|
});
|
|
15
19
|
}
|
|
16
20
|
exports.NodeRecordCliLive = index_ts_1.NodeRecordLive;
|
|
21
|
+
/**
|
|
22
|
+
* Preflight for ordinary CLI entry points. Every Scope is closed before the
|
|
23
|
+
* next lease kind is acquired: read check -> exclusive maintenance -> caller's
|
|
24
|
+
* fresh ordinary open.
|
|
25
|
+
*/
|
|
26
|
+
function ensureAutomaticRecordMigration(input) {
|
|
27
|
+
const root = (0, index_ts_1.makeRecordRoot)((0, node_path_1.resolve)(input.cwd, input.record ?? ".niceeval/record"));
|
|
28
|
+
if (effect_1.Either.isLeft(root))
|
|
29
|
+
return effect_1.Effect.fail(root.left);
|
|
30
|
+
return effect_1.Effect.gen(function* () {
|
|
31
|
+
const fileSystem = yield* services_ts_1.RecordFileSystem;
|
|
32
|
+
if ((yield* fileSystem.pathKind((0, services_ts_1.recordPortablePath)(root.right, "record.json"))) === "missing") {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const checked = yield* effect_1.Effect.either(effect_1.Effect.scoped(index_ts_2.recordHost.current.openRead({ root: root.right })));
|
|
36
|
+
if (effect_1.Either.isRight(checked))
|
|
37
|
+
return null;
|
|
38
|
+
if (!(checked.left instanceof errors_ts_1.RecordMigrationRequired))
|
|
39
|
+
return yield* effect_1.Effect.fail(checked.left);
|
|
40
|
+
return yield* effect_1.Effect.scoped(effect_1.Effect.gen(function* () {
|
|
41
|
+
const session = yield* index_ts_2.recordHost.maintenance.open({ root: root.right });
|
|
42
|
+
const plan = yield* session.planMigrate();
|
|
43
|
+
if (plan.state !== "migration-required") {
|
|
44
|
+
return yield* effect_1.Effect.fail(checked.left);
|
|
45
|
+
}
|
|
46
|
+
if (plan.backup.state !== "git-restore-point") {
|
|
47
|
+
return yield* effect_1.Effect.fail(new errors_ts_1.RecordAutoMigrationGitSaveRequired({
|
|
48
|
+
code: "record-auto-migration-git-save-required",
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
yield* session.applyMigrate(plan).pipe(effect_1.Effect.catchTag("RecordMigrationGitRestoreRequired", () => effect_1.Effect.fail(new errors_ts_1.RecordAutoMigrationGitSaveRequired({
|
|
52
|
+
code: "record-auto-migration-git-save-required",
|
|
53
|
+
}))));
|
|
54
|
+
return Object.freeze({
|
|
55
|
+
restoreCommit: plan.backup.commit,
|
|
56
|
+
targetSchemaVersion: identifiers_ts_1.RECORD_SCHEMA_VERSION,
|
|
57
|
+
});
|
|
58
|
+
}));
|
|
59
|
+
});
|
|
60
|
+
}
|
|
17
61
|
function resolveRecordRoot(input) {
|
|
18
62
|
const root = (0, index_ts_1.makeRecordRoot)((0, node_path_1.resolve)(input.cwd, input.record ?? ".niceeval/record"));
|
|
19
63
|
return effect_1.Either.isLeft(root)
|
|
@@ -34,7 +78,15 @@ function recordErrorNextStep(code) {
|
|
|
34
78
|
case "record-migration-required":
|
|
35
79
|
return "Run: niceeval migrate";
|
|
36
80
|
case "record-migration-interrupted":
|
|
37
|
-
return "Restore the Record from Git; do not rerun migrate on mixed bytes.";
|
|
81
|
+
return "Restore the complete Record from the recorded Git commit; do not rerun migrate on mixed bytes.";
|
|
82
|
+
case "record-migration-recovery-required":
|
|
83
|
+
return "Restore the complete Record from Git before retrying migration.";
|
|
84
|
+
case "record-migration-plan-stale":
|
|
85
|
+
return "Review the new migration plan and rerun migrate.";
|
|
86
|
+
case "record-migration-git-restore-required":
|
|
87
|
+
return "Commit, restore, or otherwise obtain a clean Git restore point for this Record before migrating.";
|
|
88
|
+
case "record-migration-invalid":
|
|
89
|
+
return "Restore the Record from Git before retrying migration.";
|
|
38
90
|
case "record-format-unsupported":
|
|
39
91
|
return "Install a NiceEval version that supports this Record format.";
|
|
40
92
|
case "record-maintenance-busy":
|
|
@@ -44,13 +96,45 @@ function recordErrorNextStep(code) {
|
|
|
44
96
|
return undefined;
|
|
45
97
|
}
|
|
46
98
|
}
|
|
47
|
-
function
|
|
99
|
+
function shellQuote(value) {
|
|
100
|
+
return `'${value.replaceAll("'", `'"'"'`)}'`;
|
|
101
|
+
}
|
|
102
|
+
function recoveryCommands(restoreCommit, recordPath) {
|
|
103
|
+
const root = shellQuote(recordPath);
|
|
104
|
+
const commit = shellQuote(restoreCommit);
|
|
105
|
+
const sentinel = shellQuote((0, node_path_1.resolve)(recordPath, "migration.in-progress"));
|
|
106
|
+
return [
|
|
107
|
+
`Restore command: git -C ${root} restore --source=${commit} --staged --worktree -- .`,
|
|
108
|
+
`Verify command: git -C ${root} diff --quiet ${commit} -- . && git -C ${root} diff --cached --quiet ${commit} -- .`,
|
|
109
|
+
`Clear sentinel after verification: rm -f -- ${sentinel}`,
|
|
110
|
+
].join("\n") + "\n";
|
|
111
|
+
}
|
|
112
|
+
function interruptedRecovery(error, recordPath) {
|
|
113
|
+
if (typeof error !== "object" || error === null || recordPath === undefined)
|
|
114
|
+
return "";
|
|
115
|
+
const restoreCommit = Reflect.get(error, "restoreCommit");
|
|
116
|
+
return Reflect.get(error, "restoreSafe") === true &&
|
|
117
|
+
typeof restoreCommit === "string" && /^[0-9a-f]{40,64}$/.test(restoreCommit)
|
|
118
|
+
? recoveryCommands(restoreCommit, recordPath)
|
|
119
|
+
: "";
|
|
120
|
+
}
|
|
121
|
+
function recordErrorOutput(error, stdout = "", recordPath) {
|
|
48
122
|
const code = recordErrorCode(error);
|
|
49
|
-
const
|
|
123
|
+
const automaticRestoreUnsafe = (code === "record-migration-interrupted" || code === "record-migration-recovery-required") &&
|
|
124
|
+
(typeof error !== "object" || error === null || Reflect.get(error, "restoreSafe") !== true);
|
|
125
|
+
const next = automaticRestoreUnsafe
|
|
126
|
+
? "Inspect and preserve concurrent Record edits before choosing a manual recovery; no automatic Git restore command is safe."
|
|
127
|
+
: recordErrorNextStep(code);
|
|
128
|
+
const causeCode = typeof error === "object" && error !== null &&
|
|
129
|
+
typeof Reflect.get(error, "causeCode") === "string"
|
|
130
|
+
? String(Reflect.get(error, "causeCode"))
|
|
131
|
+
: undefined;
|
|
50
132
|
return output({
|
|
51
133
|
exitCode: 1,
|
|
52
134
|
stdout,
|
|
53
|
-
stderr: `${code}\n${next === undefined ? "" : `${next}\n`}
|
|
135
|
+
stderr: `${code}\n${next === undefined ? "" : `${next}\n`}${causeCode === undefined ? "" : `Cause: ${causeCode}\n`}${code === "record-migration-interrupted" || code === "record-migration-recovery-required"
|
|
136
|
+
? interruptedRecovery(error, recordPath)
|
|
137
|
+
: ""}`,
|
|
54
138
|
});
|
|
55
139
|
}
|
|
56
140
|
function cleanCommand(input) {
|
|
@@ -94,15 +178,35 @@ function migrateCommand(input) {
|
|
|
94
178
|
const plan = yield* session.planMigrate();
|
|
95
179
|
const planText = plan.state === "already-current"
|
|
96
180
|
? `Record migration plan: already-current\nformat: ${plan.format}\n`
|
|
97
|
-
:
|
|
98
|
-
|
|
181
|
+
: plan.state === "unsupported-format"
|
|
182
|
+
? `Record migration plan: unsupported-format\nformat: ${plan.format}\n`
|
|
183
|
+
: `Record migration plan: migration-required\nformat: ${plan.format}\nroot: ${plan.root === null ? "current" : `${plan.root.fromSchemaVersion} -> ${plan.root.toSchemaVersion}`}\nattachments: ${plan.attachments.length}\nbackup: ${plan.backup.state}${plan.backup.state === "git-restore-point" ? `\nrestore commit: ${plan.backup.commit}` : ""}\n`;
|
|
184
|
+
if (plan.state === "unsupported-format") {
|
|
99
185
|
return output({
|
|
100
186
|
exitCode: 1,
|
|
101
187
|
stdout: planText,
|
|
102
188
|
stderr: "record-format-unsupported\nInstall a NiceEval version that supports this Record format.\n",
|
|
103
189
|
});
|
|
104
190
|
}
|
|
105
|
-
|
|
191
|
+
if (plan.state === "migration-required" && plan.backup.state !== "git-restore-point") {
|
|
192
|
+
return output({
|
|
193
|
+
exitCode: 1,
|
|
194
|
+
stdout: planText,
|
|
195
|
+
stderr: "record-migration-git-restore-required\nA clean Git restore point is required; --yes cannot bypass this preflight.\n",
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
if (plan.state === "migration-required" && !input.yes) {
|
|
199
|
+
return output({
|
|
200
|
+
exitCode: 1,
|
|
201
|
+
stdout: planText,
|
|
202
|
+
stderr: "record-migration-confirmation-required\nReview the migration plan and rerun with --yes.\n",
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
const migrated = yield* effect_1.Effect.either(session.applyMigrate(plan));
|
|
206
|
+
if (effect_1.Either.isLeft(migrated)) {
|
|
207
|
+
return recordErrorOutput(migrated.left, planText, input.recordPath);
|
|
208
|
+
}
|
|
209
|
+
const receipt = migrated.right;
|
|
106
210
|
return output({
|
|
107
211
|
exitCode: 0,
|
|
108
212
|
stdout: `${planText}Record migration ${receipt.state}.\n`,
|
|
@@ -120,6 +224,7 @@ function runRecordCliCommand(input) {
|
|
|
120
224
|
if (input.command === "clean") {
|
|
121
225
|
return cleanCommand({ root: root.right, yes: input.yes }).pipe(effect_1.Effect.provide(exports.NodeRecordCliLive), effect_1.Effect.catchAll((error) => effect_1.Effect.succeed(recordErrorOutput(error))));
|
|
122
226
|
}
|
|
123
|
-
|
|
227
|
+
const recordPath = (0, node_path_1.resolve)(input.cwd, input.record ?? ".niceeval/record");
|
|
228
|
+
return migrateCommand({ root: root.right, recordPath, yes: input.yes }).pipe(effect_1.Effect.provide(exports.NodeRecordCliLive), effect_1.Effect.catchAll((error) => effect_1.Effect.succeed(recordErrorOutput(error, "", recordPath))));
|
|
124
229
|
}
|
|
125
230
|
//# sourceMappingURL=record.cjs.map
|
package/dist/cli/record.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"record.js","sourceRoot":"","sources":["record.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from \"node:path\";\nimport { Either, Effect, Layer } from \"effect\";\nimport { cleanIncompleteRuns, inspectIncompleteRuns, makeRecordRoot, NodeRecordLive, type RecordRoot, } from \"../record/index.ts\";\nimport { recordHost } from \"../record/host/index.ts\";\nexport type RecordCliCommand = \"clean\" | \"migrate\";\nexport interface RunRecordCliCommandInput {\n readonly command: RecordCliCommand;\n readonly cwd: string;\n /** An actual Record root, never a `.niceeval` parent directory. */\n readonly record?: string;\n readonly yes: boolean;\n}\n/** The outer CLI owns process streams and exit; this value is its pure receipt. */\nexport interface RecordCliCommandOutput {\n readonly exitCode: 0 | 1;\n readonly stdout: string;\n readonly stderr: string;\n}\nfunction output(input: {\n readonly exitCode: 0 | 1;\n readonly stdout?: string;\n readonly stderr?: string;\n}): RecordCliCommandOutput {\n return Object.freeze({\n exitCode: input.exitCode,\n stdout: input.stdout ?? \"\",\n stderr: input.stderr ?? \"\",\n });\n}\nexport const NodeRecordCliLive = NodeRecordLive;\nfunction resolveRecordRoot(input: RunRecordCliCommandInput): Either.Either<RecordRoot, RecordCliCommandOutput> {\n const root = makeRecordRoot(resolve(input.cwd, input.record ?? \".niceeval/record\"));\n return Either.isLeft(root)\n ? Either.left(output({\n exitCode: 1,\n stderr: `${root.left.code}\\n`,\n }))\n : Either.right(root.right);\n}\nfunction recordErrorCode(error: unknown): string {\n if (typeof error !== \"object\" || error === null)\n return \"record-command-failed\";\n const candidate = Reflect.get(error, \"code\");\n return typeof candidate === \"string\" ? candidate : \"record-command-failed\";\n}\nfunction recordErrorNextStep(code: string): string | undefined {\n switch (code) {\n case \"record-migration-required\":\n return \"Run: niceeval migrate\";\n case \"record-migration-interrupted\":\n return \"Restore the Record from Git; do not rerun migrate on mixed bytes.\";\n case \"record-format-unsupported\":\n return \"Install a NiceEval version that supports this Record format.\";\n case \"record-maintenance-busy\":\n case \"record-writer-busy\":\n return \"Close the Record command holding the lock, then retry.\";\n default:\n return undefined;\n }\n}\nfunction recordErrorOutput(error: unknown, stdout = \"\"): RecordCliCommandOutput {\n const code = recordErrorCode(error);\n const next = recordErrorNextStep(code);\n return output({\n exitCode: 1,\n stdout,\n stderr: `${code}\\n${next === undefined ? \"\" : `${next}\\n`}`,\n });\n}\nfunction cleanCommand(input: {\n readonly root: RecordRoot;\n readonly yes: boolean;\n}) {\n return Effect.gen(function* () {\n const incomplete = yield* inspectIncompleteRuns({ root: input.root });\n if (incomplete.length === 0) {\n return output({\n exitCode: 0,\n stdout: \"No incomplete Runs found.\\n\",\n });\n }\n const listed = incomplete.map((entry) => ` ${entry.runId}`).join(\"\\n\");\n if (!input.yes) {\n return output({\n exitCode: 1,\n stdout: `Incomplete Runs:\\n${listed}\\n`,\n stderr: \"record-clean-confirmation-required\\nReview the listed Runs and rerun with --yes.\\n\",\n });\n }\n const cleaned = yield* Effect.either(cleanIncompleteRuns({\n root: input.root,\n runIds: incomplete.map((entry) => entry.runId),\n }));\n if (Either.isLeft(cleaned)) {\n return recordErrorOutput(cleaned.left, `Incomplete Runs:\\n${listed}\\n`);\n }\n const lines = [\"Cleaned incomplete Runs:\"];\n if (cleaned.right.deleted.length === 0)\n lines.push(\" deleted: none\");\n else\n lines.push(...cleaned.right.deleted.map((runId) => ` deleted: ${runId}`));\n if (cleaned.right.skipped.length > 0) {\n lines.push(...cleaned.right.skipped.map((runId) => ` skipped complete: ${runId}`));\n }\n return output({ exitCode: 0, stdout: `${lines.join(\"\\n\")}\\n` });\n });\n}\nfunction migrateCommand(input: {\n readonly root: RecordRoot;\n readonly yes: boolean;\n}) {\n return Effect.scoped(Effect.gen(function* () {\n const session = yield* recordHost.maintenance.open({ root: input.root });\n const plan = yield* session.planMigrate();\n const planText = plan.state === \"already-current\"\n ? `Record migration plan: already-current\\nformat: ${plan.format}\\n`\n : `Record migration plan: unsupported-format\\nformat: ${plan.format}\\n`;\n if (plan.state !== \"already-current\") {\n return output({\n exitCode: 1,\n stdout: planText,\n stderr: \"record-format-unsupported\\nInstall a NiceEval version that supports this Record format.\\n\",\n });\n }\n const receipt = yield* session.applyMigrate(plan);\n return output({\n exitCode: 0,\n stdout: `${planText}Record migration ${receipt.state}.\\n`,\n });\n }));\n}\n/**\n * Effect-native command handling for the Record maintenance surface. The\n * CLI owns the one Promise adaptation at its actual process boundary.\n */\nexport function runRecordCliCommand(input: RunRecordCliCommandInput): Effect.Effect<RecordCliCommandOutput> {\n const root = resolveRecordRoot(input);\n if (Either.isLeft(root))\n return Effect.succeed(root.left);\n if (input.command === \"clean\") {\n return cleanCommand({ root: root.right, yes: input.yes }).pipe(Effect.provide(NodeRecordCliLive), Effect.catchAll((error) => Effect.succeed(recordErrorOutput(error))));\n }\n return migrateCommand({ root: root.right, yes: input.yes }).pipe(Effect.provide(NodeRecordCliLive), Effect.catchAll((error) => Effect.succeed(recordErrorOutput(error))));\n}\n"]}
|
|
1
|
+
{"version":3,"file":"record.js","sourceRoot":"","sources":["record.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolve } from \"node:path\";\nimport { Either, Effect, Layer } from \"effect\";\nimport { cleanIncompleteRuns, inspectIncompleteRuns, makeRecordRoot, NodeRecordLive, type RecordRoot, } from \"../record/index.ts\";\nimport { recordHost } from \"../record/host/index.ts\";\nimport { RECORD_SCHEMA_VERSION } from \"../record/model/identifiers.ts\";\nimport { RecordAutoMigrationGitSaveRequired, RecordMigrationRequired, } from \"../record/reader/errors.ts\";\nimport { RecordFileSystem, recordPortablePath } from \"../record/platform/services.ts\";\nexport type RecordCliCommand = \"clean\" | \"migrate\";\nexport interface RunRecordCliCommandInput {\n readonly command: RecordCliCommand;\n readonly cwd: string;\n /** An actual Record root, never a `.niceeval` parent directory. */\n readonly record?: string;\n readonly yes: boolean;\n}\n/** The outer CLI owns process streams and exit; this value is its pure receipt. */\nexport interface RecordCliCommandOutput {\n readonly exitCode: 0 | 1;\n readonly stdout: string;\n readonly stderr: string;\n}\nfunction output(input: {\n readonly exitCode: 0 | 1;\n readonly stdout?: string;\n readonly stderr?: string;\n}): RecordCliCommandOutput {\n return Object.freeze({\n exitCode: input.exitCode,\n stdout: input.stdout ?? \"\",\n stderr: input.stderr ?? \"\",\n });\n}\nexport const NodeRecordCliLive = NodeRecordLive;\nexport interface AutomaticRecordMigrationReceipt {\n readonly restoreCommit: string;\n readonly targetSchemaVersion: typeof RECORD_SCHEMA_VERSION;\n}\n/**\n * Preflight for ordinary CLI entry points. Every Scope is closed before the\n * next lease kind is acquired: read check -> exclusive maintenance -> caller's\n * fresh ordinary open.\n */\nexport function ensureAutomaticRecordMigration(input: {\n readonly cwd: string;\n readonly record?: string;\n}) {\n const root = makeRecordRoot(resolve(input.cwd, input.record ?? \".niceeval/record\"));\n if (Either.isLeft(root))\n return Effect.fail(root.left);\n return Effect.gen(function* () {\n const fileSystem = yield* RecordFileSystem;\n if ((yield* fileSystem.pathKind(recordPortablePath(root.right, \"record.json\"))) === \"missing\") {\n return null;\n }\n const checked = yield* Effect.either(Effect.scoped(recordHost.current.openRead({ root: root.right })));\n if (Either.isRight(checked))\n return null;\n if (!(checked.left instanceof RecordMigrationRequired))\n return yield* Effect.fail(checked.left);\n return yield* Effect.scoped(Effect.gen(function* () {\n const session = yield* recordHost.maintenance.open({ root: root.right });\n const plan = yield* session.planMigrate();\n if (plan.state !== \"migration-required\") {\n return yield* Effect.fail(checked.left);\n }\n if (plan.backup.state !== \"git-restore-point\") {\n return yield* Effect.fail(new RecordAutoMigrationGitSaveRequired({\n code: \"record-auto-migration-git-save-required\",\n }));\n }\n yield* session.applyMigrate(plan).pipe(Effect.catchTag(\"RecordMigrationGitRestoreRequired\", () => Effect.fail(new RecordAutoMigrationGitSaveRequired({\n code: \"record-auto-migration-git-save-required\",\n }))));\n return Object.freeze({\n restoreCommit: plan.backup.commit,\n targetSchemaVersion: RECORD_SCHEMA_VERSION,\n });\n }));\n });\n}\nfunction resolveRecordRoot(input: RunRecordCliCommandInput): Either.Either<RecordRoot, RecordCliCommandOutput> {\n const root = makeRecordRoot(resolve(input.cwd, input.record ?? \".niceeval/record\"));\n return Either.isLeft(root)\n ? Either.left(output({\n exitCode: 1,\n stderr: `${root.left.code}\\n`,\n }))\n : Either.right(root.right);\n}\nfunction recordErrorCode(error: unknown): string {\n if (typeof error !== \"object\" || error === null)\n return \"record-command-failed\";\n const candidate = Reflect.get(error, \"code\");\n return typeof candidate === \"string\" ? candidate : \"record-command-failed\";\n}\nfunction recordErrorNextStep(code: string): string | undefined {\n switch (code) {\n case \"record-migration-required\":\n return \"Run: niceeval migrate\";\n case \"record-migration-interrupted\":\n return \"Restore the complete Record from the recorded Git commit; do not rerun migrate on mixed bytes.\";\n case \"record-migration-recovery-required\":\n return \"Restore the complete Record from Git before retrying migration.\";\n case \"record-migration-plan-stale\":\n return \"Review the new migration plan and rerun migrate.\";\n case \"record-migration-git-restore-required\":\n return \"Commit, restore, or otherwise obtain a clean Git restore point for this Record before migrating.\";\n case \"record-migration-invalid\":\n return \"Restore the Record from Git before retrying migration.\";\n case \"record-format-unsupported\":\n return \"Install a NiceEval version that supports this Record format.\";\n case \"record-maintenance-busy\":\n case \"record-writer-busy\":\n return \"Close the Record command holding the lock, then retry.\";\n default:\n return undefined;\n }\n}\nfunction shellQuote(value: string): string {\n return `'${value.replaceAll(\"'\", `'\"'\"'`)}'`;\n}\nfunction recoveryCommands(restoreCommit: string, recordPath: string): string {\n const root = shellQuote(recordPath);\n const commit = shellQuote(restoreCommit);\n const sentinel = shellQuote(resolve(recordPath, \"migration.in-progress\"));\n return [\n `Restore command: git -C ${root} restore --source=${commit} --staged --worktree -- .`,\n `Verify command: git -C ${root} diff --quiet ${commit} -- . && git -C ${root} diff --cached --quiet ${commit} -- .`,\n `Clear sentinel after verification: rm -f -- ${sentinel}`,\n ].join(\"\\n\") + \"\\n\";\n}\nfunction interruptedRecovery(error: unknown, recordPath: string | undefined): string {\n if (typeof error !== \"object\" || error === null || recordPath === undefined)\n return \"\";\n const restoreCommit = Reflect.get(error, \"restoreCommit\");\n return Reflect.get(error, \"restoreSafe\") === true &&\n typeof restoreCommit === \"string\" && /^[0-9a-f]{40,64}$/.test(restoreCommit)\n ? recoveryCommands(restoreCommit, recordPath)\n : \"\";\n}\nfunction recordErrorOutput(error: unknown, stdout = \"\", recordPath?: string): RecordCliCommandOutput {\n const code = recordErrorCode(error);\n const automaticRestoreUnsafe = (code === \"record-migration-interrupted\" || code === \"record-migration-recovery-required\") &&\n (typeof error !== \"object\" || error === null || Reflect.get(error, \"restoreSafe\") !== true);\n const next = automaticRestoreUnsafe\n ? \"Inspect and preserve concurrent Record edits before choosing a manual recovery; no automatic Git restore command is safe.\"\n : recordErrorNextStep(code);\n const causeCode = typeof error === \"object\" && error !== null &&\n typeof Reflect.get(error, \"causeCode\") === \"string\"\n ? String(Reflect.get(error, \"causeCode\"))\n : undefined;\n return output({\n exitCode: 1,\n stdout,\n stderr: `${code}\\n${next === undefined ? \"\" : `${next}\\n`}${causeCode === undefined ? \"\" : `Cause: ${causeCode}\\n`}${code === \"record-migration-interrupted\" || code === \"record-migration-recovery-required\"\n ? interruptedRecovery(error, recordPath)\n : \"\"}`,\n });\n}\nfunction cleanCommand(input: {\n readonly root: RecordRoot;\n readonly yes: boolean;\n}) {\n return Effect.gen(function* () {\n const incomplete = yield* inspectIncompleteRuns({ root: input.root });\n if (incomplete.length === 0) {\n return output({\n exitCode: 0,\n stdout: \"No incomplete Runs found.\\n\",\n });\n }\n const listed = incomplete.map((entry) => ` ${entry.runId}`).join(\"\\n\");\n if (!input.yes) {\n return output({\n exitCode: 1,\n stdout: `Incomplete Runs:\\n${listed}\\n`,\n stderr: \"record-clean-confirmation-required\\nReview the listed Runs and rerun with --yes.\\n\",\n });\n }\n const cleaned = yield* Effect.either(cleanIncompleteRuns({\n root: input.root,\n runIds: incomplete.map((entry) => entry.runId),\n }));\n if (Either.isLeft(cleaned)) {\n return recordErrorOutput(cleaned.left, `Incomplete Runs:\\n${listed}\\n`);\n }\n const lines = [\"Cleaned incomplete Runs:\"];\n if (cleaned.right.deleted.length === 0)\n lines.push(\" deleted: none\");\n else\n lines.push(...cleaned.right.deleted.map((runId) => ` deleted: ${runId}`));\n if (cleaned.right.skipped.length > 0) {\n lines.push(...cleaned.right.skipped.map((runId) => ` skipped complete: ${runId}`));\n }\n return output({ exitCode: 0, stdout: `${lines.join(\"\\n\")}\\n` });\n });\n}\nfunction migrateCommand(input: {\n readonly root: RecordRoot;\n readonly recordPath: string;\n readonly yes: boolean;\n}) {\n return Effect.scoped(Effect.gen(function* () {\n const session = yield* recordHost.maintenance.open({ root: input.root });\n const plan = yield* session.planMigrate();\n const planText = plan.state === \"already-current\"\n ? `Record migration plan: already-current\\nformat: ${plan.format}\\n`\n : plan.state === \"unsupported-format\"\n ? `Record migration plan: unsupported-format\\nformat: ${plan.format}\\n`\n : `Record migration plan: migration-required\\nformat: ${plan.format}\\nroot: ${plan.root === null ? \"current\" : `${plan.root.fromSchemaVersion} -> ${plan.root.toSchemaVersion}`}\\nattachments: ${plan.attachments.length}\\nbackup: ${plan.backup.state}${plan.backup.state === \"git-restore-point\" ? `\\nrestore commit: ${plan.backup.commit}` : \"\"}\\n`;\n if (plan.state === \"unsupported-format\") {\n return output({\n exitCode: 1,\n stdout: planText,\n stderr: \"record-format-unsupported\\nInstall a NiceEval version that supports this Record format.\\n\",\n });\n }\n if (plan.state === \"migration-required\" && plan.backup.state !== \"git-restore-point\") {\n return output({\n exitCode: 1,\n stdout: planText,\n stderr: \"record-migration-git-restore-required\\nA clean Git restore point is required; --yes cannot bypass this preflight.\\n\",\n });\n }\n if (plan.state === \"migration-required\" && !input.yes) {\n return output({\n exitCode: 1,\n stdout: planText,\n stderr: \"record-migration-confirmation-required\\nReview the migration plan and rerun with --yes.\\n\",\n });\n }\n const migrated = yield* Effect.either(session.applyMigrate(plan));\n if (Either.isLeft(migrated)) {\n return recordErrorOutput(migrated.left, planText, input.recordPath);\n }\n const receipt = migrated.right;\n return output({\n exitCode: 0,\n stdout: `${planText}Record migration ${receipt.state}.\\n`,\n });\n }));\n}\n/**\n * Effect-native command handling for the Record maintenance surface. The\n * CLI owns the one Promise adaptation at its actual process boundary.\n */\nexport function runRecordCliCommand(input: RunRecordCliCommandInput): Effect.Effect<RecordCliCommandOutput> {\n const root = resolveRecordRoot(input);\n if (Either.isLeft(root))\n return Effect.succeed(root.left);\n if (input.command === \"clean\") {\n return cleanCommand({ root: root.right, yes: input.yes }).pipe(Effect.provide(NodeRecordCliLive), Effect.catchAll((error) => Effect.succeed(recordErrorOutput(error))));\n }\n const recordPath = resolve(input.cwd, input.record ?? \".niceeval/record\");\n return migrateCommand({ root: root.right, recordPath, yes: input.yes }).pipe(Effect.provide(NodeRecordCliLive), Effect.catchAll((error) => Effect.succeed(recordErrorOutput(error, \"\", recordPath))));\n}\n"]}
|
package/dist/cli/record.d.cts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { Effect, Layer } from "effect";
|
|
2
|
+
import { RECORD_SCHEMA_VERSION } from "../record/model/identifiers.cjs";
|
|
3
|
+
import { RecordAutoMigrationGitSaveRequired, RecordMigrationRequired } from "../record/reader/errors.cjs";
|
|
4
|
+
import { RecordFileSystem } from "../record/platform/services.cjs";
|
|
2
5
|
export type RecordCliCommand = "clean" | "migrate";
|
|
3
6
|
export interface RunRecordCliCommandInput {
|
|
4
7
|
readonly command: RecordCliCommand;
|
|
@@ -13,7 +16,23 @@ export interface RecordCliCommandOutput {
|
|
|
13
16
|
readonly stdout: string;
|
|
14
17
|
readonly stderr: string;
|
|
15
18
|
}
|
|
16
|
-
export declare const NodeRecordCliLive: Layer.Layer<import("../coordination/record-leases.cjs").RecordCoordination |
|
|
19
|
+
export declare const NodeRecordCliLive: Layer.Layer<import("../coordination/record-leases.cjs").RecordCoordination | RecordFileSystem | import("../record/platform/services.cjs").RecordEntropy | import("../record/platform/services.cjs").RecordGit, never, never>;
|
|
20
|
+
export interface AutomaticRecordMigrationReceipt {
|
|
21
|
+
readonly restoreCommit: string;
|
|
22
|
+
readonly targetSchemaVersion: typeof RECORD_SCHEMA_VERSION;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Preflight for ordinary CLI entry points. Every Scope is closed before the
|
|
26
|
+
* next lease kind is acquired: read check -> exclusive maintenance -> caller's
|
|
27
|
+
* fresh ordinary open.
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureAutomaticRecordMigration(input: {
|
|
30
|
+
readonly cwd: string;
|
|
31
|
+
readonly record?: string;
|
|
32
|
+
}): Effect.Effect<never, import("../record/index.cjs").RecordRootConstructionError, never> | Effect.Effect<Readonly<{
|
|
33
|
+
restoreCommit: string;
|
|
34
|
+
targetSchemaVersion: 2;
|
|
35
|
+
}> | null, import("../record/platform/errors.cjs").RecordMaintenanceBusy | import("../record/platform/errors.cjs").RecordGitCommandError | import("../record/platform/errors.cjs").RecordFileSystemError | import("../coordination/record-leases.cjs").RecordCoordinationIdentityMismatch | import("../record/reader/errors.cjs").RecordBootstrapInvalid | RecordMigrationRequired | import("../record/reader/errors.cjs").RecordFormatUnsupported | import("../record/reader/errors.cjs").RecordMigrationInterruptedState | import("../record/reader/errors.cjs").RecordMigrationPlanStale | import("../record/reader/errors.cjs").RecordMigrationGitRestoreRequired | RecordAutoMigrationGitSaveRequired | import("../record/reader/errors.cjs").RecordMigrationInvalid | import("../record/reader/errors.cjs").RecordMigrationRecoveryRequired, import("../coordination/record-leases.cjs").RecordCoordination | RecordFileSystem | import("../record/platform/services.cjs").RecordGit>;
|
|
17
36
|
/**
|
|
18
37
|
* Effect-native command handling for the Record maintenance surface. The
|
|
19
38
|
* CLI owns the one Promise adaptation at its actual process boundary.
|
package/dist/cli/record.d.mts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { Effect, Layer } from "effect";
|
|
2
|
+
import { RECORD_SCHEMA_VERSION } from "../record/model/identifiers.mjs";
|
|
3
|
+
import { RecordAutoMigrationGitSaveRequired, RecordMigrationRequired } from "../record/reader/errors.mjs";
|
|
4
|
+
import { RecordFileSystem } from "../record/platform/services.mjs";
|
|
2
5
|
export type RecordCliCommand = "clean" | "migrate";
|
|
3
6
|
export interface RunRecordCliCommandInput {
|
|
4
7
|
readonly command: RecordCliCommand;
|
|
@@ -13,7 +16,23 @@ export interface RecordCliCommandOutput {
|
|
|
13
16
|
readonly stdout: string;
|
|
14
17
|
readonly stderr: string;
|
|
15
18
|
}
|
|
16
|
-
export declare const NodeRecordCliLive: Layer.Layer<import("../coordination/record-leases.mjs").RecordCoordination |
|
|
19
|
+
export declare const NodeRecordCliLive: Layer.Layer<import("../coordination/record-leases.mjs").RecordCoordination | RecordFileSystem | import("../record/platform/services.mjs").RecordEntropy | import("../record/platform/services.mjs").RecordGit, never, never>;
|
|
20
|
+
export interface AutomaticRecordMigrationReceipt {
|
|
21
|
+
readonly restoreCommit: string;
|
|
22
|
+
readonly targetSchemaVersion: typeof RECORD_SCHEMA_VERSION;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Preflight for ordinary CLI entry points. Every Scope is closed before the
|
|
26
|
+
* next lease kind is acquired: read check -> exclusive maintenance -> caller's
|
|
27
|
+
* fresh ordinary open.
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureAutomaticRecordMigration(input: {
|
|
30
|
+
readonly cwd: string;
|
|
31
|
+
readonly record?: string;
|
|
32
|
+
}): Effect.Effect<never, import("../record/index.mjs").RecordRootConstructionError, never> | Effect.Effect<Readonly<{
|
|
33
|
+
restoreCommit: string;
|
|
34
|
+
targetSchemaVersion: 2;
|
|
35
|
+
}> | null, import("../record/platform/errors.mjs").RecordMaintenanceBusy | import("../record/platform/errors.mjs").RecordGitCommandError | import("../record/platform/errors.mjs").RecordFileSystemError | import("../coordination/record-leases.mjs").RecordCoordinationIdentityMismatch | import("../record/reader/errors.mjs").RecordBootstrapInvalid | RecordMigrationRequired | import("../record/reader/errors.mjs").RecordFormatUnsupported | import("../record/reader/errors.mjs").RecordMigrationInterruptedState | import("../record/reader/errors.mjs").RecordMigrationPlanStale | import("../record/reader/errors.mjs").RecordMigrationGitRestoreRequired | RecordAutoMigrationGitSaveRequired | import("../record/reader/errors.mjs").RecordMigrationInvalid | import("../record/reader/errors.mjs").RecordMigrationRecoveryRequired, import("../coordination/record-leases.mjs").RecordCoordination | RecordFileSystem | import("../record/platform/services.mjs").RecordGit>;
|
|
17
36
|
/**
|
|
18
37
|
* Effect-native command handling for the Record maintenance surface. The
|
|
19
38
|
* CLI owns the one Promise adaptation at its actual process boundary.
|
package/dist/cli/record.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { Effect, Layer } from "effect";
|
|
2
|
+
import { RECORD_SCHEMA_VERSION } from "../record/model/identifiers.js";
|
|
3
|
+
import { RecordAutoMigrationGitSaveRequired, RecordMigrationRequired } from "../record/reader/errors.js";
|
|
4
|
+
import { RecordFileSystem } from "../record/platform/services.js";
|
|
2
5
|
export type RecordCliCommand = "clean" | "migrate";
|
|
3
6
|
export interface RunRecordCliCommandInput {
|
|
4
7
|
readonly command: RecordCliCommand;
|
|
@@ -13,7 +16,23 @@ export interface RecordCliCommandOutput {
|
|
|
13
16
|
readonly stdout: string;
|
|
14
17
|
readonly stderr: string;
|
|
15
18
|
}
|
|
16
|
-
export declare const NodeRecordCliLive: Layer.Layer<import("../coordination/record-leases.js").RecordCoordination |
|
|
19
|
+
export declare const NodeRecordCliLive: Layer.Layer<import("../coordination/record-leases.js").RecordCoordination | RecordFileSystem | import("../record/platform/services.js").RecordEntropy | import("../record/platform/services.js").RecordGit, never, never>;
|
|
20
|
+
export interface AutomaticRecordMigrationReceipt {
|
|
21
|
+
readonly restoreCommit: string;
|
|
22
|
+
readonly targetSchemaVersion: typeof RECORD_SCHEMA_VERSION;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Preflight for ordinary CLI entry points. Every Scope is closed before the
|
|
26
|
+
* next lease kind is acquired: read check -> exclusive maintenance -> caller's
|
|
27
|
+
* fresh ordinary open.
|
|
28
|
+
*/
|
|
29
|
+
export declare function ensureAutomaticRecordMigration(input: {
|
|
30
|
+
readonly cwd: string;
|
|
31
|
+
readonly record?: string;
|
|
32
|
+
}): Effect.Effect<never, import("../record/index.js").RecordRootConstructionError, never> | Effect.Effect<Readonly<{
|
|
33
|
+
restoreCommit: string;
|
|
34
|
+
targetSchemaVersion: 2;
|
|
35
|
+
}> | null, import("../record/platform/errors.js").RecordMaintenanceBusy | import("../record/platform/errors.js").RecordGitCommandError | import("../record/platform/errors.js").RecordFileSystemError | import("../coordination/record-leases.js").RecordCoordinationIdentityMismatch | import("../record/reader/errors.js").RecordBootstrapInvalid | RecordMigrationRequired | import("../record/reader/errors.js").RecordFormatUnsupported | import("../record/reader/errors.js").RecordMigrationInterruptedState | import("../record/reader/errors.js").RecordMigrationPlanStale | import("../record/reader/errors.js").RecordMigrationGitRestoreRequired | RecordAutoMigrationGitSaveRequired | import("../record/reader/errors.js").RecordMigrationInvalid | import("../record/reader/errors.js").RecordMigrationRecoveryRequired, import("../coordination/record-leases.js").RecordCoordination | RecordFileSystem | import("../record/platform/services.js").RecordGit>;
|
|
17
36
|
/**
|
|
18
37
|
* Effect-native command handling for the Record maintenance surface. The
|
|
19
38
|
* CLI owns the one Promise adaptation at its actual process boundary.
|
package/dist/cli/record.js
CHANGED
|
@@ -3,6 +3,8 @@ const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
|
|
|
3
3
|
const __niceevalCanonical = __niceevalRequire("./record.cjs");
|
|
4
4
|
const __niceevalExport0 = __niceevalCanonical["NodeRecordCliLive"];
|
|
5
5
|
export { __niceevalExport0 as NodeRecordCliLive };
|
|
6
|
-
const __niceevalExport1 = __niceevalCanonical["
|
|
7
|
-
export { __niceevalExport1 as
|
|
6
|
+
const __niceevalExport1 = __niceevalCanonical["ensureAutomaticRecordMigration"];
|
|
7
|
+
export { __niceevalExport1 as ensureAutomaticRecordMigration };
|
|
8
|
+
const __niceevalExport2 = __niceevalCanonical["runRecordCliCommand"];
|
|
9
|
+
export { __niceevalExport2 as runRecordCliCommand };
|
|
8
10
|
//# sourceMappingURL=record.js.map
|