niceeval 0.15.1-canary.76 → 0.16.1
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 +45 -40
- package/dist/adapter-execution-trace.cjs.map +1 -1
- package/dist/adapter-execution-trace.d.cts +26 -0
- package/dist/adapter-execution-trace.d.mts +26 -0
- package/dist/adapter-execution-trace.d.ts +26 -0
- package/dist/adapter-usage.cjs.map +1 -1
- package/dist/adapter-usage.d.cts +9 -0
- package/dist/adapter-usage.d.mts +9 -0
- package/dist/adapter-usage.d.ts +9 -0
- package/dist/adapter.cjs +19 -4
- package/dist/adapter.cjs.map +1 -1
- package/dist/adapter.d.cts +37 -12
- package/dist/adapter.d.mts +37 -12
- package/dist/adapter.d.ts +37 -12
- package/dist/agents/ai-sdk.cjs +3 -0
- package/dist/agents/ai-sdk.cjs.map +1 -1
- package/dist/agents/bub.cjs +3 -0
- package/dist/agents/bub.cjs.map +1 -1
- package/dist/agents/claude-code-native.cjs +28 -2
- package/dist/agents/claude-code-native.cjs.map +1 -1
- package/dist/agents/claude-code.cjs +3 -0
- package/dist/agents/claude-code.cjs.map +1 -1
- package/dist/agents/codex.cjs +3 -0
- package/dist/agents/codex.cjs.map +1 -1
- package/dist/agents/coding-cli-versions.cjs +9 -10
- package/dist/agents/coding-cli-versions.cjs.map +1 -1
- package/dist/agents/coding-cli-versions.d.cts +1 -1
- package/dist/agents/coding-cli-versions.d.mts +1 -1
- package/dist/agents/coding-cli-versions.d.ts +1 -1
- package/dist/agents/deepseek-harness.cjs +3 -0
- package/dist/agents/deepseek-harness.cjs.map +1 -1
- package/dist/agents/hermes.cjs +3 -0
- package/dist/agents/hermes.cjs.map +1 -1
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +3 -2
- package/dist/agents/index.d.mts +3 -2
- package/dist/agents/index.d.ts +3 -2
- package/dist/agents/omp.cjs +3 -0
- package/dist/agents/omp.cjs.map +1 -1
- package/dist/agents/openai-compat.cjs +6 -0
- package/dist/agents/openai-compat.cjs.map +1 -1
- package/dist/agents/openclaw.cjs +3 -0
- package/dist/agents/openclaw.cjs.map +1 -1
- package/dist/agents/opencode.cjs +3 -0
- package/dist/agents/opencode.cjs.map +1 -1
- package/dist/agents/sdk-streams.cjs +9 -0
- package/dist/agents/sdk-streams.cjs.map +1 -1
- package/dist/agents/ui-message-stream.cjs +3 -0
- package/dist/agents/ui-message-stream.cjs.map +1 -1
- package/dist/assertions/api.cjs.map +1 -1
- package/dist/assertions/api.d.cts +27 -5
- package/dist/assertions/api.d.mts +27 -5
- package/dist/assertions/api.d.ts +27 -5
- package/dist/assertions/collection.cjs +6 -0
- package/dist/assertions/collection.cjs.map +1 -1
- package/dist/assertions/collection.d.cts +4 -2
- package/dist/assertions/collection.d.mts +4 -2
- package/dist/assertions/collection.d.ts +4 -2
- package/dist/assertions/collection.js +12 -8
- package/dist/assertions/context-match.cjs +70 -0
- package/dist/assertions/context-match.cjs.map +1 -0
- package/dist/assertions/context-match.d.cts +107 -0
- package/dist/assertions/context-match.d.mts +107 -0
- package/dist/assertions/context-match.d.ts +107 -0
- package/dist/assertions/context-match.js +12 -0
- package/dist/assertions/context-match.js.map +1 -0
- package/dist/assertions/full-content.cjs +109 -0
- package/dist/assertions/full-content.cjs.map +1 -0
- package/dist/assertions/full-content.d.cts +6 -0
- package/dist/assertions/full-content.d.mts +6 -0
- package/dist/assertions/full-content.d.ts +6 -0
- package/dist/assertions/full-content.js +12 -0
- package/dist/assertions/full-content.js.map +1 -0
- package/dist/assertions/judge-presets.cjs +2 -34
- package/dist/assertions/judge-presets.cjs.map +1 -1
- package/dist/assertions/judge-presets.d.cts +6 -9
- package/dist/assertions/judge-presets.d.mts +6 -9
- package/dist/assertions/judge-presets.d.ts +6 -9
- package/dist/assertions/judge-presets.js +8 -8
- package/dist/assertions/judge.cjs +107 -29
- package/dist/assertions/judge.cjs.map +1 -1
- package/dist/assertions/judge.d.cts +2 -0
- package/dist/assertions/judge.d.mts +2 -0
- package/dist/assertions/judge.d.ts +2 -0
- package/dist/assertions/match.cjs +244 -5
- package/dist/assertions/match.cjs.map +1 -1
- package/dist/assertions/match.d.cts +43 -3
- package/dist/assertions/match.d.mts +43 -3
- package/dist/assertions/match.d.ts +43 -3
- package/dist/assertions/match.js +88 -78
- package/dist/assertions/material.cjs +520 -0
- package/dist/assertions/material.cjs.map +1 -0
- package/dist/assertions/material.d.cts +56 -0
- package/dist/assertions/material.d.mts +56 -0
- package/dist/assertions/material.d.ts +56 -0
- package/dist/assertions/material.js +20 -0
- package/dist/assertions/material.js.map +1 -0
- package/dist/assertions/record/attachment.cjs +5 -2
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/record/codec.cjs +2 -1
- package/dist/assertions/record/codec.cjs.map +1 -1
- package/dist/assertions/record/model.cjs.map +1 -1
- package/dist/assertions/record/model.d.cts +6 -1
- package/dist/assertions/record/model.d.mts +6 -1
- package/dist/assertions/record/model.d.ts +6 -1
- package/dist/assertions/runtime.cjs +207 -14
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/assertions/runtime.d.cts +9 -0
- package/dist/assertions/runtime.d.mts +9 -0
- package/dist/assertions/runtime.d.ts +9 -0
- package/dist/assertions/runtime.js +14 -8
- package/dist/assertions/score-match-audit.cjs +18 -8
- package/dist/assertions/score-match-audit.cjs.map +1 -1
- package/dist/assertions/score-match-gateway.cjs +83 -25
- package/dist/assertions/score-match-gateway.cjs.map +1 -1
- package/dist/assertions/score-match-gateway.d.cts +2 -0
- package/dist/assertions/score-match-gateway.d.mts +2 -0
- package/dist/assertions/score-match-gateway.d.ts +2 -0
- package/dist/assertions/value-composition.test-d.cjs +77 -0
- package/dist/assertions/value-composition.test-d.cjs.map +1 -0
- package/dist/assertions/value-composition.test-d.d.cts +1 -0
- package/dist/assertions/value-composition.test-d.d.mts +1 -0
- package/dist/assertions/value-composition.test-d.d.ts +1 -0
- package/dist/assertions/value-composition.test-d.js +4 -0
- package/dist/assertions/value-composition.test-d.js.map +1 -0
- package/dist/context/assert-first.cjs +207 -213
- package/dist/context/assert-first.cjs.map +1 -1
- package/dist/context/assert-first.d.cts +49 -23
- package/dist/context/assert-first.d.mts +49 -23
- package/dist/context/assert-first.d.ts +49 -23
- package/dist/context/session.cjs +111 -9
- package/dist/context/session.cjs.map +1 -1
- package/dist/context/session.d.cts +18 -0
- package/dist/context/session.d.mts +18 -0
- package/dist/context/session.d.ts +18 -0
- package/dist/define.cjs +17 -1
- package/dist/define.cjs.map +1 -1
- package/dist/eval/cli/contribution.cjs +2 -0
- package/dist/eval/cli/contribution.cjs.map +1 -1
- package/dist/eval/host/index.cjs +2 -0
- package/dist/eval/host/index.cjs.map +1 -1
- package/dist/eval/record/evaluation.cjs +3 -0
- package/dist/eval/record/evaluation.cjs.map +1 -1
- package/dist/eval/record/membership-provenance.d.cts +15 -15
- package/dist/eval/record/membership-provenance.d.mts +15 -15
- package/dist/eval/record/membership-provenance.d.ts +15 -15
- package/dist/eval/record/score.cjs +7 -0
- package/dist/eval/record/score.cjs.map +1 -1
- package/dist/eval/record/sealed-assertion.cjs +3 -0
- package/dist/eval/record/sealed-assertion.cjs.map +1 -1
- package/dist/eval/record/verdict.cjs +7 -0
- package/dist/eval/record/verdict.cjs.map +1 -1
- package/dist/expect/index.cjs +8 -2
- package/dist/expect/index.cjs.map +1 -1
- package/dist/expect/index.d.cts +9 -4
- package/dist/expect/index.d.mts +9 -4
- package/dist/expect/index.d.ts +9 -4
- package/dist/expect/index.js +72 -62
- package/dist/expect/index.mjs +72 -62
- package/dist/experiment/host/cli/contribution.cjs +37 -23
- package/dist/experiment/host/cli/contribution.cjs.map +1 -1
- package/dist/experiment/host/cli/contribution.d.cts +9 -1
- package/dist/experiment/host/cli/contribution.d.mts +9 -1
- package/dist/experiment/host/cli/contribution.d.ts +9 -1
- package/dist/experiment/host/current.cjs +74 -0
- package/dist/experiment/host/current.cjs.map +1 -0
- package/dist/experiment/host/current.d.cts +33 -0
- package/dist/experiment/host/current.d.mts +33 -0
- package/dist/experiment/host/current.d.ts +33 -0
- package/dist/experiment/host/current.js +10 -0
- package/dist/experiment/host/current.js.map +1 -0
- package/dist/experiment/host/index.cjs +17 -174
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/experiment/host/index.d.cts +8 -54
- package/dist/experiment/host/index.d.mts +8 -54
- package/dist/experiment/host/index.d.ts +8 -54
- package/dist/experiment/host/operations.cjs +33 -10
- package/dist/experiment/host/operations.cjs.map +1 -1
- package/dist/experiment/host/operations.d.cts +29 -1
- package/dist/experiment/host/operations.d.mts +29 -1
- package/dist/experiment/host/operations.d.ts +29 -1
- package/dist/experiment/host/operations.js +6 -4
- package/dist/experiment/host/requirements.cjs +3 -0
- package/dist/experiment/host/requirements.cjs.map +1 -0
- package/dist/experiment/host/requirements.d.cts +3 -0
- package/dist/experiment/host/requirements.d.mts +3 -0
- package/dist/experiment/host/requirements.d.ts +3 -0
- package/dist/experiment/host/requirements.js +4 -0
- package/dist/experiment/host/requirements.js.map +1 -0
- package/dist/experiment/host/runtime.cjs +179 -0
- package/dist/experiment/host/runtime.cjs.map +1 -0
- package/dist/experiment/host/runtime.d.cts +79 -0
- package/dist/experiment/host/runtime.d.mts +79 -0
- package/dist/experiment/host/runtime.d.ts +79 -0
- package/dist/experiment/host/runtime.js +6 -0
- package/dist/experiment/host/runtime.js.map +1 -0
- package/dist/experiment/host/types.cjs.map +1 -1
- package/dist/experiment/host/types.d.cts +17 -16
- package/dist/experiment/host/types.d.mts +17 -16
- package/dist/experiment/host/types.d.ts +17 -16
- package/dist/fresh-import.cjs +2 -1
- package/dist/fresh-import.cjs.map +1 -1
- package/dist/index.cjs +4 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +12 -6
- package/dist/index.d.mts +12 -6
- package/dist/index.d.ts +12 -6
- package/dist/index.js +32 -30
- package/dist/index.mjs +32 -30
- package/dist/inspection/artifacts.cjs +83 -54
- package/dist/inspection/artifacts.cjs.map +1 -1
- package/dist/inspection/artifacts.d.cts +8 -0
- package/dist/inspection/artifacts.d.mts +8 -0
- package/dist/inspection/artifacts.d.ts +8 -0
- package/dist/inspection/artifacts.js +2 -0
- package/dist/inspection/assertions.cjs +4 -1
- package/dist/inspection/assertions.cjs.map +1 -1
- package/dist/inspection/cli/contribution.cjs +27 -4
- package/dist/inspection/cli/contribution.cjs.map +1 -1
- package/dist/inspection/cli/contribution.d.cts +2 -1
- package/dist/inspection/cli/contribution.d.mts +2 -1
- package/dist/inspection/cli/contribution.d.ts +2 -1
- package/dist/inspection/execution-traces.cjs +114 -8
- package/dist/inspection/execution-traces.cjs.map +1 -1
- package/dist/inspection/execution-traces.d.cts +38 -0
- package/dist/inspection/execution-traces.d.mts +38 -0
- package/dist/inspection/execution-traces.d.ts +38 -0
- package/dist/inspection/facts.cjs +12 -0
- package/dist/inspection/facts.cjs.map +1 -1
- package/dist/inspection/limits.cjs +5 -1
- package/dist/inspection/limits.cjs.map +1 -1
- package/dist/inspection/limits.d.cts +4 -0
- package/dist/inspection/limits.d.mts +4 -0
- package/dist/inspection/limits.d.ts +4 -0
- package/dist/inspection/limits.js +6 -2
- package/dist/inspection/overview.cjs +74 -33
- package/dist/inspection/overview.cjs.map +1 -1
- package/dist/inspection/overview.d.cts +19 -1
- package/dist/inspection/overview.d.mts +19 -1
- package/dist/inspection/overview.d.ts +19 -1
- package/dist/inspection/overview.js +4 -2
- package/dist/inspection/project-input.cjs +9 -0
- package/dist/inspection/project-input.cjs.map +1 -0
- package/dist/inspection/project-input.d.cts +20 -0
- package/dist/inspection/project-input.d.mts +20 -0
- package/dist/inspection/project-input.d.ts +20 -0
- package/dist/inspection/project-input.js +8 -0
- package/dist/inspection/project-input.js.map +1 -0
- package/dist/inspection/project-result.cjs +60 -0
- package/dist/inspection/project-result.cjs.map +1 -0
- package/dist/inspection/project-result.d.cts +1264 -0
- package/dist/inspection/project-result.d.mts +1264 -0
- package/dist/inspection/project-result.d.ts +1264 -0
- package/dist/inspection/project-result.js +10 -0
- package/dist/inspection/project-result.js.map +1 -0
- package/dist/inspection/project-source.cjs +109 -0
- package/dist/inspection/project-source.cjs.map +1 -0
- package/dist/inspection/project-source.d.cts +10 -0
- package/dist/inspection/project-source.d.mts +10 -0
- package/dist/inspection/project-source.d.ts +10 -0
- package/dist/inspection/project-source.js +6 -0
- package/dist/inspection/project-source.js.map +1 -0
- package/dist/inspection/project.cjs +100 -0
- package/dist/inspection/project.cjs.map +1 -0
- package/dist/inspection/project.d.cts +3 -0
- package/dist/inspection/project.d.mts +3 -0
- package/dist/inspection/project.d.ts +3 -0
- package/dist/inspection/project.js +6 -0
- package/dist/inspection/project.js.map +1 -0
- package/dist/inspection/protocol.cjs +19 -9
- package/dist/inspection/protocol.cjs.map +1 -1
- package/dist/inspection/protocol.d.cts +5506 -38189
- package/dist/inspection/protocol.d.mts +5506 -38189
- package/dist/inspection/protocol.d.ts +5506 -38189
- package/dist/inspection/public.mjs +896 -84
- package/dist/inspection/query.cjs +2 -0
- package/dist/inspection/query.cjs.map +1 -1
- package/dist/inspection/results.cjs +234 -29
- package/dist/inspection/results.cjs.map +1 -1
- package/dist/inspection/results.d.cts +870 -13
- package/dist/inspection/results.d.mts +870 -13
- package/dist/inspection/results.d.ts +870 -13
- package/dist/inspection/results.js +36 -34
- package/dist/inspection/select.cjs +126 -14
- package/dist/inspection/select.cjs.map +1 -1
- package/dist/inspection/select.d.cts +1 -1
- package/dist/inspection/select.d.mts +1 -1
- package/dist/inspection/select.d.ts +1 -1
- package/dist/inspection/source.cjs +4 -0
- package/dist/inspection/source.cjs.map +1 -1
- package/dist/inspection/sources.cjs +5 -0
- package/dist/inspection/sources.cjs.map +1 -1
- package/dist/inspection/trace.cjs +82 -84
- package/dist/inspection/trace.cjs.map +1 -1
- package/dist/inspection/trace.d.cts +7 -2
- package/dist/inspection/trace.d.mts +7 -2
- package/dist/inspection/trace.d.ts +7 -2
- package/dist/model-slots.cjs +35 -0
- package/dist/model-slots.cjs.map +1 -0
- package/dist/model-slots.d.cts +19 -0
- package/dist/model-slots.d.mts +19 -0
- package/dist/model-slots.d.ts +19 -0
- package/dist/model-slots.js +8 -0
- package/dist/model-slots.js.map +1 -0
- package/dist/o11y/adapter-call-price.cjs +4 -0
- package/dist/o11y/adapter-call-price.cjs.map +1 -1
- package/dist/o11y/adapter-call-price.d.cts +24 -0
- package/dist/o11y/adapter-call-price.d.mts +24 -0
- package/dist/o11y/adapter-call-price.d.ts +24 -0
- package/dist/o11y/adapter-call-price.js +6 -2
- package/dist/o11y/adapter-usage-projection.cjs +158 -0
- package/dist/o11y/adapter-usage-projection.cjs.map +1 -0
- package/dist/o11y/adapter-usage-projection.d.cts +141 -0
- package/dist/o11y/adapter-usage-projection.d.mts +141 -0
- package/dist/o11y/adapter-usage-projection.d.ts +141 -0
- package/dist/o11y/adapter-usage-projection.js +20 -0
- package/dist/o11y/adapter-usage-projection.js.map +1 -0
- package/dist/o11y/eval-usage.cjs +149 -0
- package/dist/o11y/eval-usage.cjs.map +1 -0
- package/dist/o11y/eval-usage.d.cts +46 -0
- package/dist/o11y/eval-usage.d.mts +46 -0
- package/dist/o11y/eval-usage.d.ts +46 -0
- package/dist/o11y/eval-usage.js +8 -0
- package/dist/o11y/eval-usage.js.map +1 -0
- package/dist/o11y/judge-call-price.cjs +62 -0
- package/dist/o11y/judge-call-price.cjs.map +1 -0
- package/dist/o11y/judge-call-price.d.cts +3 -0
- package/dist/o11y/judge-call-price.d.mts +3 -0
- package/dist/o11y/judge-call-price.d.ts +3 -0
- package/dist/o11y/judge-call-price.js +6 -0
- package/dist/o11y/judge-call-price.js.map +1 -0
- package/dist/o11y/judge-usage-projection.cjs +134 -0
- package/dist/o11y/judge-usage-projection.cjs.map +1 -0
- package/dist/o11y/judge-usage-projection.d.cts +18 -0
- package/dist/o11y/judge-usage-projection.d.mts +18 -0
- package/dist/o11y/judge-usage-projection.d.ts +18 -0
- package/dist/o11y/judge-usage-projection.js +20 -0
- package/dist/o11y/judge-usage-projection.js.map +1 -0
- package/dist/o11y/judge-usage-receipt.cjs +135 -0
- package/dist/o11y/judge-usage-receipt.cjs.map +1 -0
- package/dist/o11y/judge-usage-receipt.d.cts +5 -0
- package/dist/o11y/judge-usage-receipt.d.mts +5 -0
- package/dist/o11y/judge-usage-receipt.d.ts +5 -0
- package/dist/o11y/judge-usage-receipt.js +6 -0
- package/dist/o11y/judge-usage-receipt.js.map +1 -0
- package/dist/o11y/judge-usage.cjs +171 -0
- package/dist/o11y/judge-usage.cjs.map +1 -0
- package/dist/o11y/judge-usage.d.cts +35 -0
- package/dist/o11y/judge-usage.d.mts +35 -0
- package/dist/o11y/judge-usage.d.ts +35 -0
- package/dist/o11y/judge-usage.js +6 -0
- package/dist/o11y/judge-usage.js.map +1 -0
- package/dist/plugin/contracts.cjs +2 -0
- package/dist/plugin/contracts.cjs.map +1 -1
- package/dist/plugin/link.cjs +7 -0
- package/dist/plugin/link.cjs.map +1 -1
- package/dist/record/attachment/protocol.cjs +8 -6
- package/dist/record/attachment/protocol.cjs.map +1 -1
- package/dist/record/attachment/protocol.d.cts +10 -0
- package/dist/record/attachment/protocol.d.mts +10 -0
- package/dist/record/attachment/protocol.d.ts +10 -0
- package/dist/record/attachment/protocol.js +38 -36
- package/dist/record/codec/seal-manifest.d.cts +3 -3
- package/dist/record/codec/seal-manifest.d.mts +3 -3
- package/dist/record/codec/seal-manifest.d.ts +3 -3
- package/dist/record/family/adapter-usage/definition.d.cts +1 -0
- package/dist/record/family/adapter-usage/definition.d.mts +1 -0
- package/dist/record/family/adapter-usage/definition.d.ts +1 -0
- package/dist/record/family/adapter-usage/persistence.cjs +1 -1
- package/dist/record/family/adapter-usage/persistence.cjs.map +1 -1
- package/dist/record/family/adapter-usage/persistence.d.cts +2 -1
- package/dist/record/family/adapter-usage/persistence.d.mts +2 -1
- package/dist/record/family/adapter-usage/persistence.d.ts +2 -1
- package/dist/record/family/adapter-usage/schema.cjs +21 -2
- package/dist/record/family/adapter-usage/schema.cjs.map +1 -1
- package/dist/record/family/adapter-usage/schema.d.cts +85 -0
- package/dist/record/family/adapter-usage/schema.d.mts +85 -0
- package/dist/record/family/adapter-usage/schema.d.ts +85 -0
- package/dist/record/family/adapter-usage/schema.js +18 -12
- package/dist/record/family/catalog.cjs +31 -27
- package/dist/record/family/catalog.cjs.map +1 -1
- package/dist/record/family/catalog.d.cts +94 -3
- package/dist/record/family/catalog.d.mts +94 -3
- package/dist/record/family/catalog.d.ts +94 -3
- package/dist/record/family/current.cjs +45 -42
- package/dist/record/family/current.cjs.map +1 -1
- package/dist/record/family/current.d.cts +240 -1
- package/dist/record/family/current.d.mts +240 -1
- package/dist/record/family/current.d.ts +240 -1
- package/dist/record/family/execution-traces/definition.d.cts +26 -0
- package/dist/record/family/execution-traces/definition.d.mts +26 -0
- package/dist/record/family/execution-traces/definition.d.ts +26 -0
- package/dist/record/family/execution-traces/definition.js +20 -14
- package/dist/record/family/execution-traces/schema.cjs +57 -1
- package/dist/record/family/execution-traces/schema.cjs.map +1 -1
- package/dist/record/family/execution-traces/schema.d.cts +114 -0
- package/dist/record/family/execution-traces/schema.d.mts +114 -0
- package/dist/record/family/execution-traces/schema.d.ts +114 -0
- package/dist/record/family/execution-traces/schema.js +18 -12
- package/dist/record/family/judge-usage/definition.cjs +12 -0
- package/dist/record/family/judge-usage/definition.cjs.map +1 -0
- package/dist/record/family/judge-usage/definition.d.cts +91 -0
- package/dist/record/family/judge-usage/definition.d.mts +91 -0
- package/dist/record/family/judge-usage/definition.d.ts +91 -0
- package/dist/record/family/judge-usage/definition.js +6 -0
- package/dist/record/family/judge-usage/definition.js.map +1 -0
- package/dist/record/family/judge-usage/persistence.cjs +10 -0
- package/dist/record/family/judge-usage/persistence.cjs.map +1 -0
- package/dist/record/family/judge-usage/persistence.d.cts +91 -0
- package/dist/record/family/judge-usage/persistence.d.mts +91 -0
- package/dist/record/family/judge-usage/persistence.d.ts +91 -0
- package/dist/record/family/judge-usage/persistence.js +6 -0
- package/dist/record/family/judge-usage/persistence.js.map +1 -0
- package/dist/record/family/judge-usage/schema.cjs +307 -0
- package/dist/record/family/judge-usage/schema.cjs.map +1 -0
- package/dist/record/family/judge-usage/schema.d.cts +351 -0
- package/dist/record/family/judge-usage/schema.d.mts +351 -0
- package/dist/record/family/judge-usage/schema.d.ts +351 -0
- package/dist/record/family/judge-usage/schema.js +18 -0
- package/dist/record/family/judge-usage/schema.js.map +1 -0
- package/dist/record/host/sqlite-host.cjs +55 -9
- package/dist/record/host/sqlite-host.cjs.map +1 -1
- package/dist/record/host/types.cjs.map +1 -1
- package/dist/record/host/types.d.cts +7 -0
- package/dist/record/host/types.d.mts +7 -0
- package/dist/record/host/types.d.ts +7 -0
- package/dist/record/model/run-context.cjs +7 -1
- package/dist/record/model/run-context.cjs.map +1 -1
- package/dist/record/model/run-context.d.cts +4 -0
- package/dist/record/model/run-context.d.mts +4 -0
- package/dist/record/model/run-context.d.ts +4 -0
- package/dist/record/model/seal-manifest.d.cts +1 -1
- package/dist/record/model/seal-manifest.d.mts +1 -1
- package/dist/record/model/seal-manifest.d.ts +1 -1
- package/dist/record/sqlite/client.cjs +18 -5
- package/dist/record/sqlite/client.cjs.map +1 -1
- package/dist/record/sqlite/client.d.cts +1 -1
- package/dist/record/sqlite/client.d.mts +1 -1
- package/dist/record/sqlite/client.d.ts +1 -1
- package/dist/record/sqlite/project-state-database.cjs +29 -8
- package/dist/record/sqlite/project-state-database.cjs.map +1 -1
- package/dist/run/host/runtime.cjs +4 -0
- package/dist/run/host/runtime.cjs.map +1 -1
- package/dist/run/storage/sqlite.cjs +20 -0
- package/dist/run/storage/sqlite.cjs.map +1 -1
- package/dist/runner/adapter-execution-trace.cjs +125 -2
- package/dist/runner/adapter-execution-trace.cjs.map +1 -1
- package/dist/runner/adapter-execution-trace.d.cts +1 -1
- package/dist/runner/adapter-execution-trace.d.mts +1 -1
- package/dist/runner/adapter-execution-trace.d.ts +1 -1
- package/dist/runner/adapter-usage.cjs +55 -7
- package/dist/runner/adapter-usage.cjs.map +1 -1
- package/dist/runner/adapter-usage.d.cts +9 -2
- package/dist/runner/adapter-usage.d.mts +9 -2
- package/dist/runner/adapter-usage.d.ts +9 -2
- package/dist/runner/adoption.cjs +9 -0
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/attempt-cancellation.cjs +12 -0
- package/dist/runner/attempt-cancellation.cjs.map +1 -0
- package/dist/runner/attempt-cancellation.d.cts +6 -0
- package/dist/runner/attempt-cancellation.d.mts +6 -0
- package/dist/runner/attempt-cancellation.d.ts +6 -0
- package/dist/runner/attempt-cancellation.js +6 -0
- package/dist/runner/attempt-cancellation.js.map +1 -0
- package/dist/runner/attempt-resources.cjs +10 -4
- package/dist/runner/attempt-resources.cjs.map +1 -1
- package/dist/runner/attempt-resources.d.cts +2 -1
- package/dist/runner/attempt-resources.d.mts +2 -1
- package/dist/runner/attempt-resources.d.ts +2 -1
- package/dist/runner/attempt.cjs +1177 -1139
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/runner/config-identity.cjs +20 -1
- package/dist/runner/config-identity.cjs.map +1 -1
- package/dist/runner/config-identity.d.cts +5 -0
- package/dist/runner/config-identity.d.mts +5 -0
- package/dist/runner/config-identity.d.ts +5 -0
- package/dist/runner/discover.cjs +14 -0
- package/dist/runner/discover.cjs.map +1 -1
- package/dist/runner/discover.d.cts +3 -0
- package/dist/runner/discover.d.mts +3 -0
- package/dist/runner/discover.d.ts +3 -0
- package/dist/runner/feedback/human.cjs +9 -4
- package/dist/runner/feedback/human.cjs.map +1 -1
- package/dist/runner/fingerprint.cjs +1 -0
- package/dist/runner/fingerprint.cjs.map +1 -1
- package/dist/runner/judge-usage.cjs +18 -0
- package/dist/runner/judge-usage.cjs.map +1 -0
- package/dist/runner/judge-usage.d.cts +5 -0
- package/dist/runner/judge-usage.d.mts +5 -0
- package/dist/runner/judge-usage.d.ts +5 -0
- package/dist/runner/judge-usage.js +8 -0
- package/dist/runner/judge-usage.js.map +1 -0
- package/dist/runner/project-target.cjs.map +1 -1
- package/dist/runner/project-target.d.cts +2 -0
- package/dist/runner/project-target.d.mts +2 -0
- package/dist/runner/project-target.d.ts +2 -0
- package/dist/runner/record/planning.cjs +1 -0
- package/dist/runner/record/planning.cjs.map +1 -1
- package/dist/runner/record.cjs +4 -0
- package/dist/runner/record.cjs.map +1 -1
- package/dist/runner/reporters/braintrust.cjs +2 -0
- package/dist/runner/reporters/braintrust.cjs.map +1 -1
- package/dist/runner/reuse-diagnostics.cjs +9 -10
- package/dist/runner/reuse-diagnostics.cjs.map +1 -1
- package/dist/runner/reuse-diagnostics.d.cts +5 -6
- package/dist/runner/reuse-diagnostics.d.mts +5 -6
- package/dist/runner/reuse-diagnostics.d.ts +5 -6
- package/dist/runner/reuse-diagnostics.js +4 -4
- package/dist/runner/reuse-plan.cjs +100 -48
- package/dist/runner/reuse-plan.cjs.map +1 -1
- package/dist/runner/reuse-plan.d.cts +60 -3
- package/dist/runner/reuse-plan.d.mts +60 -3
- package/dist/runner/reuse-plan.d.ts +60 -3
- package/dist/runner/reuse-plan.js +14 -10
- package/dist/runner/run.cjs +8 -6
- package/dist/runner/run.cjs.map +1 -1
- package/dist/runner/session.cjs +1 -1
- package/dist/runner/session.cjs.map +1 -1
- package/dist/runner/session.d.cts +1 -1
- package/dist/runner/session.d.mts +1 -1
- package/dist/runner/session.d.ts +1 -1
- package/dist/runner/source-producer.cjs +3 -1
- package/dist/runner/source-producer.cjs.map +1 -1
- package/dist/runner/types.cjs.map +1 -1
- package/dist/runner/types.d.cts +26 -5
- package/dist/runner/types.d.mts +26 -5
- package/dist/runner/types.d.ts +26 -5
- package/dist/sandbox/action.cjs +3 -0
- package/dist/sandbox/action.cjs.map +1 -1
- package/dist/sandbox/commands.cjs +3 -0
- package/dist/sandbox/commands.cjs.map +1 -1
- package/dist/sandbox/compose.cjs +6 -0
- package/dist/sandbox/compose.cjs.map +1 -1
- package/dist/sandbox/docker-profile/registry.cjs +7 -0
- package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
- package/dist/sandbox/docker-profile/runtime.cjs +3 -0
- package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
- package/dist/sandbox/docker-profile/schema.cjs +7 -0
- package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
- package/dist/sandbox/incus.cjs +7 -0
- package/dist/sandbox/incus.cjs.map +1 -1
- package/dist/sandbox/layer.cjs +12 -0
- package/dist/sandbox/layer.cjs.map +1 -1
- package/dist/shared/adapter-cleanup.cjs +18 -0
- package/dist/shared/adapter-cleanup.cjs.map +1 -0
- package/dist/shared/adapter-cleanup.d.cts +4 -0
- package/dist/shared/adapter-cleanup.d.mts +4 -0
- package/dist/shared/adapter-cleanup.d.ts +4 -0
- package/dist/shared/adapter-cleanup.js +10 -0
- package/dist/shared/adapter-cleanup.js.map +1 -0
- package/dist/shared/attempt-lifecycle.cjs +3 -0
- package/dist/shared/attempt-lifecycle.cjs.map +1 -0
- package/dist/shared/attempt-lifecycle.d.cts +13 -0
- package/dist/shared/attempt-lifecycle.d.mts +13 -0
- package/dist/shared/attempt-lifecycle.d.ts +13 -0
- package/dist/shared/attempt-lifecycle.js +4 -0
- package/dist/shared/attempt-lifecycle.js.map +1 -0
- package/dist/show/contribution.cjs +52 -14
- package/dist/show/contribution.cjs.map +1 -1
- package/dist/show/contribution.d.cts +23 -1
- package/dist/show/contribution.d.mts +23 -1
- package/dist/show/contribution.d.ts +23 -1
- package/dist/show/model.cjs +8 -1
- package/dist/show/model.cjs.map +1 -1
- package/dist/show/model.d.cts +10 -1
- package/dist/show/model.d.mts +10 -1
- package/dist/show/model.d.ts +10 -1
- package/dist/show/render.cjs +287 -49
- package/dist/show/render.cjs.map +1 -1
- package/dist/show/render.d.cts +3 -0
- package/dist/show/render.d.mts +3 -0
- package/dist/show/render.d.ts +3 -0
- package/dist/sources/projector.cjs +3 -0
- package/dist/sources/projector.cjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/view/app-dist/.vite/manifest.json +2 -2
- package/dist/view/app-dist/assets/index-CmVoXbwG.js +63 -0
- package/dist/view/app-dist/assets/{quality-cost-scatter-CFB3wnkN.js → quality-cost-scatter-BuLISaH4.js} +1 -1
- package/dist/view/app-dist/index.html +1 -1
- package/dist/view/cli/contribution.cjs +54 -21
- package/dist/view/cli/contribution.cjs.map +1 -1
- package/dist/view/cli/contribution.d.cts +2 -1
- package/dist/view/cli/contribution.d.mts +2 -1
- package/dist/view/cli/contribution.d.ts +2 -1
- package/dist/view/function-runtime.mjs +13231 -11647
- package/dist/view/http-protocol.cjs +3 -0
- package/dist/view/http-protocol.cjs.map +1 -1
- package/dist/view/http-protocol.d.cts +8 -0
- package/dist/view/http-protocol.d.mts +8 -0
- package/dist/view/http-protocol.d.ts +8 -0
- package/dist/view/inspection-host.cjs +17 -1
- package/dist/view/inspection-host.cjs.map +1 -1
- package/dist/view/render.cjs +1 -0
- package/dist/view/render.cjs.map +1 -1
- package/dist/view/render.d.cts +2 -1
- package/dist/view/render.d.mts +2 -1
- package/dist/view/render.d.ts +2 -1
- package/dist/view/revision.cjs.map +1 -1
- package/dist/view/revision.d.cts +12 -0
- package/dist/view/revision.d.mts +12 -0
- package/dist/view/revision.d.ts +12 -0
- package/dist/view/server.cjs +10 -9
- package/dist/view/server.cjs.map +1 -1
- package/docs-site/zh/examples/ai-agent-application.mdx +1 -1
- package/docs-site/zh/explanation/adapter.mdx +2 -2
- package/docs-site/zh/explanation/assert.mdx +60 -24
- package/docs-site/zh/explanation/drive.mdx +1 -1
- package/docs-site/zh/explanation/evals.mdx +31 -29
- package/docs-site/zh/explanation/experiment.mdx +15 -15
- package/docs-site/zh/explanation/judge.mdx +23 -15
- package/docs-site/zh/explanation/overview.mdx +44 -21
- package/docs-site/zh/explanation/record.mdx +28 -13
- package/docs-site/zh/explanation/results-flow.mdx +37 -0
- package/docs-site/zh/explanation/runner.mdx +27 -6
- package/docs-site/zh/index.mdx +22 -115
- package/docs-site/zh/introduction.mdx +89 -61
- package/docs-site/zh/reference/cli.mdx +50 -26
- package/docs-site/zh/reference/define-agent.mdx +37 -5
- package/docs-site/zh/reference/define-eval.mdx +130 -29
- package/docs-site/zh/reference/define-experiment.mdx +251 -0
- package/docs-site/zh/reference/events.mdx +34 -30
- package/docs-site/zh/reference/expect.mdx +77 -2
- package/docs-site/zh/reference/official-adapters.mdx +2 -2
- package/docs-site/zh/troubleshooting/debug-sandbox.mdx +43 -24
- package/docs-site/zh/troubleshooting/debugging.mdx +65 -42
- package/docs-site/zh/troubleshooting/recover-after-kill.mdx +35 -28
- package/docs-site/zh/tutorials/accept-results.mdx +34 -24
- package/docs-site/zh/tutorials/agent-feedback-loop.mdx +74 -43
- package/docs-site/zh/tutorials/agent-onboarding.mdx +27 -20
- package/docs-site/zh/tutorials/authoring.mdx +138 -121
- package/docs-site/zh/tutorials/ci-integration.mdx +46 -22
- package/docs-site/zh/tutorials/compare-runs.mdx +40 -13
- package/docs-site/zh/tutorials/concurrency.mdx +66 -62
- package/docs-site/zh/tutorials/configuration.mdx +17 -17
- package/docs-site/zh/tutorials/connect-otel.mdx +48 -37
- package/docs-site/zh/tutorials/connect-your-agent.mdx +80 -173
- package/docs-site/zh/tutorials/control-run-cost.mdx +63 -12
- package/docs-site/zh/tutorials/criteria-files.mdx +28 -21
- package/docs-site/zh/tutorials/custom-application.mdx +75 -55
- package/docs-site/zh/tutorials/dataset-fanout.mdx +32 -22
- package/docs-site/zh/tutorials/debug-lifecycle-plan.mdx +38 -31
- package/docs-site/zh/tutorials/docker-in-docker.mdx +83 -89
- package/docs-site/zh/tutorials/eval-groups.mdx +70 -89
- package/docs-site/zh/tutorials/evaluation-kinds.mdx +12 -5
- package/docs-site/zh/tutorials/experiment-services.mdx +243 -0
- package/docs-site/zh/tutorials/fixtures.mdx +42 -26
- package/docs-site/zh/tutorials/handle-execution-failures.mdx +41 -19
- package/docs-site/zh/tutorials/install-custom-sandbox-agent.mdx +21 -16
- package/docs-site/zh/tutorials/niceeval-taste-application.mdx +394 -0
- package/docs-site/zh/tutorials/niceeval-taste.mdx +190 -0
- package/docs-site/zh/tutorials/nixos-managed-dind.mdx +51 -39
- package/docs-site/zh/tutorials/plugins.mdx +55 -31
- package/docs-site/zh/tutorials/prebuilt-sandbox.mdx +204 -0
- package/docs-site/zh/tutorials/quickstart.mdx +91 -47
- package/docs-site/zh/tutorials/reporters.mdx +45 -30
- package/docs-site/zh/tutorials/rerun-and-cache.mdx +39 -40
- package/docs-site/zh/tutorials/sandbox-agent.mdx +65 -40
- package/docs-site/zh/tutorials/sandbox-providers.mdx +104 -282
- package/docs-site/zh/tutorials/sandbox-reuse.mdx +65 -97
- package/docs-site/zh/tutorials/select-and-preview.mdx +25 -20
- package/docs-site/zh/tutorials/verify-judge.mdx +49 -26
- package/docs-site/zh/tutorials/viewing-results.mdx +130 -80
- package/docs-site/zh/tutorials/write-experiment.mdx +116 -298
- package/docs-site/zh/tutorials/write-send.mdx +53 -52
- package/node_modules/undici/docs/docs/api/Agent.md +8 -8
- package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +9 -6
- package/node_modules/undici/docs/docs/api/Errors.md +25 -0
- package/node_modules/undici/docs/docs/api/Interceptors.md +4 -3
- package/node_modules/undici/docs/docs/api/Pool.md +5 -6
- package/node_modules/undici/lib/api/readable.js +1 -2
- package/node_modules/undici/lib/core/request.js +23 -2
- package/node_modules/undici/lib/core/util.js +0 -39
- package/node_modules/undici/lib/dispatcher/client-h1.js +11 -4
- package/node_modules/undici/lib/dispatcher/client-h2.js +52 -8
- package/node_modules/undici/lib/dispatcher/client.js +1 -1
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -2
- package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +21 -6
- package/node_modules/undici/lib/dispatcher/pool-base.js +63 -2
- package/node_modules/undici/lib/dispatcher/pool.js +90 -7
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +16 -3
- package/node_modules/undici/lib/handler/deduplication-handler.js +24 -11
- package/node_modules/undici/lib/handler/redirect-handler.js +5 -0
- package/node_modules/undici/lib/handler/retry-handler.js +72 -13
- package/node_modules/undici/lib/interceptor/cache.js +4 -1
- package/node_modules/undici/lib/interceptor/decompress.js +236 -69
- package/node_modules/undici/lib/web/cache/cache.js +17 -8
- package/node_modules/undici/lib/web/cache/cachestorage.js +11 -5
- package/node_modules/undici/lib/web/cookies/index.js +19 -7
- package/node_modules/undici/lib/web/cookies/util.js +3 -1
- package/node_modules/undici/lib/web/eventsource/eventsource.js +25 -1
- package/node_modules/undici/lib/web/fetch/body.js +22 -15
- package/node_modules/undici/lib/web/fetch/data-url.js +6 -6
- package/node_modules/undici/lib/web/fetch/formdata.js +30 -36
- package/node_modules/undici/lib/web/fetch/headers.js +34 -31
- package/node_modules/undici/lib/web/fetch/index.js +38 -14
- package/node_modules/undici/lib/web/fetch/request.js +74 -79
- package/node_modules/undici/lib/web/fetch/response.js +43 -44
- package/node_modules/undici/lib/web/fetch/util.js +7 -7
- package/node_modules/undici/lib/web/infra/index.js +16 -1
- package/node_modules/undici/lib/web/webidl/index.js +2 -14
- package/node_modules/undici/lib/web/websocket/events.js +43 -26
- package/node_modules/undici/lib/web/websocket/receiver.js +5 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +13 -10
- package/node_modules/undici/lib/web/websocket/websocket.js +44 -41
- package/node_modules/undici/package.json +1 -1
- package/node_modules/undici/types/diagnostics-channel.d.ts +2 -1
- package/node_modules/undici/types/interceptors.d.ts +1 -1
- package/node_modules/undici/types/webidl.d.ts +13 -7
- package/package.json +4 -4
- package/dist/view/app-dist/assets/index-DFzw1L97.js +0 -63
- package/docs-site/zh/tutorials/experiments.mdx +0 -101
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assessCurrentTarget = exports.prepareCurrentTarget = exports.CurrentTargetUnavailable = void 0;
|
|
4
|
+
const node_crypto_1 = require("node:crypto");
|
|
5
|
+
const effect_1 = require("effect");
|
|
6
|
+
const operations_ts_1 = require("./operations.cjs");
|
|
7
|
+
const fingerprint_ts_1 = require("../../runner/fingerprint.cjs");
|
|
8
|
+
const planning_ts_1 = require("../../runner/record/planning.cjs");
|
|
9
|
+
const fingerprint_ts_2 = require("../../runner/fingerprint.cjs");
|
|
10
|
+
const execution_identity_ts_1 = require("../../runner/execution-identity.cjs");
|
|
11
|
+
const identifiers_ts_1 = require("../../record/codec/identifiers.cjs");
|
|
12
|
+
const adapter_ts_1 = require("../../adapter.cjs");
|
|
13
|
+
const reuse_plan_ts_1 = require("../../runner/reuse-plan.cjs");
|
|
14
|
+
class CurrentTargetUnavailable extends effect_1.Data.TaggedError("CurrentTargetUnavailable") {
|
|
15
|
+
}
|
|
16
|
+
exports.CurrentTargetUnavailable = CurrentTargetUnavailable;
|
|
17
|
+
/** No Run/Slot allocation, Record access, occupancy or lifecycle dispatch. */
|
|
18
|
+
exports.prepareCurrentTarget = effect_1.Effect.fn("ExperimentHost.prepareCurrentTarget")(function* (input) {
|
|
19
|
+
const candidate = yield* effect_1.Effect.gen(function* () {
|
|
20
|
+
const prepared = yield* (0, operations_ts_1.prepareRuns)(input, { allowEmptySelection: true, freshImport: input.freshImport });
|
|
21
|
+
if (prepared.status !== "ready")
|
|
22
|
+
return yield* effect_1.Effect.fail(new Error(JSON.stringify(prepared.problem)));
|
|
23
|
+
const planned = yield* (0, fingerprint_ts_1.planProjectTarget)(prepared.selected.evals, prepared.runs, input.config.timeoutMs, { configJudge: input.config.judgeRuntime });
|
|
24
|
+
const reuse = yield* (0, planning_ts_1.prepareRunnerRecordReuse)({
|
|
25
|
+
evals: prepared.selected.evals,
|
|
26
|
+
runs: prepared.runs,
|
|
27
|
+
config: input.config,
|
|
28
|
+
plannedFingerprints: planned.plannedFingerprints,
|
|
29
|
+
plannedConfigHashes: planned.plannedConfigHashes,
|
|
30
|
+
renameFingerprintsByKey: planned.renameFingerprintsByKey,
|
|
31
|
+
});
|
|
32
|
+
const slots = [];
|
|
33
|
+
for (const run of prepared.runs) {
|
|
34
|
+
for (const definition of prepared.selected.evals.filter((evalDef) => run.selectedEvalIds.includes(evalDef.id))) {
|
|
35
|
+
const slotInput = reuse.slotsByKey.get((0, fingerprint_ts_2.cacheKey)(run, definition.id));
|
|
36
|
+
for (let attempt = 0; attempt < run.attempts; attempt++) {
|
|
37
|
+
const digest = yield* effect_1.Schema.decodeUnknownEffect(identifiers_ts_1.ExecutionIdentityDigestSchema)((0, execution_identity_ts_1.slotExecutionIdentityDigestHex)({
|
|
38
|
+
experimentId: run.experimentId, evalId: definition.id, attempt,
|
|
39
|
+
input: slotInput.inputIdentity, config: slotInput.configIdentity, timeout: slotInput.timeout ?? null,
|
|
40
|
+
}));
|
|
41
|
+
slots.push(Object.freeze({
|
|
42
|
+
...slotInput,
|
|
43
|
+
experimentId: run.experimentId,
|
|
44
|
+
evalId: definition.id,
|
|
45
|
+
attempt,
|
|
46
|
+
evaluationKind: definition.evaluationKind,
|
|
47
|
+
executionIdentityDigest: digest,
|
|
48
|
+
...(run.adapter.kind === "custom" && run.adapter.behaviorRevision === null ? { reuseEligibility: "adapter-behavior-revision-required" } : {}),
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Re-read identity inputs without re-evaluating declarations or resources.
|
|
54
|
+
const verified = yield* (0, fingerprint_ts_1.planPreparedProjectTarget)([...planned.preparedPairsByKey.values()], { configJudge: input.config.judgeRuntime });
|
|
55
|
+
if ([...planned.plannedFingerprints].some(([key, value]) => verified.plannedFingerprints.get(key) !== value)) {
|
|
56
|
+
return yield* effect_1.Effect.fail(new Error("Current project inputs changed during evaluation; retry the request."));
|
|
57
|
+
}
|
|
58
|
+
slots.sort((left, right) => compare(left.experimentId, right.experimentId) || compare(left.evalId, right.evalId) || left.attempt - right.attempt);
|
|
59
|
+
const experiments = Object.freeze(prepared.runs.map((run) => Object.freeze({
|
|
60
|
+
experimentId: run.experimentId, adapter: (0, adapter_ts_1.adapterIdentity)(run.adapter), model: run.model,
|
|
61
|
+
labels: Object.freeze(Object.fromEntries(Object.entries(run.labels ?? {}).map(([key, value]) => [key, String(value)]))),
|
|
62
|
+
})).sort((left, right) => compare(left.experimentId, right.experimentId)));
|
|
63
|
+
const identity = (0, node_crypto_1.createHash)("sha256").update(JSON.stringify({ experiments, slots: slots.map(({ renameFingerprint: _rename, ...slot }) => slot) })).digest("hex");
|
|
64
|
+
return Object.freeze({ identity, policy: reuse.policy, experiments, slots: Object.freeze(slots) });
|
|
65
|
+
}).pipe(effect_1.Effect.catchCause((cause) => effect_1.Effect.fail(new CurrentTargetUnavailable({
|
|
66
|
+
code: "current-target-unavailable", reason: String(cause), cause,
|
|
67
|
+
}))));
|
|
68
|
+
return candidate;
|
|
69
|
+
});
|
|
70
|
+
function compare(left, right) { return left < right ? -1 : left > right ? 1 : 0; }
|
|
71
|
+
/** The Host assesses its frozen logical target using the caller's pinned facts. */
|
|
72
|
+
const assessCurrentTarget = (target, facts) => effect_1.Effect.forEach(target.slots, (slot) => (0, reuse_plan_ts_1.assessCurrentTargetSlot)({ ...facts, target: slot, policy: target.policy }), { concurrency: 1 }).pipe(effect_1.Effect.map((slots) => Object.freeze(slots)));
|
|
73
|
+
exports.assessCurrentTarget = assessCurrentTarget;
|
|
74
|
+
//# sourceMappingURL=current.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.js","sourceRoot":"","sources":["current.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { Data, Effect, Schema } from \"effect\";\nimport { prepareRuns } from \"./operations.ts\";\nimport { planPreparedProjectTarget, planProjectTarget } from \"../../runner/fingerprint.ts\";\nimport { prepareRunnerRecordReuse } from \"../../runner/record/planning.ts\";\nimport { cacheKey } from \"../../runner/fingerprint.ts\";\nimport { slotExecutionIdentityDigestHex } from \"../../runner/execution-identity.ts\";\nimport { ExecutionIdentityDigestSchema } from \"../../record/codec/identifiers.ts\";\nimport { adapterIdentity } from \"../../adapter.ts\";\nimport type { Config } from \"../../runner/types.ts\";\nimport { assessCurrentTargetSlot, type CurrentAssessmentAttempt, type CurrentAssessmentSource, type CurrentAssessmentInput, type CurrentTargetSlot, type ProjectTargetPolicy } from \"../../runner/reuse-plan.ts\";\nexport class CurrentTargetUnavailable extends Data.TaggedError(\"CurrentTargetUnavailable\")<{\n readonly code: \"current-target-unavailable\";\n readonly reason: string;\n readonly cause?: unknown;\n}> {\n}\nexport interface FrozenCurrentTarget {\n readonly identity: string;\n readonly policy: ProjectTargetPolicy;\n readonly experiments: readonly {\n readonly experimentId: string;\n readonly adapter: ReturnType<typeof adapterIdentity>;\n readonly model: string | undefined;\n readonly labels: Readonly<Record<string, string>>;\n }[];\n readonly slots: readonly CurrentTargetSlot[];\n}\n/** No Run/Slot allocation, Record access, occupancy or lifecycle dispatch. */\nexport const prepareCurrentTarget = Effect.fn(\"ExperimentHost.prepareCurrentTarget\")(function* (input: {\n readonly cwd: string;\n readonly config: Config;\n readonly freshImport?: boolean;\n}): Effect.fn.Return<FrozenCurrentTarget, CurrentTargetUnavailable> {\n const candidate = yield* Effect.gen(function* () {\n const prepared = yield* prepareRuns(input, { allowEmptySelection: true, freshImport: input.freshImport });\n if (prepared.status !== \"ready\")\n return yield* Effect.fail(new Error(JSON.stringify(prepared.problem)));\n const planned = yield* planProjectTarget(prepared.selected.evals, prepared.runs, input.config.timeoutMs, { configJudge: input.config.judgeRuntime });\n const reuse = yield* prepareRunnerRecordReuse({\n evals: prepared.selected.evals,\n runs: prepared.runs,\n config: input.config,\n plannedFingerprints: planned.plannedFingerprints,\n plannedConfigHashes: planned.plannedConfigHashes,\n renameFingerprintsByKey: planned.renameFingerprintsByKey,\n });\n const slots: CurrentTargetSlot[] = [];\n for (const run of prepared.runs) {\n for (const definition of prepared.selected.evals.filter((evalDef) => run.selectedEvalIds.includes(evalDef.id))) {\n const slotInput = reuse.slotsByKey.get(cacheKey(run, definition.id))!;\n for (let attempt = 0; attempt < run.attempts; attempt++) {\n const digest = yield* Schema.decodeUnknownEffect(ExecutionIdentityDigestSchema)(slotExecutionIdentityDigestHex({\n experimentId: run.experimentId, evalId: definition.id, attempt,\n input: slotInput.inputIdentity, config: slotInput.configIdentity, timeout: slotInput.timeout ?? null,\n }));\n slots.push(Object.freeze({\n ...slotInput,\n experimentId: run.experimentId,\n evalId: definition.id,\n attempt,\n evaluationKind: definition.evaluationKind,\n executionIdentityDigest: digest,\n ...(run.adapter.kind === \"custom\" && run.adapter.behaviorRevision === null ? { reuseEligibility: \"adapter-behavior-revision-required\" as const } : {}),\n }));\n }\n }\n }\n // Re-read identity inputs without re-evaluating declarations or resources.\n const verified = yield* planPreparedProjectTarget([...planned.preparedPairsByKey.values()], { configJudge: input.config.judgeRuntime });\n if ([...planned.plannedFingerprints].some(([key, value]) => verified.plannedFingerprints.get(key) !== value)) {\n return yield* Effect.fail(new Error(\"Current project inputs changed during evaluation; retry the request.\"));\n }\n slots.sort((left, right) => compare(left.experimentId, right.experimentId) || compare(left.evalId, right.evalId) || left.attempt - right.attempt);\n const experiments = Object.freeze(prepared.runs.map((run) => Object.freeze({\n experimentId: run.experimentId, adapter: adapterIdentity(run.adapter), model: run.model,\n labels: Object.freeze(Object.fromEntries(Object.entries(run.labels ?? {}).map(([key, value]) => [key, String(value)]))),\n })).sort((left, right) => compare(left.experimentId, right.experimentId)));\n const identity = createHash(\"sha256\").update(JSON.stringify({ experiments, slots: slots.map(({ renameFingerprint: _rename, ...slot }) => slot) })).digest(\"hex\");\n return Object.freeze({ identity, policy: reuse.policy, experiments, slots: Object.freeze(slots) });\n }).pipe(Effect.catchCause((cause) => Effect.fail(new CurrentTargetUnavailable({\n code: \"current-target-unavailable\", reason: String(cause), cause,\n }))));\n return candidate;\n});\nfunction compare(left: string, right: string): number { return left < right ? -1 : left > right ? 1 : 0; }\n/** The Host assesses its frozen logical target using the caller's pinned facts. */\nexport const assessCurrentTarget = <Ref, Attempt extends CurrentAssessmentAttempt, Source extends CurrentAssessmentSource, Error>(target: FrozenCurrentTarget, facts: Omit<CurrentAssessmentInput<Ref, Attempt, Source, CurrentTargetSlot, Error>, \"target\" | \"policy\">) => Effect.forEach(target.slots, (slot) => assessCurrentTargetSlot({ ...facts, target: slot, policy: target.policy }), { concurrency: 1 }).pipe(Effect.map((slots) => Object.freeze(slots)));\n"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { adapterIdentity } from "../../adapter.cjs";
|
|
3
|
+
import type { Config } from "../../runner/types.cjs";
|
|
4
|
+
import { type CurrentAssessmentAttempt, type CurrentAssessmentSource, type CurrentAssessmentInput, type CurrentTargetSlot, type ProjectTargetPolicy } from "../../runner/reuse-plan.cjs";
|
|
5
|
+
declare const CurrentTargetUnavailable_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
6
|
+
readonly _tag: "CurrentTargetUnavailable";
|
|
7
|
+
} & Readonly<A>;
|
|
8
|
+
export declare class CurrentTargetUnavailable extends CurrentTargetUnavailable_base<{
|
|
9
|
+
readonly code: "current-target-unavailable";
|
|
10
|
+
readonly reason: string;
|
|
11
|
+
readonly cause?: unknown;
|
|
12
|
+
}> {
|
|
13
|
+
}
|
|
14
|
+
export interface FrozenCurrentTarget {
|
|
15
|
+
readonly identity: string;
|
|
16
|
+
readonly policy: ProjectTargetPolicy;
|
|
17
|
+
readonly experiments: readonly {
|
|
18
|
+
readonly experimentId: string;
|
|
19
|
+
readonly adapter: ReturnType<typeof adapterIdentity>;
|
|
20
|
+
readonly model: string | undefined;
|
|
21
|
+
readonly labels: Readonly<Record<string, string>>;
|
|
22
|
+
}[];
|
|
23
|
+
readonly slots: readonly CurrentTargetSlot[];
|
|
24
|
+
}
|
|
25
|
+
/** No Run/Slot allocation, Record access, occupancy or lifecycle dispatch. */
|
|
26
|
+
export declare const prepareCurrentTarget: (input: {
|
|
27
|
+
readonly cwd: string;
|
|
28
|
+
readonly config: Config;
|
|
29
|
+
readonly freshImport?: boolean;
|
|
30
|
+
}) => Effect.Effect<FrozenCurrentTarget, CurrentTargetUnavailable, never>;
|
|
31
|
+
/** The Host assesses its frozen logical target using the caller's pinned facts. */
|
|
32
|
+
export declare const assessCurrentTarget: <Ref, Attempt extends CurrentAssessmentAttempt, Source extends CurrentAssessmentSource, Error>(target: FrozenCurrentTarget, facts: Omit<CurrentAssessmentInput<Ref, Attempt, Source, CurrentTargetSlot, Error>, "target" | "policy">) => Effect.Effect<readonly import("../../runner/reuse-plan.cjs").CurrentSlotAssessment<CurrentTargetSlot, Source>[], Error, never>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { adapterIdentity } from "../../adapter.mjs";
|
|
3
|
+
import type { Config } from "../../runner/types.mjs";
|
|
4
|
+
import { type CurrentAssessmentAttempt, type CurrentAssessmentSource, type CurrentAssessmentInput, type CurrentTargetSlot, type ProjectTargetPolicy } from "../../runner/reuse-plan.mjs";
|
|
5
|
+
declare const CurrentTargetUnavailable_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
6
|
+
readonly _tag: "CurrentTargetUnavailable";
|
|
7
|
+
} & Readonly<A>;
|
|
8
|
+
export declare class CurrentTargetUnavailable extends CurrentTargetUnavailable_base<{
|
|
9
|
+
readonly code: "current-target-unavailable";
|
|
10
|
+
readonly reason: string;
|
|
11
|
+
readonly cause?: unknown;
|
|
12
|
+
}> {
|
|
13
|
+
}
|
|
14
|
+
export interface FrozenCurrentTarget {
|
|
15
|
+
readonly identity: string;
|
|
16
|
+
readonly policy: ProjectTargetPolicy;
|
|
17
|
+
readonly experiments: readonly {
|
|
18
|
+
readonly experimentId: string;
|
|
19
|
+
readonly adapter: ReturnType<typeof adapterIdentity>;
|
|
20
|
+
readonly model: string | undefined;
|
|
21
|
+
readonly labels: Readonly<Record<string, string>>;
|
|
22
|
+
}[];
|
|
23
|
+
readonly slots: readonly CurrentTargetSlot[];
|
|
24
|
+
}
|
|
25
|
+
/** No Run/Slot allocation, Record access, occupancy or lifecycle dispatch. */
|
|
26
|
+
export declare const prepareCurrentTarget: (input: {
|
|
27
|
+
readonly cwd: string;
|
|
28
|
+
readonly config: Config;
|
|
29
|
+
readonly freshImport?: boolean;
|
|
30
|
+
}) => Effect.Effect<FrozenCurrentTarget, CurrentTargetUnavailable, never>;
|
|
31
|
+
/** The Host assesses its frozen logical target using the caller's pinned facts. */
|
|
32
|
+
export declare const assessCurrentTarget: <Ref, Attempt extends CurrentAssessmentAttempt, Source extends CurrentAssessmentSource, Error>(target: FrozenCurrentTarget, facts: Omit<CurrentAssessmentInput<Ref, Attempt, Source, CurrentTargetSlot, Error>, "target" | "policy">) => Effect.Effect<readonly import("../../runner/reuse-plan.mjs").CurrentSlotAssessment<CurrentTargetSlot, Source>[], Error, never>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import { adapterIdentity } from "../../adapter.js";
|
|
3
|
+
import type { Config } from "../../runner/types.js";
|
|
4
|
+
import { type CurrentAssessmentAttempt, type CurrentAssessmentSource, type CurrentAssessmentInput, type CurrentTargetSlot, type ProjectTargetPolicy } from "../../runner/reuse-plan.js";
|
|
5
|
+
declare const CurrentTargetUnavailable_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
6
|
+
readonly _tag: "CurrentTargetUnavailable";
|
|
7
|
+
} & Readonly<A>;
|
|
8
|
+
export declare class CurrentTargetUnavailable extends CurrentTargetUnavailable_base<{
|
|
9
|
+
readonly code: "current-target-unavailable";
|
|
10
|
+
readonly reason: string;
|
|
11
|
+
readonly cause?: unknown;
|
|
12
|
+
}> {
|
|
13
|
+
}
|
|
14
|
+
export interface FrozenCurrentTarget {
|
|
15
|
+
readonly identity: string;
|
|
16
|
+
readonly policy: ProjectTargetPolicy;
|
|
17
|
+
readonly experiments: readonly {
|
|
18
|
+
readonly experimentId: string;
|
|
19
|
+
readonly adapter: ReturnType<typeof adapterIdentity>;
|
|
20
|
+
readonly model: string | undefined;
|
|
21
|
+
readonly labels: Readonly<Record<string, string>>;
|
|
22
|
+
}[];
|
|
23
|
+
readonly slots: readonly CurrentTargetSlot[];
|
|
24
|
+
}
|
|
25
|
+
/** No Run/Slot allocation, Record access, occupancy or lifecycle dispatch. */
|
|
26
|
+
export declare const prepareCurrentTarget: (input: {
|
|
27
|
+
readonly cwd: string;
|
|
28
|
+
readonly config: Config;
|
|
29
|
+
readonly freshImport?: boolean;
|
|
30
|
+
}) => Effect.Effect<FrozenCurrentTarget, CurrentTargetUnavailable, never>;
|
|
31
|
+
/** The Host assesses its frozen logical target using the caller's pinned facts. */
|
|
32
|
+
export declare const assessCurrentTarget: <Ref, Attempt extends CurrentAssessmentAttempt, Source extends CurrentAssessmentSource, Error>(target: FrozenCurrentTarget, facts: Omit<CurrentAssessmentInput<Ref, Attempt, Source, CurrentTargetSlot, Error>, "target" | "policy">) => Effect.Effect<readonly import("../../runner/reuse-plan.js").CurrentSlotAssessment<CurrentTargetSlot, Source>[], Error, never>;
|
|
33
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createRequire as __niceevalCreateRequire } from "node:module";
|
|
2
|
+
const __niceevalRequire = __niceevalCreateRequire(import.meta.url);
|
|
3
|
+
const __niceevalCanonical = __niceevalRequire("./current.cjs");
|
|
4
|
+
const __niceevalExport0 = __niceevalCanonical["CurrentTargetUnavailable"];
|
|
5
|
+
export { __niceevalExport0 as CurrentTargetUnavailable };
|
|
6
|
+
const __niceevalExport1 = __niceevalCanonical["assessCurrentTarget"];
|
|
7
|
+
export { __niceevalExport1 as assessCurrentTarget };
|
|
8
|
+
const __niceevalExport2 = __niceevalCanonical["prepareCurrentTarget"];
|
|
9
|
+
export { __niceevalExport2 as prepareCurrentTarget };
|
|
10
|
+
//# sourceMappingURL=current.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current.js","sources":[],"names":[],"mappings":""}
|
|
@@ -14,18 +14,24 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.
|
|
17
|
+
exports.ExpTerminalSummarySchema = exports.ExpTerminalEventSchema = exports.ExpInvocationReceiptSchema = exports.decodeExpTerminalEvent = exports.ExpPlanDocumentSchema = exports.decodeExpPlanDocument = exports.SessionShowDocumentSchema = exports.SessionListDocumentSchema = exports.decodeSessionShowDocument = exports.decodeSessionListDocument = exports.DebugPlanDocumentSchema = exports.decodeDebugPlanDocument = exports.experimentHost = void 0;
|
|
18
|
+
/** Node composition edge. Internal services and their resource scopes stay private. */
|
|
18
19
|
const effect_1 = require("effect");
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
const node_ts_1 = require("../../record/platform/node.cjs");
|
|
21
|
+
const runtime_ts_1 = require("./runtime.cjs");
|
|
22
|
+
const withNode = (operation) => (input) => effect_1.Effect.suspend(() => operation(input)).pipe(effect_1.Effect.provide(node_ts_1.NodeRecordLive, { local: true }));
|
|
23
|
+
/** Every execution owns its Node resources; interruption retains the caller's Cause. */
|
|
24
|
+
exports.experimentHost = Object.freeze({
|
|
25
|
+
catalog: withNode(runtime_ts_1.rawExperimentHost.catalog),
|
|
26
|
+
check: withNode(runtime_ts_1.rawExperimentHost.check),
|
|
27
|
+
invocation: Object.freeze({ plan: withNode(runtime_ts_1.rawExperimentHost.invocation.plan), run: withNode(runtime_ts_1.rawExperimentHost.invocation.run) }),
|
|
28
|
+
invocationStatus: Object.freeze({ list: withNode(runtime_ts_1.rawExperimentHost.invocationStatus.list), show: withNode(runtime_ts_1.rawExperimentHost.invocationStatus.show) }),
|
|
29
|
+
rename: Object.freeze({ plan: withNode(runtime_ts_1.rawExperimentHost.rename.plan), apply: withNode(runtime_ts_1.rawExperimentHost.rename.apply) }),
|
|
30
|
+
teardown: Object.freeze({ inspect: withNode(runtime_ts_1.rawExperimentHost.teardown.inspect), run: withNode(runtime_ts_1.rawExperimentHost.teardown.run) }),
|
|
31
|
+
debug: runtime_ts_1.rawExperimentHost.debug,
|
|
32
|
+
accept: withNode(runtime_ts_1.rawExperimentHost.accept),
|
|
33
|
+
acceptRun: Object.freeze({ plan: withNode(runtime_ts_1.rawExperimentHost.acceptRun.plan), apply: withNode(runtime_ts_1.rawExperimentHost.acceptRun.apply) }),
|
|
34
|
+
});
|
|
29
35
|
__exportStar(require("./types.cjs"), exports);
|
|
30
36
|
var debug_protocol_ts_1 = require("./cli/debug-protocol.cjs");
|
|
31
37
|
Object.defineProperty(exports, "decodeDebugPlanDocument", { enumerable: true, get: function () { return debug_protocol_ts_1.decodeDebugPlanDocument; } });
|
|
@@ -43,167 +49,4 @@ Object.defineProperty(exports, "decodeExpTerminalEvent", { enumerable: true, get
|
|
|
43
49
|
Object.defineProperty(exports, "ExpInvocationReceiptSchema", { enumerable: true, get: function () { return output_protocol_ts_1.ExpInvocationReceiptSchema; } });
|
|
44
50
|
Object.defineProperty(exports, "ExpTerminalEventSchema", { enumerable: true, get: function () { return output_protocol_ts_1.ExpTerminalEventSchema; } });
|
|
45
51
|
Object.defineProperty(exports, "ExpTerminalSummarySchema", { enumerable: true, get: function () { return output_protocol_ts_1.ExpTerminalSummarySchema; } });
|
|
46
|
-
/**
|
|
47
|
-
* Discovery and selection are owned here so consumers cannot invoke an
|
|
48
|
-
* Experiment's predicate a second time while reconstructing an AgentRun.
|
|
49
|
-
*/
|
|
50
|
-
function discoverSelection(input) {
|
|
51
|
-
return effect_1.Effect.gen(function* () {
|
|
52
|
-
const discoveredEvals = yield* (0, discover_ts_1.discoverEvals)(input.cwd);
|
|
53
|
-
const evals = input.tag === undefined
|
|
54
|
-
? discoveredEvals
|
|
55
|
-
: discoveredEvals.filter((evalDefinition) => evalDefinition.tags?.includes(input.tag));
|
|
56
|
-
const experiments = yield* (0, discover_ts_1.discoverExperiments)(input.cwd);
|
|
57
|
-
const experimentIds = Object.freeze(experiments.map((experiment) => experiment.id));
|
|
58
|
-
const selectedIds = input.selector === undefined
|
|
59
|
-
? undefined
|
|
60
|
-
: new Set((0, aggregate_ts_1.matchExperimentSelector)(experimentIds, input.selector));
|
|
61
|
-
const selections = experiments
|
|
62
|
-
.filter((experiment) => selectedIds === undefined || selectedIds.has(experiment.id))
|
|
63
|
-
.map((experiment) => {
|
|
64
|
-
const selected = (0, eval_selection_ts_1.resolveExperimentEvals)({
|
|
65
|
-
experimentId: experiment.id,
|
|
66
|
-
selector: experiment.evals,
|
|
67
|
-
cliPatterns: input.evalPatterns ?? [],
|
|
68
|
-
evals,
|
|
69
|
-
});
|
|
70
|
-
return Object.freeze({
|
|
71
|
-
experiment,
|
|
72
|
-
selectedEvalIds: Object.freeze([...selected.selectedEvalIds]),
|
|
73
|
-
selectorEvalIds: Object.freeze(selected.selectorEvals.map((evalDefinition) => evalDefinition.id)),
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
return Object.freeze({
|
|
77
|
-
evals: Object.freeze([...evals]),
|
|
78
|
-
experimentIds,
|
|
79
|
-
selections: Object.freeze(selections),
|
|
80
|
-
});
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
function uniqueExactOrPrefix(candidates, selector, id) {
|
|
84
|
-
const exact = candidates.find((candidate) => id(candidate) === selector);
|
|
85
|
-
return exact === undefined
|
|
86
|
-
? candidates.filter((candidate) => id(candidate).startsWith(selector))
|
|
87
|
-
: [exact];
|
|
88
|
-
}
|
|
89
|
-
function debugAgentRun(experiment, evalId, config) {
|
|
90
|
-
return {
|
|
91
|
-
adapter: experiment.adapter,
|
|
92
|
-
...(experiment.agent === undefined ? {} : { agent: experiment.agent }),
|
|
93
|
-
model: experiment.model,
|
|
94
|
-
reasoningEffort: experiment.reasoningEffort,
|
|
95
|
-
flags: experiment.flags ?? {},
|
|
96
|
-
plugins: experiment.plugins,
|
|
97
|
-
attempts: experiment.attempts ?? 1,
|
|
98
|
-
earlyExit: experiment.earlyExit ?? false,
|
|
99
|
-
sandboxSetupCache: (0, types_ts_1.resolveSandboxSetupCache)(undefined, experiment.sandboxCache, config.sandboxCache),
|
|
100
|
-
sandbox: experiment.sandbox,
|
|
101
|
-
sandboxReuse: experiment.sandboxReuse,
|
|
102
|
-
...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),
|
|
103
|
-
judgeRuntime: experiment.judgeRuntime,
|
|
104
|
-
...(0, timeout_ts_1.resolveRunTimeout)(undefined, experiment.timeoutMs),
|
|
105
|
-
budget: experiment.budget,
|
|
106
|
-
selectedEvalIds: [evalId],
|
|
107
|
-
experimentId: experiment.id,
|
|
108
|
-
experimentBaseDir: experiment.baseDir,
|
|
109
|
-
experimentSourcePath: experiment.sourcePath,
|
|
110
|
-
description: experiment.description,
|
|
111
|
-
labels: experiment.labels,
|
|
112
|
-
maxConcurrency: experiment.maxConcurrency,
|
|
113
|
-
setup: experiment.setup,
|
|
114
|
-
teardown: experiment.teardown,
|
|
115
|
-
classifyFailure: experiment.classifyFailure,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Closes selector resolution, physical planning, and command-plan projection
|
|
120
|
-
* inside the Experiment Host. It deliberately does not construct a Record
|
|
121
|
-
* root, enter a lease, read history, or invoke an author callback.
|
|
122
|
-
*/
|
|
123
|
-
function debug(input) {
|
|
124
|
-
return effect_1.Effect.gen(function* () {
|
|
125
|
-
const listed = yield* discoverSelection({ cwd: input.cwd });
|
|
126
|
-
const selectedExperiments = uniqueExactOrPrefix(listed.selections, input.experimentSelector, ({ experiment }) => experiment.id).slice().sort((left, right) => left.experiment.id.localeCompare(right.experiment.id));
|
|
127
|
-
if (selectedExperiments.length === 0) {
|
|
128
|
-
return Object.freeze({
|
|
129
|
-
status: "experiment-no-match",
|
|
130
|
-
selector: input.experimentSelector,
|
|
131
|
-
candidates: Object.freeze([...listed.experimentIds].sort()),
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
if (selectedExperiments.length > 1) {
|
|
135
|
-
return Object.freeze({
|
|
136
|
-
status: "experiment-ambiguous",
|
|
137
|
-
selector: input.experimentSelector,
|
|
138
|
-
candidates: Object.freeze(selectedExperiments.map(({ experiment }) => experiment.id)),
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
const selection = selectedExperiments[0];
|
|
142
|
-
const experiment = selection.experiment;
|
|
143
|
-
const selectorEvalIds = new Set(selection.selectorEvalIds);
|
|
144
|
-
const selectorEvals = listed.evals.filter((evalDef) => selectorEvalIds.has(evalDef.id));
|
|
145
|
-
const selectedEvals = (input.evalSelector === undefined
|
|
146
|
-
? selectorEvals
|
|
147
|
-
: uniqueExactOrPrefix(selectorEvals, input.evalSelector, (evalDef) => evalDef.id))
|
|
148
|
-
.slice().sort((left, right) => left.id.localeCompare(right.id));
|
|
149
|
-
if (selectedEvals.length === 0) {
|
|
150
|
-
return Object.freeze({
|
|
151
|
-
status: "eval-no-match",
|
|
152
|
-
selector: input.evalSelector ?? "",
|
|
153
|
-
experimentId: experiment.id,
|
|
154
|
-
candidates: Object.freeze(selectorEvals.map((evalDef) => evalDef.id).sort()),
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
if (input.evalSelector !== undefined && selectedEvals.length > 1) {
|
|
158
|
-
return Object.freeze({
|
|
159
|
-
status: "eval-ambiguous",
|
|
160
|
-
selector: input.evalSelector,
|
|
161
|
-
experimentId: experiment.id,
|
|
162
|
-
candidates: Object.freeze(selectedEvals.map((evalDef) => evalDef.id)),
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
const runs = selectedEvals.map((evalDef) => debugAgentRun(experiment, evalDef.id, input.config));
|
|
166
|
-
const target = yield* (0, fingerprint_ts_1.planProjectTarget)(listed.evals, runs, input.config.timeoutMs, { configJudge: input.config.judgeRuntime });
|
|
167
|
-
const commandPlan = (0, command_plan_ts_1.assembleCommandPlan)({
|
|
168
|
-
rows: selectedEvals.map((evalDef) => {
|
|
169
|
-
const run = runs.find((candidate) => candidate.selectedEvalIds.includes(evalDef.id));
|
|
170
|
-
return {
|
|
171
|
-
experimentId: experiment.id,
|
|
172
|
-
evalId: evalDef.id,
|
|
173
|
-
...(evalDef.evalGroup === undefined ? {} : { evalGroupId: evalDef.evalGroup.id }),
|
|
174
|
-
attempts: run.attempts,
|
|
175
|
-
dispatch: [{ attempts: Array.from({ length: run.attempts }, (_, attempt) => attempt) }],
|
|
176
|
-
};
|
|
177
|
-
}),
|
|
178
|
-
preparedPairsByKey: target.preparedPairsByKey,
|
|
179
|
-
});
|
|
180
|
-
return Object.freeze({
|
|
181
|
-
status: "planned",
|
|
182
|
-
experimentId: experiment.id,
|
|
183
|
-
...(selectedEvals.length === 1 ? { evalId: selectedEvals[0].id } : {}),
|
|
184
|
-
evalIds: Object.freeze(selectedEvals.map((evalDef) => evalDef.id)),
|
|
185
|
-
commandPlan,
|
|
186
|
-
setupPrefixPlan: (0, command_plan_ts_1.setupPrefixPlanOf)(commandPlan),
|
|
187
|
-
});
|
|
188
|
-
}).pipe(effect_1.Effect.mapError((cause) => new types_ts_2.ExperimentHostError({
|
|
189
|
-
operation: "debug",
|
|
190
|
-
code: typeof cause === "object" && cause !== null && typeof Reflect.get(cause, "code") === "string"
|
|
191
|
-
? String(Reflect.get(cause, "code"))
|
|
192
|
-
: "experiment-host-operation-failed",
|
|
193
|
-
message: cause instanceof Error ? cause.message : String(cause),
|
|
194
|
-
cause,
|
|
195
|
-
})));
|
|
196
|
-
}
|
|
197
|
-
/** The fixed public Host surface; discovery, Runner, and adoption internals stay private. */
|
|
198
|
-
exports.experimentHost = Object.freeze({
|
|
199
|
-
catalog: operations_ts_1.catalog,
|
|
200
|
-
check: operations_ts_1.check,
|
|
201
|
-
invocation: Object.freeze({ plan: operations_ts_1.planInvocation, run: operations_ts_1.runInvocation }),
|
|
202
|
-
invocationStatus: Object.freeze({ list: operations_ts_1.listInvocationStatus, show: operations_ts_1.showInvocationStatus }),
|
|
203
|
-
rename: Object.freeze({ plan: operations_ts_1.planRename, apply: operations_ts_1.applyRename }),
|
|
204
|
-
teardown: Object.freeze({ inspect: teardown_ts_1.inspectTeardown, run: teardown_ts_1.runTeardown }),
|
|
205
|
-
debug,
|
|
206
|
-
accept: operations_ts_1.accept,
|
|
207
|
-
acceptRun: Object.freeze({ plan: operations_ts_1.planRunAccept, apply: operations_ts_1.applyRunAccept }),
|
|
208
|
-
});
|
|
209
52
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,mCAAgC;AAChC,kEAA8H;AAC9H,0DAA8E;AAC9E,gEAAgE;AAChE,sEAAwE;AACxE,wDAA4D;AAE5D,oDAAiE;AACjE,4DAAoE;AACpE,mDAA6L;AAC7L,+CAA6D;AAC7D,yCAAkF;AAClF,6CAA2B;AAC3B,6DAAoH;AAA3G,4HAAA,uBAAuB,OAAA;AAAE,4HAAA,uBAAuB,OAAA;AACzD,iEAAwJ;AAA/I,gIAAA,yBAAyB,OAAA;AAAE,gIAAA,yBAAyB,OAAA;AAAE,gIAAA,yBAAyB,OAAA;AAAE,gIAAA,yBAAyB,OAAA;AACnH,2DAA4G;AAAnG,yHAAA,qBAAqB,OAAA;AAAE,yHAAA,qBAAqB,OAAA;AACrD,+DAA4N;AAAnN,4HAAA,sBAAsB,OAAA;AAAE,gIAAA,0BAA0B,OAAA;AAAE,4HAAA,sBAAsB,OAAA;AAAE,8HAAA,wBAAwB,OAAA;AAmB7G;;;GAGG;AACH,SAAS,iBAAiB,CAAC,KAM1B;IACG,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,IAAA,2BAAa,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,SAAS;YACjC,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAI,CAAC,CAAC,CAAC;QAC5F,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,IAAA,iCAAmB,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,KAAK,SAAS;YAC5C,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,GAAG,CAAC,IAAA,sCAAuB,EAAC,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtE,MAAM,UAAU,GAAG,WAAW;aACzB,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACnF,GAAG,CAAC,CAAC,UAAU,EAA2B,EAAE;YAC7C,MAAM,QAAQ,GAAG,IAAA,0CAAsB,EAAC;gBACpC,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,QAAQ,EAAE,UAAU,CAAC,KAAK;gBAC1B,WAAW,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;gBACrC,KAAK;aACR,CAAC,CAAC;YACH,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,UAAU;gBACV,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC;gBAC7D,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;aACpG,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YAChC,aAAa;YACb,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;SACxC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAwCD,SAAS,mBAAmB,CAAI,UAAwB,EAAE,QAAgB,EAAE,EAA4B;IACpG,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC,CAAC;IACzE,OAAO,KAAK,KAAK,SAAS;QACtB,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC;AACD,SAAS,aAAa,CAAC,UAAgC,EAAE,MAAc,EAAE,MAAc;IACnF,OAAO;QACH,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;QACtE,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,eAAe,EAAE,UAAU,CAAC,eAAe;QAC3C,KAAK,EAAE,UAAU,CAAC,KAAK,IAAI,EAAE;QAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,QAAQ,EAAE,UAAU,CAAC,QAAQ,IAAI,CAAC;QAClC,SAAS,EAAE,UAAU,CAAC,SAAS,IAAI,KAAK;QACxC,iBAAiB,EAAE,IAAA,mCAAwB,EAAC,SAAS,EAAE,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC;QACpG,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,GAAG,CAAC,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;QACxF,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,GAAG,IAAA,8BAAiB,EAAC,SAAS,EAAE,UAAU,CAAC,SAAS,CAAC;QACrD,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,eAAe,EAAE,CAAC,MAAM,CAAC;QACzB,YAAY,EAAE,UAAU,CAAC,EAAE;QAC3B,iBAAiB,EAAE,UAAU,CAAC,OAAO;QACrC,oBAAoB,EAAE,UAAU,CAAC,UAAU;QAC3C,WAAW,EAAE,UAAU,CAAC,WAAW;QACnC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;QAC7B,eAAe,EAAE,UAAU,CAAC,eAAe;KAC9C,CAAC;AACN,CAAC;AACD;;;;GAIG;AACH,SAAS,KAAK,CAAC,KAAqC;IAChD,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACrN,IAAI,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,qBAA8B;gBACtC,QAAQ,EAAE,KAAK,CAAC,kBAAkB;gBAClC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;aAC9D,CAAC,CAAC;QACP,CAAC;QACD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,sBAA+B;gBACvC,QAAQ,EAAE,KAAK,CAAC,kBAAkB;gBAClC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;aACxF,CAAC,CAAC;QACP,CAAC;QACD,MAAM,SAAS,GAAG,mBAAmB,CAAC,CAAC,CAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACxF,MAAM,aAAa,GAAG,CAAC,KAAK,CAAC,YAAY,KAAK,SAAS;YACnD,CAAC,CAAC,aAAa;YACf,CAAC,CAAC,mBAAmB,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACjF,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QACpE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,eAAwB;gBAChC,QAAQ,EAAE,KAAK,CAAC,YAAY,IAAI,EAAE;gBAClC,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;aAC/E,CAAC,CAAC;QACP,CAAC;QACD,IAAI,KAAK,CAAC,YAAY,KAAK,SAAS,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAO,MAAM,CAAC,MAAM,CAAC;gBACjB,MAAM,EAAE,gBAAyB;gBACjC,QAAQ,EAAE,KAAK,CAAC,YAAY;gBAC5B,YAAY,EAAE,UAAU,CAAC,EAAE;gBAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;aACxE,CAAC,CAAC;QACP,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACjG,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,IAAA,kCAAiB,EAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAChI,MAAM,WAAW,GAAG,IAAA,qCAAmB,EAAC;YACpC,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;gBAChC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAE,CAAC;gBACtF,OAAO;oBACH,YAAY,EAAE,UAAU,CAAC,EAAE;oBAC3B,MAAM,EAAE,OAAO,CAAC,EAAE;oBAClB,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;oBACjF,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;iBAC1F,CAAC;YACN,CAAC,CAAC;YACF,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;SAChD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,MAAM,EAAE,SAAkB;YAC1B,YAAY,EAAE,UAAU,CAAC,EAAE;YAC3B,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC,CAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAClE,WAAW;YACX,eAAe,EAAE,IAAA,mCAAiB,EAAC,WAAW,CAAC;SAClD,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,8BAAmB,CAAC;QACvD,SAAS,EAAE,OAAO;QAClB,IAAI,EAAE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,QAAQ;YAC/F,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YACpC,CAAC,CAAC,kCAAkC;QACxC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/D,KAAK;KACR,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AAID,6FAA6F;AAChF,QAAA,cAAc,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC3D,OAAO,EAAP,uBAAO;IACP,KAAK,EAAL,qBAAK;IACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,8BAAc,EAAE,GAAG,EAAE,6BAAa,EAAE,CAAC;IACvE,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,oCAAoB,EAAE,IAAI,EAAE,oCAAoB,EAAE,CAAC;IAC3F,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,0BAAU,EAAE,KAAK,EAAE,2BAAW,EAAE,CAAC;IAC/D,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,6BAAe,EAAE,GAAG,EAAE,yBAAW,EAAE,CAAC;IACvE,KAAK;IACL,MAAM,EAAN,sBAAM;IACN,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,6BAAa,EAAE,KAAK,EAAE,8BAAc,EAAE,CAAC;CAC3E,CAAC,CAAC","sourcesContent":["import { Effect } from \"effect\";\nimport { assembleCommandPlan, setupPrefixPlanOf, type CommandPlan, type SetupPrefixPlan } from \"../../runner/command-plan.ts\";\nimport { discoverEvals, discoverExperiments } from \"../../runner/discover.ts\";\nimport { planProjectTarget } from \"../../runner/fingerprint.ts\";\nimport { resolveExperimentEvals } from \"../../runner/eval-selection.ts\";\nimport { resolveRunTimeout } from \"../../runner/timeout.ts\";\nimport type { AgentRun, Config, DiscoveredEval, DiscoveredExperiment, } from \"../../runner/types.ts\";\nimport { resolveSandboxSetupCache } from \"../../runner/types.ts\";\nimport { matchExperimentSelector } from \"../../shared/aggregate.ts\";\nimport { accept, applyRunAccept, applyRename, catalog, check, listInvocationStatus, planInvocation, planRename, planRunAccept, runInvocation, showInvocationStatus, } from \"./operations.ts\";\nimport { inspectTeardown, runTeardown } from \"./teardown.ts\";\nimport { ExperimentHostError, type ExperimentHostHighLevelSDK } from \"./types.ts\";\nexport * from \"./types.ts\";\nexport { decodeDebugPlanDocument, DebugPlanDocumentSchema, type DebugPlanDocument, } from \"./cli/debug-protocol.ts\";\nexport { decodeSessionListDocument, decodeSessionShowDocument, SessionListDocumentSchema, SessionShowDocumentSchema, } from \"./cli/session-protocol.ts\";\nexport { decodeExpPlanDocument, ExpPlanDocumentSchema, type ExpPlanDocument } from \"./cli/plan-protocol.ts\";\nexport { decodeExpTerminalEvent, ExpInvocationReceiptSchema, ExpTerminalEventSchema, ExpTerminalSummarySchema, type ExpInvocationReceipt, type ExpTerminalEvent, type ExpTerminalSummary, } from \"./cli/output-protocol.ts\";\n/**\n * Public, supported high-level Host composition SDK for the NiceEval CLI,\n * replacement CLI/Web hosts, and deep adapter integrations. Eval authors\n * use `defineExperiment`; this entry deliberately exposes no Runner internals.\n */\n/** One discovered Experiment after its author selector and CLI prefixes close. */\ninterface ExperimentHostSelection {\n readonly experiment: DiscoveredExperiment;\n readonly selectedEvalIds: readonly string[];\n /** The Experiment-owned set before CLI eval-prefix narrowing. */\n readonly selectorEvalIds: readonly string[];\n}\n/** Discovery result used by both `exp list` and execution planning. */\ninterface ExperimentHostListResult {\n readonly evals: readonly DiscoveredEval[];\n readonly experimentIds: readonly string[];\n readonly selections: readonly ExperimentHostSelection[];\n}\n/**\n * Discovery and selection are owned here so consumers cannot invoke an\n * Experiment's predicate a second time while reconstructing an AgentRun.\n */\nfunction discoverSelection(input: {\n readonly cwd: string;\n /** Keep the CLI's public `--tag` selection inside the Experiment boundary. */\n readonly tag?: string;\n readonly selector?: string;\n readonly evalPatterns?: readonly string[];\n}): Effect.Effect<ExperimentHostListResult, unknown> {\n return Effect.gen(function* () {\n const discoveredEvals = yield* discoverEvals(input.cwd);\n const evals = input.tag === undefined\n ? discoveredEvals\n : discoveredEvals.filter((evalDefinition) => evalDefinition.tags?.includes(input.tag!));\n const experiments = yield* discoverExperiments(input.cwd);\n const experimentIds = Object.freeze(experiments.map((experiment) => experiment.id));\n const selectedIds = input.selector === undefined\n ? undefined\n : new Set(matchExperimentSelector(experimentIds, input.selector));\n const selections = experiments\n .filter((experiment) => selectedIds === undefined || selectedIds.has(experiment.id))\n .map((experiment): ExperimentHostSelection => {\n const selected = resolveExperimentEvals({\n experimentId: experiment.id,\n selector: experiment.evals,\n cliPatterns: input.evalPatterns ?? [],\n evals,\n });\n return Object.freeze({\n experiment,\n selectedEvalIds: Object.freeze([...selected.selectedEvalIds]),\n selectorEvalIds: Object.freeze(selected.selectorEvals.map((evalDefinition) => evalDefinition.id)),\n });\n });\n return Object.freeze({\n evals: Object.freeze([...evals]),\n experimentIds,\n selections: Object.freeze(selections),\n });\n });\n}\nexport interface ExperimentHostDebugPlanRequest {\n readonly cwd: string;\n readonly config: Config;\n readonly experimentSelector: string;\n readonly evalSelector?: string;\n}\n/** A fully closed, read-only lifecycle plan for exactly one Experiment × Eval pair. */\nexport interface ExperimentHostDebugPlan {\n readonly status: \"planned\";\n readonly experimentId: string;\n /** Retained for the existing single-pair response. */\n readonly evalId?: string;\n readonly evalIds: readonly string[];\n readonly commandPlan: CommandPlan;\n readonly setupPrefixPlan: SetupPrefixPlan;\n}\n/**\n * Selector outcomes are data, rather than CLI-owned selection logic or a\n * partially constructed plan. The caller can render them in its own surface.\n */\nexport type ExperimentHostDebugPlanResult = ExperimentHostDebugPlan | {\n readonly status: \"experiment-no-match\";\n readonly selector: string;\n readonly candidates: readonly string[];\n} | {\n readonly status: \"experiment-ambiguous\";\n readonly selector: string;\n readonly candidates: readonly string[];\n} | {\n readonly status: \"eval-no-match\";\n readonly selector: string;\n readonly experimentId: string;\n readonly candidates: readonly string[];\n} | {\n readonly status: \"eval-ambiguous\";\n readonly selector: string;\n readonly experimentId: string;\n readonly candidates: readonly string[];\n};\nfunction uniqueExactOrPrefix<T>(candidates: readonly T[], selector: string, id: (candidate: T) => string): readonly T[] {\n const exact = candidates.find((candidate) => id(candidate) === selector);\n return exact === undefined\n ? candidates.filter((candidate) => id(candidate).startsWith(selector))\n : [exact];\n}\nfunction debugAgentRun(experiment: DiscoveredExperiment, evalId: string, config: Config): AgentRun {\n return {\n adapter: experiment.adapter,\n ...(experiment.agent === undefined ? {} : { agent: experiment.agent }),\n model: experiment.model,\n reasoningEffort: experiment.reasoningEffort,\n flags: experiment.flags ?? {},\n plugins: experiment.plugins,\n attempts: experiment.attempts ?? 1,\n earlyExit: experiment.earlyExit ?? false,\n sandboxSetupCache: resolveSandboxSetupCache(undefined, experiment.sandboxCache, config.sandboxCache),\n sandbox: experiment.sandbox,\n sandboxReuse: experiment.sandboxReuse,\n ...(experiment.sharedState === undefined ? {} : { sharedState: experiment.sharedState }),\n judgeRuntime: experiment.judgeRuntime,\n ...resolveRunTimeout(undefined, experiment.timeoutMs),\n budget: experiment.budget,\n selectedEvalIds: [evalId],\n experimentId: experiment.id,\n experimentBaseDir: experiment.baseDir,\n experimentSourcePath: experiment.sourcePath,\n description: experiment.description,\n labels: experiment.labels,\n maxConcurrency: experiment.maxConcurrency,\n setup: experiment.setup,\n teardown: experiment.teardown,\n classifyFailure: experiment.classifyFailure,\n };\n}\n/**\n * Closes selector resolution, physical planning, and command-plan projection\n * inside the Experiment Host. It deliberately does not construct a Record\n * root, enter a lease, read history, or invoke an author callback.\n */\nfunction debug(input: ExperimentHostDebugPlanRequest): Effect.Effect<ExperimentHostDebugPlanResult, ExperimentHostError> {\n return Effect.gen(function* () {\n const listed = yield* discoverSelection({ cwd: input.cwd });\n const selectedExperiments = uniqueExactOrPrefix(listed.selections, input.experimentSelector, ({ experiment }) => experiment.id).slice().sort((left, right) => left.experiment.id.localeCompare(right.experiment.id));\n if (selectedExperiments.length === 0) {\n return Object.freeze({\n status: \"experiment-no-match\" as const,\n selector: input.experimentSelector,\n candidates: Object.freeze([...listed.experimentIds].sort()),\n });\n }\n if (selectedExperiments.length > 1) {\n return Object.freeze({\n status: \"experiment-ambiguous\" as const,\n selector: input.experimentSelector,\n candidates: Object.freeze(selectedExperiments.map(({ experiment }) => experiment.id)),\n });\n }\n const selection = selectedExperiments[0]!;\n const experiment = selection.experiment;\n const selectorEvalIds = new Set(selection.selectorEvalIds);\n const selectorEvals = listed.evals.filter((evalDef) => selectorEvalIds.has(evalDef.id));\n const selectedEvals = (input.evalSelector === undefined\n ? selectorEvals\n : uniqueExactOrPrefix(selectorEvals, input.evalSelector, (evalDef) => evalDef.id))\n .slice().sort((left, right) => left.id.localeCompare(right.id));\n if (selectedEvals.length === 0) {\n return Object.freeze({\n status: \"eval-no-match\" as const,\n selector: input.evalSelector ?? \"\",\n experimentId: experiment.id,\n candidates: Object.freeze(selectorEvals.map((evalDef) => evalDef.id).sort()),\n });\n }\n if (input.evalSelector !== undefined && selectedEvals.length > 1) {\n return Object.freeze({\n status: \"eval-ambiguous\" as const,\n selector: input.evalSelector,\n experimentId: experiment.id,\n candidates: Object.freeze(selectedEvals.map((evalDef) => evalDef.id)),\n });\n }\n const runs = selectedEvals.map((evalDef) => debugAgentRun(experiment, evalDef.id, input.config));\n const target = yield* planProjectTarget(listed.evals, runs, input.config.timeoutMs, { configJudge: input.config.judgeRuntime });\n const commandPlan = assembleCommandPlan({\n rows: selectedEvals.map((evalDef) => {\n const run = runs.find((candidate) => candidate.selectedEvalIds.includes(evalDef.id))!;\n return {\n experimentId: experiment.id,\n evalId: evalDef.id,\n ...(evalDef.evalGroup === undefined ? {} : { evalGroupId: evalDef.evalGroup.id }),\n attempts: run.attempts,\n dispatch: [{ attempts: Array.from({ length: run.attempts }, (_, attempt) => attempt) }],\n };\n }),\n preparedPairsByKey: target.preparedPairsByKey,\n });\n return Object.freeze({\n status: \"planned\" as const,\n experimentId: experiment.id,\n ...(selectedEvals.length === 1 ? { evalId: selectedEvals[0]!.id } : {}),\n evalIds: Object.freeze(selectedEvals.map((evalDef) => evalDef.id)),\n commandPlan,\n setupPrefixPlan: setupPrefixPlanOf(commandPlan),\n });\n }).pipe(Effect.mapError((cause) => new ExperimentHostError({\n operation: \"debug\",\n code: typeof cause === \"object\" && cause !== null && typeof Reflect.get(cause, \"code\") === \"string\"\n ? String(Reflect.get(cause, \"code\"))\n : \"experiment-host-operation-failed\",\n message: cause instanceof Error ? cause.message : String(cause),\n cause,\n })));\n}\nexport interface ExperimentHostSDK extends ExperimentHostHighLevelSDK {\n readonly debug: typeof debug;\n}\n/** The fixed public Host surface; discovery, Runner, and adoption internals stay private. */\nexport const experimentHost: ExperimentHostSDK = Object.freeze({\n catalog,\n check,\n invocation: Object.freeze({ plan: planInvocation, run: runInvocation }),\n invocationStatus: Object.freeze({ list: listInvocationStatus, show: showInvocationStatus }),\n rename: Object.freeze({ plan: planRename, apply: applyRename }),\n teardown: Object.freeze({ inspect: inspectTeardown, run: runTeardown }),\n debug,\n accept,\n acceptRun: Object.freeze({ plan: planRunAccept, apply: applyRunAccept }),\n});\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uFAAuF;AACvF,mCAAgC;AAChC,2DAA+D;AAC/D,6CAAiD;AAGjD,MAAM,QAAQ,GAAG,CAAuB,SAAqF,EAAoD,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,wBAAc,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAI5R,wFAAwF;AAC3E,QAAA,cAAc,GAAsB,MAAM,CAAC,MAAM,CAAC;IAC3D,OAAO,EAAE,QAAQ,CAAC,8BAAiB,CAAC,OAAO,CAAC;IAC5C,KAAK,EAAE,QAAQ,CAAC,8BAAiB,CAAC,KAAK,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,8BAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,8BAAiB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;IACjI,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,8BAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,8BAAiB,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;IACrJ,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,8BAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,8BAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;IACzH,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,8BAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,8BAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;IACjI,KAAK,EAAE,8BAAiB,CAAC,KAAK;IAC9B,MAAM,EAAE,QAAQ,CAAC,8BAAiB,CAAC,MAAM,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,8BAAiB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,8BAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;CACrI,CAAC,CAAC;AAEH,6CAA2B;AAC3B,6DAAoH;AAA3G,4HAAA,uBAAuB,OAAA;AAAE,4HAAA,uBAAuB,OAAA;AACzD,iEAAwJ;AAA/I,gIAAA,yBAAyB,OAAA;AAAE,gIAAA,yBAAyB,OAAA;AAAE,gIAAA,yBAAyB,OAAA;AAAE,gIAAA,yBAAyB,OAAA;AACnH,2DAA4G;AAAnG,yHAAA,qBAAqB,OAAA;AAAE,yHAAA,qBAAqB,OAAA;AACrD,+DAA4N;AAAnN,4HAAA,sBAAsB,OAAA;AAAE,gIAAA,0BAA0B,OAAA;AAAE,4HAAA,sBAAsB,OAAA;AAAE,8HAAA,wBAAwB,OAAA","sourcesContent":["/** Node composition edge. Internal services and their resource scopes stay private. */\nimport { Effect } from \"effect\";\nimport { NodeRecordLive } from \"../../record/platform/node.ts\";\nimport { rawExperimentHost } from \"./runtime.ts\";\nimport type { ExperimentHostHighLevelSDK } from \"./types.ts\";\nimport type { ExperimentHostRequirements } from \"./requirements.ts\";\nconst withNode = <Input, Output, Error>(operation: (input: Input) => Effect.Effect<Output, Error, ExperimentHostRequirements>): ((input: Input) => Effect.Effect<Output, Error>) => (input) => Effect.suspend(() => operation(input)).pipe(Effect.provide(NodeRecordLive, { local: true }));\nexport interface ExperimentHostSDK extends ExperimentHostHighLevelSDK {\n readonly debug: typeof rawExperimentHost.debug;\n}\n/** Every execution owns its Node resources; interruption retains the caller's Cause. */\nexport const experimentHost: ExperimentHostSDK = Object.freeze({\n catalog: withNode(rawExperimentHost.catalog),\n check: withNode(rawExperimentHost.check),\n invocation: Object.freeze({ plan: withNode(rawExperimentHost.invocation.plan), run: withNode(rawExperimentHost.invocation.run) }),\n invocationStatus: Object.freeze({ list: withNode(rawExperimentHost.invocationStatus.list), show: withNode(rawExperimentHost.invocationStatus.show) }),\n rename: Object.freeze({ plan: withNode(rawExperimentHost.rename.plan), apply: withNode(rawExperimentHost.rename.apply) }),\n teardown: Object.freeze({ inspect: withNode(rawExperimentHost.teardown.inspect), run: withNode(rawExperimentHost.teardown.run) }),\n debug: rawExperimentHost.debug,\n accept: withNode(rawExperimentHost.accept),\n acceptRun: Object.freeze({ plan: withNode(rawExperimentHost.acceptRun.plan), apply: withNode(rawExperimentHost.acceptRun.apply) }),\n});\nexport type { ExperimentHostDebugPlanRequest, ExperimentHostDebugPlan, ExperimentHostDebugPlanResult } from \"./runtime.ts\";\nexport * from \"./types.ts\";\nexport { decodeDebugPlanDocument, DebugPlanDocumentSchema, type DebugPlanDocument, } from \"./cli/debug-protocol.ts\";\nexport { decodeSessionListDocument, decodeSessionShowDocument, SessionListDocumentSchema, SessionShowDocumentSchema, } from \"./cli/session-protocol.ts\";\nexport { decodeExpPlanDocument, ExpPlanDocumentSchema, type ExpPlanDocument } from \"./cli/plan-protocol.ts\";\nexport { decodeExpTerminalEvent, ExpInvocationReceiptSchema, ExpTerminalEventSchema, ExpTerminalSummarySchema, type ExpInvocationReceipt, type ExpTerminalEvent, type ExpTerminalSummary, } from \"./cli/output-protocol.ts\";\n"]}
|
|
@@ -1,59 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { rawExperimentHost } from "./runtime.cjs";
|
|
2
|
+
import type { ExperimentHostHighLevelSDK } from "./types.cjs";
|
|
3
|
+
export interface ExperimentHostSDK extends ExperimentHostHighLevelSDK {
|
|
4
|
+
readonly debug: typeof rawExperimentHost.debug;
|
|
5
|
+
}
|
|
6
|
+
/** Every execution owns its Node resources; interruption retains the caller's Cause. */
|
|
7
|
+
export declare const experimentHost: ExperimentHostSDK;
|
|
8
|
+
export type { ExperimentHostDebugPlanRequest, ExperimentHostDebugPlan, ExperimentHostDebugPlanResult } from "./runtime.cjs";
|
|
5
9
|
export * from "./types.cjs";
|
|
6
10
|
export { decodeDebugPlanDocument, DebugPlanDocumentSchema, type DebugPlanDocument, } from "./cli/debug-protocol.cjs";
|
|
7
11
|
export { decodeSessionListDocument, decodeSessionShowDocument, SessionListDocumentSchema, SessionShowDocumentSchema, } from "./cli/session-protocol.cjs";
|
|
8
12
|
export { decodeExpPlanDocument, ExpPlanDocumentSchema, type ExpPlanDocument } from "./cli/plan-protocol.cjs";
|
|
9
13
|
export { decodeExpTerminalEvent, ExpInvocationReceiptSchema, ExpTerminalEventSchema, ExpTerminalSummarySchema, type ExpInvocationReceipt, type ExpTerminalEvent, type ExpTerminalSummary, } from "./cli/output-protocol.cjs";
|
|
10
|
-
export interface ExperimentHostDebugPlanRequest {
|
|
11
|
-
readonly cwd: string;
|
|
12
|
-
readonly config: Config;
|
|
13
|
-
readonly experimentSelector: string;
|
|
14
|
-
readonly evalSelector?: string;
|
|
15
|
-
}
|
|
16
|
-
/** A fully closed, read-only lifecycle plan for exactly one Experiment × Eval pair. */
|
|
17
|
-
export interface ExperimentHostDebugPlan {
|
|
18
|
-
readonly status: "planned";
|
|
19
|
-
readonly experimentId: string;
|
|
20
|
-
/** Retained for the existing single-pair response. */
|
|
21
|
-
readonly evalId?: string;
|
|
22
|
-
readonly evalIds: readonly string[];
|
|
23
|
-
readonly commandPlan: CommandPlan;
|
|
24
|
-
readonly setupPrefixPlan: SetupPrefixPlan;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Selector outcomes are data, rather than CLI-owned selection logic or a
|
|
28
|
-
* partially constructed plan. The caller can render them in its own surface.
|
|
29
|
-
*/
|
|
30
|
-
export type ExperimentHostDebugPlanResult = ExperimentHostDebugPlan | {
|
|
31
|
-
readonly status: "experiment-no-match";
|
|
32
|
-
readonly selector: string;
|
|
33
|
-
readonly candidates: readonly string[];
|
|
34
|
-
} | {
|
|
35
|
-
readonly status: "experiment-ambiguous";
|
|
36
|
-
readonly selector: string;
|
|
37
|
-
readonly candidates: readonly string[];
|
|
38
|
-
} | {
|
|
39
|
-
readonly status: "eval-no-match";
|
|
40
|
-
readonly selector: string;
|
|
41
|
-
readonly experimentId: string;
|
|
42
|
-
readonly candidates: readonly string[];
|
|
43
|
-
} | {
|
|
44
|
-
readonly status: "eval-ambiguous";
|
|
45
|
-
readonly selector: string;
|
|
46
|
-
readonly experimentId: string;
|
|
47
|
-
readonly candidates: readonly string[];
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Closes selector resolution, physical planning, and command-plan projection
|
|
51
|
-
* inside the Experiment Host. It deliberately does not construct a Record
|
|
52
|
-
* root, enter a lease, read history, or invoke an author callback.
|
|
53
|
-
*/
|
|
54
|
-
declare function debug(input: ExperimentHostDebugPlanRequest): Effect.Effect<ExperimentHostDebugPlanResult, ExperimentHostError>;
|
|
55
|
-
export interface ExperimentHostSDK extends ExperimentHostHighLevelSDK {
|
|
56
|
-
readonly debug: typeof debug;
|
|
57
|
-
}
|
|
58
|
-
/** The fixed public Host surface; discovery, Runner, and adoption internals stay private. */
|
|
59
|
-
export declare const experimentHost: ExperimentHostSDK;
|
|
@@ -1,59 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { rawExperimentHost } from "./runtime.mjs";
|
|
2
|
+
import type { ExperimentHostHighLevelSDK } from "./types.mjs";
|
|
3
|
+
export interface ExperimentHostSDK extends ExperimentHostHighLevelSDK {
|
|
4
|
+
readonly debug: typeof rawExperimentHost.debug;
|
|
5
|
+
}
|
|
6
|
+
/** Every execution owns its Node resources; interruption retains the caller's Cause. */
|
|
7
|
+
export declare const experimentHost: ExperimentHostSDK;
|
|
8
|
+
export type { ExperimentHostDebugPlanRequest, ExperimentHostDebugPlan, ExperimentHostDebugPlanResult } from "./runtime.mjs";
|
|
5
9
|
export * from "./types.mjs";
|
|
6
10
|
export { decodeDebugPlanDocument, DebugPlanDocumentSchema, type DebugPlanDocument, } from "./cli/debug-protocol.mjs";
|
|
7
11
|
export { decodeSessionListDocument, decodeSessionShowDocument, SessionListDocumentSchema, SessionShowDocumentSchema, } from "./cli/session-protocol.mjs";
|
|
8
12
|
export { decodeExpPlanDocument, ExpPlanDocumentSchema, type ExpPlanDocument } from "./cli/plan-protocol.mjs";
|
|
9
13
|
export { decodeExpTerminalEvent, ExpInvocationReceiptSchema, ExpTerminalEventSchema, ExpTerminalSummarySchema, type ExpInvocationReceipt, type ExpTerminalEvent, type ExpTerminalSummary, } from "./cli/output-protocol.mjs";
|
|
10
|
-
export interface ExperimentHostDebugPlanRequest {
|
|
11
|
-
readonly cwd: string;
|
|
12
|
-
readonly config: Config;
|
|
13
|
-
readonly experimentSelector: string;
|
|
14
|
-
readonly evalSelector?: string;
|
|
15
|
-
}
|
|
16
|
-
/** A fully closed, read-only lifecycle plan for exactly one Experiment × Eval pair. */
|
|
17
|
-
export interface ExperimentHostDebugPlan {
|
|
18
|
-
readonly status: "planned";
|
|
19
|
-
readonly experimentId: string;
|
|
20
|
-
/** Retained for the existing single-pair response. */
|
|
21
|
-
readonly evalId?: string;
|
|
22
|
-
readonly evalIds: readonly string[];
|
|
23
|
-
readonly commandPlan: CommandPlan;
|
|
24
|
-
readonly setupPrefixPlan: SetupPrefixPlan;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Selector outcomes are data, rather than CLI-owned selection logic or a
|
|
28
|
-
* partially constructed plan. The caller can render them in its own surface.
|
|
29
|
-
*/
|
|
30
|
-
export type ExperimentHostDebugPlanResult = ExperimentHostDebugPlan | {
|
|
31
|
-
readonly status: "experiment-no-match";
|
|
32
|
-
readonly selector: string;
|
|
33
|
-
readonly candidates: readonly string[];
|
|
34
|
-
} | {
|
|
35
|
-
readonly status: "experiment-ambiguous";
|
|
36
|
-
readonly selector: string;
|
|
37
|
-
readonly candidates: readonly string[];
|
|
38
|
-
} | {
|
|
39
|
-
readonly status: "eval-no-match";
|
|
40
|
-
readonly selector: string;
|
|
41
|
-
readonly experimentId: string;
|
|
42
|
-
readonly candidates: readonly string[];
|
|
43
|
-
} | {
|
|
44
|
-
readonly status: "eval-ambiguous";
|
|
45
|
-
readonly selector: string;
|
|
46
|
-
readonly experimentId: string;
|
|
47
|
-
readonly candidates: readonly string[];
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* Closes selector resolution, physical planning, and command-plan projection
|
|
51
|
-
* inside the Experiment Host. It deliberately does not construct a Record
|
|
52
|
-
* root, enter a lease, read history, or invoke an author callback.
|
|
53
|
-
*/
|
|
54
|
-
declare function debug(input: ExperimentHostDebugPlanRequest): Effect.Effect<ExperimentHostDebugPlanResult, ExperimentHostError>;
|
|
55
|
-
export interface ExperimentHostSDK extends ExperimentHostHighLevelSDK {
|
|
56
|
-
readonly debug: typeof debug;
|
|
57
|
-
}
|
|
58
|
-
/** The fixed public Host surface; discovery, Runner, and adoption internals stay private. */
|
|
59
|
-
export declare const experimentHost: ExperimentHostSDK;
|