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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["discover.ts"],"names":[],"mappings":"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","sourcesContent":["// Discovery is the only boundary where executable modules enter the typed runner.\n// Dynamic imports are decoded immediately; every later stage receives branded, immutable definitions.\nimport { existsSync } from \"node:fs\";\nimport { readdir } from \"node:fs/promises\";\nimport { basename, dirname, join, relative, resolve, sep } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { Data, Effect, Option, Schema } from \"effect\";\nimport { pad4 } from \"../util.ts\";\nimport { assertNoHiddenInputLeaks, captureEvalSource, folderEntryBaseId, type HiddenInput, type LeakGateHints, } from \"./eval-source.ts\";\nimport { evalPrefixPredicate } from \"../shared/aggregate.ts\";\nimport { captureLoadedFiles, type LoaderCaptureOrigin, type LoaderCapturePaths, } from \"../loaders/index.ts\";\nimport { acquireFreshImportGeneration, importProjectModule } from \"../fresh-import.ts\";\nimport { sandboxLayerStateOf, type SandboxLayer } from \"../sandbox/layer.ts\";\nimport { sandboxLayerDefinitionIdentity } from \"../sandbox/link.ts\";\nimport { discoverEval, discoverExperiment, isEvalDefinition, isExperimentDefinition, isEvalGroupDefinition, } from \"../types.ts\";\nimport type { AnyEvalDefinition, DiscoveredEval, DiscoveredExperiment, ExperimentDefinition, EvalGroupDefinition, } from \"../types.ts\";\nimport { digestOf } from \"../sandbox/identity.ts\";\nimport { captureSourceClosure } from \"./source-closure.ts\";\nimport { splitByEvaluationKind } from \"./eval-selection.ts\";\nconst SKIP_DIRS = new Set([\"node_modules\", \".git\", \".niceeval\", \"dist\", \".next\"]);\nexport type DiscoveryIssueCode = \"discovery.filesystem\" | \"discovery.duplicate-id\" | \"discovery.import-failed\" | \"discovery.invalid-export\" | \"eval-group-member-unresolved\" | \"eval-group-member-overlap\" | \"eval-group-member-layer\" | \"eval-group-evaluation-kind-mixed\" | \"discovery.invalid-dataset-key\" | \"discovery.source-capture-failed\" | \"discovery.leak-gate-failed\";\nexport interface DiscoveryIssue {\n readonly file: string;\n readonly code: DiscoveryIssueCode;\n readonly message: string;\n readonly actions: readonly string[];\n /** Retained in-process for structured error assistance; never persisted. */\n readonly cause?: unknown;\n}\n/** Discovery reports the whole invalid batch, rather than stopping at the first bad file. */\nexport class DiscoveryError extends Data.TaggedError(\"DiscoveryError\")<{\n readonly message: string;\n readonly issues: readonly DiscoveryIssue[];\n}> {\n}\ninterface EvalEntry {\n readonly file: string;\n readonly baseId: string;\n readonly kind: \"file\" | \"folder\";\n}\ntype EvalModuleExport = AnyEvalDefinition | readonly AnyEvalDefinition[] | Readonly<globalThis.Record<string, AnyEvalDefinition>>;\ninterface EvalModule {\n readonly default: EvalModuleExport;\n}\ninterface ExperimentModule {\n readonly default?: ExperimentDefinition;\n}\ninterface EvalGroupModule {\n readonly default: EvalGroupDefinition;\n}\nconst EvalDefinitionSchema = Schema.declare(isEvalDefinition, {\n identifier: \"EvalDefinition\",\n description: \"a value returned by defineEval() or defineScoreEval()\",\n});\nconst EvalModuleSchema: Schema.Schema<EvalModule> = Schema.Struct({\n default: Schema.Union([\n Schema.toType(EvalDefinitionSchema),\n Schema.Array(Schema.toType(EvalDefinitionSchema)),\n Schema.Record(Schema.String, Schema.toType(EvalDefinitionSchema)),\n ]),\n});\nconst ExperimentDefinitionSchema = Schema.declare(isExperimentDefinition, {\n identifier: \"ExperimentDefinition\",\n description: \"a value returned by defineExperiment()\",\n});\nconst ExperimentModuleSchema: Schema.Schema<ExperimentModule> = Schema.Struct({\n default: Schema.optional(Schema.toType(ExperimentDefinitionSchema)),\n});\nconst EvalGroupModuleSchema: Schema.Schema<EvalGroupModule> = Schema.Struct({\n default: Schema.toType(Schema.declare(isEvalGroupDefinition, { identifier: \"EvalGroupDefinition\" })),\n});\nfunction discoveryError(issues: readonly DiscoveryIssue[]): DiscoveryError {\n const frozenIssues = Object.freeze(issues.map((issue) => Object.freeze({\n ...issue,\n actions: Object.freeze([...issue.actions]),\n })));\n return new DiscoveryError({\n message: frozenIssues.map((issue) => `${issue.code} ${issue.file}: ${issue.message} Actions: ${issue.actions.join(\" \")}`).join(\"\\n\"),\n issues: frozenIssues,\n });\n}\nfunction issue(file: string, code: DiscoveryIssueCode, message: string, actions: readonly string[], cause?: unknown): DiscoveryError {\n return discoveryError([{ file, code, message, actions, ...(cause === undefined ? {} : { cause }) }]);\n}\nfunction causeMessage(cause: unknown): string {\n return cause instanceof Error ? cause.message : String(cause);\n}\ntype DiscoveryModuleLoader = (file: string) => Promise<unknown>;\nconst cachedModuleLoader: DiscoveryModuleLoader = importProjectModule;\nfunction importModule(file: string, root: string, kind: \"eval\" | \"experiment\", load: DiscoveryModuleLoader = cachedModuleLoader): Effect.Effect<unknown, DiscoveryError> {\n return Effect.tryPromise({\n try: () => load(file),\n catch: (cause) => issue(relative(root, file), \"discovery.import-failed\", `Top-level ${kind} module evaluation failed: ${causeMessage(cause)}`, [`Move resource work into the selected ${kind} body.`, \"Fix the reported top-level exception.\"], cause),\n });\n}\nfunction decodeEvalModule(value: unknown, file: string): Effect.Effect<EvalModule, DiscoveryError> {\n return Schema.decodeUnknownEffect(Schema.toType(EvalModuleSchema), { errors: \"all\" })(value).pipe(Effect.mapError((error) => issue(file, \"discovery.invalid-export\", String(error), [\"Default-export defineEval()/defineScoreEval() output, an array of those outputs, or a keyed record of those outputs.\"])));\n}\nfunction decodeExperimentModule(value: unknown, file: string): Effect.Effect<ExperimentModule, DiscoveryError> {\n return Schema.decodeUnknownEffect(Schema.toType(ExperimentModuleSchema), { errors: \"all\" })(value).pipe(Effect.mapError((error) => issue(file, \"discovery.invalid-export\", String(error), [\"Default-export defineExperiment({...}) instead of a plain object.\"])));\n}\nfunction decodeEvalGroupModule(value: unknown, file: string): Effect.Effect<EvalGroupModule, DiscoveryError> {\n return Schema.decodeUnknownEffect(Schema.toType(EvalGroupModuleSchema), { errors: \"all\" })(value).pipe(Effect.mapError((error) => issue(file, \"discovery.invalid-export\", String(error), [\n \"Default-export defineEvalGroup({ evals: [definition, ...] }).\",\n ])));\n}\nfunction collectAll<A, B>(values: readonly A[], f: (value: A) => Effect.Effect<B, DiscoveryError>): Effect.Effect<readonly B[], DiscoveryError> {\n return Effect.partition(values, f, { concurrency: 1 }).pipe(Effect.flatMap(([errors, groups]) => errors.length > 0\n ? Effect.fail(discoveryError(errors.flatMap((error) => error.issues)))\n : Effect.succeed(Object.freeze(groups))));\n}\nfunction walkFiles(dir: string, root: string, match: (name: string) => boolean): Effect.Effect<readonly string[], DiscoveryError> {\n const readDirectory = (current: string, allowAbsent: boolean) => Effect.tryPromise({\n try: async () => {\n try {\n return await readdir(current, { withFileTypes: true });\n }\n catch (cause) {\n if (allowAbsent && isMissingPath(cause))\n return undefined;\n throw cause;\n }\n },\n catch: (cause) => issue(relative(root, current) || \".\", \"discovery.filesystem\", causeMessage(cause), [\"Check that the discovery directory is readable.\"]),\n });\n const walk = (current: string, allowAbsent: boolean): Effect.Effect<readonly string[], DiscoveryError> => Effect.suspend(() => readDirectory(current, allowAbsent).pipe(Effect.flatMap((entries) => {\n if (entries === undefined)\n return Effect.succeed(Object.freeze([]));\n return Effect.forEach(entries, (entry) => {\n const full = join(current, entry.name);\n if (entry.isDirectory()) {\n return SKIP_DIRS.has(entry.name)\n ? Effect.succeed([])\n : walk(full, false);\n }\n return entry.isFile() && match(entry.name)\n ? Effect.succeed([full])\n : Effect.succeed([]);\n }, { concurrency: 1 }).pipe(Effect.map((groups) => Object.freeze(groups.flat())));\n })));\n return walk(dir, true).pipe(Effect.map((files) => Object.freeze([...files].sort())));\n}\nfunction isMissingPath(cause: unknown): boolean {\n return typeof cause === \"object\" && cause !== null && \"code\" in cause &&\n (cause as {\n readonly code?: unknown;\n }).code === \"ENOENT\";\n}\nfunction isFolderEntryName(name: string): boolean {\n return name === \"eval.ts\" || name === \"eval.tsx\";\n}\nfunction isFileEntryName(name: string): boolean {\n return name.endsWith(\".eval.ts\") || name.endsWith(\".eval.tsx\");\n}\nfunction collectEvalEntries(evalsDir: string, root: string): Effect.Effect<readonly EvalEntry[], DiscoveryError> {\n return walkFiles(evalsDir, root, (name) => isFileEntryName(name) || isFolderEntryName(name)).pipe(Effect.flatMap((files) => {\n const entries = files.map((file): EvalEntry => {\n const name = basename(file);\n if (isFolderEntryName(name)) {\n const relDir = relative(evalsDir, dirname(file)).split(sep).join(\"/\");\n return {\n file,\n baseId: folderEntryBaseId(relDir === \"\" ? \".\" : relDir),\n kind: \"folder\",\n };\n }\n return {\n file,\n baseId: relative(evalsDir, file).replace(/\\.eval\\.tsx?$/, \"\").split(sep).join(\"/\"),\n kind: \"file\",\n };\n });\n const byId = new Map<string, EvalEntry[]>();\n for (const entry of entries)\n byId.set(entry.baseId, [...(byId.get(entry.baseId) ?? []), entry]);\n const duplicates = [...byId.entries()].flatMap(([id, owners]) => owners.length < 2 ? [] : [{\n file: owners.map((owner) => relative(root, owner.file).split(sep).join(\"/\")).join(\", \"),\n code: \"discovery.duplicate-id\" as const,\n message: `Duplicate eval id ${JSON.stringify(id)}: multiple entries map to the same id.`,\n actions: Object.freeze([\"Keep either the file entry or the folder entry for this id.\"]),\n }]);\n return duplicates.length > 0\n ? Effect.fail(discoveryError(duplicates))\n : Effect.succeed(Object.freeze(entries));\n }));\n}\nfunction validDatasetKey(key: string): boolean {\n return key.length > 0 && key !== \".\" && key !== \"..\" && !key.includes(\"/\") && !key.includes(\"\\\\\") &&\n !/[\\u0000-\\u001f\\u007f]/.test(key);\n}\nfunction isEvalDefinitionArray(exported: EvalModuleExport): exported is readonly AnyEvalDefinition[] {\n return Array.isArray(exported);\n}\nfunction expandEvalExport(exported: EvalModuleExport, entry: EvalEntry, root: string): Effect.Effect<readonly {\n readonly id: string;\n readonly definition: AnyEvalDefinition;\n}[], DiscoveryError> {\n if (isEvalDefinition(exported)) {\n return Effect.succeed(Object.freeze([{ id: entry.baseId, definition: exported }]));\n }\n if (isEvalDefinitionArray(exported)) {\n return Effect.succeed(Object.freeze(exported.map((definition, index) => ({\n id: `${entry.baseId}/${pad4(index)}`,\n definition,\n }))));\n }\n // `Array.isArray` does not narrow readonly arrays; the array branch above has already returned.\n const dataset = exported;\n const invalidKeys = Object.keys(dataset).filter((key) => !validDatasetKey(key));\n if (invalidKeys.length > 0) {\n return Effect.fail(discoveryError(invalidKeys.map((key) => ({\n file: relative(root, entry.file),\n code: \"discovery.invalid-dataset-key\" as const,\n message: `Invalid keyed eval dataset key ${JSON.stringify(key)}.`,\n actions: Object.freeze([\"Use a non-empty path segment without slash, backslash, dot segments, or control characters.\"]),\n }))));\n }\n return Effect.succeed(Object.freeze(Object.keys(dataset).sort().map((key) => ({\n id: `${entry.baseId}/${key}`,\n definition: dataset[key]!,\n }))));\n}\nfunction leakGateHintsForLayer(layer: SandboxLayer | undefined, baseDir: string, file: string): Effect.Effect<Option.Option<LeakGateHints>, DiscoveryError> {\n if (layer === undefined)\n return Effect.succeed(Option.none());\n const state = sandboxLayerStateOf(layer);\n if (!(\"template\" in state))\n return Effect.succeed(Option.none());\n const leakGate = state.template.leakGate;\n if (leakGate._tag === \"None\")\n return Effect.succeed(Option.none());\n if (leakGate._tag === \"Dockerfile\") {\n const contextDir = leakGate.context._tag === \"Url\"\n ? fileURLToPath(leakGate.context.value)\n : resolve(baseDir, leakGate.context.value);\n return Effect.succeed(Option.some({ buildContexts: [{ contextDir, label: \"dockerfile\" }] }));\n }\n const composeFile = leakGate.file._tag === \"Url\" ? new URL(leakGate.file.value) : leakGate.file.value;\n return Effect.tryPromise({\n try: () => __niceevalDynamicImport(\"../sandbox/compose.cjs\"),\n catch: (cause) => issue(file, \"discovery.leak-gate-failed\", causeMessage(cause), [\"Fix the Docker Compose declaration used by this eval SandboxLayer.\"]),\n }).pipe(Effect.flatMap(({ leakGateHintsFromComposeFile }) => leakGateHintsFromComposeFile(composeFile, {\n mainService: leakGate.workspaceService,\n baseDir,\n }).pipe(Effect.mapError((cause) => issue(file, \"discovery.leak-gate-failed\", causeMessage(cause), [\"Fix the Docker Compose declaration used by this eval SandboxLayer.\"])))), Effect.map(({ hints }) => Option.some(hints)));\n}\nfunction runLeakGate(definition: AnyEvalDefinition, input: {\n readonly evalId: string;\n readonly file: string;\n readonly baseDir: string;\n readonly criteriaPaths: readonly string[];\n readonly privatePaths: readonly string[];\n}): Effect.Effect<void, DiscoveryError> {\n const hidden: readonly HiddenInput[] = Object.freeze([\n ...input.criteriaPaths.map((path) => ({ path, kind: \"verifier\" as const })),\n ...input.privatePaths.map((path) => ({ path, kind: \"private\" as const })),\n ]);\n if (hidden.length === 0)\n return Effect.void;\n return leakGateHintsForLayer(definition.sandbox, input.baseDir, input.file).pipe(Effect.flatMap(Option.match({\n onNone: () => Effect.void,\n onSome: (hints) => assertNoHiddenInputLeaks({\n hidden,\n buildContexts: hints.buildContexts,\n bindMounts: hints.bindMounts,\n evalId: input.evalId,\n }).pipe(Effect.mapError((cause) => issue(input.file, \"discovery.leak-gate-failed\", causeMessage(cause), [\"Remove hidden verifier/private inputs from the sandbox build context or bind mounts.\"]))),\n })));\n}\ninterface DiscoveredEvalEntry {\n readonly sourcePath: string;\n readonly evals: readonly DiscoveredEval[];\n readonly origins: readonly LoaderCaptureOrigin[];\n readonly unattributed: LoaderCapturePaths;\n}\nfunction discoverEvalEntry(entry: EvalEntry, root: string, load: DiscoveryModuleLoader = cachedModuleLoader): Effect.Effect<DiscoveredEvalEntry, DiscoveryError> {\n const fileLabel = relative(root, entry.file).split(sep).join(\"/\");\n return Effect.gen(function* () {\n const captured = yield* Effect.tryPromise({\n try: () => captureLoadedFiles(() => load(entry.file)),\n catch: (cause) => issue(fileLabel, \"discovery.import-failed\", causeMessage(cause), [\"Fix module loading and loader declarations.\"], cause),\n });\n const module = yield* decodeEvalModule(captured.value, fileLabel);\n const expanded = yield* expandEvalExport(module.default, entry, root);\n const source = yield* Effect.tryPromise({\n try: () => captureEvalSource(entry.file, { root }),\n catch: (cause) => issue(fileLabel, \"discovery.source-capture-failed\", causeMessage(cause), [\"Make the eval source file readable.\"]),\n });\n const loaderDataPaths = Object.freeze([...captured.paths]);\n const criteriaPaths = Object.freeze([...captured.criteriaPaths]);\n const privatePaths = Object.freeze([...captured.privatePaths]);\n const baseDir = dirname(entry.file);\n return Object.freeze({\n sourcePath: entry.file,\n evals: Object.freeze(expanded.map(({ id, definition }) => discoverEval(definition, {\n id,\n baseDir,\n sourcePath: entry.file,\n source,\n loaderDataPaths,\n criteriaPaths,\n privatePaths,\n definition,\n }))),\n origins: captured.origins,\n unattributed: captured.unattributed,\n });\n });\n}\ninterface LoaderPathBuckets {\n readonly data: Set<string>;\n readonly criteria: Set<string>;\n readonly private: Set<string>;\n}\nfunction emptyLoaderPathBuckets(): LoaderPathBuckets {\n return { data: new Set<string>(), criteria: new Set<string>(), private: new Set<string>() };\n}\nfunction addLoaderPaths(target: LoaderPathBuckets, source: LoaderCapturePaths): void {\n source.paths.forEach((path) => target.data.add(path));\n source.criteriaPaths.forEach((path) => target.criteria.add(path));\n source.privatePaths.forEach((path) => target.private.add(path));\n}\nfunction directLoaderPaths(evalDef: DiscoveredEval): LoaderCaptureOrigin {\n return {\n sourcePath: evalDef.sourcePath,\n paths: evalDef.loaderDataPaths,\n criteriaPaths: evalDef.criteriaPaths,\n privatePaths: evalDef.privatePaths,\n };\n}\nfunction withLoaderProvenance(evalDef: DiscoveredEval, paths: LoaderPathBuckets): DiscoveredEval {\n return discoverEval(evalDef.definition, {\n id: evalDef.id,\n baseDir: evalDef.baseDir,\n sourcePath: evalDef.sourcePath,\n source: evalDef.source,\n loaderDataPaths: Object.freeze([...paths.data].sort()),\n criteriaPaths: Object.freeze([...paths.criteria].sort()),\n privatePaths: Object.freeze([...paths.private].sort()),\n definition: evalDef.definition,\n });\n}\n/**\n * A namespaced fresh graph evaluates a shared helper just once. Attribute the\n * helper's loader registrations to every entry whose static closure contains\n * that helper, so later entries retain the same data/criteria/private surface\n * without evaluating the module again.\n */\nfunction propagateLoaderProvenance(entries: readonly DiscoveredEvalEntry[], root: string): Effect.Effect<readonly DiscoveredEval[], DiscoveryError> {\n return Effect.tryPromise({\n try: async () => {\n const originPaths = new Map<string, LoaderPathBuckets>();\n const conservative = emptyLoaderPathBuckets();\n for (const entry of entries) {\n addLoaderPaths(conservative, entry.unattributed);\n for (const origin of entry.origins) {\n const buckets = originPaths.get(resolve(origin.sourcePath)) ?? emptyLoaderPathBuckets();\n originPaths.set(resolve(origin.sourcePath), buckets);\n addLoaderPaths(buckets, origin);\n }\n }\n const evals: DiscoveredEval[] = [];\n for (const entry of entries) {\n const buckets = emptyLoaderPathBuckets();\n // A host may omit user frames from Error.stack. Conservative union is\n // deliberate: extra invalidation/leak checks are safe; lost provenance\n // is not.\n addLoaderPaths(buckets, {\n paths: [...conservative.data],\n criteriaPaths: [...conservative.criteria],\n privatePaths: [...conservative.private],\n });\n // Keep the old direct capture as a conservative fallback when a host\n // omits call-site frames from Error.stack.\n for (const evalDef of entry.evals)\n addLoaderPaths(buckets, directLoaderPaths(evalDef));\n const closure = await captureSourceClosure(entry.sourcePath, { root });\n const modules = new Set(closure.map(([path]) => resolve(root, path)));\n for (const [modulePath, registered] of originPaths) {\n if (modules.has(modulePath))\n addLoaderPaths(buckets, {\n paths: [...registered.data],\n criteriaPaths: [...registered.criteria],\n privatePaths: [...registered.private],\n });\n }\n evals.push(...entry.evals.map((evalDef) => withLoaderProvenance(evalDef, buckets)));\n }\n return Object.freeze(evals);\n },\n catch: (cause) => issue(relative(root, join(root, \"evals\")) || \"evals\", \"discovery.source-capture-failed\", causeMessage(cause), [\"Make every Eval entry and its static project-local imports readable.\"]),\n });\n}\nfunction matchingArrayClose(source: string, start: number): number | undefined {\n let depth = 0;\n let quote: \"'\" | '\"' | \"`\" | undefined;\n let escaped = false;\n let lineComment = false;\n let blockComment = false;\n for (let index = start; index < source.length; index++) {\n const char = source[index]!;\n const next = source[index + 1];\n if (lineComment) {\n if (char === \"\\n\")\n lineComment = false;\n continue;\n }\n if (blockComment) {\n if (char === \"*\" && next === \"/\") {\n blockComment = false;\n index++;\n }\n continue;\n }\n if (quote !== undefined) {\n if (!escaped && char === quote)\n quote = undefined;\n escaped = !escaped && char === \"\\\\\";\n continue;\n }\n if (char === \"/\" && next === \"/\") {\n lineComment = true;\n index++;\n continue;\n }\n if (char === \"/\" && next === \"*\") {\n blockComment = true;\n index++;\n continue;\n }\n if (char === \"'\" || char === '\"' || char === \"`\") {\n quote = char;\n escaped = false;\n continue;\n }\n if (char === \"[\")\n depth++;\n if (char === \"]\") {\n depth--;\n if (depth === 0)\n return index;\n }\n }\n return undefined;\n}\nfunction splitArrayElements(source: string): readonly string[] | undefined {\n const parts: string[] = [];\n let start = 0;\n let depth = 0;\n let quote: \"'\" | '\"' | \"`\" | undefined;\n let escaped = false;\n let lineComment = false;\n let blockComment = false;\n for (let index = 0; index < source.length; index++) {\n const char = source[index]!;\n const next = source[index + 1];\n if (lineComment) {\n if (char === \"\\n\")\n lineComment = false;\n continue;\n }\n if (blockComment) {\n if (char === \"*\" && next === \"/\") {\n blockComment = false;\n index++;\n }\n continue;\n }\n if (quote !== undefined) {\n if (!escaped && char === quote)\n quote = undefined;\n escaped = !escaped && char === \"\\\\\";\n continue;\n }\n if (char === \"/\" && next === \"/\") {\n lineComment = true;\n index++;\n continue;\n }\n if (char === \"/\" && next === \"*\") {\n blockComment = true;\n index++;\n continue;\n }\n if (char === \"'\" || char === '\"' || char === \"`\") {\n quote = char;\n escaped = false;\n continue;\n }\n if (char === \"(\" || char === \"{\" || char === \"[\")\n depth++;\n if (char === \")\" || char === \"}\" || char === \"]\")\n depth--;\n if (char === \",\" && depth === 0) {\n const part = source.slice(start, index).trim();\n if (part === \"\")\n return undefined;\n parts.push(part);\n start = index + 1;\n }\n }\n const last = source.slice(start).trim();\n if (last !== \"\")\n parts.push(last);\n return parts;\n}\n/**\n * `evals` is a closed set. Normalize only inline array spelling in the Group\n * entry before its source participates in the definition hash; all other\n * source remains byte-sensitive, including opaque commands and hooks.\n */\nfunction normalizeEvalGroupSource(content: string): string {\n let output = \"\";\n let cursor = 0;\n const property = /\\bevals\\s*:\\s*\\[/g;\n for (let found = property.exec(content); found !== null; found = property.exec(content)) {\n const bracket = found.index + found[0].lastIndexOf(\"[\");\n const close = matchingArrayClose(content, bracket);\n if (close === undefined)\n return content;\n const elements = splitArrayElements(content.slice(bracket + 1, close));\n if (elements === undefined)\n return content;\n output += content.slice(cursor, bracket + 1);\n output += elements.toSorted((left, right) => left.localeCompare(right)).join(\",\");\n cursor = close;\n property.lastIndex = close + 1;\n }\n return output === \"\" ? content : output + content.slice(cursor);\n}\n/** Discovery remains in Effect through selection/planning; an adapter host closes it. */\nexport function discoverEvals(root: string, options: {\n freshImport?: boolean;\n} = {}): Effect.Effect<readonly DiscoveredEval[], DiscoveryError> {\n const dir = join(root, \"evals\");\n const discoverWith = (load: DiscoveryModuleLoader): Effect.Effect<readonly DiscoveredEval[], DiscoveryError> => Effect.gen(function* () {\n const entries = yield* collectEvalEntries(dir, root);\n const discoveredEntries = yield* collectAll(entries, (entry) => discoverEvalEntry(entry, root, load));\n const evals = yield* propagateLoaderProvenance(discoveredEntries, root);\n const [leakErrors] = yield* Effect.partition(evals, (evalDef) => runLeakGate(evalDef.definition, {\n evalId: evalDef.id,\n file: relative(root, evalDef.sourcePath).split(sep).join(\"/\"),\n baseDir: evalDef.baseDir,\n criteriaPaths: evalDef.criteriaPaths,\n privatePaths: evalDef.privatePaths,\n }), { concurrency: 1 });\n if (leakErrors.length > 0)\n return yield* Effect.fail(discoveryError(leakErrors.flatMap((error) => error.issues)));\n const files = yield* walkFiles(dir, root, (name) => name === \"eval-group.ts\");\n const groupEntries = files.map((file) => {\n const id = relative(dir, dirname(file)).split(sep).join(\"/\");\n return { file, id };\n });\n const groupIdIssues: DiscoveryIssue[] = [];\n const groupsById = new Map<string, typeof groupEntries>();\n for (const entry of groupEntries)\n groupsById.set(entry.id, [...(groupsById.get(entry.id) ?? []), entry]);\n for (const [id, owners] of groupsById) {\n if (id.length === 0) {\n groupIdIssues.push({ file: owners.map((owner) => relative(root, owner.file).split(sep).join(\"/\")).join(\", \"), code: \"discovery.invalid-export\", message: \"Eval Group id must not be empty.\", actions: [\"Put eval-group.ts in a named subdirectory under evals/.\"] });\n }\n else if (owners.length > 1) {\n groupIdIssues.push({ file: owners.map((owner) => relative(root, owner.file).split(sep).join(\"/\")).join(\", \"), code: \"discovery.duplicate-id\", message: `Duplicate eval group id ${JSON.stringify(id)}: multiple entries map to the same id.`, actions: [\"Keep one eval-group.ts for this group path.\"] });\n }\n }\n if (groupIdIssues.length > 0)\n return yield* Effect.fail(discoveryError(groupIdIssues));\n const claimed = new Map<AnyEvalDefinition, string>();\n const annotated = new Map<AnyEvalDefinition, DiscoveredEval>();\n const issues: DiscoveryIssue[] = [];\n const memberSourcePaths = new Set(evals.map((item) => item.sourcePath));\n for (const { file, id } of groupEntries) {\n const label = relative(root, file).split(sep).join(\"/\");\n const imported = yield* importModule(file, root, \"eval\", load);\n const module = yield* decodeEvalGroupModule(imported, label);\n const resolved = module.default.evals.map((definition) => evals.filter((item) => item.definition === definition));\n // `evals` is a closed set, not an author-defined business sequence. The\n // scheduler and fingerprint use the normalized Eval ID order everywhere.\n const evalIds = resolved.flatMap((matches) => matches.map((item) => item.id)).toSorted();\n const evaluationKinds = splitByEvaluationKind(resolved.flatMap((matches) => matches.length === 1 ? matches : []));\n if (evaluationKinds.pass.length > 0 && evaluationKinds.score.length > 0) {\n issues.push({\n file: label,\n code: \"eval-group-evaluation-kind-mixed\",\n message: `Eval Group ${JSON.stringify(id)} contains both pass and score Evals. ` +\n `pass (${evaluationKinds.pass.length}): ${evaluationKinds.pass.join(\", \")}; ` +\n `score (${evaluationKinds.score.length}): ${evaluationKinds.score.join(\", \")}.`,\n actions: [\"Split the Eval Group into one pass Group and one score Group.\"],\n });\n }\n const groupSources = yield* Effect.tryPromise({\n try: async () => (await captureSourceClosure(file, { root, stopPaths: memberSourcePaths })).map(([path, content]) => [\n path,\n path === label ? normalizeEvalGroupSource(content) : content,\n ] as const),\n catch: (cause) => issue(label, \"discovery.source-capture-failed\", causeMessage(cause), [\"Make the Eval Group entry and its project-local helper modules readable.\"]),\n });\n const definitionHash = digestOf({\n // Group declaration order is deliberately not an input. The group file\n // may reorder its closed `evals` set without changing behavior. Other\n // Group source stays in the hash, so opaque command/hook behavior and\n // helper code still invalidate fingerprints when it changes.\n version: 5,\n id,\n evalIds,\n layer: sandboxLayerDefinitionIdentity(module.default.sandbox),\n onUnavailable: module.default.onUnavailable,\n sources: groupSources.map(([path, content]) => ({ path, content })),\n });\n module.default.evals.forEach((definition, index) => {\n const matches = resolved[index]!;\n if (matches.length !== 1) {\n issues.push({ file: label, code: \"eval-group-member-unresolved\", message: `Eval Group ${JSON.stringify(id)} member ${index} resolves to ${matches.length} discovered Evals.`, actions: [\"Import the exact default definition object from an eval entry.\"] });\n return;\n }\n const member = matches[0]!;\n const prior = claimed.get(definition);\n if (prior !== undefined) {\n issues.push({ file: label, code: \"eval-group-member-overlap\", message: `Eval ${JSON.stringify(member.id)} in Eval Group ${JSON.stringify(id)} is already claimed by Eval Group ${JSON.stringify(prior)}.`, actions: [\"List each Eval exactly once in one group.\"] });\n return;\n }\n const state = member.sandbox === undefined ? undefined : sandboxLayerStateOf(member.sandbox);\n if (state?.kind === \"template-bearing\" || (state?.setupHooks.length ?? 0) > 0 || (state?.teardownHooks.length ?? 0) > 0) {\n issues.push({ file: label, code: \"eval-group-member-layer\", message: `Eval ${JSON.stringify(member.id)} in Eval Group ${JSON.stringify(id)} owns a template or lifecycle hook.`, actions: [\"Move the template and lifecycle hooks to the Experiment or Eval Group; keep only prepare commands on the Eval.\"] });\n return;\n }\n claimed.set(definition, id);\n annotated.set(definition, discoverEval(definition, {\n ...member,\n evalGroup: Object.freeze({\n id,\n evalIds: Object.freeze(evalIds),\n definitionHash,\n sandbox: module.default.sandbox,\n onUnavailable: module.default.onUnavailable,\n plugins: Object.freeze([...(module.default.plugins ?? [])]),\n sourcePath: file,\n baseDir: dirname(file),\n }),\n }));\n });\n }\n if (issues.length > 0)\n return yield* Effect.fail(discoveryError(issues));\n return Object.freeze(evals.map((item) => annotated.get(item.definition) ?? item));\n });\n if (!options.freshImport)\n return discoverWith(cachedModuleLoader);\n return Effect.scoped(acquireFreshImportGeneration(root).pipe(Effect.flatMap((fresh) => discoverWith(fresh.import))));\n}\nfunction discoverExperimentFile(file: string, root: string, experimentsDir: string, load: DiscoveryModuleLoader = cachedModuleLoader): Effect.Effect<readonly DiscoveredExperiment[], DiscoveryError> {\n const fileLabel = relative(root, file).split(sep).join(\"/\");\n return Effect.gen(function* () {\n const imported = yield* importModule(file, root, \"experiment\", load);\n const module = yield* decodeExperimentModule(imported, fileLabel);\n if (module.default === undefined)\n return Object.freeze([]);\n const id = relative(experimentsDir, file)\n .replace(/\\.ts$/, \"\")\n .replace(/\\.experiment$/, \"\")\n .split(sep)\n .join(\"/\");\n return Object.freeze([discoverExperiment(module.default, {\n id,\n baseDir: dirname(file),\n sourcePath: file,\n })]);\n });\n}\n/** Discovery remains in Effect through selection/planning; an adapter host closes it. */\nexport function discoverExperiments(root: string, options: {\n freshImport?: boolean;\n} = {}): Effect.Effect<readonly DiscoveredExperiment[], DiscoveryError> {\n const dir = join(root, \"experiments\");\n const discoverWith = (load: DiscoveryModuleLoader): Effect.Effect<readonly DiscoveredExperiment[], DiscoveryError> => walkFiles(dir, root, (name) => name.endsWith(\".ts\") && !name.endsWith(\".d.ts\")).pipe(Effect.flatMap((files) => Effect.partition(files, (file) => discoverExperimentFile(file, root, dir, load), { concurrency: 1 })), Effect.flatMap(([errors, groups]) => errors.length > 0\n ? Effect.fail(discoveryError(errors.flatMap((error) => error.issues)))\n : Effect.succeed(Object.freeze(groups.flat()))));\n if (!options.freshImport)\n return discoverWith(cachedModuleLoader);\n return Effect.scoped(acquireFreshImportGeneration(root).pipe(Effect.flatMap((fresh) => discoverWith(fresh.import))));\n}\n/** eval id 的裸字面前缀过滤;exp 与固定读取面共用 shared helper。 */\nexport function makeFilter(patterns: string[]): (id: string) => boolean {\n return evalPrefixPredicate(patterns.length > 0 ? patterns : undefined);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["discover.ts"],"names":[],"mappings":";;;AA6hBA,sCAyHC;AA0BD,kDAaC;AAED,gCAEC;AAzrBD,+CAA2C;AAC3C,yCAA4E;AAC5E,uCAAyC;AACzC,mCAAsD;AACtD,wCAAkC;AAClC,qDAAyI;AACzI,yDAA6D;AAC7D,kDAA6G;AAC7G,wDAAmH;AACnH,kDAA6E;AAC7E,gDAAoE;AACpE,0CAAiI;AAEjI,wDAAkD;AAClD,2DAA2D;AAC3D,2DAA4D;AAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAUlF,6FAA6F;AAC7F,MAAa,cAAe,SAAQ,aAAI,CAAC,WAAW,CAAC,gBAAgB,CAGnE;CACD;AAJD,wCAIC;AAgBD,MAAM,oBAAoB,GAAG,eAAM,CAAC,OAAO,CAAC,2BAAgB,EAAE;IAC1D,UAAU,EAAE,gBAAgB;IAC5B,WAAW,EAAE,uDAAuD;CACvE,CAAC,CAAC;AACH,MAAM,gBAAgB,GAA8B,eAAM,CAAC,MAAM,CAAC;IAC9D,OAAO,EAAE,eAAM,CAAC,KAAK,CAAC;QAClB,eAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACnC,eAAM,CAAC,KAAK,CAAC,eAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACjD,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,MAAM,EAAE,eAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;KACpE,CAAC;CACL,CAAC,CAAC;AACH,MAAM,0BAA0B,GAAG,eAAM,CAAC,OAAO,CAAC,iCAAsB,EAAE;IACtE,UAAU,EAAE,sBAAsB;IAClC,WAAW,EAAE,wCAAwC;CACxD,CAAC,CAAC;AACH,MAAM,sBAAsB,GAAoC,eAAM,CAAC,MAAM,CAAC;IAC1E,OAAO,EAAE,eAAM,CAAC,QAAQ,CAAC,eAAM,CAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;CACtE,CAAC,CAAC;AACH,MAAM,qBAAqB,GAAmC,eAAM,CAAC,MAAM,CAAC;IACxE,OAAO,EAAE,eAAM,CAAC,MAAM,CAAC,eAAM,CAAC,OAAO,CAAC,gCAAqB,EAAE,EAAE,UAAU,EAAE,qBAAqB,EAAE,CAAC,CAAC;CACvG,CAAC,CAAC;AACH,SAAS,cAAc,CAAC,MAAiC;IACrD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACnE,GAAG,KAAK;QACR,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;KAC7C,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,IAAI,cAAc,CAAC;QACtB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,aAAa,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACpI,MAAM,EAAE,YAAY;KACvB,CAAC,CAAC;AACP,CAAC;AACD,SAAS,KAAK,CAAC,IAAY,EAAE,IAAwB,EAAE,OAAe,EAAE,OAA0B,EAAE,KAAe;IAC/G,OAAO,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzG,CAAC;AACD,SAAS,YAAY,CAAC,KAAc;IAChC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,kBAAkB,GAA0B,qCAAmB,CAAC;AACtE,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,IAA2B,EAAE,OAA8B,kBAAkB;IAC3H,OAAO,eAAM,CAAC,UAAU,CAAC;QACrB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACrB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE,yBAAyB,EAAE,aAAa,IAAI,8BAA8B,YAAY,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,wCAAwC,IAAI,QAAQ,EAAE,uCAAuC,CAAC,EAAE,KAAK,CAAC;KACzP,CAAC,CAAC;AACP,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAc,EAAE,IAAY;IAClD,OAAO,eAAM,CAAC,mBAAmB,CAAC,eAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,0BAA0B,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,sHAAsH,CAAC,CAAC,CAAC,CAAC,CAAC;AACpT,CAAC;AACD,SAAS,sBAAsB,CAAC,KAAc,EAAE,IAAY;IACxD,OAAO,eAAM,CAAC,mBAAmB,CAAC,eAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,0BAA0B,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,mEAAmE,CAAC,CAAC,CAAC,CAAC,CAAC;AACvQ,CAAC;AACD,SAAS,qBAAqB,CAAC,KAAc,EAAE,IAAY;IACvD,OAAO,eAAM,CAAC,mBAAmB,CAAC,eAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,0BAA0B,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;QACrL,+DAA+D;KAClE,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,SAAS,UAAU,CAAO,MAAoB,EAAE,CAAiD;IAC7F,OAAO,eAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAC9G,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AACD,SAAS,SAAS,CAAC,GAAW,EAAE,IAAY,EAAE,KAAgC;IAC1E,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,WAAoB,EAAE,EAAE,CAAC,eAAM,CAAC,UAAU,CAAC;QAC/E,GAAG,EAAE,KAAK,IAAI,EAAE;YACZ,IAAI,CAAC;gBACD,OAAO,MAAM,IAAA,kBAAO,EAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,KAAK,EAAE,CAAC;gBACX,IAAI,WAAW,IAAI,aAAa,CAAC,KAAK,CAAC;oBACnC,OAAO,SAAS,CAAC;gBACrB,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAA,oBAAQ,EAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,EAAE,sBAAsB,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,iDAAiD,CAAC,CAAC;KAC5J,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,WAAoB,EAAoD,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC/L,IAAI,OAAO,KAAK,SAAS;YACrB,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO,eAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACtB,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC5B,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;gBACtC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACzF,CAAC;AACD,SAAS,aAAa,CAAC,KAAc;IACjC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK;QAChE,KAEC,CAAC,IAAI,KAAK,QAAQ,CAAC;AAC7B,CAAC;AACD,SAAS,iBAAiB,CAAC,IAAY;IACnC,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,CAAC;AACrD,CAAC;AACD,SAAS,eAAe,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACnE,CAAC;AACD,SAAS,kBAAkB,CAAC,QAAgB,EAAE,IAAY;IACtD,OAAO,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvH,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAa,EAAE;YAC1C,MAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,MAAM,GAAG,IAAA,oBAAQ,EAAC,QAAQ,EAAE,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtE,OAAO;oBACH,IAAI;oBACJ,MAAM,EAAE,IAAA,kCAAiB,EAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;oBACvD,IAAI,EAAE,QAAQ;iBACjB,CAAC;YACN,CAAC;YACD,OAAO;gBACH,IAAI;gBACJ,MAAM,EAAE,IAAA,oBAAQ,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAClF,IAAI,EAAE,MAAM;aACf,CAAC;QACN,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;QAC5C,KAAK,MAAM,KAAK,IAAI,OAAO;YACvB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACnF,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,oBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACvF,IAAI,EAAE,wBAAiC;gBACvC,OAAO,EAAE,qBAAqB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,wCAAwC;gBACxF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,6DAA6D,CAAC,CAAC;aAC1F,CAAC,CAAC,CAAC;QACR,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,eAAe,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC7F,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,CAAC;AACD,SAAS,qBAAqB,CAAC,QAA0B;IACrD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AACD,6CAA6C;AAC7C,mEAAmE;AACnE,SAAS,gBAAgB,CAAC,QAA0B,EAAE,KAAgB,EAAE,IAAY;IAIhF,IAAI,IAAA,2BAAgB,EAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACrE,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,IAAA,cAAI,EAAC,KAAK,CAAC,EAAE;YACpC,UAAU;SACb,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;IACD,gGAAgG;IAChG,MAAM,OAAO,GAAG,QAAQ,CAAC;IACzB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACxD,IAAI,EAAE,IAAA,oBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;YAChC,IAAI,EAAE,+BAAwC;YAC9C,OAAO,EAAE,kCAAkC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;YACjE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,6FAA6F,CAAC,CAAC;SAC1H,CAAC,CAAC,CAAC,CAAC,CAAC;IACV,CAAC;IACD,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC1E,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE;QAC5B,UAAU,EAAE,OAAO,CAAC,GAAG,CAAE;KAC5B,CAAC,CAAC,CAAC,CAAC,CAAC;AACV,CAAC;AACD,SAAS,qBAAqB,CAAC,KAA+B,EAAE,OAAe,EAAE,IAAY;IACzF,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,IAAA,8BAAmB,EAAC,KAAK,CAAC,CAAC;IACzC,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC;QACtB,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;IACzC,IAAI,QAAQ,CAAC,IAAI,KAAK,MAAM;QACxB,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,KAAK;YAC9C,CAAC,CAAC,IAAA,wBAAa,EAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;YACvC,CAAC,CAAC,IAAA,mBAAO,EAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;IACtG,OAAO,eAAM,CAAC,UAAU,CAAC;QACrB,GAAG,EAAE,GAAG,EAAE,CAAC,uBAAuB,CAAC,wBAAwB,CAAC;QAC5D,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,4BAA4B,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,oEAAoE,CAAC,CAAC;KAC3J,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,EAAE,4BAA4B,EAAE,EAAE,EAAE,CAAC,4BAA4B,CAAC,WAAW,EAAE;QACnG,WAAW,EAAE,QAAQ,CAAC,gBAAgB;QACtC,OAAO;KACV,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,4BAA4B,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,oEAAoE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,eAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACjO,CAAC;AACD,SAAS,WAAW,CAAC,UAA6B,EAAE,KAMnD;IACG,MAAM,MAAM,GAA2B,MAAM,CAAC,MAAM,CAAC;QACjD,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,UAAmB,EAAE,CAAC,CAAC;QAC3E,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,SAAkB,EAAE,CAAC,CAAC;KAC5E,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QACnB,OAAO,eAAM,CAAC,IAAI,CAAC;IACvB,OAAO,qBAAqB,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,eAAM,CAAC,KAAK,CAAC;QACzG,MAAM,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI;QACzB,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,yCAAwB,EAAC;YACxC,MAAM;YACN,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,4BAA4B,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,sFAAsF,CAAC,CAAC,CAAC,CAAC;KACtM,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AAOD,SAAS,iBAAiB,CAAC,KAAgB,EAAE,IAAY,EAAE,OAA8B,kBAAkB;IACvG,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClE,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;YACtC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,6BAAkB,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACrD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,yBAAyB,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,6CAA6C,CAAC,EAAE,KAAK,CAAC;SAC7I,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;YACpC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,kCAAiB,EAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC;YAClD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,iCAAiC,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,qCAAqC,CAAC,CAAC;SACtI,CAAC,CAAC;QACH,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,IAAA,mBAAO,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,UAAU,EAAE,KAAK,CAAC,IAAI;YACtB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,IAAA,uBAAY,EAAC,UAAU,EAAE;gBAC/E,EAAE;gBACF,OAAO;gBACP,UAAU,EAAE,KAAK,CAAC,IAAI;gBACtB,MAAM;gBACN,eAAe;gBACf,aAAa;gBACb,YAAY;gBACZ,UAAU;aACb,CAAC,CAAC,CAAC;YACJ,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,YAAY,EAAE,QAAQ,CAAC,YAAY;SACtC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AAMD,SAAS,sBAAsB;IAC3B,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,EAAU,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAU,EAAE,OAAO,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;AAChG,CAAC;AACD,SAAS,cAAc,CAAC,MAAyB,EAAE,MAA0B;IACzE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AACpE,CAAC;AACD,SAAS,iBAAiB,CAAC,OAAuB;IAC9C,OAAO;QACH,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,KAAK,EAAE,OAAO,CAAC,eAAe;QAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,YAAY,EAAE,OAAO,CAAC,YAAY;KACrC,CAAC;AACN,CAAC;AACD,SAAS,oBAAoB,CAAC,OAAuB,EAAE,KAAwB;IAC3E,OAAO,IAAA,uBAAY,EAAC,OAAO,CAAC,UAAU,EAAE;QACpC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QACtD,UAAU,EAAE,OAAO,CAAC,UAAU;KACjC,CAAC,CAAC;AACP,CAAC;AACD;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,OAAuC,EAAE,IAAY;IACpF,OAAO,eAAM,CAAC,UAAU,CAAC;QACrB,GAAG,EAAE,KAAK,IAAI,EAAE;YACZ,MAAM,WAAW,GAAG,IAAI,GAAG,EAA6B,CAAC;YACzD,MAAM,YAAY,GAAG,sBAAsB,EAAE,CAAC;YAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,cAAc,CAAC,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;gBACjD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACjC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,sBAAsB,EAAE,CAAC;oBACxF,WAAW,CAAC,GAAG,CAAC,IAAA,mBAAO,EAAC,MAAM,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;oBACrD,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACpC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,GAAqB,EAAE,CAAC;YACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,sBAAsB,EAAE,CAAC;gBACzC,sEAAsE;gBACtE,uEAAuE;gBACvE,UAAU;gBACV,cAAc,CAAC,OAAO,EAAE;oBACpB,KAAK,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC;oBAC7B,aAAa,EAAE,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC;oBACzC,YAAY,EAAE,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC;iBAC1C,CAAC,CAAC;gBACH,qEAAqE;gBACrE,2CAA2C;gBAC3C,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,KAAK;oBAC7B,cAAc,CAAC,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,MAAM,IAAA,wCAAoB,EAAC,KAAK,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAA,mBAAO,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;gBACtE,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,WAAW,EAAE,CAAC;oBACjD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;wBACvB,cAAc,CAAC,OAAO,EAAE;4BACpB,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC;4BAC3B,aAAa,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC;4BACvC,YAAY,EAAE,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC;yBACxC,CAAC,CAAC;gBACX,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;YACxF,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAA,gBAAI,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC,IAAI,OAAO,EAAE,iCAAiC,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,sEAAsE,CAAC,CAAC;KAC5M,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAAC,MAAc,EAAE,KAAa;IACrD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAkC,CAAC;IACvC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,IAAI,KAAK,IAAI;gBACb,WAAW,GAAG,KAAK,CAAC;YACxB,SAAS;QACb,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC/B,YAAY,GAAG,KAAK,CAAC;gBACrB,KAAK,EAAE,CAAC;YACZ,CAAC;YACD,SAAS;QACb,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,KAAK;gBAC1B,KAAK,GAAG,SAAS,CAAC;YACtB,OAAO,GAAG,CAAC,OAAO,IAAI,IAAI,KAAK,IAAI,CAAC;YACpC,SAAS;QACb,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,WAAW,GAAG,IAAI,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,SAAS;QACb,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,YAAY,GAAG,IAAI,CAAC;YACpB,KAAK,EAAE,CAAC;YACR,SAAS;QACb,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/C,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;QACb,CAAC;QACD,IAAI,IAAI,KAAK,GAAG;YACZ,KAAK,EAAE,CAAC;QACZ,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACf,KAAK,EAAE,CAAC;YACR,IAAI,KAAK,KAAK,CAAC;gBACX,OAAO,KAAK,CAAC;QACrB,CAAC;IACL,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AACD,SAAS,kBAAkB,CAAC,MAAc;IACtC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,KAAkC,CAAC;IACvC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,WAAW,EAAE,CAAC;YACd,IAAI,IAAI,KAAK,IAAI;gBACb,WAAW,GAAG,KAAK,CAAC;YACxB,SAAS;QACb,CAAC;QACD,IAAI,YAAY,EAAE,CAAC;YACf,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC/B,YAAY,GAAG,KAAK,CAAC;gBACrB,KAAK,EAAE,CAAC;YACZ,CAAC;YACD,SAAS;QACb,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,KAAK;gBAC1B,KAAK,GAAG,SAAS,CAAC;YACtB,OAAO,GAAG,CAAC,OAAO,IAAI,IAAI,KAAK,IAAI,CAAC;YACpC,SAAS;QACb,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,WAAW,GAAG,IAAI,CAAC;YACnB,KAAK,EAAE,CAAC;YACR,SAAS;QACb,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,YAAY,GAAG,IAAI,CAAC;YACpB,KAAK,EAAE,CAAC;YACR,SAAS;QACb,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/C,KAAK,GAAG,IAAI,CAAC;YACb,OAAO,GAAG,KAAK,CAAC;YAChB,SAAS;QACb,CAAC;QACD,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAC5C,KAAK,EAAE,CAAC;QACZ,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;YAC5C,KAAK,EAAE,CAAC;QACZ,IAAI,IAAI,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,IAAI,KAAK,EAAE;gBACX,OAAO,SAAS,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,IAAI,IAAI,KAAK,EAAE;QACX,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,KAAK,CAAC;AACjB,CAAC;AACD;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,OAAe;IAC7C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,QAAQ,GAAG,mBAAmB,CAAC;IACrC,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,KAAK,IAAI,EAAE,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACtF,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACnD,IAAI,KAAK,KAAK,SAAS;YACnB,OAAO,OAAO,CAAC;QACnB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QACvE,IAAI,QAAQ,KAAK,SAAS;YACtB,OAAO,OAAO,CAAC;QACnB,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QAC7C,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClF,MAAM,GAAG,KAAK,CAAC;QACf,QAAQ,CAAC,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACpE,CAAC;AACD,yFAAyF;AACzF,yCAAyC;AACzC,+DAA+D;AAC/D,0DAA0D;AAC1D,SAAgB,aAAa,CAAC,IAAY,EAAE,UAGxC,EAAE;IACF,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,YAAY,GAAG,CAAC,IAA2B,EAA4D,EAAE,CAAC,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAChI,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrD,MAAM,iBAAiB,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtG,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,yBAAyB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE;YAC7F,MAAM,EAAE,OAAO,CAAC,EAAE;YAClB,IAAI,EAAE,IAAA,oBAAQ,EAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAC7D,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,OAAO,CAAC,YAAY;SACrC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YACrB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC3F,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAC9E,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACpC,MAAM,EAAE,GAAG,IAAA,oBAAQ,EAAC,GAAG,EAAE,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7D,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,MAAM,aAAa,GAAqB,EAAE,CAAC;QAC3C,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;QAC1D,KAAK,MAAM,KAAK,IAAI,YAAY;YAC5B,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3E,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;YACpC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClB,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,oBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,0BAA0B,EAAE,OAAO,EAAE,kCAAkC,EAAE,OAAO,EAAE,CAAC,yDAAyD,CAAC,EAAE,CAAC,CAAC;YACzQ,CAAC;iBACI,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,oBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,2BAA2B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,wCAAwC,EAAE,OAAO,EAAE,CAAC,6CAA6C,CAAC,EAAE,CAAC,CAAC;YAC9S,CAAC;QACL,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;YACxB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;QACrD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqC,CAAC;QAC/D,MAAM,MAAM,GAAqB,EAAE,CAAC;QACpC,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QACxE,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,YAAY,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC;YAClH,wEAAwE;YACxE,yEAAyE;YACzE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;YACzF,MAAM,eAAe,GAAG,IAAA,yCAAqB,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClH,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtE,MAAM,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,kCAAkC;oBACxC,OAAO,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,uCAAuC;wBAC5E,SAAS,eAAe,CAAC,IAAI,CAAC,MAAM,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;wBAC7E,UAAU,eAAe,CAAC,KAAK,CAAC,MAAM,MAAM,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;oBACnF,OAAO,EAAE,CAAC,+DAA+D,CAAC;iBAC7E,CAAC,CAAC;YACP,CAAC;YACD,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,eAAM,CAAC,UAAU,CAAC;gBAC1C,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,IAAA,wCAAoB,EAAC,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;oBACjH,IAAI;oBACJ,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;iBACtD,CAAC;gBACX,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,iCAAiC,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,0EAA0E,CAAC,CAAC;aACvK,CAAC,CAAC;YACH,MAAM,cAAc,GAAG,IAAA,sBAAQ,EAAC;gBAC5B,uEAAuE;gBACvE,sEAAsE;gBACtE,sEAAsE;gBACtE,6DAA6D;gBAC7D,OAAO,EAAE,CAAC;gBACV,EAAE;gBACF,OAAO;gBACP,KAAK,EAAE,IAAA,wCAA8B,EAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC7D,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa;gBAC3C,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;aACtE,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;gBAC/C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,EAAE,OAAO,EAAE,cAAc,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,KAAK,gBAAgB,OAAO,CAAC,MAAM,oBAAoB,EAAE,OAAO,EAAE,CAAC,gEAAgE,CAAC,EAAE,CAAC,CAAC;oBAC7P,OAAO;gBACX,CAAC;gBACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;gBAC3B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,2BAA2B,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,qCAAqC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,2CAA2C,CAAC,EAAE,CAAC,CAAC;oBACrQ,OAAO;gBACX,CAAC;gBACD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,8BAAmB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7F,IAAI,KAAK,EAAE,IAAI,KAAK,kBAAkB,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtH,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,qCAAqC,EAAE,OAAO,EAAE,CAAC,gHAAgH,CAAC,EAAE,CAAC,CAAC;oBAChT,OAAO;gBACX,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAC5B,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAA,uBAAY,EAAC,UAAU,EAAE;oBAC/C,GAAG,MAAM;oBACT,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC;wBACrB,EAAE;wBACF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;wBAC/B,cAAc;wBACd,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;wBAC/B,aAAa,EAAE,MAAM,CAAC,OAAO,CAAC,aAAa;wBAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;wBAC3D,UAAU,EAAE,IAAI;wBAChB,OAAO,EAAE,IAAA,mBAAO,EAAC,IAAI,CAAC;qBACzB,CAAC;iBACL,CAAC,CAAC,CAAC;YACR,CAAC,CAAC,CAAC;QACP,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YACjB,OAAO,KAAK,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAChC,OAAO,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,CAAC,WAAW;QACpB,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC5C,OAAO,eAAM,CAAC,MAAM,CAAC,IAAA,8CAA4B,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzH,CAAC;AACD,mDAAmD;AACnD,0DAA0D;AAC1D,SAAS,sBAAsB,CAAC,IAAY,EAAE,IAAY,EAAE,cAAsB,EAAE,OAA8B,kBAAkB;IAChI,MAAM,SAAS,GAAG,IAAA,oBAAQ,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAClE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;YAC5B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAA,oBAAQ,EAAC,cAAc,EAAE,IAAI,CAAC;aACpC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;aACpB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,KAAK,CAAC,eAAG,CAAC;aACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAA,6BAAkB,EAAC,MAAM,CAAC,OAAO,EAAE;gBACjD,EAAE;gBACF,OAAO,EAAE,IAAA,mBAAO,EAAC,IAAI,CAAC;gBACtB,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;AACP,CAAC;AACD,yFAAyF;AACzF,+CAA+C;AAC/C,yDAAyD;AACzD,0DAA0D;AAC1D,SAAgB,mBAAmB,CAAC,IAAY,EAAE,UAG9C,EAAE;IACF,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACtC,MAAM,YAAY,GAAG,CAAC,IAA2B,EAAkE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAM,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,eAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAC9X,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACtE,CAAC,CAAC,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;QAChC,OAAO,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,CAAC,WAAW;QACpB,OAAO,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC5C,OAAO,eAAM,CAAC,MAAM,CAAC,IAAA,8CAA4B,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACzH,CAAC;AACD,mDAAmD;AACnD,SAAgB,UAAU,CAAC,QAAkB;IACzC,OAAO,IAAA,kCAAmB,EAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC3E,CAAC","sourcesContent":["// @concord-file ne-runner-discovery\n// @concord-implements docs/feature/experiments/architecture.md\n// @concord-implements docs/feature/eval-groups/architecture.md\n// @concord-implements docs/feature/eval-groups/library.md\n// @concord-implements docs/feature/eval/use-case/dataset-fanout.md\n// Discovery is the only boundary where executable modules enter the typed runner.\n// Dynamic imports are decoded immediately; every later stage receives branded, immutable definitions.\nimport { existsSync } from \"node:fs\";\nimport { readdir } from \"node:fs/promises\";\nimport { basename, dirname, join, relative, resolve, sep } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { Data, Effect, Option, Schema } from \"effect\";\nimport { pad4 } from \"../util.ts\";\nimport { assertNoHiddenInputLeaks, captureEvalSource, folderEntryBaseId, type HiddenInput, type LeakGateHints, } from \"./eval-source.ts\";\nimport { evalPrefixPredicate } from \"../shared/aggregate.ts\";\nimport { captureLoadedFiles, type LoaderCaptureOrigin, type LoaderCapturePaths, } from \"../loaders/index.ts\";\nimport { acquireFreshImportGeneration, importProjectModule, type FreshImportGeneration } from \"../fresh-import.ts\";\nimport { sandboxLayerStateOf, type SandboxLayer } from \"../sandbox/layer.ts\";\nimport { sandboxLayerDefinitionIdentity } from \"../sandbox/link.ts\";\nimport { discoverEval, discoverExperiment, isEvalDefinition, isExperimentDefinition, isEvalGroupDefinition, } from \"../types.ts\";\nimport type { AnyEvalDefinition, DiscoveredEval, DiscoveredExperiment, ExperimentDefinition, EvalGroupDefinition, } from \"../types.ts\";\nimport { digestOf } from \"../sandbox/identity.ts\";\nimport { captureSourceClosure } from \"./source-closure.ts\";\nimport { splitByEvaluationKind } from \"./eval-selection.ts\";\nconst SKIP_DIRS = new Set([\"node_modules\", \".git\", \".niceeval\", \"dist\", \".next\"]);\nexport type DiscoveryIssueCode = \"discovery.filesystem\" | \"discovery.duplicate-id\" | \"discovery.import-failed\" | \"discovery.invalid-export\" | \"eval-group-member-unresolved\" | \"eval-group-member-overlap\" | \"eval-group-member-layer\" | \"eval-group-evaluation-kind-mixed\" | \"discovery.invalid-dataset-key\" | \"discovery.source-capture-failed\" | \"discovery.leak-gate-failed\";\nexport interface DiscoveryIssue {\n readonly file: string;\n readonly code: DiscoveryIssueCode;\n readonly message: string;\n readonly actions: readonly string[];\n /** Retained in-process for structured error assistance; never persisted. */\n readonly cause?: unknown;\n}\n/** Discovery reports the whole invalid batch, rather than stopping at the first bad file. */\nexport class DiscoveryError extends Data.TaggedError(\"DiscoveryError\")<{\n readonly message: string;\n readonly issues: readonly DiscoveryIssue[];\n}> {\n}\ninterface EvalEntry {\n readonly file: string;\n readonly baseId: string;\n readonly kind: \"file\" | \"folder\";\n}\ntype EvalModuleExport = AnyEvalDefinition | readonly AnyEvalDefinition[] | Readonly<globalThis.Record<string, AnyEvalDefinition>>;\ninterface EvalModule {\n readonly default: EvalModuleExport;\n}\ninterface ExperimentModule {\n readonly default?: ExperimentDefinition;\n}\ninterface EvalGroupModule {\n readonly default: EvalGroupDefinition;\n}\nconst EvalDefinitionSchema = Schema.declare(isEvalDefinition, {\n identifier: \"EvalDefinition\",\n description: \"a value returned by defineEval() or defineScoreEval()\",\n});\nconst EvalModuleSchema: Schema.Schema<EvalModule> = Schema.Struct({\n default: Schema.Union([\n Schema.toType(EvalDefinitionSchema),\n Schema.Array(Schema.toType(EvalDefinitionSchema)),\n Schema.Record(Schema.String, Schema.toType(EvalDefinitionSchema)),\n ]),\n});\nconst ExperimentDefinitionSchema = Schema.declare(isExperimentDefinition, {\n identifier: \"ExperimentDefinition\",\n description: \"a value returned by defineExperiment()\",\n});\nconst ExperimentModuleSchema: Schema.Schema<ExperimentModule> = Schema.Struct({\n default: Schema.optional(Schema.toType(ExperimentDefinitionSchema)),\n});\nconst EvalGroupModuleSchema: Schema.Schema<EvalGroupModule> = Schema.Struct({\n default: Schema.toType(Schema.declare(isEvalGroupDefinition, { identifier: \"EvalGroupDefinition\" })),\n});\nfunction discoveryError(issues: readonly DiscoveryIssue[]): DiscoveryError {\n const frozenIssues = Object.freeze(issues.map((issue) => Object.freeze({\n ...issue,\n actions: Object.freeze([...issue.actions]),\n })));\n return new DiscoveryError({\n message: frozenIssues.map((issue) => `${issue.code} ${issue.file}: ${issue.message} Actions: ${issue.actions.join(\" \")}`).join(\"\\n\"),\n issues: frozenIssues,\n });\n}\nfunction issue(file: string, code: DiscoveryIssueCode, message: string, actions: readonly string[], cause?: unknown): DiscoveryError {\n return discoveryError([{ file, code, message, actions, ...(cause === undefined ? {} : { cause }) }]);\n}\nfunction causeMessage(cause: unknown): string {\n return cause instanceof Error ? cause.message : String(cause);\n}\ntype DiscoveryModuleLoader = (file: string) => Promise<unknown>;\nconst cachedModuleLoader: DiscoveryModuleLoader = importProjectModule;\nfunction importModule(file: string, root: string, kind: \"eval\" | \"experiment\", load: DiscoveryModuleLoader = cachedModuleLoader): Effect.Effect<unknown, DiscoveryError> {\n return Effect.tryPromise({\n try: () => load(file),\n catch: (cause) => issue(relative(root, file), \"discovery.import-failed\", `Top-level ${kind} module evaluation failed: ${causeMessage(cause)}`, [`Move resource work into the selected ${kind} body.`, \"Fix the reported top-level exception.\"], cause),\n });\n}\nfunction decodeEvalModule(value: unknown, file: string): Effect.Effect<EvalModule, DiscoveryError> {\n return Schema.decodeUnknownEffect(Schema.toType(EvalModuleSchema), { errors: \"all\" })(value).pipe(Effect.mapError((error) => issue(file, \"discovery.invalid-export\", String(error), [\"Default-export defineEval()/defineScoreEval() output, an array of those outputs, or a keyed record of those outputs.\"])));\n}\nfunction decodeExperimentModule(value: unknown, file: string): Effect.Effect<ExperimentModule, DiscoveryError> {\n return Schema.decodeUnknownEffect(Schema.toType(ExperimentModuleSchema), { errors: \"all\" })(value).pipe(Effect.mapError((error) => issue(file, \"discovery.invalid-export\", String(error), [\"Default-export defineExperiment({...}) instead of a plain object.\"])));\n}\nfunction decodeEvalGroupModule(value: unknown, file: string): Effect.Effect<EvalGroupModule, DiscoveryError> {\n return Schema.decodeUnknownEffect(Schema.toType(EvalGroupModuleSchema), { errors: \"all\" })(value).pipe(Effect.mapError((error) => issue(file, \"discovery.invalid-export\", String(error), [\n \"Default-export defineEvalGroup({ evals: [definition, ...] }).\",\n ])));\n}\nfunction collectAll<A, B>(values: readonly A[], f: (value: A) => Effect.Effect<B, DiscoveryError>): Effect.Effect<readonly B[], DiscoveryError> {\n return Effect.partition(values, f, { concurrency: 1 }).pipe(Effect.flatMap(([errors, groups]) => errors.length > 0\n ? Effect.fail(discoveryError(errors.flatMap((error) => error.issues)))\n : Effect.succeed(Object.freeze(groups))));\n}\nfunction walkFiles(dir: string, root: string, match: (name: string) => boolean): Effect.Effect<readonly string[], DiscoveryError> {\n const readDirectory = (current: string, allowAbsent: boolean) => Effect.tryPromise({\n try: async () => {\n try {\n return await readdir(current, { withFileTypes: true });\n }\n catch (cause) {\n if (allowAbsent && isMissingPath(cause))\n return undefined;\n throw cause;\n }\n },\n catch: (cause) => issue(relative(root, current) || \".\", \"discovery.filesystem\", causeMessage(cause), [\"Check that the discovery directory is readable.\"]),\n });\n const walk = (current: string, allowAbsent: boolean): Effect.Effect<readonly string[], DiscoveryError> => Effect.suspend(() => readDirectory(current, allowAbsent).pipe(Effect.flatMap((entries) => {\n if (entries === undefined)\n return Effect.succeed(Object.freeze([]));\n return Effect.forEach(entries, (entry) => {\n const full = join(current, entry.name);\n if (entry.isDirectory()) {\n return SKIP_DIRS.has(entry.name)\n ? Effect.succeed([])\n : walk(full, false);\n }\n return entry.isFile() && match(entry.name)\n ? Effect.succeed([full])\n : Effect.succeed([]);\n }, { concurrency: 1 }).pipe(Effect.map((groups) => Object.freeze(groups.flat())));\n })));\n return walk(dir, true).pipe(Effect.map((files) => Object.freeze([...files].sort())));\n}\nfunction isMissingPath(cause: unknown): boolean {\n return typeof cause === \"object\" && cause !== null && \"code\" in cause &&\n (cause as {\n readonly code?: unknown;\n }).code === \"ENOENT\";\n}\nfunction isFolderEntryName(name: string): boolean {\n return name === \"eval.ts\" || name === \"eval.tsx\";\n}\nfunction isFileEntryName(name: string): boolean {\n return name.endsWith(\".eval.ts\") || name.endsWith(\".eval.tsx\");\n}\nfunction collectEvalEntries(evalsDir: string, root: string): Effect.Effect<readonly EvalEntry[], DiscoveryError> {\n return walkFiles(evalsDir, root, (name) => isFileEntryName(name) || isFolderEntryName(name)).pipe(Effect.flatMap((files) => {\n const entries = files.map((file): EvalEntry => {\n const name = basename(file);\n if (isFolderEntryName(name)) {\n const relDir = relative(evalsDir, dirname(file)).split(sep).join(\"/\");\n return {\n file,\n baseId: folderEntryBaseId(relDir === \"\" ? \".\" : relDir),\n kind: \"folder\",\n };\n }\n return {\n file,\n baseId: relative(evalsDir, file).replace(/\\.eval\\.tsx?$/, \"\").split(sep).join(\"/\"),\n kind: \"file\",\n };\n });\n const byId = new Map<string, EvalEntry[]>();\n for (const entry of entries)\n byId.set(entry.baseId, [...(byId.get(entry.baseId) ?? []), entry]);\n const duplicates = [...byId.entries()].flatMap(([id, owners]) => owners.length < 2 ? [] : [{\n file: owners.map((owner) => relative(root, owner.file).split(sep).join(\"/\")).join(\", \"),\n code: \"discovery.duplicate-id\" as const,\n message: `Duplicate eval id ${JSON.stringify(id)}: multiple entries map to the same id.`,\n actions: Object.freeze([\"Keep either the file entry or the folder entry for this id.\"]),\n }]);\n return duplicates.length > 0\n ? Effect.fail(discoveryError(duplicates))\n : Effect.succeed(Object.freeze(entries));\n }));\n}\nfunction validDatasetKey(key: string): boolean {\n return key.length > 0 && key !== \".\" && key !== \"..\" && !key.includes(\"/\") && !key.includes(\"\\\\\") &&\n !/[\\u0000-\\u001f\\u007f]/.test(key);\n}\nfunction isEvalDefinitionArray(exported: EvalModuleExport): exported is readonly AnyEvalDefinition[] {\n return Array.isArray(exported);\n}\n// @concord-code ne-runner-expand-eval-export\n// @concord-implements docs/feature/eval/use-case/dataset-fanout.md\nfunction expandEvalExport(exported: EvalModuleExport, entry: EvalEntry, root: string): Effect.Effect<readonly {\n readonly id: string;\n readonly definition: AnyEvalDefinition;\n}[], DiscoveryError> {\n if (isEvalDefinition(exported)) {\n return Effect.succeed(Object.freeze([{ id: entry.baseId, definition: exported }]));\n }\n if (isEvalDefinitionArray(exported)) {\n return Effect.succeed(Object.freeze(exported.map((definition, index) => ({\n id: `${entry.baseId}/${pad4(index)}`,\n definition,\n }))));\n }\n // `Array.isArray` does not narrow readonly arrays; the array branch above has already returned.\n const dataset = exported;\n const invalidKeys = Object.keys(dataset).filter((key) => !validDatasetKey(key));\n if (invalidKeys.length > 0) {\n return Effect.fail(discoveryError(invalidKeys.map((key) => ({\n file: relative(root, entry.file),\n code: \"discovery.invalid-dataset-key\" as const,\n message: `Invalid keyed eval dataset key ${JSON.stringify(key)}.`,\n actions: Object.freeze([\"Use a non-empty path segment without slash, backslash, dot segments, or control characters.\"]),\n }))));\n }\n return Effect.succeed(Object.freeze(Object.keys(dataset).sort().map((key) => ({\n id: `${entry.baseId}/${key}`,\n definition: dataset[key]!,\n }))));\n}\nfunction leakGateHintsForLayer(layer: SandboxLayer | undefined, baseDir: string, file: string): Effect.Effect<Option.Option<LeakGateHints>, DiscoveryError> {\n if (layer === undefined)\n return Effect.succeed(Option.none());\n const state = sandboxLayerStateOf(layer);\n if (!(\"template\" in state))\n return Effect.succeed(Option.none());\n const leakGate = state.template.leakGate;\n if (leakGate._tag === \"None\")\n return Effect.succeed(Option.none());\n if (leakGate._tag === \"Dockerfile\") {\n const contextDir = leakGate.context._tag === \"Url\"\n ? fileURLToPath(leakGate.context.value)\n : resolve(baseDir, leakGate.context.value);\n return Effect.succeed(Option.some({ buildContexts: [{ contextDir, label: \"dockerfile\" }] }));\n }\n const composeFile = leakGate.file._tag === \"Url\" ? new URL(leakGate.file.value) : leakGate.file.value;\n return Effect.tryPromise({\n try: () => __niceevalDynamicImport(\"../sandbox/compose.cjs\"),\n catch: (cause) => issue(file, \"discovery.leak-gate-failed\", causeMessage(cause), [\"Fix the Docker Compose declaration used by this eval SandboxLayer.\"]),\n }).pipe(Effect.flatMap(({ leakGateHintsFromComposeFile }) => leakGateHintsFromComposeFile(composeFile, {\n mainService: leakGate.workspaceService,\n baseDir,\n }).pipe(Effect.mapError((cause) => issue(file, \"discovery.leak-gate-failed\", causeMessage(cause), [\"Fix the Docker Compose declaration used by this eval SandboxLayer.\"])))), Effect.map(({ hints }) => Option.some(hints)));\n}\nfunction runLeakGate(definition: AnyEvalDefinition, input: {\n readonly evalId: string;\n readonly file: string;\n readonly baseDir: string;\n readonly criteriaPaths: readonly string[];\n readonly privatePaths: readonly string[];\n}): Effect.Effect<void, DiscoveryError> {\n const hidden: readonly HiddenInput[] = Object.freeze([\n ...input.criteriaPaths.map((path) => ({ path, kind: \"verifier\" as const })),\n ...input.privatePaths.map((path) => ({ path, kind: \"private\" as const })),\n ]);\n if (hidden.length === 0)\n return Effect.void;\n return leakGateHintsForLayer(definition.sandbox, input.baseDir, input.file).pipe(Effect.flatMap(Option.match({\n onNone: () => Effect.void,\n onSome: (hints) => assertNoHiddenInputLeaks({\n hidden,\n buildContexts: hints.buildContexts,\n bindMounts: hints.bindMounts,\n evalId: input.evalId,\n }).pipe(Effect.mapError((cause) => issue(input.file, \"discovery.leak-gate-failed\", causeMessage(cause), [\"Remove hidden verifier/private inputs from the sandbox build context or bind mounts.\"]))),\n })));\n}\ninterface DiscoveredEvalEntry {\n readonly sourcePath: string;\n readonly evals: readonly DiscoveredEval[];\n readonly origins: readonly LoaderCaptureOrigin[];\n readonly unattributed: LoaderCapturePaths;\n}\nfunction discoverEvalEntry(entry: EvalEntry, root: string, load: DiscoveryModuleLoader = cachedModuleLoader): Effect.Effect<DiscoveredEvalEntry, DiscoveryError> {\n const fileLabel = relative(root, entry.file).split(sep).join(\"/\");\n return Effect.gen(function* () {\n const captured = yield* Effect.tryPromise({\n try: () => captureLoadedFiles(() => load(entry.file)),\n catch: (cause) => issue(fileLabel, \"discovery.import-failed\", causeMessage(cause), [\"Fix module loading and loader declarations.\"], cause),\n });\n const module = yield* decodeEvalModule(captured.value, fileLabel);\n const expanded = yield* expandEvalExport(module.default, entry, root);\n const source = yield* Effect.tryPromise({\n try: () => captureEvalSource(entry.file, { root }),\n catch: (cause) => issue(fileLabel, \"discovery.source-capture-failed\", causeMessage(cause), [\"Make the eval source file readable.\"]),\n });\n const loaderDataPaths = Object.freeze([...captured.paths]);\n const criteriaPaths = Object.freeze([...captured.criteriaPaths]);\n const privatePaths = Object.freeze([...captured.privatePaths]);\n const baseDir = dirname(entry.file);\n return Object.freeze({\n sourcePath: entry.file,\n evals: Object.freeze(expanded.map(({ id, definition }) => discoverEval(definition, {\n id,\n baseDir,\n sourcePath: entry.file,\n source,\n loaderDataPaths,\n criteriaPaths,\n privatePaths,\n definition,\n }))),\n origins: captured.origins,\n unattributed: captured.unattributed,\n });\n });\n}\ninterface LoaderPathBuckets {\n readonly data: Set<string>;\n readonly criteria: Set<string>;\n readonly private: Set<string>;\n}\nfunction emptyLoaderPathBuckets(): LoaderPathBuckets {\n return { data: new Set<string>(), criteria: new Set<string>(), private: new Set<string>() };\n}\nfunction addLoaderPaths(target: LoaderPathBuckets, source: LoaderCapturePaths): void {\n source.paths.forEach((path) => target.data.add(path));\n source.criteriaPaths.forEach((path) => target.criteria.add(path));\n source.privatePaths.forEach((path) => target.private.add(path));\n}\nfunction directLoaderPaths(evalDef: DiscoveredEval): LoaderCaptureOrigin {\n return {\n sourcePath: evalDef.sourcePath,\n paths: evalDef.loaderDataPaths,\n criteriaPaths: evalDef.criteriaPaths,\n privatePaths: evalDef.privatePaths,\n };\n}\nfunction withLoaderProvenance(evalDef: DiscoveredEval, paths: LoaderPathBuckets): DiscoveredEval {\n return discoverEval(evalDef.definition, {\n id: evalDef.id,\n baseDir: evalDef.baseDir,\n sourcePath: evalDef.sourcePath,\n source: evalDef.source,\n loaderDataPaths: Object.freeze([...paths.data].sort()),\n criteriaPaths: Object.freeze([...paths.criteria].sort()),\n privatePaths: Object.freeze([...paths.private].sort()),\n definition: evalDef.definition,\n });\n}\n/**\n * A namespaced fresh graph evaluates a shared helper just once. Attribute the\n * helper's loader registrations to every entry whose static closure contains\n * that helper, so later entries retain the same data/criteria/private surface\n * without evaluating the module again.\n */\nfunction propagateLoaderProvenance(entries: readonly DiscoveredEvalEntry[], root: string): Effect.Effect<readonly DiscoveredEval[], DiscoveryError> {\n return Effect.tryPromise({\n try: async () => {\n const originPaths = new Map<string, LoaderPathBuckets>();\n const conservative = emptyLoaderPathBuckets();\n for (const entry of entries) {\n addLoaderPaths(conservative, entry.unattributed);\n for (const origin of entry.origins) {\n const buckets = originPaths.get(resolve(origin.sourcePath)) ?? emptyLoaderPathBuckets();\n originPaths.set(resolve(origin.sourcePath), buckets);\n addLoaderPaths(buckets, origin);\n }\n }\n const evals: DiscoveredEval[] = [];\n for (const entry of entries) {\n const buckets = emptyLoaderPathBuckets();\n // A host may omit user frames from Error.stack. Conservative union is\n // deliberate: extra invalidation/leak checks are safe; lost provenance\n // is not.\n addLoaderPaths(buckets, {\n paths: [...conservative.data],\n criteriaPaths: [...conservative.criteria],\n privatePaths: [...conservative.private],\n });\n // Keep the old direct capture as a conservative fallback when a host\n // omits call-site frames from Error.stack.\n for (const evalDef of entry.evals)\n addLoaderPaths(buckets, directLoaderPaths(evalDef));\n const closure = await captureSourceClosure(entry.sourcePath, { root });\n const modules = new Set(closure.map(([path]) => resolve(root, path)));\n for (const [modulePath, registered] of originPaths) {\n if (modules.has(modulePath))\n addLoaderPaths(buckets, {\n paths: [...registered.data],\n criteriaPaths: [...registered.criteria],\n privatePaths: [...registered.private],\n });\n }\n evals.push(...entry.evals.map((evalDef) => withLoaderProvenance(evalDef, buckets)));\n }\n return Object.freeze(evals);\n },\n catch: (cause) => issue(relative(root, join(root, \"evals\")) || \"evals\", \"discovery.source-capture-failed\", causeMessage(cause), [\"Make every Eval entry and its static project-local imports readable.\"]),\n });\n}\nfunction matchingArrayClose(source: string, start: number): number | undefined {\n let depth = 0;\n let quote: \"'\" | '\"' | \"`\" | undefined;\n let escaped = false;\n let lineComment = false;\n let blockComment = false;\n for (let index = start; index < source.length; index++) {\n const char = source[index]!;\n const next = source[index + 1];\n if (lineComment) {\n if (char === \"\\n\")\n lineComment = false;\n continue;\n }\n if (blockComment) {\n if (char === \"*\" && next === \"/\") {\n blockComment = false;\n index++;\n }\n continue;\n }\n if (quote !== undefined) {\n if (!escaped && char === quote)\n quote = undefined;\n escaped = !escaped && char === \"\\\\\";\n continue;\n }\n if (char === \"/\" && next === \"/\") {\n lineComment = true;\n index++;\n continue;\n }\n if (char === \"/\" && next === \"*\") {\n blockComment = true;\n index++;\n continue;\n }\n if (char === \"'\" || char === '\"' || char === \"`\") {\n quote = char;\n escaped = false;\n continue;\n }\n if (char === \"[\")\n depth++;\n if (char === \"]\") {\n depth--;\n if (depth === 0)\n return index;\n }\n }\n return undefined;\n}\nfunction splitArrayElements(source: string): readonly string[] | undefined {\n const parts: string[] = [];\n let start = 0;\n let depth = 0;\n let quote: \"'\" | '\"' | \"`\" | undefined;\n let escaped = false;\n let lineComment = false;\n let blockComment = false;\n for (let index = 0; index < source.length; index++) {\n const char = source[index]!;\n const next = source[index + 1];\n if (lineComment) {\n if (char === \"\\n\")\n lineComment = false;\n continue;\n }\n if (blockComment) {\n if (char === \"*\" && next === \"/\") {\n blockComment = false;\n index++;\n }\n continue;\n }\n if (quote !== undefined) {\n if (!escaped && char === quote)\n quote = undefined;\n escaped = !escaped && char === \"\\\\\";\n continue;\n }\n if (char === \"/\" && next === \"/\") {\n lineComment = true;\n index++;\n continue;\n }\n if (char === \"/\" && next === \"*\") {\n blockComment = true;\n index++;\n continue;\n }\n if (char === \"'\" || char === '\"' || char === \"`\") {\n quote = char;\n escaped = false;\n continue;\n }\n if (char === \"(\" || char === \"{\" || char === \"[\")\n depth++;\n if (char === \")\" || char === \"}\" || char === \"]\")\n depth--;\n if (char === \",\" && depth === 0) {\n const part = source.slice(start, index).trim();\n if (part === \"\")\n return undefined;\n parts.push(part);\n start = index + 1;\n }\n }\n const last = source.slice(start).trim();\n if (last !== \"\")\n parts.push(last);\n return parts;\n}\n/**\n * `evals` is a closed set. Normalize only inline array spelling in the Group\n * entry before its source participates in the definition hash; all other\n * source remains byte-sensitive, including opaque commands and hooks.\n */\nfunction normalizeEvalGroupSource(content: string): string {\n let output = \"\";\n let cursor = 0;\n const property = /\\bevals\\s*:\\s*\\[/g;\n for (let found = property.exec(content); found !== null; found = property.exec(content)) {\n const bracket = found.index + found[0].lastIndexOf(\"[\");\n const close = matchingArrayClose(content, bracket);\n if (close === undefined)\n return content;\n const elements = splitArrayElements(content.slice(bracket + 1, close));\n if (elements === undefined)\n return content;\n output += content.slice(cursor, bracket + 1);\n output += elements.toSorted((left, right) => left.localeCompare(right)).join(\",\");\n cursor = close;\n property.lastIndex = close + 1;\n }\n return output === \"\" ? content : output + content.slice(cursor);\n}\n/** Discovery remains in Effect through selection/planning; an adapter host closes it. */\n// @concord-code ne-runner-discover-evals\n// @concord-implements docs/feature/eval-groups/architecture.md\n// @concord-implements docs/feature/eval-groups/library.md\nexport function discoverEvals(root: string, options: {\n freshImport?: boolean;\n generation?: FreshImportGeneration;\n} = {}): Effect.Effect<readonly DiscoveredEval[], DiscoveryError> {\n const dir = join(root, \"evals\");\n const discoverWith = (load: DiscoveryModuleLoader): Effect.Effect<readonly DiscoveredEval[], DiscoveryError> => Effect.gen(function* () {\n const entries = yield* collectEvalEntries(dir, root);\n const discoveredEntries = yield* collectAll(entries, (entry) => discoverEvalEntry(entry, root, load));\n const evals = yield* propagateLoaderProvenance(discoveredEntries, root);\n const [leakErrors] = yield* Effect.partition(evals, (evalDef) => runLeakGate(evalDef.definition, {\n evalId: evalDef.id,\n file: relative(root, evalDef.sourcePath).split(sep).join(\"/\"),\n baseDir: evalDef.baseDir,\n criteriaPaths: evalDef.criteriaPaths,\n privatePaths: evalDef.privatePaths,\n }), { concurrency: 1 });\n if (leakErrors.length > 0)\n return yield* Effect.fail(discoveryError(leakErrors.flatMap((error) => error.issues)));\n const files = yield* walkFiles(dir, root, (name) => name === \"eval-group.ts\");\n const groupEntries = files.map((file) => {\n const id = relative(dir, dirname(file)).split(sep).join(\"/\");\n return { file, id };\n });\n const groupIdIssues: DiscoveryIssue[] = [];\n const groupsById = new Map<string, typeof groupEntries>();\n for (const entry of groupEntries)\n groupsById.set(entry.id, [...(groupsById.get(entry.id) ?? []), entry]);\n for (const [id, owners] of groupsById) {\n if (id.length === 0) {\n groupIdIssues.push({ file: owners.map((owner) => relative(root, owner.file).split(sep).join(\"/\")).join(\", \"), code: \"discovery.invalid-export\", message: \"Eval Group id must not be empty.\", actions: [\"Put eval-group.ts in a named subdirectory under evals/.\"] });\n }\n else if (owners.length > 1) {\n groupIdIssues.push({ file: owners.map((owner) => relative(root, owner.file).split(sep).join(\"/\")).join(\", \"), code: \"discovery.duplicate-id\", message: `Duplicate eval group id ${JSON.stringify(id)}: multiple entries map to the same id.`, actions: [\"Keep one eval-group.ts for this group path.\"] });\n }\n }\n if (groupIdIssues.length > 0)\n return yield* Effect.fail(discoveryError(groupIdIssues));\n const claimed = new Map<AnyEvalDefinition, string>();\n const annotated = new Map<AnyEvalDefinition, DiscoveredEval>();\n const issues: DiscoveryIssue[] = [];\n const memberSourcePaths = new Set(evals.map((item) => item.sourcePath));\n for (const { file, id } of groupEntries) {\n const label = relative(root, file).split(sep).join(\"/\");\n const imported = yield* importModule(file, root, \"eval\", load);\n const module = yield* decodeEvalGroupModule(imported, label);\n const resolved = module.default.evals.map((definition) => evals.filter((item) => item.definition === definition));\n // `evals` is a closed set, not an author-defined business sequence. The\n // scheduler and fingerprint use the normalized Eval ID order everywhere.\n const evalIds = resolved.flatMap((matches) => matches.map((item) => item.id)).toSorted();\n const evaluationKinds = splitByEvaluationKind(resolved.flatMap((matches) => matches.length === 1 ? matches : []));\n if (evaluationKinds.pass.length > 0 && evaluationKinds.score.length > 0) {\n issues.push({\n file: label,\n code: \"eval-group-evaluation-kind-mixed\",\n message: `Eval Group ${JSON.stringify(id)} contains both pass and score Evals. ` +\n `pass (${evaluationKinds.pass.length}): ${evaluationKinds.pass.join(\", \")}; ` +\n `score (${evaluationKinds.score.length}): ${evaluationKinds.score.join(\", \")}.`,\n actions: [\"Split the Eval Group into one pass Group and one score Group.\"],\n });\n }\n const groupSources = yield* Effect.tryPromise({\n try: async () => (await captureSourceClosure(file, { root, stopPaths: memberSourcePaths })).map(([path, content]) => [\n path,\n path === label ? normalizeEvalGroupSource(content) : content,\n ] as const),\n catch: (cause) => issue(label, \"discovery.source-capture-failed\", causeMessage(cause), [\"Make the Eval Group entry and its project-local helper modules readable.\"]),\n });\n const definitionHash = digestOf({\n // Group declaration order is deliberately not an input. The group file\n // may reorder its closed `evals` set without changing behavior. Other\n // Group source stays in the hash, so opaque command/hook behavior and\n // helper code still invalidate fingerprints when it changes.\n version: 5,\n id,\n evalIds,\n layer: sandboxLayerDefinitionIdentity(module.default.sandbox),\n onUnavailable: module.default.onUnavailable,\n sources: groupSources.map(([path, content]) => ({ path, content })),\n });\n module.default.evals.forEach((definition, index) => {\n const matches = resolved[index]!;\n if (matches.length !== 1) {\n issues.push({ file: label, code: \"eval-group-member-unresolved\", message: `Eval Group ${JSON.stringify(id)} member ${index} resolves to ${matches.length} discovered Evals.`, actions: [\"Import the exact default definition object from an eval entry.\"] });\n return;\n }\n const member = matches[0]!;\n const prior = claimed.get(definition);\n if (prior !== undefined) {\n issues.push({ file: label, code: \"eval-group-member-overlap\", message: `Eval ${JSON.stringify(member.id)} in Eval Group ${JSON.stringify(id)} is already claimed by Eval Group ${JSON.stringify(prior)}.`, actions: [\"List each Eval exactly once in one group.\"] });\n return;\n }\n const state = member.sandbox === undefined ? undefined : sandboxLayerStateOf(member.sandbox);\n if (state?.kind === \"template-bearing\" || (state?.setupHooks.length ?? 0) > 0 || (state?.teardownHooks.length ?? 0) > 0) {\n issues.push({ file: label, code: \"eval-group-member-layer\", message: `Eval ${JSON.stringify(member.id)} in Eval Group ${JSON.stringify(id)} owns a template or lifecycle hook.`, actions: [\"Move the template and lifecycle hooks to the Experiment or Eval Group; keep only prepare commands on the Eval.\"] });\n return;\n }\n claimed.set(definition, id);\n annotated.set(definition, discoverEval(definition, {\n ...member,\n evalGroup: Object.freeze({\n id,\n evalIds: Object.freeze(evalIds),\n definitionHash,\n sandbox: module.default.sandbox,\n onUnavailable: module.default.onUnavailable,\n plugins: Object.freeze([...(module.default.plugins ?? [])]),\n sourcePath: file,\n baseDir: dirname(file),\n }),\n }));\n });\n }\n if (issues.length > 0)\n return yield* Effect.fail(discoveryError(issues));\n return Object.freeze(evals.map((item) => annotated.get(item.definition) ?? item));\n });\n if (options.generation !== undefined)\n return discoverWith(options.generation.import);\n if (!options.freshImport)\n return discoverWith(cachedModuleLoader);\n return Effect.scoped(acquireFreshImportGeneration(root).pipe(Effect.flatMap((fresh) => discoverWith(fresh.import))));\n}\n// @concord-code ne-runner-discover-experiment-file\n// @concord-implements docs/feature/experiments/library.md\nfunction discoverExperimentFile(file: string, root: string, experimentsDir: string, load: DiscoveryModuleLoader = cachedModuleLoader): Effect.Effect<readonly DiscoveredExperiment[], DiscoveryError> {\n const fileLabel = relative(root, file).split(sep).join(\"/\");\n return Effect.gen(function* () {\n const imported = yield* importModule(file, root, \"experiment\", load);\n const module = yield* decodeExperimentModule(imported, fileLabel);\n if (module.default === undefined)\n return Object.freeze([]);\n const id = relative(experimentsDir, file)\n .replace(/\\.ts$/, \"\")\n .replace(/\\.experiment$/, \"\")\n .split(sep)\n .join(\"/\");\n return Object.freeze([discoverExperiment(module.default, {\n id,\n baseDir: dirname(file),\n sourcePath: file,\n })]);\n });\n}\n/** Discovery remains in Effect through selection/planning; an adapter host closes it. */\n// @concord-code ne-runner-discover-experiments\n// @concord-implements docs/feature/experiments/README.md\n// @concord-implements docs/feature/experiments/library.md\nexport function discoverExperiments(root: string, options: {\n freshImport?: boolean;\n generation?: FreshImportGeneration;\n} = {}): Effect.Effect<readonly DiscoveredExperiment[], DiscoveryError> {\n const dir = join(root, \"experiments\");\n const discoverWith = (load: DiscoveryModuleLoader): Effect.Effect<readonly DiscoveredExperiment[], DiscoveryError> => walkFiles(dir, root, (name) => name.endsWith(\".ts\") && !name.endsWith(\".d.ts\")).pipe(Effect.flatMap((files) => Effect.partition(files, (file) => discoverExperimentFile(file, root, dir, load), { concurrency: 1 })), Effect.flatMap(([errors, groups]) => errors.length > 0\n ? Effect.fail(discoveryError(errors.flatMap((error) => error.issues)))\n : Effect.succeed(Object.freeze(groups.flat()))));\n if (options.generation !== undefined)\n return discoverWith(options.generation.import);\n if (!options.freshImport)\n return discoverWith(cachedModuleLoader);\n return Effect.scoped(acquireFreshImportGeneration(root).pipe(Effect.flatMap((fresh) => discoverWith(fresh.import))));\n}\n/** eval id 的裸字面前缀过滤;exp 与固定读取面共用 shared helper。 */\nexport function makeFilter(patterns: string[]): (id: string) => boolean {\n return evalPrefixPredicate(patterns.length > 0 ? patterns : undefined);\n}\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
+
import { type FreshImportGeneration } from "../fresh-import.cjs";
|
|
2
3
|
import type { DiscoveredEval, DiscoveredExperiment } from "../types.cjs";
|
|
3
4
|
export type DiscoveryIssueCode = "discovery.filesystem" | "discovery.duplicate-id" | "discovery.import-failed" | "discovery.invalid-export" | "eval-group-member-unresolved" | "eval-group-member-overlap" | "eval-group-member-layer" | "eval-group-evaluation-kind-mixed" | "discovery.invalid-dataset-key" | "discovery.source-capture-failed" | "discovery.leak-gate-failed";
|
|
4
5
|
export interface DiscoveryIssue {
|
|
@@ -21,10 +22,12 @@ export declare class DiscoveryError extends DiscoveryError_base<{
|
|
|
21
22
|
/** Discovery remains in Effect through selection/planning; an adapter host closes it. */
|
|
22
23
|
export declare function discoverEvals(root: string, options?: {
|
|
23
24
|
freshImport?: boolean;
|
|
25
|
+
generation?: FreshImportGeneration;
|
|
24
26
|
}): Effect.Effect<readonly DiscoveredEval[], DiscoveryError>;
|
|
25
27
|
/** Discovery remains in Effect through selection/planning; an adapter host closes it. */
|
|
26
28
|
export declare function discoverExperiments(root: string, options?: {
|
|
27
29
|
freshImport?: boolean;
|
|
30
|
+
generation?: FreshImportGeneration;
|
|
28
31
|
}): Effect.Effect<readonly DiscoveredExperiment[], DiscoveryError>;
|
|
29
32
|
/** eval id 的裸字面前缀过滤;exp 与固定读取面共用 shared helper。 */
|
|
30
33
|
export declare function makeFilter(patterns: string[]): (id: string) => boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
+
import { type FreshImportGeneration } from "../fresh-import.mjs";
|
|
2
3
|
import type { DiscoveredEval, DiscoveredExperiment } from "../types.mjs";
|
|
3
4
|
export type DiscoveryIssueCode = "discovery.filesystem" | "discovery.duplicate-id" | "discovery.import-failed" | "discovery.invalid-export" | "eval-group-member-unresolved" | "eval-group-member-overlap" | "eval-group-member-layer" | "eval-group-evaluation-kind-mixed" | "discovery.invalid-dataset-key" | "discovery.source-capture-failed" | "discovery.leak-gate-failed";
|
|
4
5
|
export interface DiscoveryIssue {
|
|
@@ -21,10 +22,12 @@ export declare class DiscoveryError extends DiscoveryError_base<{
|
|
|
21
22
|
/** Discovery remains in Effect through selection/planning; an adapter host closes it. */
|
|
22
23
|
export declare function discoverEvals(root: string, options?: {
|
|
23
24
|
freshImport?: boolean;
|
|
25
|
+
generation?: FreshImportGeneration;
|
|
24
26
|
}): Effect.Effect<readonly DiscoveredEval[], DiscoveryError>;
|
|
25
27
|
/** Discovery remains in Effect through selection/planning; an adapter host closes it. */
|
|
26
28
|
export declare function discoverExperiments(root: string, options?: {
|
|
27
29
|
freshImport?: boolean;
|
|
30
|
+
generation?: FreshImportGeneration;
|
|
28
31
|
}): Effect.Effect<readonly DiscoveredExperiment[], DiscoveryError>;
|
|
29
32
|
/** eval id 的裸字面前缀过滤;exp 与固定读取面共用 shared helper。 */
|
|
30
33
|
export declare function makeFilter(patterns: string[]): (id: string) => boolean;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Effect } from "effect";
|
|
2
|
+
import { type FreshImportGeneration } from "../fresh-import.js";
|
|
2
3
|
import type { DiscoveredEval, DiscoveredExperiment } from "../types.js";
|
|
3
4
|
export type DiscoveryIssueCode = "discovery.filesystem" | "discovery.duplicate-id" | "discovery.import-failed" | "discovery.invalid-export" | "eval-group-member-unresolved" | "eval-group-member-overlap" | "eval-group-member-layer" | "eval-group-evaluation-kind-mixed" | "discovery.invalid-dataset-key" | "discovery.source-capture-failed" | "discovery.leak-gate-failed";
|
|
4
5
|
export interface DiscoveryIssue {
|
|
@@ -21,10 +22,12 @@ export declare class DiscoveryError extends DiscoveryError_base<{
|
|
|
21
22
|
/** Discovery remains in Effect through selection/planning; an adapter host closes it. */
|
|
22
23
|
export declare function discoverEvals(root: string, options?: {
|
|
23
24
|
freshImport?: boolean;
|
|
25
|
+
generation?: FreshImportGeneration;
|
|
24
26
|
}): Effect.Effect<readonly DiscoveredEval[], DiscoveryError>;
|
|
25
27
|
/** Discovery remains in Effect through selection/planning; an adapter host closes it. */
|
|
26
28
|
export declare function discoverExperiments(root: string, options?: {
|
|
27
29
|
freshImport?: boolean;
|
|
30
|
+
generation?: FreshImportGeneration;
|
|
28
31
|
}): Effect.Effect<readonly DiscoveredExperiment[], DiscoveryError>;
|
|
29
32
|
/** eval id 的裸字面前缀过滤;exp 与固定读取面共用 shared helper。 */
|
|
30
33
|
export declare function makeFilter(patterns: string[]): (id: string) => boolean;
|
|
@@ -597,7 +597,7 @@ function buildFailuresPanelRows(failures, panel) {
|
|
|
597
597
|
if (omitted > 0) {
|
|
598
598
|
rows.push({
|
|
599
599
|
kind: "line",
|
|
600
|
-
text: `+${omitted} more entries —
|
|
600
|
+
text: `+${omitted} more entries — see NEXT`,
|
|
601
601
|
});
|
|
602
602
|
}
|
|
603
603
|
return { rows, meta: `${failures.length} total · ${groups.length} entries` };
|
|
@@ -647,7 +647,7 @@ function buildSingleFailureGroupRows(failure, contentWidth) {
|
|
|
647
647
|
else {
|
|
648
648
|
rows.push(...labelledWrappedRows("error", boundedHumanError(failure.reason), contentWidth));
|
|
649
649
|
}
|
|
650
|
-
rows.push(...labelledWrappedRows("details",
|
|
650
|
+
rows.push(...labelledWrappedRows("details", `niceeval show ${failure.locator}`, contentWidth));
|
|
651
651
|
return rows;
|
|
652
652
|
}
|
|
653
653
|
/** `WARNINGS` 面板:`state.diagnostics` 已经按去重 key 折叠,这里再按对外稳定词法 `code` 二次
|
|
@@ -716,18 +716,23 @@ function warningCodeLabel(code, count) {
|
|
|
716
716
|
/** `NEXT` 面板只由 receipt 的真实 created Run ID 给出公开读取命令。 */
|
|
717
717
|
function buildReceiptLines(event, state, panel) {
|
|
718
718
|
const rows = [];
|
|
719
|
+
const contentWidth = (0, panel_ts_1.panelContentWidth)(panel.width, panel.mode);
|
|
719
720
|
const published = new Set(event.receipt.createdRunIds);
|
|
720
721
|
const emitted = new Set();
|
|
722
|
+
const appendCommands = (runId) => {
|
|
723
|
+
rows.push(...labelledWrappedRows("show", `niceeval show --run ${runId}`, contentWidth));
|
|
724
|
+
rows.push(...labelledWrappedRows("view", `niceeval view --run ${runId}`, contentWidth));
|
|
725
|
+
};
|
|
721
726
|
for (const [experimentId, runId] of state.runIdsByExperiment) {
|
|
722
727
|
if (!published.has(runId))
|
|
723
728
|
continue;
|
|
724
729
|
rows.push({ kind: "line", text: experimentId });
|
|
725
|
-
|
|
730
|
+
appendCommands(runId);
|
|
726
731
|
emitted.add(runId);
|
|
727
732
|
}
|
|
728
733
|
for (const runId of event.receipt.createdRunIds) {
|
|
729
734
|
if (!emitted.has(runId))
|
|
730
|
-
|
|
735
|
+
appendCommands(runId);
|
|
731
736
|
}
|
|
732
737
|
if (rows.length === 0) {
|
|
733
738
|
rows.push({ kind: "line", text: "No Runs were created for this invocation." });
|