niceeval 0.18.0 → 0.19.0
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 +4 -2
- package/dist/adapter-usage.cjs.map +1 -1
- package/dist/adapter-usage.d.cts +1 -1
- package/dist/adapter-usage.d.mts +1 -1
- package/dist/adapter-usage.d.ts +1 -1
- package/dist/adapter.cjs +8 -7
- package/dist/adapter.cjs.map +1 -1
- package/dist/adapter.d.cts +21 -21
- package/dist/adapter.d.mts +21 -21
- package/dist/adapter.d.ts +21 -21
- package/dist/agents/{effect-runtime.cjs → agent-effects.cjs} +12 -18
- package/dist/agents/agent-effects.cjs.map +1 -0
- package/dist/agents/agent-effects.d.cts +23 -0
- package/dist/agents/agent-effects.d.mts +23 -0
- package/dist/agents/agent-effects.d.ts +23 -0
- package/dist/agents/agent-effects.js +16 -0
- package/dist/agents/agent-effects.js.map +1 -0
- package/dist/agents/ai-sdk.cjs +1 -1
- package/dist/agents/ai-sdk.cjs.map +1 -1
- package/dist/agents/bub.cjs +31 -18
- package/dist/agents/bub.cjs.map +1 -1
- package/dist/agents/bub.d.cts +9 -12
- package/dist/agents/bub.d.mts +9 -12
- package/dist/agents/bub.d.ts +9 -12
- package/dist/agents/claude-code-native.cjs +2 -2
- package/dist/agents/claude-code-native.cjs.map +1 -1
- package/dist/agents/claude-code.cjs +17 -11
- package/dist/agents/claude-code.cjs.map +1 -1
- package/dist/agents/claude-code.d.cts +11 -11
- package/dist/agents/claude-code.d.mts +11 -11
- package/dist/agents/claude-code.d.ts +11 -11
- package/dist/agents/codex-app-server.cjs +2 -2
- package/dist/agents/codex-app-server.cjs.map +1 -1
- package/dist/agents/codex.cjs +18 -12
- package/dist/agents/codex.cjs.map +1 -1
- package/dist/agents/codex.d.cts +12 -12
- package/dist/agents/codex.d.mts +12 -12
- package/dist/agents/codex.d.ts +12 -12
- package/dist/agents/deepseek-harness.cjs +2 -2
- package/dist/agents/deepseek-harness.cjs.map +1 -1
- package/dist/agents/hermes.cjs +3 -3
- package/dist/agents/hermes.cjs.map +1 -1
- package/dist/agents/index.cjs +3 -3
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +3 -3
- package/dist/agents/index.d.mts +3 -3
- package/dist/agents/index.d.ts +3 -3
- package/dist/agents/index.js +2 -2
- package/dist/agents/index.mjs +2 -2
- package/dist/agents/mcp.cjs.map +1 -1
- package/dist/agents/mcp.d.cts +2 -2
- package/dist/agents/mcp.d.mts +2 -2
- package/dist/agents/mcp.d.ts +2 -2
- package/dist/agents/omp.cjs +2 -2
- package/dist/agents/omp.cjs.map +1 -1
- package/dist/agents/openai-compat.cjs +2 -2
- package/dist/agents/openai-compat.cjs.map +1 -1
- package/dist/agents/openclaw.cjs +3 -3
- package/dist/agents/openclaw.cjs.map +1 -1
- package/dist/agents/opencode.cjs +16 -4
- package/dist/agents/opencode.cjs.map +1 -1
- package/dist/agents/plugin-extensions.cjs +71 -0
- package/dist/agents/plugin-extensions.cjs.map +1 -0
- package/dist/agents/plugin-extensions.d.cts +26 -0
- package/dist/agents/plugin-extensions.d.mts +26 -0
- package/dist/agents/plugin-extensions.d.ts +26 -0
- package/dist/agents/plugin-extensions.js +8 -0
- package/dist/agents/plugin-extensions.js.map +1 -0
- package/dist/agents/post-setup.cjs +14 -3
- package/dist/agents/post-setup.cjs.map +1 -1
- package/dist/agents/post-setup.d.cts +4 -2
- package/dist/agents/post-setup.d.mts +4 -2
- package/dist/agents/post-setup.d.ts +4 -2
- package/dist/agents/post-setup.js +8 -6
- package/dist/agents/sdk-streams.cjs +3 -3
- package/dist/agents/sdk-streams.cjs.map +1 -1
- package/dist/agents/{session-slot.cjs → session-key.cjs} +4 -4
- package/dist/agents/session-key.cjs.map +1 -0
- package/dist/agents/session-key.d.cts +12 -0
- package/dist/agents/session-key.d.mts +12 -0
- package/dist/agents/session-key.d.ts +12 -0
- package/dist/agents/session-key.js +6 -0
- package/dist/agents/session-key.js.map +1 -0
- package/dist/agents/shared.cjs +2 -2
- package/dist/agents/shared.cjs.map +1 -1
- package/dist/agents/shared.d.cts +4 -4
- package/dist/agents/shared.d.mts +4 -4
- package/dist/agents/shared.d.ts +4 -4
- package/dist/agents/skills.cjs.map +1 -1
- package/dist/agents/skills.d.cts +3 -3
- package/dist/agents/skills.d.mts +3 -3
- package/dist/agents/skills.d.ts +3 -3
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +55 -54
- package/dist/agents/types.d.mts +55 -54
- package/dist/agents/types.d.ts +55 -54
- package/dist/agents/ui-message-stream.cjs +4 -4
- package/dist/agents/ui-message-stream.cjs.map +1 -1
- package/dist/agents/unrecognized-events.cjs +32 -0
- package/dist/agents/unrecognized-events.cjs.map +1 -0
- package/dist/agents/unrecognized-events.d.cts +8 -0
- package/dist/agents/unrecognized-events.d.mts +8 -0
- package/dist/agents/unrecognized-events.d.ts +8 -0
- package/dist/agents/unrecognized-events.js +6 -0
- package/dist/agents/unrecognized-events.js.map +1 -0
- package/dist/assertions/api.cjs.map +1 -1
- package/dist/assertions/api.d.cts +3 -0
- package/dist/assertions/api.d.mts +3 -0
- package/dist/assertions/api.d.ts +3 -0
- package/dist/assertions/collection.cjs +1 -1
- package/dist/assertions/collection.cjs.map +1 -1
- package/dist/assertions/judge.cjs +1 -1
- package/dist/assertions/judge.cjs.map +1 -1
- package/dist/assertions/match.cjs +52 -21
- package/dist/assertions/match.cjs.map +1 -1
- package/dist/assertions/match.d.cts +16 -5
- package/dist/assertions/match.d.mts +16 -5
- package/dist/assertions/match.d.ts +16 -5
- package/dist/assertions/match.js +96 -94
- package/dist/assertions/measurements.cjs +22 -6
- package/dist/assertions/measurements.cjs.map +1 -1
- package/dist/assertions/measurements.d.cts +8 -1
- package/dist/assertions/measurements.d.mts +8 -1
- package/dist/assertions/measurements.d.ts +8 -1
- package/dist/assertions/numeric.cjs +2 -0
- package/dist/assertions/numeric.cjs.map +1 -1
- package/dist/assertions/numeric.d.cts +1 -1
- package/dist/assertions/numeric.d.mts +1 -1
- package/dist/assertions/numeric.d.ts +1 -1
- package/dist/assertions/quantity.cjs +42 -0
- package/dist/assertions/quantity.cjs.map +1 -0
- package/dist/assertions/quantity.d.cts +18 -0
- package/dist/assertions/quantity.d.mts +18 -0
- package/dist/assertions/quantity.d.ts +18 -0
- package/dist/assertions/quantity.js +22 -0
- package/dist/assertions/quantity.js.map +1 -0
- package/dist/assertions/record/attachment.cjs +2 -0
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/record/codec.cjs +5 -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 +3 -1
- package/dist/assertions/record/model.d.mts +3 -1
- package/dist/assertions/record/model.d.ts +3 -1
- package/dist/assertions/runtime.cjs +11 -6
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/cli/program.cjs +3 -0
- package/dist/cli/program.cjs.map +1 -1
- package/dist/context/assert-first.cjs +6 -4
- package/dist/context/assert-first.cjs.map +1 -1
- package/dist/context/assert-first.d.cts +9 -3
- package/dist/context/assert-first.d.mts +9 -3
- package/dist/context/assert-first.d.ts +9 -3
- package/dist/context/notes.cjs +47 -0
- package/dist/context/notes.cjs.map +1 -0
- package/dist/context/notes.d.cts +10 -0
- package/dist/context/notes.d.mts +10 -0
- package/dist/context/notes.d.ts +10 -0
- package/dist/context/notes.js +6 -0
- package/dist/context/notes.js.map +1 -0
- package/dist/context/send-failures.cjs +1 -7
- package/dist/context/send-failures.cjs.map +1 -1
- package/dist/context/send-failures.d.cts +2 -3
- package/dist/context/send-failures.d.mts +2 -3
- package/dist/context/send-failures.d.ts +2 -3
- package/dist/context/send-retry.cjs +0 -1
- package/dist/context/send-retry.cjs.map +1 -1
- package/dist/context/send-retry.d.cts +1 -2
- package/dist/context/send-retry.d.mts +1 -2
- package/dist/context/send-retry.d.ts +1 -2
- package/dist/context/session.cjs +10 -17
- package/dist/context/session.cjs.map +1 -1
- package/dist/context/session.d.cts +4 -10
- package/dist/context/session.d.mts +4 -10
- package/dist/context/session.d.ts +4 -10
- package/dist/define.cjs +88 -65
- package/dist/define.cjs.map +1 -1
- package/dist/define.d.cts +3 -3
- package/dist/define.d.mts +3 -3
- package/dist/define.d.ts +3 -3
- package/dist/eval/cli/contribution.cjs +1 -1
- package/dist/eval/cli/contribution.cjs.map +1 -1
- package/dist/eval/host/index.cjs +1 -1
- package/dist/eval/host/index.cjs.map +1 -1
- package/dist/eval/record/evaluation.cjs +1 -1
- package/dist/eval/record/evaluation.cjs.map +1 -1
- package/dist/eval/record/membership-provenance.d.cts +3 -3
- package/dist/eval/record/membership-provenance.d.mts +3 -3
- package/dist/eval/record/membership-provenance.d.ts +3 -3
- package/dist/eval/record/score.cjs +2 -2
- package/dist/eval/record/score.cjs.map +1 -1
- package/dist/eval/record/sealed-assertion.cjs +1 -1
- package/dist/eval/record/sealed-assertion.cjs.map +1 -1
- package/dist/eval/record/verdict.cjs +2 -2
- package/dist/eval/record/verdict.cjs.map +1 -1
- package/dist/expect/index.cjs +10 -1
- package/dist/expect/index.cjs.map +1 -1
- package/dist/expect/index.d.cts +3 -1
- package/dist/expect/index.d.mts +3 -1
- package/dist/expect/index.d.ts +3 -1
- package/dist/expect/index.js +92 -76
- package/dist/expect/index.mjs +92 -76
- package/dist/experiment/host/cli/contribution.cjs +52 -39
- package/dist/experiment/host/cli/contribution.cjs.map +1 -1
- package/dist/experiment/host/cli/contribution.d.cts +18 -4
- package/dist/experiment/host/cli/contribution.d.mts +18 -4
- package/dist/experiment/host/cli/contribution.d.ts +18 -4
- package/dist/experiment/host/cli/contribution.js +2 -2
- package/dist/experiment/host/cli/debug-protocol.cjs +2 -2
- package/dist/experiment/host/cli/debug-protocol.cjs.map +1 -1
- package/dist/experiment/host/cli/debug-protocol.d.cts +2 -2
- package/dist/experiment/host/cli/debug-protocol.d.mts +2 -2
- package/dist/experiment/host/cli/debug-protocol.d.ts +2 -2
- package/dist/experiment/host/cli/output-protocol.cjs +1 -1
- package/dist/experiment/host/cli/output-protocol.cjs.map +1 -1
- package/dist/experiment/host/cli/output-protocol.d.cts +2 -2
- package/dist/experiment/host/cli/output-protocol.d.mts +2 -2
- package/dist/experiment/host/cli/output-protocol.d.ts +2 -2
- package/dist/experiment/host/current.cjs +2 -2
- package/dist/experiment/host/current.cjs.map +1 -1
- package/dist/experiment/host/index.cjs +1 -1
- package/dist/experiment/host/index.cjs.map +1 -1
- package/dist/experiment/host/operations.cjs +21 -22
- package/dist/experiment/host/operations.cjs.map +1 -1
- package/dist/experiment/host/runtime.cjs +8 -9
- package/dist/experiment/host/runtime.cjs.map +1 -1
- package/dist/experiment/host/runtime.d.cts +3 -3
- package/dist/experiment/host/runtime.d.mts +3 -3
- package/dist/experiment/host/runtime.d.ts +3 -3
- package/dist/experiment/host/teardown.cjs +3 -3
- package/dist/experiment/host/teardown.cjs.map +1 -1
- package/dist/experiment/host/teardown.d.cts +3 -3
- package/dist/experiment/host/teardown.d.mts +3 -3
- package/dist/experiment/host/teardown.d.ts +3 -3
- package/dist/experiment/host/types.cjs.map +1 -1
- package/dist/experiment/host/types.d.cts +19 -19
- package/dist/experiment/host/types.d.mts +19 -19
- package/dist/experiment/host/types.d.ts +19 -19
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +2 -2
- package/dist/index.mjs +2 -2
- package/dist/inspection/assertions.cjs +1 -1
- package/dist/inspection/assertions.cjs.map +1 -1
- package/dist/inspection/cli/contribution.cjs +8 -7
- package/dist/inspection/cli/contribution.cjs.map +1 -1
- package/dist/inspection/facts.cjs +4 -4
- package/dist/inspection/facts.cjs.map +1 -1
- package/dist/inspection/index.cjs +1 -5
- package/dist/inspection/index.cjs.map +1 -1
- package/dist/inspection/index.d.cts +1 -2
- package/dist/inspection/index.d.mts +1 -2
- package/dist/inspection/index.d.ts +1 -2
- package/dist/inspection/index.js +20 -26
- package/dist/inspection/lifecycle.cjs +7 -0
- package/dist/inspection/lifecycle.cjs.map +1 -0
- package/dist/inspection/lifecycle.d.cts +4 -0
- package/dist/inspection/lifecycle.d.mts +4 -0
- package/dist/inspection/lifecycle.d.ts +4 -0
- package/dist/inspection/lifecycle.js +6 -0
- package/dist/inspection/lifecycle.js.map +1 -0
- package/dist/inspection/notes.cjs +40 -0
- package/dist/inspection/notes.cjs.map +1 -0
- package/dist/inspection/notes.d.cts +12 -0
- package/dist/inspection/notes.d.mts +12 -0
- package/dist/inspection/notes.d.ts +12 -0
- package/dist/inspection/notes.js +8 -0
- package/dist/inspection/notes.js.map +1 -0
- package/dist/inspection/overview.cjs +12 -15
- package/dist/inspection/overview.cjs.map +1 -1
- package/dist/inspection/overview.d.cts +8 -6
- package/dist/inspection/overview.d.mts +8 -6
- package/dist/inspection/overview.d.ts +8 -6
- package/dist/inspection/planned-attempt.cjs +45 -0
- package/dist/inspection/planned-attempt.cjs.map +1 -0
- package/dist/inspection/planned-attempt.d.cts +109 -0
- package/dist/inspection/planned-attempt.d.mts +109 -0
- package/dist/inspection/planned-attempt.d.ts +109 -0
- package/dist/inspection/planned-attempt.js +24 -0
- package/dist/inspection/planned-attempt.js.map +1 -0
- package/dist/inspection/project-result.cjs +5 -5
- package/dist/inspection/project-result.cjs.map +1 -1
- package/dist/inspection/project-result.d.cts +58 -57
- package/dist/inspection/project-result.d.mts +58 -57
- package/dist/inspection/project-result.d.ts +58 -57
- package/dist/inspection/project-result.js +4 -4
- package/dist/inspection/project.cjs +3 -3
- package/dist/inspection/project.cjs.map +1 -1
- package/dist/inspection/protocol-values.cjs +1 -1
- package/dist/inspection/protocol-values.cjs.map +1 -1
- package/dist/inspection/protocol-values.d.cts +1 -1
- package/dist/inspection/protocol-values.d.mts +1 -1
- package/dist/inspection/protocol-values.d.ts +1 -1
- package/dist/inspection/protocol.cjs +8 -8
- package/dist/inspection/protocol.cjs.map +1 -1
- package/dist/inspection/protocol.d.cts +237 -219
- package/dist/inspection/protocol.d.mts +237 -219
- package/dist/inspection/protocol.d.ts +237 -219
- package/dist/inspection/public.cjs +1 -5
- package/dist/inspection/public.cjs.map +1 -1
- package/dist/inspection/public.d.cts +1 -2
- package/dist/inspection/public.d.mts +1 -2
- package/dist/inspection/public.d.ts +1 -2
- package/dist/inspection/public.js +14 -20
- package/dist/inspection/public.mjs +166 -129
- package/dist/inspection/query.cjs +1 -1
- package/dist/inspection/query.cjs.map +1 -1
- package/dist/inspection/results.cjs +61 -52
- package/dist/inspection/results.cjs.map +1 -1
- package/dist/inspection/results.d.cts +157 -140
- package/dist/inspection/results.d.mts +157 -140
- package/dist/inspection/results.d.ts +157 -140
- package/dist/inspection/select.cjs +33 -28
- package/dist/inspection/select.cjs.map +1 -1
- package/dist/inspection/source.cjs +1 -1
- package/dist/inspection/source.cjs.map +1 -1
- package/dist/inspection/sources.cjs +2 -2
- package/dist/inspection/sources.cjs.map +1 -1
- package/dist/inspection/trace.cjs +9 -8
- package/dist/inspection/trace.cjs.map +1 -1
- package/dist/inspection/trace.d.cts +4 -4
- package/dist/inspection/trace.d.mts +4 -4
- package/dist/inspection/trace.d.ts +4 -4
- package/dist/loaders/index.cjs +7 -279
- package/dist/loaders/index.cjs.map +1 -1
- package/dist/loaders/index.d.cts +2 -95
- package/dist/loaders/index.d.mts +2 -95
- package/dist/loaders/index.d.ts +2 -95
- package/dist/loaders/index.js +10 -12
- package/dist/loaders/index.mjs +10 -12
- package/dist/loaders/runtime.cjs +283 -0
- package/dist/loaders/runtime.cjs.map +1 -0
- package/dist/loaders/runtime.d.cts +95 -0
- package/dist/loaders/runtime.d.mts +95 -0
- package/dist/loaders/runtime.d.ts +95 -0
- package/dist/loaders/runtime.js +16 -0
- package/dist/loaders/runtime.js.map +1 -0
- package/dist/migrations/judge-provider.md +6 -6
- package/dist/{model-slots.cjs → model-roles.cjs} +12 -12
- package/dist/{model-slots.cjs.map → model-roles.cjs.map} +1 -1
- package/dist/{model-slots.d.cts → model-roles.d.cts} +10 -10
- package/dist/{model-slots.d.mts → model-roles.d.mts} +10 -10
- package/dist/{model-slots.d.ts → model-roles.d.ts} +10 -10
- package/dist/model-roles.js +14 -0
- package/dist/model-roles.js.map +1 -0
- package/dist/o11y/adapter-usage-projection.cjs +9 -8
- package/dist/o11y/adapter-usage-projection.cjs.map +1 -1
- package/dist/o11y/adapter-usage-projection.d.cts +23 -15
- package/dist/o11y/adapter-usage-projection.d.mts +23 -15
- package/dist/o11y/adapter-usage-projection.d.ts +23 -15
- package/dist/o11y/cache-read.cjs +14 -14
- package/dist/o11y/cache-read.cjs.map +1 -1
- package/dist/o11y/cache-read.d.cts +5 -5
- package/dist/o11y/cache-read.d.mts +5 -5
- package/dist/o11y/cache-read.d.ts +5 -5
- package/dist/o11y/derive.cjs.map +1 -1
- package/dist/o11y/derive.d.cts +2 -2
- package/dist/o11y/derive.d.mts +2 -2
- package/dist/o11y/derive.d.ts +2 -2
- package/dist/o11y/eval-usage.cjs +9 -9
- package/dist/o11y/eval-usage.cjs.map +1 -1
- package/dist/o11y/eval-usage.d.cts +7 -7
- package/dist/o11y/eval-usage.d.mts +7 -7
- package/dist/o11y/eval-usage.d.ts +7 -7
- package/dist/o11y/parsers/bub.cjs +57 -81
- package/dist/o11y/parsers/bub.cjs.map +1 -1
- package/dist/o11y/parsers/index.cjs.map +1 -1
- package/dist/o11y/parsers/index.d.cts +2 -0
- package/dist/o11y/parsers/index.d.mts +2 -0
- package/dist/o11y/parsers/index.d.ts +2 -0
- package/dist/o11y/parsers/opencode.cjs +129 -217
- package/dist/o11y/parsers/opencode.cjs.map +1 -1
- package/dist/o11y/parsers/opencode.d.cts +2 -5
- package/dist/o11y/parsers/opencode.d.mts +2 -5
- package/dist/o11y/parsers/opencode.d.ts +2 -5
- package/dist/o11y/types.cjs.map +1 -1
- package/dist/o11y/types.d.cts +1 -1
- package/dist/o11y/types.d.mts +1 -1
- package/dist/o11y/types.d.ts +1 -1
- package/dist/plugin/contracts.cjs +170 -120
- package/dist/plugin/contracts.cjs.map +1 -1
- package/dist/plugin/contracts.d.cts +102 -90
- package/dist/plugin/contracts.d.mts +102 -90
- package/dist/plugin/contracts.d.ts +102 -90
- package/dist/plugin/contracts.js +16 -12
- package/dist/plugin/index.cjs.map +1 -1
- package/dist/plugin/index.d.cts +1 -1
- package/dist/plugin/index.d.mts +1 -1
- package/dist/plugin/index.d.ts +1 -1
- package/dist/plugin/link.cjs +69 -64
- package/dist/plugin/link.cjs.map +1 -1
- package/dist/plugin/link.d.cts +5 -3
- package/dist/plugin/link.d.mts +5 -3
- package/dist/plugin/link.d.ts +5 -3
- package/dist/plugin/link.js +12 -8
- 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/attempt-note/definition.cjs +12 -0
- package/dist/record/family/attempt-note/definition.cjs.map +1 -0
- package/dist/record/family/attempt-note/definition.d.cts +6 -0
- package/dist/record/family/attempt-note/definition.d.mts +6 -0
- package/dist/record/family/attempt-note/definition.d.ts +6 -0
- package/dist/record/family/attempt-note/definition.js +6 -0
- package/dist/record/family/attempt-note/definition.js.map +1 -0
- package/dist/record/family/attempt-note/persistence.cjs +10 -0
- package/dist/record/family/attempt-note/persistence.cjs.map +1 -0
- package/dist/record/family/attempt-note/persistence.d.cts +6 -0
- package/dist/record/family/attempt-note/persistence.d.mts +6 -0
- package/dist/record/family/attempt-note/persistence.d.ts +6 -0
- package/dist/record/family/attempt-note/persistence.js +6 -0
- package/dist/record/family/attempt-note/persistence.js.map +1 -0
- package/dist/record/family/attempt-note/schema.cjs +20 -0
- package/dist/record/family/attempt-note/schema.cjs.map +1 -0
- package/dist/record/family/attempt-note/schema.d.cts +21 -0
- package/dist/record/family/attempt-note/schema.d.mts +21 -0
- package/dist/record/family/attempt-note/schema.d.ts +21 -0
- package/dist/record/family/attempt-note/schema.js +10 -0
- package/dist/record/family/attempt-note/schema.js.map +1 -0
- package/dist/record/family/catalog.cjs +32 -29
- package/dist/record/family/catalog.cjs.map +1 -1
- package/dist/record/family/catalog.d.cts +7 -2
- package/dist/record/family/catalog.d.mts +7 -2
- package/dist/record/family/catalog.d.ts +7 -2
- package/dist/record/family/current.cjs +48 -45
- package/dist/record/family/current.cjs.map +1 -1
- package/dist/record/family/current.d.cts +15 -0
- package/dist/record/family/current.d.mts +15 -0
- package/dist/record/family/current.d.ts +15 -0
- package/dist/record/model/index.js +66 -64
- package/dist/record/model/run-context.cjs +9 -3
- package/dist/record/model/run-context.cjs.map +1 -1
- package/dist/record/model/run-context.d.cts +9 -2
- package/dist/record/model/run-context.d.mts +9 -2
- package/dist/record/model/run-context.d.ts +9 -2
- package/dist/record/model/run-context.js +8 -6
- 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/run/cli/contribution.cjs +6 -32
- package/dist/run/cli/contribution.cjs.map +1 -1
- package/dist/run/host/runtime.cjs +1 -1
- package/dist/run/host/runtime.cjs.map +1 -1
- package/dist/run/storage/sqlite.cjs +7 -7
- package/dist/run/storage/sqlite.cjs.map +1 -1
- package/dist/runner/adapter-usage.cjs +5 -3
- package/dist/runner/adapter-usage.cjs.map +1 -1
- package/dist/runner/adapter-usage.d.cts +2 -2
- package/dist/runner/adapter-usage.d.mts +2 -2
- package/dist/runner/adapter-usage.d.ts +2 -2
- package/dist/runner/adoption.cjs +9 -12
- package/dist/runner/adoption.cjs.map +1 -1
- package/dist/runner/attempt-notes.cjs +8 -0
- package/dist/runner/attempt-notes.cjs.map +1 -0
- package/dist/runner/attempt-notes.d.cts +4 -0
- package/dist/runner/attempt-notes.d.mts +4 -0
- package/dist/runner/attempt-notes.d.ts +4 -0
- package/dist/runner/attempt-notes.js +8 -0
- package/dist/runner/attempt-notes.js.map +1 -0
- package/dist/runner/attempt.cjs +61 -73
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/runner/attempt.d.cts +3 -3
- package/dist/runner/attempt.d.mts +3 -3
- package/dist/runner/attempt.d.ts +3 -3
- package/dist/runner/command-plan.cjs +21 -26
- package/dist/runner/command-plan.cjs.map +1 -1
- package/dist/runner/command-plan.d.cts +4 -4
- package/dist/runner/command-plan.d.mts +4 -4
- package/dist/runner/command-plan.d.ts +4 -4
- package/dist/runner/command-plan.js +4 -4
- package/dist/runner/config-identity.cjs.map +1 -1
- package/dist/runner/config-identity.d.cts +2 -2
- package/dist/runner/config-identity.d.mts +2 -2
- package/dist/runner/config-identity.d.ts +2 -2
- package/dist/runner/discover.cjs +6 -6
- package/dist/runner/discover.cjs.map +1 -1
- package/dist/runner/eval-selection.cjs +2 -2
- package/dist/runner/eval-selection.cjs.map +1 -1
- package/dist/runner/eval-selection.d.cts +2 -2
- package/dist/runner/eval-selection.d.mts +2 -2
- package/dist/runner/eval-selection.d.ts +2 -2
- package/dist/runner/feedback/human.cjs +1 -1
- package/dist/runner/feedback/human.cjs.map +1 -1
- package/dist/runner/feedback/json.cjs +4 -2
- package/dist/runner/feedback/json.cjs.map +1 -1
- package/dist/runner/feedback/json.d.cts +1 -1
- package/dist/runner/feedback/json.d.mts +1 -1
- package/dist/runner/feedback/json.d.ts +1 -1
- package/dist/runner/feedback/sink.cjs +1 -1
- package/dist/runner/feedback/sink.cjs.map +1 -1
- package/dist/runner/feedback/sink.d.cts +1 -1
- package/dist/runner/feedback/sink.d.mts +1 -1
- package/dist/runner/feedback/sink.d.ts +1 -1
- package/dist/runner/fingerprint.cjs +1 -1
- package/dist/runner/fingerprint.cjs.map +1 -1
- package/dist/runner/project-target.cjs.map +1 -1
- package/dist/runner/project-target.d.cts +2 -2
- package/dist/runner/project-target.d.mts +2 -2
- package/dist/runner/project-target.d.ts +2 -2
- package/dist/runner/record/attachments.cjs +2 -2
- package/dist/runner/record/attachments.cjs.map +1 -1
- package/dist/runner/record/planning.cjs +8 -2
- package/dist/runner/record/planning.cjs.map +1 -1
- package/dist/runner/record.cjs +2 -0
- package/dist/runner/record.cjs.map +1 -1
- package/dist/runner/report.cjs +3 -3
- package/dist/runner/report.cjs.map +1 -1
- package/dist/runner/report.d.cts +1 -1
- package/dist/runner/report.d.mts +1 -1
- package/dist/runner/report.d.ts +1 -1
- package/dist/runner/reuse-plan.cjs +2 -2
- package/dist/runner/reuse-plan.cjs.map +1 -1
- package/dist/runner/run.cjs +10 -45
- package/dist/runner/run.cjs.map +1 -1
- package/dist/runner/sandbox-pool.cjs +1 -2
- package/dist/runner/sandbox-pool.cjs.map +1 -1
- package/dist/runner/setup-prefix-preparation.cjs +1 -1
- package/dist/runner/setup-prefix-preparation.cjs.map +1 -1
- package/dist/runner/teardown-registry.cjs +2 -2
- package/dist/runner/teardown-registry.cjs.map +1 -1
- package/dist/runner/teardown-registry.d.cts +1 -1
- package/dist/runner/teardown-registry.d.mts +1 -1
- package/dist/runner/teardown-registry.d.ts +1 -1
- package/dist/runner/types.cjs +4 -4
- package/dist/runner/types.cjs.map +1 -1
- package/dist/runner/types.d.cts +64 -93
- package/dist/runner/types.d.mts +64 -93
- package/dist/runner/types.d.ts +64 -93
- package/dist/runner/types.js +2 -2
- package/dist/sandbox/action.cjs +1 -1
- package/dist/sandbox/action.cjs.map +1 -1
- package/dist/sandbox/cli/contribution.cjs +17 -14
- package/dist/sandbox/cli/contribution.cjs.map +1 -1
- package/dist/sandbox/cli/contribution.d.cts +1 -1
- package/dist/sandbox/cli/contribution.d.mts +1 -1
- package/dist/sandbox/cli/contribution.d.ts +1 -1
- package/dist/sandbox/commands.cjs +1 -1
- package/dist/sandbox/commands.cjs.map +1 -1
- package/dist/sandbox/commands.d.cts +1 -1
- package/dist/sandbox/commands.d.mts +1 -1
- package/dist/sandbox/commands.d.ts +1 -1
- package/dist/sandbox/compose.cjs +2 -2
- package/dist/sandbox/compose.cjs.map +1 -1
- package/dist/sandbox/docker-profile/registry.cjs +5 -9
- package/dist/sandbox/docker-profile/registry.cjs.map +1 -1
- package/dist/sandbox/docker-profile/registry.d.cts +0 -3
- package/dist/sandbox/docker-profile/registry.d.mts +0 -3
- package/dist/sandbox/docker-profile/registry.d.ts +0 -3
- package/dist/sandbox/docker-profile/registry.js +6 -12
- package/dist/sandbox/docker-profile/runtime.cjs +1 -1
- package/dist/sandbox/docker-profile/runtime.cjs.map +1 -1
- package/dist/sandbox/docker-profile/schema.cjs +12 -16
- package/dist/sandbox/docker-profile/schema.cjs.map +1 -1
- package/dist/sandbox/docker-profile/schema.d.cts +2 -6
- package/dist/sandbox/docker-profile/schema.d.mts +2 -6
- package/dist/sandbox/docker-profile/schema.d.ts +2 -6
- package/dist/sandbox/docker-profile/schema.js +24 -32
- package/dist/sandbox/incus.cjs +2 -2
- package/dist/sandbox/incus.cjs.map +1 -1
- package/dist/sandbox/index.cjs +4 -35
- package/dist/sandbox/index.cjs.map +1 -1
- package/dist/sandbox/index.d.cts +4 -8
- package/dist/sandbox/index.d.mts +4 -8
- package/dist/sandbox/index.d.ts +4 -8
- package/dist/sandbox/index.js +116 -172
- package/dist/sandbox/index.mjs +116 -172
- package/dist/sandbox/layer.cjs +3 -3
- package/dist/sandbox/layer.cjs.map +1 -1
- package/dist/sandbox/link.cjs +5 -0
- package/dist/sandbox/link.cjs.map +1 -1
- package/dist/sandbox/link.d.cts +3 -0
- package/dist/sandbox/link.d.mts +3 -0
- package/dist/sandbox/link.d.ts +3 -0
- package/dist/sandbox/runtime.cjs +9 -4
- package/dist/sandbox/runtime.cjs.map +1 -1
- package/dist/shared/failure-class.cjs +5 -5
- package/dist/shared/failure-class.cjs.map +1 -1
- package/dist/shared/failure-class.d.cts +4 -10
- package/dist/shared/failure-class.d.mts +4 -10
- package/dist/shared/failure-class.d.ts +4 -10
- package/dist/shared/types.cjs.map +1 -1
- package/dist/shared/types.d.cts +1 -1
- package/dist/shared/types.d.mts +1 -1
- package/dist/shared/types.d.ts +1 -1
- package/dist/show/contribution.cjs +17 -2
- package/dist/show/contribution.cjs.map +1 -1
- package/dist/show/contribution.d.cts +14 -0
- package/dist/show/contribution.d.mts +14 -0
- package/dist/show/contribution.d.ts +14 -0
- package/dist/show/model.cjs +8 -5
- package/dist/show/model.cjs.map +1 -1
- package/dist/show/model.d.cts +11 -8
- package/dist/show/model.d.mts +11 -8
- package/dist/show/model.d.ts +11 -8
- package/dist/show/render.cjs +34 -22
- package/dist/show/render.cjs.map +1 -1
- package/dist/sources/projector.cjs +1 -1
- package/dist/sources/projector.cjs.map +1 -1
- package/dist/types.cjs +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/types.js +2 -2
- package/dist/view/app-dist/.vite/manifest.json +2 -2
- package/dist/view/app-dist/assets/{index-B3ijZRph.js → index-CxrOUvHC.js} +17 -17
- package/dist/view/app-dist/assets/{quality-cost-scatter-B--DfJ9s.js → quality-cost-scatter-B6Aiss7x.js} +1 -1
- package/dist/view/app-dist/index.html +1 -1
- package/dist/view/cli/contribution.cjs +1 -1
- package/dist/view/cli/contribution.cjs.map +1 -1
- package/dist/view/function-runtime.mjs +318 -121
- package/dist/view/http-protocol.d.cts +1 -1
- package/dist/view/http-protocol.d.mts +1 -1
- package/dist/view/http-protocol.d.ts +1 -1
- package/dist/view/inspection-host.cjs +2 -2
- package/dist/view/inspection-host.cjs.map +1 -1
- package/dist/view/inspection-host.d.cts +349 -331
- package/dist/view/inspection-host.d.mts +349 -331
- package/dist/view/inspection-host.d.ts +349 -331
- package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +6 -6
- package/docs-site/zh/examples/integrations/claude-sdk.mdx +5 -5
- package/docs-site/zh/examples/integrations/codex-sdk.mdx +4 -4
- package/docs-site/zh/examples/integrations/langgraph.mdx +4 -4
- package/docs-site/zh/examples/integrations/pi-sdk.mdx +5 -5
- package/docs-site/zh/explanation/adapter.mdx +6 -6
- package/docs-site/zh/explanation/assert.mdx +7 -7
- package/docs-site/zh/explanation/drive.mdx +4 -4
- package/docs-site/zh/explanation/hitl.mdx +2 -2
- package/docs-site/zh/explanation/judge.mdx +2 -2
- package/docs-site/zh/introduction.mdx +2 -2
- package/docs-site/zh/reference/builtin-agents.mdx +46 -49
- package/docs-site/zh/reference/cli.mdx +16 -14
- package/docs-site/zh/reference/define-agent.mdx +19 -19
- package/docs-site/zh/reference/define-config.mdx +7 -15
- package/docs-site/zh/reference/define-eval.mdx +20 -14
- package/docs-site/zh/reference/define-experiment.mdx +18 -39
- package/docs-site/zh/reference/events.mdx +1 -1
- package/docs-site/zh/reference/expect.mdx +21 -0
- package/docs-site/zh/reference/official-adapters.mdx +12 -5
- package/docs-site/zh/troubleshooting/debugging.mdx +2 -2
- package/docs-site/zh/troubleshooting/recover-after-kill.mdx +1 -1
- package/docs-site/zh/tutorials/agent-onboarding.mdx +2 -2
- package/docs-site/zh/tutorials/authoring.mdx +2 -2
- package/docs-site/zh/tutorials/compare-runs.mdx +1 -1
- package/docs-site/zh/tutorials/concurrency.mdx +8 -8
- package/docs-site/zh/tutorials/configuration.mdx +5 -5
- package/docs-site/zh/tutorials/control-run-cost.mdx +19 -19
- package/docs-site/zh/tutorials/eval-groups.mdx +1 -1
- package/docs-site/zh/tutorials/evaluation-kinds.mdx +5 -5
- package/docs-site/zh/tutorials/experiment-services.mdx +32 -32
- package/docs-site/zh/tutorials/handle-execution-failures.mdx +2 -28
- package/docs-site/zh/tutorials/plugins.mdx +49 -143
- package/docs-site/zh/tutorials/sandbox-agent.mdx +1 -1
- package/docs-site/zh/tutorials/sandbox-reuse.mdx +7 -7
- package/docs-site/zh/tutorials/upgrade-0-18.mdx +1 -1
- package/docs-site/zh/tutorials/upgrade-0-19.mdx +121 -0
- package/docs-site/zh/tutorials/upgrade-0-20.mdx +12 -0
- package/docs-site/zh/tutorials/verify-judge.mdx +2 -2
- package/docs-site/zh/tutorials/viewing-results.mdx +2 -2
- package/docs-site/zh/tutorials/write-experiment.mdx +1 -1
- package/docs-site/zh/tutorials/write-send.mdx +13 -13
- package/package.json +1 -1
- package/dist/agents/effect-runtime.cjs.map +0 -1
- package/dist/agents/effect-runtime.d.cts +0 -29
- package/dist/agents/effect-runtime.d.mts +0 -29
- package/dist/agents/effect-runtime.d.ts +0 -29
- package/dist/agents/effect-runtime.js +0 -16
- package/dist/agents/effect-runtime.js.map +0 -1
- package/dist/agents/session-slot.cjs.map +0 -1
- package/dist/agents/session-slot.d.cts +0 -12
- package/dist/agents/session-slot.d.mts +0 -12
- package/dist/agents/session-slot.d.ts +0 -12
- package/dist/agents/session-slot.js +0 -6
- package/dist/agents/session-slot.js.map +0 -1
- package/dist/model-slots.js +0 -14
- package/dist/model-slots.js.map +0 -1
package/dist/sandbox/link.cjs
CHANGED
|
@@ -238,6 +238,7 @@ function beforeFromDeclaration(owner, ordinal, declaration) {
|
|
|
238
238
|
return Object.freeze({
|
|
239
239
|
kind: "action",
|
|
240
240
|
owner,
|
|
241
|
+
...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
|
|
241
242
|
ordinal,
|
|
242
243
|
id: data.metadata.id,
|
|
243
244
|
metadata: data.metadata,
|
|
@@ -250,6 +251,7 @@ function beforeFromDeclaration(owner, ordinal, declaration) {
|
|
|
250
251
|
return Object.freeze({
|
|
251
252
|
kind: "hook",
|
|
252
253
|
owner,
|
|
254
|
+
...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
|
|
253
255
|
ordinal,
|
|
254
256
|
id,
|
|
255
257
|
metadata: (0, action_ts_1.normalizeSandboxBeforeMetadata)({ id }),
|
|
@@ -266,6 +268,7 @@ function beforeFromDeclaration(owner, ordinal, declaration) {
|
|
|
266
268
|
return Object.freeze({
|
|
267
269
|
kind: "command",
|
|
268
270
|
owner,
|
|
271
|
+
...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
|
|
269
272
|
ordinal,
|
|
270
273
|
id,
|
|
271
274
|
metadata,
|
|
@@ -561,6 +564,7 @@ function linkedAfter(contributions) {
|
|
|
561
564
|
kind: "action",
|
|
562
565
|
owner: contribution.owner,
|
|
563
566
|
ordinal,
|
|
567
|
+
...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
|
|
564
568
|
data: (0, action_ts_1.sandboxAfterActionDataOf)(declaration.action),
|
|
565
569
|
fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),
|
|
566
570
|
})
|
|
@@ -568,6 +572,7 @@ function linkedAfter(contributions) {
|
|
|
568
572
|
kind: "command",
|
|
569
573
|
owner: contribution.owner,
|
|
570
574
|
ordinal,
|
|
575
|
+
...((0, contracts_ts_1.pluginSourceOf)(declaration) === undefined ? {} : { pluginSource: (0, contracts_ts_1.pluginSourceOf)(declaration) }),
|
|
571
576
|
declaration,
|
|
572
577
|
fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),
|
|
573
578
|
}))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.js","sourceRoot":"","sources":["link.ts"],"names":[],"mappings":";;;AAsKA,kEAeC;AAqHD,4EAgBC;AAMD,0DAoDC;AAuHD,4DAKC;AAoCD,wEA6BC;AA2FD,sDAmHC;AAgGD,sEA+BC;AAKD,8CAiDC;AAp7BD,iDAAiD;AACjD,yDAAyD;AACzD,+CAA8I;AAC9I,2CAAwM;AACxM,yCAAkR;AAGlR,mCAAsC;AACtC,yDAAyH;AA+FzH,MAAa,qBAAsB,SAAQ,aAAI,CAAC,WAAW,CAAC,uBAAuB,CAIjF;CACD;AALD,sDAKC;AAED,gFAAgF;AAChF,MAAa,0BAA2B,SAAQ,aAAI,CAAC,WAAW,CAAC,4BAA4B,CAY3F;CACD;AAbD,gEAaC;AACD,SAAS,mBAAmB,CAAC,KAE5B;IACG,OAAO,IAAI,0BAA0B,CAAC;QAClC,IAAI,EAAE,gCAAgC;QACtC,GAAG,KAAK;QACR,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC;QACxD,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,GAAG,CAAC,KAAK,CAAC,iBAAiB,KAAK,SAAS;YACrC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,KAAK,CAAC,gBAAgB,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC;KAC1E,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB,CAAC,MAAmC;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;IACvD,KAAK,MAAM,KAAK,IAAI,MAAM;QACtB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpF,OAAO,IAAI,qBAAqB,CAAC;QAC7B,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,oCAAoC,MAAM,CAAC,MAAM,QAAQ;YAC9D,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,2BAA2B;KAC9E,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAAC,IAAiC;IACzD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU;QAC1G,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK;QACxC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU;YAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE;YAC/D,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS;QAC/C,CAAC,CAAC,kBAAkB;QACpB,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;IACpI,OAAO,GAAG,UAAU,OAAO,QAAQ,EAAE,CAAC;AAC1C,CAAC;AACD,qDAAqD;AACrD,SAAgB,2BAA2B,CAAC,KAA4B;IACpE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,KAAK,CAAC,IAAI,CAAC,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,iBAAiB,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpE,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO;YAC9B,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnB,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,+CAA+C,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,CAAC;AAoGD,SAAS,0BAA0B,CAAC,KAAgC;IAChE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC1B,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;YACrD,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB;QACD,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;YACrD,KAAK,EAAE,KAAK,CAAC,KAAK;SACrB,CAAC;AACV,CAAC;AACD,+EAA+E;AAC/E,SAAgB,gCAAgC,CAAC,IAA4B;IACzE,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3E,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;QACrD,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;KACrB,CAAC,CAAC,CAAC;IACJ,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM;QACN,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC;YAC3C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE;KAC1C,CAAC,CAAC;AACP,CAAC;AACD;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,MAA8B,EAAE,SAA0C;IAC9G,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;QACxB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,SAAS,CAAC;IAC7D,MAAM,QAAQ,GAAgB,MAAM,CAAC,QAAQ;SACxC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAa,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;QAC9D,CAAC,CAAC;YACE,IAAI,EAAE,QAAiB;YACvB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,EAAE,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE;YACxB,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC,QAAQ;YACpC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM;SACnC;QACD,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS;QAC1C,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SAClD,GAAG,CAAC,CAAC,KAAK,EAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;SACzC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAa,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ;QAClD,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,MAAM,EAAE,KAAK,CAAC,MAAM;SACvB;QACD,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,CAAC;SACvD,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC;SACjD,GAAG,CAAC,CAAC,KAAK,EAAa,EAAE,CAAC,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;QAC5B,MAAM,EAAE;YACJ,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG;YACjC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO;YACzC,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS;YAC7C,gBAAgB,EAAE,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB;SAC9D;KACJ,CAAC,CAAC,CAAC;IACJ,OAAO;QACH,KAAK,EAAE,YAAY;YACf,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAA,kCAAuB,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;YACvE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;QAC7B,QAAQ;QACR,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QACtD,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACxC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QAC3E,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC;YACtF,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,OAAO,EAAE,IAAA,wCAAyB,EAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;KAC3J,CAAC;AACN,CAAC;AAeD,MAAM,aAAa,GAAG,IAAA,uBAAY,GAAE,CAAC;AACrC,SAAS,WAAW,CAAC,IAAkC,EAAE,EAAU;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AACD,SAAS,aAAa,CAAQ,KAAwB;IAClD,OAAO,KAAK,KAAK,SAAS;QACtB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACpC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACrD,CAAC;AACD,SAAS,UAAU,CAAC,IAA6C;IAC7D,IAAI,IAAI,KAAK,SAAS;QAClB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACtD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9B,MAAM,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;YAClC,UAAU,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;SAC7C,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AACD,SAAS,kBAAkB,CAAC,KAA8B,EAAE,KAAa,EAAE,WAAsC;IAC7G,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,QAAQ;QACd,KAAK;QACL,KAAK;QACL,EAAE,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE;QAC3B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,QAAQ;QACvC,MAAM,EAAE,IAAA,wCAA0B,EAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC;KAClE,CAAC,CAAC;AACP,CAAC;AACD,SAAS,iBAAiB,CAAC,KAA8B,EAAE,KAAa,EAAE,IAAuB;IAC7F,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,QAAiB;QACvB,KAAK;QACL,KAAK;QACL,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;QACpB,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE;YACJ,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;YACxB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW;YAClC,UAAU,EAAE;gBACR,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK;gBACpD,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;gBACnE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBACrC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;aACxC;SACoB;KAC5B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,2BAA2B,CAAC,KAA8B,EAAE,OAAe,EAAE,WAAoC;IACtH,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAA,oCAAwB,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;AAC7E,CAAC;AACD,SAAS,iBAAiB,CAAC,KAA8B,EAAE,OAAe;IACtE,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,WAAW,OAAO,EAAE,CAAC;AACzD,CAAC;AACD,SAAS,qBAAqB,CAAC,KAA8B,EAAE,OAAe,EAAE,WAAqC;IACjH,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAA,+BAAmB,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,QAAiB;YACvB,KAAK;YACL,OAAO;YACP,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI;YACJ,WAAW,EAAE,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,MAAe;YACrB,KAAK;YACL,OAAO;YACP,EAAE;YACF,QAAQ,EAAE,IAAA,0CAA8B,EAAC,EAAE,EAAE,EAAE,CAAC;YAChD,IAAI,EAAE,WAAW,CAAC,IAAI;YACtB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;SACjF,CAAC,CAAC;IACP,CAAC;IACD,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAC1E,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAK,QAAQ;QACtC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC;QACvD,CAAC,CAAC,IAAA,0CAA8B,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,SAAkB;QACxB,KAAK;QACL,OAAO;QACP,EAAE;QACF,QAAQ;QACR,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;KAC3D,CAAC,CAAC;AACP,CAAC;AACD,yGAAyG;AACzG,SAAgB,wBAAwB,CAAC,KAA8B,EAAE,OAAe,EAAE,OAAuB;IAC7G,OAAO,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE,SAAkB;QACxB,WAAW,EAAE,IAAA,yCAA2B,EAAC,OAAO,CAAC;KACpD,CAAC,CAAC,CAAC;AACR,CAAC;AACD,SAAS,oBAAoB,CAAC,KAA8B,EAAE,KAA2C,EAAE,KAA6B;IACpI,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACvD,IAAI,EAAE,QAAiB;QACvB,KAAK;QACL,KAAK;QACL,KAAK;KACR,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD,SAAS,0BAA0B,CAAC,KAAqC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,KAAK,GAAG,IAAA,8BAAmB,EAAC,KAAK,CAAC,OAAO,IAAI,aAAa,CAAC,CAAC;IAClE,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IACnG,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAClF,CAAC;AACD,SAAS,qBAAqB,CAAC,IAAkC,EAAE,KAAoC;IACnG,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAA,8BAAmB,EAAC,KAAK,CAAC,KAAK,IAAI,aAAa,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IACvI,MAAM,QAAQ,GAAqD,KAAK,CAAC,IAAI,KAAK,kBAAkB;QAChG,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;QAC/B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QACvB,KAAK;QACL,QAAQ;QACR,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ;QACR,QAAQ;QACR,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;KAC3C,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC;AACD,4FAA4F;AAC5F,SAAgB,8BAA8B,CAAC,KAA+B;IAC1E,MAAM,YAAY,GAAG,qBAAqB,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAgB,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAa,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ;QAC1G,CAAC,CAAC;YACE,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;SACzB;QACD,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IAChD,MAAM,SAAS,GAAgB;QAC3B,GAAG,oBAAoB,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC;QACnF,GAAG,oBAAoB,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC;KAC5F,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACjF,MAAM,KAAK,GAAgB,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAa,EAAE;QACxF,MAAM,KAAK,GAAG,2BAA2B,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QACpF,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;YAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;YACxG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO;QACH,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB;YACjD,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAA,kCAAuB,EAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;YACnF,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE;QAC7B,QAAQ;QACR,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACxC,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;KACnD,CAAC;AACN,CAAC;AACD,SAAS,OAAO,CAAC,KAA4B;IACzC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE;QACrB,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE;QACjC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;QAC3B,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;KAC9B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,sBAAsB,CAAC,YAAoC;IAChE,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC;AAC1D,CAAC;AACD,SAAS,KAAK,CAAC,IAA0B,EAAE,IAA8B,EAAE,gBAAwC,EAAE,sBAA8C,EAAE,iBAA0C;IAC3M,MAAM,KAAK,GAAG,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACvF,IAAI,IAAI,KAAK,0BAA0B,EAAE,CAAC;QACtC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,GAAG,KAAK;YACR,UAAU,EAAE,sBAAsB,CAAC,IAAI;YACvC,OAAO,EAAE,iBAAiB,KAAK,SAAS;gBACpC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,qBAAqB,IAAI,CAAC,YAAY,sCAAsC;gBAClG,CAAC,CAAC,eAAe,iBAAiB,CAAC,KAAK,CAAC,EAAE,YAAY,IAAI,CAAC,MAAM,sBAAsB,IAAI,CAAC,YAAY,sCAAsC;YACnJ,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACnB,iBAAiB,KAAK,SAAS;oBAC3B,CAAC,CAAC,sEAAsE;oBACxE,CAAC,CAAC,uIAAuI;gBAC7I,0FAA0F;aAC7F,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IACD,IAAI,IAAI,KAAK,2BAA2B,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,GAAG,KAAK;YACR,UAAU,EAAE,sBAAsB,CAAC,IAAI;YACvC,OAAO,EAAE,iBAAiB,KAAK,SAAS;gBACpC,CAAC,CAAC,SAAS,IAAI,CAAC,MAAM,qBAAqB,IAAI,CAAC,YAAY,oCAAoC;gBAChG,CAAC,CAAC,eAAe,iBAAiB,CAAC,KAAK,CAAC,EAAE,YAAY,IAAI,CAAC,MAAM,sBAAsB,IAAI,CAAC,YAAY,2CAA2C;YACxJ,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACnB,uHAAuH;gBACvH,0EAA0E;aAC7E,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IACD,IAAI,IAAI,KAAK,yBAAyB,EAAE,CAAC;QACrC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,GAAG,KAAK;YACR,UAAU,EAAE,sBAAsB,CAAC,IAAI;YACvC,OAAO,EAAE,eAAe,iBAAkB,CAAC,KAAK,CAAC,EAAE,mCAAmC,IAAI,CAAC,SAAS,IAAI;YACxG,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;gBACnB,wEAAwE;gBACxE,8FAA8F;aACjG,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,gBAAgB,CAAC,IAAI;QAC3B,GAAG,KAAK;QACR,UAAU,EAAE,sBAAsB,CAAC,IAAI;QACvC,OAAO,EAAE,iBAAiB,IAAI,CAAC,SAAS,wCAAwC;QAChF,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACnB,6EAA6E;YAC7E,oEAAoE;SACvE,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,MAAM,WAAW,GAA8D,MAAM,CAAC,MAAM,CAAC;IACzF,UAAU,EAAE,CAAC;IACb,YAAY,EAAE,CAAC;IACf,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACX,CAAC,CAAC;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,KAAa;IAC5C,OAAO,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AACD,SAAS,YAAY,CAAC,IAAyB,EAAE,KAA0B;IACvE,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK;QAC7E,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAC5D,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AACrC,CAAC;AACD,sGAAsG;AACtG,SAAgB,qBAAqB,CAAC,OAAuC,EAAE,cAAiC;IAC5G,OAAO,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE;QACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA+B,CAAC;QACpD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;oBACnC,MAAM,EAAE,qBAAqB;oBAC7B,cAAc;oBACd,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrB,QAAQ,EAAE,KAAK,CAAC,EAAE;oBAClB,OAAO,EAAE,gEAAgE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,6BAA6B;iBACjI,CAAC,CAAC,CAAC;YACR,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAA+B,CAAC;QACnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC/C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM,iBAAiB,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;oBAClD,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;wBACnC,MAAM,EAAE,+BAA+B;wBACvC,cAAc;wBACd,SAAS,EAAE,iBAAiB;wBAC5B,UAAU;wBACV,iBAAiB;wBACjB,OAAO,EAAE,8EAA8E,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,mBAAmB,iBAAiB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;qBACxM,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,mBAAmB,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAC/C,CAAC;QACL,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,GAAG,EAA+C,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;QAChD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,UAA+B,EAAE,SAA8B,EAAE,UAA6C,EAAQ,EAAE;YACrI,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;gBACrC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YACzD,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5C,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;QAChD,CAAC,CAAC;QACF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;gBAC1C,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;wBACnC,MAAM,EAAE,oBAAoB;wBAC5B,cAAc;wBACd,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC;wBACnC,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAClB,YAAY,EAAE,SAAS,CAAC,EAAE;wBAC1B,OAAO,EAAE,+DAA+D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;qBAC/J,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC/C,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACvD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC3B,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;wBACnC,MAAM,EAAE,oBAAoB;wBAC5B,cAAc;wBACd,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;wBACrB,QAAQ,EAAE,KAAK,CAAC,EAAE;wBAClB,UAAU;wBACV,OAAO,EAAE,+DAA+D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,gCAAgC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;qBAC/J,CAAC,CAAC,CAAC;gBACR,CAAC;gBACD,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;YACxF,CAAC;QACL,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzF,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;YAC7B,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,SAAS,GAA2B,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;gBACvB,GAAG,KAAK;gBACR,YAAY,EAAE,iBAAiB;gBAC/B,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC;oBAC1B,kBAAkB,EAAE,OAAO,CAAC,MAAM;oBAClC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC;iBACrD,CAAC;gBACF,gBAAgB,EAAE,iBAAiB,CAAC,MAAM,KAAK,CAAC;oBAC5C,CAAC,CAAC,uBAAuB,SAAS,CAAC,KAAK,WAAW,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,KAAK,CAAC,OAAO,EAAE;oBACjH,CAAC,CAAC,2BAA2B,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;wBAC7F,uBAAuB,SAAS,CAAC,KAAK,WAAW,KAAK,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,aAAa,KAAK,CAAC,OAAO,EAAE;aAC1H,CAAC,CAAC,CAAC;YACJ,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrD,MAAM,SAAS,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvD,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBACrC,IAAI,SAAS,KAAK,CAAC;oBACf,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,CAAC;YAC3C,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtG,OAAO,eAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;gBACnC,MAAM,EAAE,kBAAkB;gBAC1B,cAAc;gBACd,SAAS,EAAE,OAAO;gBAClB,gBAAgB,EAAE,OAAO;gBACzB,OAAO,EAAE,sEAAsE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACtI,CAAC,CAAC,CAAC;QACR,CAAC;QACD,OAAO,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,YAAY,CAAC,aAAwD,EAAE,cAAiC;IAC7G,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAC,qBAAqB,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAClL,OAAO,qBAAqB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;AAC1D,CAAC;AACD,SAAS,WAAW,CAAC,aAAwD;IACzE,OAAO,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,OAAO,EAAsB,EAAE,CAAC,WAAW,CAAC,IAAI,KAAK,QAAQ;QACjK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,QAAiB;YACvB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,OAAO;YACP,IAAI,EAAE,IAAA,oCAAwB,EAAC,WAAW,CAAC,MAAM,CAAC;YAClD,WAAW,EAAE,2BAA2B,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;SACrF,CAAC;QACF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;YACZ,IAAI,EAAE,SAAkB;YACxB,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,OAAO;YACP,WAAW;YACX,WAAW,EAAE,2BAA2B,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC;SACrF,CAAC,CAAC,CAAC,CAAC,CAAC;AACd,CAAC;AACD,SAAS,cAAc,CAAC,KAAqC,EAAE,GAAG,IAA+C;IAG7G,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAC5C,KAAK,MAAM,YAAY,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QAC1C,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;YACvD,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAC/E,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;QAClH,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAChE,CAAC;AACD,SAAS,eAAe,CAAC,IAA8B,EAAE,aAAmC,EAAE,WAA8C,EAAE,UAA0C;IACpL,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,EAAE,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC;IACzE,MAAM,qBAAqB,GAAqC,CAAC,aAAa,EAAE,GAAG,WAAW,EAAE,UAAU,CAAC,CAAC;IAC5G,MAAM,wBAAwB,GAAG,CAAC,GAAG,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1I,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,wBAAwB,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,GAAG,oBAAoB,CAAC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;QACrF,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrG,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC;QAC/E,GAAG,oBAAoB,CAAC,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC;QAC3F,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC3G,GAAG,oBAAoB,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC;KACxF,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACrJ,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,WAAW;KACd,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,OAAO,eAAM,CAAC,GAAG,CAAC,YAAY,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,MAAM,EAAqB,EAAE;QACjI,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAC7E,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QACjF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;YAC9B,OAAO,EAAE,CAAU;YACnB,aAAa,EAAE,aAAa,CAAC,KAAK;YAClC,QAAQ,EAAE,IAAA,kCAAuB,EAAC,QAAQ,CAAC;YAC3C,QAAQ,EAAE,YAAY;YACtB,GAAG,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;YACtD,GAAG,CAAC,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;YACvE,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;SACnD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,aAAa,EAAE,aAAa,CAAC,KAAK;YAClC,QAAQ;YACR,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,YAAY;YACZ,MAAM;YACN,KAAK;YACL,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,GAAG,aAAa,CAAC,KAAK,CAAC,UAAU;gBACjC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;gBACzD,GAAG,UAAU,CAAC,KAAK,CAAC,UAAU;aACjC,CAAC;YACF,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC;gBACzB,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa;gBACpC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC;gBAC5D,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa;aACpC,CAAC;YACF,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACnC,wBAAwB,EAAE,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;YAC9K,GAAG,CAAC,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,SAAS;gBAChG,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACpH,WAAW;SACd,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AACD,oGAAoG;AACpG,SAAgB,6BAA6B,CAAC,IAA4B,EAAE,OAAkG;IAC1K,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;QACtB,OAAO,IAAI,CAAC;IAChB,MAAM,UAAU,GAA4C,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,MAAM;QAC1F,CAAC,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC;QACxB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,YAAY;YACtC,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC;YACtC,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAC9G,KAAK,EAAE,IAAI,KAAK,MAAM;YAClB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1C,CAAC,CAAC,IAAI,KAAK,YAAY;gBACnB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,WAAY,EAAE,CAAC;gBAChD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACxD,SAAS;KACZ,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QACpB,OAAO,IAAI,CAAC;IAChB,MAAM,OAAO,GAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;QACrD,SAAS,EAAE,IAAA,sCAAuB,EAAC,KAAK,CAAC,SAAS,CAAC;KACtD,CAAC,CAAC,CAAC;IACJ,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,GAAG,IAAI;QACP,gBAAgB,EAAE,OAAO;QACzB,wBAAwB,EAAE,IAAI,CAAC,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;QAC/G,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC;YACvB,GAAG,IAAI,CAAC,WAAW;YACnB,OAAO;SACV,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,KAAuC;IACrE,OAAO,eAAM,CAAC,OAAO,CAAC,GAAyG,EAAE;QAC7H,MAAM,MAAM,GAA6E,EAAE,CAAC;QAC5F,MAAM,MAAM,GAAuB,EAAE,CAAC;QACtC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAC5B,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACnE,MAAM,sBAAsB,GAAG,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACrF,MAAM,iBAAiB,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACnH,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAC7D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,CAAC,CAAC;gBACrH,CAAC;qBACI,IAAI,gBAAgB,CAAC,QAAQ,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC;oBACpE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,CAAC;gBAC9G,CAAC;qBACI,CAAC;oBACF,MAAM,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;wBACrC,IAAI,EAAE,QAAQ;wBACd,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;wBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;qBAC5B,CAAC,CAAC,CAAC,CAAC;gBACT,CAAC;gBACD,SAAS;YACb,CAAC;YACD,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,aAAa,GAAG,CAAC,sBAAsB,EAAE,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;YAClI,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YAC/D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,EAAE,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACtH,CAAC;iBACI,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACvH,CAAC;iBACI,CAAC;gBACF,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;oBAChD,CAAC,CAAC,CAAC,QAAQ,EAAE,sBAAsB,EAAE,gBAAgB,CAAC;oBACtD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;wBAClC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,CAAC;wBAC/F,CAAC,CAAC,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;YACnH,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YAC5C,CAAC,CAAC,eAAM,CAAC,GAAG,CAAC,eAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACP,CAAC","sourcesContent":["// discovery + selector 之后的纯 SandboxLayer linker。\n// 本模块只读 factory 产物,不读文件、不访问网络、不调用 Provider,也不创建 Sandbox。\nimport { sandboxCommandDeclarationOf, sandboxCommandIdentityJson, type SandboxCommand, type SandboxCommandDeclaration, } from \"./commands.ts\";\nimport { normalizeSandboxBeforeMetadata, sandboxActionDataOf, sandboxAfterActionDataOf, type NormalizedSandboxBeforeMetadata, type SandboxActionData, type SandboxChangeFrequency, } from \"./action.ts\";\nimport { sandboxLayer, sandboxLayerStateOf, sandboxTemplateIdentity, type SandboxLayer, type SandboxLayerKind, type SandboxLayerState, type SandboxRequirement, type SandboxBeforeDeclaration, type SandboxAfterDeclaration, type SandboxTemplateDeclaration, } from \"./layer.ts\";\nimport type { JsonValue } from \"../shared/types.ts\";\nimport type { SandboxHook } from \"./types.ts\";\nimport { Data, Effect } from \"effect\";\nimport { pluginLifecycleIdentity, pluginLifecycleProjection, type LinkedPluginLifecycle, } from \"../plugin/contracts.ts\";\nexport interface SandboxLayerDeclarationSite {\n readonly file: string;\n readonly line?: number;\n readonly column?: number;\n readonly expression?: string;\n}\nexport interface LinkedSandboxLayerDeclarationSite {\n readonly file: string;\n readonly line: SandboxDeclaredValue<number>;\n readonly column: SandboxDeclaredValue<number>;\n readonly expression: SandboxDeclaredValue<string>;\n}\nexport type SandboxDeclaredValue<Value> = {\n readonly _tag: \"Omitted\";\n} | {\n readonly _tag: \"Declared\";\n readonly value: Value;\n};\nexport interface SandboxLayerContributionInput {\n readonly id: string;\n /** undefined 表示作者省略字段;显式 sandboxLayer() 与 undefined 不等价于 Direct Agent。 */\n readonly layer?: SandboxLayer;\n readonly declaredAt?: SandboxLayerDeclarationSite;\n}\nexport interface SandboxLayerPairInput {\n readonly eval: SandboxLayerContributionInput;\n readonly group?: SandboxLayerContributionInput;\n readonly experiment: SandboxLayerContributionInput;\n readonly agent: {\n readonly kind: \"direct\" | \"sandbox\" | \"custom\";\n readonly name: string;\n readonly sandbox?: SandboxLayer<\"command-only\">;\n };\n}\nexport interface SandboxLayerOwnerRef {\n readonly kind: \"eval\" | \"eval-group\" | \"experiment\";\n readonly id: string;\n}\nexport interface SandboxAgentOwnerRef {\n readonly kind: \"agent\";\n readonly id: string;\n}\nexport type SandboxScheduleOwnerRef = SandboxLayerOwnerRef | SandboxAgentOwnerRef;\nexport interface SandboxDeclarationOrder {\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n}\nexport interface SandboxBeforeDependencyProjection {\n readonly id: string;\n readonly source: \"explicit\" | \"capability\";\n readonly capability?: string;\n}\nexport type SandboxCommandFingerprint = {\n readonly kind: \"stable\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly index: number;\n readonly id: string;\n readonly revision: string;\n readonly inputs: JsonValue;\n} | {\n readonly kind: \"opaque\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly index: number;\n};\n/** 生命周期函数本身不可序列化;这个 marker 只固定其 owner、phase 与追加位置。 */\nexport interface SandboxLifecycleFingerprint {\n readonly kind: \"opaque\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly phase: \"setup\" | \"teardown\";\n readonly index: number;\n}\nexport interface SandboxLayerDeclarationView {\n readonly owner: SandboxLayerOwnerRef;\n readonly explicit: boolean;\n readonly kind: SandboxLayerKind;\n readonly template: SandboxDeclaredValue<SandboxTemplateDeclaration>;\n readonly commands: readonly SandboxCommandFingerprint[];\n readonly declaredAt: SandboxDeclaredValue<LinkedSandboxLayerDeclarationSite>;\n}\nexport type SandboxLinkIssueCode = \"sandbox.template-missing\" | \"sandbox.template-conflict\" | \"sandbox.unexpected-for-direct-agent\" | \"eval-group-direct-agent\";\nexport interface SandboxLinkIssue {\n readonly code: SandboxLinkIssueCode;\n readonly pair: {\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentKind: \"direct\" | \"sandbox\" | \"custom\";\n readonly agentName: string;\n };\n readonly eval: SandboxLayerDeclarationView;\n readonly group?: SandboxLayerDeclarationView;\n readonly experiment: SandboxLayerDeclarationView;\n readonly summary: string;\n readonly actions: readonly string[];\n}\nexport class SandboxLayerLinkError extends Data.TaggedError(\"SandboxLayerLinkError\")<{\n readonly code: \"sandbox.link-failed\";\n readonly issues: readonly SandboxLinkIssue[];\n readonly message: string;\n}> {\n}\nexport type SandboxBeforePlanningFailureReason = \"duplicate-action-id\" | \"duplicate-capability-provider\" | \"missing-dependency\" | \"missing-capability\" | \"dependency-cycle\";\n/** Author-declared DAG failures are planning failures, never Effect defects. */\nexport class SandboxBeforePlanningError extends Data.TaggedError(\"SandboxBeforePlanningError\")<{\n readonly code: \"sandbox.before-planning-failed\";\n readonly reason: SandboxBeforePlanningFailureReason;\n readonly occurrencePath: readonly string[];\n /** Every action id directly involved in the failure, in stable declaration order. */\n readonly actionIds: readonly string[];\n readonly actionId?: string;\n readonly dependencyId?: string;\n readonly capability?: string;\n readonly providerActionIds?: readonly string[];\n readonly blockedActionIds?: readonly string[];\n readonly message: string;\n}> {\n}\nfunction beforePlanningError(input: Omit<ConstructorParameters<typeof SandboxBeforePlanningError>[0], \"code\" | \"occurrencePath\"> & {\n readonly occurrencePath: readonly string[];\n}): SandboxBeforePlanningError {\n return new SandboxBeforePlanningError({\n code: \"sandbox.before-planning-failed\",\n ...input,\n occurrencePath: Object.freeze([...input.occurrencePath]),\n actionIds: Object.freeze([...input.actionIds]),\n ...(input.providerActionIds === undefined\n ? {}\n : { providerActionIds: Object.freeze([...input.providerActionIds]) }),\n ...(input.blockedActionIds === undefined\n ? {}\n : { blockedActionIds: Object.freeze([...input.blockedActionIds]) }),\n });\n}\nfunction sandboxLayerLinkError(issues: readonly SandboxLinkIssue[]): SandboxLayerLinkError {\n const frozen = Object.freeze([...issues]);\n const counts = new Map<SandboxLinkIssueCode, number>();\n for (const issue of frozen)\n counts.set(issue.code, (counts.get(issue.code) ?? 0) + 1);\n const breakdown = [...counts].map(([code, count]) => `${code}=${count}`).join(\", \");\n return new SandboxLayerLinkError({\n code: \"sandbox.link-failed\",\n issues: frozen,\n message: `Sandbox layer linking failed for ${frozen.length} pairs` +\n `${breakdown === \"\" ? \"\" : ` (${breakdown})`}. No Sandbox was created.`,\n });\n}\nfunction declarationSummary(view: SandboxLayerDeclarationView): string {\n const expression = view.declaredAt._tag === \"Declared\" && view.declaredAt.value.expression._tag === \"Declared\"\n ? view.declaredAt.value.expression.value\n : view.template._tag === \"Declared\"\n ? `${view.template.value.provider}:${view.template.value.kind}`\n : view.explicit ? \"sandboxLayer()\" : \"<omitted>\";\n const location = view.declaredAt._tag === \"Omitted\"\n ? \"<unknown source>\"\n : `${view.declaredAt.value.file}${view.declaredAt.value.line._tag === \"Omitted\" ? \"\" : `:${view.declaredAt.value.line.value}`}`;\n return `${expression} at ${location}`;\n}\n/** CLI 面向作者的聚合错误;不泄漏框架 stack,逐 pair 给出两处声明与可执行修法。 */\nexport function formatSandboxLayerLinkError(error: SandboxLayerLinkError): string {\n const lines: string[] = [];\n for (const issue of error.issues) {\n lines.push(`${issue.code}: ${issue.summary}`);\n lines.push(` eval: ${declarationSummary(issue.eval)}`);\n if (issue.group !== undefined) {\n lines.push(` eval group: ${declarationSummary(issue.group)}`);\n }\n lines.push(` experiment: ${declarationSummary(issue.experiment)}`);\n for (const action of issue.actions)\n lines.push(` fix: ${action}`);\n lines.push(\"\");\n }\n lines.push(`${error.issues.length} invalid pairs found. No Sandbox was created.`);\n return lines.join(\"\\n\");\n}\nexport interface LinkedSandboxCommand {\n readonly owner: SandboxScheduleOwnerRef;\n /** 同一 owner layer 内从零开始的追加序号。 */\n readonly index: number;\n readonly command: SandboxCommand;\n readonly fingerprint: SandboxCommandFingerprint;\n}\ninterface LinkedSandboxBeforeBase {\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly id: string;\n readonly metadata: NormalizedSandboxBeforeMetadata;\n readonly fingerprint: SandboxCommandFingerprint;\n}\nexport type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {\n readonly kind: \"action\";\n readonly data: SandboxActionData;\n}) | (LinkedSandboxBeforeBase & {\n readonly kind: \"command\";\n readonly declaration: SandboxCommandDeclaration;\n}) | (LinkedSandboxBeforeBase & {\n readonly kind: \"hook\";\n readonly hook: SandboxHook;\n});\nexport type LinkedSandboxAfter = {\n readonly kind: \"action\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly data: SandboxActionData;\n readonly fingerprint: SandboxCommandFingerprint;\n} | {\n readonly kind: \"command\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly declaration: Extract<SandboxAfterDeclaration, {\n readonly kind: \"command\";\n }>;\n readonly fingerprint: SandboxCommandFingerprint;\n};\nexport type ScheduledSandboxBefore = LinkedSandboxBefore & {\n readonly dependencies: readonly SandboxBeforeDependencyProjection[];\n readonly executionOrder: {\n readonly topologicalOrdinal: number;\n readonly occurrencePath: readonly string[];\n };\n readonly schedulingReason: string;\n};\nexport interface SandboxLayerFingerprintProjection {\n readonly version: 1;\n readonly templateOwner: SandboxLayerOwnerRef;\n readonly template: JsonValue;\n readonly commands: readonly SandboxCommandFingerprint[];\n readonly requirements?: readonly LinkedSandboxRequirement[];\n /** Ordered cleanup shape; opaque callbacks retain owner + ordinal without serializing closures. */\n readonly after?: readonly SandboxCommandFingerprint[];\n /** 有 hook 时才出现,避免把回调实现或闭包写入 record。 */\n readonly lifecycle?: readonly SandboxLifecycleFingerprint[];\n readonly plugins?: JsonValue;\n}\nexport interface LinkedSandboxRequirement {\n readonly owner: SandboxScheduleOwnerRef;\n readonly requirement: SandboxRequirement;\n}\nexport interface LinkedSandboxPluginLifecycle {\n readonly owner: SandboxLayerOwnerRef;\n readonly lifecycle: LinkedPluginLifecycle;\n}\nexport interface LinkedSandboxPair {\n readonly kind: \"sandbox\";\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentName: string;\n readonly templateOwner: SandboxLayerOwnerRef;\n readonly template: SandboxTemplateDeclaration;\n /** template owner 的 commands 在前,另一作者的 commands 在后。 */\n readonly commands: readonly LinkedSandboxCommand[];\n /** Provider-neutral physical requirements declared by Sandbox layers. */\n readonly requirements: readonly LinkedSandboxRequirement[];\n /** 所有作者声明的 action / stable command / opaque callback 经同一 DAG 排序。 */\n readonly before: readonly ScheduledSandboxBefore[];\n /** after 只登记,执行方按此数组逆序解释,不参与 before DAG。 */\n readonly after: readonly LinkedSandboxAfter[];\n /** 物理实例生命周期:template owner 在前,另一 layer 在后。回调不进 record,但保留 marker。 */\n readonly setupHooks: readonly SandboxHook[];\n readonly teardownHooks: readonly SandboxHook[];\n /** Physical lifecycle plugins, in flattened SandboxLayer order. */\n readonly pluginLifecycles: readonly LinkedSandboxPluginLifecycle[];\n /** Eval 自己声明 author hook 或 Sandbox Plugin lifecycle 时实例不得跨 Eval 共用。 */\n readonly hasEvalPhysicalLifecycle: boolean;\n readonly evalGroupId?: string;\n readonly fingerprint: SandboxLayerFingerprintProjection;\n}\nexport interface LinkedDirectPair {\n readonly kind: \"direct\";\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentName: string;\n}\nexport type LinkedSandboxLayerPair = LinkedSandboxPair | LinkedDirectPair;\nfunction commandFingerprintIdentity(entry: SandboxCommandFingerprint): JsonValue {\n return entry.kind === \"stable\"\n ? {\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n index: entry.index,\n id: entry.id,\n revision: entry.revision,\n inputs: entry.inputs,\n }\n : {\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n index: entry.index,\n };\n}\n/** Single owner-aware identity for every physical Sandbox lifecycle cohort. */\nexport function sandboxPhysicalLifecycleIdentity(pair: LinkedSandboxLayerPair): JsonValue {\n if (pair.kind === \"direct\")\n return Object.freeze({ kind: \"direct\" });\n const author: JsonValue[] = (pair.fingerprint.lifecycle ?? []).map((entry) => ({\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n phase: entry.phase,\n index: entry.index,\n }));\n return Object.freeze({\n author,\n ...((pair.fingerprint.after?.length ?? 0) === 0\n ? {}\n : { after: pair.fingerprint.after!.map(commandFingerprintIdentity) }),\n plugins: pair.fingerprint.plugins ?? [],\n });\n}\n/**\n * 把 linked pair 按作者重新投影成缓存身份。owner id 不进身份;所在文件的 id/源码分别由\n * experiment key 与 eval source closure 拥有。Experiment 投影进 configHash,Eval 投影进\n * 每条 fingerprint,templateOwner 由两者共同可重建。\n */\nexport function sandboxLayerIdentityFor(linked: LinkedSandboxLayerPair, ownerKind: SandboxScheduleOwnerRef[\"kind\"]): JsonValue {\n if (linked.kind === \"direct\")\n return { kind: \"direct\" };\n const ownsTemplate = linked.templateOwner.kind === ownerKind;\n const commands: JsonValue[] = linked.commands\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => entry.fingerprint.kind === \"stable\"\n ? {\n kind: \"stable\" as const,\n index: entry.index,\n id: entry.fingerprint.id,\n revision: entry.fingerprint.revision,\n inputs: entry.fingerprint.inputs,\n }\n : { kind: \"opaque\" as const, index: entry.index });\n const lifecycle = linked.fingerprint.lifecycle\n ?.filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => ({ kind: entry.kind, phase: entry.phase, index: entry.index }));\n const after = (linked.fingerprint.after ?? [])\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => entry.kind === \"stable\"\n ? {\n kind: entry.kind,\n index: entry.index,\n id: entry.id,\n revision: entry.revision,\n inputs: entry.inputs,\n }\n : { kind: entry.kind, index: entry.index });\n const requirements = (linked.fingerprint.requirements ?? [])\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => ({\n _tag: entry.requirement._tag,\n docker: {\n api: entry.requirement.docker.api,\n compose: entry.requirement.docker.compose,\n isolation: entry.requirement.docker.isolation,\n minimumDataBytes: entry.requirement.docker.minimumDataBytes,\n },\n }));\n return {\n layer: ownsTemplate\n ? { _tag: \"Template\", value: sandboxTemplateIdentity(linked.template) }\n : { _tag: \"CommandOnly\" },\n commands,\n ...(requirements.length === 0 ? {} : { requirements }),\n ...(after.length === 0 ? {} : { after }),\n ...(lifecycle === undefined || lifecycle.length === 0 ? {} : { lifecycle }),\n ...(linked.pluginLifecycles.filter((entry) => entry.owner.kind === ownerKind).length === 0\n ? {}\n : { plugins: pluginLifecycleProjection(linked.pluginLifecycles.filter((entry) => entry.owner.kind === ownerKind).map((entry) => entry.lifecycle)) }),\n };\n}\ninterface NormalizedContribution {\n readonly owner: SandboxLayerOwnerRef;\n readonly explicit: boolean;\n readonly state: SandboxLayerState;\n readonly view: SandboxLayerDeclarationView;\n}\ninterface NormalizedScheduleContribution {\n readonly owner: SandboxScheduleOwnerRef;\n readonly explicit: boolean;\n readonly state: SandboxLayerState;\n}\ninterface TemplateContribution extends NormalizedContribution {\n readonly state: SandboxLayerState<\"template-bearing\">;\n}\nconst OMITTED_LAYER = sandboxLayer();\nfunction freezeOwner(kind: SandboxLayerOwnerRef[\"kind\"], id: string): SandboxLayerOwnerRef {\n return Object.freeze({ kind, id });\n}\nfunction declaredValue<Value>(value: Value | undefined): SandboxDeclaredValue<Value> {\n return value === undefined\n ? Object.freeze({ _tag: \"Omitted\" })\n : Object.freeze({ _tag: \"Declared\", value });\n}\nfunction freezeSite(site: SandboxLayerDeclarationSite | undefined): SandboxDeclaredValue<LinkedSandboxLayerDeclarationSite> {\n if (site === undefined)\n return Object.freeze({ _tag: \"Omitted\" });\n return Object.freeze({ _tag: \"Declared\", value: Object.freeze({\n file: site.file,\n line: declaredValue(site.line),\n column: declaredValue(site.column),\n expression: declaredValue(site.expression),\n }) });\n}\nfunction fingerprintCommand(owner: SandboxScheduleOwnerRef, index: number, declaration: SandboxCommandDeclaration): SandboxCommandFingerprint {\n if (declaration.kind === \"opaque\")\n return Object.freeze({ kind: \"opaque\", owner, index });\n return Object.freeze({\n kind: \"stable\",\n owner,\n index,\n id: declaration.identity.id,\n revision: declaration.identity.revision,\n inputs: sandboxCommandIdentityJson(declaration.identity.inputs),\n });\n}\nfunction actionFingerprint(owner: SandboxScheduleOwnerRef, index: number, data: SandboxActionData): SandboxCommandFingerprint {\n return Object.freeze({\n kind: \"stable\" as const,\n owner,\n index,\n id: data.metadata.id,\n revision: \"sandbox-action/v1\",\n inputs: {\n family: data.plan.family,\n state: data.plan.state,\n input: data.plan.input,\n steps: data.plan.steps,\n fingerprint: data.plan.fingerprint,\n scheduling: {\n changeFrequency: data.metadata.changeFrequency.value,\n dependsOn: data.metadata.dependsOn.map((reference) => reference.id),\n requires: [...data.metadata.requires],\n provides: [...data.metadata.provides],\n },\n } as unknown as JsonValue,\n });\n}\nfunction afterDeclarationFingerprint(owner: SandboxScheduleOwnerRef, ordinal: number, declaration: SandboxAfterDeclaration): SandboxCommandFingerprint {\n if (declaration.kind === \"action\") {\n return actionFingerprint(owner, ordinal, sandboxAfterActionDataOf(declaration.action));\n }\n return Object.freeze({ kind: \"opaque\" as const, owner, index: ordinal });\n}\nfunction generatedBeforeId(owner: SandboxScheduleOwnerRef, ordinal: number): string {\n return `${owner.kind}:${owner.id}:before:${ordinal}`;\n}\nfunction beforeFromDeclaration(owner: SandboxScheduleOwnerRef, ordinal: number, declaration: SandboxBeforeDeclaration): LinkedSandboxBefore {\n if (declaration.kind === \"action\") {\n const data = sandboxActionDataOf(declaration.action);\n return Object.freeze({\n kind: \"action\" as const,\n owner,\n ordinal,\n id: data.metadata.id,\n metadata: data.metadata,\n data,\n fingerprint: actionFingerprint(owner, ordinal, data),\n });\n }\n if (declaration.kind === \"hook\") {\n const id = generatedBeforeId(owner, ordinal);\n return Object.freeze({\n kind: \"hook\" as const,\n owner,\n ordinal,\n id,\n metadata: normalizeSandboxBeforeMetadata({ id }),\n hook: declaration.hook,\n fingerprint: Object.freeze({ kind: \"opaque\" as const, owner, index: ordinal }),\n });\n }\n const command = declaration.declaration;\n const explicit = command.kind === \"stable\" && command.metadata.explicitId;\n const id = explicit ? command.identity.id : generatedBeforeId(owner, ordinal);\n const metadata = command.kind === \"stable\"\n ? Object.freeze({ ...command.metadata.scheduling, id })\n : normalizeSandboxBeforeMetadata({ id });\n return Object.freeze({\n kind: \"command\" as const,\n owner,\n ordinal,\n id,\n metadata,\n declaration: command,\n fingerprint: fingerprintCommand(owner, ordinal, command),\n });\n}\n/** @internal Agent ensure uses the same command declaration/link path as author-owned before entries. */\nexport function linkSandboxCommandBefore(owner: SandboxScheduleOwnerRef, ordinal: number, command: SandboxCommand): LinkedSandboxBefore {\n return beforeFromDeclaration(owner, ordinal, Object.freeze({\n kind: \"command\" as const,\n declaration: sandboxCommandDeclarationOf(command),\n }));\n}\nfunction fingerprintLifecycle(owner: SandboxScheduleOwnerRef, phase: SandboxLifecycleFingerprint[\"phase\"], hooks: readonly SandboxHook[]): readonly SandboxLifecycleFingerprint[] {\n return Object.freeze(hooks.map((_, index) => Object.freeze({\n kind: \"opaque\" as const,\n owner,\n phase,\n index,\n })));\n}\nfunction normalizeAgentContribution(input: SandboxLayerPairInput[\"agent\"]): NormalizedScheduleContribution {\n const owner = Object.freeze({ kind: \"agent\" as const, id: input.name });\n const state = sandboxLayerStateOf(input.sandbox ?? OMITTED_LAYER);\n if (state.kind !== \"command-only\") {\n throw new TypeError(\"Sandbox Agent layers must be command-only and cannot provide a template\");\n }\n return Object.freeze({ owner, explicit: input.sandbox !== undefined, state });\n}\nfunction normalizeContribution(kind: SandboxLayerOwnerRef[\"kind\"], input: SandboxLayerContributionInput): NormalizedContribution {\n const owner = freezeOwner(kind, input.id);\n const explicit = input.layer !== undefined;\n const state = sandboxLayerStateOf(input.layer ?? OMITTED_LAYER);\n const commands = Object.freeze(state.before.map((declaration, index) => beforeFromDeclaration(owner, index, declaration).fingerprint));\n const template: SandboxDeclaredValue<SandboxTemplateDeclaration> = state.kind === \"template-bearing\"\n ? declaredValue(state.template)\n : Object.freeze({ _tag: \"Omitted\" });\n const view = Object.freeze({\n owner,\n explicit,\n kind: state.kind,\n template,\n commands,\n declaredAt: freezeSite(input.declaredAt),\n });\n return Object.freeze({ owner, explicit, state, view });\n}\n/** Stable identity of one author-owned layer, before it is linked with the other owners. */\nexport function sandboxLayerDefinitionIdentity(layer: SandboxLayer | undefined): JsonValue {\n const contribution = normalizeContribution(\"eval-group\", { id: \"<definition>\", layer });\n const commands: JsonValue[] = contribution.view.commands.map((command): JsonValue => command.kind === \"stable\"\n ? {\n kind: \"stable\",\n index: command.index,\n id: command.id,\n revision: command.revision,\n inputs: command.inputs,\n }\n : { kind: \"opaque\", index: command.index });\n const lifecycle: JsonValue[] = [\n ...fingerprintLifecycle(contribution.owner, \"setup\", contribution.state.setupHooks),\n ...fingerprintLifecycle(contribution.owner, \"teardown\", contribution.state.teardownHooks),\n ].map((entry) => ({ kind: entry.kind, phase: entry.phase, index: entry.index }));\n const after: JsonValue[] = contribution.state.after.map((declaration, ordinal): JsonValue => {\n const entry = afterDeclarationFingerprint(contribution.owner, ordinal, declaration);\n return entry.kind === \"stable\"\n ? { kind: entry.kind, index: entry.index, id: entry.id, revision: entry.revision, inputs: entry.inputs }\n : { kind: entry.kind, index: entry.index };\n });\n return {\n layer: contribution.state.kind === \"template-bearing\"\n ? { _tag: \"Template\", value: sandboxTemplateIdentity(contribution.state.template) }\n : { _tag: \"CommandOnly\" },\n commands,\n ...(after.length === 0 ? {} : { after }),\n ...(lifecycle.length === 0 ? {} : { lifecycle }),\n };\n}\nfunction pairRef(input: SandboxLayerPairInput): SandboxLinkIssue[\"pair\"] {\n return Object.freeze({\n evalId: input.eval.id,\n experimentId: input.experiment.id,\n agentKind: input.agent.kind,\n agentName: input.agent.name,\n });\n}\nfunction isTemplateContribution(contribution: NormalizedContribution): contribution is TemplateContribution {\n return contribution.state.kind === \"template-bearing\";\n}\nfunction issue(code: SandboxLinkIssueCode, pair: SandboxLinkIssue[\"pair\"], evalContribution: NormalizedContribution, experimentContribution: NormalizedContribution, groupContribution?: NormalizedContribution): SandboxLinkIssue {\n const group = groupContribution === undefined ? {} : { group: groupContribution.view };\n if (code === \"sandbox.template-missing\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: groupContribution === undefined\n ? `Eval \"${pair.evalId}\" and Experiment \"${pair.experimentId}\" do not declare a Sandbox template.`\n : `Eval Group \"${groupContribution.owner.id}\", Eval \"${pair.evalId}\", and Experiment \"${pair.experimentId}\" do not declare a Sandbox template.`,\n actions: Object.freeze([\n groupContribution === undefined\n ? \"Declare one template-bearing SandboxLayer on the Eval or Experiment.\"\n : \"Declare one template-bearing SandboxLayer on the Eval Group or Experiment; grouped Eval members may only contribute prepare commands.\",\n \"If this pairing is unintended, change the Experiment selector so the pair is not linked.\",\n ]),\n });\n }\n if (code === \"sandbox.template-conflict\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: groupContribution === undefined\n ? `Eval \"${pair.evalId}\" and Experiment \"${pair.experimentId}\" both declare a Sandbox template.`\n : `Eval Group \"${groupContribution.owner.id}\", Eval \"${pair.evalId}\", and Experiment \"${pair.experimentId}\" declare more than one Sandbox template.`,\n actions: Object.freeze([\n \"Keep exactly one template-bearing layer; NiceEval starts one Sandbox Case and does not merge or prioritize templates.\",\n \"If only some combinations are compatible, split the Experiment selector.\",\n ]),\n });\n }\n if (code === \"eval-group-direct-agent\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: `Eval Group \"${groupContribution!.owner.id}\" cannot run with Direct Agent \"${pair.agentName}\".`,\n actions: Object.freeze([\n \"Use a Sandbox Agent for every Experiment that selects this Eval Group.\",\n \"If the Experiment must stay direct, change its selector so it does not select grouped Evals.\",\n ]),\n });\n }\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: `Direct Agent \"${pair.agentName}\" cannot use an explicit SandboxLayer.`,\n actions: Object.freeze([\n \"Remove every explicit Eval/Experiment sandbox declaration for this pairing.\",\n \"If the task needs Sandbox operations, use a Sandbox Agent instead.\",\n ]),\n });\n}\nconst OWNER_ORDER: Readonly<Record<SandboxScheduleOwnerRef[\"kind\"], number>> = Object.freeze({\n experiment: 0,\n \"eval-group\": 1,\n eval: 2,\n agent: 3,\n});\nfunction compareText(left: string, right: string): number {\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction compareReady(left: LinkedSandboxBefore, right: LinkedSandboxBefore): number {\n return left.metadata.changeFrequency.value - right.metadata.changeFrequency.value ||\n OWNER_ORDER[left.owner.kind] - OWNER_ORDER[right.owner.kind] ||\n compareText(left.owner.id, right.owner.id) ||\n left.ordinal - right.ordinal;\n}\n/** @internal Pure Kahn scheduler shared by link and debug planning; it never invokes declarations. */\nexport function scheduleSandboxBefore(entries: readonly LinkedSandboxBefore[], occurrencePath: readonly string[]): Effect.Effect<readonly ScheduledSandboxBefore[], SandboxBeforePlanningError> {\n return Effect.suspend(() => {\n const byId = new Map<string, LinkedSandboxBefore>();\n for (const entry of entries) {\n if (byId.has(entry.id)) {\n return Effect.fail(beforePlanningError({\n reason: \"duplicate-action-id\",\n occurrencePath,\n actionIds: [entry.id],\n actionId: entry.id,\n message: `sandbox.before-planning-failed (duplicate-action-id): action ${JSON.stringify(entry.id)} is declared more than once`,\n }));\n }\n byId.set(entry.id, entry);\n }\n const capabilityProviders = new Map<string, LinkedSandboxBefore>();\n for (const entry of entries) {\n for (const capability of entry.metadata.provides) {\n const previous = capabilityProviders.get(capability);\n if (previous !== undefined) {\n const providerActionIds = [previous.id, entry.id];\n return Effect.fail(beforePlanningError({\n reason: \"duplicate-capability-provider\",\n occurrencePath,\n actionIds: providerActionIds,\n capability,\n providerActionIds,\n message: `sandbox.before-planning-failed (duplicate-capability-provider): capability ${JSON.stringify(capability)} is provided by ${providerActionIds.map((id) => JSON.stringify(id)).join(\" and \")}`,\n }));\n }\n capabilityProviders.set(capability, entry);\n }\n }\n const dependencies = new Map<string, SandboxBeforeDependencyProjection[]>();\n const outgoing = new Map<string, Set<string>>();\n const indegree = new Map(entries.map((entry) => [entry.id, 0]));\n const addEdge = (dependency: LinkedSandboxBefore, dependent: LinkedSandboxBefore, projection: SandboxBeforeDependencyProjection): void => {\n const targets = outgoing.get(dependency.id) ?? new Set<string>();\n if (!targets.has(dependent.id)) {\n targets.add(dependent.id);\n outgoing.set(dependency.id, targets);\n indegree.set(dependent.id, (indegree.get(dependent.id) ?? 0) + 1);\n }\n const projections = dependencies.get(dependent.id) ?? [];\n projections.push(Object.freeze(projection));\n dependencies.set(dependent.id, projections);\n };\n for (const entry of entries) {\n for (const reference of entry.metadata.dependsOn) {\n const dependency = byId.get(reference.id);\n if (dependency === undefined) {\n return Effect.fail(beforePlanningError({\n reason: \"missing-dependency\",\n occurrencePath,\n actionIds: [entry.id, reference.id],\n actionId: entry.id,\n dependencyId: reference.id,\n message: `sandbox.before-planning-failed (missing-dependency): action ${JSON.stringify(entry.id)} depends on missing action ${JSON.stringify(reference.id)}`,\n }));\n }\n addEdge(dependency, entry, { id: dependency.id, source: \"explicit\" });\n }\n for (const capability of entry.metadata.requires) {\n const dependency = capabilityProviders.get(capability);\n if (dependency === undefined) {\n return Effect.fail(beforePlanningError({\n reason: \"missing-capability\",\n occurrencePath,\n actionIds: [entry.id],\n actionId: entry.id,\n capability,\n message: `sandbox.before-planning-failed (missing-capability): action ${JSON.stringify(entry.id)} requires missing capability ${JSON.stringify(capability)}`,\n }));\n }\n addEdge(dependency, entry, { id: dependency.id, source: \"capability\", capability });\n }\n }\n const ready = entries.filter((entry) => indegree.get(entry.id) === 0).sort(compareReady);\n const ordered: ScheduledSandboxBefore[] = [];\n while (ready.length > 0) {\n const entry = ready.shift()!;\n const entryDependencies = Object.freeze([...(dependencies.get(entry.id) ?? [])]);\n const frequency: SandboxChangeFrequency = entry.metadata.changeFrequency;\n ordered.push(Object.freeze({\n ...entry,\n dependencies: entryDependencies,\n executionOrder: Object.freeze({\n topologicalOrdinal: ordered.length,\n occurrencePath: Object.freeze([...occurrencePath]),\n }),\n schedulingReason: entryDependencies.length === 0\n ? `ready-set frequency=${frequency.value}; owner=${entry.owner.kind}:${entry.owner.id}; ordinal=${entry.ordinal}`\n : `dependencies satisfied (${entryDependencies.map((dependency) => dependency.id).join(\", \")}); ` +\n `ready-set frequency=${frequency.value}; owner=${entry.owner.kind}:${entry.owner.id}; ordinal=${entry.ordinal}`,\n }));\n for (const dependentId of outgoing.get(entry.id) ?? []) {\n const remaining = (indegree.get(dependentId) ?? 0) - 1;\n indegree.set(dependentId, remaining);\n if (remaining === 0)\n ready.push(byId.get(dependentId)!);\n }\n ready.sort(compareReady);\n }\n if (ordered.length !== entries.length) {\n const blocked = entries.filter((entry) => (indegree.get(entry.id) ?? 0) > 0).map((entry) => entry.id);\n return Effect.fail(beforePlanningError({\n reason: \"dependency-cycle\",\n occurrencePath,\n actionIds: blocked,\n blockedActionIds: blocked,\n message: `sandbox.before-planning-failed (dependency-cycle): blocked actions ${blocked.map((id) => JSON.stringify(id)).join(\", \")}`,\n }));\n }\n return Effect.succeed(Object.freeze(ordered));\n });\n}\nfunction linkedBefore(contributions: readonly NormalizedScheduleContribution[], occurrencePath: readonly string[]): Effect.Effect<readonly ScheduledSandboxBefore[], SandboxBeforePlanningError> {\n const entries = contributions.flatMap((contribution) => contribution.state.before.map((declaration, ordinal) => beforeFromDeclaration(contribution.owner, ordinal, declaration)));\n return scheduleSandboxBefore(entries, occurrencePath);\n}\nfunction linkedAfter(contributions: readonly NormalizedScheduleContribution[]): readonly LinkedSandboxAfter[] {\n return Object.freeze(contributions.flatMap((contribution) => contribution.state.after.map((declaration, ordinal): LinkedSandboxAfter => declaration.kind === \"action\"\n ? Object.freeze({\n kind: \"action\" as const,\n owner: contribution.owner,\n ordinal,\n data: sandboxAfterActionDataOf(declaration.action),\n fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),\n })\n : Object.freeze({\n kind: \"command\" as const,\n owner: contribution.owner,\n ordinal,\n declaration,\n fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),\n }))));\n}\nfunction linkedCommands(first: NormalizedScheduleContribution, ...rest: readonly NormalizedScheduleContribution[]): {\n readonly commands: readonly LinkedSandboxCommand[];\n} {\n const commands: LinkedSandboxCommand[] = [];\n for (const contribution of [first, ...rest]) {\n contribution.state.commands.forEach((declaration, index) => {\n const fingerprint = fingerprintCommand(contribution.owner, index, declaration);\n commands.push(Object.freeze({ owner: contribution.owner, index, command: declaration.command, fingerprint }));\n });\n }\n return Object.freeze({ commands: Object.freeze(commands) });\n}\nfunction linkSandboxPair(pair: SandboxLinkIssue[\"pair\"], templateOwner: TemplateContribution, otherOwners: readonly NormalizedContribution[], agentOwner: NormalizedScheduleContribution): Effect.Effect<LinkedSandboxPair, SandboxBeforePlanningError> {\n const template = templateOwner.state.template;\n const linked = linkedCommands(templateOwner, ...otherOwners, agentOwner);\n const scheduleContributions: NormalizedScheduleContribution[] = [templateOwner, ...otherOwners, agentOwner];\n const declarationContributions = [...scheduleContributions].sort((left, right) => OWNER_ORDER[left.owner.kind] - OWNER_ORDER[right.owner.kind] ||\n compareText(left.owner.id, right.owner.id));\n const after = linkedAfter(declarationContributions);\n const lifecycle = Object.freeze([\n ...fingerprintLifecycle(templateOwner.owner, \"setup\", templateOwner.state.setupHooks),\n ...otherOwners.flatMap((owner) => fingerprintLifecycle(owner.owner, \"setup\", owner.state.setupHooks)),\n ...fingerprintLifecycle(agentOwner.owner, \"setup\", agentOwner.state.setupHooks),\n ...fingerprintLifecycle(templateOwner.owner, \"teardown\", templateOwner.state.teardownHooks),\n ...otherOwners.flatMap((owner) => fingerprintLifecycle(owner.owner, \"teardown\", owner.state.teardownHooks)),\n ...fingerprintLifecycle(agentOwner.owner, \"teardown\", agentOwner.state.teardownHooks),\n ]);\n const requirements = Object.freeze(declarationContributions.flatMap((contribution) => contribution.state.requirements.map((requirement) => Object.freeze({\n owner: contribution.owner,\n requirement,\n }))));\n return Effect.map(linkedBefore(declarationContributions, [pair.experimentId, pair.evalId, \"attempt\"]), (before): LinkedSandboxPair => {\n const fingerprints = Object.freeze(before.map((entry) => entry.fingerprint));\n const afterFingerprints = Object.freeze(after.map((entry) => entry.fingerprint));\n const fingerprint = Object.freeze({\n version: 1 as const,\n templateOwner: templateOwner.owner,\n template: sandboxTemplateIdentity(template),\n commands: fingerprints,\n ...(requirements.length === 0 ? {} : { requirements }),\n ...(afterFingerprints.length === 0 ? {} : { after: afterFingerprints }),\n ...(lifecycle.length === 0 ? {} : { lifecycle }),\n });\n return Object.freeze({\n kind: \"sandbox\",\n evalId: pair.evalId,\n experimentId: pair.experimentId,\n agentName: pair.agentName,\n templateOwner: templateOwner.owner,\n template,\n commands: linked.commands,\n requirements,\n before,\n after,\n setupHooks: Object.freeze([\n ...templateOwner.state.setupHooks,\n ...otherOwners.flatMap((owner) => owner.state.setupHooks),\n ...agentOwner.state.setupHooks,\n ]),\n teardownHooks: Object.freeze([\n ...templateOwner.state.teardownHooks,\n ...otherOwners.flatMap((owner) => owner.state.teardownHooks),\n ...agentOwner.state.teardownHooks,\n ]),\n pluginLifecycles: Object.freeze([]),\n hasEvalPhysicalLifecycle: [templateOwner, ...otherOwners].some((owner) => owner.owner.kind === \"eval\" && owner.state.setupHooks.length + owner.state.teardownHooks.length > 0),\n ...([templateOwner, ...otherOwners].find((owner) => owner.owner.kind === \"eval-group\") === undefined\n ? {}\n : { evalGroupId: [templateOwner, ...otherOwners].find((owner) => owner.owner.kind === \"eval-group\")!.owner.id }),\n fingerprint,\n });\n });\n}\n/** @internal Attach automatically projected Plugin sandbox fragments after author layer linking. */\nexport function attachSandboxPluginLifecycles(pair: LinkedSandboxLayerPair, byOwner: Readonly<Partial<Record<SandboxLayerOwnerRef[\"kind\"], readonly LinkedPluginLifecycle[]>>>): LinkedSandboxLayerPair {\n if (pair.kind === \"direct\")\n return pair;\n const ownerOrder: readonly SandboxLayerOwnerRef[\"kind\"][] = pair.templateOwner.kind === \"eval\"\n ? [\"eval\", \"experiment\"]\n : pair.templateOwner.kind === \"eval-group\"\n ? [\"eval-group\", \"experiment\", \"eval\"]\n : [\"experiment\", \"eval-group\", \"eval\"];\n const entries = Object.freeze(ownerOrder.flatMap((kind) => (byOwner[kind] ?? []).map((lifecycle) => Object.freeze({\n owner: kind === \"eval\"\n ? Object.freeze({ kind, id: pair.evalId })\n : kind === \"eval-group\"\n ? Object.freeze({ kind, id: pair.evalGroupId! })\n : Object.freeze({ kind, id: pair.experimentId }),\n lifecycle,\n }))));\n if (entries.length === 0)\n return pair;\n const plugins: JsonValue[] = entries.map((entry) => ({\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n lifecycle: pluginLifecycleIdentity(entry.lifecycle),\n }));\n return Object.freeze({\n ...pair,\n pluginLifecycles: entries,\n hasEvalPhysicalLifecycle: pair.hasEvalPhysicalLifecycle || entries.some((entry) => entry.owner.kind === \"eval\"),\n fingerprint: Object.freeze({\n ...pair.fingerprint,\n plugins,\n }),\n });\n}\n/**\n * 对 discovery/selector 产出的实际 pair 全矩阵做一次纯 link。发现任何问题时遍历完全部输入后\n * 通过 Effect error channel 返回聚合错误;调用方因此可以在任何 Provider I/O 前一次展示全部修法。\n */\nexport function linkSandboxLayers(pairs: readonly SandboxLayerPairInput[]): Effect.Effect<readonly LinkedSandboxLayerPair[], SandboxLayerLinkError | SandboxBeforePlanningError> {\n return Effect.suspend((): Effect.Effect<readonly LinkedSandboxLayerPair[], SandboxLayerLinkError | SandboxBeforePlanningError> => {\n const linked: Array<Effect.Effect<LinkedSandboxLayerPair, SandboxBeforePlanningError>> = [];\n const issues: SandboxLinkIssue[] = [];\n for (const input of pairs) {\n const pair = pairRef(input);\n const evalContribution = normalizeContribution(\"eval\", input.eval);\n const experimentContribution = normalizeContribution(\"experiment\", input.experiment);\n const groupContribution = input.group === undefined ? undefined : normalizeContribution(\"eval-group\", input.group);\n if (pair.agentKind === \"direct\" || pair.agentKind === \"custom\") {\n if (groupContribution !== undefined) {\n issues.push(issue(\"eval-group-direct-agent\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else if (evalContribution.explicit || experimentContribution.explicit) {\n issues.push(issue(\"sandbox.unexpected-for-direct-agent\", pair, evalContribution, experimentContribution));\n }\n else {\n linked.push(Effect.succeed(Object.freeze({\n kind: \"direct\",\n evalId: pair.evalId,\n experimentId: pair.experimentId,\n agentName: pair.agentName,\n })));\n }\n continue;\n }\n const agentContribution = normalizeAgentContribution(input.agent);\n const contributions = [experimentContribution, ...(groupContribution === undefined ? [] : [groupContribution]), evalContribution];\n const templates = contributions.filter(isTemplateContribution);\n if (templates.length === 0) {\n issues.push(issue(\"sandbox.template-missing\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else if (templates.length > 1) {\n issues.push(issue(\"sandbox.template-conflict\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else {\n const template = templates[0]!;\n const ordered = template.owner.kind === \"eval-group\"\n ? [template, experimentContribution, evalContribution]\n : template.owner.kind === \"experiment\"\n ? [template, ...(groupContribution === undefined ? [] : [groupContribution]), evalContribution]\n : [template, experimentContribution];\n linked.push(linkSandboxPair(pair, template, ordered.filter((owner) => owner !== template), agentContribution));\n }\n }\n return issues.length > 0\n ? Effect.fail(sandboxLayerLinkError(issues))\n : Effect.map(Effect.all(linked), (values) => Object.freeze(values));\n });\n}\n"]}
|
|
1
|
+
{"version":3,"file":"link.js","sourceRoot":"","sources":["link.ts"],"names":[],"mappings":"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","sourcesContent":["// discovery + selector 之后的纯 SandboxLayer linker。\n// 本模块只读 factory 产物,不读文件、不访问网络、不调用 Provider,也不创建 Sandbox。\nimport { sandboxCommandDeclarationOf, sandboxCommandIdentityJson, type SandboxCommand, type SandboxCommandDeclaration, } from \"./commands.ts\";\nimport { normalizeSandboxBeforeMetadata, sandboxActionDataOf, sandboxAfterActionDataOf, type NormalizedSandboxBeforeMetadata, type SandboxActionData, type SandboxChangeFrequency, } from \"./action.ts\";\nimport { sandboxLayer, sandboxLayerStateOf, sandboxTemplateIdentity, type SandboxLayer, type SandboxLayerKind, type SandboxLayerState, type SandboxRequirement, type SandboxBeforeDeclaration, type SandboxAfterDeclaration, type SandboxTemplateDeclaration, } from \"./layer.ts\";\nimport type { JsonValue } from \"../shared/types.ts\";\nimport type { SandboxHook } from \"./types.ts\";\nimport { Data, Effect } from \"effect\";\nimport { pluginSourceOf, pluginLifecycleIdentity, pluginLifecycleProjection, type LinkedPluginLifecycle, } from \"../plugin/contracts.ts\";\nexport interface SandboxLayerDeclarationSite {\n readonly file: string;\n readonly line?: number;\n readonly column?: number;\n readonly expression?: string;\n}\nexport interface LinkedSandboxLayerDeclarationSite {\n readonly file: string;\n readonly line: SandboxDeclaredValue<number>;\n readonly column: SandboxDeclaredValue<number>;\n readonly expression: SandboxDeclaredValue<string>;\n}\nexport type SandboxDeclaredValue<Value> = {\n readonly _tag: \"Omitted\";\n} | {\n readonly _tag: \"Declared\";\n readonly value: Value;\n};\nexport interface SandboxLayerContributionInput {\n readonly id: string;\n /** undefined 表示作者省略字段;显式 sandboxLayer() 与 undefined 不等价于 Direct Agent。 */\n readonly layer?: SandboxLayer;\n readonly declaredAt?: SandboxLayerDeclarationSite;\n}\nexport interface SandboxLayerPairInput {\n readonly eval: SandboxLayerContributionInput;\n readonly group?: SandboxLayerContributionInput;\n readonly experiment: SandboxLayerContributionInput;\n readonly agent: {\n readonly kind: \"direct\" | \"sandbox\" | \"custom\";\n readonly name: string;\n readonly sandbox?: SandboxLayer<\"command-only\">;\n };\n}\nexport interface SandboxLayerOwnerRef {\n readonly kind: \"eval\" | \"eval-group\" | \"experiment\";\n readonly id: string;\n}\nexport interface SandboxAgentOwnerRef {\n readonly kind: \"agent\";\n readonly id: string;\n}\nexport type SandboxScheduleOwnerRef = SandboxLayerOwnerRef | SandboxAgentOwnerRef;\nexport interface SandboxDeclarationOrder {\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n}\nexport interface SandboxBeforeDependencyProjection {\n readonly id: string;\n readonly source: \"explicit\" | \"capability\";\n readonly capability?: string;\n}\nexport type SandboxCommandFingerprint = {\n readonly kind: \"stable\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly index: number;\n readonly id: string;\n readonly revision: string;\n readonly inputs: JsonValue;\n} | {\n readonly kind: \"opaque\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly index: number;\n};\n/** 生命周期函数本身不可序列化;这个 marker 只固定其 owner、phase 与追加位置。 */\nexport interface SandboxLifecycleFingerprint {\n readonly kind: \"opaque\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly phase: \"setup\" | \"teardown\";\n readonly index: number;\n}\nexport interface SandboxLayerDeclarationView {\n readonly owner: SandboxLayerOwnerRef;\n readonly explicit: boolean;\n readonly kind: SandboxLayerKind;\n readonly template: SandboxDeclaredValue<SandboxTemplateDeclaration>;\n readonly commands: readonly SandboxCommandFingerprint[];\n readonly declaredAt: SandboxDeclaredValue<LinkedSandboxLayerDeclarationSite>;\n}\nexport type SandboxLinkIssueCode = \"sandbox.template-missing\" | \"sandbox.template-conflict\" | \"sandbox.unexpected-for-direct-agent\" | \"eval-group-direct-agent\";\nexport interface SandboxLinkIssue {\n readonly code: SandboxLinkIssueCode;\n readonly pair: {\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentKind: \"direct\" | \"sandbox\" | \"custom\";\n readonly agentName: string;\n };\n readonly eval: SandboxLayerDeclarationView;\n readonly group?: SandboxLayerDeclarationView;\n readonly experiment: SandboxLayerDeclarationView;\n readonly summary: string;\n readonly actions: readonly string[];\n}\nexport class SandboxLayerLinkError extends Data.TaggedError(\"SandboxLayerLinkError\")<{\n readonly code: \"sandbox.link-failed\";\n readonly issues: readonly SandboxLinkIssue[];\n readonly message: string;\n}> {\n}\nexport type SandboxBeforePlanningFailureReason = \"duplicate-action-id\" | \"duplicate-capability-provider\" | \"missing-dependency\" | \"missing-capability\" | \"dependency-cycle\";\n/** Author-declared DAG failures are planning failures, never Effect defects. */\nexport class SandboxBeforePlanningError extends Data.TaggedError(\"SandboxBeforePlanningError\")<{\n readonly code: \"sandbox.before-planning-failed\";\n readonly reason: SandboxBeforePlanningFailureReason;\n readonly occurrencePath: readonly string[];\n /** Every action id directly involved in the failure, in stable declaration order. */\n readonly actionIds: readonly string[];\n readonly actionId?: string;\n readonly dependencyId?: string;\n readonly capability?: string;\n readonly providerActionIds?: readonly string[];\n readonly blockedActionIds?: readonly string[];\n readonly message: string;\n}> {\n}\nfunction beforePlanningError(input: Omit<ConstructorParameters<typeof SandboxBeforePlanningError>[0], \"code\" | \"occurrencePath\"> & {\n readonly occurrencePath: readonly string[];\n}): SandboxBeforePlanningError {\n return new SandboxBeforePlanningError({\n code: \"sandbox.before-planning-failed\",\n ...input,\n occurrencePath: Object.freeze([...input.occurrencePath]),\n actionIds: Object.freeze([...input.actionIds]),\n ...(input.providerActionIds === undefined\n ? {}\n : { providerActionIds: Object.freeze([...input.providerActionIds]) }),\n ...(input.blockedActionIds === undefined\n ? {}\n : { blockedActionIds: Object.freeze([...input.blockedActionIds]) }),\n });\n}\nfunction sandboxLayerLinkError(issues: readonly SandboxLinkIssue[]): SandboxLayerLinkError {\n const frozen = Object.freeze([...issues]);\n const counts = new Map<SandboxLinkIssueCode, number>();\n for (const issue of frozen)\n counts.set(issue.code, (counts.get(issue.code) ?? 0) + 1);\n const breakdown = [...counts].map(([code, count]) => `${code}=${count}`).join(\", \");\n return new SandboxLayerLinkError({\n code: \"sandbox.link-failed\",\n issues: frozen,\n message: `Sandbox layer linking failed for ${frozen.length} pairs` +\n `${breakdown === \"\" ? \"\" : ` (${breakdown})`}. No Sandbox was created.`,\n });\n}\nfunction declarationSummary(view: SandboxLayerDeclarationView): string {\n const expression = view.declaredAt._tag === \"Declared\" && view.declaredAt.value.expression._tag === \"Declared\"\n ? view.declaredAt.value.expression.value\n : view.template._tag === \"Declared\"\n ? `${view.template.value.provider}:${view.template.value.kind}`\n : view.explicit ? \"sandboxLayer()\" : \"<omitted>\";\n const location = view.declaredAt._tag === \"Omitted\"\n ? \"<unknown source>\"\n : `${view.declaredAt.value.file}${view.declaredAt.value.line._tag === \"Omitted\" ? \"\" : `:${view.declaredAt.value.line.value}`}`;\n return `${expression} at ${location}`;\n}\n/** CLI 面向作者的聚合错误;不泄漏框架 stack,逐 pair 给出两处声明与可执行修法。 */\nexport function formatSandboxLayerLinkError(error: SandboxLayerLinkError): string {\n const lines: string[] = [];\n for (const issue of error.issues) {\n lines.push(`${issue.code}: ${issue.summary}`);\n lines.push(` eval: ${declarationSummary(issue.eval)}`);\n if (issue.group !== undefined) {\n lines.push(` eval group: ${declarationSummary(issue.group)}`);\n }\n lines.push(` experiment: ${declarationSummary(issue.experiment)}`);\n for (const action of issue.actions)\n lines.push(` fix: ${action}`);\n lines.push(\"\");\n }\n lines.push(`${error.issues.length} invalid pairs found. No Sandbox was created.`);\n return lines.join(\"\\n\");\n}\nexport interface LinkedSandboxCommand {\n readonly owner: SandboxScheduleOwnerRef;\n /** 同一 owner layer 内从零开始的追加序号。 */\n readonly index: number;\n readonly command: SandboxCommand;\n readonly fingerprint: SandboxCommandFingerprint;\n}\ninterface LinkedSandboxBeforeBase {\n readonly pluginSource?: string;\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly id: string;\n readonly metadata: NormalizedSandboxBeforeMetadata;\n readonly fingerprint: SandboxCommandFingerprint;\n}\nexport type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {\n readonly kind: \"action\";\n readonly data: SandboxActionData;\n}) | (LinkedSandboxBeforeBase & {\n readonly kind: \"command\";\n readonly declaration: SandboxCommandDeclaration;\n}) | (LinkedSandboxBeforeBase & {\n readonly kind: \"hook\";\n readonly hook: SandboxHook;\n});\nexport type LinkedSandboxAfter = {\n readonly pluginSource?: string;\n readonly kind: \"action\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly data: SandboxActionData;\n readonly fingerprint: SandboxCommandFingerprint;\n} | {\n readonly pluginSource?: string;\n readonly kind: \"command\";\n readonly owner: SandboxScheduleOwnerRef;\n readonly ordinal: number;\n readonly declaration: Extract<SandboxAfterDeclaration, {\n readonly kind: \"command\";\n }>;\n readonly fingerprint: SandboxCommandFingerprint;\n};\nexport type ScheduledSandboxBefore = LinkedSandboxBefore & {\n readonly dependencies: readonly SandboxBeforeDependencyProjection[];\n readonly executionOrder: {\n readonly topologicalOrdinal: number;\n readonly occurrencePath: readonly string[];\n };\n readonly schedulingReason: string;\n};\nexport interface SandboxLayerFingerprintProjection {\n readonly version: 1;\n readonly templateOwner: SandboxLayerOwnerRef;\n readonly template: JsonValue;\n readonly commands: readonly SandboxCommandFingerprint[];\n readonly requirements?: readonly LinkedSandboxRequirement[];\n /** Ordered cleanup shape; opaque callbacks retain owner + ordinal without serializing closures. */\n readonly after?: readonly SandboxCommandFingerprint[];\n /** 有 hook 时才出现,避免把回调实现或闭包写入 record。 */\n readonly lifecycle?: readonly SandboxLifecycleFingerprint[];\n readonly plugins?: JsonValue;\n}\nexport interface LinkedSandboxRequirement {\n readonly owner: SandboxScheduleOwnerRef;\n readonly requirement: SandboxRequirement;\n}\nexport interface LinkedSandboxPluginLifecycle {\n readonly owner: SandboxLayerOwnerRef;\n readonly lifecycle: LinkedPluginLifecycle;\n}\nexport interface LinkedSandboxPair {\n readonly kind: \"sandbox\";\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentName: string;\n readonly templateOwner: SandboxLayerOwnerRef;\n readonly template: SandboxTemplateDeclaration;\n /** template owner 的 commands 在前,另一作者的 commands 在后。 */\n readonly commands: readonly LinkedSandboxCommand[];\n /** Provider-neutral physical requirements declared by Sandbox layers. */\n readonly requirements: readonly LinkedSandboxRequirement[];\n /** 所有作者声明的 action / stable command / opaque callback 经同一 DAG 排序。 */\n readonly before: readonly ScheduledSandboxBefore[];\n /** after 只登记,执行方按此数组逆序解释,不参与 before DAG。 */\n readonly after: readonly LinkedSandboxAfter[];\n /** 物理实例生命周期:template owner 在前,另一 layer 在后。回调不进 record,但保留 marker。 */\n readonly setupHooks: readonly SandboxHook[];\n readonly teardownHooks: readonly SandboxHook[];\n /** Physical lifecycle plugins, in flattened SandboxLayer order. */\n readonly pluginLifecycles: readonly LinkedSandboxPluginLifecycle[];\n /** Eval 自己声明 author hook 或 Sandbox Plugin lifecycle 时实例不得跨 Eval 共用。 */\n readonly hasEvalPhysicalLifecycle: boolean;\n readonly evalGroupId?: string;\n readonly fingerprint: SandboxLayerFingerprintProjection;\n}\nexport interface LinkedDirectPair {\n readonly kind: \"direct\";\n readonly evalId: string;\n readonly experimentId: string;\n readonly agentName: string;\n}\nexport type LinkedSandboxLayerPair = LinkedSandboxPair | LinkedDirectPair;\nfunction commandFingerprintIdentity(entry: SandboxCommandFingerprint): JsonValue {\n return entry.kind === \"stable\"\n ? {\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n index: entry.index,\n id: entry.id,\n revision: entry.revision,\n inputs: entry.inputs,\n }\n : {\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n index: entry.index,\n };\n}\n/** Single owner-aware identity for every physical Sandbox lifecycle cohort. */\nexport function sandboxPhysicalLifecycleIdentity(pair: LinkedSandboxLayerPair): JsonValue {\n if (pair.kind === \"direct\")\n return Object.freeze({ kind: \"direct\" });\n const author: JsonValue[] = (pair.fingerprint.lifecycle ?? []).map((entry) => ({\n kind: entry.kind,\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n phase: entry.phase,\n index: entry.index,\n }));\n return Object.freeze({\n author,\n ...((pair.fingerprint.after?.length ?? 0) === 0\n ? {}\n : { after: pair.fingerprint.after!.map(commandFingerprintIdentity) }),\n plugins: pair.fingerprint.plugins ?? [],\n });\n}\n/**\n * 把 linked pair 按作者重新投影成缓存身份。owner id 不进身份;所在文件的 id/源码分别由\n * experiment key 与 eval source closure 拥有。Experiment 投影进 configHash,Eval 投影进\n * 每条 fingerprint,templateOwner 由两者共同可重建。\n */\nexport function sandboxLayerIdentityFor(linked: LinkedSandboxLayerPair, ownerKind: SandboxScheduleOwnerRef[\"kind\"]): JsonValue {\n if (linked.kind === \"direct\")\n return { kind: \"direct\" };\n const ownsTemplate = linked.templateOwner.kind === ownerKind;\n const commands: JsonValue[] = linked.commands\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => entry.fingerprint.kind === \"stable\"\n ? {\n kind: \"stable\" as const,\n index: entry.index,\n id: entry.fingerprint.id,\n revision: entry.fingerprint.revision,\n inputs: entry.fingerprint.inputs,\n }\n : { kind: \"opaque\" as const, index: entry.index });\n const lifecycle = linked.fingerprint.lifecycle\n ?.filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => ({ kind: entry.kind, phase: entry.phase, index: entry.index }));\n const after = (linked.fingerprint.after ?? [])\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => entry.kind === \"stable\"\n ? {\n kind: entry.kind,\n index: entry.index,\n id: entry.id,\n revision: entry.revision,\n inputs: entry.inputs,\n }\n : { kind: entry.kind, index: entry.index });\n const requirements = (linked.fingerprint.requirements ?? [])\n .filter((entry) => entry.owner.kind === ownerKind)\n .map((entry): JsonValue => ({\n _tag: entry.requirement._tag,\n docker: {\n api: entry.requirement.docker.api,\n compose: entry.requirement.docker.compose,\n isolation: entry.requirement.docker.isolation,\n minimumDataBytes: entry.requirement.docker.minimumDataBytes,\n },\n }));\n return {\n layer: ownsTemplate\n ? { _tag: \"Template\", value: sandboxTemplateIdentity(linked.template) }\n : { _tag: \"CommandOnly\" },\n commands,\n ...(requirements.length === 0 ? {} : { requirements }),\n ...(after.length === 0 ? {} : { after }),\n ...(lifecycle === undefined || lifecycle.length === 0 ? {} : { lifecycle }),\n ...(linked.pluginLifecycles.filter((entry) => entry.owner.kind === ownerKind).length === 0\n ? {}\n : { plugins: pluginLifecycleProjection(linked.pluginLifecycles.filter((entry) => entry.owner.kind === ownerKind).map((entry) => entry.lifecycle)) }),\n };\n}\ninterface NormalizedContribution {\n readonly owner: SandboxLayerOwnerRef;\n readonly explicit: boolean;\n readonly state: SandboxLayerState;\n readonly view: SandboxLayerDeclarationView;\n}\ninterface NormalizedScheduleContribution {\n readonly owner: SandboxScheduleOwnerRef;\n readonly explicit: boolean;\n readonly state: SandboxLayerState;\n}\ninterface TemplateContribution extends NormalizedContribution {\n readonly state: SandboxLayerState<\"template-bearing\">;\n}\nconst OMITTED_LAYER = sandboxLayer();\nfunction freezeOwner(kind: SandboxLayerOwnerRef[\"kind\"], id: string): SandboxLayerOwnerRef {\n return Object.freeze({ kind, id });\n}\nfunction declaredValue<Value>(value: Value | undefined): SandboxDeclaredValue<Value> {\n return value === undefined\n ? Object.freeze({ _tag: \"Omitted\" })\n : Object.freeze({ _tag: \"Declared\", value });\n}\nfunction freezeSite(site: SandboxLayerDeclarationSite | undefined): SandboxDeclaredValue<LinkedSandboxLayerDeclarationSite> {\n if (site === undefined)\n return Object.freeze({ _tag: \"Omitted\" });\n return Object.freeze({ _tag: \"Declared\", value: Object.freeze({\n file: site.file,\n line: declaredValue(site.line),\n column: declaredValue(site.column),\n expression: declaredValue(site.expression),\n }) });\n}\nfunction fingerprintCommand(owner: SandboxScheduleOwnerRef, index: number, declaration: SandboxCommandDeclaration): SandboxCommandFingerprint {\n if (declaration.kind === \"opaque\")\n return Object.freeze({ kind: \"opaque\", owner, index });\n return Object.freeze({\n kind: \"stable\",\n owner,\n index,\n id: declaration.identity.id,\n revision: declaration.identity.revision,\n inputs: sandboxCommandIdentityJson(declaration.identity.inputs),\n });\n}\nfunction actionFingerprint(owner: SandboxScheduleOwnerRef, index: number, data: SandboxActionData): SandboxCommandFingerprint {\n return Object.freeze({\n kind: \"stable\" as const,\n owner,\n index,\n id: data.metadata.id,\n revision: \"sandbox-action/v1\",\n inputs: {\n family: data.plan.family,\n state: data.plan.state,\n input: data.plan.input,\n steps: data.plan.steps,\n fingerprint: data.plan.fingerprint,\n scheduling: {\n changeFrequency: data.metadata.changeFrequency.value,\n dependsOn: data.metadata.dependsOn.map((reference) => reference.id),\n requires: [...data.metadata.requires],\n provides: [...data.metadata.provides],\n },\n } as unknown as JsonValue,\n });\n}\nfunction afterDeclarationFingerprint(owner: SandboxScheduleOwnerRef, ordinal: number, declaration: SandboxAfterDeclaration): SandboxCommandFingerprint {\n if (declaration.kind === \"action\") {\n return actionFingerprint(owner, ordinal, sandboxAfterActionDataOf(declaration.action));\n }\n return Object.freeze({ kind: \"opaque\" as const, owner, index: ordinal });\n}\nfunction generatedBeforeId(owner: SandboxScheduleOwnerRef, ordinal: number): string {\n return `${owner.kind}:${owner.id}:before:${ordinal}`;\n}\nfunction beforeFromDeclaration(owner: SandboxScheduleOwnerRef, ordinal: number, declaration: SandboxBeforeDeclaration): LinkedSandboxBefore {\n if (declaration.kind === \"action\") {\n const data = sandboxActionDataOf(declaration.action);\n return Object.freeze({\n kind: \"action\" as const,\n owner,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n ordinal,\n id: data.metadata.id,\n metadata: data.metadata,\n data,\n fingerprint: actionFingerprint(owner, ordinal, data),\n });\n }\n if (declaration.kind === \"hook\") {\n const id = generatedBeforeId(owner, ordinal);\n return Object.freeze({\n kind: \"hook\" as const,\n owner,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n ordinal,\n id,\n metadata: normalizeSandboxBeforeMetadata({ id }),\n hook: declaration.hook,\n fingerprint: Object.freeze({ kind: \"opaque\" as const, owner, index: ordinal }),\n });\n }\n const command = declaration.declaration;\n const explicit = command.kind === \"stable\" && command.metadata.explicitId;\n const id = explicit ? command.identity.id : generatedBeforeId(owner, ordinal);\n const metadata = command.kind === \"stable\"\n ? Object.freeze({ ...command.metadata.scheduling, id })\n : normalizeSandboxBeforeMetadata({ id });\n return Object.freeze({\n kind: \"command\" as const,\n owner,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n ordinal,\n id,\n metadata,\n declaration: command,\n fingerprint: fingerprintCommand(owner, ordinal, command),\n });\n}\n/** @internal Agent ensure uses the same command declaration/link path as author-owned before entries. */\nexport function linkSandboxCommandBefore(owner: SandboxScheduleOwnerRef, ordinal: number, command: SandboxCommand): LinkedSandboxBefore {\n return beforeFromDeclaration(owner, ordinal, Object.freeze({\n kind: \"command\" as const,\n declaration: sandboxCommandDeclarationOf(command),\n }));\n}\nfunction fingerprintLifecycle(owner: SandboxScheduleOwnerRef, phase: SandboxLifecycleFingerprint[\"phase\"], hooks: readonly SandboxHook[]): readonly SandboxLifecycleFingerprint[] {\n return Object.freeze(hooks.map((_, index) => Object.freeze({\n kind: \"opaque\" as const,\n owner,\n phase,\n index,\n })));\n}\nfunction normalizeAgentContribution(input: SandboxLayerPairInput[\"agent\"]): NormalizedScheduleContribution {\n const owner = Object.freeze({ kind: \"agent\" as const, id: input.name });\n const state = sandboxLayerStateOf(input.sandbox ?? OMITTED_LAYER);\n if (state.kind !== \"command-only\") {\n throw new TypeError(\"Sandbox Agent layers must be command-only and cannot provide a template\");\n }\n return Object.freeze({ owner, explicit: input.sandbox !== undefined, state });\n}\nfunction normalizeContribution(kind: SandboxLayerOwnerRef[\"kind\"], input: SandboxLayerContributionInput): NormalizedContribution {\n const owner = freezeOwner(kind, input.id);\n const explicit = input.layer !== undefined;\n const state = sandboxLayerStateOf(input.layer ?? OMITTED_LAYER);\n const commands = Object.freeze(state.before.map((declaration, index) => beforeFromDeclaration(owner, index, declaration).fingerprint));\n const template: SandboxDeclaredValue<SandboxTemplateDeclaration> = state.kind === \"template-bearing\"\n ? declaredValue(state.template)\n : Object.freeze({ _tag: \"Omitted\" });\n const view = Object.freeze({\n owner,\n explicit,\n kind: state.kind,\n template,\n commands,\n declaredAt: freezeSite(input.declaredAt),\n });\n return Object.freeze({ owner, explicit, state, view });\n}\n/** Stable identity of one author-owned layer, before it is linked with the other owners. */\nexport function sandboxLayerDefinitionIdentity(layer: SandboxLayer | undefined): JsonValue {\n const contribution = normalizeContribution(\"eval-group\", { id: \"<definition>\", layer });\n const commands: JsonValue[] = contribution.view.commands.map((command): JsonValue => command.kind === \"stable\"\n ? {\n kind: \"stable\",\n index: command.index,\n id: command.id,\n revision: command.revision,\n inputs: command.inputs,\n }\n : { kind: \"opaque\", index: command.index });\n const lifecycle: JsonValue[] = [\n ...fingerprintLifecycle(contribution.owner, \"setup\", contribution.state.setupHooks),\n ...fingerprintLifecycle(contribution.owner, \"teardown\", contribution.state.teardownHooks),\n ].map((entry) => ({ kind: entry.kind, phase: entry.phase, index: entry.index }));\n const after: JsonValue[] = contribution.state.after.map((declaration, ordinal): JsonValue => {\n const entry = afterDeclarationFingerprint(contribution.owner, ordinal, declaration);\n return entry.kind === \"stable\"\n ? { kind: entry.kind, index: entry.index, id: entry.id, revision: entry.revision, inputs: entry.inputs }\n : { kind: entry.kind, index: entry.index };\n });\n return {\n layer: contribution.state.kind === \"template-bearing\"\n ? { _tag: \"Template\", value: sandboxTemplateIdentity(contribution.state.template) }\n : { _tag: \"CommandOnly\" },\n commands,\n ...(after.length === 0 ? {} : { after }),\n ...(lifecycle.length === 0 ? {} : { lifecycle }),\n };\n}\nfunction pairRef(input: SandboxLayerPairInput): SandboxLinkIssue[\"pair\"] {\n return Object.freeze({\n evalId: input.eval.id,\n experimentId: input.experiment.id,\n agentKind: input.agent.kind,\n agentName: input.agent.name,\n });\n}\nfunction isTemplateContribution(contribution: NormalizedContribution): contribution is TemplateContribution {\n return contribution.state.kind === \"template-bearing\";\n}\nfunction issue(code: SandboxLinkIssueCode, pair: SandboxLinkIssue[\"pair\"], evalContribution: NormalizedContribution, experimentContribution: NormalizedContribution, groupContribution?: NormalizedContribution): SandboxLinkIssue {\n const group = groupContribution === undefined ? {} : { group: groupContribution.view };\n if (code === \"sandbox.template-missing\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: groupContribution === undefined\n ? `Eval \"${pair.evalId}\" and Experiment \"${pair.experimentId}\" do not declare a Sandbox template.`\n : `Eval Group \"${groupContribution.owner.id}\", Eval \"${pair.evalId}\", and Experiment \"${pair.experimentId}\" do not declare a Sandbox template.`,\n actions: Object.freeze([\n groupContribution === undefined\n ? \"Declare one template-bearing SandboxLayer on the Eval or Experiment.\"\n : \"Declare one template-bearing SandboxLayer on the Eval Group or Experiment; grouped Eval members may only contribute prepare commands.\",\n \"If this pairing is unintended, change the Experiment selector so the pair is not linked.\",\n ]),\n });\n }\n if (code === \"sandbox.template-conflict\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: groupContribution === undefined\n ? `Eval \"${pair.evalId}\" and Experiment \"${pair.experimentId}\" both declare a Sandbox template.`\n : `Eval Group \"${groupContribution.owner.id}\", Eval \"${pair.evalId}\", and Experiment \"${pair.experimentId}\" declare more than one Sandbox template.`,\n actions: Object.freeze([\n \"Keep exactly one template-bearing layer; NiceEval starts one Sandbox Case and does not merge or prioritize templates.\",\n \"If only some combinations are compatible, split the Experiment selector.\",\n ]),\n });\n }\n if (code === \"eval-group-direct-agent\") {\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: `Eval Group \"${groupContribution!.owner.id}\" cannot run with Direct Agent \"${pair.agentName}\".`,\n actions: Object.freeze([\n \"Use a Sandbox Agent for every Experiment that selects this Eval Group.\",\n \"If the Experiment must stay direct, change its selector so it does not select grouped Evals.\",\n ]),\n });\n }\n return Object.freeze({\n code,\n pair,\n eval: evalContribution.view,\n ...group,\n experiment: experimentContribution.view,\n summary: `Direct Agent \"${pair.agentName}\" cannot use an explicit SandboxLayer.`,\n actions: Object.freeze([\n \"Remove every explicit Eval/Experiment sandbox declaration for this pairing.\",\n \"If the task needs Sandbox operations, use a Sandbox Agent instead.\",\n ]),\n });\n}\nconst OWNER_ORDER: Readonly<Record<SandboxScheduleOwnerRef[\"kind\"], number>> = Object.freeze({\n experiment: 0,\n \"eval-group\": 1,\n eval: 2,\n agent: 3,\n});\nfunction compareText(left: string, right: string): number {\n return left < right ? -1 : left > right ? 1 : 0;\n}\nfunction compareReady(left: LinkedSandboxBefore, right: LinkedSandboxBefore): number {\n return left.metadata.changeFrequency.value - right.metadata.changeFrequency.value ||\n OWNER_ORDER[left.owner.kind] - OWNER_ORDER[right.owner.kind] ||\n compareText(left.owner.id, right.owner.id) ||\n left.ordinal - right.ordinal;\n}\n/** @internal Pure Kahn scheduler shared by link and debug planning; it never invokes declarations. */\nexport function scheduleSandboxBefore(entries: readonly LinkedSandboxBefore[], occurrencePath: readonly string[]): Effect.Effect<readonly ScheduledSandboxBefore[], SandboxBeforePlanningError> {\n return Effect.suspend(() => {\n const byId = new Map<string, LinkedSandboxBefore>();\n for (const entry of entries) {\n if (byId.has(entry.id)) {\n return Effect.fail(beforePlanningError({\n reason: \"duplicate-action-id\",\n occurrencePath,\n actionIds: [entry.id],\n actionId: entry.id,\n message: `sandbox.before-planning-failed (duplicate-action-id): action ${JSON.stringify(entry.id)} is declared more than once`,\n }));\n }\n byId.set(entry.id, entry);\n }\n const capabilityProviders = new Map<string, LinkedSandboxBefore>();\n for (const entry of entries) {\n for (const capability of entry.metadata.provides) {\n const previous = capabilityProviders.get(capability);\n if (previous !== undefined) {\n const providerActionIds = [previous.id, entry.id];\n return Effect.fail(beforePlanningError({\n reason: \"duplicate-capability-provider\",\n occurrencePath,\n actionIds: providerActionIds,\n capability,\n providerActionIds,\n message: `sandbox.before-planning-failed (duplicate-capability-provider): capability ${JSON.stringify(capability)} is provided by ${providerActionIds.map((id) => JSON.stringify(id)).join(\" and \")}`,\n }));\n }\n capabilityProviders.set(capability, entry);\n }\n }\n const dependencies = new Map<string, SandboxBeforeDependencyProjection[]>();\n const outgoing = new Map<string, Set<string>>();\n const indegree = new Map(entries.map((entry) => [entry.id, 0]));\n const addEdge = (dependency: LinkedSandboxBefore, dependent: LinkedSandboxBefore, projection: SandboxBeforeDependencyProjection): void => {\n const targets = outgoing.get(dependency.id) ?? new Set<string>();\n if (!targets.has(dependent.id)) {\n targets.add(dependent.id);\n outgoing.set(dependency.id, targets);\n indegree.set(dependent.id, (indegree.get(dependent.id) ?? 0) + 1);\n }\n const projections = dependencies.get(dependent.id) ?? [];\n projections.push(Object.freeze(projection));\n dependencies.set(dependent.id, projections);\n };\n for (const entry of entries) {\n for (const reference of entry.metadata.dependsOn) {\n const dependency = byId.get(reference.id);\n if (dependency === undefined) {\n return Effect.fail(beforePlanningError({\n reason: \"missing-dependency\",\n occurrencePath,\n actionIds: [entry.id, reference.id],\n actionId: entry.id,\n dependencyId: reference.id,\n message: `sandbox.before-planning-failed (missing-dependency): action ${JSON.stringify(entry.id)} depends on missing action ${JSON.stringify(reference.id)}`,\n }));\n }\n addEdge(dependency, entry, { id: dependency.id, source: \"explicit\" });\n }\n for (const capability of entry.metadata.requires) {\n const dependency = capabilityProviders.get(capability);\n if (dependency === undefined) {\n return Effect.fail(beforePlanningError({\n reason: \"missing-capability\",\n occurrencePath,\n actionIds: [entry.id],\n actionId: entry.id,\n capability,\n message: `sandbox.before-planning-failed (missing-capability): action ${JSON.stringify(entry.id)} requires missing capability ${JSON.stringify(capability)}`,\n }));\n }\n addEdge(dependency, entry, { id: dependency.id, source: \"capability\", capability });\n }\n }\n const ready = entries.filter((entry) => indegree.get(entry.id) === 0).sort(compareReady);\n const ordered: ScheduledSandboxBefore[] = [];\n while (ready.length > 0) {\n const entry = ready.shift()!;\n const entryDependencies = Object.freeze([...(dependencies.get(entry.id) ?? [])]);\n const frequency: SandboxChangeFrequency = entry.metadata.changeFrequency;\n ordered.push(Object.freeze({\n ...entry,\n dependencies: entryDependencies,\n executionOrder: Object.freeze({\n topologicalOrdinal: ordered.length,\n occurrencePath: Object.freeze([...occurrencePath]),\n }),\n schedulingReason: entryDependencies.length === 0\n ? `ready-set frequency=${frequency.value}; owner=${entry.owner.kind}:${entry.owner.id}; ordinal=${entry.ordinal}`\n : `dependencies satisfied (${entryDependencies.map((dependency) => dependency.id).join(\", \")}); ` +\n `ready-set frequency=${frequency.value}; owner=${entry.owner.kind}:${entry.owner.id}; ordinal=${entry.ordinal}`,\n }));\n for (const dependentId of outgoing.get(entry.id) ?? []) {\n const remaining = (indegree.get(dependentId) ?? 0) - 1;\n indegree.set(dependentId, remaining);\n if (remaining === 0)\n ready.push(byId.get(dependentId)!);\n }\n ready.sort(compareReady);\n }\n if (ordered.length !== entries.length) {\n const blocked = entries.filter((entry) => (indegree.get(entry.id) ?? 0) > 0).map((entry) => entry.id);\n return Effect.fail(beforePlanningError({\n reason: \"dependency-cycle\",\n occurrencePath,\n actionIds: blocked,\n blockedActionIds: blocked,\n message: `sandbox.before-planning-failed (dependency-cycle): blocked actions ${blocked.map((id) => JSON.stringify(id)).join(\", \")}`,\n }));\n }\n return Effect.succeed(Object.freeze(ordered));\n });\n}\nfunction linkedBefore(contributions: readonly NormalizedScheduleContribution[], occurrencePath: readonly string[]): Effect.Effect<readonly ScheduledSandboxBefore[], SandboxBeforePlanningError> {\n const entries = contributions.flatMap((contribution) => contribution.state.before.map((declaration, ordinal) => beforeFromDeclaration(contribution.owner, ordinal, declaration)));\n return scheduleSandboxBefore(entries, occurrencePath);\n}\nfunction linkedAfter(contributions: readonly NormalizedScheduleContribution[]): readonly LinkedSandboxAfter[] {\n return Object.freeze(contributions.flatMap((contribution) => contribution.state.after.map((declaration, ordinal): LinkedSandboxAfter => declaration.kind === \"action\"\n ? Object.freeze({\n kind: \"action\" as const,\n owner: contribution.owner,\n ordinal,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n data: sandboxAfterActionDataOf(declaration.action),\n fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),\n })\n : Object.freeze({\n kind: \"command\" as const,\n owner: contribution.owner,\n ordinal,\n ...(pluginSourceOf(declaration) === undefined ? {} : { pluginSource: pluginSourceOf(declaration) }),\n declaration,\n fingerprint: afterDeclarationFingerprint(contribution.owner, ordinal, declaration),\n }))));\n}\nfunction linkedCommands(first: NormalizedScheduleContribution, ...rest: readonly NormalizedScheduleContribution[]): {\n readonly commands: readonly LinkedSandboxCommand[];\n} {\n const commands: LinkedSandboxCommand[] = [];\n for (const contribution of [first, ...rest]) {\n contribution.state.commands.forEach((declaration, index) => {\n const fingerprint = fingerprintCommand(contribution.owner, index, declaration);\n commands.push(Object.freeze({ owner: contribution.owner, index, command: declaration.command, fingerprint }));\n });\n }\n return Object.freeze({ commands: Object.freeze(commands) });\n}\nfunction linkSandboxPair(pair: SandboxLinkIssue[\"pair\"], templateOwner: TemplateContribution, otherOwners: readonly NormalizedContribution[], agentOwner: NormalizedScheduleContribution): Effect.Effect<LinkedSandboxPair, SandboxBeforePlanningError> {\n const template = templateOwner.state.template;\n const linked = linkedCommands(templateOwner, ...otherOwners, agentOwner);\n const scheduleContributions: NormalizedScheduleContribution[] = [templateOwner, ...otherOwners, agentOwner];\n const declarationContributions = [...scheduleContributions].sort((left, right) => OWNER_ORDER[left.owner.kind] - OWNER_ORDER[right.owner.kind] ||\n compareText(left.owner.id, right.owner.id));\n const after = linkedAfter(declarationContributions);\n const lifecycle = Object.freeze([\n ...fingerprintLifecycle(templateOwner.owner, \"setup\", templateOwner.state.setupHooks),\n ...otherOwners.flatMap((owner) => fingerprintLifecycle(owner.owner, \"setup\", owner.state.setupHooks)),\n ...fingerprintLifecycle(agentOwner.owner, \"setup\", agentOwner.state.setupHooks),\n ...fingerprintLifecycle(templateOwner.owner, \"teardown\", templateOwner.state.teardownHooks),\n ...otherOwners.flatMap((owner) => fingerprintLifecycle(owner.owner, \"teardown\", owner.state.teardownHooks)),\n ...fingerprintLifecycle(agentOwner.owner, \"teardown\", agentOwner.state.teardownHooks),\n ]);\n const requirements = Object.freeze(declarationContributions.flatMap((contribution) => contribution.state.requirements.map((requirement) => Object.freeze({\n owner: contribution.owner,\n requirement,\n }))));\n return Effect.map(linkedBefore(declarationContributions, [pair.experimentId, pair.evalId, \"attempt\"]), (before): LinkedSandboxPair => {\n const fingerprints = Object.freeze(before.map((entry) => entry.fingerprint));\n const afterFingerprints = Object.freeze(after.map((entry) => entry.fingerprint));\n const fingerprint = Object.freeze({\n version: 1 as const,\n templateOwner: templateOwner.owner,\n template: sandboxTemplateIdentity(template),\n commands: fingerprints,\n ...(requirements.length === 0 ? {} : { requirements }),\n ...(afterFingerprints.length === 0 ? {} : { after: afterFingerprints }),\n ...(lifecycle.length === 0 ? {} : { lifecycle }),\n });\n return Object.freeze({\n kind: \"sandbox\",\n evalId: pair.evalId,\n experimentId: pair.experimentId,\n agentName: pair.agentName,\n templateOwner: templateOwner.owner,\n template,\n commands: linked.commands,\n requirements,\n before,\n after,\n setupHooks: Object.freeze([\n ...templateOwner.state.setupHooks,\n ...otherOwners.flatMap((owner) => owner.state.setupHooks),\n ...agentOwner.state.setupHooks,\n ]),\n teardownHooks: Object.freeze([\n ...templateOwner.state.teardownHooks,\n ...otherOwners.flatMap((owner) => owner.state.teardownHooks),\n ...agentOwner.state.teardownHooks,\n ]),\n pluginLifecycles: Object.freeze([]),\n hasEvalPhysicalLifecycle: [templateOwner, ...otherOwners].some((owner) => owner.owner.kind === \"eval\" && owner.state.setupHooks.length + owner.state.teardownHooks.length > 0),\n ...([templateOwner, ...otherOwners].find((owner) => owner.owner.kind === \"eval-group\") === undefined\n ? {}\n : { evalGroupId: [templateOwner, ...otherOwners].find((owner) => owner.owner.kind === \"eval-group\")!.owner.id }),\n fingerprint,\n });\n });\n}\n/** @internal Attach automatically projected Plugin sandbox fragments after author layer linking. */\nexport function attachSandboxPluginLifecycles(pair: LinkedSandboxLayerPair, byOwner: Readonly<Partial<Record<SandboxLayerOwnerRef[\"kind\"], readonly LinkedPluginLifecycle[]>>>): LinkedSandboxLayerPair {\n if (pair.kind === \"direct\")\n return pair;\n const ownerOrder: readonly SandboxLayerOwnerRef[\"kind\"][] = pair.templateOwner.kind === \"eval\"\n ? [\"eval\", \"experiment\"]\n : pair.templateOwner.kind === \"eval-group\"\n ? [\"eval-group\", \"experiment\", \"eval\"]\n : [\"experiment\", \"eval-group\", \"eval\"];\n const entries = Object.freeze(ownerOrder.flatMap((kind) => (byOwner[kind] ?? []).map((lifecycle) => Object.freeze({\n owner: kind === \"eval\"\n ? Object.freeze({ kind, id: pair.evalId })\n : kind === \"eval-group\"\n ? Object.freeze({ kind, id: pair.evalGroupId! })\n : Object.freeze({ kind, id: pair.experimentId }),\n lifecycle,\n }))));\n if (entries.length === 0)\n return pair;\n const plugins: JsonValue[] = entries.map((entry) => ({\n owner: { kind: entry.owner.kind, id: entry.owner.id },\n lifecycle: pluginLifecycleIdentity(entry.lifecycle),\n }));\n return Object.freeze({\n ...pair,\n pluginLifecycles: entries,\n hasEvalPhysicalLifecycle: pair.hasEvalPhysicalLifecycle || entries.some((entry) => entry.owner.kind === \"eval\"),\n fingerprint: Object.freeze({\n ...pair.fingerprint,\n plugins,\n }),\n });\n}\n/**\n * 对 discovery/selector 产出的实际 pair 全矩阵做一次纯 link。发现任何问题时遍历完全部输入后\n * 通过 Effect error channel 返回聚合错误;调用方因此可以在任何 Provider I/O 前一次展示全部修法。\n */\nexport function linkSandboxLayers(pairs: readonly SandboxLayerPairInput[]): Effect.Effect<readonly LinkedSandboxLayerPair[], SandboxLayerLinkError | SandboxBeforePlanningError> {\n return Effect.suspend((): Effect.Effect<readonly LinkedSandboxLayerPair[], SandboxLayerLinkError | SandboxBeforePlanningError> => {\n const linked: Array<Effect.Effect<LinkedSandboxLayerPair, SandboxBeforePlanningError>> = [];\n const issues: SandboxLinkIssue[] = [];\n for (const input of pairs) {\n const pair = pairRef(input);\n const evalContribution = normalizeContribution(\"eval\", input.eval);\n const experimentContribution = normalizeContribution(\"experiment\", input.experiment);\n const groupContribution = input.group === undefined ? undefined : normalizeContribution(\"eval-group\", input.group);\n if (pair.agentKind === \"direct\" || pair.agentKind === \"custom\") {\n if (groupContribution !== undefined) {\n issues.push(issue(\"eval-group-direct-agent\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else if (evalContribution.explicit || experimentContribution.explicit) {\n issues.push(issue(\"sandbox.unexpected-for-direct-agent\", pair, evalContribution, experimentContribution));\n }\n else {\n linked.push(Effect.succeed(Object.freeze({\n kind: \"direct\",\n evalId: pair.evalId,\n experimentId: pair.experimentId,\n agentName: pair.agentName,\n })));\n }\n continue;\n }\n const agentContribution = normalizeAgentContribution(input.agent);\n const contributions = [experimentContribution, ...(groupContribution === undefined ? [] : [groupContribution]), evalContribution];\n const templates = contributions.filter(isTemplateContribution);\n if (templates.length === 0) {\n issues.push(issue(\"sandbox.template-missing\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else if (templates.length > 1) {\n issues.push(issue(\"sandbox.template-conflict\", pair, evalContribution, experimentContribution, groupContribution));\n }\n else {\n const template = templates[0]!;\n const ordered = template.owner.kind === \"eval-group\"\n ? [template, experimentContribution, evalContribution]\n : template.owner.kind === \"experiment\"\n ? [template, ...(groupContribution === undefined ? [] : [groupContribution]), evalContribution]\n : [template, experimentContribution];\n linked.push(linkSandboxPair(pair, template, ordered.filter((owner) => owner !== template), agentContribution));\n }\n }\n return issues.length > 0\n ? Effect.fail(sandboxLayerLinkError(issues))\n : Effect.map(Effect.all(linked), (values) => Object.freeze(values));\n });\n}\n"]}
|
package/dist/sandbox/link.d.cts
CHANGED
|
@@ -137,6 +137,7 @@ export interface LinkedSandboxCommand {
|
|
|
137
137
|
readonly fingerprint: SandboxCommandFingerprint;
|
|
138
138
|
}
|
|
139
139
|
interface LinkedSandboxBeforeBase {
|
|
140
|
+
readonly pluginSource?: string;
|
|
140
141
|
readonly owner: SandboxScheduleOwnerRef;
|
|
141
142
|
readonly ordinal: number;
|
|
142
143
|
readonly id: string;
|
|
@@ -154,12 +155,14 @@ export type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {
|
|
|
154
155
|
readonly hook: SandboxHook;
|
|
155
156
|
});
|
|
156
157
|
export type LinkedSandboxAfter = {
|
|
158
|
+
readonly pluginSource?: string;
|
|
157
159
|
readonly kind: "action";
|
|
158
160
|
readonly owner: SandboxScheduleOwnerRef;
|
|
159
161
|
readonly ordinal: number;
|
|
160
162
|
readonly data: SandboxActionData;
|
|
161
163
|
readonly fingerprint: SandboxCommandFingerprint;
|
|
162
164
|
} | {
|
|
165
|
+
readonly pluginSource?: string;
|
|
163
166
|
readonly kind: "command";
|
|
164
167
|
readonly owner: SandboxScheduleOwnerRef;
|
|
165
168
|
readonly ordinal: number;
|
package/dist/sandbox/link.d.mts
CHANGED
|
@@ -137,6 +137,7 @@ export interface LinkedSandboxCommand {
|
|
|
137
137
|
readonly fingerprint: SandboxCommandFingerprint;
|
|
138
138
|
}
|
|
139
139
|
interface LinkedSandboxBeforeBase {
|
|
140
|
+
readonly pluginSource?: string;
|
|
140
141
|
readonly owner: SandboxScheduleOwnerRef;
|
|
141
142
|
readonly ordinal: number;
|
|
142
143
|
readonly id: string;
|
|
@@ -154,12 +155,14 @@ export type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {
|
|
|
154
155
|
readonly hook: SandboxHook;
|
|
155
156
|
});
|
|
156
157
|
export type LinkedSandboxAfter = {
|
|
158
|
+
readonly pluginSource?: string;
|
|
157
159
|
readonly kind: "action";
|
|
158
160
|
readonly owner: SandboxScheduleOwnerRef;
|
|
159
161
|
readonly ordinal: number;
|
|
160
162
|
readonly data: SandboxActionData;
|
|
161
163
|
readonly fingerprint: SandboxCommandFingerprint;
|
|
162
164
|
} | {
|
|
165
|
+
readonly pluginSource?: string;
|
|
163
166
|
readonly kind: "command";
|
|
164
167
|
readonly owner: SandboxScheduleOwnerRef;
|
|
165
168
|
readonly ordinal: number;
|
package/dist/sandbox/link.d.ts
CHANGED
|
@@ -137,6 +137,7 @@ export interface LinkedSandboxCommand {
|
|
|
137
137
|
readonly fingerprint: SandboxCommandFingerprint;
|
|
138
138
|
}
|
|
139
139
|
interface LinkedSandboxBeforeBase {
|
|
140
|
+
readonly pluginSource?: string;
|
|
140
141
|
readonly owner: SandboxScheduleOwnerRef;
|
|
141
142
|
readonly ordinal: number;
|
|
142
143
|
readonly id: string;
|
|
@@ -154,12 +155,14 @@ export type LinkedSandboxBefore = (LinkedSandboxBeforeBase & {
|
|
|
154
155
|
readonly hook: SandboxHook;
|
|
155
156
|
});
|
|
156
157
|
export type LinkedSandboxAfter = {
|
|
158
|
+
readonly pluginSource?: string;
|
|
157
159
|
readonly kind: "action";
|
|
158
160
|
readonly owner: SandboxScheduleOwnerRef;
|
|
159
161
|
readonly ordinal: number;
|
|
160
162
|
readonly data: SandboxActionData;
|
|
161
163
|
readonly fingerprint: SandboxCommandFingerprint;
|
|
162
164
|
} | {
|
|
165
|
+
readonly pluginSource?: string;
|
|
163
166
|
readonly kind: "command";
|
|
164
167
|
readonly owner: SandboxScheduleOwnerRef;
|
|
165
168
|
readonly ordinal: number;
|
package/dist/sandbox/runtime.cjs
CHANGED
|
@@ -29,6 +29,7 @@ const dockerfile_build_ts_1 = require("./dockerfile-build.cjs");
|
|
|
29
29
|
const dockerfile_agent_cache_ts_1 = require("./dockerfile-agent-cache.cjs");
|
|
30
30
|
const backend_ts_1 = require("./backend.cjs");
|
|
31
31
|
const paths_ts_1 = require("./paths.cjs");
|
|
32
|
+
const deadline_ts_1 = require("./deadline.cjs");
|
|
32
33
|
const registry_ts_1 = require("./registry.cjs");
|
|
33
34
|
const run_identity_ts_1 = require("./run-identity.cjs");
|
|
34
35
|
const layer_ts_1 = require("./layer.cjs");
|
|
@@ -756,8 +757,10 @@ function runSetupHooks(hooks, sandbox, context) {
|
|
|
756
757
|
/** Teardown remains LIFO and diagnostic-only, but a teardown defect cannot skip the case finalizer. */
|
|
757
758
|
function runTeardownHooks(hooks, sandbox, context) {
|
|
758
759
|
return effect_1.Effect.forEach([...hooks].reverse(), (hook) => {
|
|
759
|
-
|
|
760
|
-
|
|
760
|
+
return (0, cleanup_timeout_ts_1.cleanupCallback)((signal) => {
|
|
761
|
+
(0, deadline_ts_1.applyCommandDeadline)(sandbox, Date.now() + cleanup_timeout_ts_1.CLEANUP_TIMEOUT_MS);
|
|
762
|
+
return hook(sandbox, { ...context, signal });
|
|
763
|
+
}).pipe(effect_1.Effect.catch((cause) => effect_1.Effect.sync(() => {
|
|
761
764
|
context.diagnostic({
|
|
762
765
|
code: "sandbox-teardown-failed",
|
|
763
766
|
level: "warning",
|
|
@@ -785,8 +788,10 @@ function runSandboxPluginTeardowns(input, owned) {
|
|
|
785
788
|
const teardown = entry.lifecycle.teardown;
|
|
786
789
|
if (teardown === undefined)
|
|
787
790
|
return effect_1.Effect.void;
|
|
788
|
-
|
|
789
|
-
|
|
791
|
+
return (0, cleanup_timeout_ts_1.cleanupCallback)((signal) => {
|
|
792
|
+
(0, deadline_ts_1.applyCommandDeadline)(owned.sandbox, Date.now() + cleanup_timeout_ts_1.CLEANUP_TIMEOUT_MS);
|
|
793
|
+
return teardown(owned.sandbox, { ...input.hookContext, signal });
|
|
794
|
+
}).pipe(effect_1.Effect.catch((cause) => effect_1.Effect.sync(() => input.feedback.diagnostic({
|
|
790
795
|
code: "plugin-lifecycle-teardown-failed",
|
|
791
796
|
level: "warning",
|
|
792
797
|
message: cause instanceof Error ? cause.message : String(cause),
|