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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-first.js","sourceRoot":"","sources":["assert-first.ts"],"names":[],"mappings":";;AAgxCA,oEAkEC;AA2BD,oEA+xBC;AA5oED,qFAA8E;AAC9E,0EAAuF;AACvF,2DAAkE;AAClE,qEAAwI;AACxI,yDAA8E;AAC9E,yDAAgH;AAEhH;;;;GAIG;AACH,+CAA4C;AAC5C,yCAA8C;AAC9C,mCAAgC;AAChC,yDAAqJ;AAGrJ,uEAA+O;AAC/O,mDAA4G;AAC5G,+DAAqG;AACrG,qDAAgkB;AAEhkB,qEAAsQ;AACtQ,iDAA0M;AAC1M,qDAAoJ;AACpJ,yEAAiF;AACjF,oDAAmE;AACnE,6CAA+F;AAC/F,uDAAgD;AAGhD,2DAAsD;AA6GtD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACtH,SAAS,uBAAuB,CAAqD,KAAgF,EAAE,KAAwB;IAC3L,MAAM,QAAQ,GAAG,IAAA,sCAAmB,EAA0D;QAC1F,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAC3D,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,+BAA+B,EAAE;YACnE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;QAC3B,KAAK,EAAE,IAAA,2BAAgB,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,CAAC,MAAyC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACrH,OAAO,EAAE,cAAc;KAC1B,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,MAAgB,EAAE,KAA0B,EAAE,GAAG,KAAyB,EAAE,EAAE;QAC3G,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QACnG,IAAI,QAAyB,CAAC;QAC9B,IAAI,QAAgB,CAAC;QACrB,IAAI,OAAuC,CAAC;QAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,KAAK,KAAK,SAAS;gBACnB,MAAM,IAAI,SAAS,CAAC,kDAAkD,CAAC,CAAC;YAC5E,QAAQ,GAAG,QAA2B,CAAC;YACvC,QAAQ,GAAG,KAAK,CAAC;YACjB,OAAO,GAAG,MAAwC,CAAC;QACvD,CAAC;aACI,CAAC;YACF,QAAQ,GAAG,MAAgB,CAAC;YAC5B,OAAO,GAAG,KAAK,CAAC;YAChB,QAAQ,GAAG,IAAA,6BAAkB,EAAC,KAAK,CAAC;gBAChC,CAAC,CAAC,IAAA,sCAAmB,EAAuB,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAgC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAoB;gBACxL,CAAC,CAAC,IAAA,8BAAmB,EAAC,KAAK,CAAC;oBACxB,CAAC,CAAC,IAAA,sCAAmB,EAAuB,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,gBAA8C,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAoB;oBACvM,CAAC,CAAC,KAAwB,CAAC;QACvC,CAAC;QACD,OAAO,IAAA,+BAAkB,EAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAqC,CAAC;IACtG,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAwD,CAAC;AAC3H,CAAC;AACD,SAAS,kBAAkB,CAAwC,KAA6D;IAC5H,MAAM,KAAK,GAAG,CAAW,OAA+D,EAAE,QAAkB,EAAE,OAAuC,EAAE,KAAyB,EAAE,IAAY,EAAoC,EAAE;QAChO,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,0CAA0C,CAAC,CAAC;QAC3E,OAAQ,KAA4F,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACrI,CAAC,CAAC;IACF,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,UAAU,EAAE,CAAC,QAA4B,EAAE,OAA4B,EAAE,GAAG,KAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,6BAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC;QACnK,YAAY,EAAE,CAAC,QAA8B,EAAE,OAA4B,EAAE,GAAG,KAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,+BAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC;QAC3K,oBAAoB,EAAE,CAAC,QAAsC,EAAE,OAA4B,EAAE,GAAG,KAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,uCAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,CAAC;QAC3M,kBAAkB,EAAE,CAAC,QAAoC,EAAE,OAA4B,EAAE,GAAG,KAAyB,EAAE,EAAE,CAAC,KAAK,CAAC,qCAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,oBAAoB,CAAC;QACnM,OAAO,EAAE,CAAI,QAA6B,EAAE,QAAgB,EAAE,OAA4B,EAAE,GAAG,KAAyB,EAAE,EAAE;YACxH,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;YACnF,OAAO,IAAA,+BAAkB,EAAC,KAAK,EAAE,QAA2B,EAAE,QAAQ,EAAE,OAAO,CAAqC,CAAC;QACzH,CAAC;KACJ,CAAC,CAAC;AACP,CAAC;AAkJD,SAAS,cAAc,CAAC,KAAqB,EAAE,YAA+C,WAAW;IACrG,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,cAAuB;QAC7B,KAAK;QACL,SAAS;KACZ,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAAC,KAAqB,EAAE,UAA4B,EAAE,OAA2B,EAAE,UAA+B;IAC1I,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,YAAqB;QAC3B,KAAK;QACL,UAAU;QACV,SAAS,EAAE,UAAU,CAAC,IAAI,KAAK,QAAQ;YACnC,CAAC,CAAC,QAAiB;YACnB,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;gBACzB,CAAC,CAAC,OAAgB;gBAClB,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,KAAK,KAAK,CAAC;oBACtD,CAAC,CAAC,SAAkB;oBACpB,CAAC,CAAC,OAAgB;QAC9B,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ;YAClD,CAAC,CAAC,EAAE,IAAI,EAAE,QAAiB,EAAE;YAC7B,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,CAAC;KAC5D,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAAC,QAAuB,EAAE,OAA6B;IAC9E,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;AACpC,CAAC;AACD,SAAS,eAAe,CAA2B,KAMlD;IACG,MAAM,QAAQ,GAAG,IAAA,qCAAwB,EAAC;QACtC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,WAAW;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM;QACtC,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;IACH,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAO;QACvC,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC;QACtC,OAAO,EAAE,QAAQ,CAAC,QAAQ;QAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,aAAa;YAC5D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC;YACjD,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,UAAU;gBACzD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,oBAA6B,EAAE,CAAC;gBACzF,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,WAAW;oBAC1B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;oBAChE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;KACjE,CAAC,CAAC;AACP,CAAC;AAiCD,SAAS,eAAe,CAAC,cAAqC,EAAE,QAAiB;IAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AACD,SAAS,yBAAyB,CAAC,QAA+B;IAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,aAAsB,EAAE,CAAC,CAAC;AACnF,CAAC;AACD,SAAS,qBAAqB,CAAC,KAAkC,EAAE,iBAA4C;IAC3G,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzE,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,EAAE,CAAC;QACtD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,SAAkB;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,oBAAoB,EAAE,IAAI,GAAG,EAAiC;YAC9D,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;SACpC,CAAC,CAAC;IACP,CAAC;IACD,MAAM,QAAQ,GAAG,UAAkD,CAAC;IACpE,MAAM,SAAS,GAAG,IAAA,uCAA2B,EAAC,QAAQ,CAAC,CAAC;IACxD,MAAM,YAAY,GAA8C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACzH,OAAO,EAAE,OAAO,CAAC,SAAS;QAC1B,IAAI,EAAE,OAAO,CAAC,MAAM;QACpB,WAAW,EAAE,KAAK,GAAG,CAAC;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAE,CAAC,OAAO;KACjC,CAAC,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,IAAA,8CAAkC,EAAC,YAAY,CAAC,CAAC;IACjE,IAAI,SAAS,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,SAAkB;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAClC,oBAAoB,EAAE,IAAI,GAAG,EAAiC;YAC9D,cAAc,EAAE,OAAO,CAAC,cAAc;SACzC,CAAC,CAAC;IACP,CAAC;IACD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAiC,CAAC;IACtE,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,IAAI,OAAO,KAAK,SAAS,IAAI,KAAK,EAAE,IAAI,KAAK,YAAY;YACrD,SAAS;QACb,oBAAoB,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC;YAC3D,GAAG,UAAU;YACb,EAAE,EAAE,KAAK,CAAC,gBAAgB;YAC1B,OAAO,EAAE,OAAO,CAAC,SAAS;YAC1B,IAAI,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC,CAAC;IACR,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,KAAK,EAAE,WAAoB;QAC3B,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,eAAe,EAAE,SAAS,CAAC,eAAe;QAC1C,oBAAoB;QACpB,cAAc,EAAE,OAAO,CAAC,cAAc;KACzC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,gBAAgB,CAAC,gBAAwB;IAC9C,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,iBAA0B;QAChC,gBAAgB;QAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAgB,EAAE,CAAC;KACvD,CAAC,CAAC;AACP,CAAC;AACD,SAAS,gBAAgB,CAAC,KAOzB;IACG,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/E,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,KAAK,SAAS;QACjD,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,cAAc,CAAC;QACjD,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IAC3B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,SAAS;QAC7C,CAAC,CAAC,UAAU,CAAC,eAAe;QAC5B,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC5E,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC/C,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,eAAe,EAAE,GAAG,CAAC,oBAAoB;YACzC,SAAS,EAAE,SAAS,KAAK,SAAS;gBAC9B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;oBACZ,KAAK,EAAE,aAAsB;oBAC7B,MAAM,EAAE,wCAAwC;iBACnD,CAAC;gBACF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAoB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;SACzE,CAAC,CAAC;IACP,CAAC,CAAC,CAAC,CAAC;IACJ,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnH,IAAI;QACJ,cAAc,EAAE,UAAU,CAAC,cAAc;QACzC,cAAc;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,iBAAiB,CAAC,MAA0B,EAAE,KAAqC;IACxF,IAAI,OAAO,MAAM,KAAK,QAAQ;QAC1B,OAAO,IAAA,oBAAS,EAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,IAAA,iCAAsB,EAAC,MAAM,EAAE,GAAG,KAAK,UAAU,CAAC,CAAC;AAC9D,CAAC;AACD,SAAS,uBAAuB,CAAC,QAA2B;IACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC1C,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,yDAAyD;IACzD,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU;WAC1B,OAAO,CAAC,MAAM,KAAK,wDAAgC,EAAE,CAAC;QACzD,OAAO,iBAAiB,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAC/D,CAAC;IACD,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,OAAO,sBAAsB,QAAQ,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AACD,SAAS,uBAAuB,CAAoC,OAAgC,EAAE,OAAgB,EAAE,KAAc;IAClI,OAAQ,OAAO,CAAC,CAAC,CAAC,KAA6F,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACpI,CAAC;AACD,SAAS,gBAAgB,CAA2B,KAInD;IACG,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ;QAChC,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAA,oBAAS,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC,IAAA,mCAAwB,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAA,iCAAsB,EAAC,KAAK,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAC7H,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,gCAAqB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACvD,MAAM,IAAI,SAAS,CAAC,uEAAuE,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC;WACtE,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CAAC,oFAAoF,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClH,MAAM,IAAI,SAAS,CAAC,8DAA8D,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAC/E,CAAC;AACD,SAAS,mBAAmB,CAA2B,KAItD;IACG,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9H,CAAC;AACD,SAAS,mBAAmB;IACxB,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,aAAsB;QAC5B,OAAO,EAAE,gBAAyB;QAClC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,CAAC;KAC5D,CAAC,CAAC;AACP,CAAC;AACD,SAAS,WAAW;IAChB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC1E,CAAC;AACD,SAAS,cAAc;IACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;AAC3D,CAAC;AACD,SAAS,eAAe;IACpB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,sBAA+B,EAAE,CAAC,CAAC;AACrG,CAAC;AACD,SAAS,mBAAmB,CAA2B,KAMtD;IACG,MAAM,QAAQ,GAAG,IAAA,qCAAwB,EAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAO;QACvC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,QAAQ,CAAC,QAAQ;QAC1B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,GAAG,CAAC,KAAK,CAAC,0BAA0B,KAAK,SAAS;YAC9C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,0BAA0B,EAAE,KAAK,CAAC,0BAA0B,EAAE,CAAC;QACvE,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AACD,SAAS,mBAAmB,CAAC,QAAuB,EAAE,OAAuC;IACzF,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU,CAAC;AACnD,CAAC;AACD,SAAS,uBAAuB,CAAC,KAAc,EAAE,KAAa;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,uCAAuC,CAAC,CAAC;IACzE,CAAC;AACL,CAAC;AACD,SAAS,4BAA4B,CAAC,KAAc,EAAE,KAAa;IAC/D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,sCAAsC,CAAC,CAAC;IACxE,CAAC;AACL,CAAC;AACD,SAAS,iBAAiB,CAA2B,KAGpD;IACG,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAA,oBAAS,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AACD,SAAS,kBAAkB,CAA2B,KAIrD;IACG,4BAA4B,CAAC,KAAK,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;IAC9D,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAA,iBAAM,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACpF,CAAC;AACD,SAAS,qBAAqB,CAA2B,KAMxD;IACG,OAAO,mBAAmB,CAAC;QACvB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,SAAS,EAAE,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,mBAAmB,CAAC;QAC3D,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE,mBAAmB;YAC9B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;YAC/B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;YAChC,QAAQ,EAAE,KAAK,CAAC,QAAQ;SAC3B,CAAC;QACF,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAA,0BAAc,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;mBAChE,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;YACpE,IAAI,MAAM;gBACN,OAAO,cAAc,EAAE,CAAC;YAC5B,OAAO,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACjD,CAAC,CAAC,WAAW,EAAE;gBACf,CAAC,CAAC,eAAe,EAAE,CAAC;QAC5B,CAAC,CAAC;KACL,CAAC,CAAC;AACP,CAAC;AACD,SAAS,eAAe,CAA2B,KAQlD;IACG,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAA,kBAAO,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,CAAC;AACD,SAAS,gBAAgB,CAAC,KAAqB,EAAE,QAA2B,EAAE,KAAa;IACvF,MAAM,UAAU,GAAG,IAAA,sCAAsB,EAAC;QACtC,KAAK;QACL,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,gBAAgB,EAAE,uBAAuB,CAAC,QAAQ,CAAC;QACnD,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO;QAC1C,iBAAiB,EAAE,QAAQ,CAAC,cAAc,CAAC,MAAM;QACjD,QAAQ,EAAE,QAAQ,CAAC,QAAQ;KAC9B,CAAC,CAAC;IACH,IAAA,mCAAqB,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,SAAS,uBAAuB,CAAC,KAAqB,EAAE,QAA4B,EAAE,KAAa;IAC/F,MAAM,UAAU,GAAG,IAAA,6CAA6B,EAAC;QAC7C,KAAK;QACL,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;QAClC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,qBAAqB,EAAE,QAAQ,CAAC,qBAAqB;KACxD,CAAC,CAAC;IACH,IAAA,mCAAqB,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC;AACtB,CAAC;AACD,SAAS,WAAW,CAA2B,KAI9C;IACG,IAAI,CAAC,IAAA,mCAAwB,EAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAA,kCAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC;IACxH,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,gCAAqB,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACxD,MAAM,IAAI,SAAS,CAAC,qEAAqE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC;WACtE,IAAI,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CAAC,+EAA+E,CAAC,CAAC;IACzG,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAClH,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AACD,SAAS,wBAAwB,CAA2B,KAI3D;IACG,OAAO,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAA,kCAAuB,EAAC,KAAK,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACtI,CAAC;AAYD,SAAS,YAAY,CAAC,GAA2B;IAC7C,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,OAAgB;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,gBAAgB;YAC5C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAgB,EAAE,CAAC;SACvD,CAAC,CAAC;IACP,CAAC;IACD,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO;YACzC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,OAAgB;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB;gBACvD,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAgB,EAAE,CAAC;aACvD,CAAC;YACF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;gBACZ,IAAI,EAAE,OAAgB;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;oBACpB,KAAK,EAAE,aAAsB;oBAC7B,MAAM,EAAE,WAAoB;iBAC/B,CAAC;aACL,CAAC,CAAC;IACX,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,OAAgB;QACtB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAgB,EAAE,CAAC;KACvD,CAAC,CAAC;AACP,CAAC;AACD,SAAS,iBAAiB,CAAC,KAM1B;IACG,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAC;IAC/E,MAAM,kBAAkB,GAAG,UAAU,CAAC,KAAK,KAAK,SAAS;QACrD,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC,cAAc,CAAC;QACjD,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;IAC3B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACnD,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO;YACH,IAAI,CAAC,QAAQ,CAAC,MAAM;YACpB,OAAO,KAAK,SAAS;gBACjB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;SACpE,CAAC;IACf,CAAC,CAAC,CAAC,CAAC;IACJ,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;QACxF,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,CAAU,CAAC;QACzD,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACX,MAAM,IAAI,GAGH,EAAE,CAAC;IACV,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACtG,SAAS;QACb,CAAC;QACD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpF,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,IAAI,UAA2C,CAAC;QAChD,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC/B,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACzG,CAAC;aACI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACvC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE,mBAA4B;gBAClC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;aAChD,CAAC,CAAC;QACP,CAAC;aACI,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;YACnF,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAClE,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACrB,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;oBACvB,IAAI,EAAE,oBAA6B;oBACnC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;oBAC7B,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO;iBAC5B,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC3B,iBAAiB,GAAG,IAAI,CAAC;YACzB,SAAS;QACb,CAAC;QACD,IAAI,KAAK,GAAwB,UAAU,CAAC;QAC5C,IAAI,UAAU,KAAK,SAAS,IAAI,YAAY,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAChF,KAAK,GAAG,IAAA,oCAAyB,EAAC;gBAC9B,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,OAAO,EAAE,GAAG,CAAC,SAAS;gBACtB,IAAI,EAAE,GAAG,CAAC,MAAM;gBAChB,WAAW,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC;gBACnC,YAAY;gBACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;gBACpB,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI;aACvB,CAAC,CAAC;QACP,CAAC;aACI,IAAI,UAAU,KAAK,SAAS,IAAI,YAAY,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACrF,MAAM,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;gBACpD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB;gBAC5B,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO;oBACpC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB;oBACvC,CAAC,CAAC,SAAS,CAAC;YACpB,MAAM,UAAU,GAAG,gBAAgB,KAAK,SAAS;gBAC7C,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAC5D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC3B,KAAK,GAAG,IAAA,iCAAsB,EAAC;oBAC3B,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,gBAAgB;oBAChB,OAAO,EAAE,GAAG,CAAC,SAAS;oBACtB,IAAI,EAAE,GAAG,CAAC,MAAM;oBAChB,WAAW,EAAE,CAAC,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC;oBACnC,YAAY;oBACZ,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY;wBACjC,CAAC,CAAC,mBAA4B;wBAC9B,CAAC,CAAC,oBAA6B;oBACnC,UAAU;oBACV,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,WAAW;wBACrE,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE;wBAC/B,CAAC,CAAC,EAAE,CAAC;iBACZ,CAAC,CAAC;YACP,CAAC;iBACI,CAAC;gBACF,kBAAkB,GAAG,IAAI,CAAC;YAC9B,CAAC;QACL,CAAC;aACI,CAAC;YACF,kBAAkB,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACpB,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC;YAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,eAAe,EAAE,GAAG,CAAC,eAAe;YACpC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,WAAoB,EAAE,KAAK,EAAE,CAAC;SACnE,CAAC,CAAC,CAAC;IACR,CAAC;IACD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,cAAc,GAAG,iBAAiB,IAAI,kBAAkB,CAAC,eAAe,KAAK,UAAU;QACzF,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,kBAAkB,EAAE,eAAe,EAAE,SAAkB,EAAE,CAAC;QAC/E,CAAC,CAAC,kBAAkB,CAAC;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,EAAE,aAAa;QACnB,qBAAqB,EAAE,UAAU,CAAC,KAAK,KAAK,SAAS,IAAI,iBAAiB,IAAI,kBAAkB;QAChG,cAAc;QACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B,CAAC,CAAC;AACP,CAAC;AACD,MAAM,sBAAsB,GAAG,8CAA8C,CAAC;AAC9E,SAAS,qBAAqB,CAAC,KAAwB;IACnD,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,eAAwB;QACnC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;KACnC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB;IACvB,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,YAAqB;KACnC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,oBAAoB,CAAC,IAAY,EAAE,OAAqC;IAC7E,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,cAAuB;QAClC,IAAI;QACJ,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACnE,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACxE,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACxE,CAAC,CAAC;AACP,CAAC;AACD,SAAS,oBAAoB,CAAC,IAAY;IACtC,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,cAAuB;QAClC,IAAI;KACP,CAAC,CAAC;AACP,CAAC;AACD,SAAS,kBAAkB,CAAC,OAAe,EAAE,OAA4C;IACrF,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,gBAAyB;QAC/B,SAAS,EAAE,aAAsB;QACjC,OAAO,EAAE,OAAO,CAAC,MAAM;QACvB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,MAAM;KACrC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,qBAAqB;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,mBAA4B;QAClC,OAAO,EAAE,sBAAsB;KAClC,CAAC,CAAC;AACP,CAAC;AACD,SAAS,cAAc,CAAC,IAAa,EAAE,SAAiB;IACpD,IAAA,8CAAoC,EAAC,IAAI,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;AACpE,CAAC;AACD,SAAS,2BAA2B,CAAC,KAAqC;IACtE,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACnE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;YAC1D,MAAM,IAAI,SAAS,CAAC,yCAAyC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxF,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;WACvB,KAAK,CAAC,MAAM,KAAK,OAAO;WACxB,KAAK,CAAC,MAAM,KAAK,UAAU;WAC3B,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,kEAAkE,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC;AACD,SAAS,yBAAyB,CAAC,KAA4C;IAC3E,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,KAAK,SAAS;YACjB,MAAM,IAAI,SAAS,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QACtH,MAAM,IAAI,SAAS,CAAC,6DAA6D,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC;AACD,KAAK,UAAU,eAAe,CAAC,QAAoC,EAAE,KAAwD;IACzH,IAAI,KAAK,KAAK,SAAS;QACnB,OAAO,SAAS,CAAC;IACrB,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAC3B,OAAO,YAAY,CAAC;IACxB,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAC3B,OAAO,aAAa,CAAC;IACzB,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAoB,EAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChE,OAAO,MAAM,CAAC,KAAK,CAAC;AACxB,CAAC;AACD,SAAS,qBAAqB;IAC1B,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,oBAA6B,EAAE,CAAC,CAAC;AACnG,CAAC;AACD;;;;GAIG;AACH,SAAS,wBAAwB,CAA2B,KAK3D;IACG,MAAM,iBAAiB,GAAG,GAAS,EAAE;QACjC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAC;QACvJ,CAAC;IACL,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,SAA6B,EAAE,QAA+E,EAA6C,EAAE,CAAC,IAAA,0CAA6B,EAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAO;QAC9O,SAAS;QACT,OAAO,EAAE,qBAAqB,EAAE;QAChC,QAAQ;KACX,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAClC,MAAM,YAAY,GAAG,CAAC,KAAwB,EAA6C,EAAE;QACzF,iBAAiB,EAAE,CAAC;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACrB,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,KAAK;YACpB,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QAC3C,IAAA,sCAA4B,EAAC,KAAK,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAC3C,OAAO,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;gBAC1B,OAAO,qBAAqB,EAAE,CAAC;YACnC,OAAO,IAAA,gDAA4B,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;gBACxD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAChE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,UAA+B,EAA6C,EAAE;QAC7G,iBAAiB,EAAE,CAAC;QACpB,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,UAAU,CAAC;YACzE,GAAG,EAAE,KAAK,IAAI,EAAE;gBACZ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;oBAC1B,OAAO,qBAAqB,EAAE,CAAC;gBACnC,IAAI,WAAW,GAAG,KAAK,CAAC;gBACxB,KAAK,MAAM,SAAS,IAAI,IAAA,oDAAgC,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC;oBAC5E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;wBACnE,SAAS;oBACb,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBACvE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpE,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBAC9C,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBAC1E,CAAC;oBACD,+DAA+D;oBAC/D,kEAAkE;oBAClE,mEAAmE;oBACnE,IAAI,MAAM,KAAK,YAAY,IAAI,KAAK,KAAK,YAAY;wBACjD,SAAS;oBACb,IAAI,MAAM,KAAK,aAAa,IAAI,KAAK,KAAK,aAAa;wBACnD,WAAW,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBACD,OAAO,WAAW;oBACd,CAAC,CAAC,qBAAqB,EAAE;oBACzB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;SAC1B,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,UAAsC,EAA6C,EAAE;QACrH,iBAAiB,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC,OAAO,YAAY,MAAM,CAAC;YAC5B,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACzE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;gBAC1B,OAAO,qBAAqB,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,IAAA,8CAA0B,EAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC3E,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS;gBAC7B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAChE,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,YAAY;oBAC3B,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC;oBACjD,CAAC,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,GAA8C,EAAE;QAC9D,iBAAiB,EAAE,CAAC;QACpB,OAAO,QAAQ,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACzD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;gBAC1B,OAAO,qBAAqB,EAAE,CAAC;YACnC,OAAO,IAAA,gDAA4B,EAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBAClD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAChE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAA6C,EAAE;QAC5E,iBAAiB,EAAE,CAAC;QACpB,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACtC,OAAO,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YAC/D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW;gBAC1B,OAAO,qBAAqB,EAAE,CAAC;YACnC,OAAO,IAAA,oDAAgC,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;iBACvD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;gBAC9C,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;gBAChE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IACF,MAAM,IAAI,GAA6B;QACnC,IAAI,OAAO;YACP,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QACjC,CAAC;QACD,UAAU,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YAC/B,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;QACD,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YAC1B,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,iBAAiB,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;YACtC,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QACD,eAAe,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE;YACjC,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QACD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE;YACf,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YACzB,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzC,CAAC;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YAC1B,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACnD,CAAC;QACD,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE;YACjB,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;YAC5B,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACrD,CAAC;QACD,UAAU,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;YAC/B,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACxD,CAAC;QACD,eAAe,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;YAC/C,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QACD,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE;YACjC,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;QACD,iBAAiB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;YACjD,iBAAiB,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;QACD,YAAY;QACZ,SAAS;QACT,WAAW;QACX,WAAW;QACX,SAAS;KACZ,CAAC;IACF,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AACD,SAAS,mBAAmB,CAAC,OAAmB,EAAE,MAAsC;IACpF,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE;QAC5D,IAAI,MAAM,KAAK,SAAS;YACpB,OAAO,IAAI,CAAC;QAChB,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;YAChF,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC;YACnF,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC;YAChF,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,IAAA,2BAAW,EAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;YACvE,OAAO,KAAK,CAAC;QACjB,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC5F,OAAO,KAAK,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,qDAAqD,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAE,CAAC;AACvB,CAAC;AACD,SAAS,WAAW,CAAC,MAAc,EAAE,QAAyB;IAC1D,IAAI,QAAQ,YAAY,MAAM,EAAE,CAAC;QAC7B,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,OAAO,MAAM,KAAK,QAAQ,CAAC;AAC/B,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAqB;IAC3C,IAAI,CAAC,OAAO,CAAC,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACtD,OAAO,OAAO,CAAC,EAAE,CAAC;AACtB,CAAC;AACD,SAAS,gBAAgB,CAAC,OAAqB,EAAE,QAAgB;IAC7D,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC/D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,0CAA0C,CAAC,CAAC;IAClG,CAAC;AACL,CAAC;AACD,SAAS,mBAAmB,CAAC,OAAmB,EAAE,IAAY;IAC1D,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CAAC,uEAAuE,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;IAClI,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAE,CAAC;IACjD,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;QAC/D,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC/B,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AACD,SAAS,iBAAiB,CAAC,OAAmB,EAAE,OAAuD;IAInG,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,SAAS,GAAoB,EAAE,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YACrD,SAAS;QACb,CAAC;QACD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;aACI,CAAC;YACF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAK,CAAC,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,IAAK,EAAE,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACzF,CAAC;AACD,SAAS,WAAW,CAAC,IAAY;IAC7B,QAAQ,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,CAAC,OAAO,WAAW,CAAC;QAChC,KAAK,MAAM,CAAC;QACZ,KAAK,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC;QAClC,KAAK,MAAM,CAAC,CAAC,OAAO,WAAW,CAAC;QAChC,KAAK,OAAO,CAAC,CAAC,OAAO,YAAY,CAAC;QAClC,OAAO,CAAC,CAAC,OAAO,0BAA0B,CAAC;IAC/C,CAAC;AACL,CAAC;AACD,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,eAAM,CAAC,UAAU,CAAC;QACrB,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAQ,EAAC,IAAI,CAAC;QACzB,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;KAC1B,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACxC,QAAQ,EAAE,IAAA,oBAAQ,EAAC,IAAI,CAAC;QACxB,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC;QAC3B,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACvC,CAAC,CAAC,CAAC,CAAC;AACT,CAAC;AACD;;;;GAIG;AACH,SAAgB,4BAA4B,CAAC,IAAgC;IAIzE,MAAM,OAAO,GAAmC,IAAI,CAAC,cAAc,KAAK,OAAO;QAC3E,CAAC,CAAC,IAAA,oCAAuB,EAAC,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QACjP,CAAC,CAAC,IAAA,oCAAuB,EAAC,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;IACrP,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9B,MAAM,KAAK,GAAG,CAAC,CAAC,OAAgB,EAAE,UAAmB,EAAE,GAAG,KAAyB,EAAE,EAAE;QACnF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QACzE,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC9B,IAAA,mCAAsB,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzC,IAAI,IAAA,8BAAmB,EAAC,UAAU,CAAC,KAAK,SAAS;YAC7C,MAAM,IAAI,SAAS,CAAC,iDAAiD,CAAC,CAAC;QAC3E,OAAQ,OAAO,CAAC,CAAC,CAAC,KAAuF,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnI,CAAC,CAA+B,CAAC;IACjC,MAAM,KAAK,GAAgC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;IACnE,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,GAAc,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,IAAI,IAAA,qCAAqB,EAAC,EAAE,aAAa,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnK,MAAM,SAAS,GAAG,GAAqD,EAAE;QACrE,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QAClH,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,6BAA6B,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3N,CAAC,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG;QACT,IAAI,KAAK,KAAK,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,SAAS,KAAK,OAAO,SAAS,EAAE,CAAC,CAAC,CAAC;QACvC,SAAS,EAAE,OAAO;QAClB,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,QAAQ,EAAE,CAAC,MAA4C,EAAE,EAAE;YACvD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC9B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;iBACI,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS;oBAC/D,CAAC,CAAC,MAAM,CAAC,OAAO;oBAChB,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;YACnE,CAAC;QACL,CAAC;QACD,UAAU,EAAE,CAAC,KAA4C,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC;QAC9F,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,CAAC,MAAc,EAAS,EAAE;YAC5B,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;gBACpB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC1D,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;YAC1B,MAAM,IAAI,6BAAW,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK;QACtB,KAAK;QACL,KAAK;QACL,GAAG,OAAO;KACb,CAAC;IACF,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAG,OAAsC,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACvH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO;QACH,OAAO,EAAE,OAAkD;QAC3D,KAAK;KACR,CAAC;AACN,CAAC;AACD,SAAS,kBAAkB,CAA2B,OAAgC,EAAE,SAA0B;IAC9G,MAAM,SAAS,GAAG,CAAC,OAAe,EAAE,GAAG,KAAyB,EAAwC,EAAE;QACtG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;QACnE,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,WAAW,EAAE,IAAA,iBAAM,EAAC,OAAO,CAAC,CAAyC,CAAC;IAC7G,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,OAAwB,EAAE,GAAG,KAAyB,EAAwC,EAAE;QAC7G,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,uCAAuC,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,uCAA0B,EAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9F,IAAI,SAAS,IAAI,IAAI,IAAI,CAAC,iCAAiC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,GAAG;YACjG,MAAM,IAAI,SAAS,CAAC,uDAAuD,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,IAAA,qCAAwB,EAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,IAAI,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1L,OAAO,OAAO,CAAC,eAAe,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW;YAC5O,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAM,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,oBAA6B,EAAE,CAAC,CAAC,CAAC,IAAA,qDAAuB,EAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,YAAqB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,aAAsB,EAAE,MAAM,EAAE,oBAA6B,EAAE,CAAC,EAAE,CAAyC,CAAC;IAC/Y,CAAC,CAAC;IACF,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC;AACD;;;GAGG;AACH,SAAgB,4BAA4B,CAAC,IAA4B;IAIrE,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;QAC/C,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,SAAS,EAAE,IAAI,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,GAAG,EAAE,CAAC,IAAA,qCAAqB,EAAC,EAAE,aAAa,EAAE,OAAO,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACvJ,MAAM,IAAI,GAAG,4BAA4B,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACpF,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IACtC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACjC,MAAM,KAAK,GAA4B;QACnC,UAAU,EAAE,OAAO;QACnB,OAAO;QACP,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;KAC5E,CAAC;IACF,MAAM,yBAAyB,GAA8B,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAkBvH,MAAM,QAAQ,GAAwB,EAAE,CAAC;IACzC,IAAI,qBAA2D,CAAC;IAChE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,MAAM,EAAE,sBAA+B;QACvC,aAAa,EAAE,CAAC;KACnB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,KAAK,SAAS;QAC7C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,0BAA0B,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9E,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;YACb,0BAA0B;YAC1B,IAAI,CAAC,YAAY,IAAI,IAAI;YACzB,IAAI,CAAC,OAAO,CAAC,EAAE;YACf,IAAI,CAAC,OAAO,CAAC,KAAK;SACrB,CAAC,CAAC;IACP,MAAM,eAAe,GAAG,CAAC,KAAkC,EAAE,QAA6C,EAAE,wBAAwB,GAAG,KAAK,EAA0C,EAAE;QACpL,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa;YACjC,OAAO,aAAa,CAAC;QACzB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAC7B,CAAC,CAAC,wBAAwB,IAAI,QAAQ,CAAC,MAAM,KAAK,wDAAgC,CAAC,EAAE,CAAC;YACtF,OAAO,SAAS,CAAC;QACrB,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,eAAe,KAAK,UAAU,CAAC;YAClG,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,aAAa,CAAC;IACxB,CAAC,CAAC;IACF,MAAM,kBAAkB,GAAG,CAAC,IAAsB,EAAE,QAA6C,EAAE,wBAAwB,GAAG,KAAK,EAEhI,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAChB,KAAK,EAAE,MAAe;QACtB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;QAClC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;QAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;QAC7B,sBAAsB,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB;QAC5D,MAAM,EAAE,aAAa;QACrB,eAAe,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,wBAAwB,CAAC;KAC/E,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,CAAC,KAAwB,EAAE,QAA6C,EAAE,wBAAwB,GAAG,KAAK,EAErI,EAAE;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,SAAkB;YACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,OAAO,EAAE,QAAQ,CAAC,SAAS;YAC3B,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;YACvD,MAAM,EAAE,aAAa;YACrB,eAAe,EAAE,eAAe,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,wBAAwB,CAAC;SACjH,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,qBAAqB,GAAG,CAAC,KAAkC,EAAE,QAA6C,EAAE,wBAAwB,GAAG,KAAK,EAE/I,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAChB,KAAK,EAAE,SAAkB;QACzB,OAAO,EAAE,cAAc;QACvB,QAAQ,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,QAAQ;QAC/C,MAAM,EAAE,aAAa;QACrB,eAAe,EAAE,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,wBAAwB,CAAC;KAC9E,CAAC,CAAC;IACH,MAAM,qBAAqB,GAAG,CAAC,QAAuB,EAAiB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACpF,GAAG,QAAQ;QACX,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;QACrF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC;KACvF,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,CAAC,KAAwB,EAAiB,EAAE,CAAC,KAAK,CAAC,QAAQ,KAAK,CAAC;QACrF,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB;QAChC,CAAC,CAAC,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG,CAAC,KAAwB,EAAe,EAAE;QAC5D,IAAI,CAAC,KAAK,CAAC,OAAO;YACd,OAAO,aAAa,CAAC;QACzB,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC;YAClB,OAAO,SAAS,CAAC;QACrB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IAC9D,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,GAAkB,EAAE;QACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC;YAChC,CAAC,CAAC,OAAO,CAAC,gBAAgB;YAC1B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;gBACxC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,gBAAgB,CAAC;gBACjD,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACnC,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC;IACF,MAAM,oBAAoB,GAAG,CAAC,SAAkB,EAA+B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC;SAC3M,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAChE,QAAQ;QACR,MAAM,EAAE,yBAAyB,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,OAAO,IAAI,QAAiB;KAC7E,CAAC,CAAC,CAAC,CAAC,CAAC;IACN,MAAM,kBAAkB,GAAG,CAAC,GAA0B,EAAyD,EAAE;QAC7G,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS;YAChC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAC3F,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,sBAAsB,IAAI,GAAG,CAAC;QAC5E,CAAC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC;QACpG,MAAM,UAAU,GAAG,qBAAqB,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;QAC5E,IAAI,MAAM,GAAuB,OAAO,CAAC,+BAA+B,EAAE,CAAC;QAC3E,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;YAC9B,MAAM,KAAK,gCAAgC,CAAC;QAChD,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,KAAK,SAAS;YAClC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACjH,IAAI,MAAM;YACN,MAAM,KAAK,qBAAqB,CAAC;QACrC,MAAM,KAAK,GAGL,EAAE,CAAC;QACT,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,KAAK,mCAAmC,CAAC;gBAC/C,SAAS;YACb,CAAC;YACD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,UAAU;gBAC5C,MAAM,KAAK,yBAAyB,CAAC;YACzC,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;YACpE,KAAK,MAAM,OAAO,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAU,EAAE,CAAC;gBAC/D,IAAI,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,UAAU;oBACzC,MAAM,KAAK,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,iBAAiB,OAAO,cAAc,CAAC;YACxF,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACnC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClC,IAAI,GAAG,KAAK,SAAS;oBACjB,MAAM,KAAK,iCAAiC,CAAC;gBACjD,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;oBACjC,MAAM,KAAK,yBAAyB,CAAC;gBACzC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO;oBAClE,MAAM,KAAK,iBAAiB,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC1D,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB;oBACrE,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzH,MAAM,UAAU,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;gBAC9G,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;wBAC3D,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;wBAC5C,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,eAAe,EAAE,KAAK,CAAC,eAAe;wBAC5F,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,QAAQ,EAAE,KAAK;wBACpC,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;wBACnD,QAAQ,EAAE,+EAA+E;qBAC5F,CAAC,EAAE,CAAC,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,UAAmB,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACpG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAC5F,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,GAAsB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC7E,MAAM,eAAe,GAAG,CAAC,KAAwB,EAAE,GAA0B,EAAyB,EAAE;QACpG,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC;QAChB,OAAO,GAAG,CAAC;IACf,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,CAAC,KAAwB,EAAQ,EAAE,GAAG,KAAK,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACnH,MAAM,aAAa,GAAG,GAAgB,EAAE;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YACnB,OAAO,aAAa,CAAC;QACzB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC5B,OAAO,SAAS,CAAC;QACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC3B,OAAO,QAAQ,CAAC;QACpB,OAAO,WAAW,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,KAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QAChE,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QACjC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;QAClC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;QAC5B,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;KACnC,CAAC,CAAC;IACH,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC;QACxC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;aAC3B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;aAChC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,MAAM,EAAE,aAAa,EAAE;QACvB,QAAQ,EAAE,eAAe,EAAE;KAC9B,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,CAAC,KAAwB,EAAqB,EAAE;QACrE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC;QAC/E,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;YACjC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;YAC7B,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;YAC5B,QAAQ;SACX,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,cAAc,CAAC;QACpC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;YAChD,OAAO,MAAM,CAAC,KAAK,CAAC;QACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC;YAC3B,KAAK;YACL,cAAc;YACd,QAAQ;YACR,QAAQ;YACR,iBAAiB,EAAE,yBAAyB;SAC/C,CAAC,CAAC;QACH,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,GAAsB,EAAE;QAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;QACrC,MAAM,cAAc,GAAG,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;YAC3B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC3C,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;gBACjC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;gBAC7B,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;gBAC5B,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC,CAAC;YACJ,MAAM,EAAE,aAAa,EAAE;YACvB,QAAQ;SACX,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,eAAe,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC;QACrC,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;YAChD,OAAO,MAAM,CAAC,KAAK,CAAC;QACxB,MAAM,KAAK,GAAG,gBAAgB,CAAC;YAC3B,KAAK;YACL,cAAc;YACd,QAAQ;YACR,QAAQ;YACR,iBAAiB,EAAE,yBAAyB;SAC/C,CAAC,CAAC;QACH,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,CAAC,KAAwB,EAA0B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjM,MAAM,iBAAiB,GAAG,CAAC,KAAwB,EAAsB,EAAE;QACvE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,iBAAiB,CAAC;YACrB,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC;YACvE,cAAc,EAAE,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;YAC7D,QAAQ;YACR,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;YAChC,iBAAiB,EAAE,yBAAyB;SAC/C,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,GAA2B,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;SAC3E,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;SAChC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1H,MAAM,iBAAiB,GAAG,GAAuB,EAAE;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,oBAAoB,EAAE,CAAC;QACrC,OAAO,iBAAiB,CAAC;YACrB,KAAK;YACL,cAAc,EAAE,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;YAC7D,QAAQ;YACR,QAAQ,EAAE,eAAe,EAAE;YAC3B,iBAAiB,EAAE,yBAAyB;SAC/C,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAA2B,KAAwB,EAAE,IAAU,EAAE,KAAa,EAA+B,EAAE;QAC5H,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAkB,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;YAC/E,GAAG,MAAM;SACZ,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,IAAA,qCAAuB,EAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,WAAW,GAAqB,MAAM,CAAC,MAAM,CAAC;YAChD,QAAQ;YACR,MAAM,EAAE,YAAY;YACpB,OAAO,EAAE,IAAI,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC9B,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC;YAChC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB;YACvD,MAAM,EAAE,YAAY,CAAC,MAAM;SAC9B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,gBAAgB,CAAC;YAC/B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;YACnC,cAAc,EAAE,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;YACvE,UAAU,EAAE,QAAQ,CAAC,MAAM;YAC3B,QAAQ;YACR,QAAQ,EAAE,aAAa;YACvB,iBAAiB,EAAE,yBAAyB;SAC/C,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,iBAAiB,CAAC;YACjC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC;YACnC,cAAc,EAAE,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC;YAChE,QAAQ;YACR,QAAQ,EAAE,aAAa;YACvB,iBAAiB,EAAE,yBAAyB;SAC/C,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAA6B,CAAC;QACzF,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,CAAoC,CAAC;QAC/G,MAAM,aAAa,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,IAAA,qCAAqB,EAAC,EAAE,aAAa,EAAE,OAAO,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9O,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,uCAA0B,EAAkC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,IAAI,KAAK,KAAK,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvU,MAAM,QAAQ,GAAsB,MAAM,CAAC,MAAM,CAAC;YAC9C,MAAM;YACN,SAAS;YACT,SAAS;YACT,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ;YACR,KAAK;YACL,MAAM,EAAE,IAAA,8BAAiB,EAAC,MAAM,CAAC,IAAI,EAAE;SAC1C,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,CAAC,MAAgD,EAAE,GAAG,KAAyB,EAAE,EAAE;YAClG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;YAC1E,OAAO,gBAAgB,CAAC;gBACpB,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,QAAQ,CAAC,SAAS;gBAC3B,MAAM;aACT,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,aAAa,GAAG,CAAC,MAA0B,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;YAC7E,OAAO,mBAAmB,CAAC;gBACvB,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,QAAQ,CAAC,SAAS;gBAC3B,MAAM;aACT,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,SAAS,GAAG,CAAC,OAIlB,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;YAC9E,OAAO,eAAe,CAAC;gBACnB,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,QAAQ,CAAC,SAAS;gBAC3B,OAAO;aACV,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;YAC9D,OAAO,iBAAiB,CAAC,EAAE,OAAO,EAAE,OAAkC,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3G,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACtE,OAAO,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAkC,EAAE,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;QACjH,CAAC,CAAC;QACF,MAAM,eAAe,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;YACrD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;YAClE,OAAO,qBAAqB,CAAC;gBACzB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,WAAW,CAAC,MAAM;gBAC1B,QAAQ;gBACR,QAAQ,EAAE,aAAa;aAC1B,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,KAAwC,EAAE,GAAG,KAAyB,EAAE,EAAE;YACrF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;YAC7D,OAAO,WAAW,CAAC;gBACf,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,gBAAgB;gBACzB,KAAK;aACR,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAAE,GAAG,KAAyB,EAAE,EAAE;YACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;YAChE,OAAO,wBAAwB,CAAC;gBAC5B,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,gBAAgB;gBACzB,KAAK;aACR,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,OAInB,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;YAC/E,OAAO,uBAAuB,CAAC,OAAkC,EAAE,gBAAgB,EAAE,IAAA,kBAAO,EAAC,OAAO,CAAC,CAAC,CAAC;QAC3G,CAAC,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAkC,EAAE,aAAa,CAAC,CAAC;QACrG,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;YACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,gBAAgB;YAChB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,OAAO,EAAE,QAAQ,CAAC,MAAM;YACxB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;YACvD,IAAI,KAAK,KAAK,OAAO,aAAa,EAAE,CAAC,CAAC,CAAC;YACvC,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YAClD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,KAA4B;YACnC,GAAG,uBAAuB,CAAe,WAAW,EAAE,KAAK,CAAC;YAC5D,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC;gBAC7B,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,aAAa;aAC1B,CAAC;YACF,UAAU;YACV,aAAa;YACb,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,KAAK;YACL,QAAQ;YACR,UAAU;YACV,SAAS;YACT,OAAO;SACV,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAA2B,KAAwB,EAAE,IAAY,EAAE,KAA4B,EAAE,SAAoC,EAAE,GAAmC,EAAuD,EAAE;QAClP,MAAM,WAAW,GAAG,GAAG,IAAI,IAAA,0BAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACzE,OAAO,eAAM,CAAC,OAAO,CAAC,GAAG,EAAE;YACvB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACpB,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAO,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC/K,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;YACxB,CAAC,CAAC,CAAC,EAAE,eAAM,CAAC,QAAQ,CAAC,eAAM,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC,CAAC,CAAC;QACT,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAA2B,KAAwB,EAAE,IAAY,EAAE,KAA4B,EAAE,SAAoC,EAAwC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAA,0BAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC;IAChT,MAAM,WAAW,GAAG,CAA2B,KAAwB,EAAkC,EAAE;QACvG,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,YAAY,GAAG,GAAgC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAgC,CAAC;QACnJ,MAAM,uBAAuB,GAAG,GAAuC,EAAE,CAAC,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAuC,CAAC;QACpL,MAAM,gBAAgB,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,OAAO,IAAA,qCAAqB,EAAC,EAAE,aAAa,EAAE,OAAO,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,KAAK,OAAO,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACnQ,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAA,uCAA0B,EAAqC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,IAAI,SAAS,KAAK,OAAO,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,gBAAgB,KAAK,OAAO,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,KAAK,OAAO,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,qBAAqB,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxa,MAAM,SAAS,GAAG,CAAC,OAIlB,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;YAC9E,OAAO,eAAe,CAAC;gBACnB,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,YAAY,EAAE;gBACvB,OAAO;aACV,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;YACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;YAC9D,OAAO,iBAAiB,CAAC;gBACrB,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,YAAY,EAAE;aAC1B,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;YACtE,OAAO,kBAAkB,CAAC;gBACtB,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,YAAY,EAAE;gBACvB,GAAG;aACN,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,eAAe,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;YACrD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;YAClE,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;YACxC,OAAO,qBAAqB,CAAC;gBACzB,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,mBAAmB,CAAC,KAAK,CAAC;gBAClC,QAAQ;gBACR,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;aACnC,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,KAAwC,EAAE,GAAG,KAAyB,EAAE,EAAE;YACrF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;YAC7D,OAAO,WAAW,CAAC;gBACf,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,uBAAuB,EAAE;gBAClC,KAAK;aACR,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAAE,GAAG,KAAyB,EAAE,EAAE;YACjE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;YAChE,OAAO,wBAAwB,CAAC;gBAC5B,OAAO,EAAE,OAAkC;gBAC3C,OAAO,EAAE,uBAAuB,EAAE;gBAClC,KAAK;aACR,CAAC,CAAC;QACP,CAAC,CAAC;QACF,MAAM,UAAU,GAAG,CAAC,OAInB,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,qDAAqD,CAAC,CAAC;YAC/E,OAAO,uBAAuB,CAAC,OAAkC,EAAE,uBAAuB,EAAE,EAAE,IAAA,kBAAO,EAAC,OAAO,CAAC,CAAC,CAAC;QACpH,CAAC,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAkC,EAAE,gBAAgB,CAAC,CAAC;QACxG,OAAO,MAAM,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC,KAGN,EAAE,EAAE;gBACD,MAAM,IAAI,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC5D,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC;gBAClE,OAAO,IAAI,CAAO,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;YACD,QAAQ,EAAE,CAAC,IAAY,EAAE,IAAa,EAAE,EAAE;gBACtC,MAAM,GAAG,GAAG,IAAA,0BAAU,EAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;gBAC1D,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAO,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrJ,CAAC;YACD,mBAAmB,EAAE,CAAC,MAA2B,EAAE,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC;YAC1F,KAAK,CAAC,OAAO,CAAC,GAAG,SAAyD;gBACtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;oBACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBAC9D,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBACpD,OAAO,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAO,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;YACrE,CAAC;YACD,KAAK,CAAC,UAAU,CAAC,QAAgB;gBAC7B,IAAI,OAAO,CAAC,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACnE,CAAC;gBACD,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;gBACtD,KAAK,MAAM,OAAO,IAAI,QAAQ;oBAC1B,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACxC,OAAO,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;gBACxC,OAAO,IAAI,CAAO,KAAK,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAClK,CAAC;YACD,IAAI,KAAK;gBACL,OAAO,OAAO,CAAC,WAAW,CAAC;YAC/B,CAAC;YACD,IAAI,SAAS;gBACT,OAAO,OAAO,CAAC,EAAE,CAAC;YACtB,CAAC;YACD,IAAI,MAAM;gBACN,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,IAAI,KAAK;gBACL,OAAO,gBAAgB,EAAE,CAAC;YAC9B,CAAC;YACD,IAAI,SAAS;gBACT,OAAO,YAAY,EAAE,CAAC;YAC1B,CAAC;YACD,IAAI,gBAAgB;gBAChB,OAAO,uBAAuB,EAAE,CAAC;YACrC,CAAC;YACD,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;YAClD,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,KAA4B;YACnC,GAAG,uBAAuB,CAAkB,WAAW,EAAE,KAAK,CAAC;YAC/D,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC;gBAC7B,OAAO,EAAE,OAAkC;gBAC3C,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC;gBAC5B,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;gBAChC,QAAQ,EAAE,eAAe,CAAC,KAAK,CAAC;aACnC,CAAC;YACF,UAAU,EAAE,CAAC,MAAgD,EAAE,GAAG,KAAyB,EAAE,EAAE;gBAC3F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAChB,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;gBAC1E,OAAO,gBAAgB,CAAC;oBACpB,OAAO,EAAE,OAAkC;oBAC3C,OAAO,EAAE,YAAY,EAAE;oBACvB,MAAM;iBACT,CAAC,CAAC;YACP,CAAC;YACD,aAAa,EAAE,CAAC,MAA0B,EAAE,GAAG,KAAyB,EAAE,EAAE;gBACxE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAChB,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;gBAC7E,OAAO,mBAAmB,CAAC;oBACvB,OAAO,EAAE,OAAkC;oBAC3C,OAAO,EAAE,YAAY,EAAE;oBACvB,MAAM;iBACT,CAAC,CAAC;YACP,CAAC;YACD,SAAS;YACT,WAAW;YACX,YAAY;YACZ,eAAe;YACf,KAAK;YACL,QAAQ;YACR,UAAU;YACV,SAAS;YACT,OAAO;SACV,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,YAAY,GAAsB;QACpC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,KAAK;KAChB,CAAC;IACF,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5B,MAAM,OAAO,GAAG,WAAW,CAAc,YAAY,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,GAAgC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,gBAAgB,EAAE,EAAE,KAAK,CAAgC,CAAC;IAC9I,MAAM,uBAAuB,GAAG,GAAuC,EAAE,CAAC,uBAAuB,CAAC,SAAS,EAAE,iBAAiB,EAAE,EAAE,KAAK,CAAuC,CAAC;IAC/K,MAAM,eAAe,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;QACrD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAC9D,OAAO,iBAAiB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,GAAG,KAAyB,EAAE,EAAE;QACnE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,4CAA4C,CAAC,CAAC;QACtE,OAAO,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IACzE,CAAC,CAAC;IACF,MAAM,mBAAmB,GAAG,CAAC,GAAG,KAAyB,EAAE,EAAE;QACzD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,OAAO,qBAAqB,CAAC;YACzB,OAAO;YACP,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,mBAAmB,EAAE;YAC7B,QAAQ;YACR,QAAQ,EAAE,eAAe,EAAE;SAC9B,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,KAAwC,EAAE,GAAG,KAAyB,EAAE,EAAE;QACzF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,mCAAmC,CAAC,CAAC;QAC7D,OAAO,WAAW,CAAC;YACf,OAAO;YACP,OAAO,EAAE,uBAAuB,EAAE;YAClC,KAAK;SACR,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,YAAY,GAAG,CAAC,KAAiB,EAAE,GAAG,KAAyB,EAAE,EAAE;QACrE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAChB,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QAChE,OAAO,wBAAwB,CAAC;YAC5B,OAAO;YACP,OAAO,EAAE,uBAAuB,EAAE;YAClC,KAAK;SACR,CAAC,CAAC;IACP,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAA,iCAAoB,EAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAkB,EAAE,IAAI,SAAS,KAAK,OAAO,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,gBAAgB,KAAK,OAAO,uBAAuB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,KAAK,OAAO,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,qBAAqB,CAAC,oBAAoB,EAAE,EAAE,eAAe,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9X,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACzG,MAAM,IAAI,GAAG;QACT,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3L,GAAG,uBAAuB,CAAyB,KAAiG,EAAE,SAAS,CAAC;QAChK,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,IAAI,KAAK;YACL,OAAO,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC;QACD,IAAI,SAAS;YACT,OAAO,OAAO,CAAC,SAAS,CAAC;QAC7B,CAAC;QACD,IAAI,MAAM;YACN,OAAO,OAAO,CAAC,MAAM,CAAC;QAC1B,CAAC;QACD,IAAI,gBAAgB;YAChB,OAAO,uBAAuB,EAAE,CAAC;QACrC,CAAC;QACD,UAAU,EAAE,GAAG,EAAE;YACb,MAAM,KAAK,GAAsB;gBAC7B,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE;gBAC7B,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,CAAC;gBACX,MAAM,EAAE,KAAK;aAChB,CAAC;YACF,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,WAAW,CAAc,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,EAAE,wBAAwB,CAAC;YAC9B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO;YACP,IAAI,EAAE,KAAK,CAAC,IAAI;SACnB,CAAC;QACF,IAAI,IAAI;YACJ,OAAO,IAAA,4BAAgB,EAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,KAAK;YACL,OAAO,CAAC,mBAAmB,EAAE,CAAC;YAC9B,OAAO,gBAAgB,EAAE,CAAC;QAC9B,CAAC;QACD,IAAI,SAAS;YACT,OAAO,YAAY,EAAE,CAAC;QAC1B,CAAC;QACD,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC;YAC7B,OAAO;YACP,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,aAAa,EAAE;YACvB,QAAQ,EAAE,eAAe,EAAE;YAC3B,QAAQ,EAAE,eAAe,EAAE;SAC9B,CAAC;QACF,UAAU,EAAE,CAAC,MAAgD,EAAE,GAAG,KAAyB,EAAE,EAAE;YAC3F,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;YAC1E,OAAO,gBAAgB,CAAC;gBACpB,OAAO;gBACP,OAAO,EAAE,YAAY,EAAE;gBACvB,MAAM;aACT,CAAC,CAAC;QACP,CAAC;QACD,aAAa,EAAE,CAAC,MAA0B,EAAE,GAAG,KAAyB,EAAE,EAAE;YACxE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAChB,MAAM,IAAI,SAAS,CAAC,mDAAmD,CAAC,CAAC;YAC7E,OAAO,mBAAmB,CAAC;gBACvB,OAAO;gBACP,OAAO,EAAE,YAAY,EAAE;gBACvB,MAAM;aACT,CAAC,CAAC;QACP,CAAC;QACD,WAAW,EAAE,eAAe;QAC5B,YAAY,EAAE,gBAAgB;QAC9B,eAAe,EAAE,mBAAmB;QACpC,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,aAAa;QACxB,OAAO,EAAE,WAAW;KACvB,CAAC;IACF,IAAI,IAAI,CAAC,cAAc,KAAK,OAAO;QAC/B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,KAAK,EAAG,OAAsC,CAAC,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACvH,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO;QACH,OAAO,EAAE,OAA8C;QACvD,KAAK;KACR,CAAC;AACN,CAAC","sourcesContent":["import { compareCanonicalDecimal } from \"../o11y/adapter-usage-projection.ts\";\nimport { canonicalDecimalFromNumber } from \"../record/family/adapter-usage/pricing.ts\";\nimport { ownMaterialCollection } from \"../assertions/material.ts\";\nimport { defineMaterialMatch, type MaterialCollection, type MaterialMatch, type ContextualMatch } from \"../assertions/context-match.ts\";\nimport { projectAgentEvalUsage, type EvalUsage } from \"../o11y/eval-usage.ts\";\nimport { registerMaterialQA, bindAssertionContext, createScopedAssertionCheck } from \"../assertions/runtime.ts\";\nimport type { ExperimentFlags } from \"../shared/types.ts\";\n/**\n * The active Eval context. Assertion authoring deliberately enters through\n * `AssertionsRuntime`; this module never constructs an intermediate Fact or\n * starts a private runtime.\n */\nimport { readFile } from \"node:fs/promises\";\nimport { basename, extname } from \"node:path\";\nimport { Effect } from \"effect\";\nimport { assertAssertionSubject, captureAssertionSnapshot, createAssertionsRuntime, postRunBooleanAssertionHandle, } from \"../assertions/runtime.ts\";\nimport type { AssertionCriterion, AssertionMaterial, AssertionSubject, AssertionsRuntime, BooleanAssertionHandle, BooleanAssertionEvaluation, ScoreFunction, MatcherSourceLocator, MatcherSourceSnapshot, MeasurementAssertionHandle, PostRunBooleanAssertionHandle, } from \"../assertions/api.ts\";\nimport type { MatcherSourceRow } from \"../assertions/matcher-artifact.ts\";\nimport { agentWorkspaceDiffChangesForPath, agentWorkspaceDiffPathsMatch, evaluateWorkspaceDiffNotIn, type AgentWorkspaceDiffEndpoint, type PostRunWorkspaceDiffState, type WorkspaceDiffNotInOptions, } from \"../assertions/workspace-diff.ts\";\nimport { assertCanonicalWorkspaceRelativePath, validateExpectedTouchedPaths, } from \"../assertions/diff.ts\";\nimport { freezeManagedEventOccurrences, freezeManagedToolCalls, } from \"../assertions/collection.ts\";\nimport { atMost, assertManagedEventMatch, assertManagedToolMatch, evaluateBooleanMatch, inOrder, collectionMatchSpecOf, isManagedCollectionMatch, isManagedEventMatch, isManagedToolMatch, defineValueMatch, managedScoreMatchOf, makeAssertionMessageEvent, makeAssertionToolEvent, toolMatch, type BooleanMatch, type BooleanMatchEvaluation, type EventMatch, type EventOccurrenceMatch, type EventOccurrenceView, type ManagedEventOccurrences, type ManagedToolCalls, type ScoreMatch, type ToolMatch, type ToolOccurrenceMatch, type ToolMatchQuantifier, } from \"../assertions/match.ts\";\nimport { numericBooleanRegistration } from \"../assertions/numeric.ts\";\nimport { factuality, faithfulness, instructionFollowing, pairwisePreference, type FactualityMaterial, type FaithfulnessMaterial, type InstructionFollowingMaterial, type JudgePresetOptions, type PairwisePreferenceMaterial, } from \"../assertions/judge-presets.ts\";\nimport { buildO11ySummary, deriveRunFacts, deriveScopedLogicalToolOccurrences, projectObservedSourceEvents, type ObservedEventLedgerRow, type ObservedToolOccurrenceLedgerRow, } from \"../o11y/derive.ts\";\nimport { observedSnapshotForTurn, type ObservedEvaluationSegment, type ObservedSourceEvent, type ObservedTurnSnapshot, } from \"../o11y/observed.ts\";\nimport { UNCLASSIFIED_TOOL_ACTIONS_REASON } from \"../o11y/command-projection.ts\";\nimport { captureLoc, type SourceRegistry } from \"../source-loc.ts\";\nimport { lastAssistantText, RunSession, SessionManager, type SessionDeps } from \"./session.ts\";\nimport { EvalSkipped } from \"./control-flow.ts\";\nimport type { ConcurrencySlot } from \"./send-retry.ts\";\nimport type { AnswerValue, InputResponse } from \"../agents/types.ts\";\nimport { matchesJson } from \"../shared/json-match.ts\";\nimport type { Agent, InputFile, InputRequest, InputRequestFilter, JsonMatch, JsonValue, PriceOverride, ResolvedJudgeConfig, Sandbox, SandboxOperations, SandboxTransferOperations, StreamEvent, Turn, Usage, } from \"../types.ts\";\nimport type { LogicalToolOccurrence, LogicalToolOccurrenceScopeTurn, OrphanToolOperationFinish, } from \"../o11y/types.ts\";\nexport interface AssertFirstLateResult {\n diff: PostRunWorkspaceDiffState;\n scripts: globalThis.Record<string, import(\"../types.ts\").ScriptResult>;\n}\nexport interface AssertFirstContextState {\n readonly assertions: AssertionsRuntime<\"pass\" | \"score\">;\n readonly manager: SessionManager;\n readonly late: AssertFirstLateResult;\n}\nexport interface AssertFirstCoreContextState {\n readonly assertions: AssertionsRuntime<\"pass\" | \"score\">;\n skipReason?: string;\n}\nexport interface AssertFirstCoreContextDeps {\n readonly judgeUsage?: import(\"../o11y/judge-usage.ts\").JudgeUsageCollector;\n readonly readUsage?: () => EvalUsage;\n readonly elapsedMs?: () => number;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: ExperimentFlags;\n readonly signal: AbortSignal;\n readonly log: (message: string) => void;\n readonly feedback?: import(\"../types.ts\").ScopedFeedback;\n readonly judge: ResolvedJudgeConfig | undefined;\n readonly executeStop: import(\"../assertions/api.ts\").AssertionStopExecutor;\n readonly evaluationKind: RuntimeKind;\n}\nexport type AssertFirstCoreTestContext<Kind extends RuntimeKind = RuntimeKind> = JudgePresetMethods<Kind> & {\n readonly usage: EvalUsage;\n readonly elapsedMs: import(\"../assertions/match.ts\").NumericMaterial;\n maxTokens(max: number): BooleanAssertionHandle<Kind, number>;\n maxCost(usd: number | string): BooleanAssertionHandle<Kind, string>;\n readonly evaluationKind: Kind;\n readonly signal: AbortSignal;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: ExperimentFlags;\n progress(update: import(\"../types.ts\").ProgressUpdate): void;\n diagnostic(input: import(\"../types.ts\").DiagnosticInput): void;\n log(message: string): void;\n skip(reason: string): never;\n group<Value>(title: string, body: () => Value | PromiseLike<Value>): Promise<Awaited<Value>>;\n check: import(\"../assertions/api.ts\").AssertionCheck<Kind>;\n judge: JudgeFunction<Kind>;\n} & (Kind extends \"score\" ? {\n readonly score: ScoreFunction;\n} : {});\n/** The Runner-facing dependencies retain the current SessionManager boundary. */\nexport interface AssertFirstContextDeps {\n readonly judgeUsage?: import(\"../o11y/judge-usage.ts\").JudgeUsageCollector;\n readonly agent: Agent;\n readonly sandbox: Sandbox;\n readonly evalId?: string;\n readonly attempt?: import(\"../types.ts\").AgentContext[\"attempt\"];\n readonly evalGroup?: import(\"../types.ts\").AgentContext[\"evalGroup\"];\n readonly model?: string;\n /** defineConfig({ pricing }) 的价目表,只供 maxCost 的 estimatedCostUSD 估算(estimateCost);与 observed usage.costUSD 无关。 */\n readonly pricing?: globalThis.Record<string, PriceOverride>;\n readonly reasoningEffort?: string;\n readonly flags: ExperimentFlags;\n readonly experimentId?: string;\n readonly signal: AbortSignal;\n readonly log: (message: string) => void;\n readonly telemetry?: import(\"../types.ts\").Telemetry;\n readonly otel?: import(\"../o11y/otlp/turn-otel.ts\").AgentOtelChannel;\n readonly feedback?: import(\"../types.ts\").ScopedFeedback;\n readonly onSendActive?: (active: boolean) => void;\n readonly ledgerHooks?: import(\"./session.ts\").SessionDeps[\"ledgerHooks\"];\n readonly elapsedMs?: () => number;\n readonly timingNow?: import(\"./session.ts\").SessionDeps[\"timingNow\"];\n readonly onTurn?: import(\"./session.ts\").SessionDeps[\"onTurn\"];\n readonly concurrencySlot?: ConcurrencySlot;\n readonly experimentClassifier?: import(\"./session.ts\").SessionDeps[\"experimentClassifier\"];\n /** Attempt-owned source snapshot registry; never inferred from an Effect fiber. */\n readonly sourceRegistry?: SourceRegistry;\n readonly resources: import(\"../types.ts\").AttemptResourceRegistry;\n /** Shared ordering with Assertion runtime source facts and Session user events. */\n readonly nextSourceOrder?: () => number;\n readonly judge: ResolvedJudgeConfig | undefined;\n /** The Attempt-scoped bridge is the sole Promise facade for author sends. */\n readonly requestEffect: NonNullable<SessionDeps[\"requestEffect\"]>;\n /** Ordinary immediate Assertion stop barriers stay in the Attempt Effect Scope. */\n readonly executeStop: import(\"../assertions/api.ts\").AssertionStopExecutor;\n readonly evaluationKind: \"pass\" | \"score\";\n}\ntype RuntimeKind = \"pass\" | \"score\";\ntype AssertFirstRespondAnswer = {\n readonly request: InputRequest;\n} & AnswerValue;\nexport interface JudgePresetMethods<Kind extends RuntimeKind, Context = unknown> {\n factuality(material: FactualityMaterial, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n faithfulness(material: FaithfulnessMaterial, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n instructionFollowing(material: InstructionFollowingMaterial, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n pairwisePreference(material: PairwisePreferenceMaterial, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n closeQA<T>(selector: MaterialMatch<Context, T>, question: string, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n}\n/** Agent supplies its receiver's complete default history to the shared QA capability. */\nexport interface AgentJudgePresetMethods<Kind extends RuntimeKind, Context> extends JudgePresetMethods<Kind, Context> {\n closeQA(question: string, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n closeQA(selector: ToolMatch | EventMatch, question: string, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n closeQA<T>(selector: MaterialMatch<Context, T>, question: string, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n}\ninterface AgentHistoryFrame {\n cut?: MatcherSourceSnapshot;\n read?: (cut: MatcherSourceSnapshot) => MaterialCollection<Readonly<Record<string, unknown>>>;\n}\nconst agentQACapture = Object.freeze({ maxItems: 16384, maxBytes: 4 * 1024 * 1024, maxNodes: 1048576, maxDepth: 64 });\nfunction agentJudgePresetMethods<Kind extends RuntimeKind, S extends AssertionScope>(check: import(\"../assertions/api.ts\").AssertionCheck<Kind, AgentMatchContext<S>>, frame: AgentHistoryFrame): AgentJudgePresetMethods<Kind, AgentMatchContext<S>> {\n const defaults = defineMaterialMatch<AgentMatchContext<S>, Readonly<Record<string, unknown>>>({\n name: \"agent-history\",\n read: () => frame.cut === undefined || frame.read === undefined\n ? { state: \"unavailable\", reason: \"agent-history-receiver-closed\" }\n : frame.read(frame.cut),\n match: defineValueMatch({ name: \"all-history-items\", evaluate: (_value: Readonly<Record<string, unknown>>) => true }),\n capture: agentQACapture,\n });\n const closeQA = (first: unknown, second?: unknown, third?: JudgePresetOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"closeQA accepts question and options, or selector, question and options\");\n let selector: ContextualMatch;\n let question: string;\n let options: JudgePresetOptions | undefined;\n if (typeof first === \"string\") {\n if (third !== undefined)\n throw new TypeError(\"closeQA(question, options) accepts two arguments\");\n selector = defaults as ContextualMatch;\n question = first;\n options = second as JudgePresetOptions | undefined;\n }\n else {\n question = second as string;\n options = third;\n selector = isManagedToolMatch(first)\n ? defineMaterialMatch<AgentMatchContext<S>>({ name: \"agent-tool-history\", read: ctx => ctx.toolCalls as ManagedToolCalls<S>, match: first, capture: agentQACapture }) as ContextualMatch\n : isManagedEventMatch(first)\n ? defineMaterialMatch<AgentMatchContext<S>>({ name: \"agent-event-history\", read: ctx => ctx.eventOccurrences as ManagedEventOccurrences<S>, match: first, capture: agentQACapture }) as ContextualMatch\n : first as ContextualMatch;\n }\n return registerMaterialQA(check, selector, question, options) as MeasurementAssertionHandle<Kind>;\n };\n return Object.freeze({ ...judgePresetMethods(check), closeQA }) as AgentJudgePresetMethods<Kind, AgentMatchContext<S>>;\n}\nfunction judgePresetMethods<Kind extends RuntimeKind, C = unknown>(check: import(\"../assertions/api.ts\").AssertionCheck<Kind, C>): JudgePresetMethods<Kind, C> {\n const apply = <Material>(factory: (options?: JudgePresetOptions) => ScoreMatch<Material>, material: Material, options: JudgePresetOptions | undefined, extra: readonly unknown[], name: string): MeasurementAssertionHandle<Kind> => {\n if (extra.length > 0)\n throw new TypeError(`${name}() accepts material and optional options`);\n return (check as (value: Material, match: ScoreMatch<Material>) => MeasurementAssertionHandle<Kind>)(material, factory(options));\n };\n return Object.freeze({\n factuality: (material: FactualityMaterial, options?: JudgePresetOptions, ...extra: readonly unknown[]) => apply(factuality, material, options, extra, \"factuality\"),\n faithfulness: (material: FaithfulnessMaterial, options?: JudgePresetOptions, ...extra: readonly unknown[]) => apply(faithfulness, material, options, extra, \"faithfulness\"),\n instructionFollowing: (material: InstructionFollowingMaterial, options?: JudgePresetOptions, ...extra: readonly unknown[]) => apply(instructionFollowing, material, options, extra, \"instructionFollowing\"),\n pairwisePreference: (material: PairwisePreferenceMaterial, options?: JudgePresetOptions, ...extra: readonly unknown[]) => apply(pairwisePreference, material, options, extra, \"pairwisePreference\"),\n closeQA: <T>(selector: MaterialMatch<C, T>, question: string, options?: JudgePresetOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"closeQA accepts selector, question and optional options\");\n return registerMaterialQA(check, selector as ContextualMatch, question, options) as MeasurementAssertionHandle<Kind>;\n },\n });\n}\nexport interface FileChangedOptions {\n readonly status?: \"added\" | \"modified\" | \"deleted\";\n readonly before?: BooleanMatch<string, string, \"value\">;\n readonly after?: BooleanMatch<string, string, \"value\">;\n}\n/** The only agent-attributed post-run diff surface exposed to Eval authors. */\nexport interface AssertFirstSandbox<Kind extends RuntimeKind> extends SandboxOperations, SandboxTransferOperations {\n changedPaths(paths: readonly string[]): PostRunBooleanAssertionHandle<Kind, void>;\n noChanges(): PostRunBooleanAssertionHandle<Kind, void>;\n fileChanged(path: string, options?: FileChangedOptions): PostRunBooleanAssertionHandle<Kind, void>;\n fileDeleted(path: string): PostRunBooleanAssertionHandle<Kind, void>;\n notInDiff(pattern: RegExp, options?: WorkspaceDiffNotInOptions): PostRunBooleanAssertionHandle<Kind, void>;\n}\nexport interface AssertFirstTurnHandle<Kind extends RuntimeKind> extends AgentJudgePresetMethods<Kind, AgentMatchContext<\"turn\">> {\n readonly input: string;\n readonly events: readonly StreamEvent[];\n readonly toolCalls: ManagedToolCalls<\"turn\">;\n readonly eventOccurrences: ManagedEventOccurrences<\"turn\">;\n readonly status: \"completed\" | \"failed\" | \"waiting\";\n readonly message: string;\n readonly data?: JsonValue;\n readonly usage: EvalUsage;\n check: import(\"../assertions/api.ts\").AssertionCheck<Kind, AgentMatchContext<\"turn\">>;\n judge: JudgeFunction<Kind>;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch | ToolOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n toolOrder(matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch | EventOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n eventOrder(matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n readonly elapsedMs: import(\"../assertions/match.ts\").NumericMaterial;\n maxTokens(max: number): BooleanAssertionHandle<Kind, number>;\n maxCost(usd: number | string): BooleanAssertionHandle<Kind, string>;\n}\nexport interface AssertFirstSessionHandle<Kind extends RuntimeKind> extends AgentJudgePresetMethods<Kind, AgentMatchContext<\"session\">> {\n send(input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }): Promise<AssertFirstTurnHandle<Kind>>;\n sendFile(path: string, text?: string): Promise<AssertFirstTurnHandle<Kind>>;\n requireInputRequest(filter?: InputRequestFilter): InputRequest;\n respond(...responses: readonly (string | AssertFirstRespondAnswer)[]): Promise<AssertFirstTurnHandle<Kind>>;\n respondAll(optionId: string): Promise<AssertFirstTurnHandle<Kind>>;\n readonly reply: string;\n readonly sessionId: string | undefined;\n readonly events: readonly StreamEvent[];\n readonly usage: EvalUsage;\n readonly toolCalls: ManagedToolCalls<\"session\">;\n readonly eventOccurrences: ManagedEventOccurrences<\"session\">;\n check: import(\"../assertions/api.ts\").AssertionCheck<Kind, AgentMatchContext<\"session\">>;\n judge: JudgeFunction<Kind>;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch | ToolOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n toolOrder(matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch | EventOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n eventOrder(matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n readonly elapsedMs: import(\"../assertions/match.ts\").NumericMaterial;\n maxTokens(max: number): BooleanAssertionHandle<Kind, number>;\n maxCost(usd: number | string): BooleanAssertionHandle<Kind, string>;\n}\ntype JudgeFunction<Kind extends RuntimeKind> = <Value>(value: AssertionSubject<Value>, definition: ScoreMatch<NoInfer<Value>>) => MeasurementAssertionHandle<Kind>;\nexport type AssertFirstTestContext<Kind extends RuntimeKind> = AgentJudgePresetMethods<Kind, AgentMatchContext<\"attempt\">> & {\n readonly evaluationKind: Kind;\n send(input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }): Promise<AssertFirstTurnHandle<Kind>>;\n sendFile(path: string, text?: string): Promise<AssertFirstTurnHandle<Kind>>;\n requireInputRequest(filter?: InputRequestFilter): InputRequest;\n respond(...responses: readonly (string | AssertFirstRespondAnswer)[]): Promise<AssertFirstTurnHandle<Kind>>;\n respondAll(optionId: string): Promise<AssertFirstTurnHandle<Kind>>;\n readonly reply: string;\n readonly sessionId: string | undefined;\n readonly events: readonly StreamEvent[];\n readonly eventOccurrences: ManagedEventOccurrences<\"attempt\">;\n newSession(): AssertFirstSessionHandle<Kind>;\n readonly signal: AbortSignal;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: ExperimentFlags;\n progress(update: import(\"../types.ts\").ProgressUpdate): void;\n diagnostic(input: import(\"../types.ts\").DiagnosticInput): void;\n log(message: string): void;\n skip(reason: string): never;\n group<Value>(title: string, body: () => Value | PromiseLike<Value>): Promise<Awaited<Value>>;\n check: import(\"../assertions/api.ts\").AssertionCheck<Kind, AgentMatchContext<\"attempt\">>;\n judge: JudgeFunction<Kind>;\n readonly toolCalls: ManagedToolCalls<\"attempt\">;\n readonly sandbox: AssertFirstSandbox<Kind>;\n readonly o11y: import(\"../o11y/types.ts\").O11ySummary;\n readonly usage: EvalUsage;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch | ToolOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch | EventOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n readonly elapsedMs: import(\"../assertions/match.ts\").NumericMaterial;\n maxTokens(max: number): BooleanAssertionHandle<Kind, number>;\n maxCost(usd: number | string): BooleanAssertionHandle<Kind, string>;\n} & (Kind extends \"score\" ? {\n readonly score: ScoreFunction;\n} : {});\nexport interface AgentMatchContext<Scope extends \"turn\" | \"session\" | \"attempt\" = \"attempt\"> {\n readonly scope: Scope;\n readonly toolCalls: ManagedToolCalls<Scope>;\n readonly eventOccurrences: ManagedEventOccurrences<Scope>;\n readonly usage: EvalUsage;\n}\ntype AssertionScope = \"turn\" | \"session\" | \"attempt\";\ntype ScopeStatus = \"completed\" | \"failed\" | \"waiting\" | \"not-started\";\ntype ScopeCoverage = import(\"../assertions/coverage.ts\").ResolvedEvidenceCoverage;\nfunction scopeCriterion(scope: AssertionScope, assertion: \"succeeded\" | \"no-failed-actions\" = \"succeeded\"): AssertionCriterion {\n return Object.freeze({\n kind: \"scope-status\" as const,\n scope,\n assertion,\n });\n}\nfunction occurrenceCriterion(scope: AssertionScope, occurrence: \"tool\" | \"event\", matcher: string | undefined, quantifier: ToolMatchQuantifier): AssertionCriterion {\n return Object.freeze({\n kind: \"occurrence\" as const,\n scope,\n occurrence,\n assertion: quantifier.kind === \"absent\"\n ? \"absent\" as const\n : quantifier.kind === \"exact\"\n ? \"count\" as const\n : quantifier.kind === \"at-least\" && quantifier.count === 1\n ? \"present\" as const\n : \"count\" as const,\n ...(matcher === undefined ? {} : { matcher }),\n quantifier: Object.freeze(quantifier.kind === \"absent\"\n ? { kind: \"absent\" as const }\n : { kind: quantifier.kind, count: quantifier.count }),\n });\n}\nfunction scopeCoverageState(coverage: ScopeCoverage, channel: \"actions\" | \"status\"): \"complete\" | \"partial\" | \"unavailable\" {\n return coverage[channel].status;\n}\nfunction succeededHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly status: ScopeStatus;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot({\n scope: input.scope,\n assertion: \"succeeded\",\n status: input.status,\n coverage: input.coverage.status.status,\n snapshot: input.snapshot,\n });\n return input.runtime.registerBoolean<void>({\n criterion: scopeCriterion(input.scope),\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: () => Effect.sync(() => input.status === \"not-started\"\n ? Object.freeze({ state: \"mismatched\" as const })\n : scopeCoverageState(input.coverage, \"status\") !== \"complete\"\n ? Object.freeze({ state: \"unavailable\" as const, reason: \"source-unavailable\" as const })\n : input.status === \"completed\"\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const })),\n });\n}\ninterface MatcherScopeTurn {\n readonly observed: ObservedTurnSnapshot;\n readonly events: readonly StreamEvent[];\n readonly outcome: \"completed\" | \"failed\" | \"waiting\";\n}\ntype ProjectedMatcherCandidate<Candidate> = {\n readonly state: \"available\";\n readonly value: Candidate;\n} | {\n readonly state: \"unavailable\";\n readonly reason: string;\n};\ninterface MatcherSourceProjection {\n readonly state: \"available\" | \"invalid\";\n readonly events: readonly ObservedEventLedgerRow[];\n readonly toolOccurrences: readonly ObservedToolOccurrenceLedgerRow[];\n readonly occurrenceCandidates: ReadonlyMap<string, LogicalToolOccurrence>;\n readonly orphanFinishes: readonly OrphanToolOperationFinish[];\n}\ntype ResolveObservedEvaluation = (snapshot: ObservedTurnSnapshot) => ObservedEvaluationSegment | undefined;\ninterface ToolScopeSnapshot {\n readonly occurrences: readonly LogicalToolOccurrence[];\n readonly rows: readonly MatcherSourceRow<ProjectedMatcherCandidate<LogicalToolOccurrence>>[];\n readonly orphanFinishes: readonly OrphanToolOperationFinish[];\n readonly sourceSnapshot: MatcherSourceSnapshot;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}\ninterface ToolScopeProjectionCache {\n readonly cutKey: string;\n readonly value: ToolScopeSnapshot;\n}\nfunction toolScopeCutKey(sourceSnapshot: MatcherSourceSnapshot, snapshot: unknown): string {\n const encoded = JSON.stringify([sourceSnapshot, snapshot]);\n if (encoded === undefined) {\n throw new Error(\"Tool scope cut must be JSON-serializable\");\n }\n return encoded;\n}\nfunction unavailableSourceSnapshot(snapshot: MatcherSourceSnapshot): MatcherSourceSnapshot {\n return Object.freeze({ ...snapshot, collectionAtCut: \"unavailable\" as const });\n}\nfunction projectMatcherSources(turns: readonly MatcherScopeTurn[], resolveEvaluation: ResolveObservedEvaluation): MatcherSourceProjection {\n const evaluation = turns.map((turn) => resolveEvaluation(turn.observed));\n if (evaluation.some((segment) => segment === undefined)) {\n return Object.freeze({\n state: \"invalid\" as const,\n events: Object.freeze([]),\n toolOccurrences: Object.freeze([]),\n occurrenceCandidates: new Map<string, LogicalToolOccurrence>(),\n orphanFinishes: Object.freeze([]),\n });\n }\n const segments = evaluation as readonly ObservedEvaluationSegment[];\n const projected = projectObservedSourceEvents(segments);\n const logicalTurns: readonly LogicalToolOccurrenceScopeTurn[] = Object.freeze(segments.map((segment, index) => Object.freeze({\n session: segment.sessionId,\n turn: segment.turnId,\n turnOrdinal: index + 1,\n events: segment.events,\n outcome: turns[index]!.outcome,\n })));\n const logical = deriveScopedLogicalToolOccurrences(logicalTurns);\n if (projected.state === \"invalid\") {\n return Object.freeze({\n state: \"invalid\" as const,\n events: Object.freeze([]),\n toolOccurrences: Object.freeze([]),\n occurrenceCandidates: new Map<string, LogicalToolOccurrence>(),\n orphanFinishes: logical.orphanFinishes,\n });\n }\n const occurrenceCandidates = new Map<string, LogicalToolOccurrence>();\n for (const occurrence of logical.occurrences) {\n const segment = segments[occurrence.start.turnOrdinal - 1];\n const start = segment?.items[occurrence.start.eventOrdinal];\n if (segment === undefined || start?.kind !== \"tool-start\")\n continue;\n occurrenceCandidates.set(start.toolOccurrenceId, Object.freeze({\n ...occurrence,\n id: start.toolOccurrenceId,\n session: segment.sessionId,\n turn: segment.turnId,\n }));\n }\n return Object.freeze({\n state: \"available\" as const,\n events: projected.events,\n toolOccurrences: projected.toolOccurrences,\n occurrenceCandidates,\n orphanFinishes: logical.orphanFinishes,\n });\n}\nfunction exactToolLocator(toolOccurrenceId: string): MatcherSourceLocator {\n return Object.freeze({\n kind: \"tool-occurrence\" as const,\n toolOccurrenceId,\n relation: Object.freeze({ state: \"exact\" as const }),\n });\n}\nfunction projectToolScope(input: {\n readonly turns: readonly MatcherScopeTurn[];\n readonly sourceSnapshot: MatcherSourceSnapshot;\n readonly homeTurnId?: string;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n readonly resolveEvaluation: ResolveObservedEvaluation;\n}): ToolScopeSnapshot {\n const projection = projectMatcherSources(input.turns, input.resolveEvaluation);\n const sourceSnapshot = projection.state === \"invalid\"\n ? unavailableSourceSnapshot(input.sourceSnapshot)\n : input.sourceSnapshot;\n const sourceRows = input.homeTurnId === undefined\n ? projection.toolOccurrences\n : projection.toolOccurrences.filter((row) => row.homeTurnId === input.homeTurnId);\n const rows = Object.freeze(sourceRows.map((row) => {\n const candidate = projection.occurrenceCandidates.get(row.toolOccurrenceId);\n return Object.freeze({\n locator: exactToolLocator(row.toolOccurrenceId),\n sessionId: row.sessionId,\n sessionSequence: row.startSessionSequence,\n candidate: candidate === undefined\n ? Object.freeze({\n state: \"unavailable\" as const,\n reason: \"source-occurrence-material-unavailable\",\n })\n : Object.freeze({ state: \"available\" as const, value: candidate }),\n });\n }));\n return Object.freeze({\n occurrences: Object.freeze(rows.flatMap((row) => row.candidate.state === \"available\" ? [row.candidate.value] : [])),\n rows,\n orphanFinishes: projection.orphanFinishes,\n sourceSnapshot,\n coverage: input.coverage,\n snapshot: input.snapshot,\n });\n}\nfunction resolveToolTarget(target: ToolMatch | string, label: \"calledTool\" | \"notCalledTool\"): ToolMatch {\n if (typeof target === \"string\")\n return toolMatch(target);\n return assertManagedToolMatch(target, `${label}() match`);\n}\nfunction toolScopeCoverageReason(snapshot: ToolScopeSnapshot): string | undefined {\n const actions = snapshot.coverage.actions;\n // Missing command/not-command classification limits commandMatch(), not the\n // completeness of the already captured tool occurrence set. Tool name/input/\n // lifecycle counts remain decidable; commandMatch itself retains unavailable\n // evidence when an occurrence has no command projection.\n if (actions.status !== \"complete\"\n && actions.reason !== UNCLASSIFIED_TOOL_ACTIONS_REASON) {\n return `scope-actions-${actions.status}:${actions.reason}`;\n }\n if (snapshot.orphanFinishes.length > 0) {\n return `orphan-tool-finish:${snapshot.orphanFinishes.length}`;\n }\n return undefined;\n}\nfunction registerCollectionCheck<Kind extends RuntimeKind, Subject>(runtime: AssertionsRuntime<Kind>, subject: Subject, match: unknown): BooleanAssertionHandle<Kind, void> {\n return (runtime.t.check as unknown as (subject: Subject, match: unknown) => BooleanAssertionHandle<Kind, void>)(subject, match);\n}\nfunction calledToolHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls;\n readonly target: ToolMatch | ToolOccurrenceMatch | string;\n}): BooleanAssertionHandle<Kind, void> {\n if (typeof input.target === \"string\")\n return registerCollectionCheck(input.runtime, input.subject, toolMatch(input.target));\n if (!isManagedCollectionMatch(input.target)) {\n return registerCollectionCheck(input.runtime, input.subject, assertManagedToolMatch(input.target, \"calledTool() match\"));\n }\n const spec = collectionMatchSpecOf(input.target);\n if (spec.kind !== \"occurrence\" || spec.domain !== \"tool\") {\n throw new TypeError(\"calledTool() accepts only a ToolMatch or positive ToolOccurrenceMatch\");\n }\n if ((spec.quantifier.kind === \"exact\" || spec.quantifier.kind === \"at-least\")\n && spec.quantifier.count === 0) {\n throw new TypeError(\"calledTool() requires a positive occurrence; exactly(0) and atLeast(0) are invalid\");\n }\n if (spec.quantifier.kind === \"at-most\" || spec.quantifier.kind === \"less-than\" || spec.quantifier.kind === \"absent\") {\n throw new TypeError(\"calledTool() does not accept an upper-bound occurrence Match\");\n }\n return registerCollectionCheck(input.runtime, input.subject, input.target);\n}\nfunction notCalledToolHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls;\n readonly target: ToolMatch | string;\n}): BooleanAssertionHandle<Kind, void> {\n return registerCollectionCheck(input.runtime, input.subject, resolveToolTarget(input.target, \"notCalledTool\").exactly(0));\n}\nfunction valueMatchCriterion(): AssertionCriterion {\n return Object.freeze({\n kind: \"value-match\" as const,\n subject: \"explicit-value\" as const,\n matcher: Object.freeze({ state: \"unavailable\" as const }),\n });\n}\nfunction matchedVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"matched\" as const, value: undefined });\n}\nfunction mismatchedVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"mismatched\" as const });\n}\nfunction unavailableVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"unavailable\" as const, reason: \"evidence-unavailable\" as const });\n}\nfunction scopedBooleanHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly criterion: AssertionCriterion;\n readonly snapshot: unknown;\n readonly interruptedMatcherArtifact?: import(\"../assertions/api.ts\").MatcherQueryArtifact;\n readonly evaluate: () => Effect.Effect<BooleanAssertionEvaluation<void>, unknown, never>;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot(input.snapshot);\n return input.runtime.registerBoolean<void>({\n criterion: input.criterion,\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n ...(input.interruptedMatcherArtifact === undefined\n ? {}\n : { interruptedMatcherArtifact: input.interruptedMatcherArtifact }),\n evaluate: input.evaluate,\n });\n}\nfunction hasCompleteCoverage(coverage: ScopeCoverage, channel: \"actions\" | \"events\" | \"usage\"): boolean {\n return coverage[channel].status === \"complete\";\n}\nfunction assertNonNegativeFinite(value: unknown, label: string): asserts value is number {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n throw new TypeError(`${label} must be a finite non-negative number`);\n }\n}\nfunction assertNonNegativeSafeInteger(value: unknown, label: string): asserts value is number {\n if (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`${label} must be a non-negative safe integer`);\n }\n}\nfunction usedNoToolsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls;\n}): BooleanAssertionHandle<Kind, void> {\n return registerCollectionCheck(input.runtime, input.subject, toolMatch({}).exactly(0));\n}\nfunction maxToolCallsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls;\n readonly max: number;\n}): BooleanAssertionHandle<Kind, void> {\n assertNonNegativeSafeInteger(input.max, \"maxToolCalls() max\");\n return registerCollectionCheck(input.runtime, input.subject, atMost(input.max));\n}\nfunction noFailedActionsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly events: readonly StreamEvent[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: scopeCriterion(input.scope, \"no-failed-actions\"),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"no-failed-actions\",\n eventCount: input.events.length,\n coverage: input.coverage.actions,\n snapshot: input.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n const facts = deriveRunFacts(input.events);\n const failed = facts.toolCalls.some((call) => call.status === \"failed\")\n || facts.subagentCalls.some((call) => call.status === \"failed\");\n if (failed)\n return mismatchedVoid();\n return hasCompleteCoverage(input.coverage, \"actions\")\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction toolOrderHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls<\"turn\"> | ManagedToolCalls<\"session\">;\n readonly matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ];\n}): BooleanAssertionHandle<Kind, void> {\n return registerCollectionCheck(input.runtime, input.subject, inOrder(input.matches));\n}\nfunction managedToolCalls(scope: AssertionScope, snapshot: ToolScopeSnapshot, check: object): ManagedToolCalls {\n const collection = freezeManagedToolCalls({\n scope,\n sourceSnapshot: snapshot.sourceSnapshot,\n rows: snapshot.rows,\n incompleteReason: toolScopeCoverageReason(snapshot),\n actionsCoverage: snapshot.coverage.actions,\n orphanFinishCount: snapshot.orphanFinishes.length,\n snapshot: snapshot.snapshot,\n });\n ownMaterialCollection(check, collection);\n return collection;\n}\nfunction managedEventOccurrences(scope: AssertionScope, snapshot: EventScopeSnapshot, check: object): ManagedEventOccurrences {\n const collection = freezeManagedEventOccurrences({\n scope,\n sourceSnapshot: snapshot.sourceSnapshot,\n rows: snapshot.rows,\n coverage: snapshot.coverage.events,\n snapshot: snapshot.snapshot,\n unassociatedOperation: snapshot.unassociatedOperation,\n });\n ownMaterialCollection(check, collection);\n return collection;\n}\nfunction eventHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedEventOccurrences;\n readonly match: EventMatch | EventOccurrenceMatch;\n}): BooleanAssertionHandle<Kind, void> {\n if (!isManagedCollectionMatch(input.match)) {\n return registerCollectionCheck(input.runtime, input.subject, assertManagedEventMatch(input.match, \"event() match\"));\n }\n const spec = collectionMatchSpecOf(input.match);\n if (spec.kind !== \"occurrence\" || spec.domain !== \"event\") {\n throw new TypeError(\"event() accepts only an EventMatch or positive EventOccurrenceMatch\");\n }\n if ((spec.quantifier.kind === \"exact\" || spec.quantifier.kind === \"at-least\")\n && spec.quantifier.count === 0) {\n throw new TypeError(\"event() requires a positive occurrence; exactly(0) and atLeast(0) are invalid\");\n }\n if (spec.quantifier.kind === \"at-most\" || spec.quantifier.kind === \"less-than\" || spec.quantifier.kind === \"absent\") {\n throw new TypeError(\"event() does not accept an upper-bound occurrence Match\");\n }\n return registerCollectionCheck(input.runtime, input.subject, input.match);\n}\nfunction notEventOccurrenceHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedEventOccurrences;\n readonly match: EventMatch;\n}): BooleanAssertionHandle<Kind, void> {\n return registerCollectionCheck(input.runtime, input.subject, assertManagedEventMatch(input.match, \"notEvent() match\").exactly(0));\n}\ninterface EventScopeSnapshot {\n readonly events: readonly EventOccurrenceView[];\n readonly rows: readonly MatcherSourceRow<{\n readonly state: \"available\";\n readonly value: EventOccurrenceView;\n }>[];\n readonly unassociatedOperation: boolean;\n readonly sourceSnapshot: MatcherSourceSnapshot;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}\nfunction eventLocator(row: ObservedEventLedgerRow): MatcherSourceLocator {\n if (row.event.kind === \"tool-start\") {\n return Object.freeze({\n kind: \"event\" as const,\n eventId: row.eventId,\n toolOccurrenceId: row.event.toolOccurrenceId,\n relation: Object.freeze({ state: \"exact\" as const }),\n });\n }\n if (row.event.kind === \"tool-finish\") {\n return row.event.occurrence.state === \"exact\"\n ? Object.freeze({\n kind: \"event\" as const,\n eventId: row.eventId,\n toolOccurrenceId: row.event.occurrence.toolOccurrenceId,\n relation: Object.freeze({ state: \"exact\" as const }),\n })\n : Object.freeze({\n kind: \"event\" as const,\n eventId: row.eventId,\n relation: Object.freeze({\n state: \"unavailable\" as const,\n reason: \"ambiguous\" as const,\n }),\n });\n }\n return Object.freeze({\n kind: \"event\" as const,\n eventId: row.eventId,\n relation: Object.freeze({ state: \"exact\" as const }),\n });\n}\nfunction projectEventScope(input: {\n readonly turns: readonly MatcherScopeTurn[];\n readonly sourceSnapshot: MatcherSourceSnapshot;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n readonly resolveEvaluation: ResolveObservedEvaluation;\n}): EventScopeSnapshot {\n const projection = projectMatcherSources(input.turns, input.resolveEvaluation);\n const baseSourceSnapshot = projection.state === \"invalid\"\n ? unavailableSourceSnapshot(input.sourceSnapshot)\n : input.sourceSnapshot;\n const turnIndex = new Map(input.turns.map((turn, index) => [turn.observed.turnId, index]));\n const eventOrdinals = new Map(input.turns.map((turn) => {\n const segment = input.resolveEvaluation(turn.observed);\n return [\n turn.observed.turnId,\n segment === undefined\n ? undefined\n : new Map(segment.items.map((event, index) => [event.eventId, index])),\n ] as const;\n }));\n const toolNames = new Map(projection.events.flatMap((row) => row.event.kind === \"tool-start\"\n ? [[row.event.toolOccurrenceId, row.event.tool] as const]\n : []));\n const rows: MatcherSourceRow<{\n readonly state: \"available\";\n readonly value: EventOccurrenceView;\n }>[] = [];\n let omittedProjection = false;\n let incompleteRelation = false;\n for (const row of projection.events) {\n if (row.event.kind !== \"message\" && row.event.kind !== \"tool-start\" && row.event.kind !== \"tool-finish\") {\n continue;\n }\n const turnOrdinal = turnIndex.get(row.turnId);\n const sourceTurn = turnOrdinal === undefined ? undefined : input.turns[turnOrdinal];\n const eventOrdinal = eventOrdinals.get(row.turnId)?.get(row.eventId) ?? -1;\n let publicView: EventOccurrenceView | undefined;\n if (row.event.kind === \"message\") {\n publicView = Object.freeze({ type: \"message\" as const, role: row.event.role, text: row.event.text });\n }\n else if (row.event.kind === \"tool-start\") {\n publicView = Object.freeze({\n type: \"operation.started\" as const,\n tool: Object.freeze({ name: row.event.tool }),\n });\n }\n else if (row.event.occurrence.state === \"exact\" && row.event.outcome !== \"cancelled\") {\n const name = toolNames.get(row.event.occurrence.toolOccurrenceId);\n if (name !== undefined) {\n publicView = Object.freeze({\n type: \"operation.finished\" as const,\n tool: Object.freeze({ name }),\n status: row.event.outcome,\n });\n }\n }\n if (publicView === undefined) {\n omittedProjection = true;\n continue;\n }\n let value: EventOccurrenceView = publicView;\n if (sourceTurn !== undefined && eventOrdinal >= 0 && row.event.kind === \"message\") {\n value = makeAssertionMessageEvent({\n eventId: row.eventId,\n session: row.sessionId,\n turn: row.turnId,\n turnOrdinal: (turnOrdinal ?? 0) + 1,\n eventOrdinal,\n role: row.event.role,\n text: row.event.text,\n });\n }\n else if (sourceTurn !== undefined && eventOrdinal >= 0 && row.event.kind !== \"message\") {\n const toolOccurrenceId = row.event.kind === \"tool-start\"\n ? row.event.toolOccurrenceId\n : row.event.occurrence.state === \"exact\"\n ? row.event.occurrence.toolOccurrenceId\n : undefined;\n const occurrence = toolOccurrenceId === undefined\n ? undefined\n : projection.occurrenceCandidates.get(toolOccurrenceId);\n if (occurrence !== undefined) {\n value = makeAssertionToolEvent({\n eventId: row.eventId,\n toolOccurrenceId,\n session: row.sessionId,\n turn: row.turnId,\n turnOrdinal: (turnOrdinal ?? 0) + 1,\n eventOrdinal,\n type: row.event.kind === \"tool-start\"\n ? \"operation.started\" as const\n : \"operation.finished\" as const,\n occurrence,\n ...(row.event.kind === \"tool-finish\" && row.event.outcome !== \"cancelled\"\n ? { status: row.event.outcome }\n : {}),\n });\n }\n else {\n incompleteRelation = true;\n }\n }\n else {\n incompleteRelation = true;\n }\n rows.push(Object.freeze({\n locator: eventLocator(row),\n sessionId: row.sessionId,\n sessionSequence: row.sessionSequence,\n candidate: Object.freeze({ state: \"available\" as const, value }),\n }));\n }\n const immutableRows = Object.freeze(rows);\n const sourceSnapshot = omittedProjection && baseSourceSnapshot.collectionAtCut === \"complete\"\n ? Object.freeze({ ...baseSourceSnapshot, collectionAtCut: \"partial\" as const })\n : baseSourceSnapshot;\n return Object.freeze({\n events: Object.freeze(immutableRows.map((row) => row.candidate.value)),\n rows: immutableRows,\n unassociatedOperation: projection.state === \"invalid\" || omittedProjection || incompleteRelation,\n sourceSnapshot,\n coverage: input.coverage,\n snapshot: input.snapshot,\n });\n}\nconst DIFF_REFERENCE_PREVIEW = \"agent-attributed send-window endpoint deltas\";\nfunction changedPathsCriterion(paths: readonly string[]): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"changed-paths\" as const,\n paths: Object.freeze([...paths]),\n });\n}\nfunction noChangesCriterion(): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"no-changes\" as const,\n });\n}\nfunction fileChangedCriterion(path: string, options: Readonly<FileChangedOptions>): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"file-changed\" as const,\n path,\n ...(options.status === undefined ? {} : { status: options.status }),\n ...(options.before === undefined ? {} : { before: options.before.name }),\n ...(options.after === undefined ? {} : { after: options.after.name }),\n });\n}\nfunction fileDeletedCriterion(path: string): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"file-deleted\" as const,\n path,\n });\n}\nfunction notInDiffCriterion(pattern: RegExp, options: Readonly<WorkspaceDiffNotInOptions>): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"not-in-diff\" as const,\n pattern: pattern.source,\n flags: pattern.flags,\n content: options.content ?? \"both\",\n });\n}\nfunction diffReferenceMaterial(): AssertionMaterial {\n return Object.freeze({\n kind: \"record-attachment\" as const,\n preview: DIFF_REFERENCE_PREVIEW,\n });\n}\nfunction assertDiffPath(path: unknown, operation: string): asserts path is string {\n assertCanonicalWorkspaceRelativePath(path, `${operation} path`);\n}\nfunction normalizeFileChangedOptions(value: FileChangedOptions | undefined): Readonly<FileChangedOptions> {\n if (value === undefined)\n return Object.freeze({});\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"fileChanged() options must be an object\");\n }\n for (const key of Object.keys(value)) {\n if (key !== \"status\" && key !== \"before\" && key !== \"after\") {\n throw new TypeError(`fileChanged() options has unknown key ${JSON.stringify(key)}`);\n }\n }\n if (value.status !== undefined\n && value.status !== \"added\"\n && value.status !== \"modified\"\n && value.status !== \"deleted\") {\n throw new TypeError(\"fileChanged() options.status must be added, modified, or deleted\");\n }\n return Object.freeze({ ...value });\n}\nfunction normalizeNotInDiffOptions(value: WorkspaceDiffNotInOptions | undefined): Readonly<WorkspaceDiffNotInOptions> {\n if (value === undefined)\n return Object.freeze({});\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"notInDiff() options must be an object\");\n }\n for (const key of Object.keys(value)) {\n if (key !== \"content\")\n throw new TypeError(`notInDiff() options has unknown key ${JSON.stringify(key)}`);\n }\n if (value.content !== undefined && value.content !== \"added\" && value.content !== \"removed\" && value.content !== \"both\") {\n throw new TypeError(\"notInDiff() options.content must be added, removed, or both\");\n }\n return Object.freeze({ ...value });\n}\nasync function endpointMatches(endpoint: AgentWorkspaceDiffEndpoint, match: BooleanMatch<string, string, \"value\"> | undefined): Promise<\"matched\" | \"mismatched\" | \"unavailable\"> {\n if (match === undefined)\n return \"matched\";\n if (endpoint.state === \"absent\")\n return \"mismatched\";\n if (endpoint.state === \"elided\")\n return \"unavailable\";\n const result = await evaluateBooleanMatch(match, endpoint.text);\n return result.state;\n}\nfunction unavailableDiffResult() {\n return Object.freeze({ state: \"unavailable\" as const, reason: \"source-unavailable\" as const });\n}\n/**\n * Wraps a raw Sandbox capability with post-run Assertion registration. The\n * wrapper has no generic diff value: every call immediately declares exactly\n * one Assertion whose closure reads the single Attempt-owned frozen document.\n */\nfunction createAssertFirstSandbox<Kind extends RuntimeKind>(input: {\n readonly agent: Agent;\n readonly sandbox: Sandbox;\n readonly runtime: AssertionsRuntime<Kind>;\n readonly late: AssertFirstLateResult;\n}): AssertFirstSandbox<Kind> {\n const requireCapability = (): void => {\n if (input.agent.kind !== \"sandbox\") {\n throw new Error(`Agent ${JSON.stringify(input.agent.name)} does not provide sandbox; agent-attributed workspace diff Assertions are unavailable.`);\n }\n };\n const register = (criterion: AssertionCriterion, evaluate: () => Effect.Effect<BooleanAssertionEvaluation<void>, unknown, never>): PostRunBooleanAssertionHandle<Kind, void> => postRunBooleanAssertionHandle(input.runtime.registerBoolean<void>({\n criterion,\n subject: diffReferenceMaterial(),\n evaluate,\n }), input.runtime.evaluationKind);\n const changedPaths = (paths: readonly string[]): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n if (!Array.isArray(paths))\n throw new TypeError(\"changedPaths() requires an array of paths\");\n for (const path of paths)\n assertDiffPath(path, \"changedPaths()\");\n validateExpectedTouchedPaths(paths);\n const expected = Object.freeze([...paths]);\n return register(changedPathsCriterion(expected), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffPathsMatch(diff.document, expected)\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const fileChanged = (path: string, rawOptions?: FileChangedOptions): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n assertDiffPath(path, \"fileChanged()\");\n const options = normalizeFileChangedOptions(rawOptions);\n return register(fileChangedCriterion(path, options), () => Effect.tryPromise({\n try: async () => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n let unavailable = false;\n for (const candidate of agentWorkspaceDiffChangesForPath(diff.document, path)) {\n if (options.status !== undefined && candidate.status !== options.status)\n continue;\n const before = await endpointMatches(candidate.before, options.before);\n const after = await endpointMatches(candidate.after, options.after);\n if (before === \"matched\" && after === \"matched\") {\n return Object.freeze({ state: \"matched\" as const, value: undefined });\n }\n // Both endpoint constraints belong to this one WindowChange. A\n // cross-send restore therefore remains visible, while a same-send\n // restore never became a ledger endpoint delta in the first place.\n if (before === \"mismatched\" || after === \"mismatched\")\n continue;\n if (before === \"unavailable\" || after === \"unavailable\")\n unavailable = true;\n }\n return unavailable\n ? unavailableDiffResult()\n : Object.freeze({ state: \"mismatched\" as const });\n },\n catch: (error) => error,\n }));\n };\n const notInDiff = (pattern: RegExp, rawOptions?: WorkspaceDiffNotInOptions): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n if (!(pattern instanceof RegExp))\n throw new TypeError(\"notInDiff() pattern must be a RegExp\");\n const options = normalizeNotInDiffOptions(rawOptions);\n return register(notInDiffCriterion(pattern, options), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n const result = evaluateWorkspaceDiffNotIn(diff.document, pattern, options);\n return result.state === \"matched\"\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : result.state === \"mismatched\"\n ? Object.freeze({ state: \"mismatched\" as const })\n : unavailableDiffResult();\n }));\n };\n const noChanges = (): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n return register(noChangesCriterion(), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffPathsMatch(diff.document, [])\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const fileDeleted = (path: string): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n assertDiffPath(path, \"fileDeleted()\");\n return register(fileDeletedCriterion(path), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffChangesForPath(diff.document, path)\n .some((change) => change.status === \"deleted\")\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const view: AssertFirstSandbox<Kind> = {\n get workdir() {\n requireCapability();\n return input.sandbox.workdir;\n },\n runCommand: (cmd, args, options) => {\n requireCapability();\n return input.sandbox.runCommand(cmd, args, options);\n },\n runShell: (script, options) => {\n requireCapability();\n return input.sandbox.runShell(script, options);\n },\n runCommandOrThrow: (cmd, args, options) => {\n requireCapability();\n return input.sandbox.runCommandOrThrow(cmd, args, options);\n },\n runShellOrThrow: (script, options) => {\n requireCapability();\n return input.sandbox.runShellOrThrow(script, options);\n },\n readText: (path) => {\n requireCapability();\n return input.sandbox.readText(path);\n },\n writeText: (path, content) => {\n requireCapability();\n return input.sandbox.writeText(path, content);\n },\n readBytes: (path) => {\n requireCapability();\n return input.sandbox.readBytes(path);\n },\n writeBytes: (path, content) => {\n requireCapability();\n return input.sandbox.writeBytes(path, content);\n },\n pathExists: (path) => {\n requireCapability();\n return input.sandbox.pathExists(path);\n },\n upload: (content, targetPath) => {\n requireCapability();\n return input.sandbox.upload(content, targetPath);\n },\n uploadFile: (source, targetPath) => {\n requireCapability();\n return input.sandbox.uploadFile(source, targetPath);\n },\n uploadDirectory: (sourceDir, targetDir, options) => {\n requireCapability();\n return input.sandbox.uploadDirectory(sourceDir, targetDir, options);\n },\n downloadFile: (sourcePath, target) => {\n requireCapability();\n return input.sandbox.downloadFile(sourcePath, target);\n },\n downloadDirectory: (sourceDir, targetDir, options) => {\n requireCapability();\n return input.sandbox.downloadDirectory(sourceDir, targetDir, options);\n },\n changedPaths,\n noChanges,\n fileChanged,\n fileDeleted,\n notInDiff,\n };\n Object.setPrototypeOf(view, null);\n return Object.freeze(view);\n}\nfunction requireInputRequest(session: RunSession, filter: InputRequestFilter | undefined): InputRequest {\n const matches = session.pendingInputRequests.filter((request) => {\n if (filter === undefined)\n return true;\n if (filter.id !== undefined && !matchesText(request.id ?? \"\", filter.id))\n return false;\n if (filter.prompt !== undefined && !matchesText(request.prompt ?? \"\", filter.prompt))\n return false;\n if (filter.display !== undefined && !matchesText(request.display ?? \"\", filter.display))\n return false;\n if (filter.action !== undefined && !matchesText(request.action ?? \"\", filter.action))\n return false;\n if (filter.input !== undefined && !matchesJson(request.input, filter.input))\n return false;\n if (filter.optionIds !== undefined) {\n const options = new Set((request.options ?? []).map((option) => option.id));\n if (options.size !== filter.optionIds.length || !filter.optionIds.every((id) => options.has(id)))\n return false;\n }\n return true;\n });\n if (matches.length !== 1) {\n throw new Error(`Expected exactly one pending input request, found ${matches.length}`);\n }\n return matches[0]!;\n}\nfunction matchesText(actual: string, expected: string | RegExp): boolean {\n if (expected instanceof RegExp) {\n expected.lastIndex = 0;\n return expected.test(actual);\n }\n return actual === expected;\n}\nfunction requireRequestId(request: InputRequest): string {\n if (!request.id)\n throw new Error(\"Input request has no stable id\");\n return request.id;\n}\nfunction validateOptionId(request: InputRequest, optionId: string): void {\n const ids = (request.options ?? []).map((option) => option.id);\n if (!ids.includes(optionId)) {\n throw new Error(`Option ${JSON.stringify(optionId)} is not available for this input request`);\n }\n}\nfunction resolveStringAnswer(session: RunSession, text: string): InputResponse {\n if (session.pendingInputRequests.length !== 1) {\n throw new Error(`A string response requires exactly one pending input request, found ${session.pendingInputRequests.length}`);\n }\n const request = session.pendingInputRequests[0]!;\n const requestId = requireRequestId(request);\n return (request.options ?? []).some((option) => option.id === text)\n ? { requestId, optionId: text }\n : { requestId, text };\n}\nfunction buildRespondInput(session: RunSession, answers: readonly (string | AssertFirstRespondAnswer)[]): {\n readonly text: string;\n readonly responses: readonly InputResponse[];\n} {\n const text: string[] = [];\n const responses: InputResponse[] = [];\n for (const answer of answers) {\n if (typeof answer === \"string\") {\n text.push(answer);\n responses.push(resolveStringAnswer(session, answer));\n continue;\n }\n const requestId = requireRequestId(answer.request);\n if ((answer.optionId === undefined) === (answer.text === undefined)) {\n throw new Error(\"A structured response needs exactly one of optionId or text\");\n }\n if (answer.optionId !== undefined) {\n validateOptionId(answer.request, answer.optionId);\n text.push(answer.optionId);\n responses.push({ requestId, optionId: answer.optionId });\n }\n else {\n text.push(answer.text!);\n responses.push({ requestId, text: answer.text! });\n }\n }\n return Object.freeze({ text: text.join(\"\\n\"), responses: Object.freeze(responses) });\n}\nfunction mimeTypeFor(path: string): string {\n switch (extname(path).toLowerCase()) {\n case \".png\": return \"image/png\";\n case \".jpg\":\n case \".jpeg\": return \"image/jpeg\";\n case \".gif\": return \"image/gif\";\n case \".webp\": return \"image/webp\";\n default: return \"application/octet-stream\";\n }\n}\nfunction readInputFileEffect(path: string): Effect.Effect<InputFile, unknown> {\n return Effect.tryPromise({\n try: () => readFile(path),\n catch: (error) => error,\n }).pipe(Effect.map((bytes) => Object.freeze({\n filename: basename(path),\n mimeType: mimeTypeFor(path),\n dataBase64: bytes.toString(\"base64\"),\n })));\n}\n/**\n * Builds the Adapter-neutral part of `t`. Agent contexts extend this exact\n * runtime instead of recreating Assertion, group, Judge, score, feedback, or\n * author-control semantics around a SessionManager.\n */\nexport function createAssertFirstCoreContext(deps: AssertFirstCoreContextDeps): {\n readonly context: AssertFirstCoreTestContext<RuntimeKind>;\n readonly state: AssertFirstCoreContextState;\n} {\n const runtime: AssertionsRuntime<RuntimeKind> = deps.evaluationKind === \"score\"\n ? createAssertionsRuntime({ evaluationKind: \"score\", executeStop: deps.executeStop, ...(deps.judge === undefined ? {} : { judge: deps.judge }), signal: deps.signal, ...(deps.judgeUsage === undefined ? {} : { judgeUsage: deps.judgeUsage }) })\n : createAssertionsRuntime({ evaluationKind: \"pass\", executeStop: deps.executeStop, ...(deps.judge === undefined ? {} : { judge: deps.judge }), signal: deps.signal, ...(deps.judgeUsage === undefined ? {} : { judgeUsage: deps.judgeUsage }) });\n const check = runtime.t.check;\n const judge = ((subject: unknown, definition: unknown, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"judge() accepts exactly (subject, definition)\");\n runtime.assertAuthoringOpen();\n assertAssertionSubject(subject, \"judge\");\n if (managedScoreMatchOf(definition) === undefined)\n throw new TypeError(\"judge() definition must be a managed ScoreMatch\");\n return (runtime.t.check as (subject: unknown, match: unknown) => MeasurementAssertionHandle<RuntimeKind>)(subject, definition);\n }) as JudgeFunction<RuntimeKind>;\n const state: AssertFirstCoreContextState = { assertions: runtime };\n const presets = judgePresetMethods(runtime.t.check);\n const readUsage = (): EvalUsage => { runtime.assertAuthoringOpen(); return deps.readUsage?.() ?? projectAgentEvalUsage({ contributions: [], scope: \"attempt\" }); };\n const elapsedMs = (): import(\"../assertions/match.ts\").NumericMaterial => {\n runtime.assertAuthoringOpen();\n const value = deps.elapsedMs?.();\n const provenance = Object.freeze({ source: \"runtime\", scope: \"attempt\", unit: \"milliseconds\", cut: \"call-time\" });\n return value === undefined || !Number.isFinite(value) || value < 0 ? Object.freeze({ state: \"unavailable\", reason: \"runtime-timing-not-recorded\", provenance }) : Object.freeze({ state: \"exact\", value, provenance });\n };\n const { maxTokens, maxCost } = usageBudgetMethods(runtime, readUsage);\n const base = {\n get usage() { return readUsage(); },\n get elapsedMs() { return elapsedMs(); },\n maxTokens, maxCost,\n evaluationKind: deps.evaluationKind,\n signal: deps.signal,\n model: deps.model,\n reasoningEffort: deps.reasoningEffort,\n flags: deps.flags,\n progress: (update: import(\"../types.ts\").ProgressUpdate) => {\n if (deps.feedback !== undefined) {\n deps.feedback.progress(update);\n }\n else {\n deps.log(update.current === undefined || update.total === undefined\n ? update.message\n : `${update.message} (${update.current}/${update.total})`);\n }\n },\n diagnostic: (input: import(\"../types.ts\").DiagnosticInput) => deps.feedback?.diagnostic(input),\n log: deps.log,\n skip: (reason: string): never => {\n if (reason.trim() === \"\")\n throw new Error(\"skip() requires a non-empty reason\");\n state.skipReason = reason;\n throw new EvalSkipped(reason);\n },\n group: runtime.t.group,\n check,\n judge,\n ...presets,\n };\n if (deps.evaluationKind === \"score\")\n Object.defineProperty(base, \"score\", { value: (runtime as AssertionsRuntime<\"score\">).t.score, enumerable: true });\n const context = Object.freeze(base);\n return {\n context: context as AssertFirstCoreTestContext<RuntimeKind>,\n state,\n };\n}\nfunction usageBudgetMethods<Kind extends RuntimeKind>(runtime: AssertionsRuntime<Kind>, readUsage: () => EvalUsage) {\n const maxTokens = (maximum: number, ...extra: readonly unknown[]): BooleanAssertionHandle<Kind, number> => {\n if (extra.length > 0)\n throw new TypeError(\"maxTokens() accepts exactly one maximum\");\n assertNonNegativeFinite(maximum, \"maxTokens() max\");\n return runtime.t.check(readUsage().totalTokens, atMost(maximum)) as BooleanAssertionHandle<Kind, number>;\n };\n const maxCost = (maximum: number | string, ...extra: readonly unknown[]): BooleanAssertionHandle<Kind, string> => {\n if (extra.length > 0)\n throw new TypeError(\"maxCost() accepts exactly one maximum\");\n const threshold = typeof maximum === \"number\" ? canonicalDecimalFromNumber(maximum) : maximum;\n if (threshold == null || !/^(?:0|[1-9]\\d*)(?:\\.\\d*[1-9])?$/.test(threshold) || threshold.length > 128)\n throw new TypeError(\"maxCost() requires a nonnegative canonical USD amount\");\n const usage = readUsage();\n const usd = usage.costs.values.find((cost) => cost.currency === \"USD\");\n const complete = usage.costs.state === \"complete\" && usage.costs.values.length === 1;\n const captured = captureAssertionSnapshot({ source: usage.source, scope: usage.scope, cut: usage.cut, unit: \"USD\", threshold, amount: usd?.value ?? null, complete, costs: usage.costs });\n return runtime.registerBoolean({ criterion: { kind: \"value-match\", subject: \"explicit-value\", matcher: { state: \"declared\", name: \"max-cost-usd\" } }, subject: captured.material, coverage: captured.coverage, limitations: captured.limitations,\n evaluate: () => Effect.succeed(usd === undefined ? { state: \"unavailable\" as const, reason: \"source-unavailable\" as const } : compareCanonicalDecimal(usd.value, threshold) > 0 ? { state: \"mismatched\" as const } : complete ? { state: \"matched\" as const, value: usd.value } : { state: \"unavailable\" as const, reason: \"source-unavailable\" as const }) }) as BooleanAssertionHandle<Kind, string>;\n };\n return { maxTokens, maxCost };\n}\n/**\n * Creates the Context that Runner actually hands to `test(t)`. Its only\n * authoring state is the Attempt-local Assert-first runtime.\n */\nexport function createAssertFirstEvalContext(deps: AssertFirstContextDeps): {\n readonly context: AssertFirstTestContext<RuntimeKind>;\n readonly state: AssertFirstContextState;\n} {\n const manager = new SessionManager({\n agent: deps.agent,\n sandbox: deps.sandbox,\n evalId: deps.evalId,\n attempt: deps.attempt,\n evalGroup: deps.evalGroup,\n model: deps.model,\n reasoningEffort: deps.reasoningEffort,\n flags: deps.flags,\n experimentId: deps.experimentId,\n signal: deps.signal,\n requestEffect: deps.requestEffect,\n log: deps.log,\n telemetry: deps.telemetry,\n otel: deps.otel,\n feedback: deps.feedback,\n onSendActive: deps.onSendActive,\n timingNow: deps.timingNow,\n onTurn: deps.onTurn,\n ledgerHooks: deps.ledgerHooks,\n concurrencySlot: deps.concurrencySlot,\n experimentClassifier: deps.experimentClassifier,\n nextSourceOrder: deps.nextSourceOrder,\n sourceRegistry: deps.sourceRegistry,\n resources: deps.resources,\n });\n const readAttemptUsage = () => projectAgentEvalUsage({ contributions: manager.usageContributionsSnapshot(), scope: \"attempt\", pricing: deps.pricing });\n const core = createAssertFirstCoreContext({ ...deps, readUsage: readAttemptUsage });\n const runtime = core.state.assertions;\n const check = core.context.check;\n const judge = core.context.judge;\n const state: AssertFirstContextState = {\n assertions: runtime,\n manager,\n late: { diff: Object.freeze({ state: \"pending\" as const }), scripts: {} },\n };\n const resolveObservedEvaluation: ResolveObservedEvaluation = (snapshot) => manager.observedEvaluationSegment(snapshot);\n interface TurnScopeSnapshot {\n readonly events: readonly StreamEvent[];\n readonly toolCalls: ManagedToolCalls<\"turn\">;\n readonly toolScope: ToolScopeSnapshot;\n readonly status: \"completed\" | \"failed\" | \"waiting\";\n readonly coverage: ScopeCoverage;\n readonly input: string;\n readonly output: string;\n }\n interface SessionScopeState {\n readonly session: RunSession;\n readonly turns: MatcherScopeTurn[];\n started: boolean;\n inFlight: number;\n failed: boolean;\n toolScopeCache?: ToolScopeProjectionCache;\n }\n const sessions: SessionScopeState[] = [];\n let attemptToolScopeCache: ToolScopeProjectionCache | undefined;\n const matcherSource = Object.freeze({\n family: \"niceeval.agent-turns\" as const,\n schemaVersion: 2,\n });\n const attemptScopeId = deps.attempt === undefined\n ? JSON.stringify([\"niceeval.attempt-scope/1\", manager.primary.sessionScopeId])\n : JSON.stringify([\n \"niceeval.attempt-scope/1\",\n deps.experimentId ?? null,\n deps.attempt.id,\n deps.attempt.index,\n ]);\n const collectionAtCut = (turns: readonly MatcherScopeTurn[], coverage: ScopeCoverage[\"actions\" | \"events\"], allowUnclassifiedActions = false): \"complete\" | \"partial\" | \"unavailable\" => {\n if (coverage.status === \"unavailable\")\n return \"unavailable\";\n if (coverage.status === \"partial\" &&\n !(allowUnclassifiedActions && coverage.reason === UNCLASSIFIED_TOOL_ACTIONS_REASON)) {\n return \"partial\";\n }\n return turns.every((turn) => resolveObservedEvaluation(turn.observed)?.collectionAtCut === \"complete\")\n ? \"complete\"\n : \"unavailable\";\n };\n const turnSourceSnapshot = (turn: MatcherScopeTurn, coverage: ScopeCoverage[\"actions\" | \"events\"], allowUnclassifiedActions = false): Extract<MatcherSourceSnapshot, {\n readonly scope: \"turn\";\n }> => Object.freeze({\n scope: \"turn\" as const,\n sessionId: turn.observed.sessionId,\n turnId: turn.observed.turnId,\n scopeId: turn.observed.turnId,\n throughSessionSequence: turn.observed.throughSessionSequence,\n source: matcherSource,\n collectionAtCut: collectionAtCut([turn], coverage, allowUnclassifiedActions),\n });\n const sessionSourceSnapshot = (scope: SessionScopeState, coverage: ScopeCoverage[\"actions\" | \"events\"], allowUnclassifiedActions = false): Extract<MatcherSourceSnapshot, {\n readonly scope: \"session\";\n }> => {\n const observed = scope.session.observedSnapshot();\n return Object.freeze({\n scope: \"session\" as const,\n sessionId: observed.sessionId,\n scopeId: observed.sessionId,\n throughSessionSequence: observed.throughSessionSequence,\n source: matcherSource,\n collectionAtCut: collectionAtCut(observedMatcherTurns(observed.sessionId), coverage, allowUnclassifiedActions),\n });\n };\n const attemptSourceSnapshot = (turns: readonly MatcherScopeTurn[], coverage: ScopeCoverage[\"actions\" | \"events\"], allowUnclassifiedActions = false): Extract<MatcherSourceSnapshot, {\n readonly scope: \"attempt\";\n }> => Object.freeze({\n scope: \"attempt\" as const,\n scopeId: attemptScopeId,\n sessions: manager.observedAttemptCut().sessions,\n source: matcherSource,\n collectionAtCut: collectionAtCut(turns, coverage, allowUnclassifiedActions),\n });\n const coverageWhileInFlight = (coverage: ScopeCoverage): ScopeCoverage => Object.freeze({\n ...coverage,\n actions: Object.freeze({ status: \"partial\" as const, reason: \"scope-still-running\" }),\n status: Object.freeze({ status: \"partial\" as const, reason: \"scope-still-running\" }),\n });\n const sessionCoverage = (scope: SessionScopeState): ScopeCoverage => scope.inFlight === 0\n ? scope.session.evidenceCoverage\n : coverageWhileInFlight(scope.session.evidenceCoverage);\n const sessionStatus = (scope: SessionScopeState): ScopeStatus => {\n if (!scope.started)\n return \"not-started\";\n if (scope.inFlight > 0)\n return \"waiting\";\n return scope.failed ? \"failed\" : scope.session.lastStatus;\n };\n const attemptCoverage = (): ScopeCoverage => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = active.length === 0\n ? manager.evidenceCoverage\n : active.some((scope) => scope.inFlight > 0)\n ? coverageWhileInFlight(manager.evidenceCoverage)\n : manager.evidenceCoverage;\n return coverage;\n };\n const observedMatcherTurns = (sessionId?: string): readonly MatcherScopeTurn[] => Object.freeze(manager.observedSessionSnapshots().filter(session => sessionId === undefined || session.sessionId === sessionId)\n .flatMap(session => session.turns.map(observed => Object.freeze({\n observed,\n events: resolveObservedEvaluation(observed)?.events ?? Object.freeze([]),\n outcome: manager.observedTurnState(observed)?.outcome ?? \"failed\" as const,\n }))));\n const readDefaultHistory = (cut: MatcherSourceSnapshot): MaterialCollection<Readonly<Record<string, unknown>>> => {\n const ends = cut.scope === \"attempt\"\n ? new Map(cut.sessions.map(session => [session.sessionId, session.throughSessionSequence]))\n : new Map([[cut.sessionId, cut.throughSessionSequence]]);\n const prefix = observedMatcherTurns().filter(turn => {\n const end = ends.get(turn.observed.sessionId);\n return end !== undefined && turn.observed.throughSessionSequence <= end;\n });\n const selected = prefix.filter(turn => cut.scope !== \"turn\" || turn.observed.turnId === cut.turnId);\n const projection = projectMatcherSources(prefix, resolveObservedEvaluation);\n let reason: string | undefined = manager.observedHistoryIncompleteReason();\n if (projection.state === \"invalid\")\n reason ??= \"agent-history-invalid-relation\";\n const active = cut.scope === \"attempt\"\n ? sessions.some(scope => scope.inFlight > 0)\n : sessions.some(scope => scope.session.observedSnapshot().sessionId === cut.sessionId && scope.inFlight > 0);\n if (active)\n reason ??= \"scope-still-running\";\n const items: {\n readonly id: string;\n readonly value: Readonly<Record<string, unknown>>;\n }[] = [];\n for (const turn of selected) {\n const segment = resolveObservedEvaluation(turn.observed);\n if (segment === undefined) {\n reason ??= \"agent-history-segment-unavailable\";\n continue;\n }\n if (turn.observed.collectionAtCut !== \"complete\")\n reason ??= \"agent-history-truncated\";\n const coverage = manager.observedTurnState(turn.observed)?.coverage;\n for (const channel of [\"events\", \"messages\", \"actions\"] as const) {\n if (coverage?.[channel].status !== \"complete\")\n reason ??= coverage?.[channel].reason ?? `agent-history-${channel}-unavailable`;\n }\n segment.items.forEach((event, index) => {\n const raw = segment.events[index];\n if (raw === undefined)\n reason ??= \"agent-history-event-unavailable\";\n if ((raw?.truncated?.length ?? 0) > 0)\n reason ??= \"agent-history-truncated\";\n if (event.kind === \"tool-finish\" && event.occurrence.state !== \"exact\")\n reason ??= `agent-history-${event.occurrence.reason}`;\n const occurrenceId = event.kind === \"tool-start\" ? event.toolOccurrenceId\n : event.kind === \"tool-finish\" && event.occurrence.state === \"exact\" ? event.occurrence.toolOccurrenceId : undefined;\n const occurrence = occurrenceId === undefined ? undefined : projection.occurrenceCandidates.get(occurrenceId);\n items.push(Object.freeze({ id: event.eventId, value: Object.freeze({\n eventId: event.eventId, itemId: event.itemId,\n sessionId: segment.sessionId, turnId: segment.turnId, sessionSequence: event.sessionSequence,\n event: raw ?? event, observed: event,\n ...(occurrence === undefined ? {} : { occurrence }),\n ordering: \"first-session appearance, then sessionSequence; no cross-session causal order\",\n }) }));\n });\n }\n return reason === undefined ? Object.freeze({ state: \"complete\" as const, items: Object.freeze(items) })\n : Object.freeze({ state: \"partial\" as const, items: Object.freeze(items), reason });\n };\n const historyFrame = (): AgentHistoryFrame => ({ read: readDefaultHistory });\n const latchHistoryCut = (frame: AgentHistoryFrame, cut: MatcherSourceSnapshot): MatcherSourceSnapshot => {\n frame.cut = cut;\n return cut;\n };\n const releaseHistoryFrame = (frame: AgentHistoryFrame): void => { frame.cut = undefined; frame.read = undefined; };\n const attemptStatus = (): ScopeStatus => {\n const active = sessions.filter((scope) => scope.started);\n if (active.length === 0)\n return \"not-started\";\n const statuses = active.map(sessionStatus);\n if (statuses.includes(\"waiting\"))\n return \"waiting\";\n if (statuses.includes(\"failed\"))\n return \"failed\";\n return \"completed\";\n };\n const sessionSnapshot = (scope: SessionScopeState) => Object.freeze({\n sessionIndex: scope.session.index,\n turnCount: scope.session.turnCount,\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n });\n const attemptSnapshot = () => Object.freeze({\n sessions: Object.freeze(sessions\n .filter((scope) => scope.started)\n .map((scope) => sessionSnapshot(scope))),\n status: attemptStatus(),\n coverage: attemptCoverage(),\n });\n const sessionToolScope = (scope: SessionScopeState): ToolScopeSnapshot => {\n const coverage = sessionCoverage(scope);\n const turns = observedMatcherTurns(scope.session.observedSnapshot().sessionId);\n const sourceSnapshot = sessionSourceSnapshot(scope, coverage.actions, true);\n const snapshot = Object.freeze({\n sessionIndex: scope.session.index,\n turnCount: scope.turns.length,\n status: sessionStatus(scope),\n coverage,\n });\n const cutKey = toolScopeCutKey(sourceSnapshot, snapshot);\n const cached = scope.toolScopeCache;\n if (cached !== undefined && cached.cutKey === cutKey)\n return cached.value;\n const value = projectToolScope({\n turns,\n sourceSnapshot,\n coverage,\n snapshot,\n resolveEvaluation: resolveObservedEvaluation,\n });\n scope.toolScopeCache = Object.freeze({ cutKey, value });\n return value;\n };\n const attemptToolScope = (): ToolScopeSnapshot => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = attemptCoverage();\n const turns = observedMatcherTurns();\n const sourceSnapshot = attemptSourceSnapshot(turns, coverage.actions, true);\n const snapshot = Object.freeze({\n sessions: Object.freeze(active.map((scope) => ({\n sessionIndex: scope.session.index,\n turnCount: scope.turns.length,\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n }))),\n status: attemptStatus(),\n coverage,\n });\n const cutKey = toolScopeCutKey(sourceSnapshot, snapshot);\n const cached = attemptToolScopeCache;\n if (cached !== undefined && cached.cutKey === cutKey)\n return cached.value;\n const value = projectToolScope({\n turns,\n sourceSnapshot,\n coverage,\n snapshot,\n resolveEvaluation: resolveObservedEvaluation,\n });\n attemptToolScopeCache = Object.freeze({ cutKey, value });\n return value;\n };\n const sessionScopedEvents = (scope: SessionScopeState): readonly StreamEvent[] => Object.freeze(observedMatcherTurns(scope.session.observedSnapshot().sessionId).flatMap((turn) => turn.events));\n const sessionEventScope = (scope: SessionScopeState): EventScopeSnapshot => {\n const coverage = sessionCoverage(scope);\n return projectEventScope({\n turns: observedMatcherTurns(scope.session.observedSnapshot().sessionId),\n sourceSnapshot: sessionSourceSnapshot(scope, coverage.events),\n coverage,\n snapshot: sessionSnapshot(scope),\n resolveEvaluation: resolveObservedEvaluation,\n });\n };\n const attemptScopedEvents = (): readonly StreamEvent[] => Object.freeze(sessions\n .filter((scope) => scope.started)\n .flatMap((scope) => observedMatcherTurns(scope.session.observedSnapshot().sessionId).flatMap((turn) => turn.events)));\n const attemptEventScope = (): EventScopeSnapshot => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = attemptCoverage();\n const turns = observedMatcherTurns();\n return projectEventScope({\n turns,\n sourceSnapshot: attemptSourceSnapshot(turns, coverage.events),\n coverage,\n snapshot: attemptSnapshot(),\n resolveEvaluation: resolveObservedEvaluation,\n });\n };\n const makeTurn = <Kind extends RuntimeKind>(scope: SessionScopeState, turn: Turn, input: string): AssertFirstTurnHandle<Kind> => {\n const events = Object.freeze([...turn.events]);\n const scopedEvents = Object.freeze([\n Object.freeze({ type: \"message\" as const, role: \"user\" as const, text: input }),\n ...events,\n ]);\n const coverage = manager.resolveTurnEvidenceCoverage(turn);\n const observed = observedSnapshotForTurn(turn);\n if (observed === undefined) {\n throw new Error(\"SessionManager returned a Turn without its sealed observed source snapshot\");\n }\n const matcherTurn: MatcherScopeTurn = Object.freeze({\n observed,\n events: scopedEvents,\n outcome: turn.status,\n });\n scope.turns.push(matcherTurn);\n const scopeSnapshot = Object.freeze({\n sessionId: observed.sessionId,\n turnId: observed.turnId,\n throughSessionSequence: observed.throughSessionSequence,\n events: scopedEvents.length,\n });\n const toolScope = projectToolScope({\n turns: Object.freeze([matcherTurn]),\n sourceSnapshot: turnSourceSnapshot(matcherTurn, coverage.actions, true),\n homeTurnId: observed.turnId,\n coverage,\n snapshot: scopeSnapshot,\n resolveEvaluation: resolveObservedEvaluation,\n });\n const eventScope = projectEventScope({\n turns: Object.freeze([matcherTurn]),\n sourceSnapshot: turnSourceSnapshot(matcherTurn, coverage.events),\n coverage,\n snapshot: scopeSnapshot,\n resolveEvaluation: resolveObservedEvaluation,\n });\n const toolCalls = managedToolCalls(\"turn\", toolScope, check) as ManagedToolCalls<\"turn\">;\n const eventOccurrences = managedEventOccurrences(\"turn\", eventScope, check) as ManagedEventOccurrences<\"turn\">;\n const readTurnUsage = () => { runtime.assertAuthoringOpen(); return projectAgentEvalUsage({ contributions: manager.usageContributionsSnapshot().filter((call) => call.turnId === observed.turnId), scope: \"turn\", pricing: deps.pricing }); };\n const frame = historyFrame();\n const scopedCheck = createScopedAssertionCheck<Kind, AgentMatchContext<\"turn\">>(check, () => Object.freeze({ scope: \"turn\" as const, toolCalls, eventOccurrences, get usage() { return readTurnUsage(); } }), () => latchHistoryCut(frame, turnSourceSnapshot(matcherTurn, coverage.actions, true)), () => releaseHistoryFrame(frame));\n const snapshot: TurnScopeSnapshot = Object.freeze({\n events,\n toolCalls,\n toolScope,\n status: turn.status,\n coverage,\n input,\n output: lastAssistantText(events) ?? \"\",\n });\n const calledTool = (target: ToolMatch | ToolOccurrenceMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly one match or name\");\n return calledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: snapshot.toolCalls,\n target,\n });\n };\n const notCalledTool = (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: snapshot.toolCalls,\n target,\n });\n };\n const toolOrder = (matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"toolOrder() accepts exactly one ordered match list\");\n return toolOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: snapshot.toolCalls,\n matches,\n });\n };\n const usedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({ runtime: runtime as AssertionsRuntime<Kind>, subject: snapshot.toolCalls });\n };\n const maxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({ runtime: runtime as AssertionsRuntime<Kind>, subject: snapshot.toolCalls, max });\n };\n const noFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n return noFailedActionsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n events: matcherTurn.events,\n coverage,\n snapshot: scopeSnapshot,\n });\n };\n const event = (match: EventMatch | EventOccurrenceMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly one match\");\n return eventHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: eventOccurrences,\n match,\n });\n };\n const notEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventOccurrenceHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: eventOccurrences,\n match,\n });\n };\n const eventOrder = (matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"eventOrder() accepts exactly one ordered match list\");\n return registerCollectionCheck(runtime as AssertionsRuntime<Kind>, eventOccurrences, inOrder(matches));\n };\n const { maxTokens, maxCost } = usageBudgetMethods(runtime as AssertionsRuntime<Kind>, readTurnUsage);\n return Object.freeze({\n input: snapshot.input,\n events: snapshot.events,\n toolCalls: snapshot.toolCalls,\n eventOccurrences,\n status: snapshot.status,\n message: snapshot.output,\n ...(turn.data === undefined ? {} : { data: turn.data }),\n get usage() { return readTurnUsage(); },\n get elapsedMs() { return core.context.elapsedMs; },\n check: scopedCheck,\n judge: judge as JudgeFunction<Kind>,\n ...agentJudgePresetMethods<Kind, \"turn\">(scopedCheck, frame),\n succeeded: () => succeededHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n status: snapshot.status,\n coverage: snapshot.coverage,\n snapshot: scopeSnapshot,\n }),\n calledTool,\n notCalledTool,\n toolOrder,\n usedNoTools,\n maxToolCalls,\n noFailedActions,\n event,\n notEvent,\n eventOrder,\n maxTokens,\n maxCost,\n });\n };\n const sendEffect = <Kind extends RuntimeKind>(scope: SessionScopeState, text: string, files?: readonly InputFile[], responses?: readonly InputResponse[], loc?: ReturnType<typeof captureLoc>): Effect.Effect<AssertFirstTurnHandle<Kind>, unknown> => {\n const capturedLoc = loc ?? captureLoc({ registry: deps.sourceRegistry });\n return Effect.suspend(() => {\n scope.started = true;\n scope.inFlight += 1;\n return manager.sendEffect(scope.session, text, files, responses, capturedLoc).pipe(Effect.map((turn) => makeTurn<Kind>(scope, turn, text)), Effect.tapError(() => Effect.sync(() => {\n scope.failed = true;\n })), Effect.ensuring(Effect.sync(() => {\n scope.inFlight -= 1;\n })));\n });\n };\n const send = <Kind extends RuntimeKind>(scope: SessionScopeState, text: string, files?: readonly InputFile[], responses?: readonly InputResponse[]): Promise<AssertFirstTurnHandle<Kind>> => deps.requestEffect(sendEffect<Kind>(scope, text, files, responses, captureLoc({ registry: deps.sourceRegistry })));\n const makeSession = <Kind extends RuntimeKind>(scope: SessionScopeState): AssertFirstSessionHandle<Kind> => {\n const session = scope.session;\n const sessionCalls = (): ManagedToolCalls<\"session\"> => managedToolCalls(\"session\", sessionToolScope(scope), check) as ManagedToolCalls<\"session\">;\n const sessionEventOccurrences = (): ManagedEventOccurrences<\"session\"> => managedEventOccurrences(\"session\", sessionEventScope(scope), check) as ManagedEventOccurrences<\"session\">;\n const readSessionUsage = () => { runtime.assertAuthoringOpen(); return projectAgentEvalUsage({ contributions: manager.usageContributionsSnapshot().filter((call) => call.sessionScopeId === session.sessionScopeId), scope: \"session\", pricing: deps.pricing }); };\n const frame = historyFrame();\n const scopedCheck = createScopedAssertionCheck<Kind, AgentMatchContext<\"session\">>(check, () => Object.freeze({ scope: \"session\" as const, get toolCalls() { return sessionCalls(); }, get eventOccurrences() { return sessionEventOccurrences(); }, get usage() { return readSessionUsage(); } }), () => latchHistoryCut(frame, sessionSourceSnapshot(scope, sessionCoverage(scope).actions, true)), () => releaseHistoryFrame(frame));\n const toolOrder = (matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"toolOrder() accepts exactly one ordered match list\");\n return toolOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n matches,\n });\n };\n const usedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n });\n };\n const maxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n max,\n });\n };\n const noFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n const coverage = sessionCoverage(scope);\n return noFailedActionsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n events: sessionScopedEvents(scope),\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n const event = (match: EventMatch | EventOccurrenceMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly one match\");\n return eventHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionEventOccurrences(),\n match,\n });\n };\n const notEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventOccurrenceHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionEventOccurrences(),\n match,\n });\n };\n const eventOrder = (matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"eventOrder() accepts exactly one ordered match list\");\n return registerCollectionCheck(runtime as AssertionsRuntime<Kind>, sessionEventOccurrences(), inOrder(matches));\n };\n const { maxTokens, maxCost } = usageBudgetMethods(runtime as AssertionsRuntime<Kind>, readSessionUsage);\n return Object.freeze({\n send: (input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }) => {\n const text = typeof input === \"string\" ? input : input.text;\n const files = typeof input === \"string\" ? undefined : input.files;\n return send<Kind>(scope, text, files);\n },\n sendFile: (path: string, text?: string) => {\n const loc = captureLoc({ registry: deps.sourceRegistry });\n return deps.requestEffect(readInputFileEffect(path).pipe(Effect.flatMap((file) => sendEffect<Kind>(scope, text ?? \"\", [file], undefined, loc))));\n },\n requireInputRequest: (filter?: InputRequestFilter) => requireInputRequest(session, filter),\n async respond(...responses: readonly (string | AssertFirstRespondAnswer)[]) {\n if (responses.length === 0)\n throw new Error(\"respond() requires at least one answer\");\n const built = buildRespondInput(session, responses);\n session.pendingInputRequests.length = 0;\n return send<Kind>(scope, built.text, undefined, built.responses);\n },\n async respondAll(optionId: string) {\n if (session.pendingInputRequests.length === 0) {\n throw new Error(\"There is no pending input request to answer\");\n }\n const requests = session.pendingInputRequests.slice();\n for (const request of requests)\n validateOptionId(request, optionId);\n session.pendingInputRequests.length = 0;\n return send<Kind>(scope, requests.map(() => optionId).join(\"\\n\"), undefined, requests.map((request) => ({ requestId: requireRequestId(request), optionId })));\n },\n get reply() {\n return session.lastMessage;\n },\n get sessionId() {\n return session.id;\n },\n get events() {\n return Object.freeze([...session.events]);\n },\n get usage() {\n return readSessionUsage();\n },\n get toolCalls() {\n return sessionCalls();\n },\n get eventOccurrences() {\n return sessionEventOccurrences();\n },\n get elapsedMs() { return core.context.elapsedMs; },\n check: scopedCheck,\n judge: judge as JudgeFunction<Kind>,\n ...agentJudgePresetMethods<Kind, \"session\">(scopedCheck, frame),\n succeeded: () => succeededHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n snapshot: sessionSnapshot(scope),\n }),\n calledTool: (target: ToolMatch | ToolOccurrenceMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly one match or name\");\n return calledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n target,\n });\n },\n notCalledTool: (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n target,\n });\n },\n toolOrder,\n usedNoTools,\n maxToolCalls,\n noFailedActions,\n event,\n notEvent,\n eventOrder,\n maxTokens,\n maxCost,\n });\n };\n const primaryScope: SessionScopeState = {\n session: manager.primary,\n turns: [],\n started: false,\n inFlight: 0,\n failed: false,\n };\n sessions.push(primaryScope);\n const primary = makeSession<RuntimeKind>(primaryScope);\n const attemptCalls = (): ManagedToolCalls<\"attempt\"> => managedToolCalls(\"attempt\", attemptToolScope(), check) as ManagedToolCalls<\"attempt\">;\n const attemptEventOccurrences = (): ManagedEventOccurrences<\"attempt\"> => managedEventOccurrences(\"attempt\", attemptEventScope(), check) as ManagedEventOccurrences<\"attempt\">;\n const rootUsedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({ runtime, subject: attemptCalls() });\n };\n const rootMaxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({ runtime, subject: attemptCalls(), max });\n };\n const rootNoFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n const coverage = attemptCoverage();\n return noFailedActionsHandle({\n runtime,\n scope: \"attempt\",\n events: attemptScopedEvents(),\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const rootEvent = (match: EventMatch | EventOccurrenceMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly one match\");\n return eventHandle({\n runtime,\n subject: attemptEventOccurrences(),\n match,\n });\n };\n const rootNotEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventOccurrenceHandle({\n runtime,\n subject: attemptEventOccurrences(),\n match,\n });\n };\n const rootFrame = historyFrame();\n bindAssertionContext(check, () => Object.freeze({ scope: \"attempt\" as const, get toolCalls() { return attemptCalls(); }, get eventOccurrences() { return attemptEventOccurrences(); }, get usage() { return readAttemptUsage(); } }), () => latchHistoryCut(rootFrame, attemptSourceSnapshot(observedMatcherTurns(), attemptCoverage().actions, true)), () => releaseHistoryFrame(rootFrame));\n const { maxTokens: rootMaxTokens, maxCost: rootMaxCost } = usageBudgetMethods(runtime, readAttemptUsage);\n const base = {\n ...Object.fromEntries(Object.entries(Object.getOwnPropertyDescriptors(core.context)).filter(([, descriptor]) => \"value\" in descriptor).map(([key, descriptor]) => [key, descriptor.value])),\n ...agentJudgePresetMethods<RuntimeKind, \"attempt\">(check as import(\"../assertions/api.ts\").AssertionCheck<RuntimeKind, AgentMatchContext<\"attempt\">>, rootFrame),\n get elapsedMs() { return core.context.elapsedMs; },\n send: primary.send,\n sendFile: primary.sendFile,\n requireInputRequest: primary.requireInputRequest,\n respond: primary.respond,\n respondAll: primary.respondAll,\n get reply() {\n return primary.reply;\n },\n get sessionId() {\n return primary.sessionId;\n },\n get events() {\n return primary.events;\n },\n get eventOccurrences() {\n return attemptEventOccurrences();\n },\n newSession: () => {\n const scope: SessionScopeState = {\n session: manager.newSession(),\n turns: [],\n started: false,\n inFlight: 0,\n failed: false,\n };\n sessions.push(scope);\n return makeSession<RuntimeKind>(scope);\n },\n sandbox: createAssertFirstSandbox({\n agent: deps.agent,\n sandbox: deps.sandbox,\n runtime,\n late: state.late,\n }),\n get o11y() {\n return buildO11ySummary(manager.allEvents);\n },\n get usage() {\n runtime.assertAuthoringOpen();\n return readAttemptUsage();\n },\n get toolCalls() {\n return attemptCalls();\n },\n succeeded: () => succeededHandle({\n runtime,\n scope: \"attempt\",\n status: attemptStatus(),\n coverage: attemptCoverage(),\n snapshot: attemptSnapshot(),\n }),\n calledTool: (target: ToolMatch | ToolOccurrenceMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly one match or name\");\n return calledToolHandle({\n runtime,\n subject: attemptCalls(),\n target,\n });\n },\n notCalledTool: (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime,\n subject: attemptCalls(),\n target,\n });\n },\n usedNoTools: rootUsedNoTools,\n maxToolCalls: rootMaxToolCalls,\n noFailedActions: rootNoFailedActions,\n event: rootEvent,\n notEvent: rootNotEvent,\n maxTokens: rootMaxTokens,\n maxCost: rootMaxCost,\n };\n if (deps.evaluationKind === \"score\")\n Object.defineProperty(base, \"score\", { value: (runtime as AssertionsRuntime<\"score\">).t.score, enumerable: true });\n const context = Object.freeze(base);\n return {\n context: context as AssertFirstTestContext<RuntimeKind>,\n state,\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"assert-first.js","sourceRoot":"","sources":["assert-first.ts"],"names":[],"mappings":"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","sourcesContent":["import { AttemptNotesCollector } from \"./notes.ts\";\nimport { compareCanonicalDecimal } from \"../o11y/adapter-usage-projection.ts\";\nimport { canonicalDecimalFromNumber } from \"../record/family/adapter-usage/pricing.ts\";\nimport { ownMaterialCollection } from \"../assertions/material.ts\";\nimport { defineMaterialMatch, type MaterialCollection, type MaterialMatch, type ContextualMatch } from \"../assertions/context-match.ts\";\nimport { projectAgentEvalUsage, type EvalUsage } from \"../o11y/eval-usage.ts\";\nimport { registerMaterialQA, bindAssertionContext, createScopedAssertionCheck } from \"../assertions/runtime.ts\";\nimport type { ExperimentFlags } from \"../shared/types.ts\";\n/**\n * The active Eval context. Assertion authoring deliberately enters through\n * `AssertionsRuntime`; this module never constructs an intermediate Fact or\n * starts a private runtime.\n */\nimport { readFile } from \"node:fs/promises\";\nimport { basename, extname } from \"node:path\";\nimport { Effect } from \"effect\";\nimport { assertAssertionSubject, captureAssertionSnapshot, createAssertionsRuntime, postRunBooleanAssertionHandle, } from \"../assertions/runtime.ts\";\nimport type { AssertionCriterion, AssertionMaterial, AssertionSubject, AssertionsRuntime, BooleanAssertionHandle, BooleanAssertionEvaluation, ScoreFunction, MatcherSourceLocator, MatcherSourceSnapshot, MeasurementAssertionHandle, PostRunBooleanAssertionHandle, } from \"../assertions/api.ts\";\nimport type { MatcherSourceRow } from \"../assertions/matcher-artifact.ts\";\nimport { agentWorkspaceDiffChangesForPath, agentWorkspaceDiffPathsMatch, evaluateWorkspaceDiffNotIn, type AgentWorkspaceDiffEndpoint, type PostRunWorkspaceDiffState, type WorkspaceDiffNotInOptions, } from \"../assertions/workspace-diff.ts\";\nimport { assertCanonicalWorkspaceRelativePath, validateExpectedTouchedPaths, } from \"../assertions/diff.ts\";\nimport { freezeManagedEventOccurrences, freezeManagedToolCalls, } from \"../assertions/collection.ts\";\nimport { atMost, assertManagedEventMatch, assertManagedToolMatch, evaluateBooleanMatch, inOrder, collectionMatchSpecOf, isManagedCollectionMatch, isManagedEventMatch, isManagedToolMatch, defineValueMatch, managedScoreMatchOf, makeAssertionMessageEvent, makeAssertionToolEvent, toolMatch, type BooleanMatch, type BooleanMatchEvaluation, type EventMatch, type EventOccurrenceMatch, type EventOccurrenceView, type ManagedEventOccurrences, type ManagedToolCalls, type ScoreMatch, type ToolMatch, type ToolOccurrenceMatch, type ToolMatchQuantifier, } from \"../assertions/match.ts\";\nimport { numericBooleanRegistration } from \"../assertions/numeric.ts\";\nimport { factuality, faithfulness, instructionFollowing, pairwisePreference, type FactualityMaterial, type FaithfulnessMaterial, type InstructionFollowingMaterial, type JudgePresetOptions, type PairwisePreferenceMaterial, } from \"../assertions/judge-presets.ts\";\nimport { buildO11ySummary, deriveRunFacts, deriveScopedLogicalToolOccurrences, projectObservedSourceEvents, type ObservedEventLedgerRow, type ObservedToolOccurrenceLedgerRow, } from \"../o11y/derive.ts\";\nimport { observedSnapshotForTurn, type ObservedEvaluationSegment, type ObservedSourceEvent, type ObservedTurnSnapshot, } from \"../o11y/observed.ts\";\nimport { UNCLASSIFIED_TOOL_ACTIONS_REASON } from \"../o11y/command-projection.ts\";\nimport { captureLoc, type SourceRegistry } from \"../source-loc.ts\";\nimport { lastAssistantText, RunSession, SessionManager, type SessionDeps } from \"./session.ts\";\nimport { EvalSkipped } from \"./control-flow.ts\";\nimport type { ConcurrencySlot } from \"./send-retry.ts\";\nimport type { AnswerValue, InputResponse } from \"../agents/types.ts\";\nimport { matchesJson } from \"../shared/json-match.ts\";\nimport type { Agent, InputFile, InputRequest, InputRequestFilter, JsonMatch, JsonValue, PriceOverride, ResolvedJudgeConfig, Sandbox, SandboxOperations, SandboxTransferOperations, StreamEvent, Turn, Usage, } from \"../types.ts\";\nimport type { LogicalToolOccurrence, LogicalToolOccurrenceScopeTurn, OrphanToolOperationFinish, } from \"../o11y/types.ts\";\nexport interface AssertFirstLateResult {\n diff: PostRunWorkspaceDiffState;\n scripts: globalThis.Record<string, import(\"../types.ts\").ScriptResult>;\n}\nexport interface AssertFirstContextState {\n readonly notes: AttemptNotesCollector;\n readonly assertions: AssertionsRuntime<\"pass\" | \"score\">;\n readonly manager: SessionManager;\n readonly late: AssertFirstLateResult;\n}\nexport interface AssertFirstCoreContextState {\n readonly notes: AttemptNotesCollector;\n readonly assertions: AssertionsRuntime<\"pass\" | \"score\">;\n skipReason?: string;\n}\nexport interface AssertFirstCoreContextDeps {\n readonly judgeUsage?: import(\"../o11y/judge-usage.ts\").JudgeUsageCollector;\n readonly readUsage?: () => EvalUsage;\n readonly elapsedMs?: () => number;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: ExperimentFlags;\n readonly signal: AbortSignal;\n readonly log: (message: string) => void;\n readonly feedback?: import(\"../types.ts\").ScopedFeedback;\n readonly judge: ResolvedJudgeConfig | undefined;\n readonly executeStop: import(\"../assertions/api.ts\").AssertionStopExecutor;\n readonly evaluationKind: RuntimeKind;\n}\nexport type AssertFirstCoreTestContext<Kind extends RuntimeKind = RuntimeKind> = JudgePresetMethods<Kind> & {\n /** Record display data without affecting Assertions, Verdict or score. */\n note(label: string, value: import(\"../shared/types.ts\").JsonValue | import(\"../assertions/quantity.ts\").Quantity): void;\n readonly usage: EvalUsage;\n readonly elapsedMs: import(\"../assertions/match.ts\").NumericMaterial;\n maxTokens(max: number): BooleanAssertionHandle<Kind, number>;\n maxCost(usd: number | string): BooleanAssertionHandle<Kind, string>;\n readonly evaluationKind: Kind;\n readonly signal: AbortSignal;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: ExperimentFlags;\n progress(update: import(\"../types.ts\").ProgressUpdate): void;\n diagnostic(input: import(\"../types.ts\").DiagnosticInput): void;\n log(message: string): void;\n skip(reason: string): never;\n group<Value>(title: string, body: () => Value | PromiseLike<Value>): Promise<Awaited<Value>>;\n check: import(\"../assertions/api.ts\").AssertionCheck<Kind>;\n judge: JudgeFunction<Kind>;\n} & (Kind extends \"score\" ? {\n readonly score: ScoreFunction;\n} : {});\n/** The Runner-facing dependencies retain the current SessionManager boundary. */\nexport interface AssertFirstContextDeps {\n readonly judgeUsage?: import(\"../o11y/judge-usage.ts\").JudgeUsageCollector;\n readonly agent: Agent;\n readonly sandbox: Sandbox;\n readonly evalId?: string;\n readonly attempt?: import(\"../types.ts\").AgentContext[\"attempt\"];\n readonly evalGroup?: import(\"../types.ts\").AgentContext[\"evalGroup\"];\n readonly model?: string;\n /** defineConfig({ pricing }) 的价目表,只供 maxCost 的 estimatedCostUSD 估算(estimateCost);与 observed usage.costUSD 无关。 */\n readonly pricing?: globalThis.Record<string, PriceOverride>;\n readonly reasoningEffort?: string;\n readonly flags: ExperimentFlags;\n readonly experimentId?: string;\n readonly signal: AbortSignal;\n readonly log: (message: string) => void;\n readonly telemetry?: import(\"../types.ts\").Telemetry;\n readonly otel?: import(\"../o11y/otlp/turn-otel.ts\").AgentOtelChannel;\n readonly feedback?: import(\"../types.ts\").ScopedFeedback;\n readonly onSendActive?: (active: boolean) => void;\n readonly ledgerHooks?: import(\"./session.ts\").SessionDeps[\"ledgerHooks\"];\n readonly elapsedMs?: () => number;\n readonly timingNow?: import(\"./session.ts\").SessionDeps[\"timingNow\"];\n readonly onTurn?: import(\"./session.ts\").SessionDeps[\"onTurn\"];\n readonly concurrencySlot?: ConcurrencySlot;\n /** Attempt-owned source snapshot registry; never inferred from an Effect fiber. */\n readonly sourceRegistry?: SourceRegistry;\n readonly resources: import(\"../types.ts\").AttemptResourceRegistry;\n /** Shared ordering with Assertion runtime source facts and Session user events. */\n readonly nextSourceOrder?: () => number;\n readonly judge: ResolvedJudgeConfig | undefined;\n /** The Attempt-scoped bridge is the sole Promise facade for author sends. */\n readonly requestEffect: NonNullable<SessionDeps[\"requestEffect\"]>;\n /** Ordinary immediate Assertion stop barriers stay in the Attempt Effect Scope. */\n readonly executeStop: import(\"../assertions/api.ts\").AssertionStopExecutor;\n readonly evaluationKind: \"pass\" | \"score\";\n}\ntype RuntimeKind = \"pass\" | \"score\";\ntype AssertFirstRespondAnswer = {\n readonly request: InputRequest;\n} & AnswerValue;\nexport interface JudgePresetMethods<Kind extends RuntimeKind, Context = unknown> {\n factuality(material: FactualityMaterial, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n faithfulness(material: FaithfulnessMaterial, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n instructionFollowing(material: InstructionFollowingMaterial, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n pairwisePreference(material: PairwisePreferenceMaterial, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n closeQA<T>(selector: MaterialMatch<Context, T>, question: string, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n}\n/** Agent supplies its receiver's complete default history to the shared QA capability. */\nexport interface AgentJudgePresetMethods<Kind extends RuntimeKind, Context> extends JudgePresetMethods<Kind, Context> {\n closeQA(question: string, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n closeQA(selector: ToolMatch | EventMatch, question: string, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n closeQA<T>(selector: MaterialMatch<Context, T>, question: string, options?: JudgePresetOptions): MeasurementAssertionHandle<Kind>;\n}\ninterface AgentHistoryFrame {\n cut?: MatcherSourceSnapshot;\n read?: (cut: MatcherSourceSnapshot) => MaterialCollection<Readonly<Record<string, unknown>>>;\n}\nconst agentQACapture = Object.freeze({ maxItems: 16384, maxBytes: 4 * 1024 * 1024, maxNodes: 1048576, maxDepth: 64 });\nfunction agentJudgePresetMethods<Kind extends RuntimeKind, S extends AssertionScope>(check: import(\"../assertions/api.ts\").AssertionCheck<Kind, AgentMatchContext<S>>, frame: AgentHistoryFrame): AgentJudgePresetMethods<Kind, AgentMatchContext<S>> {\n const defaults = defineMaterialMatch<AgentMatchContext<S>, Readonly<Record<string, unknown>>>({\n name: \"agent-history\",\n read: () => frame.cut === undefined || frame.read === undefined\n ? { state: \"unavailable\", reason: \"agent-history-receiver-closed\" }\n : frame.read(frame.cut),\n match: defineValueMatch({ name: \"all-history-items\", evaluate: (_value: Readonly<Record<string, unknown>>) => true }),\n capture: agentQACapture,\n });\n const closeQA = (first: unknown, second?: unknown, third?: JudgePresetOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"closeQA accepts question and options, or selector, question and options\");\n let selector: ContextualMatch;\n let question: string;\n let options: JudgePresetOptions | undefined;\n if (typeof first === \"string\") {\n if (third !== undefined)\n throw new TypeError(\"closeQA(question, options) accepts two arguments\");\n selector = defaults as ContextualMatch;\n question = first;\n options = second as JudgePresetOptions | undefined;\n }\n else {\n question = second as string;\n options = third;\n selector = isManagedToolMatch(first)\n ? defineMaterialMatch<AgentMatchContext<S>>({ name: \"agent-tool-history\", read: ctx => ctx.toolCalls as ManagedToolCalls<S>, match: first, capture: agentQACapture }) as ContextualMatch\n : isManagedEventMatch(first)\n ? defineMaterialMatch<AgentMatchContext<S>>({ name: \"agent-event-history\", read: ctx => ctx.eventOccurrences as ManagedEventOccurrences<S>, match: first, capture: agentQACapture }) as ContextualMatch\n : first as ContextualMatch;\n }\n return registerMaterialQA(check, selector, question, options) as MeasurementAssertionHandle<Kind>;\n };\n return Object.freeze({ ...judgePresetMethods(check), closeQA }) as AgentJudgePresetMethods<Kind, AgentMatchContext<S>>;\n}\nfunction judgePresetMethods<Kind extends RuntimeKind, C = unknown>(check: import(\"../assertions/api.ts\").AssertionCheck<Kind, C>): JudgePresetMethods<Kind, C> {\n const apply = <Material>(factory: (options?: JudgePresetOptions) => ScoreMatch<Material>, material: Material, options: JudgePresetOptions | undefined, extra: readonly unknown[], name: string): MeasurementAssertionHandle<Kind> => {\n if (extra.length > 0)\n throw new TypeError(`${name}() accepts material and optional options`);\n return (check as (value: Material, match: ScoreMatch<Material>) => MeasurementAssertionHandle<Kind>)(material, factory(options));\n };\n return Object.freeze({\n factuality: (material: FactualityMaterial, options?: JudgePresetOptions, ...extra: readonly unknown[]) => apply(factuality, material, options, extra, \"factuality\"),\n faithfulness: (material: FaithfulnessMaterial, options?: JudgePresetOptions, ...extra: readonly unknown[]) => apply(faithfulness, material, options, extra, \"faithfulness\"),\n instructionFollowing: (material: InstructionFollowingMaterial, options?: JudgePresetOptions, ...extra: readonly unknown[]) => apply(instructionFollowing, material, options, extra, \"instructionFollowing\"),\n pairwisePreference: (material: PairwisePreferenceMaterial, options?: JudgePresetOptions, ...extra: readonly unknown[]) => apply(pairwisePreference, material, options, extra, \"pairwisePreference\"),\n closeQA: <T>(selector: MaterialMatch<C, T>, question: string, options?: JudgePresetOptions, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"closeQA accepts selector, question and optional options\");\n return registerMaterialQA(check, selector as ContextualMatch, question, options) as MeasurementAssertionHandle<Kind>;\n },\n });\n}\nexport interface FileChangedOptions {\n readonly status?: \"added\" | \"modified\" | \"deleted\";\n readonly before?: BooleanMatch<string, string, \"value\">;\n readonly after?: BooleanMatch<string, string, \"value\">;\n}\n/** The only agent-attributed post-run diff surface exposed to Eval authors. */\nexport interface AssertFirstSandbox<Kind extends RuntimeKind> extends SandboxOperations, SandboxTransferOperations {\n changedPaths(paths: readonly string[]): PostRunBooleanAssertionHandle<Kind, void>;\n noChanges(): PostRunBooleanAssertionHandle<Kind, void>;\n fileChanged(path: string, options?: FileChangedOptions): PostRunBooleanAssertionHandle<Kind, void>;\n fileDeleted(path: string): PostRunBooleanAssertionHandle<Kind, void>;\n notInDiff(pattern: RegExp, options?: WorkspaceDiffNotInOptions): PostRunBooleanAssertionHandle<Kind, void>;\n}\nexport interface AssertFirstTurnHandle<Kind extends RuntimeKind> extends AgentJudgePresetMethods<Kind, AgentMatchContext<\"turn\">> {\n readonly input: string;\n readonly events: readonly StreamEvent[];\n readonly toolCalls: ManagedToolCalls<\"turn\">;\n readonly eventOccurrences: ManagedEventOccurrences<\"turn\">;\n readonly status: \"completed\" | \"failed\" | \"waiting\";\n readonly reply: string;\n readonly data?: JsonValue;\n readonly usage: EvalUsage;\n check: import(\"../assertions/api.ts\").AssertionCheck<Kind, AgentMatchContext<\"turn\">>;\n judge: JudgeFunction<Kind>;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch | ToolOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n toolOrder(matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch | EventOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n eventOrder(matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n readonly elapsedMs: import(\"../assertions/match.ts\").NumericMaterial;\n maxTokens(max: number): BooleanAssertionHandle<Kind, number>;\n maxCost(usd: number | string): BooleanAssertionHandle<Kind, string>;\n}\nexport interface AssertFirstSessionHandle<Kind extends RuntimeKind> extends AgentJudgePresetMethods<Kind, AgentMatchContext<\"session\">> {\n send(input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }): Promise<AssertFirstTurnHandle<Kind>>;\n sendFile(path: string, text?: string): Promise<AssertFirstTurnHandle<Kind>>;\n requireInputRequest(filter?: InputRequestFilter): InputRequest;\n respond(...responses: readonly (string | AssertFirstRespondAnswer)[]): Promise<AssertFirstTurnHandle<Kind>>;\n respondAll(optionId: string): Promise<AssertFirstTurnHandle<Kind>>;\n readonly reply: string;\n readonly sessionId: string | undefined;\n readonly events: readonly StreamEvent[];\n readonly usage: EvalUsage;\n readonly toolCalls: ManagedToolCalls<\"session\">;\n readonly eventOccurrences: ManagedEventOccurrences<\"session\">;\n check: import(\"../assertions/api.ts\").AssertionCheck<Kind, AgentMatchContext<\"session\">>;\n judge: JudgeFunction<Kind>;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch | ToolOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n toolOrder(matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch | EventOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n eventOrder(matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ]): BooleanAssertionHandle<Kind, void>;\n readonly elapsedMs: import(\"../assertions/match.ts\").NumericMaterial;\n maxTokens(max: number): BooleanAssertionHandle<Kind, number>;\n maxCost(usd: number | string): BooleanAssertionHandle<Kind, string>;\n}\ntype JudgeFunction<Kind extends RuntimeKind> = <Value>(value: AssertionSubject<Value>, definition: ScoreMatch<NoInfer<Value>>) => MeasurementAssertionHandle<Kind>;\nexport type AssertFirstTestContext<Kind extends RuntimeKind> = AgentJudgePresetMethods<Kind, AgentMatchContext<\"attempt\">> & {\n /** 保存 JSON 值或 Quantity 供结果展示,不登记 Assertion,也不影响 Verdict、score 或 coverage。 */\n note: AssertFirstCoreTestContext<Kind>[\"note\"];\n readonly evaluationKind: Kind;\n send(input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }): Promise<AssertFirstTurnHandle<Kind>>;\n sendFile(path: string, text?: string): Promise<AssertFirstTurnHandle<Kind>>;\n requireInputRequest(filter?: InputRequestFilter): InputRequest;\n respond(...responses: readonly (string | AssertFirstRespondAnswer)[]): Promise<AssertFirstTurnHandle<Kind>>;\n respondAll(optionId: string): Promise<AssertFirstTurnHandle<Kind>>;\n readonly reply: string;\n readonly sessionId: string | undefined;\n readonly events: readonly StreamEvent[];\n readonly eventOccurrences: ManagedEventOccurrences<\"attempt\">;\n newSession(): AssertFirstSessionHandle<Kind>;\n readonly signal: AbortSignal;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: ExperimentFlags;\n progress(update: import(\"../types.ts\").ProgressUpdate): void;\n diagnostic(input: import(\"../types.ts\").DiagnosticInput): void;\n log(message: string): void;\n skip(reason: string): never;\n group<Value>(title: string, body: () => Value | PromiseLike<Value>): Promise<Awaited<Value>>;\n check: import(\"../assertions/api.ts\").AssertionCheck<Kind, AgentMatchContext<\"attempt\">>;\n judge: JudgeFunction<Kind>;\n readonly toolCalls: ManagedToolCalls<\"attempt\">;\n readonly sandbox: AssertFirstSandbox<Kind>;\n readonly observability: import(\"../o11y/types.ts\").ObservabilitySummary;\n readonly usage: EvalUsage;\n succeeded(): BooleanAssertionHandle<Kind, void>;\n calledTool(match: ToolMatch | ToolOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n calledTool(name: string): BooleanAssertionHandle<Kind, void>;\n notCalledTool(match: ToolMatch): BooleanAssertionHandle<Kind, void>;\n notCalledTool(name: string): BooleanAssertionHandle<Kind, void>;\n usedNoTools(): BooleanAssertionHandle<Kind, void>;\n maxToolCalls(max: number): BooleanAssertionHandle<Kind, void>;\n noFailedActions(): BooleanAssertionHandle<Kind, void>;\n event(match: EventMatch | EventOccurrenceMatch): BooleanAssertionHandle<Kind, void>;\n notEvent(match: EventMatch): BooleanAssertionHandle<Kind, void>;\n readonly elapsedMs: import(\"../assertions/match.ts\").NumericMaterial;\n maxTokens(max: number): BooleanAssertionHandle<Kind, number>;\n maxCost(usd: number | string): BooleanAssertionHandle<Kind, string>;\n} & (Kind extends \"score\" ? {\n readonly score: ScoreFunction;\n} : {});\nexport interface AgentMatchContext<Scope extends \"turn\" | \"session\" | \"attempt\" = \"attempt\"> {\n readonly scope: Scope;\n readonly toolCalls: ManagedToolCalls<Scope>;\n readonly eventOccurrences: ManagedEventOccurrences<Scope>;\n readonly usage: EvalUsage;\n}\ntype AssertionScope = \"turn\" | \"session\" | \"attempt\";\ntype ScopeStatus = \"completed\" | \"failed\" | \"waiting\" | \"not-started\";\ntype ScopeCoverage = import(\"../assertions/coverage.ts\").ResolvedEvidenceCoverage;\nfunction scopeCriterion(scope: AssertionScope, assertion: \"succeeded\" | \"no-failed-actions\" = \"succeeded\"): AssertionCriterion {\n return Object.freeze({\n kind: \"scope-status\" as const,\n scope,\n assertion,\n });\n}\nfunction occurrenceCriterion(scope: AssertionScope, occurrence: \"tool\" | \"event\", matcher: string | undefined, quantifier: ToolMatchQuantifier): AssertionCriterion {\n return Object.freeze({\n kind: \"occurrence\" as const,\n scope,\n occurrence,\n assertion: quantifier.kind === \"absent\"\n ? \"absent\" as const\n : quantifier.kind === \"exact\"\n ? \"count\" as const\n : quantifier.kind === \"at-least\" && quantifier.count === 1\n ? \"present\" as const\n : \"count\" as const,\n ...(matcher === undefined ? {} : { matcher }),\n quantifier: Object.freeze(quantifier.kind === \"absent\"\n ? { kind: \"absent\" as const }\n : { kind: quantifier.kind, count: quantifier.count }),\n });\n}\nfunction scopeCoverageState(coverage: ScopeCoverage, channel: \"actions\" | \"status\"): \"complete\" | \"partial\" | \"unavailable\" {\n return coverage[channel].status;\n}\nfunction succeededHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly status: ScopeStatus;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot({\n scope: input.scope,\n assertion: \"succeeded\",\n status: input.status,\n coverage: input.coverage.status.status,\n snapshot: input.snapshot,\n });\n return input.runtime.registerBoolean<void>({\n criterion: scopeCriterion(input.scope),\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n evaluate: () => Effect.sync(() => input.status === \"not-started\"\n ? Object.freeze({ state: \"mismatched\" as const })\n : scopeCoverageState(input.coverage, \"status\") !== \"complete\"\n ? Object.freeze({ state: \"unavailable\" as const, reason: \"source-unavailable\" as const })\n : input.status === \"completed\"\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const })),\n });\n}\ninterface MatcherScopeTurn {\n readonly observed: ObservedTurnSnapshot;\n readonly events: readonly StreamEvent[];\n readonly outcome: \"completed\" | \"failed\" | \"waiting\";\n}\ntype ProjectedMatcherCandidate<Candidate> = {\n readonly state: \"available\";\n readonly value: Candidate;\n} | {\n readonly state: \"unavailable\";\n readonly reason: string;\n};\ninterface MatcherSourceProjection {\n readonly state: \"available\" | \"invalid\";\n readonly events: readonly ObservedEventLedgerRow[];\n readonly toolOccurrences: readonly ObservedToolOccurrenceLedgerRow[];\n readonly occurrenceCandidates: ReadonlyMap<string, LogicalToolOccurrence>;\n readonly orphanFinishes: readonly OrphanToolOperationFinish[];\n}\ntype ResolveObservedEvaluation = (snapshot: ObservedTurnSnapshot) => ObservedEvaluationSegment | undefined;\ninterface ToolScopeSnapshot {\n readonly occurrences: readonly LogicalToolOccurrence[];\n readonly rows: readonly MatcherSourceRow<ProjectedMatcherCandidate<LogicalToolOccurrence>>[];\n readonly orphanFinishes: readonly OrphanToolOperationFinish[];\n readonly sourceSnapshot: MatcherSourceSnapshot;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}\ninterface ToolScopeProjectionCache {\n readonly cutKey: string;\n readonly value: ToolScopeSnapshot;\n}\nfunction toolScopeCutKey(sourceSnapshot: MatcherSourceSnapshot, snapshot: unknown): string {\n const encoded = JSON.stringify([sourceSnapshot, snapshot]);\n if (encoded === undefined) {\n throw new Error(\"Tool scope cut must be JSON-serializable\");\n }\n return encoded;\n}\nfunction unavailableSourceSnapshot(snapshot: MatcherSourceSnapshot): MatcherSourceSnapshot {\n return Object.freeze({ ...snapshot, collectionAtCut: \"unavailable\" as const });\n}\nfunction projectMatcherSources(turns: readonly MatcherScopeTurn[], resolveEvaluation: ResolveObservedEvaluation): MatcherSourceProjection {\n const evaluation = turns.map((turn) => resolveEvaluation(turn.observed));\n if (evaluation.some((segment) => segment === undefined)) {\n return Object.freeze({\n state: \"invalid\" as const,\n events: Object.freeze([]),\n toolOccurrences: Object.freeze([]),\n occurrenceCandidates: new Map<string, LogicalToolOccurrence>(),\n orphanFinishes: Object.freeze([]),\n });\n }\n const segments = evaluation as readonly ObservedEvaluationSegment[];\n const projected = projectObservedSourceEvents(segments);\n const logicalTurns: readonly LogicalToolOccurrenceScopeTurn[] = Object.freeze(segments.map((segment, index) => Object.freeze({\n session: segment.sessionId,\n turn: segment.turnId,\n turnOrdinal: index + 1,\n events: segment.events,\n outcome: turns[index]!.outcome,\n })));\n const logical = deriveScopedLogicalToolOccurrences(logicalTurns);\n if (projected.state === \"invalid\") {\n return Object.freeze({\n state: \"invalid\" as const,\n events: Object.freeze([]),\n toolOccurrences: Object.freeze([]),\n occurrenceCandidates: new Map<string, LogicalToolOccurrence>(),\n orphanFinishes: logical.orphanFinishes,\n });\n }\n const occurrenceCandidates = new Map<string, LogicalToolOccurrence>();\n for (const occurrence of logical.occurrences) {\n const segment = segments[occurrence.start.turnOrdinal - 1];\n const start = segment?.items[occurrence.start.eventOrdinal];\n if (segment === undefined || start?.kind !== \"tool-start\")\n continue;\n occurrenceCandidates.set(start.toolOccurrenceId, Object.freeze({\n ...occurrence,\n id: start.toolOccurrenceId,\n session: segment.sessionId,\n turn: segment.turnId,\n }));\n }\n return Object.freeze({\n state: \"available\" as const,\n events: projected.events,\n toolOccurrences: projected.toolOccurrences,\n occurrenceCandidates,\n orphanFinishes: logical.orphanFinishes,\n });\n}\nfunction exactToolLocator(toolOccurrenceId: string): MatcherSourceLocator {\n return Object.freeze({\n kind: \"tool-occurrence\" as const,\n toolOccurrenceId,\n relation: Object.freeze({ state: \"exact\" as const }),\n });\n}\nfunction projectToolScope(input: {\n readonly turns: readonly MatcherScopeTurn[];\n readonly sourceSnapshot: MatcherSourceSnapshot;\n readonly homeTurnId?: string;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n readonly resolveEvaluation: ResolveObservedEvaluation;\n}): ToolScopeSnapshot {\n const projection = projectMatcherSources(input.turns, input.resolveEvaluation);\n const sourceSnapshot = projection.state === \"invalid\"\n ? unavailableSourceSnapshot(input.sourceSnapshot)\n : input.sourceSnapshot;\n const sourceRows = input.homeTurnId === undefined\n ? projection.toolOccurrences\n : projection.toolOccurrences.filter((row) => row.homeTurnId === input.homeTurnId);\n const rows = Object.freeze(sourceRows.map((row) => {\n const candidate = projection.occurrenceCandidates.get(row.toolOccurrenceId);\n return Object.freeze({\n locator: exactToolLocator(row.toolOccurrenceId),\n sessionId: row.sessionId,\n sessionSequence: row.startSessionSequence,\n candidate: candidate === undefined\n ? Object.freeze({\n state: \"unavailable\" as const,\n reason: \"source-occurrence-material-unavailable\",\n })\n : Object.freeze({ state: \"available\" as const, value: candidate }),\n });\n }));\n return Object.freeze({\n occurrences: Object.freeze(rows.flatMap((row) => row.candidate.state === \"available\" ? [row.candidate.value] : [])),\n rows,\n orphanFinishes: projection.orphanFinishes,\n sourceSnapshot,\n coverage: input.coverage,\n snapshot: input.snapshot,\n });\n}\nfunction resolveToolTarget(target: ToolMatch | string, label: \"calledTool\" | \"notCalledTool\"): ToolMatch {\n if (typeof target === \"string\")\n return toolMatch(target);\n return assertManagedToolMatch(target, `${label}() match`);\n}\nfunction toolScopeCoverageReason(snapshot: ToolScopeSnapshot): string | undefined {\n const actions = snapshot.coverage.actions;\n // Missing command/not-command classification limits commandMatch(), not the\n // completeness of the already captured tool occurrence set. Tool name/input/\n // lifecycle counts remain decidable; commandMatch itself retains unavailable\n // evidence when an occurrence has no command projection.\n if (actions.status !== \"complete\"\n && actions.reason !== UNCLASSIFIED_TOOL_ACTIONS_REASON) {\n return `scope-actions-${actions.status}:${actions.reason}`;\n }\n if (snapshot.orphanFinishes.length > 0) {\n return `orphan-tool-finish:${snapshot.orphanFinishes.length}`;\n }\n return undefined;\n}\nfunction registerCollectionCheck<Kind extends RuntimeKind, Subject>(runtime: AssertionsRuntime<Kind>, subject: Subject, match: unknown): BooleanAssertionHandle<Kind, void> {\n return (runtime.t.check as unknown as (subject: Subject, match: unknown) => BooleanAssertionHandle<Kind, void>)(subject, match);\n}\nfunction calledToolHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls;\n readonly target: ToolMatch | ToolOccurrenceMatch | string;\n}): BooleanAssertionHandle<Kind, void> {\n if (typeof input.target === \"string\")\n return registerCollectionCheck(input.runtime, input.subject, toolMatch(input.target));\n if (!isManagedCollectionMatch(input.target)) {\n return registerCollectionCheck(input.runtime, input.subject, assertManagedToolMatch(input.target, \"calledTool() match\"));\n }\n const spec = collectionMatchSpecOf(input.target);\n if (spec.kind !== \"occurrence\" || spec.domain !== \"tool\") {\n throw new TypeError(\"calledTool() accepts only a ToolMatch or positive ToolOccurrenceMatch\");\n }\n if ((spec.quantifier.kind === \"exact\" || spec.quantifier.kind === \"at-least\")\n && spec.quantifier.count === 0) {\n throw new TypeError(\"calledTool() requires a positive occurrence; exactly(0) and atLeast(0) are invalid\");\n }\n if (spec.quantifier.kind === \"at-most\" || spec.quantifier.kind === \"less-than\" || spec.quantifier.kind === \"absent\") {\n throw new TypeError(\"calledTool() does not accept an upper-bound occurrence Match\");\n }\n return registerCollectionCheck(input.runtime, input.subject, input.target);\n}\nfunction notCalledToolHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls;\n readonly target: ToolMatch | string;\n}): BooleanAssertionHandle<Kind, void> {\n return registerCollectionCheck(input.runtime, input.subject, resolveToolTarget(input.target, \"notCalledTool\").exactly(0));\n}\nfunction valueMatchCriterion(): AssertionCriterion {\n return Object.freeze({\n kind: \"value-match\" as const,\n subject: \"explicit-value\" as const,\n matcher: Object.freeze({ state: \"unavailable\" as const }),\n });\n}\nfunction matchedVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"matched\" as const, value: undefined });\n}\nfunction mismatchedVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"mismatched\" as const });\n}\nfunction unavailableVoid(): BooleanAssertionEvaluation<void> {\n return Object.freeze({ state: \"unavailable\" as const, reason: \"evidence-unavailable\" as const });\n}\nfunction scopedBooleanHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly criterion: AssertionCriterion;\n readonly snapshot: unknown;\n readonly interruptedMatcherArtifact?: import(\"../assertions/api.ts\").MatcherQueryArtifact;\n readonly evaluate: () => Effect.Effect<BooleanAssertionEvaluation<void>, unknown, never>;\n}): BooleanAssertionHandle<Kind, void> {\n const captured = captureAssertionSnapshot(input.snapshot);\n return input.runtime.registerBoolean<void>({\n criterion: input.criterion,\n subject: captured.material,\n coverage: captured.coverage,\n limitations: captured.limitations,\n ...(input.interruptedMatcherArtifact === undefined\n ? {}\n : { interruptedMatcherArtifact: input.interruptedMatcherArtifact }),\n evaluate: input.evaluate,\n });\n}\nfunction hasCompleteCoverage(coverage: ScopeCoverage, channel: \"actions\" | \"events\" | \"usage\"): boolean {\n return coverage[channel].status === \"complete\";\n}\nfunction assertNonNegativeFinite(value: unknown, label: string): asserts value is number {\n if (typeof value !== \"number\" || !Number.isFinite(value) || value < 0) {\n throw new TypeError(`${label} must be a finite non-negative number`);\n }\n}\nfunction assertNonNegativeSafeInteger(value: unknown, label: string): asserts value is number {\n if (typeof value !== \"number\" || !Number.isSafeInteger(value) || value < 0) {\n throw new TypeError(`${label} must be a non-negative safe integer`);\n }\n}\nfunction usedNoToolsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls;\n}): BooleanAssertionHandle<Kind, void> {\n return registerCollectionCheck(input.runtime, input.subject, toolMatch({}).exactly(0));\n}\nfunction maxToolCallsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls;\n readonly max: number;\n}): BooleanAssertionHandle<Kind, void> {\n assertNonNegativeSafeInteger(input.max, \"maxToolCalls() max\");\n return registerCollectionCheck(input.runtime, input.subject, atMost(input.max));\n}\nfunction noFailedActionsHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly scope: AssertionScope;\n readonly events: readonly StreamEvent[];\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}): BooleanAssertionHandle<Kind, void> {\n return scopedBooleanHandle({\n runtime: input.runtime,\n criterion: scopeCriterion(input.scope, \"no-failed-actions\"),\n snapshot: Object.freeze({\n scope: input.scope,\n assertion: \"no-failed-actions\",\n eventCount: input.events.length,\n coverage: input.coverage.actions,\n snapshot: input.snapshot,\n }),\n evaluate: () => Effect.sync(() => {\n const facts = deriveRunFacts(input.events);\n const failed = facts.toolCalls.some((call) => call.status === \"failed\")\n || facts.subagentCalls.some((call) => call.status === \"failed\");\n if (failed)\n return mismatchedVoid();\n return hasCompleteCoverage(input.coverage, \"actions\")\n ? matchedVoid()\n : unavailableVoid();\n }),\n });\n}\nfunction toolOrderHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedToolCalls<\"turn\"> | ManagedToolCalls<\"session\">;\n readonly matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ];\n}): BooleanAssertionHandle<Kind, void> {\n return registerCollectionCheck(input.runtime, input.subject, inOrder(input.matches));\n}\nfunction managedToolCalls(scope: AssertionScope, snapshot: ToolScopeSnapshot, check: object): ManagedToolCalls {\n const collection = freezeManagedToolCalls({\n scope,\n sourceSnapshot: snapshot.sourceSnapshot,\n rows: snapshot.rows,\n incompleteReason: toolScopeCoverageReason(snapshot),\n actionsCoverage: snapshot.coverage.actions,\n orphanFinishCount: snapshot.orphanFinishes.length,\n snapshot: snapshot.snapshot,\n });\n ownMaterialCollection(check, collection);\n return collection;\n}\nfunction managedEventOccurrences(scope: AssertionScope, snapshot: EventScopeSnapshot, check: object): ManagedEventOccurrences {\n const collection = freezeManagedEventOccurrences({\n scope,\n sourceSnapshot: snapshot.sourceSnapshot,\n rows: snapshot.rows,\n coverage: snapshot.coverage.events,\n snapshot: snapshot.snapshot,\n unassociatedOperation: snapshot.unassociatedOperation,\n });\n ownMaterialCollection(check, collection);\n return collection;\n}\nfunction eventHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedEventOccurrences;\n readonly match: EventMatch | EventOccurrenceMatch;\n}): BooleanAssertionHandle<Kind, void> {\n if (!isManagedCollectionMatch(input.match)) {\n return registerCollectionCheck(input.runtime, input.subject, assertManagedEventMatch(input.match, \"event() match\"));\n }\n const spec = collectionMatchSpecOf(input.match);\n if (spec.kind !== \"occurrence\" || spec.domain !== \"event\") {\n throw new TypeError(\"event() accepts only an EventMatch or positive EventOccurrenceMatch\");\n }\n if ((spec.quantifier.kind === \"exact\" || spec.quantifier.kind === \"at-least\")\n && spec.quantifier.count === 0) {\n throw new TypeError(\"event() requires a positive occurrence; exactly(0) and atLeast(0) are invalid\");\n }\n if (spec.quantifier.kind === \"at-most\" || spec.quantifier.kind === \"less-than\" || spec.quantifier.kind === \"absent\") {\n throw new TypeError(\"event() does not accept an upper-bound occurrence Match\");\n }\n return registerCollectionCheck(input.runtime, input.subject, input.match);\n}\nfunction notEventOccurrenceHandle<Kind extends RuntimeKind>(input: {\n readonly runtime: AssertionsRuntime<Kind>;\n readonly subject: ManagedEventOccurrences;\n readonly match: EventMatch;\n}): BooleanAssertionHandle<Kind, void> {\n return registerCollectionCheck(input.runtime, input.subject, assertManagedEventMatch(input.match, \"notEvent() match\").exactly(0));\n}\ninterface EventScopeSnapshot {\n readonly events: readonly EventOccurrenceView[];\n readonly rows: readonly MatcherSourceRow<{\n readonly state: \"available\";\n readonly value: EventOccurrenceView;\n }>[];\n readonly unassociatedOperation: boolean;\n readonly sourceSnapshot: MatcherSourceSnapshot;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n}\nfunction eventLocator(row: ObservedEventLedgerRow): MatcherSourceLocator {\n if (row.event.kind === \"tool-start\") {\n return Object.freeze({\n kind: \"event\" as const,\n eventId: row.eventId,\n toolOccurrenceId: row.event.toolOccurrenceId,\n relation: Object.freeze({ state: \"exact\" as const }),\n });\n }\n if (row.event.kind === \"tool-finish\") {\n return row.event.occurrence.state === \"exact\"\n ? Object.freeze({\n kind: \"event\" as const,\n eventId: row.eventId,\n toolOccurrenceId: row.event.occurrence.toolOccurrenceId,\n relation: Object.freeze({ state: \"exact\" as const }),\n })\n : Object.freeze({\n kind: \"event\" as const,\n eventId: row.eventId,\n relation: Object.freeze({\n state: \"unavailable\" as const,\n reason: \"ambiguous\" as const,\n }),\n });\n }\n return Object.freeze({\n kind: \"event\" as const,\n eventId: row.eventId,\n relation: Object.freeze({ state: \"exact\" as const }),\n });\n}\nfunction projectEventScope(input: {\n readonly turns: readonly MatcherScopeTurn[];\n readonly sourceSnapshot: MatcherSourceSnapshot;\n readonly coverage: ScopeCoverage;\n readonly snapshot: unknown;\n readonly resolveEvaluation: ResolveObservedEvaluation;\n}): EventScopeSnapshot {\n const projection = projectMatcherSources(input.turns, input.resolveEvaluation);\n const baseSourceSnapshot = projection.state === \"invalid\"\n ? unavailableSourceSnapshot(input.sourceSnapshot)\n : input.sourceSnapshot;\n const turnIndex = new Map(input.turns.map((turn, index) => [turn.observed.turnId, index]));\n const eventOrdinals = new Map(input.turns.map((turn) => {\n const segment = input.resolveEvaluation(turn.observed);\n return [\n turn.observed.turnId,\n segment === undefined\n ? undefined\n : new Map(segment.items.map((event, index) => [event.eventId, index])),\n ] as const;\n }));\n const toolNames = new Map(projection.events.flatMap((row) => row.event.kind === \"tool-start\"\n ? [[row.event.toolOccurrenceId, row.event.tool] as const]\n : []));\n const rows: MatcherSourceRow<{\n readonly state: \"available\";\n readonly value: EventOccurrenceView;\n }>[] = [];\n let omittedProjection = false;\n let incompleteRelation = false;\n for (const row of projection.events) {\n if (row.event.kind !== \"message\" && row.event.kind !== \"tool-start\" && row.event.kind !== \"tool-finish\") {\n continue;\n }\n const turnOrdinal = turnIndex.get(row.turnId);\n const sourceTurn = turnOrdinal === undefined ? undefined : input.turns[turnOrdinal];\n const eventOrdinal = eventOrdinals.get(row.turnId)?.get(row.eventId) ?? -1;\n let publicView: EventOccurrenceView | undefined;\n if (row.event.kind === \"message\") {\n publicView = Object.freeze({ type: \"message\" as const, role: row.event.role, text: row.event.text });\n }\n else if (row.event.kind === \"tool-start\") {\n publicView = Object.freeze({\n type: \"operation.started\" as const,\n tool: Object.freeze({ name: row.event.tool }),\n });\n }\n else if (row.event.occurrence.state === \"exact\" && row.event.outcome !== \"cancelled\") {\n const name = toolNames.get(row.event.occurrence.toolOccurrenceId);\n if (name !== undefined) {\n publicView = Object.freeze({\n type: \"operation.finished\" as const,\n tool: Object.freeze({ name }),\n status: row.event.outcome,\n });\n }\n }\n if (publicView === undefined) {\n omittedProjection = true;\n continue;\n }\n let value: EventOccurrenceView = publicView;\n if (sourceTurn !== undefined && eventOrdinal >= 0 && row.event.kind === \"message\") {\n value = makeAssertionMessageEvent({\n eventId: row.eventId,\n session: row.sessionId,\n turn: row.turnId,\n turnOrdinal: (turnOrdinal ?? 0) + 1,\n eventOrdinal,\n role: row.event.role,\n text: row.event.text,\n });\n }\n else if (sourceTurn !== undefined && eventOrdinal >= 0 && row.event.kind !== \"message\") {\n const toolOccurrenceId = row.event.kind === \"tool-start\"\n ? row.event.toolOccurrenceId\n : row.event.occurrence.state === \"exact\"\n ? row.event.occurrence.toolOccurrenceId\n : undefined;\n const occurrence = toolOccurrenceId === undefined\n ? undefined\n : projection.occurrenceCandidates.get(toolOccurrenceId);\n if (occurrence !== undefined) {\n value = makeAssertionToolEvent({\n eventId: row.eventId,\n toolOccurrenceId,\n session: row.sessionId,\n turn: row.turnId,\n turnOrdinal: (turnOrdinal ?? 0) + 1,\n eventOrdinal,\n type: row.event.kind === \"tool-start\"\n ? \"operation.started\" as const\n : \"operation.finished\" as const,\n occurrence,\n ...(row.event.kind === \"tool-finish\" && row.event.outcome !== \"cancelled\"\n ? { status: row.event.outcome }\n : {}),\n });\n }\n else {\n incompleteRelation = true;\n }\n }\n else {\n incompleteRelation = true;\n }\n rows.push(Object.freeze({\n locator: eventLocator(row),\n sessionId: row.sessionId,\n sessionSequence: row.sessionSequence,\n candidate: Object.freeze({ state: \"available\" as const, value }),\n }));\n }\n const immutableRows = Object.freeze(rows);\n const sourceSnapshot = omittedProjection && baseSourceSnapshot.collectionAtCut === \"complete\"\n ? Object.freeze({ ...baseSourceSnapshot, collectionAtCut: \"partial\" as const })\n : baseSourceSnapshot;\n return Object.freeze({\n events: Object.freeze(immutableRows.map((row) => row.candidate.value)),\n rows: immutableRows,\n unassociatedOperation: projection.state === \"invalid\" || omittedProjection || incompleteRelation,\n sourceSnapshot,\n coverage: input.coverage,\n snapshot: input.snapshot,\n });\n}\nconst DIFF_REFERENCE_PREVIEW = \"agent-attributed send-window endpoint deltas\";\nfunction changedPathsCriterion(paths: readonly string[]): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"changed-paths\" as const,\n paths: Object.freeze([...paths]),\n });\n}\nfunction noChangesCriterion(): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"no-changes\" as const,\n });\n}\nfunction fileChangedCriterion(path: string, options: Readonly<FileChangedOptions>): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"file-changed\" as const,\n path,\n ...(options.status === undefined ? {} : { status: options.status }),\n ...(options.before === undefined ? {} : { before: options.before.name }),\n ...(options.after === undefined ? {} : { after: options.after.name }),\n });\n}\nfunction fileDeletedCriterion(path: string): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"file-deleted\" as const,\n path,\n });\n}\nfunction notInDiffCriterion(pattern: RegExp, options: Readonly<WorkspaceDiffNotInOptions>): AssertionCriterion {\n return Object.freeze({\n kind: \"sandbox-result\" as const,\n operation: \"not-in-diff\" as const,\n pattern: pattern.source,\n flags: pattern.flags,\n content: options.content ?? \"both\",\n });\n}\nfunction diffReferenceMaterial(): AssertionMaterial {\n return Object.freeze({\n kind: \"record-attachment\" as const,\n preview: DIFF_REFERENCE_PREVIEW,\n });\n}\nfunction assertDiffPath(path: unknown, operation: string): asserts path is string {\n assertCanonicalWorkspaceRelativePath(path, `${operation} path`);\n}\nfunction normalizeFileChangedOptions(value: FileChangedOptions | undefined): Readonly<FileChangedOptions> {\n if (value === undefined)\n return Object.freeze({});\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"fileChanged() options must be an object\");\n }\n for (const key of Object.keys(value)) {\n if (key !== \"status\" && key !== \"before\" && key !== \"after\") {\n throw new TypeError(`fileChanged() options has unknown key ${JSON.stringify(key)}`);\n }\n }\n if (value.status !== undefined\n && value.status !== \"added\"\n && value.status !== \"modified\"\n && value.status !== \"deleted\") {\n throw new TypeError(\"fileChanged() options.status must be added, modified, or deleted\");\n }\n return Object.freeze({ ...value });\n}\nfunction normalizeNotInDiffOptions(value: WorkspaceDiffNotInOptions | undefined): Readonly<WorkspaceDiffNotInOptions> {\n if (value === undefined)\n return Object.freeze({});\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"notInDiff() options must be an object\");\n }\n for (const key of Object.keys(value)) {\n if (key !== \"content\")\n throw new TypeError(`notInDiff() options has unknown key ${JSON.stringify(key)}`);\n }\n if (value.content !== undefined && value.content !== \"added\" && value.content !== \"removed\" && value.content !== \"both\") {\n throw new TypeError(\"notInDiff() options.content must be added, removed, or both\");\n }\n return Object.freeze({ ...value });\n}\nasync function endpointMatches(endpoint: AgentWorkspaceDiffEndpoint, match: BooleanMatch<string, string, \"value\"> | undefined): Promise<\"matched\" | \"mismatched\" | \"unavailable\"> {\n if (match === undefined)\n return \"matched\";\n if (endpoint.state === \"absent\")\n return \"mismatched\";\n if (endpoint.state === \"elided\")\n return \"unavailable\";\n const result = await evaluateBooleanMatch(match, endpoint.text);\n return result.state;\n}\nfunction unavailableDiffResult() {\n return Object.freeze({ state: \"unavailable\" as const, reason: \"source-unavailable\" as const });\n}\n/**\n * Wraps a raw Sandbox capability with post-run Assertion registration. The\n * wrapper has no generic diff value: every call immediately declares exactly\n * one Assertion whose closure reads the single Attempt-owned frozen document.\n */\nfunction createAssertFirstSandbox<Kind extends RuntimeKind>(input: {\n readonly agent: Agent;\n readonly sandbox: Sandbox;\n readonly runtime: AssertionsRuntime<Kind>;\n readonly late: AssertFirstLateResult;\n}): AssertFirstSandbox<Kind> {\n const requireCapability = (): void => {\n if (input.agent.kind !== \"sandbox\") {\n throw new Error(`Agent ${JSON.stringify(input.agent.name)} does not provide sandbox; agent-attributed workspace diff Assertions are unavailable.`);\n }\n };\n const register = (criterion: AssertionCriterion, evaluate: () => Effect.Effect<BooleanAssertionEvaluation<void>, unknown, never>): PostRunBooleanAssertionHandle<Kind, void> => postRunBooleanAssertionHandle(input.runtime.registerBoolean<void>({\n criterion,\n subject: diffReferenceMaterial(),\n evaluate,\n }), input.runtime.evaluationKind);\n const changedPaths = (paths: readonly string[]): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n if (!Array.isArray(paths))\n throw new TypeError(\"changedPaths() requires an array of paths\");\n for (const path of paths)\n assertDiffPath(path, \"changedPaths()\");\n validateExpectedTouchedPaths(paths);\n const expected = Object.freeze([...paths]);\n return register(changedPathsCriterion(expected), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffPathsMatch(diff.document, expected)\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const fileChanged = (path: string, rawOptions?: FileChangedOptions): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n assertDiffPath(path, \"fileChanged()\");\n const options = normalizeFileChangedOptions(rawOptions);\n return register(fileChangedCriterion(path, options), () => Effect.tryPromise({\n try: async () => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n let unavailable = false;\n for (const candidate of agentWorkspaceDiffChangesForPath(diff.document, path)) {\n if (options.status !== undefined && candidate.status !== options.status)\n continue;\n const before = await endpointMatches(candidate.before, options.before);\n const after = await endpointMatches(candidate.after, options.after);\n if (before === \"matched\" && after === \"matched\") {\n return Object.freeze({ state: \"matched\" as const, value: undefined });\n }\n // Both endpoint constraints belong to this one WindowChange. A\n // cross-send restore therefore remains visible, while a same-send\n // restore never became a ledger endpoint delta in the first place.\n if (before === \"mismatched\" || after === \"mismatched\")\n continue;\n if (before === \"unavailable\" || after === \"unavailable\")\n unavailable = true;\n }\n return unavailable\n ? unavailableDiffResult()\n : Object.freeze({ state: \"mismatched\" as const });\n },\n catch: (error) => error,\n }));\n };\n const notInDiff = (pattern: RegExp, rawOptions?: WorkspaceDiffNotInOptions): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n if (!(pattern instanceof RegExp))\n throw new TypeError(\"notInDiff() pattern must be a RegExp\");\n const options = normalizeNotInDiffOptions(rawOptions);\n return register(notInDiffCriterion(pattern, options), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n const result = evaluateWorkspaceDiffNotIn(diff.document, pattern, options);\n return result.state === \"matched\"\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : result.state === \"mismatched\"\n ? Object.freeze({ state: \"mismatched\" as const })\n : unavailableDiffResult();\n }));\n };\n const noChanges = (): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n return register(noChangesCriterion(), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffPathsMatch(diff.document, [])\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const fileDeleted = (path: string): PostRunBooleanAssertionHandle<Kind, void> => {\n requireCapability();\n assertDiffPath(path, \"fileDeleted()\");\n return register(fileDeletedCriterion(path), () => Effect.sync(() => {\n const diff = input.late.diff;\n if (diff.state !== \"available\")\n return unavailableDiffResult();\n return agentWorkspaceDiffChangesForPath(diff.document, path)\n .some((change) => change.status === \"deleted\")\n ? Object.freeze({ state: \"matched\" as const, value: undefined })\n : Object.freeze({ state: \"mismatched\" as const });\n }));\n };\n const view: AssertFirstSandbox<Kind> = {\n get workdir() {\n requireCapability();\n return input.sandbox.workdir;\n },\n runCommand: (cmd, args, options) => {\n requireCapability();\n return input.sandbox.runCommand(cmd, args, options);\n },\n runShell: (script, options) => {\n requireCapability();\n return input.sandbox.runShell(script, options);\n },\n runCommandOrThrow: (cmd, args, options) => {\n requireCapability();\n return input.sandbox.runCommandOrThrow(cmd, args, options);\n },\n runShellOrThrow: (script, options) => {\n requireCapability();\n return input.sandbox.runShellOrThrow(script, options);\n },\n readText: (path) => {\n requireCapability();\n return input.sandbox.readText(path);\n },\n writeText: (path, content) => {\n requireCapability();\n return input.sandbox.writeText(path, content);\n },\n readBytes: (path) => {\n requireCapability();\n return input.sandbox.readBytes(path);\n },\n writeBytes: (path, content) => {\n requireCapability();\n return input.sandbox.writeBytes(path, content);\n },\n pathExists: (path) => {\n requireCapability();\n return input.sandbox.pathExists(path);\n },\n upload: (content, targetPath) => {\n requireCapability();\n return input.sandbox.upload(content, targetPath);\n },\n uploadFile: (source, targetPath) => {\n requireCapability();\n return input.sandbox.uploadFile(source, targetPath);\n },\n uploadDirectory: (sourceDir, targetDir, options) => {\n requireCapability();\n return input.sandbox.uploadDirectory(sourceDir, targetDir, options);\n },\n downloadFile: (sourcePath, target) => {\n requireCapability();\n return input.sandbox.downloadFile(sourcePath, target);\n },\n downloadDirectory: (sourceDir, targetDir, options) => {\n requireCapability();\n return input.sandbox.downloadDirectory(sourceDir, targetDir, options);\n },\n changedPaths,\n noChanges,\n fileChanged,\n fileDeleted,\n notInDiff,\n };\n Object.setPrototypeOf(view, null);\n return Object.freeze(view);\n}\nfunction requireInputRequest(session: RunSession, filter: InputRequestFilter | undefined): InputRequest {\n const matches = session.pendingInputRequests.filter((request) => {\n if (filter === undefined)\n return true;\n if (filter.id !== undefined && !matchesText(request.id ?? \"\", filter.id))\n return false;\n if (filter.prompt !== undefined && !matchesText(request.prompt ?? \"\", filter.prompt))\n return false;\n if (filter.display !== undefined && !matchesText(request.display ?? \"\", filter.display))\n return false;\n if (filter.action !== undefined && !matchesText(request.action ?? \"\", filter.action))\n return false;\n if (filter.input !== undefined && !matchesJson(request.input, filter.input))\n return false;\n if (filter.optionIds !== undefined) {\n const options = new Set((request.options ?? []).map((option) => option.id));\n if (options.size !== filter.optionIds.length || !filter.optionIds.every((id) => options.has(id)))\n return false;\n }\n return true;\n });\n if (matches.length !== 1) {\n throw new Error(`Expected exactly one pending input request, found ${matches.length}`);\n }\n return matches[0]!;\n}\nfunction matchesText(actual: string, expected: string | RegExp): boolean {\n if (expected instanceof RegExp) {\n expected.lastIndex = 0;\n return expected.test(actual);\n }\n return actual === expected;\n}\nfunction requireRequestId(request: InputRequest): string {\n if (!request.id)\n throw new Error(\"Input request has no stable id\");\n return request.id;\n}\nfunction validateOptionId(request: InputRequest, optionId: string): void {\n const ids = (request.options ?? []).map((option) => option.id);\n if (!ids.includes(optionId)) {\n throw new Error(`Option ${JSON.stringify(optionId)} is not available for this input request`);\n }\n}\nfunction resolveStringAnswer(session: RunSession, text: string): InputResponse {\n if (session.pendingInputRequests.length !== 1) {\n throw new Error(`A string response requires exactly one pending input request, found ${session.pendingInputRequests.length}`);\n }\n const request = session.pendingInputRequests[0]!;\n const requestId = requireRequestId(request);\n return (request.options ?? []).some((option) => option.id === text)\n ? { requestId, optionId: text }\n : { requestId, text };\n}\nfunction buildRespondInput(session: RunSession, answers: readonly (string | AssertFirstRespondAnswer)[]): {\n readonly text: string;\n readonly responses: readonly InputResponse[];\n} {\n const text: string[] = [];\n const responses: InputResponse[] = [];\n for (const answer of answers) {\n if (typeof answer === \"string\") {\n text.push(answer);\n responses.push(resolveStringAnswer(session, answer));\n continue;\n }\n const requestId = requireRequestId(answer.request);\n if ((answer.optionId === undefined) === (answer.text === undefined)) {\n throw new Error(\"A structured response needs exactly one of optionId or text\");\n }\n if (answer.optionId !== undefined) {\n validateOptionId(answer.request, answer.optionId);\n text.push(answer.optionId);\n responses.push({ requestId, optionId: answer.optionId });\n }\n else {\n text.push(answer.text!);\n responses.push({ requestId, text: answer.text! });\n }\n }\n return Object.freeze({ text: text.join(\"\\n\"), responses: Object.freeze(responses) });\n}\nfunction mimeTypeFor(path: string): string {\n switch (extname(path).toLowerCase()) {\n case \".png\": return \"image/png\";\n case \".jpg\":\n case \".jpeg\": return \"image/jpeg\";\n case \".gif\": return \"image/gif\";\n case \".webp\": return \"image/webp\";\n default: return \"application/octet-stream\";\n }\n}\nfunction readInputFileEffect(path: string): Effect.Effect<InputFile, unknown> {\n return Effect.tryPromise({\n try: () => readFile(path),\n catch: (error) => error,\n }).pipe(Effect.map((bytes) => Object.freeze({\n filename: basename(path),\n mimeType: mimeTypeFor(path),\n dataBase64: bytes.toString(\"base64\"),\n })));\n}\n/**\n * Builds the Adapter-neutral part of `t`. Agent contexts extend this exact\n * runtime instead of recreating Assertion, group, Judge, score, feedback, or\n * author-control semantics around a SessionManager.\n */\nexport function createAssertFirstCoreContext(deps: AssertFirstCoreContextDeps): {\n readonly context: AssertFirstCoreTestContext<RuntimeKind>;\n readonly state: AssertFirstCoreContextState;\n} {\n const runtime: AssertionsRuntime<RuntimeKind> = deps.evaluationKind === \"score\"\n ? createAssertionsRuntime({ evaluationKind: \"score\", executeStop: deps.executeStop, ...(deps.judge === undefined ? {} : { judge: deps.judge }), signal: deps.signal, ...(deps.judgeUsage === undefined ? {} : { judgeUsage: deps.judgeUsage }) })\n : createAssertionsRuntime({ evaluationKind: \"pass\", executeStop: deps.executeStop, ...(deps.judge === undefined ? {} : { judge: deps.judge }), signal: deps.signal, ...(deps.judgeUsage === undefined ? {} : { judgeUsage: deps.judgeUsage }) });\n const check = runtime.t.check;\n const judge = ((subject: unknown, definition: unknown, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"judge() accepts exactly (subject, definition)\");\n runtime.assertAuthoringOpen();\n assertAssertionSubject(subject, \"judge\");\n if (managedScoreMatchOf(definition) === undefined)\n throw new TypeError(\"judge() definition must be a managed ScoreMatch\");\n return (runtime.t.check as (subject: unknown, match: unknown) => MeasurementAssertionHandle<RuntimeKind>)(subject, definition);\n }) as JudgeFunction<RuntimeKind>;\n const state: AssertFirstCoreContextState = { assertions: runtime, notes: new AttemptNotesCollector() };\n const presets = judgePresetMethods(runtime.t.check);\n const readUsage = (): EvalUsage => { runtime.assertAuthoringOpen(); return deps.readUsage?.() ?? projectAgentEvalUsage({ contributions: [], scope: \"attempt\" }); };\n const elapsedMs = (): import(\"../assertions/match.ts\").NumericMaterial => {\n runtime.assertAuthoringOpen();\n const value = deps.elapsedMs?.();\n const provenance = Object.freeze({ source: \"runtime\", scope: \"attempt\", unit: \"milliseconds\", cut: \"call-time\" });\n return value === undefined || !Number.isFinite(value) || value < 0 ? Object.freeze({ state: \"unavailable\", reason: \"runtime-timing-not-recorded\", provenance }) : Object.freeze({ state: \"exact\", value, provenance });\n };\n const { maxTokens, maxCost } = usageBudgetMethods(runtime, readUsage);\n const base = {\n note: (label: string, value: import(\"../shared/types.ts\").JsonValue | import(\"../assertions/quantity.ts\").Quantity): void => { runtime.assertAuthoringOpen(); state.notes.add(label, value); },\n get usage() { return readUsage(); },\n get elapsedMs() { return elapsedMs(); },\n maxTokens, maxCost,\n evaluationKind: deps.evaluationKind,\n signal: deps.signal,\n model: deps.model,\n reasoningEffort: deps.reasoningEffort,\n flags: deps.flags,\n progress: (update: import(\"../types.ts\").ProgressUpdate) => {\n if (deps.feedback !== undefined) {\n deps.feedback.progress(update);\n }\n else {\n deps.log(update.current === undefined || update.total === undefined\n ? update.message\n : `${update.message} (${update.current}/${update.total})`);\n }\n },\n diagnostic: (input: import(\"../types.ts\").DiagnosticInput) => deps.feedback?.diagnostic(input),\n log: deps.log,\n skip: (reason: string): never => {\n if (reason.trim() === \"\")\n throw new Error(\"skip() requires a non-empty reason\");\n state.skipReason = reason;\n throw new EvalSkipped(reason);\n },\n group: runtime.t.group,\n check,\n judge,\n ...presets,\n };\n if (deps.evaluationKind === \"score\")\n Object.defineProperty(base, \"score\", { value: (runtime as AssertionsRuntime<\"score\">).t.score, enumerable: true });\n const context = Object.freeze(base);\n return {\n context: context as AssertFirstCoreTestContext<RuntimeKind>,\n state,\n };\n}\nfunction usageBudgetMethods<Kind extends RuntimeKind>(runtime: AssertionsRuntime<Kind>, readUsage: () => EvalUsage) {\n const maxTokens = (maximum: number, ...extra: readonly unknown[]): BooleanAssertionHandle<Kind, number> => {\n if (extra.length > 0)\n throw new TypeError(\"maxTokens() accepts exactly one maximum\");\n assertNonNegativeFinite(maximum, \"maxTokens() max\");\n return runtime.t.check(readUsage().totalTokens, atMost(maximum)) as BooleanAssertionHandle<Kind, number>;\n };\n const maxCost = (maximum: number | string, ...extra: readonly unknown[]): BooleanAssertionHandle<Kind, string> => {\n if (extra.length > 0)\n throw new TypeError(\"maxCost() accepts exactly one maximum\");\n const threshold = typeof maximum === \"number\" ? canonicalDecimalFromNumber(maximum) : maximum;\n if (threshold == null || !/^(?:0|[1-9]\\d*)(?:\\.\\d*[1-9])?$/.test(threshold) || threshold.length > 128)\n throw new TypeError(\"maxCost() requires a nonnegative canonical USD amount\");\n const usage = readUsage();\n const usd = usage.costs.values.find((cost) => cost.currency === \"USD\");\n const complete = usage.costs.state === \"complete\" && usage.costs.values.length === 1;\n const captured = captureAssertionSnapshot({ source: usage.source, scope: usage.scope, cut: usage.cut, unit: \"USD\", threshold, amount: usd?.value ?? null, complete, costs: usage.costs });\n return runtime.registerBoolean({ criterion: { kind: \"value-match\", subject: \"explicit-value\", matcher: { state: \"declared\", name: \"max-cost-usd\" } }, subject: captured.material, coverage: captured.coverage, limitations: captured.limitations,\n evaluate: () => Effect.succeed(usd === undefined ? { state: \"unavailable\" as const, reason: \"source-unavailable\" as const } : compareCanonicalDecimal(usd.value, threshold) > 0 ? { state: \"mismatched\" as const } : complete ? { state: \"matched\" as const, value: usd.value } : { state: \"unavailable\" as const, reason: \"source-unavailable\" as const }) }) as BooleanAssertionHandle<Kind, string>;\n };\n return { maxTokens, maxCost };\n}\n/**\n * Creates the Context that Runner actually hands to `test(t)`. Its only\n * authoring state is the Attempt-local Assert-first runtime.\n */\nexport function createAssertFirstEvalContext(deps: AssertFirstContextDeps): {\n readonly context: AssertFirstTestContext<RuntimeKind>;\n readonly state: AssertFirstContextState;\n} {\n const manager = new SessionManager({\n agent: deps.agent,\n sandbox: deps.sandbox,\n evalId: deps.evalId,\n attempt: deps.attempt,\n evalGroup: deps.evalGroup,\n model: deps.model,\n reasoningEffort: deps.reasoningEffort,\n flags: deps.flags,\n experimentId: deps.experimentId,\n signal: deps.signal,\n requestEffect: deps.requestEffect,\n log: deps.log,\n telemetry: deps.telemetry,\n otel: deps.otel,\n feedback: deps.feedback,\n onSendActive: deps.onSendActive,\n timingNow: deps.timingNow,\n onTurn: deps.onTurn,\n ledgerHooks: deps.ledgerHooks,\n concurrencySlot: deps.concurrencySlot,\n nextSourceOrder: deps.nextSourceOrder,\n sourceRegistry: deps.sourceRegistry,\n resources: deps.resources,\n });\n const readAttemptUsage = () => projectAgentEvalUsage({ contributions: manager.usageContributionsSnapshot(), scope: \"attempt\", pricing: deps.pricing });\n const core = createAssertFirstCoreContext({ ...deps, readUsage: readAttemptUsage });\n const runtime = core.state.assertions;\n const check = core.context.check;\n const judge = core.context.judge;\n const state: AssertFirstContextState = {\n notes: core.state.notes,\n assertions: runtime,\n manager,\n late: { diff: Object.freeze({ state: \"pending\" as const }), scripts: {} },\n };\n const resolveObservedEvaluation: ResolveObservedEvaluation = (snapshot) => manager.observedEvaluationSegment(snapshot);\n interface TurnScopeSnapshot {\n readonly events: readonly StreamEvent[];\n readonly toolCalls: ManagedToolCalls<\"turn\">;\n readonly toolScope: ToolScopeSnapshot;\n readonly status: \"completed\" | \"failed\" | \"waiting\";\n readonly coverage: ScopeCoverage;\n readonly input: string;\n readonly output: string;\n }\n interface SessionScopeState {\n readonly session: RunSession;\n readonly turns: MatcherScopeTurn[];\n started: boolean;\n inFlight: number;\n failed: boolean;\n toolScopeCache?: ToolScopeProjectionCache;\n }\n const sessions: SessionScopeState[] = [];\n let attemptToolScopeCache: ToolScopeProjectionCache | undefined;\n const matcherSource = Object.freeze({\n family: \"niceeval.agent-turns\" as const,\n schemaVersion: 2,\n });\n const attemptScopeId = deps.attempt === undefined\n ? JSON.stringify([\"niceeval.attempt-scope/1\", manager.primary.sessionScopeId])\n : JSON.stringify([\n \"niceeval.attempt-scope/1\",\n deps.experimentId ?? null,\n deps.attempt.id,\n deps.attempt.index,\n ]);\n const collectionAtCut = (turns: readonly MatcherScopeTurn[], coverage: ScopeCoverage[\"actions\" | \"events\"], allowUnclassifiedActions = false): \"complete\" | \"partial\" | \"unavailable\" => {\n if (coverage.status === \"unavailable\")\n return \"unavailable\";\n if (coverage.status === \"partial\" &&\n !(allowUnclassifiedActions && coverage.reason === UNCLASSIFIED_TOOL_ACTIONS_REASON)) {\n return \"partial\";\n }\n return turns.every((turn) => resolveObservedEvaluation(turn.observed)?.collectionAtCut === \"complete\")\n ? \"complete\"\n : \"unavailable\";\n };\n const turnSourceSnapshot = (turn: MatcherScopeTurn, coverage: ScopeCoverage[\"actions\" | \"events\"], allowUnclassifiedActions = false): Extract<MatcherSourceSnapshot, {\n readonly scope: \"turn\";\n }> => Object.freeze({\n scope: \"turn\" as const,\n sessionId: turn.observed.sessionId,\n turnId: turn.observed.turnId,\n scopeId: turn.observed.turnId,\n throughSessionSequence: turn.observed.throughSessionSequence,\n source: matcherSource,\n collectionAtCut: collectionAtCut([turn], coverage, allowUnclassifiedActions),\n });\n const sessionSourceSnapshot = (scope: SessionScopeState, coverage: ScopeCoverage[\"actions\" | \"events\"], allowUnclassifiedActions = false): Extract<MatcherSourceSnapshot, {\n readonly scope: \"session\";\n }> => {\n const observed = scope.session.observedSnapshot();\n return Object.freeze({\n scope: \"session\" as const,\n sessionId: observed.sessionId,\n scopeId: observed.sessionId,\n throughSessionSequence: observed.throughSessionSequence,\n source: matcherSource,\n collectionAtCut: collectionAtCut(observedMatcherTurns(observed.sessionId), coverage, allowUnclassifiedActions),\n });\n };\n const attemptSourceSnapshot = (turns: readonly MatcherScopeTurn[], coverage: ScopeCoverage[\"actions\" | \"events\"], allowUnclassifiedActions = false): Extract<MatcherSourceSnapshot, {\n readonly scope: \"attempt\";\n }> => Object.freeze({\n scope: \"attempt\" as const,\n scopeId: attemptScopeId,\n sessions: manager.observedAttemptCut().sessions,\n source: matcherSource,\n collectionAtCut: collectionAtCut(turns, coverage, allowUnclassifiedActions),\n });\n const coverageWhileInFlight = (coverage: ScopeCoverage): ScopeCoverage => Object.freeze({\n ...coverage,\n actions: Object.freeze({ status: \"partial\" as const, reason: \"scope-still-running\" }),\n status: Object.freeze({ status: \"partial\" as const, reason: \"scope-still-running\" }),\n });\n const sessionCoverage = (scope: SessionScopeState): ScopeCoverage => scope.inFlight === 0\n ? scope.session.evidenceCoverage\n : coverageWhileInFlight(scope.session.evidenceCoverage);\n const sessionStatus = (scope: SessionScopeState): ScopeStatus => {\n if (!scope.started)\n return \"not-started\";\n if (scope.inFlight > 0)\n return \"waiting\";\n return scope.failed ? \"failed\" : scope.session.lastStatus;\n };\n const attemptCoverage = (): ScopeCoverage => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = active.length === 0\n ? manager.evidenceCoverage\n : active.some((scope) => scope.inFlight > 0)\n ? coverageWhileInFlight(manager.evidenceCoverage)\n : manager.evidenceCoverage;\n return coverage;\n };\n const observedMatcherTurns = (sessionId?: string): readonly MatcherScopeTurn[] => Object.freeze(manager.observedSessionSnapshots().filter(session => sessionId === undefined || session.sessionId === sessionId)\n .flatMap(session => session.turns.map(observed => Object.freeze({\n observed,\n events: resolveObservedEvaluation(observed)?.events ?? Object.freeze([]),\n outcome: manager.observedTurnState(observed)?.outcome ?? \"failed\" as const,\n }))));\n const readDefaultHistory = (cut: MatcherSourceSnapshot): MaterialCollection<Readonly<Record<string, unknown>>> => {\n const ends = cut.scope === \"attempt\"\n ? new Map(cut.sessions.map(session => [session.sessionId, session.throughSessionSequence]))\n : new Map([[cut.sessionId, cut.throughSessionSequence]]);\n const prefix = observedMatcherTurns().filter(turn => {\n const end = ends.get(turn.observed.sessionId);\n return end !== undefined && turn.observed.throughSessionSequence <= end;\n });\n const selected = prefix.filter(turn => cut.scope !== \"turn\" || turn.observed.turnId === cut.turnId);\n const projection = projectMatcherSources(prefix, resolveObservedEvaluation);\n let reason: string | undefined = manager.observedHistoryIncompleteReason();\n if (projection.state === \"invalid\")\n reason ??= \"agent-history-invalid-relation\";\n const active = cut.scope === \"attempt\"\n ? sessions.some(scope => scope.inFlight > 0)\n : sessions.some(scope => scope.session.observedSnapshot().sessionId === cut.sessionId && scope.inFlight > 0);\n if (active)\n reason ??= \"scope-still-running\";\n const items: {\n readonly id: string;\n readonly value: Readonly<Record<string, unknown>>;\n }[] = [];\n for (const turn of selected) {\n const segment = resolveObservedEvaluation(turn.observed);\n if (segment === undefined) {\n reason ??= \"agent-history-segment-unavailable\";\n continue;\n }\n if (turn.observed.collectionAtCut !== \"complete\")\n reason ??= \"agent-history-truncated\";\n const coverage = manager.observedTurnState(turn.observed)?.coverage;\n for (const channel of [\"events\", \"messages\", \"actions\"] as const) {\n if (coverage?.[channel].status !== \"complete\")\n reason ??= coverage?.[channel].reason ?? `agent-history-${channel}-unavailable`;\n }\n segment.items.forEach((event, index) => {\n const raw = segment.events[index];\n if (raw === undefined)\n reason ??= \"agent-history-event-unavailable\";\n if ((raw?.truncated?.length ?? 0) > 0)\n reason ??= \"agent-history-truncated\";\n if (event.kind === \"tool-finish\" && event.occurrence.state !== \"exact\")\n reason ??= `agent-history-${event.occurrence.reason}`;\n const occurrenceId = event.kind === \"tool-start\" ? event.toolOccurrenceId\n : event.kind === \"tool-finish\" && event.occurrence.state === \"exact\" ? event.occurrence.toolOccurrenceId : undefined;\n const occurrence = occurrenceId === undefined ? undefined : projection.occurrenceCandidates.get(occurrenceId);\n items.push(Object.freeze({ id: event.eventId, value: Object.freeze({\n eventId: event.eventId, itemId: event.itemId,\n sessionId: segment.sessionId, turnId: segment.turnId, sessionSequence: event.sessionSequence,\n event: raw ?? event, observed: event,\n ...(occurrence === undefined ? {} : { occurrence }),\n ordering: \"first-session appearance, then sessionSequence; no cross-session causal order\",\n }) }));\n });\n }\n return reason === undefined ? Object.freeze({ state: \"complete\" as const, items: Object.freeze(items) })\n : Object.freeze({ state: \"partial\" as const, items: Object.freeze(items), reason });\n };\n const historyFrame = (): AgentHistoryFrame => ({ read: readDefaultHistory });\n const latchHistoryCut = (frame: AgentHistoryFrame, cut: MatcherSourceSnapshot): MatcherSourceSnapshot => {\n frame.cut = cut;\n return cut;\n };\n const releaseHistoryFrame = (frame: AgentHistoryFrame): void => { frame.cut = undefined; frame.read = undefined; };\n const attemptStatus = (): ScopeStatus => {\n const active = sessions.filter((scope) => scope.started);\n if (active.length === 0)\n return \"not-started\";\n const statuses = active.map(sessionStatus);\n if (statuses.includes(\"waiting\"))\n return \"waiting\";\n if (statuses.includes(\"failed\"))\n return \"failed\";\n return \"completed\";\n };\n const sessionSnapshot = (scope: SessionScopeState) => Object.freeze({\n sessionIndex: scope.session.index,\n turnCount: scope.session.turnCount,\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n });\n const attemptSnapshot = () => Object.freeze({\n sessions: Object.freeze(sessions\n .filter((scope) => scope.started)\n .map((scope) => sessionSnapshot(scope))),\n status: attemptStatus(),\n coverage: attemptCoverage(),\n });\n const sessionToolScope = (scope: SessionScopeState): ToolScopeSnapshot => {\n const coverage = sessionCoverage(scope);\n const turns = observedMatcherTurns(scope.session.observedSnapshot().sessionId);\n const sourceSnapshot = sessionSourceSnapshot(scope, coverage.actions, true);\n const snapshot = Object.freeze({\n sessionIndex: scope.session.index,\n turnCount: scope.turns.length,\n status: sessionStatus(scope),\n coverage,\n });\n const cutKey = toolScopeCutKey(sourceSnapshot, snapshot);\n const cached = scope.toolScopeCache;\n if (cached !== undefined && cached.cutKey === cutKey)\n return cached.value;\n const value = projectToolScope({\n turns,\n sourceSnapshot,\n coverage,\n snapshot,\n resolveEvaluation: resolveObservedEvaluation,\n });\n scope.toolScopeCache = Object.freeze({ cutKey, value });\n return value;\n };\n const attemptToolScope = (): ToolScopeSnapshot => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = attemptCoverage();\n const turns = observedMatcherTurns();\n const sourceSnapshot = attemptSourceSnapshot(turns, coverage.actions, true);\n const snapshot = Object.freeze({\n sessions: Object.freeze(active.map((scope) => ({\n sessionIndex: scope.session.index,\n turnCount: scope.turns.length,\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n }))),\n status: attemptStatus(),\n coverage,\n });\n const cutKey = toolScopeCutKey(sourceSnapshot, snapshot);\n const cached = attemptToolScopeCache;\n if (cached !== undefined && cached.cutKey === cutKey)\n return cached.value;\n const value = projectToolScope({\n turns,\n sourceSnapshot,\n coverage,\n snapshot,\n resolveEvaluation: resolveObservedEvaluation,\n });\n attemptToolScopeCache = Object.freeze({ cutKey, value });\n return value;\n };\n const sessionScopedEvents = (scope: SessionScopeState): readonly StreamEvent[] => Object.freeze(observedMatcherTurns(scope.session.observedSnapshot().sessionId).flatMap((turn) => turn.events));\n const sessionEventScope = (scope: SessionScopeState): EventScopeSnapshot => {\n const coverage = sessionCoverage(scope);\n return projectEventScope({\n turns: observedMatcherTurns(scope.session.observedSnapshot().sessionId),\n sourceSnapshot: sessionSourceSnapshot(scope, coverage.events),\n coverage,\n snapshot: sessionSnapshot(scope),\n resolveEvaluation: resolveObservedEvaluation,\n });\n };\n const attemptScopedEvents = (): readonly StreamEvent[] => Object.freeze(sessions\n .filter((scope) => scope.started)\n .flatMap((scope) => observedMatcherTurns(scope.session.observedSnapshot().sessionId).flatMap((turn) => turn.events)));\n const attemptEventScope = (): EventScopeSnapshot => {\n const active = sessions.filter((scope) => scope.started);\n const coverage = attemptCoverage();\n const turns = observedMatcherTurns();\n return projectEventScope({\n turns,\n sourceSnapshot: attemptSourceSnapshot(turns, coverage.events),\n coverage,\n snapshot: attemptSnapshot(),\n resolveEvaluation: resolveObservedEvaluation,\n });\n };\n const makeTurn = <Kind extends RuntimeKind>(scope: SessionScopeState, turn: Turn, input: string): AssertFirstTurnHandle<Kind> => {\n const events = Object.freeze([...turn.events]);\n const scopedEvents = Object.freeze([\n Object.freeze({ type: \"message\" as const, role: \"user\" as const, text: input }),\n ...events,\n ]);\n const coverage = manager.resolveTurnEvidenceCoverage(turn);\n const observed = observedSnapshotForTurn(turn);\n if (observed === undefined) {\n throw new Error(\"SessionManager returned a Turn without its sealed observed source snapshot\");\n }\n const matcherTurn: MatcherScopeTurn = Object.freeze({\n observed,\n events: scopedEvents,\n outcome: turn.status,\n });\n scope.turns.push(matcherTurn);\n const scopeSnapshot = Object.freeze({\n sessionId: observed.sessionId,\n turnId: observed.turnId,\n throughSessionSequence: observed.throughSessionSequence,\n events: scopedEvents.length,\n });\n const toolScope = projectToolScope({\n turns: Object.freeze([matcherTurn]),\n sourceSnapshot: turnSourceSnapshot(matcherTurn, coverage.actions, true),\n homeTurnId: observed.turnId,\n coverage,\n snapshot: scopeSnapshot,\n resolveEvaluation: resolveObservedEvaluation,\n });\n const eventScope = projectEventScope({\n turns: Object.freeze([matcherTurn]),\n sourceSnapshot: turnSourceSnapshot(matcherTurn, coverage.events),\n coverage,\n snapshot: scopeSnapshot,\n resolveEvaluation: resolveObservedEvaluation,\n });\n const toolCalls = managedToolCalls(\"turn\", toolScope, check) as ManagedToolCalls<\"turn\">;\n const eventOccurrences = managedEventOccurrences(\"turn\", eventScope, check) as ManagedEventOccurrences<\"turn\">;\n const readTurnUsage = () => { runtime.assertAuthoringOpen(); return projectAgentEvalUsage({ contributions: manager.usageContributionsSnapshot().filter((call) => call.turnId === observed.turnId), scope: \"turn\", pricing: deps.pricing }); };\n const frame = historyFrame();\n const scopedCheck = createScopedAssertionCheck<Kind, AgentMatchContext<\"turn\">>(check, () => Object.freeze({ scope: \"turn\" as const, toolCalls, eventOccurrences, get usage() { return readTurnUsage(); } }), () => latchHistoryCut(frame, turnSourceSnapshot(matcherTurn, coverage.actions, true)), () => releaseHistoryFrame(frame));\n const snapshot: TurnScopeSnapshot = Object.freeze({\n events,\n toolCalls,\n toolScope,\n status: turn.status,\n coverage,\n input,\n output: lastAssistantText(events) ?? \"\",\n });\n const calledTool = (target: ToolMatch | ToolOccurrenceMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly one match or name\");\n return calledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: snapshot.toolCalls,\n target,\n });\n };\n const notCalledTool = (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: snapshot.toolCalls,\n target,\n });\n };\n const toolOrder = (matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"toolOrder() accepts exactly one ordered match list\");\n return toolOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: snapshot.toolCalls,\n matches,\n });\n };\n const usedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({ runtime: runtime as AssertionsRuntime<Kind>, subject: snapshot.toolCalls });\n };\n const maxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({ runtime: runtime as AssertionsRuntime<Kind>, subject: snapshot.toolCalls, max });\n };\n const noFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n return noFailedActionsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n events: matcherTurn.events,\n coverage,\n snapshot: scopeSnapshot,\n });\n };\n const event = (match: EventMatch | EventOccurrenceMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly one match\");\n return eventHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: eventOccurrences,\n match,\n });\n };\n const notEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventOccurrenceHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: eventOccurrences,\n match,\n });\n };\n const eventOrder = (matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"eventOrder() accepts exactly one ordered match list\");\n return registerCollectionCheck(runtime as AssertionsRuntime<Kind>, eventOccurrences, inOrder(matches));\n };\n const { maxTokens, maxCost } = usageBudgetMethods(runtime as AssertionsRuntime<Kind>, readTurnUsage);\n return Object.freeze({\n input: snapshot.input,\n events: snapshot.events,\n toolCalls: snapshot.toolCalls,\n eventOccurrences,\n status: snapshot.status,\n reply: snapshot.output,\n ...(turn.data === undefined ? {} : { data: turn.data }),\n get usage() { return readTurnUsage(); },\n get elapsedMs() { return core.context.elapsedMs; },\n check: scopedCheck,\n judge: judge as JudgeFunction<Kind>,\n ...agentJudgePresetMethods<Kind, \"turn\">(scopedCheck, frame),\n succeeded: () => succeededHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"turn\",\n status: snapshot.status,\n coverage: snapshot.coverage,\n snapshot: scopeSnapshot,\n }),\n calledTool,\n notCalledTool,\n toolOrder,\n usedNoTools,\n maxToolCalls,\n noFailedActions,\n event,\n notEvent,\n eventOrder,\n maxTokens,\n maxCost,\n });\n };\n const sendEffect = <Kind extends RuntimeKind>(scope: SessionScopeState, text: string, files?: readonly InputFile[], responses?: readonly InputResponse[], loc?: ReturnType<typeof captureLoc>): Effect.Effect<AssertFirstTurnHandle<Kind>, unknown> => {\n const capturedLoc = loc ?? captureLoc({ registry: deps.sourceRegistry });\n return Effect.suspend(() => {\n scope.started = true;\n scope.inFlight += 1;\n return manager.sendEffect(scope.session, text, files, responses, capturedLoc).pipe(Effect.map((turn) => makeTurn<Kind>(scope, turn, text)), Effect.tapError(() => Effect.sync(() => {\n scope.failed = true;\n })), Effect.ensuring(Effect.sync(() => {\n scope.inFlight -= 1;\n })));\n });\n };\n const send = <Kind extends RuntimeKind>(scope: SessionScopeState, text: string, files?: readonly InputFile[], responses?: readonly InputResponse[]): Promise<AssertFirstTurnHandle<Kind>> => deps.requestEffect(sendEffect<Kind>(scope, text, files, responses, captureLoc({ registry: deps.sourceRegistry })));\n const makeSession = <Kind extends RuntimeKind>(scope: SessionScopeState): AssertFirstSessionHandle<Kind> => {\n const session = scope.session;\n const sessionCalls = (): ManagedToolCalls<\"session\"> => managedToolCalls(\"session\", sessionToolScope(scope), check) as ManagedToolCalls<\"session\">;\n const sessionEventOccurrences = (): ManagedEventOccurrences<\"session\"> => managedEventOccurrences(\"session\", sessionEventScope(scope), check) as ManagedEventOccurrences<\"session\">;\n const readSessionUsage = () => { runtime.assertAuthoringOpen(); return projectAgentEvalUsage({ contributions: manager.usageContributionsSnapshot().filter((call) => call.sessionScopeId === session.sessionScopeId), scope: \"session\", pricing: deps.pricing }); };\n const frame = historyFrame();\n const scopedCheck = createScopedAssertionCheck<Kind, AgentMatchContext<\"session\">>(check, () => Object.freeze({ scope: \"session\" as const, get toolCalls() { return sessionCalls(); }, get eventOccurrences() { return sessionEventOccurrences(); }, get usage() { return readSessionUsage(); } }), () => latchHistoryCut(frame, sessionSourceSnapshot(scope, sessionCoverage(scope).actions, true)), () => releaseHistoryFrame(frame));\n const toolOrder = (matches: readonly [\n ToolMatch,\n ToolMatch,\n ...ToolMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"toolOrder() accepts exactly one ordered match list\");\n return toolOrderHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n matches,\n });\n };\n const usedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n });\n };\n const maxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n max,\n });\n };\n const noFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n const coverage = sessionCoverage(scope);\n return noFailedActionsHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n events: sessionScopedEvents(scope),\n coverage,\n snapshot: sessionSnapshot(scope),\n });\n };\n const event = (match: EventMatch | EventOccurrenceMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly one match\");\n return eventHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionEventOccurrences(),\n match,\n });\n };\n const notEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventOccurrenceHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionEventOccurrences(),\n match,\n });\n };\n const eventOrder = (matches: readonly [\n EventMatch,\n EventMatch,\n ...EventMatch[]\n ], ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"eventOrder() accepts exactly one ordered match list\");\n return registerCollectionCheck(runtime as AssertionsRuntime<Kind>, sessionEventOccurrences(), inOrder(matches));\n };\n const { maxTokens, maxCost } = usageBudgetMethods(runtime as AssertionsRuntime<Kind>, readSessionUsage);\n return Object.freeze({\n send: (input: string | {\n readonly text: string;\n readonly files?: readonly InputFile[];\n }) => {\n const text = typeof input === \"string\" ? input : input.text;\n const files = typeof input === \"string\" ? undefined : input.files;\n return send<Kind>(scope, text, files);\n },\n sendFile: (path: string, text?: string) => {\n const loc = captureLoc({ registry: deps.sourceRegistry });\n return deps.requestEffect(readInputFileEffect(path).pipe(Effect.flatMap((file) => sendEffect<Kind>(scope, text ?? \"\", [file], undefined, loc))));\n },\n requireInputRequest: (filter?: InputRequestFilter) => requireInputRequest(session, filter),\n async respond(...responses: readonly (string | AssertFirstRespondAnswer)[]) {\n if (responses.length === 0)\n throw new Error(\"respond() requires at least one answer\");\n const built = buildRespondInput(session, responses);\n session.pendingInputRequests.length = 0;\n return send<Kind>(scope, built.text, undefined, built.responses);\n },\n async respondAll(optionId: string) {\n if (session.pendingInputRequests.length === 0) {\n throw new Error(\"There is no pending input request to answer\");\n }\n const requests = session.pendingInputRequests.slice();\n for (const request of requests)\n validateOptionId(request, optionId);\n session.pendingInputRequests.length = 0;\n return send<Kind>(scope, requests.map(() => optionId).join(\"\\n\"), undefined, requests.map((request) => ({ requestId: requireRequestId(request), optionId })));\n },\n get reply() {\n return session.lastMessage;\n },\n get sessionId() {\n return session.id;\n },\n get events() {\n return Object.freeze([...session.events]);\n },\n get usage() {\n return readSessionUsage();\n },\n get toolCalls() {\n return sessionCalls();\n },\n get eventOccurrences() {\n return sessionEventOccurrences();\n },\n get elapsedMs() { return core.context.elapsedMs; },\n check: scopedCheck,\n judge: judge as JudgeFunction<Kind>,\n ...agentJudgePresetMethods<Kind, \"session\">(scopedCheck, frame),\n succeeded: () => succeededHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n scope: \"session\",\n status: sessionStatus(scope),\n coverage: sessionCoverage(scope),\n snapshot: sessionSnapshot(scope),\n }),\n calledTool: (target: ToolMatch | ToolOccurrenceMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly one match or name\");\n return calledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n target,\n });\n },\n notCalledTool: (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime: runtime as AssertionsRuntime<Kind>,\n subject: sessionCalls(),\n target,\n });\n },\n toolOrder,\n usedNoTools,\n maxToolCalls,\n noFailedActions,\n event,\n notEvent,\n eventOrder,\n maxTokens,\n maxCost,\n });\n };\n const primaryScope: SessionScopeState = {\n session: manager.primary,\n turns: [],\n started: false,\n inFlight: 0,\n failed: false,\n };\n sessions.push(primaryScope);\n const primary = makeSession<RuntimeKind>(primaryScope);\n const attemptCalls = (): ManagedToolCalls<\"attempt\"> => managedToolCalls(\"attempt\", attemptToolScope(), check) as ManagedToolCalls<\"attempt\">;\n const attemptEventOccurrences = (): ManagedEventOccurrences<\"attempt\"> => managedEventOccurrences(\"attempt\", attemptEventScope(), check) as ManagedEventOccurrences<\"attempt\">;\n const rootUsedNoTools = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"usedNoTools() accepts no arguments\");\n return usedNoToolsHandle({ runtime, subject: attemptCalls() });\n };\n const rootMaxToolCalls = (max: number, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"maxToolCalls() accepts exactly one maximum\");\n return maxToolCallsHandle({ runtime, subject: attemptCalls(), max });\n };\n const rootNoFailedActions = (...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"noFailedActions() accepts no arguments\");\n const coverage = attemptCoverage();\n return noFailedActionsHandle({\n runtime,\n scope: \"attempt\",\n events: attemptScopedEvents(),\n coverage,\n snapshot: attemptSnapshot(),\n });\n };\n const rootEvent = (match: EventMatch | EventOccurrenceMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"event() accepts exactly one match\");\n return eventHandle({\n runtime,\n subject: attemptEventOccurrences(),\n match,\n });\n };\n const rootNotEvent = (match: EventMatch, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notEvent() accepts exactly one match\");\n return notEventOccurrenceHandle({\n runtime,\n subject: attemptEventOccurrences(),\n match,\n });\n };\n const rootFrame = historyFrame();\n bindAssertionContext(check, () => Object.freeze({ scope: \"attempt\" as const, get toolCalls() { return attemptCalls(); }, get eventOccurrences() { return attemptEventOccurrences(); }, get usage() { return readAttemptUsage(); } }), () => latchHistoryCut(rootFrame, attemptSourceSnapshot(observedMatcherTurns(), attemptCoverage().actions, true)), () => releaseHistoryFrame(rootFrame));\n const { maxTokens: rootMaxTokens, maxCost: rootMaxCost } = usageBudgetMethods(runtime, readAttemptUsage);\n const base = {\n ...Object.fromEntries(Object.entries(Object.getOwnPropertyDescriptors(core.context)).filter(([, descriptor]) => \"value\" in descriptor).map(([key, descriptor]) => [key, descriptor.value])),\n ...agentJudgePresetMethods<RuntimeKind, \"attempt\">(check as import(\"../assertions/api.ts\").AssertionCheck<RuntimeKind, AgentMatchContext<\"attempt\">>, rootFrame),\n get elapsedMs() { return core.context.elapsedMs; },\n send: primary.send,\n sendFile: primary.sendFile,\n requireInputRequest: primary.requireInputRequest,\n respond: primary.respond,\n respondAll: primary.respondAll,\n get reply() {\n return primary.reply;\n },\n get sessionId() {\n return primary.sessionId;\n },\n get events() {\n return primary.events;\n },\n get eventOccurrences() {\n return attemptEventOccurrences();\n },\n newSession: () => {\n const scope: SessionScopeState = {\n session: manager.newSession(),\n turns: [],\n started: false,\n inFlight: 0,\n failed: false,\n };\n sessions.push(scope);\n return makeSession<RuntimeKind>(scope);\n },\n sandbox: createAssertFirstSandbox({\n agent: deps.agent,\n sandbox: deps.sandbox,\n runtime,\n late: state.late,\n }),\n get observability() {\n return buildO11ySummary(manager.allEvents);\n },\n get usage() {\n runtime.assertAuthoringOpen();\n return readAttemptUsage();\n },\n get toolCalls() {\n return attemptCalls();\n },\n succeeded: () => succeededHandle({\n runtime,\n scope: \"attempt\",\n status: attemptStatus(),\n coverage: attemptCoverage(),\n snapshot: attemptSnapshot(),\n }),\n calledTool: (target: ToolMatch | ToolOccurrenceMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"calledTool() accepts exactly one match or name\");\n return calledToolHandle({\n runtime,\n subject: attemptCalls(),\n target,\n });\n },\n notCalledTool: (target: ToolMatch | string, ...extra: readonly unknown[]) => {\n if (extra.length > 0)\n throw new TypeError(\"notCalledTool() accepts exactly one match or name\");\n return notCalledToolHandle({\n runtime,\n subject: attemptCalls(),\n target,\n });\n },\n usedNoTools: rootUsedNoTools,\n maxToolCalls: rootMaxToolCalls,\n noFailedActions: rootNoFailedActions,\n event: rootEvent,\n notEvent: rootNotEvent,\n maxTokens: rootMaxTokens,\n maxCost: rootMaxCost,\n };\n if (deps.evaluationKind === \"score\")\n Object.defineProperty(base, \"score\", { value: (runtime as AssertionsRuntime<\"score\">).t.score, enumerable: true });\n const context = Object.freeze(base);\n return {\n context: context as AssertFirstTestContext<RuntimeKind>,\n state,\n };\n}\n"]}
|