niceeval 0.15.0 → 0.15.1-canary.69
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 +2 -2
- package/dist/adapter-attachments.cjs +3 -0
- package/dist/adapter-attachments.cjs.map +1 -0
- package/dist/adapter-attachments.d.cts +14 -0
- package/dist/adapter-attachments.d.mts +14 -0
- package/dist/adapter-attachments.d.ts +14 -0
- package/dist/adapter-attachments.js +4 -0
- package/dist/adapter-attachments.js.map +1 -0
- package/dist/adapter-execution-trace.cjs +3 -0
- package/dist/adapter-execution-trace.cjs.map +1 -0
- package/dist/adapter-execution-trace.d.cts +87 -0
- package/dist/adapter-execution-trace.d.mts +87 -0
- package/dist/adapter-execution-trace.d.ts +87 -0
- package/dist/adapter-execution-trace.js +4 -0
- package/dist/adapter-execution-trace.js.map +1 -0
- package/dist/adapter-flags.cjs +27 -0
- package/dist/adapter-flags.cjs.map +1 -0
- package/dist/adapter-flags.d.cts +19 -0
- package/dist/adapter-flags.d.mts +19 -0
- package/dist/adapter-flags.d.ts +19 -0
- package/dist/adapter-flags.js +8 -0
- package/dist/adapter-flags.js.map +1 -0
- package/dist/adapter-usage.cjs +3 -0
- package/dist/adapter-usage.cjs.map +1 -0
- package/dist/adapter-usage.d.cts +30 -0
- package/dist/adapter-usage.d.mts +30 -0
- package/dist/adapter-usage.d.ts +30 -0
- package/dist/adapter-usage.js +4 -0
- package/dist/adapter-usage.js.map +1 -0
- package/dist/adapter.cjs +14 -4
- package/dist/adapter.cjs.map +1 -1
- package/dist/adapter.d.cts +45 -34
- package/dist/adapter.d.mts +45 -34
- package/dist/adapter.d.ts +45 -34
- package/dist/agents/ai-sdk.cjs.map +1 -1
- package/dist/agents/ai-sdk.d.cts +2 -1
- package/dist/agents/ai-sdk.d.mts +2 -1
- package/dist/agents/ai-sdk.d.ts +2 -1
- package/dist/agents/index.cjs.map +1 -1
- package/dist/agents/index.d.cts +1 -0
- package/dist/agents/index.d.mts +1 -0
- package/dist/agents/index.d.ts +1 -0
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +2 -1
- package/dist/agents/types.d.mts +2 -1
- package/dist/agents/types.d.ts +2 -1
- package/dist/assertions/api.cjs.map +1 -1
- package/dist/assertions/api.d.cts +5 -0
- package/dist/assertions/api.d.mts +5 -0
- package/dist/assertions/api.d.ts +5 -0
- package/dist/assertions/judge.cjs +49 -4
- package/dist/assertions/judge.cjs.map +1 -1
- package/dist/assertions/judge.d.cts +20 -0
- package/dist/assertions/judge.d.mts +20 -0
- package/dist/assertions/judge.d.ts +20 -0
- package/dist/assertions/judge.js +14 -10
- package/dist/assertions/match.cjs.map +1 -1
- package/dist/assertions/match.d.cts +5 -4
- package/dist/assertions/match.d.mts +5 -4
- package/dist/assertions/match.d.ts +5 -4
- package/dist/assertions/record/attachment.cjs +6 -0
- package/dist/assertions/record/attachment.cjs.map +1 -1
- package/dist/assertions/runtime.cjs +17 -3
- package/dist/assertions/runtime.cjs.map +1 -1
- package/dist/assertions/score-match-audit.cjs +334 -8
- package/dist/assertions/score-match-audit.cjs.map +1 -1
- package/dist/assertions/score-match-audit.d.cts +70 -2
- package/dist/assertions/score-match-audit.d.mts +70 -2
- package/dist/assertions/score-match-audit.d.ts +70 -2
- package/dist/assertions/score-match-gateway.cjs +238 -43
- package/dist/assertions/score-match-gateway.cjs.map +1 -1
- package/dist/assertions/types.cjs.map +1 -1
- package/dist/assertions/types.d.cts +3 -24
- package/dist/assertions/types.d.mts +3 -24
- package/dist/assertions/types.d.ts +3 -24
- package/dist/cli/bootstrap.cjs +2 -1
- package/dist/cli/bootstrap.cjs.map +1 -1
- package/dist/cli/program.cjs +9 -9
- package/dist/cli/program.cjs.map +1 -1
- package/dist/context/assert-first.cjs.map +1 -1
- package/dist/context/assert-first.d.cts +5 -9
- package/dist/context/assert-first.d.mts +5 -9
- package/dist/context/assert-first.d.ts +5 -9
- package/dist/context/session.cjs.map +1 -1
- package/dist/context/session.d.cts +3 -2
- package/dist/context/session.d.mts +3 -2
- package/dist/context/session.d.ts +3 -2
- package/dist/define.cjs +32 -5
- package/dist/define.cjs.map +1 -1
- package/dist/define.d.cts +2 -1
- package/dist/define.d.mts +2 -1
- package/dist/define.d.ts +2 -1
- package/dist/error-assistance/diagnostic.cjs +126 -0
- package/dist/error-assistance/diagnostic.cjs.map +1 -0
- package/dist/error-assistance/diagnostic.d.cts +11 -0
- package/dist/error-assistance/diagnostic.d.mts +11 -0
- package/dist/error-assistance/diagnostic.d.ts +11 -0
- package/dist/error-assistance/diagnostic.js +22 -0
- package/dist/error-assistance/diagnostic.js.map +1 -0
- package/dist/error-assistance/index.cjs +32 -0
- package/dist/error-assistance/index.cjs.map +1 -0
- package/dist/error-assistance/index.d.cts +6 -0
- package/dist/error-assistance/index.d.mts +6 -0
- package/dist/error-assistance/index.d.ts +6 -0
- package/dist/error-assistance/index.js +50 -0
- package/dist/error-assistance/index.js.map +1 -0
- package/dist/error-assistance/migration.cjs +194 -0
- package/dist/error-assistance/migration.cjs.map +1 -0
- package/dist/error-assistance/migration.d.cts +25 -0
- package/dist/error-assistance/migration.d.mts +25 -0
- package/dist/error-assistance/migration.d.ts +25 -0
- package/dist/error-assistance/migration.js +16 -0
- package/dist/error-assistance/migration.js.map +1 -0
- package/dist/error-assistance/render.cjs +81 -0
- package/dist/error-assistance/render.cjs.map +1 -0
- package/dist/error-assistance/render.d.cts +7 -0
- package/dist/error-assistance/render.d.mts +7 -0
- package/dist/error-assistance/render.d.ts +7 -0
- package/dist/error-assistance/render.js +12 -0
- package/dist/error-assistance/render.js.map +1 -0
- package/dist/error-assistance/source.cjs +27 -0
- package/dist/error-assistance/source.cjs.map +1 -0
- package/dist/error-assistance/source.d.cts +9 -0
- package/dist/error-assistance/source.d.mts +9 -0
- package/dist/error-assistance/source.d.ts +9 -0
- package/dist/error-assistance/source.js +6 -0
- package/dist/error-assistance/source.js.map +1 -0
- package/dist/error-assistance/types.cjs +3 -0
- package/dist/error-assistance/types.cjs.map +1 -0
- package/dist/error-assistance/types.d.cts +62 -0
- package/dist/error-assistance/types.d.mts +62 -0
- package/dist/error-assistance/types.d.ts +62 -0
- package/dist/error-assistance/types.js +4 -0
- package/dist/error-assistance/types.js.map +1 -0
- package/dist/error-assistance/unknown.cjs +67 -0
- package/dist/error-assistance/unknown.cjs.map +1 -0
- package/dist/error-assistance/unknown.d.cts +8 -0
- package/dist/error-assistance/unknown.d.mts +8 -0
- package/dist/error-assistance/unknown.d.ts +8 -0
- package/dist/error-assistance/unknown.js +10 -0
- package/dist/error-assistance/unknown.js.map +1 -0
- package/dist/experiment/flags.cjs +31 -0
- package/dist/experiment/flags.cjs.map +1 -0
- package/dist/experiment/flags.d.cts +3 -0
- package/dist/experiment/flags.d.mts +3 -0
- package/dist/experiment/flags.d.ts +3 -0
- package/dist/experiment/flags.js +6 -0
- package/dist/experiment/flags.js.map +1 -0
- package/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +7 -2
- package/dist/index.d.mts +7 -2
- package/dist/index.d.ts +7 -2
- package/dist/index.js +40 -38
- package/dist/index.mjs +40 -38
- package/dist/inspection/artifact-list.cjs +67 -0
- package/dist/inspection/artifact-list.cjs.map +1 -0
- package/dist/inspection/artifact-list.d.cts +38 -0
- package/dist/inspection/artifact-list.d.mts +38 -0
- package/dist/inspection/artifact-list.d.ts +38 -0
- package/dist/inspection/artifact-list.js +12 -0
- package/dist/inspection/artifact-list.js.map +1 -0
- package/dist/inspection/artifacts.cjs +239 -0
- package/dist/inspection/artifacts.cjs.map +1 -0
- package/dist/inspection/artifacts.d.cts +50 -0
- package/dist/inspection/artifacts.d.mts +50 -0
- package/dist/inspection/artifacts.d.ts +50 -0
- package/dist/inspection/artifacts.js +18 -0
- package/dist/inspection/artifacts.js.map +1 -0
- package/dist/inspection/assertion-projection.cjs +70 -2
- package/dist/inspection/assertion-projection.cjs.map +1 -1
- package/dist/inspection/assertion-projection.d.cts +20 -4
- package/dist/inspection/assertion-projection.d.mts +20 -4
- package/dist/inspection/assertion-projection.d.ts +20 -4
- package/dist/inspection/assertions.cjs +64 -7
- package/dist/inspection/assertions.cjs.map +1 -1
- package/dist/inspection/assertions.d.cts +1 -0
- package/dist/inspection/assertions.d.mts +1 -0
- package/dist/inspection/assertions.d.ts +1 -0
- package/dist/inspection/assertions.js +4 -2
- package/dist/inspection/bytes.cjs +17 -100
- package/dist/inspection/bytes.cjs.map +1 -1
- package/dist/inspection/bytes.d.cts +4 -6
- package/dist/inspection/bytes.d.mts +4 -6
- package/dist/inspection/bytes.d.ts +4 -6
- package/dist/inspection/bytes.js +10 -6
- package/dist/inspection/canonical.cjs +2 -7
- package/dist/inspection/canonical.cjs.map +1 -1
- package/dist/inspection/cli/contribution.cjs +14 -0
- package/dist/inspection/cli/contribution.cjs.map +1 -1
- package/dist/inspection/codec.cjs +11 -5
- package/dist/inspection/codec.cjs.map +1 -1
- package/dist/inspection/codec.d.cts +3 -2
- package/dist/inspection/codec.d.mts +3 -2
- package/dist/inspection/codec.d.ts +3 -2
- package/dist/inspection/codec.js +16 -12
- package/dist/inspection/execution-traces.cjs +638 -0
- package/dist/inspection/execution-traces.cjs.map +1 -0
- package/dist/inspection/execution-traces.d.cts +122 -0
- package/dist/inspection/execution-traces.d.mts +122 -0
- package/dist/inspection/execution-traces.d.ts +122 -0
- package/dist/inspection/execution-traces.js +18 -0
- package/dist/inspection/execution-traces.js.map +1 -0
- package/dist/inspection/facts.cjs +1 -6
- package/dist/inspection/facts.cjs.map +1 -1
- package/dist/inspection/index.cjs.map +1 -1
- package/dist/inspection/index.d.cts +1 -1
- package/dist/inspection/index.d.mts +1 -1
- package/dist/inspection/index.d.ts +1 -1
- package/dist/inspection/overview.cjs +57 -35
- package/dist/inspection/overview.cjs.map +1 -1
- package/dist/inspection/overview.d.cts +1 -1
- package/dist/inspection/overview.d.mts +1 -1
- package/dist/inspection/overview.d.ts +1 -1
- package/dist/inspection/protocol-values.cjs +3 -1
- package/dist/inspection/protocol-values.cjs.map +1 -1
- package/dist/inspection/protocol-values.d.cts +2 -0
- package/dist/inspection/protocol-values.d.mts +2 -0
- package/dist/inspection/protocol-values.d.ts +2 -0
- package/dist/inspection/protocol-values.js +4 -2
- package/dist/inspection/protocol.cjs +37 -9
- package/dist/inspection/protocol.cjs.map +1 -1
- package/dist/inspection/protocol.d.cts +3408 -416
- package/dist/inspection/protocol.d.mts +3408 -416
- package/dist/inspection/protocol.d.ts +3408 -416
- package/dist/inspection/public.cjs +2 -1
- package/dist/inspection/public.cjs.map +1 -1
- package/dist/inspection/public.d.cts +2 -2
- package/dist/inspection/public.d.mts +2 -2
- package/dist/inspection/public.d.ts +2 -2
- package/dist/inspection/public.js +40 -38
- package/dist/inspection/public.mjs +1842 -542
- package/dist/inspection/query.cjs.map +1 -1
- package/dist/inspection/query.d.cts +1 -1
- package/dist/inspection/query.d.mts +1 -1
- package/dist/inspection/query.d.ts +1 -1
- package/dist/inspection/results.cjs +121 -8
- package/dist/inspection/results.cjs.map +1 -1
- package/dist/inspection/results.d.cts +329 -16
- package/dist/inspection/results.d.mts +329 -16
- package/dist/inspection/results.d.ts +329 -16
- package/dist/inspection/select.cjs +114 -19
- package/dist/inspection/select.cjs.map +1 -1
- package/dist/inspection/select.d.cts +1 -1
- package/dist/inspection/select.d.mts +1 -1
- package/dist/inspection/select.d.ts +1 -1
- package/dist/inspection/sources.cjs +1 -3
- package/dist/inspection/sources.cjs.map +1 -1
- package/dist/inspection/trace.cjs +408 -23
- package/dist/inspection/trace.cjs.map +1 -1
- package/dist/inspection/trace.d.cts +11 -1
- package/dist/inspection/trace.d.mts +11 -1
- package/dist/inspection/trace.d.ts +11 -1
- package/dist/inspection/trace.js +14 -12
- package/dist/judge/image.cjs +81 -0
- package/dist/judge/image.cjs.map +1 -0
- package/dist/judge/image.d.cts +26 -0
- package/dist/judge/image.d.mts +26 -0
- package/dist/judge/image.d.ts +26 -0
- package/dist/judge/image.js +10 -0
- package/dist/judge/image.js.map +1 -0
- package/dist/judge/index.cjs +11 -0
- package/dist/judge/index.cjs.map +1 -0
- package/dist/judge/index.d.cts +2 -0
- package/dist/judge/index.d.mts +2 -0
- package/dist/judge/index.d.ts +2 -0
- package/dist/judge/index.js +14 -0
- package/dist/judge/index.js.map +1 -0
- package/dist/judge/index.mjs +14 -0
- package/dist/judge/index.mjs.map +1 -0
- package/dist/judge/provider.cjs +152 -0
- package/dist/judge/provider.cjs.map +1 -0
- package/dist/judge/provider.d.cts +56 -0
- package/dist/judge/provider.d.mts +56 -0
- package/dist/judge/provider.d.ts +56 -0
- package/dist/judge/provider.js +18 -0
- package/dist/judge/provider.js.map +1 -0
- package/dist/migrations/judge-provider.md +136 -0
- package/dist/o11y/adapter-call-price.cjs +138 -0
- package/dist/o11y/adapter-call-price.cjs.map +1 -0
- package/dist/o11y/adapter-call-price.d.cts +3 -0
- package/dist/o11y/adapter-call-price.d.mts +3 -0
- package/dist/o11y/adapter-call-price.d.ts +3 -0
- package/dist/o11y/adapter-call-price.js +6 -0
- package/dist/o11y/adapter-call-price.js.map +1 -0
- package/dist/record/authoring.cjs +4 -0
- package/dist/record/authoring.cjs.map +1 -1
- package/dist/record/authoring.d.cts +3 -0
- package/dist/record/authoring.d.mts +3 -0
- package/dist/record/authoring.d.ts +3 -0
- package/dist/record/definition/digest.cjs +107 -0
- package/dist/record/definition/digest.cjs.map +1 -0
- package/dist/record/definition/digest.d.cts +6 -0
- package/dist/record/definition/digest.d.mts +6 -0
- package/dist/record/definition/digest.d.ts +6 -0
- package/dist/record/definition/digest.js +6 -0
- package/dist/record/definition/digest.js.map +1 -0
- package/dist/record/family/adapter-usage/definition.cjs +12 -0
- package/dist/record/family/adapter-usage/definition.cjs.map +1 -0
- package/dist/record/family/adapter-usage/definition.d.cts +79 -0
- package/dist/record/family/adapter-usage/definition.d.mts +79 -0
- package/dist/record/family/adapter-usage/definition.d.ts +79 -0
- package/dist/record/family/adapter-usage/definition.js +6 -0
- package/dist/record/family/adapter-usage/definition.js.map +1 -0
- package/dist/record/family/adapter-usage/persistence.cjs +10 -0
- package/dist/record/family/adapter-usage/persistence.cjs.map +1 -0
- package/dist/record/family/adapter-usage/persistence.d.cts +79 -0
- package/dist/record/family/adapter-usage/persistence.d.mts +79 -0
- package/dist/record/family/adapter-usage/persistence.d.ts +79 -0
- package/dist/record/family/adapter-usage/persistence.js +6 -0
- package/dist/record/family/adapter-usage/persistence.js.map +1 -0
- package/dist/record/family/adapter-usage/pricing.cjs +68 -0
- package/dist/record/family/adapter-usage/pricing.cjs.map +1 -0
- package/dist/record/family/adapter-usage/pricing.d.cts +8 -0
- package/dist/record/family/adapter-usage/pricing.d.mts +8 -0
- package/dist/record/family/adapter-usage/pricing.d.ts +8 -0
- package/dist/record/family/adapter-usage/pricing.js +14 -0
- package/dist/record/family/adapter-usage/pricing.js.map +1 -0
- package/dist/record/family/adapter-usage/schema.cjs +209 -0
- package/dist/record/family/adapter-usage/schema.cjs.map +1 -0
- package/dist/record/family/adapter-usage/schema.d.cts +190 -0
- package/dist/record/family/adapter-usage/schema.d.mts +190 -0
- package/dist/record/family/adapter-usage/schema.d.ts +190 -0
- package/dist/record/family/adapter-usage/schema.js +20 -0
- package/dist/record/family/adapter-usage/schema.js.map +1 -0
- package/dist/record/family/catalog.cjs +29 -21
- package/dist/record/family/catalog.cjs.map +1 -1
- package/dist/record/family/catalog.d.cts +82 -4
- package/dist/record/family/catalog.d.mts +82 -4
- package/dist/record/family/catalog.d.ts +82 -4
- package/dist/record/family/current.cjs +39 -33
- package/dist/record/family/current.cjs.map +1 -1
- package/dist/record/family/current.d.cts +306 -0
- package/dist/record/family/current.d.mts +306 -0
- package/dist/record/family/current.d.ts +306 -0
- package/dist/record/family/execution-traces/definition.cjs +26 -0
- package/dist/record/family/execution-traces/definition.cjs.map +1 -0
- package/dist/record/family/execution-traces/definition.d.cts +73 -0
- package/dist/record/family/execution-traces/definition.d.mts +73 -0
- package/dist/record/family/execution-traces/definition.d.ts +73 -0
- package/dist/record/family/execution-traces/definition.js +18 -0
- package/dist/record/family/execution-traces/definition.js.map +1 -0
- package/dist/record/family/execution-traces/persistence.cjs +10 -0
- package/dist/record/family/execution-traces/persistence.cjs.map +1 -0
- package/dist/record/family/execution-traces/persistence.d.cts +4 -0
- package/dist/record/family/execution-traces/persistence.d.mts +4 -0
- package/dist/record/family/execution-traces/persistence.d.ts +4 -0
- package/dist/record/family/execution-traces/persistence.js +6 -0
- package/dist/record/family/execution-traces/persistence.js.map +1 -0
- package/dist/record/family/execution-traces/schema.cjs +157 -0
- package/dist/record/family/execution-traces/schema.cjs.map +1 -0
- package/dist/record/family/execution-traces/schema.d.cts +228 -0
- package/dist/record/family/execution-traces/schema.d.mts +228 -0
- package/dist/record/family/execution-traces/schema.d.ts +228 -0
- package/dist/record/family/execution-traces/schema.js +16 -0
- package/dist/record/family/execution-traces/schema.js.map +1 -0
- package/dist/record/model/definition.d.cts +6 -6
- package/dist/record/model/definition.d.mts +6 -6
- package/dist/record/model/definition.d.ts +6 -6
- package/dist/record/model/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/runner/adapter-attachments.cjs +104 -0
- package/dist/runner/adapter-attachments.cjs.map +1 -0
- package/dist/runner/adapter-attachments.d.cts +35 -0
- package/dist/runner/adapter-attachments.d.mts +35 -0
- package/dist/runner/adapter-attachments.d.ts +35 -0
- package/dist/runner/adapter-attachments.js +14 -0
- package/dist/runner/adapter-attachments.js.map +1 -0
- package/dist/runner/adapter-execution-trace.cjs +588 -0
- package/dist/runner/adapter-execution-trace.cjs.map +1 -0
- package/dist/runner/adapter-execution-trace.d.cts +38 -0
- package/dist/runner/adapter-execution-trace.d.mts +38 -0
- package/dist/runner/adapter-execution-trace.d.ts +38 -0
- package/dist/runner/adapter-execution-trace.js +14 -0
- package/dist/runner/adapter-execution-trace.js.map +1 -0
- package/dist/runner/adapter-usage.cjs +78 -0
- package/dist/runner/adapter-usage.cjs.map +1 -0
- package/dist/runner/adapter-usage.d.cts +18 -0
- package/dist/runner/adapter-usage.d.mts +18 -0
- package/dist/runner/adapter-usage.d.ts +18 -0
- package/dist/runner/adapter-usage.js +10 -0
- package/dist/runner/adapter-usage.js.map +1 -0
- package/dist/runner/attempt-resources.cjs +20 -2
- package/dist/runner/attempt-resources.cjs.map +1 -1
- package/dist/runner/attempt-resources.d.cts +5 -0
- package/dist/runner/attempt-resources.d.mts +5 -0
- package/dist/runner/attempt-resources.d.ts +5 -0
- package/dist/runner/attempt.cjs +125 -17
- package/dist/runner/attempt.cjs.map +1 -1
- package/dist/runner/attempt.d.cts +3 -1
- package/dist/runner/attempt.d.mts +3 -1
- package/dist/runner/attempt.d.ts +3 -1
- package/dist/runner/config-identity.cjs +30 -15
- package/dist/runner/config-identity.cjs.map +1 -1
- package/dist/runner/config-identity.d.cts +10 -7
- package/dist/runner/config-identity.d.mts +10 -7
- package/dist/runner/config-identity.d.ts +10 -7
- package/dist/runner/discover.cjs +4 -4
- package/dist/runner/discover.cjs.map +1 -1
- package/dist/runner/discover.d.cts +2 -0
- package/dist/runner/discover.d.mts +2 -0
- package/dist/runner/discover.d.ts +2 -0
- package/dist/runner/feedback/human.cjs +79 -22
- package/dist/runner/feedback/human.cjs.map +1 -1
- package/dist/runner/feedback/index.cjs +2 -1
- package/dist/runner/feedback/index.cjs.map +1 -1
- package/dist/runner/feedback/index.d.cts +1 -1
- package/dist/runner/feedback/index.d.mts +1 -1
- package/dist/runner/feedback/index.d.ts +1 -1
- package/dist/runner/feedback/index.js +18 -16
- package/dist/runner/feedback/reducer.cjs +32 -3
- package/dist/runner/feedback/reducer.cjs.map +1 -1
- package/dist/runner/feedback/sink.cjs +10 -1
- package/dist/runner/feedback/sink.cjs.map +1 -1
- package/dist/runner/feedback/sink.d.cts +6 -0
- package/dist/runner/feedback/sink.d.mts +6 -0
- package/dist/runner/feedback/sink.d.ts +6 -0
- package/dist/runner/feedback/sink.js +26 -24
- package/dist/runner/fingerprint.cjs.map +1 -1
- package/dist/runner/fingerprint.d.cts +3 -3
- package/dist/runner/fingerprint.d.mts +3 -3
- package/dist/runner/fingerprint.d.ts +3 -3
- package/dist/runner/judge-config.cjs +32 -79
- package/dist/runner/judge-config.cjs.map +1 -1
- package/dist/runner/judge-config.d.cts +6 -5
- package/dist/runner/judge-config.d.mts +6 -5
- package/dist/runner/judge-config.d.ts +6 -5
- package/dist/runner/judge-config.js +2 -2
- 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 +30 -15
- package/dist/runner/record/attachments.cjs.map +1 -1
- package/dist/runner/record/attachments.d.cts +2 -1
- package/dist/runner/record/attachments.d.mts +2 -1
- package/dist/runner/record/attachments.d.ts +2 -1
- package/dist/runner/record.cjs +21 -1
- package/dist/runner/record.cjs.map +1 -1
- package/dist/runner/run.cjs +17 -0
- package/dist/runner/run.cjs.map +1 -1
- package/dist/runner/types.cjs +3 -1
- package/dist/runner/types.cjs.map +1 -1
- package/dist/runner/types.d.cts +53 -29
- package/dist/runner/types.d.mts +53 -29
- package/dist/runner/types.d.ts +53 -29
- package/dist/shared/types.cjs.map +1 -1
- package/dist/shared/types.d.cts +4 -0
- package/dist/shared/types.d.mts +4 -0
- package/dist/shared/types.d.ts +4 -0
- package/dist/show/contribution.cjs +36 -14
- package/dist/show/contribution.cjs.map +1 -1
- package/dist/show/model.cjs +13 -1
- package/dist/show/model.cjs.map +1 -1
- package/dist/show/model.d.cts +5 -1
- package/dist/show/model.d.mts +5 -1
- package/dist/show/model.d.ts +5 -1
- package/dist/show/render.cjs +182 -21
- package/dist/show/render.cjs.map +1 -1
- package/dist/show/render.d.cts +20 -0
- package/dist/show/render.d.mts +20 -0
- package/dist/show/render.d.ts +20 -0
- package/dist/types.cjs +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/view/app-dist/.vite/manifest.json +2 -2
- package/dist/view/app-dist/assets/index-Bg_pU5L2.js +63 -0
- package/dist/view/app-dist/assets/quality-cost-scatter-DoG3Qwjv.js +53 -0
- package/dist/view/app-dist/index.html +1 -1
- package/dist/view/function-runtime.mjs +3991 -1232
- package/dist/view/http-protocol.d.cts +31 -0
- package/dist/view/http-protocol.d.mts +31 -0
- package/dist/view/http-protocol.d.ts +31 -0
- package/docs-site/zh/examples/integrations/ai-sdk-v7.mdx +3 -3
- package/docs-site/zh/examples/integrations/claude-sdk.mdx +3 -3
- package/docs-site/zh/examples/integrations/codex-sdk.mdx +3 -3
- package/docs-site/zh/examples/integrations/langgraph.mdx +3 -3
- package/docs-site/zh/examples/integrations/pi-sdk.mdx +3 -3
- package/docs-site/zh/explanation/adapter.mdx +1 -1
- package/docs-site/zh/explanation/experiment.mdx +1 -1
- package/docs-site/zh/explanation/judge.mdx +28 -19
- package/docs-site/zh/reference/cli.mdx +4 -0
- package/docs-site/zh/reference/define-agent.mdx +22 -2
- package/docs-site/zh/reference/define-config.mdx +7 -6
- package/docs-site/zh/reference/define-eval.mdx +44 -6
- package/docs-site/zh/troubleshooting/debugging.mdx +8 -0
- package/docs-site/zh/tutorials/agent-onboarding.mdx +7 -6
- package/docs-site/zh/tutorials/authoring.mdx +3 -3
- package/docs-site/zh/tutorials/configuration.mdx +17 -10
- package/docs-site/zh/tutorials/custom-application.mdx +47 -0
- package/docs-site/zh/tutorials/evaluation-kinds.mdx +1 -1
- package/docs-site/zh/tutorials/verify-judge.mdx +39 -6
- package/docs-site/zh/tutorials/write-experiment.mdx +6 -2
- package/node_modules/@types/node/README.md +2 -2
- package/node_modules/@types/node/child_process.d.ts +1 -1
- package/node_modules/@types/node/package.json +2 -17
- package/node_modules/@types/node/stream/web.d.ts +4 -0
- package/node_modules/fast-check/README.md +1 -0
- package/node_modules/fast-check/lib/cjs/fast-check.d.ts +443 -98
- package/node_modules/fast-check/lib/cjs/fast-check.js +671 -117
- package/node_modules/fast-check/lib/cjs/types57/fast-check.d.ts +443 -98
- package/node_modules/fast-check/lib/fast-check.d.ts +443 -98
- package/node_modules/fast-check/lib/fast-check.js +664 -118
- package/node_modules/fast-check/lib/types57/fast-check.d.ts +443 -98
- package/node_modules/fast-check/package.json +5 -5
- package/node_modules/msgpackr/README.md +1 -0
- package/node_modules/msgpackr/dist/index-no-eval.cjs +2 -2
- package/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
- package/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
- package/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
- package/node_modules/msgpackr/dist/index.js +2 -2
- package/node_modules/msgpackr/dist/index.js.map +1 -1
- package/node_modules/msgpackr/dist/index.min.js +1 -1
- package/node_modules/msgpackr/dist/index.min.js.map +1 -1
- package/node_modules/msgpackr/dist/node.cjs +2 -2
- package/node_modules/msgpackr/dist/node.cjs.map +1 -1
- package/node_modules/msgpackr/dist/test.js +52 -2
- package/node_modules/msgpackr/dist/test.js.map +1 -1
- package/node_modules/msgpackr/index.d.cts +1 -0
- package/node_modules/msgpackr/index.d.ts +1 -0
- package/node_modules/msgpackr/pack.js +2 -2
- package/node_modules/msgpackr/package.json +1 -1
- package/node_modules/pure-rand/README.md +3 -46
- package/node_modules/pure-rand/lib/distribution/uniformBigInt.d.ts +1 -1
- package/node_modules/pure-rand/lib/distribution/uniformFloat32.d.ts +15 -0
- package/node_modules/pure-rand/lib/distribution/uniformFloat32.js +18 -0
- package/node_modules/pure-rand/lib/distribution/uniformFloat64.d.ts +15 -0
- package/node_modules/pure-rand/lib/distribution/uniformFloat64.js +22 -0
- package/node_modules/pure-rand/lib/distribution/uniformInt.d.ts +1 -1
- package/node_modules/pure-rand/lib/esm/distribution/uniformBigInt.d.ts +1 -1
- package/node_modules/pure-rand/lib/esm/distribution/uniformFloat32.d.ts +15 -0
- package/node_modules/pure-rand/lib/esm/distribution/uniformFloat32.js +17 -0
- package/node_modules/pure-rand/lib/esm/distribution/uniformFloat64.d.ts +15 -0
- package/node_modules/pure-rand/lib/esm/distribution/uniformFloat64.js +21 -0
- package/node_modules/pure-rand/lib/esm/distribution/uniformInt.d.ts +1 -1
- package/node_modules/pure-rand/lib/esm/generator/congruential32.js +13 -13
- package/node_modules/pure-rand/lib/esm/generator/mersenne.d.ts +3 -3
- package/node_modules/pure-rand/lib/esm/generator/mersenne.js +46 -23
- package/node_modules/pure-rand/lib/esm/generator/xoroshiro128plus.js +27 -13
- package/node_modules/pure-rand/lib/esm/generator/xorshift128plus.js +32 -20
- package/node_modules/pure-rand/lib/esm/types/JumpableRandomGenerator.d.ts +1 -1
- package/node_modules/pure-rand/lib/esm/types/RandomGenerator.d.ts +1 -1
- package/node_modules/pure-rand/lib/esm/utils/generateN.d.ts +1 -1
- package/node_modules/pure-rand/lib/esm/utils/purify.d.ts +1 -1
- package/node_modules/pure-rand/lib/esm/utils/skipN.d.ts +1 -1
- package/node_modules/pure-rand/lib/generator/congruential32.js +13 -13
- package/node_modules/pure-rand/lib/generator/mersenne.d.ts +3 -3
- package/node_modules/pure-rand/lib/generator/mersenne.js +46 -23
- package/node_modules/pure-rand/lib/generator/xoroshiro128plus.js +27 -13
- package/node_modules/pure-rand/lib/generator/xorshift128plus.js +32 -20
- package/node_modules/pure-rand/lib/types/JumpableRandomGenerator.d.ts +1 -1
- package/node_modules/pure-rand/lib/types/RandomGenerator.d.ts +1 -1
- package/node_modules/pure-rand/lib/utils/generateN.d.ts +1 -1
- package/node_modules/pure-rand/lib/utils/purify.d.ts +1 -1
- package/node_modules/pure-rand/lib/utils/skipN.d.ts +1 -1
- package/node_modules/pure-rand/package.json +34 -13
- package/node_modules/undici/docs/docs/api/Interceptors.md +7 -3
- package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +7 -1
- package/node_modules/undici/lib/cache/memory-cache-store.js +1 -1
- package/node_modules/undici/lib/core/symbols.js +2 -0
- package/node_modules/undici/lib/dispatcher/balanced-pool.js +6 -3
- package/node_modules/undici/lib/dispatcher/dispatcher.js +6 -2
- package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +3 -0
- package/node_modules/undici/lib/dispatcher/proxy-agent.js +17 -0
- package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
- package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +90 -22
- package/node_modules/undici/lib/handler/cache-handler.js +21 -5
- package/node_modules/undici/lib/handler/redirect-handler.js +13 -4
- package/node_modules/undici/lib/handler/retry-handler.js +65 -19
- package/node_modules/undici/lib/interceptor/cache.js +65 -12
- package/node_modules/undici/lib/interceptor/decompress.js +115 -13
- package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
- package/node_modules/undici/lib/interceptor/dns.js +7 -0
- package/node_modules/undici/lib/interceptor/dump.js +9 -22
- package/node_modules/undici/lib/util/cache.js +45 -3
- package/node_modules/undici/lib/web/cookies/parse.js +150 -149
- package/node_modules/undici/lib/web/eventsource/eventsource.js +9 -2
- package/node_modules/undici/lib/web/fetch/index.js +6 -0
- package/node_modules/undici/lib/web/fetch/util.js +6 -1
- package/node_modules/undici/lib/web/webidl/index.js +3 -3
- package/node_modules/undici/lib/web/websocket/connection.js +1 -1
- package/node_modules/undici/lib/web/websocket/permessage-deflate.js +5 -0
- package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +8 -10
- package/node_modules/undici/package.json +1 -1
- package/node_modules/undici/types/interceptors.d.ts +2 -0
- package/node_modules/undici/types/mock-agent.d.ts +11 -10
- package/node_modules/undici/types/socks5-proxy-agent.d.ts +2 -0
- package/package.json +39 -29
- package/dist/view/app-dist/assets/index-DlblLB-p.js +0 -63
- package/dist/view/app-dist/assets/quality-cost-scatter-BYCpyh4z.js +0 -53
- /package/node_modules/pure-rand/lib/{RandomGenerator-CKZRB3Fu.d.ts → RandomGenerator-DcXj09Ch.d.ts} +0 -0
- /package/node_modules/pure-rand/lib/esm/{RandomGenerator-CKZRB3Fu.d.ts → RandomGenerator-DcXj09Ch.d.ts} +0 -0
package/dist/adapter.cjs
CHANGED
|
@@ -6,6 +6,7 @@ exports.adapterIdentity = adapterIdentity;
|
|
|
6
6
|
exports.adapterAcceptsEval = adapterAcceptsEval;
|
|
7
7
|
exports.adapterContractRequiredByEval = adapterContractRequiredByEval;
|
|
8
8
|
exports.bindAdapterEvalContext = bindAdapterEvalContext;
|
|
9
|
+
const adapter_flags_ts_1 = require("./adapter-flags.cjs");
|
|
9
10
|
const define_ts_1 = require("./define.cjs");
|
|
10
11
|
const ADAPTER_CONTRACT_TOKEN = Symbol("niceeval.adapterContractToken");
|
|
11
12
|
const EVAL_ADAPTER_CONTRACT_TOKEN = Symbol("niceeval.evalAdapterContractToken");
|
|
@@ -49,10 +50,11 @@ function assertNonEmptyString(value, field, factory) {
|
|
|
49
50
|
throw new TypeError(`${factory} requires a non-empty ${field}.`);
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
|
-
function contractToken(name, assertions) {
|
|
53
|
+
function contractToken(name, assertions, parseFlags) {
|
|
53
54
|
return Object.freeze({
|
|
54
55
|
name,
|
|
55
56
|
assertions,
|
|
57
|
+
parseFlags,
|
|
56
58
|
assertionTypes: (value) => value,
|
|
57
59
|
context: (value) => value,
|
|
58
60
|
});
|
|
@@ -104,6 +106,7 @@ function implementAdapter(token, input, factory) {
|
|
|
104
106
|
};
|
|
105
107
|
return Object.freeze({
|
|
106
108
|
kind: "custom",
|
|
109
|
+
parseFlags: token.parseFlags,
|
|
107
110
|
name: input.name,
|
|
108
111
|
contract: token.name,
|
|
109
112
|
behaviorRevision: input.behaviorRevision ?? null,
|
|
@@ -113,30 +116,37 @@ function implementAdapter(token, input, factory) {
|
|
|
113
116
|
});
|
|
114
117
|
}
|
|
115
118
|
function defineAdapter(input) {
|
|
119
|
+
if (input.parseFlags !== undefined)
|
|
120
|
+
(0, adapter_flags_ts_1.assertAdapterFlagsParser)(input.parseFlags);
|
|
116
121
|
const assertions = input.assertions;
|
|
117
122
|
if (assertions !== undefined && typeof assertions !== "function") {
|
|
118
123
|
throw new TypeError("defineAdapter assertions must be a function.");
|
|
119
124
|
}
|
|
120
|
-
return implementAdapter(contractToken(input.name, assertions), input, "defineAdapter");
|
|
125
|
+
return implementAdapter(contractToken(input.name, assertions, input.parseFlags), input, "defineAdapter");
|
|
121
126
|
}
|
|
122
127
|
/** Defines a reusable contract whose implementations and Evals share one runtime-only token. */
|
|
123
128
|
function defineAdapterContract(input) {
|
|
124
129
|
assertNonEmptyString(input.name, "name", "defineAdapterContract");
|
|
125
|
-
return makeAdapterContract(contractToken(input.name, undefined));
|
|
130
|
+
return makeAdapterContract(contractToken(input.name, undefined, undefined));
|
|
126
131
|
}
|
|
127
132
|
function makeAdapterContract(token) {
|
|
128
133
|
const factories = boundEvalFactories(token);
|
|
129
134
|
return Object.freeze({
|
|
130
135
|
name: token.name,
|
|
136
|
+
parseFlags: token.parseFlags,
|
|
131
137
|
...factories,
|
|
132
138
|
implement(implementation) {
|
|
133
139
|
return implementAdapter(token, implementation, "AdapterContract.implement");
|
|
134
140
|
},
|
|
141
|
+
withParseFlags(parseFlags, ..._validation) {
|
|
142
|
+
(0, adapter_flags_ts_1.assertAdapterFlagsParser)(parseFlags);
|
|
143
|
+
return makeAdapterContract(contractToken(token.name, token.assertions, parseFlags));
|
|
144
|
+
},
|
|
135
145
|
withAssertions(factory, ..._validation) {
|
|
136
146
|
if (typeof factory !== "function") {
|
|
137
147
|
throw new TypeError("AdapterContract.withAssertions requires a function.");
|
|
138
148
|
}
|
|
139
|
-
return makeAdapterContract(contractToken(token.name, factory));
|
|
149
|
+
return makeAdapterContract(contractToken(token.name, factory, token.parseFlags));
|
|
140
150
|
},
|
|
141
151
|
});
|
|
142
152
|
}
|
package/dist/adapter.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssertionCheck, AssertionSubject, AssertionsRuntime, BooleanAssertionHandle, MeasurementAssertionHandle, PolymorphicBooleanAssertionHandle, PolymorphicMeasurementAssertionHandle, } from \"./assertions/api.ts\";\nimport type { ScoreMatch } from \"./assertions/match.ts\";\nimport { defineEvalForContext } from \"./define.ts\";\nimport type { EvalDefinition, EvalInput, ScoreEvalInput } from \"./runner/types.ts\";\nimport type { EvaluationKind } from \"./shared/evaluation.ts\";\nimport type { JudgePresetMethods } from \"./context/assert-first.ts\";\nimport type { DiagnosticInput, JsonValue, ProgressUpdate } from \"./shared/types.ts\";\nimport type { AdapterIdentity } from \"./record/model/run-context.ts\";\nexport type { AdapterIdentity } from \"./record/model/run-context.ts\";\nconst ADAPTER_CONTRACT_TOKEN: unique symbol = Symbol(\"niceeval.adapterContractToken\");\nconst EVAL_ADAPTER_CONTRACT_TOKEN: unique symbol = Symbol(\"niceeval.evalAdapterContractToken\");\n/**\n * Synchronously assembles Attempt-local Assertion methods from the guarded app\n * facade and the shared check registrar. The returned object must contain only\n * ordinary, synchronously returning methods. Generic and overloaded Assertion\n * sugar is intentionally not callable after binding; use ordinary named\n * parameters so argument and native handle types remain exact.\n */\nexport type AdapterAssertionsFactory<Context extends object, Assertions extends object = object> = (context: AdapterAssertionsFactoryContext<Context>) => Assertions;\n/**\n * Definition inputs for Adapter Assertion sugar. `app` becomes callable after\n * assembly, and `check` may only be called by a returned Assertion method.\n */\nexport interface AdapterAssertionsFactoryContext<Context extends object> {\n readonly app: Readonly<Context>;\n readonly check: AssertionCheck<\"polymorphic\">;\n}\ntype BoundAdapterAssertionResult<Kind extends EvaluationKind, Result> = Result extends PolymorphicBooleanAssertionHandle<infer Refined, infer HasGate> ? BooleanAssertionHandle<Kind, Refined, HasGate> : Result extends PolymorphicMeasurementAssertionHandle<infer HasCondition> ? MeasurementAssertionHandle<Kind, HasCondition> : never;\ntype BoundAdapterAssertionMethod<Kind extends EvaluationKind, Method> = Method extends (...args: infer Args) => infer Result ? ((...args: Args) => Result) extends Method ? (...args: Args) => BoundAdapterAssertionResult<Kind, Result> : never : never;\ntype AdapterAssertionsFor<Assertions extends object | undefined, Kind extends EvaluationKind> = Assertions extends object ? {\n readonly [Key in keyof Assertions]: BoundAdapterAssertionMethod<Kind, Assertions[Key]>;\n} : {};\n/** Keys owned by the neutral Eval runtime or unsafe on a merged object root. */\nconst RESERVED_ADAPTER_CONTEXT_KEYS = [\n \"evaluationKind\",\n \"check\",\n \"judge\",\n \"factuality\",\n \"faithfulness\",\n \"instructionFollowing\",\n \"pairwisePreference\",\n \"closeQA\",\n \"score\",\n \"group\",\n \"skip\",\n \"signal\",\n \"model\",\n \"reasoningEffort\",\n \"flags\",\n \"progress\",\n \"diagnostic\",\n \"log\",\n \"then\",\n \"Object\",\n \"constructor\",\n \"__defineGetter__\",\n \"__defineSetter__\",\n \"hasOwnProperty\",\n \"__lookupGetter__\",\n \"__lookupSetter__\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"toString\",\n \"valueOf\",\n \"__proto__\",\n \"toLocaleString\",\n] as const;\nexport type ReservedAdapterContextKey = typeof RESERVED_ADAPTER_CONTEXT_KEYS[number];\ntype InvalidContextBranch<Context> = Context extends unknown ? Context extends object ? Context extends readonly unknown[] ? Context : Context extends (...args: readonly never[]) => unknown ? Context : string extends keyof Context ? Context : Extract<keyof Context, ReservedAdapterContextKey> extends never ? never : Context : Context : never;\ntype AdapterContextValidation<Context> = unknown extends Context ? unknown : [\n InvalidContextBranch<Context>\n] extends [\n never\n] ? unknown : {\n readonly invalidAdapterContext: InvalidContextBranch<Context>;\n};\ntype InvalidAssertionMethodKey<Context extends object, Assertions> = Assertions extends object ? {\n [Key in keyof Assertions]: Key extends string ? Key extends ReservedAdapterContextKey | keyof Context ? Key : Assertions[Key] extends (...args: readonly never[]) => infer Result ? Result extends PolymorphicBooleanAssertionHandle<unknown, boolean> | PolymorphicMeasurementAssertionHandle<boolean> ? never : Key : Key : Key;\n}[keyof Assertions] : \"assertions\";\ntype InvalidAdapterAssertions<Context extends object, Assertions extends object> = InvalidAssertionMethodKey<Context, Assertions>;\ntype AdapterAssertionsValidation<Context extends object, Assertions extends object> = [\n InvalidAdapterAssertions<Context, Assertions>\n] extends [\n never\n] ? unknown : {\n readonly invalidAdapterAssertions: InvalidAdapterAssertions<Context, Assertions>;\n};\ntype AdapterAssertionsValidationArgs<Context extends object, Assertions extends object> = [\n InvalidAdapterAssertions<Context, Assertions>\n] extends [\n never\n] ? [\n] : [\n error: {\n readonly invalidAdapterAssertions: InvalidAdapterAssertions<Context, Assertions>;\n }\n];\ntype AdapterFactory<Context extends object> = (context: AdapterCreateContext) => (Context & ThisType<Context>) | Promise<Context & ThisType<Context>>;\nexport interface AdapterCleanupContext {\n /** 当前 Adapter cleanup 总窗口的取消信号。它独立于 Attempt signal,并在 30 秒总预算结束时取消。 */\n readonly signal: AbortSignal;\n}\nexport interface AdapterCreateContext {\n /** 当前 Eval 的公开 ID。 */\n readonly evalId: string;\n /** 当前 Experiment 的公开 ID。 */\n readonly experimentId: string;\n /** 当前 Attempt 的零起始序号。 */\n readonly attempt: number;\n /** Attempt 执行信号;取消或超时后会中止,不用于 cleanup 窗口。 */\n readonly signal: AbortSignal;\n /** Experiment 选择的模型。 */\n readonly model?: string;\n /** Experiment 选择的推理强度。 */\n readonly reasoningEffort?: string;\n /** Experiment 传给 Adapter 的只读 flags。 */\n readonly flags: Readonly<Record<string, JsonValue>>;\n /** 更新当前 Attempt 的人读进度。 */\n progress(update: ProgressUpdate): void;\n /** 为当前 Attempt 追加结构化诊断。 */\n diagnostic(input: DiagnosticInput): void;\n /** 为当前 Attempt 追加日志。 */\n log(message: string): void;\n /**\n * 登记 Attempt-local 资源释放。回调按全局 LIFO 执行;一项失败不会跳过其余项。\n * 零参数回调仍可直接传入。传入的 context 已冻结,同一 cleanup 窗口的回调共享一个 signal。\n */\n onCleanup(cleanup: (context: AdapterCleanupContext) => void | Promise<void>): void;\n}\ntype EvalContextBase<Kind extends EvaluationKind> = JudgePresetMethods<Kind> & {\n readonly evaluationKind: Kind;\n readonly signal: AbortSignal;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: Readonly<Record<string, JsonValue>>;\n progress(update: ProgressUpdate): void;\n diagnostic(input: 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 readonly check: AssertionsRuntime<Kind>[\"t\"][\"check\"];\n readonly judge: <Value>(value: AssertionSubject<Value>, definition: ScoreMatch<NoInfer<Value>>) => MeasurementAssertionHandle<Kind>;\n};\n/** Agent-neutral author context shared by every Adapter Eval. */\nexport type EvalContext<Kind extends EvaluationKind = \"pass\"> = EvalContextBase<Kind> & (Kind extends \"score\" ? {\n readonly score: AssertionsRuntime<\"score\">[\"t\"][\"score\"];\n} : {});\ntype AdapterEvalFields = Omit<EvalInput<undefined>, \"test\" | \"sandbox\" | \"diff\"> & {\n readonly sandbox?: never;\n readonly diff?: never;\n};\ntype AdapterScoreEvalFields = Omit<ScoreEvalInput<undefined>, \"test\" | \"sandbox\" | \"diff\"> & {\n readonly sandbox?: never;\n readonly diff?: never;\n};\nexport type AdapterEvalInput<Context extends object, Assertions extends object | undefined = undefined> = AdapterEvalFields & {\n test(t: EvalContext<\"pass\"> & Readonly<Context> & AdapterAssertionsFor<Assertions, \"pass\">): void | Promise<void>;\n};\nexport type AdapterScoreEvalInput<Context extends object, Assertions extends object | undefined = undefined> = AdapterScoreEvalFields & {\n test(t: EvalContext<\"score\"> & Readonly<Context> & AdapterAssertionsFor<Assertions, \"score\">): void | Promise<void>;\n};\ninterface AdapterContractToken<Context extends object, Assertions extends object | undefined> {\n readonly name: string;\n readonly assertions: AdapterAssertionsFactory<Context> | undefined;\n /** Keeps the Assertion method shape invariant without exposing a constructible brand. */\n readonly assertionTypes: (value: Assertions) => Assertions;\n /** Keeps the context parameter invariant without exposing a constructible brand. */\n readonly context: (value: Context) => Context;\n}\nexport interface AdapterEvalDefinition<Kind extends EvaluationKind, Context extends object, Assertions extends object | undefined = undefined> extends EvalDefinition<Kind, EvalContext<Kind> & Readonly<Context> & AdapterAssertionsFor<Assertions, Kind>, undefined> {\n readonly [EVAL_ADAPTER_CONTRACT_TOKEN]: AdapterContractToken<Context, Assertions>;\n}\n/** @internal Existential discovery view; concrete bound factories retain their exact Context. */\nexport interface AdapterRuntimeEvalDefinition<Kind extends EvaluationKind> extends EvalDefinition<Kind, never, undefined> {\n readonly [EVAL_ADAPTER_CONTRACT_TOKEN]: object;\n}\n/** Common public surface for an Adapter definition with bound Eval factories. */\nexport interface AdapterDefinition<Context extends object, Assertions extends object | undefined = undefined> {\n readonly name: string;\n defineEval(input: AdapterEvalInput<Context, Assertions>): AdapterEvalDefinition<\"pass\", Context, Assertions>;\n defineScoreEval(input: AdapterScoreEvalInput<Context, Assertions>): AdapterEvalDefinition<\"score\", Context, Assertions>;\n}\n/** Existential runtime view used by Experiment without erasing a concrete context to `any`. */\nexport interface AdapterRuntimeDefinition {\n readonly kind: \"custom\";\n readonly name: string;\n readonly contract: string;\n readonly behaviorRevision: string | null;\n readonly [ADAPTER_CONTRACT_TOKEN]: object;\n readonly defineEval: (...args: never[]) => unknown;\n readonly defineScoreEval: (...args: never[]) => unknown;\n create(context: AdapterCreateContext): object | Promise<object>;\n}\nexport interface AdapterImplementation<Context extends object, Assertions extends object | undefined = undefined> extends AdapterDefinition<Context, Assertions> {\n readonly kind: \"custom\";\n readonly contract: string;\n readonly behaviorRevision: string | null;\n readonly [ADAPTER_CONTRACT_TOKEN]: AdapterContractToken<Context, Assertions>;\n create(context: AdapterCreateContext): Context | Promise<Context>;\n}\nexport type AdapterImplementationInput<Context extends object, ImplementationContext extends Context = Context> = {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<ImplementationContext>;\n} & AdapterContextValidation<NoInfer<ImplementationContext>>;\nexport interface AdapterContract<Context extends object, Assertions extends object | undefined = undefined> extends AdapterDefinition<Context, Assertions> {\n readonly name: string;\n implement<ImplementationContext extends Context>(input: AdapterImplementationInput<Context, ImplementationContext>): AdapterImplementation<Context, Assertions>;\n /**\n * Returns a contract whose Eval factories and every implementation share\n * this exact Assertion factory. Implementations cannot replace it.\n */\n withAssertions<NextAssertions extends object>(factory: AdapterAssertionsFactory<Context, NextAssertions>, ...validation: AdapterAssertionsValidationArgs<Context, NoInfer<NextAssertions>>): AdapterContract<Context, NextAssertions>;\n}\nexport type Adapter = import(\"./agents/types.ts\").Agent | AdapterRuntimeDefinition;\nfunction assertNonEmptyString(value: unknown, field: string, factory: string): asserts value is string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new TypeError(`${factory} requires a non-empty ${field}.`);\n }\n}\nfunction contractToken<Context extends object, Assertions extends object | undefined>(name: string, assertions: AdapterAssertionsFactory<Context> | undefined): AdapterContractToken<Context, Assertions> {\n return Object.freeze({\n name,\n assertions,\n assertionTypes: (value: Assertions) => value,\n context: (value: Context) => value,\n });\n}\nfunction assertAdapterEvalInput(value: {\n readonly sandbox?: unknown;\n readonly diff?: unknown;\n}, factory: \"defineEval\" | \"defineScoreEval\"): void {\n if (Object.hasOwn(value, \"sandbox\")) {\n throw new TypeError(`${factory} for an Adapter does not support sandbox.`);\n }\n if (Object.hasOwn(value, \"diff\")) {\n throw new TypeError(`${factory} for an Adapter does not support Agent workspace diff configuration.`);\n }\n}\nfunction boundEvalFactories<Context extends object, Assertions extends object | undefined>(token: AdapterContractToken<Context, Assertions>): Pick<AdapterDefinition<Context, Assertions>, \"defineEval\" | \"defineScoreEval\"> {\n return {\n defineEval(input) {\n assertAdapterEvalInput(input, \"defineEval\");\n return defineEvalForContext(\"pass\", input, {\n [EVAL_ADAPTER_CONTRACT_TOKEN]: token,\n }) as AdapterEvalDefinition<\"pass\", Context, Assertions>;\n },\n defineScoreEval(input) {\n assertAdapterEvalInput(input, \"defineScoreEval\");\n return defineEvalForContext(\"score\", input, {\n [EVAL_ADAPTER_CONTRACT_TOKEN]: token,\n }) as AdapterEvalDefinition<\"score\", Context, Assertions>;\n },\n };\n}\nfunction implementAdapter<Context extends object, Assertions extends object | undefined>(token: AdapterContractToken<Context, Assertions>, input: {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<Context>;\n}, factory: \"defineAdapter\" | \"AdapterContract.implement\"): AdapterImplementation<Context, Assertions> {\n assertNonEmptyString(input.name, \"name\", factory);\n if (input.behaviorRevision !== undefined) {\n assertNonEmptyString(input.behaviorRevision, \"behaviorRevision\", factory);\n }\n if (typeof input.create !== \"function\") {\n throw new TypeError(`${factory} requires create(context).`);\n }\n const authorCreate = input.create;\n const create = (context: AdapterCreateContext): Context | Promise<Context> => {\n const created = authorCreate(context);\n if (created instanceof Promise) {\n return created.then((value) => {\n assertPlainAdapterContext(value);\n return value;\n });\n }\n // Validate before a caller can pass a synchronous thenable to Promise adaptation.\n assertPlainAdapterContext(created);\n return created;\n };\n return Object.freeze({\n kind: \"custom\" as const,\n name: input.name,\n contract: token.name,\n behaviorRevision: input.behaviorRevision ?? null,\n create,\n [ADAPTER_CONTRACT_TOKEN]: token,\n ...boundEvalFactories(token),\n }) as AdapterImplementation<Context, Assertions>;\n}\n/** Defines one Adapter implementation with an automatically private contract. */\nexport function defineAdapter<Context extends object>(input: {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<Context>;\n readonly assertions?: undefined;\n} & AdapterContextValidation<NoInfer<Context>>): AdapterImplementation<Context>;\nexport function defineAdapter<Context extends object, Assertions extends object>(input: {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<Context>;\n /** Attempt-local Assertion sugar, assembled once after create() succeeds. */\n readonly assertions: AdapterAssertionsFactory<Context, Assertions>;\n} & AdapterContextValidation<NoInfer<Context>> & AdapterAssertionsValidation<Context, NoInfer<Assertions>>): AdapterImplementation<Context, Assertions>;\nexport function defineAdapter(input: {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<object>;\n readonly assertions?: AdapterAssertionsFactory<object>;\n}): AdapterRuntimeDefinition {\n const assertions = input.assertions;\n if (assertions !== undefined && typeof assertions !== \"function\") {\n throw new TypeError(\"defineAdapter assertions must be a function.\");\n }\n return implementAdapter(contractToken<object, object | undefined>(input.name, assertions), input, \"defineAdapter\");\n}\n/** Defines a reusable contract whose implementations and Evals share one runtime-only token. */\nexport function defineAdapterContract<Context extends object>(input: {\n readonly name: string;\n} & AdapterContextValidation<NoInfer<Context>>): AdapterContract<Context> {\n assertNonEmptyString(input.name, \"name\", \"defineAdapterContract\");\n return makeAdapterContract(contractToken<Context, undefined>(input.name, undefined));\n}\nfunction makeAdapterContract<Context extends object, Assertions extends object | undefined>(token: AdapterContractToken<Context, Assertions>): AdapterContract<Context, Assertions> {\n const factories = boundEvalFactories(token);\n return Object.freeze({\n name: token.name,\n ...factories,\n implement<ImplementationContext extends Context>(implementation: AdapterImplementationInput<Context, ImplementationContext>) {\n return implementAdapter(token, implementation, \"AdapterContract.implement\");\n },\n withAssertions<NextAssertions extends object>(factory: AdapterAssertionsFactory<Context, NextAssertions>, ..._validation: AdapterAssertionsValidationArgs<Context, NoInfer<NextAssertions>>) {\n if (typeof factory !== \"function\") {\n throw new TypeError(\"AdapterContract.withAssertions requires a function.\");\n }\n return makeAdapterContract(contractToken<Context, NextAssertions>(token.name, factory));\n },\n });\n}\n/** The single credential-free persistence projection for an Adapter. */\nexport function adapterIdentity(adapter: Adapter): AdapterIdentity {\n return adapter.kind === \"custom\"\n ? Object.freeze({\n name: adapter.name,\n contract: adapter.contract,\n behaviorRevision: adapter.behaviorRevision,\n })\n : Object.freeze({\n name: adapter.name,\n contract: \"niceeval.agent/v1\",\n behaviorRevision: null,\n });\n}\n/** @internal Runtime contract pairing; the token itself never enters persistence. */\nexport function adapterAcceptsEval(adapter: Adapter, definition: object): boolean {\n const required = (definition as {\n readonly [EVAL_ADAPTER_CONTRACT_TOKEN]?: unknown;\n })[EVAL_ADAPTER_CONTRACT_TOKEN];\n if (adapter.kind === \"custom\") {\n const provided = adapter[ADAPTER_CONTRACT_TOKEN];\n return required !== undefined && provided !== undefined && required === provided;\n }\n return required === undefined;\n}\n/** @internal Returns the readable contract name without revealing the pairing token. */\nexport function adapterContractRequiredByEval(definition: object): string | undefined {\n return (definition as {\n readonly [EVAL_ADAPTER_CONTRACT_TOKEN]?: {\n readonly name: string;\n };\n })[EVAL_ADAPTER_CONTRACT_TOKEN]?.name;\n}\nconst RESERVED_ADAPTER_CONTEXT_KEY_SET: ReadonlySet<string> = new Set(RESERVED_ADAPTER_CONTEXT_KEYS);\nfunction assertPlainAdapterContext(value: unknown): asserts value is object {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"Adapter create(context) must return a plain object.\");\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n throw new TypeError(\"Adapter create(context) must return an explicit plain object.\");\n }\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key === \"string\" && RESERVED_ADAPTER_CONTEXT_KEY_SET.has(key)) {\n throw new TypeError(`Adapter context key ${JSON.stringify(key)} is reserved.`);\n }\n }\n}\nfunction forwardProperties(target: object, source: object, guardAccess: boolean, assertAuthorOpen: () => void): void {\n for (const key of Reflect.ownKeys(source)) {\n const descriptor = Object.getOwnPropertyDescriptor(source, key);\n if (descriptor === undefined)\n continue;\n if (\"value\" in descriptor && typeof descriptor.value === \"function\") {\n const method = guardAccess\n ? function (this: unknown, ...args: readonly unknown[]) {\n assertAuthorOpen();\n return Reflect.apply(descriptor.value, source, args);\n }\n : descriptor.value.bind(source);\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: false,\n writable: false,\n value: method,\n });\n }\n else {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: false,\n get: () => {\n if (guardAccess)\n assertAuthorOpen();\n const value = Reflect.get(source, key, source);\n if (typeof value !== \"function\")\n return value;\n return guardAccess\n ? (...args: readonly unknown[]) => {\n assertAuthorOpen();\n return Reflect.apply(value, source, args);\n }\n : value.bind(source);\n },\n });\n }\n }\n}\n/** Observes only branded native Promises without reading an arbitrary `.then` property. */\nfunction observeNativePromiseRejection(value: unknown): boolean {\n if ((typeof value !== \"object\" && typeof value !== \"function\") || value === null)\n return false;\n try {\n void Reflect.apply(Promise.prototype.then, value, [\n undefined,\n () => undefined,\n ]);\n return true;\n }\n catch {\n return false;\n }\n}\nfunction assertPlainAdapterAssertions(value: unknown, context: object): asserts value is object {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"Adapter assertions factory must return a plain object of methods.\");\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n observeNativePromiseRejection(value);\n throw new TypeError(\"Adapter assertions factory must return an explicit plain object.\");\n }\n const contextKeys = new Set(Reflect.ownKeys(context));\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key !== \"string\") {\n throw new TypeError(\"Adapter assertion method names must be strings.\");\n }\n if (RESERVED_ADAPTER_CONTEXT_KEY_SET.has(key)) {\n throw new TypeError(`Adapter assertion method name ${JSON.stringify(key)} is reserved.`);\n }\n if (contextKeys.has(key)) {\n throw new TypeError(`Adapter assertion method name ${JSON.stringify(key)} conflicts with an app member.`);\n }\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor === undefined || !(\"value\" in descriptor) || typeof descriptor.value !== \"function\") {\n throw new TypeError(`Adapter assertion ${JSON.stringify(key)} must be an own data method.`);\n }\n }\n}\nfunction bindAdapterAppContext<Context>(context: Context, assertAppOpen: () => void): Readonly<Context> {\n const target = Object.create(null) as object;\n forwardProperties(target, context as object, true, assertAppOpen);\n return Object.freeze(target) as Readonly<Context>;\n}\nfunction bindAdapterAssertions<Kind extends EvaluationKind, Context extends object>(core: EvalContext<Kind>, context: Context, factory: AdapterAssertionsFactory<Context>, assertAuthorOpen: () => void): {\n readonly app: Readonly<Context>;\n readonly assertions: object;\n} {\n let assembled = false;\n const assertAppOpen = (): void => {\n assertAuthorOpen();\n if (!assembled) {\n throw new TypeError(\"Adapter assertions factory may only assemble methods; app access starts afterward.\");\n }\n };\n const app = bindAdapterAppContext(context, assertAppOpen);\n const handleFrames: Array<WeakSet<object>> = [];\n const check = (...args: readonly unknown[]): unknown => {\n assertAuthorOpen();\n const frame = handleFrames.at(-1);\n if (frame === undefined) {\n throw new TypeError(\"Adapter assertions factory may call check only from an assertion method.\");\n }\n const handle = Reflect.apply(core.check, undefined, args);\n if ((typeof handle !== \"object\" && typeof handle !== \"function\") || handle === null) {\n throw new TypeError(\"Adapter assertion check did not return an AssertionHandle.\");\n }\n frame.add(handle);\n return handle;\n };\n const authored = factory({\n app,\n check: check as AssertionCheck<\"polymorphic\">,\n });\n assertPlainAdapterAssertions(authored, context);\n Object.freeze(authored);\n assembled = true;\n const assertions = Object.create(null) as object;\n for (const key of Reflect.ownKeys(authored)) {\n const descriptor = Object.getOwnPropertyDescriptor(authored, key)!;\n const method = descriptor.value as (...args: readonly unknown[]) => unknown;\n Object.defineProperty(assertions, key, {\n enumerable: true,\n configurable: false,\n writable: false,\n value: (...args: readonly unknown[]) => {\n assertAuthorOpen();\n const frame = new WeakSet<object>();\n handleFrames.push(frame);\n try {\n const handle = Reflect.apply(method, authored, args);\n if ((typeof handle !== \"object\" && typeof handle !== \"function\") || handle === null || !frame.has(handle)) {\n observeNativePromiseRejection(handle);\n throw new TypeError(`Adapter assertion ${JSON.stringify(key)} must synchronously return its own check() handle.`);\n }\n return handle;\n }\n finally {\n handleFrames.pop();\n }\n },\n });\n }\n return Object.freeze({ app, assertions: Object.freeze(assertions) });\n}\n/** @internal Builds the frozen single-t facade after create settles. */\nexport function bindAdapterEvalContext<Kind extends EvaluationKind, Context>(core: EvalContext<Kind>, context: Context, adapter: AdapterRuntimeDefinition, assertAuthorOpen: () => void): EvalContext<Kind> & Readonly<Context> {\n assertPlainAdapterContext(context);\n const token = adapter[ADAPTER_CONTRACT_TOKEN] as AdapterContractToken<Context & object, object | undefined>;\n let app: Readonly<Context>;\n let assertions: object | undefined;\n if (token.assertions === undefined) {\n app = bindAdapterAppContext(context, assertAuthorOpen);\n }\n else {\n const bound = bindAdapterAssertions(core, context, token.assertions, assertAuthorOpen);\n app = bound.app;\n assertions = bound.assertions;\n }\n const target = Object.create(null) as object;\n forwardProperties(target, core, false, assertAuthorOpen);\n forwardProperties(target, app, false, assertAuthorOpen);\n if (assertions !== undefined)\n forwardProperties(target, assertions, false, assertAuthorOpen);\n return Object.freeze(target) as EvalContext<Kind> & Readonly<Context>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["adapter.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ExperimentFlags } from \"./shared/types.ts\";\nimport { assertAdapterFlagsParser, type AdapterFlagsParser, type AdapterFlagsOutput, type AdapterFlagsParserValidation, type AdapterFlagsParserValidationArgs, } from \"./adapter-flags.ts\";\nimport type { AssertionCheck, AssertionSubject, AssertionsRuntime, BooleanAssertionHandle, MeasurementAssertionHandle, PolymorphicBooleanAssertionHandle, PolymorphicMeasurementAssertionHandle, } from \"./assertions/api.ts\";\nimport type { ScoreMatch } from \"./assertions/match.ts\";\nimport { defineEvalForContext } from \"./define.ts\";\nimport type { EvalDefinition, EvalInput, ScoreEvalInput } from \"./runner/types.ts\";\nimport type { EvaluationKind } from \"./shared/evaluation.ts\";\nimport type { JudgePresetMethods } from \"./context/assert-first.ts\";\nimport type { DiagnosticInput, ProgressUpdate } from \"./shared/types.ts\";\nimport type { AdapterIdentity } from \"./record/model/run-context.ts\";\nexport type { AdapterIdentity } from \"./record/model/run-context.ts\";\nconst ADAPTER_CONTRACT_TOKEN: unique symbol = Symbol(\"niceeval.adapterContractToken\");\nconst EVAL_ADAPTER_CONTRACT_TOKEN: unique symbol = Symbol(\"niceeval.evalAdapterContractToken\");\n/**\n * Synchronously assembles Attempt-local Assertion methods from the guarded app\n * facade and the shared check registrar. The returned object must contain only\n * ordinary, synchronously returning methods. Generic and overloaded Assertion\n * sugar is intentionally not callable after binding; use ordinary named\n * parameters so argument and native handle types remain exact.\n */\nexport type AdapterAssertionsFactory<Context extends object, Assertions extends object = object> = (context: AdapterAssertionsFactoryContext<Context>) => Assertions;\n/**\n * Definition inputs for Adapter Assertion sugar. `app` becomes callable after\n * assembly, and `check` may only be called by a returned Assertion method.\n */\nexport interface AdapterAssertionsFactoryContext<Context extends object> {\n readonly app: Readonly<Context>;\n readonly check: AssertionCheck<\"polymorphic\">;\n}\ntype BoundAdapterAssertionResult<Kind extends EvaluationKind, Result> = Result extends PolymorphicBooleanAssertionHandle<infer Refined, infer HasGate> ? BooleanAssertionHandle<Kind, Refined, HasGate> : Result extends PolymorphicMeasurementAssertionHandle<infer HasCondition> ? MeasurementAssertionHandle<Kind, HasCondition> : never;\ntype BoundAdapterAssertionMethod<Kind extends EvaluationKind, Method> = Method extends (...args: infer Args) => infer Result ? ((...args: Args) => Result) extends Method ? (...args: Args) => BoundAdapterAssertionResult<Kind, Result> : never : never;\ntype AdapterAssertionsFor<Assertions extends object | undefined, Kind extends EvaluationKind> = Assertions extends object ? {\n readonly [Key in keyof Assertions]: BoundAdapterAssertionMethod<Kind, Assertions[Key]>;\n} : {};\n/** Keys owned by the neutral Eval runtime or unsafe on a merged object root. */\nconst RESERVED_ADAPTER_CONTEXT_KEYS = [\n \"evaluationKind\",\n \"check\",\n \"judge\",\n \"factuality\",\n \"faithfulness\",\n \"instructionFollowing\",\n \"pairwisePreference\",\n \"closeQA\",\n \"score\",\n \"group\",\n \"skip\",\n \"signal\",\n \"model\",\n \"reasoningEffort\",\n \"flags\",\n \"progress\",\n \"diagnostic\",\n \"log\",\n \"then\",\n \"Object\",\n \"constructor\",\n \"__defineGetter__\",\n \"__defineSetter__\",\n \"hasOwnProperty\",\n \"__lookupGetter__\",\n \"__lookupSetter__\",\n \"isPrototypeOf\",\n \"propertyIsEnumerable\",\n \"toString\",\n \"valueOf\",\n \"__proto__\",\n \"toLocaleString\",\n] as const;\nexport type ReservedAdapterContextKey = typeof RESERVED_ADAPTER_CONTEXT_KEYS[number];\ntype InvalidContextBranch<Context> = Context extends unknown ? Context extends object ? Context extends readonly unknown[] ? Context : Context extends (...args: readonly never[]) => unknown ? Context : string extends keyof Context ? Context : Extract<keyof Context, ReservedAdapterContextKey> extends never ? never : Context : Context : never;\ntype AdapterContextValidation<Context> = unknown extends Context ? unknown : [\n InvalidContextBranch<Context>\n] extends [\n never\n] ? unknown : {\n readonly invalidAdapterContext: InvalidContextBranch<Context>;\n};\ntype InvalidAssertionMethodKey<Context extends object, Assertions> = Assertions extends object ? {\n [Key in keyof Assertions]: Key extends string ? Key extends ReservedAdapterContextKey | keyof Context ? Key : Assertions[Key] extends (...args: readonly never[]) => infer Result ? Result extends PolymorphicBooleanAssertionHandle<unknown, boolean> | PolymorphicMeasurementAssertionHandle<boolean> ? never : Key : Key : Key;\n}[keyof Assertions] : \"assertions\";\ntype InvalidAdapterAssertions<Context extends object, Assertions extends object> = InvalidAssertionMethodKey<Context, Assertions>;\ntype AdapterAssertionsValidation<Context extends object, Assertions extends object> = [\n InvalidAdapterAssertions<Context, Assertions>\n] extends [\n never\n] ? unknown : {\n readonly invalidAdapterAssertions: InvalidAdapterAssertions<Context, Assertions>;\n};\ntype AdapterAssertionsValidationArgs<Context extends object, Assertions extends object> = [\n InvalidAdapterAssertions<Context, Assertions>\n] extends [\n never\n] ? [\n] : [\n error: {\n readonly invalidAdapterAssertions: InvalidAdapterAssertions<Context, Assertions>;\n }\n];\ntype AdapterFactory<Context extends object, Flags extends AdapterFlagsParser = undefined> = (context: AdapterCreateContext<AdapterFlagsOutput<Flags>>) => (Context & ThisType<Context>) | Promise<Context & ThisType<Context>>;\nexport interface AdapterCleanupContext {\n /** 当前 Adapter cleanup 总窗口的取消信号。它独立于 Attempt signal,并在 30 秒总预算结束时取消。 */\n readonly signal: AbortSignal;\n}\nexport interface AdapterCreateContext<Flags = ExperimentFlags> {\n recordUsage(input: import(\"./adapter-usage.ts\").AdapterUsageInput): void;\n attach(input: import(\"./adapter-attachments.ts\").AdapterAttachmentInput): Promise<import(\"./adapter-attachments.ts\").AdapterAttachmentReceipt>;\n recordTrace<Event extends import(\"./adapter-execution-trace.ts\").ExecutionTraceEvent>(input: import(\"./adapter-execution-trace.ts\").ExecutionTraceInput<Event>): Promise<import(\"./adapter-execution-trace.ts\").ExecutionTraceReceipt>;\n /** 当前 Eval 的公开 ID。 */\n readonly evalId: string;\n /** 当前 Experiment 的公开 ID。 */\n readonly experimentId: string;\n /** 当前 Attempt 的零起始序号。 */\n readonly attempt: number;\n /** Attempt 执行信号;取消或超时后会中止,不用于 cleanup 窗口。 */\n readonly signal: AbortSignal;\n /** Experiment 选择的模型。 */\n readonly model?: string;\n /** Experiment 选择的推理强度。 */\n readonly reasoningEffort?: string;\n /** Experiment 传给 Adapter 的只读 flags。 */\n readonly flags: Flags;\n /** 更新当前 Attempt 的人读进度。 */\n progress(update: ProgressUpdate): void;\n /** 为当前 Attempt 追加结构化诊断。 */\n diagnostic(input: DiagnosticInput): void;\n /** 为当前 Attempt 追加日志。 */\n log(message: string): void;\n /**\n * 登记 Attempt-local 资源释放。回调按全局 LIFO 执行;一项失败不会跳过其余项。\n * 零参数回调仍可直接传入。传入的 context 已冻结,同一 cleanup 窗口的回调共享一个 signal。\n */\n onCleanup(cleanup: (context: AdapterCleanupContext) => void | Promise<void>): void;\n}\ntype EvalContextBase<Kind extends EvaluationKind, Flags> = JudgePresetMethods<Kind> & {\n readonly evaluationKind: Kind;\n readonly signal: AbortSignal;\n readonly model?: string;\n readonly reasoningEffort?: string;\n readonly flags: Flags;\n progress(update: ProgressUpdate): void;\n diagnostic(input: 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 readonly check: AssertionsRuntime<Kind>[\"t\"][\"check\"];\n readonly judge: <Value>(value: AssertionSubject<Value>, definition: ScoreMatch<NoInfer<Value>>) => MeasurementAssertionHandle<Kind>;\n};\n/** Agent-neutral author context shared by every Adapter Eval. */\nexport type EvalContext<Kind extends EvaluationKind = \"pass\", Flags = ExperimentFlags> = EvalContextBase<Kind, Flags> & (Kind extends \"score\" ? {\n readonly score: AssertionsRuntime<\"score\">[\"t\"][\"score\"];\n} : {});\ntype AdapterEvalFields = Omit<EvalInput<undefined>, \"test\" | \"sandbox\" | \"diff\"> & {\n readonly sandbox?: never;\n readonly diff?: never;\n};\ntype AdapterScoreEvalFields = Omit<ScoreEvalInput<undefined>, \"test\" | \"sandbox\" | \"diff\"> & {\n readonly sandbox?: never;\n readonly diff?: never;\n};\nexport type AdapterEvalInput<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> = AdapterEvalFields & {\n test(t: EvalContext<\"pass\", AdapterFlagsOutput<Flags>> & Readonly<Context> & AdapterAssertionsFor<Assertions, \"pass\">): void | Promise<void>;\n};\nexport type AdapterScoreEvalInput<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> = AdapterScoreEvalFields & {\n test(t: EvalContext<\"score\", AdapterFlagsOutput<Flags>> & Readonly<Context> & AdapterAssertionsFor<Assertions, \"score\">): void | Promise<void>;\n};\ninterface AdapterContractToken<Context extends object, Assertions extends object | undefined, Flags extends AdapterFlagsParser = undefined> {\n readonly name: string;\n readonly assertions: AdapterAssertionsFactory<Context> | undefined;\n readonly parseFlags: Flags;\n /** Keeps the Assertion method shape invariant without exposing a constructible brand. */\n readonly assertionTypes: (value: Assertions) => Assertions;\n /** Keeps the context parameter invariant without exposing a constructible brand. */\n readonly context: (value: Context) => Context;\n}\nexport interface AdapterEvalDefinition<Kind extends EvaluationKind, Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> extends EvalDefinition<Kind, EvalContext<Kind, AdapterFlagsOutput<Flags>> & Readonly<Context> & AdapterAssertionsFor<Assertions, Kind>, undefined> {\n readonly [EVAL_ADAPTER_CONTRACT_TOKEN]: AdapterContractToken<Context, Assertions, Flags>;\n}\n/** @internal Existential discovery view; concrete bound factories retain their exact Context. */\nexport interface AdapterRuntimeEvalDefinition<Kind extends EvaluationKind> extends EvalDefinition<Kind, never, undefined> {\n readonly [EVAL_ADAPTER_CONTRACT_TOKEN]: object;\n}\n/** Common public surface for an Adapter definition with bound Eval factories. */\nexport interface AdapterDefinition<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> {\n readonly name: string;\n readonly parseFlags: Flags;\n defineEval(input: AdapterEvalInput<Context, Assertions, Flags>): AdapterEvalDefinition<\"pass\", Context, Assertions, Flags>;\n defineScoreEval(input: AdapterScoreEvalInput<Context, Assertions, Flags>): AdapterEvalDefinition<\"score\", Context, Assertions, Flags>;\n}\n/** Existential runtime view used by Experiment without erasing a concrete context to `any`. */\nexport interface AdapterRuntimeDefinition {\n readonly parseFlags?: Exclude<AdapterFlagsParser, undefined>;\n readonly kind: \"custom\";\n readonly name: string;\n readonly contract: string;\n readonly behaviorRevision: string | null;\n readonly [ADAPTER_CONTRACT_TOKEN]: object;\n readonly defineEval: (...args: never[]) => unknown;\n readonly defineScoreEval: (...args: never[]) => unknown;\n create(context: AdapterCreateContext<unknown>): object | Promise<object>;\n}\nexport interface AdapterImplementation<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> extends AdapterDefinition<Context, Assertions, Flags> {\n readonly kind: \"custom\";\n readonly contract: string;\n readonly behaviorRevision: string | null;\n readonly [ADAPTER_CONTRACT_TOKEN]: AdapterContractToken<Context, Assertions, Flags>;\n create(context: AdapterCreateContext<AdapterFlagsOutput<Flags>>): Context | Promise<Context>;\n}\nexport type AdapterImplementationInput<Context extends object, ImplementationContext extends Context = Context, Flags extends AdapterFlagsParser = undefined> = {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<ImplementationContext, Flags>;\n} & AdapterContextValidation<NoInfer<ImplementationContext>>;\nexport interface AdapterContract<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> extends AdapterDefinition<Context, Assertions, Flags> {\n readonly name: string;\n implement<ImplementationContext extends Context>(input: AdapterImplementationInput<Context, ImplementationContext, Flags>): AdapterImplementation<Context, Assertions, Flags>;\n /**\n * Returns a contract whose Eval factories and implementations share one flags parser.\n */\n withParseFlags<NextFlags extends Exclude<AdapterFlagsParser, undefined>>(parseFlags: NextFlags, ...validation: AdapterFlagsParserValidationArgs<NoInfer<NextFlags>>): AdapterContract<Context, Assertions, NextFlags>;\n /** Returns a contract whose implementations share this exact Assertion factory. */\n withAssertions<NextAssertions extends object>(factory: AdapterAssertionsFactory<Context, NextAssertions>, ...validation: AdapterAssertionsValidationArgs<Context, NoInfer<NextAssertions>>): AdapterContract<Context, NextAssertions, Flags>;\n}\nexport type Adapter = import(\"./agents/types.ts\").Agent | AdapterRuntimeDefinition;\nfunction assertNonEmptyString(value: unknown, field: string, factory: string): asserts value is string {\n if (typeof value !== \"string\" || value.trim() === \"\") {\n throw new TypeError(`${factory} requires a non-empty ${field}.`);\n }\n}\nfunction contractToken<Context extends object, Assertions extends object | undefined, Flags extends AdapterFlagsParser>(name: string, assertions: AdapterAssertionsFactory<Context> | undefined, parseFlags: Flags): AdapterContractToken<Context, Assertions, Flags> {\n return Object.freeze({\n name,\n assertions,\n parseFlags,\n assertionTypes: (value: Assertions) => value,\n context: (value: Context) => value,\n });\n}\nfunction assertAdapterEvalInput(value: {\n readonly sandbox?: unknown;\n readonly diff?: unknown;\n}, factory: \"defineEval\" | \"defineScoreEval\"): void {\n if (Object.hasOwn(value, \"sandbox\")) {\n throw new TypeError(`${factory} for an Adapter does not support sandbox.`);\n }\n if (Object.hasOwn(value, \"diff\")) {\n throw new TypeError(`${factory} for an Adapter does not support Agent workspace diff configuration.`);\n }\n}\nfunction boundEvalFactories<Context extends object, Assertions extends object | undefined, Flags extends AdapterFlagsParser>(token: AdapterContractToken<Context, Assertions, Flags>): Pick<AdapterDefinition<Context, Assertions, Flags>, \"defineEval\" | \"defineScoreEval\"> {\n return {\n defineEval(input) {\n assertAdapterEvalInput(input, \"defineEval\");\n return defineEvalForContext(\"pass\", input, {\n [EVAL_ADAPTER_CONTRACT_TOKEN]: token,\n }) as AdapterEvalDefinition<\"pass\", Context, Assertions, Flags>;\n },\n defineScoreEval(input) {\n assertAdapterEvalInput(input, \"defineScoreEval\");\n return defineEvalForContext(\"score\", input, {\n [EVAL_ADAPTER_CONTRACT_TOKEN]: token,\n }) as AdapterEvalDefinition<\"score\", Context, Assertions, Flags>;\n },\n };\n}\nfunction implementAdapter<Context extends object, Assertions extends object | undefined, Flags extends AdapterFlagsParser>(token: AdapterContractToken<Context, Assertions, Flags>, input: {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<Context, Flags>;\n}, factory: \"defineAdapter\" | \"AdapterContract.implement\"): AdapterImplementation<Context, Assertions, Flags> {\n assertNonEmptyString(input.name, \"name\", factory);\n if (input.behaviorRevision !== undefined) {\n assertNonEmptyString(input.behaviorRevision, \"behaviorRevision\", factory);\n }\n if (typeof input.create !== \"function\") {\n throw new TypeError(`${factory} requires create(context).`);\n }\n const authorCreate = input.create;\n const create = (context: AdapterCreateContext<AdapterFlagsOutput<Flags>>): Context | Promise<Context> => {\n const created = authorCreate(context);\n if (created instanceof Promise) {\n return created.then((value) => {\n assertPlainAdapterContext(value);\n return value;\n });\n }\n // Validate before a caller can pass a synchronous thenable to Promise adaptation.\n assertPlainAdapterContext(created);\n return created;\n };\n return Object.freeze({\n kind: \"custom\" as const,\n parseFlags: token.parseFlags,\n name: input.name,\n contract: token.name,\n behaviorRevision: input.behaviorRevision ?? null,\n create,\n [ADAPTER_CONTRACT_TOKEN]: token,\n ...boundEvalFactories(token),\n }) as AdapterImplementation<Context, Assertions, Flags>;\n}\n/** Defines one Adapter implementation with an automatically private contract. */\nexport function defineAdapter<Context extends object, Flags extends AdapterFlagsParser = undefined>(input: {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<Context, Flags>;\n readonly parseFlags?: Flags;\n readonly assertions?: undefined;\n} & AdapterContextValidation<NoInfer<Context>> & AdapterFlagsParserValidation<NoInfer<Flags>>): AdapterImplementation<Context, undefined, Flags>;\nexport function defineAdapter<Context extends object, Assertions extends object, Flags extends AdapterFlagsParser = undefined>(input: {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<Context, Flags>;\n readonly parseFlags?: Flags;\n /** Attempt-local Assertion sugar, assembled once after create() succeeds. */\n readonly assertions: AdapterAssertionsFactory<Context, Assertions>;\n} & AdapterContextValidation<NoInfer<Context>> & AdapterFlagsParserValidation<NoInfer<Flags>> & AdapterAssertionsValidation<Context, NoInfer<Assertions>>): AdapterImplementation<Context, Assertions, Flags>;\nexport function defineAdapter(input: {\n readonly name: string;\n readonly behaviorRevision?: string;\n readonly create: AdapterFactory<object, AdapterFlagsParser>;\n readonly parseFlags?: Exclude<AdapterFlagsParser, undefined>;\n readonly assertions?: AdapterAssertionsFactory<object>;\n}): AdapterRuntimeDefinition {\n if (input.parseFlags !== undefined)\n assertAdapterFlagsParser(input.parseFlags);\n const assertions = input.assertions;\n if (assertions !== undefined && typeof assertions !== \"function\") {\n throw new TypeError(\"defineAdapter assertions must be a function.\");\n }\n return implementAdapter(contractToken<object, object | undefined, AdapterFlagsParser>(input.name, assertions, input.parseFlags), input, \"defineAdapter\");\n}\n/** Defines a reusable contract whose implementations and Evals share one runtime-only token. */\nexport function defineAdapterContract<Context extends object>(input: {\n readonly name: string;\n} & AdapterContextValidation<NoInfer<Context>>): AdapterContract<Context> {\n assertNonEmptyString(input.name, \"name\", \"defineAdapterContract\");\n return makeAdapterContract(contractToken<Context, undefined, undefined>(input.name, undefined, undefined));\n}\nfunction makeAdapterContract<Context extends object, Assertions extends object | undefined, Flags extends AdapterFlagsParser>(token: AdapterContractToken<Context, Assertions, Flags>): AdapterContract<Context, Assertions, Flags> {\n const factories = boundEvalFactories(token);\n return Object.freeze({\n name: token.name,\n parseFlags: token.parseFlags,\n ...factories,\n implement<ImplementationContext extends Context>(implementation: AdapterImplementationInput<Context, ImplementationContext, Flags>) {\n return implementAdapter(token, implementation, \"AdapterContract.implement\");\n },\n withParseFlags<NextFlags extends Exclude<AdapterFlagsParser, undefined>>(parseFlags: NextFlags, ..._validation: AdapterFlagsParserValidationArgs<NoInfer<NextFlags>>) {\n assertAdapterFlagsParser(parseFlags);\n return makeAdapterContract(contractToken<Context, Assertions, NextFlags>(token.name, token.assertions, parseFlags));\n },\n withAssertions<NextAssertions extends object>(factory: AdapterAssertionsFactory<Context, NextAssertions>, ..._validation: AdapterAssertionsValidationArgs<Context, NoInfer<NextAssertions>>) {\n if (typeof factory !== \"function\") {\n throw new TypeError(\"AdapterContract.withAssertions requires a function.\");\n }\n return makeAdapterContract(contractToken<Context, NextAssertions, Flags>(token.name, factory, token.parseFlags));\n },\n });\n}\n/** The single credential-free persistence projection for an Adapter. */\nexport function adapterIdentity(adapter: Adapter): AdapterIdentity {\n return adapter.kind === \"custom\"\n ? Object.freeze({\n name: adapter.name,\n contract: adapter.contract,\n behaviorRevision: adapter.behaviorRevision,\n })\n : Object.freeze({\n name: adapter.name,\n contract: \"niceeval.agent/v1\",\n behaviorRevision: null,\n });\n}\n/** @internal Runtime contract pairing; the token itself never enters persistence. */\nexport function adapterAcceptsEval(adapter: Adapter, definition: object): boolean {\n const required = (definition as {\n readonly [EVAL_ADAPTER_CONTRACT_TOKEN]?: unknown;\n })[EVAL_ADAPTER_CONTRACT_TOKEN];\n if (adapter.kind === \"custom\") {\n const provided = adapter[ADAPTER_CONTRACT_TOKEN];\n return required !== undefined && provided !== undefined && required === provided;\n }\n return required === undefined;\n}\n/** @internal Returns the readable contract name without revealing the pairing token. */\nexport function adapterContractRequiredByEval(definition: object): string | undefined {\n return (definition as {\n readonly [EVAL_ADAPTER_CONTRACT_TOKEN]?: {\n readonly name: string;\n };\n })[EVAL_ADAPTER_CONTRACT_TOKEN]?.name;\n}\nconst RESERVED_ADAPTER_CONTEXT_KEY_SET: ReadonlySet<string> = new Set(RESERVED_ADAPTER_CONTEXT_KEYS);\nfunction assertPlainAdapterContext(value: unknown): asserts value is object {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"Adapter create(context) must return a plain object.\");\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n throw new TypeError(\"Adapter create(context) must return an explicit plain object.\");\n }\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key === \"string\" && RESERVED_ADAPTER_CONTEXT_KEY_SET.has(key)) {\n throw new TypeError(`Adapter context key ${JSON.stringify(key)} is reserved.`);\n }\n }\n}\nfunction forwardProperties(target: object, source: object, guardAccess: boolean, assertAuthorOpen: () => void): void {\n for (const key of Reflect.ownKeys(source)) {\n const descriptor = Object.getOwnPropertyDescriptor(source, key);\n if (descriptor === undefined)\n continue;\n if (\"value\" in descriptor && typeof descriptor.value === \"function\") {\n const method = guardAccess\n ? function (this: unknown, ...args: readonly unknown[]) {\n assertAuthorOpen();\n return Reflect.apply(descriptor.value, source, args);\n }\n : descriptor.value.bind(source);\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: false,\n writable: false,\n value: method,\n });\n }\n else {\n Object.defineProperty(target, key, {\n enumerable: true,\n configurable: false,\n get: () => {\n if (guardAccess)\n assertAuthorOpen();\n const value = Reflect.get(source, key, source);\n if (typeof value !== \"function\")\n return value;\n return guardAccess\n ? (...args: readonly unknown[]) => {\n assertAuthorOpen();\n return Reflect.apply(value, source, args);\n }\n : value.bind(source);\n },\n });\n }\n }\n}\n/** Observes only branded native Promises without reading an arbitrary `.then` property. */\nfunction observeNativePromiseRejection(value: unknown): boolean {\n if ((typeof value !== \"object\" && typeof value !== \"function\") || value === null)\n return false;\n try {\n void Reflect.apply(Promise.prototype.then, value, [\n undefined,\n () => undefined,\n ]);\n return true;\n }\n catch {\n return false;\n }\n}\nfunction assertPlainAdapterAssertions(value: unknown, context: object): asserts value is object {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new TypeError(\"Adapter assertions factory must return a plain object of methods.\");\n }\n const prototype = Object.getPrototypeOf(value);\n if (prototype !== Object.prototype && prototype !== null) {\n observeNativePromiseRejection(value);\n throw new TypeError(\"Adapter assertions factory must return an explicit plain object.\");\n }\n const contextKeys = new Set(Reflect.ownKeys(context));\n for (const key of Reflect.ownKeys(value)) {\n if (typeof key !== \"string\") {\n throw new TypeError(\"Adapter assertion method names must be strings.\");\n }\n if (RESERVED_ADAPTER_CONTEXT_KEY_SET.has(key)) {\n throw new TypeError(`Adapter assertion method name ${JSON.stringify(key)} is reserved.`);\n }\n if (contextKeys.has(key)) {\n throw new TypeError(`Adapter assertion method name ${JSON.stringify(key)} conflicts with an app member.`);\n }\n const descriptor = Object.getOwnPropertyDescriptor(value, key);\n if (descriptor === undefined || !(\"value\" in descriptor) || typeof descriptor.value !== \"function\") {\n throw new TypeError(`Adapter assertion ${JSON.stringify(key)} must be an own data method.`);\n }\n }\n}\nfunction bindAdapterAppContext<Context>(context: Context, assertAppOpen: () => void): Readonly<Context> {\n const target = Object.create(null) as object;\n forwardProperties(target, context as object, true, assertAppOpen);\n return Object.freeze(target) as Readonly<Context>;\n}\nfunction bindAdapterAssertions<Kind extends EvaluationKind, Context extends object>(core: EvalContext<Kind>, context: Context, factory: AdapterAssertionsFactory<Context>, assertAuthorOpen: () => void): {\n readonly app: Readonly<Context>;\n readonly assertions: object;\n} {\n let assembled = false;\n const assertAppOpen = (): void => {\n assertAuthorOpen();\n if (!assembled) {\n throw new TypeError(\"Adapter assertions factory may only assemble methods; app access starts afterward.\");\n }\n };\n const app = bindAdapterAppContext(context, assertAppOpen);\n const handleFrames: Array<WeakSet<object>> = [];\n const check = (...args: readonly unknown[]): unknown => {\n assertAuthorOpen();\n const frame = handleFrames.at(-1);\n if (frame === undefined) {\n throw new TypeError(\"Adapter assertions factory may call check only from an assertion method.\");\n }\n const handle = Reflect.apply(core.check, undefined, args);\n if ((typeof handle !== \"object\" && typeof handle !== \"function\") || handle === null) {\n throw new TypeError(\"Adapter assertion check did not return an AssertionHandle.\");\n }\n frame.add(handle);\n return handle;\n };\n const authored = factory({\n app,\n check: check as AssertionCheck<\"polymorphic\">,\n });\n assertPlainAdapterAssertions(authored, context);\n Object.freeze(authored);\n assembled = true;\n const assertions = Object.create(null) as object;\n for (const key of Reflect.ownKeys(authored)) {\n const descriptor = Object.getOwnPropertyDescriptor(authored, key)!;\n const method = descriptor.value as (...args: readonly unknown[]) => unknown;\n Object.defineProperty(assertions, key, {\n enumerable: true,\n configurable: false,\n writable: false,\n value: (...args: readonly unknown[]) => {\n assertAuthorOpen();\n const frame = new WeakSet<object>();\n handleFrames.push(frame);\n try {\n const handle = Reflect.apply(method, authored, args);\n if ((typeof handle !== \"object\" && typeof handle !== \"function\") || handle === null || !frame.has(handle)) {\n observeNativePromiseRejection(handle);\n throw new TypeError(`Adapter assertion ${JSON.stringify(key)} must synchronously return its own check() handle.`);\n }\n return handle;\n }\n finally {\n handleFrames.pop();\n }\n },\n });\n }\n return Object.freeze({ app, assertions: Object.freeze(assertions) });\n}\n/** @internal Builds the frozen single-t facade after create settles. */\nexport function bindAdapterEvalContext<Kind extends EvaluationKind, Context>(core: EvalContext<Kind>, context: Context, adapter: AdapterRuntimeDefinition, assertAuthorOpen: () => void): EvalContext<Kind> & Readonly<Context> {\n assertPlainAdapterContext(context);\n const token = adapter[ADAPTER_CONTRACT_TOKEN] as AdapterContractToken<Context & object, object | undefined>;\n let app: Readonly<Context>;\n let assertions: object | undefined;\n if (token.assertions === undefined) {\n app = bindAdapterAppContext(context, assertAuthorOpen);\n }\n else {\n const bound = bindAdapterAssertions(core, context, token.assertions, assertAuthorOpen);\n app = bound.app;\n assertions = bound.assertions;\n }\n const target = Object.create(null) as object;\n forwardProperties(target, core, false, assertAuthorOpen);\n forwardProperties(target, app, false, assertAuthorOpen);\n if (assertions !== undefined)\n forwardProperties(target, assertions, false, assertAuthorOpen);\n return Object.freeze(target) as EvalContext<Kind> & Readonly<Context>;\n}\n"]}
|
package/dist/adapter.d.cts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
import type { ExperimentFlags } from "./shared/types.cjs";
|
|
2
|
+
import { type AdapterFlagsParser, type AdapterFlagsOutput, type AdapterFlagsParserValidation, type AdapterFlagsParserValidationArgs } from "./adapter-flags.cjs";
|
|
1
3
|
import type { AssertionCheck, AssertionSubject, AssertionsRuntime, BooleanAssertionHandle, MeasurementAssertionHandle, PolymorphicBooleanAssertionHandle, PolymorphicMeasurementAssertionHandle } from "./assertions/api.cjs";
|
|
2
4
|
import type { ScoreMatch } from "./assertions/match.cjs";
|
|
3
5
|
import type { EvalDefinition, EvalInput, ScoreEvalInput } from "./runner/types.cjs";
|
|
4
6
|
import type { EvaluationKind } from "./shared/evaluation.cjs";
|
|
5
7
|
import type { JudgePresetMethods } from "./context/assert-first.cjs";
|
|
6
|
-
import type { DiagnosticInput,
|
|
8
|
+
import type { DiagnosticInput, ProgressUpdate } from "./shared/types.cjs";
|
|
7
9
|
import type { AdapterIdentity } from "./record/model/run-context.cjs";
|
|
8
10
|
export type { AdapterIdentity } from "./record/model/run-context.cjs";
|
|
9
11
|
declare const ADAPTER_CONTRACT_TOKEN: unique symbol;
|
|
@@ -46,12 +48,15 @@ type AdapterAssertionsValidation<Context extends object, Assertions extends obje
|
|
|
46
48
|
type AdapterAssertionsValidationArgs<Context extends object, Assertions extends object> = [InvalidAdapterAssertions<Context, Assertions>] extends [never] ? [] : [error: {
|
|
47
49
|
readonly invalidAdapterAssertions: InvalidAdapterAssertions<Context, Assertions>;
|
|
48
50
|
}];
|
|
49
|
-
type AdapterFactory<Context extends object> = (context: AdapterCreateContext) => (Context & ThisType<Context>) | Promise<Context & ThisType<Context>>;
|
|
51
|
+
type AdapterFactory<Context extends object, Flags extends AdapterFlagsParser = undefined> = (context: AdapterCreateContext<AdapterFlagsOutput<Flags>>) => (Context & ThisType<Context>) | Promise<Context & ThisType<Context>>;
|
|
50
52
|
export interface AdapterCleanupContext {
|
|
51
53
|
/** 当前 Adapter cleanup 总窗口的取消信号。它独立于 Attempt signal,并在 30 秒总预算结束时取消。 */
|
|
52
54
|
readonly signal: AbortSignal;
|
|
53
55
|
}
|
|
54
|
-
export interface AdapterCreateContext {
|
|
56
|
+
export interface AdapterCreateContext<Flags = ExperimentFlags> {
|
|
57
|
+
recordUsage(input: import("./adapter-usage.cjs").AdapterUsageInput): void;
|
|
58
|
+
attach(input: import("./adapter-attachments.cjs").AdapterAttachmentInput): Promise<import("./adapter-attachments.cjs").AdapterAttachmentReceipt>;
|
|
59
|
+
recordTrace<Event extends import("./adapter-execution-trace.cjs").ExecutionTraceEvent>(input: import("./adapter-execution-trace.cjs").ExecutionTraceInput<Event>): Promise<import("./adapter-execution-trace.cjs").ExecutionTraceReceipt>;
|
|
55
60
|
/** 当前 Eval 的公开 ID。 */
|
|
56
61
|
readonly evalId: string;
|
|
57
62
|
/** 当前 Experiment 的公开 ID。 */
|
|
@@ -65,7 +70,7 @@ export interface AdapterCreateContext {
|
|
|
65
70
|
/** Experiment 选择的推理强度。 */
|
|
66
71
|
readonly reasoningEffort?: string;
|
|
67
72
|
/** Experiment 传给 Adapter 的只读 flags。 */
|
|
68
|
-
readonly flags:
|
|
73
|
+
readonly flags: Flags;
|
|
69
74
|
/** 更新当前 Attempt 的人读进度。 */
|
|
70
75
|
progress(update: ProgressUpdate): void;
|
|
71
76
|
/** 为当前 Attempt 追加结构化诊断。 */
|
|
@@ -78,12 +83,12 @@ export interface AdapterCreateContext {
|
|
|
78
83
|
*/
|
|
79
84
|
onCleanup(cleanup: (context: AdapterCleanupContext) => void | Promise<void>): void;
|
|
80
85
|
}
|
|
81
|
-
type EvalContextBase<Kind extends EvaluationKind> = JudgePresetMethods<Kind> & {
|
|
86
|
+
type EvalContextBase<Kind extends EvaluationKind, Flags> = JudgePresetMethods<Kind> & {
|
|
82
87
|
readonly evaluationKind: Kind;
|
|
83
88
|
readonly signal: AbortSignal;
|
|
84
89
|
readonly model?: string;
|
|
85
90
|
readonly reasoningEffort?: string;
|
|
86
|
-
readonly flags:
|
|
91
|
+
readonly flags: Flags;
|
|
87
92
|
progress(update: ProgressUpdate): void;
|
|
88
93
|
diagnostic(input: DiagnosticInput): void;
|
|
89
94
|
log(message: string): void;
|
|
@@ -93,7 +98,7 @@ type EvalContextBase<Kind extends EvaluationKind> = JudgePresetMethods<Kind> & {
|
|
|
93
98
|
readonly judge: <Value>(value: AssertionSubject<Value>, definition: ScoreMatch<NoInfer<Value>>) => MeasurementAssertionHandle<Kind>;
|
|
94
99
|
};
|
|
95
100
|
/** Agent-neutral author context shared by every Adapter Eval. */
|
|
96
|
-
export type EvalContext<Kind extends EvaluationKind = "pass"> = EvalContextBase<Kind> & (Kind extends "score" ? {
|
|
101
|
+
export type EvalContext<Kind extends EvaluationKind = "pass", Flags = ExperimentFlags> = EvalContextBase<Kind, Flags> & (Kind extends "score" ? {
|
|
97
102
|
readonly score: AssertionsRuntime<"score">["t"]["score"];
|
|
98
103
|
} : {});
|
|
99
104
|
type AdapterEvalFields = Omit<EvalInput<undefined>, "test" | "sandbox" | "diff"> & {
|
|
@@ -104,35 +109,38 @@ type AdapterScoreEvalFields = Omit<ScoreEvalInput<undefined>, "test" | "sandbox"
|
|
|
104
109
|
readonly sandbox?: never;
|
|
105
110
|
readonly diff?: never;
|
|
106
111
|
};
|
|
107
|
-
export type AdapterEvalInput<Context extends object, Assertions extends object | undefined = undefined> = AdapterEvalFields & {
|
|
108
|
-
test(t: EvalContext<"pass"
|
|
112
|
+
export type AdapterEvalInput<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> = AdapterEvalFields & {
|
|
113
|
+
test(t: EvalContext<"pass", AdapterFlagsOutput<Flags>> & Readonly<Context> & AdapterAssertionsFor<Assertions, "pass">): void | Promise<void>;
|
|
109
114
|
};
|
|
110
|
-
export type AdapterScoreEvalInput<Context extends object, Assertions extends object | undefined = undefined> = AdapterScoreEvalFields & {
|
|
111
|
-
test(t: EvalContext<"score"
|
|
115
|
+
export type AdapterScoreEvalInput<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> = AdapterScoreEvalFields & {
|
|
116
|
+
test(t: EvalContext<"score", AdapterFlagsOutput<Flags>> & Readonly<Context> & AdapterAssertionsFor<Assertions, "score">): void | Promise<void>;
|
|
112
117
|
};
|
|
113
|
-
interface AdapterContractToken<Context extends object, Assertions extends object | undefined> {
|
|
118
|
+
interface AdapterContractToken<Context extends object, Assertions extends object | undefined, Flags extends AdapterFlagsParser = undefined> {
|
|
114
119
|
readonly name: string;
|
|
115
120
|
readonly assertions: AdapterAssertionsFactory<Context> | undefined;
|
|
121
|
+
readonly parseFlags: Flags;
|
|
116
122
|
/** Keeps the Assertion method shape invariant without exposing a constructible brand. */
|
|
117
123
|
readonly assertionTypes: (value: Assertions) => Assertions;
|
|
118
124
|
/** Keeps the context parameter invariant without exposing a constructible brand. */
|
|
119
125
|
readonly context: (value: Context) => Context;
|
|
120
126
|
}
|
|
121
|
-
export interface AdapterEvalDefinition<Kind extends EvaluationKind, Context extends object, Assertions extends object | undefined = undefined> extends EvalDefinition<Kind, EvalContext<Kind
|
|
122
|
-
readonly [EVAL_ADAPTER_CONTRACT_TOKEN]: AdapterContractToken<Context, Assertions>;
|
|
127
|
+
export interface AdapterEvalDefinition<Kind extends EvaluationKind, Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> extends EvalDefinition<Kind, EvalContext<Kind, AdapterFlagsOutput<Flags>> & Readonly<Context> & AdapterAssertionsFor<Assertions, Kind>, undefined> {
|
|
128
|
+
readonly [EVAL_ADAPTER_CONTRACT_TOKEN]: AdapterContractToken<Context, Assertions, Flags>;
|
|
123
129
|
}
|
|
124
130
|
/** @internal Existential discovery view; concrete bound factories retain their exact Context. */
|
|
125
131
|
export interface AdapterRuntimeEvalDefinition<Kind extends EvaluationKind> extends EvalDefinition<Kind, never, undefined> {
|
|
126
132
|
readonly [EVAL_ADAPTER_CONTRACT_TOKEN]: object;
|
|
127
133
|
}
|
|
128
134
|
/** Common public surface for an Adapter definition with bound Eval factories. */
|
|
129
|
-
export interface AdapterDefinition<Context extends object, Assertions extends object | undefined = undefined> {
|
|
135
|
+
export interface AdapterDefinition<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> {
|
|
130
136
|
readonly name: string;
|
|
131
|
-
|
|
132
|
-
|
|
137
|
+
readonly parseFlags: Flags;
|
|
138
|
+
defineEval(input: AdapterEvalInput<Context, Assertions, Flags>): AdapterEvalDefinition<"pass", Context, Assertions, Flags>;
|
|
139
|
+
defineScoreEval(input: AdapterScoreEvalInput<Context, Assertions, Flags>): AdapterEvalDefinition<"score", Context, Assertions, Flags>;
|
|
133
140
|
}
|
|
134
141
|
/** Existential runtime view used by Experiment without erasing a concrete context to `any`. */
|
|
135
142
|
export interface AdapterRuntimeDefinition {
|
|
143
|
+
readonly parseFlags?: Exclude<AdapterFlagsParser, undefined>;
|
|
136
144
|
readonly kind: "custom";
|
|
137
145
|
readonly name: string;
|
|
138
146
|
readonly contract: string;
|
|
@@ -140,44 +148,47 @@ export interface AdapterRuntimeDefinition {
|
|
|
140
148
|
readonly [ADAPTER_CONTRACT_TOKEN]: object;
|
|
141
149
|
readonly defineEval: (...args: never[]) => unknown;
|
|
142
150
|
readonly defineScoreEval: (...args: never[]) => unknown;
|
|
143
|
-
create(context: AdapterCreateContext): object | Promise<object>;
|
|
151
|
+
create(context: AdapterCreateContext<unknown>): object | Promise<object>;
|
|
144
152
|
}
|
|
145
|
-
export interface AdapterImplementation<Context extends object, Assertions extends object | undefined = undefined> extends AdapterDefinition<Context, Assertions> {
|
|
153
|
+
export interface AdapterImplementation<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> extends AdapterDefinition<Context, Assertions, Flags> {
|
|
146
154
|
readonly kind: "custom";
|
|
147
155
|
readonly contract: string;
|
|
148
156
|
readonly behaviorRevision: string | null;
|
|
149
|
-
readonly [ADAPTER_CONTRACT_TOKEN]: AdapterContractToken<Context, Assertions>;
|
|
150
|
-
create(context: AdapterCreateContext): Context | Promise<Context>;
|
|
157
|
+
readonly [ADAPTER_CONTRACT_TOKEN]: AdapterContractToken<Context, Assertions, Flags>;
|
|
158
|
+
create(context: AdapterCreateContext<AdapterFlagsOutput<Flags>>): Context | Promise<Context>;
|
|
151
159
|
}
|
|
152
|
-
export type AdapterImplementationInput<Context extends object, ImplementationContext extends Context = Context> = {
|
|
160
|
+
export type AdapterImplementationInput<Context extends object, ImplementationContext extends Context = Context, Flags extends AdapterFlagsParser = undefined> = {
|
|
153
161
|
readonly name: string;
|
|
154
162
|
readonly behaviorRevision?: string;
|
|
155
|
-
readonly create: AdapterFactory<ImplementationContext>;
|
|
163
|
+
readonly create: AdapterFactory<ImplementationContext, Flags>;
|
|
156
164
|
} & AdapterContextValidation<NoInfer<ImplementationContext>>;
|
|
157
|
-
export interface AdapterContract<Context extends object, Assertions extends object | undefined = undefined> extends AdapterDefinition<Context, Assertions> {
|
|
165
|
+
export interface AdapterContract<Context extends object, Assertions extends object | undefined = undefined, Flags extends AdapterFlagsParser = undefined> extends AdapterDefinition<Context, Assertions, Flags> {
|
|
158
166
|
readonly name: string;
|
|
159
|
-
implement<ImplementationContext extends Context>(input: AdapterImplementationInput<Context, ImplementationContext>): AdapterImplementation<Context, Assertions>;
|
|
167
|
+
implement<ImplementationContext extends Context>(input: AdapterImplementationInput<Context, ImplementationContext, Flags>): AdapterImplementation<Context, Assertions, Flags>;
|
|
160
168
|
/**
|
|
161
|
-
* Returns a contract whose Eval factories and
|
|
162
|
-
* this exact Assertion factory. Implementations cannot replace it.
|
|
169
|
+
* Returns a contract whose Eval factories and implementations share one flags parser.
|
|
163
170
|
*/
|
|
164
|
-
|
|
171
|
+
withParseFlags<NextFlags extends Exclude<AdapterFlagsParser, undefined>>(parseFlags: NextFlags, ...validation: AdapterFlagsParserValidationArgs<NoInfer<NextFlags>>): AdapterContract<Context, Assertions, NextFlags>;
|
|
172
|
+
/** Returns a contract whose implementations share this exact Assertion factory. */
|
|
173
|
+
withAssertions<NextAssertions extends object>(factory: AdapterAssertionsFactory<Context, NextAssertions>, ...validation: AdapterAssertionsValidationArgs<Context, NoInfer<NextAssertions>>): AdapterContract<Context, NextAssertions, Flags>;
|
|
165
174
|
}
|
|
166
175
|
export type Adapter = import("./agents/types.cjs").Agent | AdapterRuntimeDefinition;
|
|
167
176
|
/** Defines one Adapter implementation with an automatically private contract. */
|
|
168
|
-
export declare function defineAdapter<Context extends object>(input: {
|
|
177
|
+
export declare function defineAdapter<Context extends object, Flags extends AdapterFlagsParser = undefined>(input: {
|
|
169
178
|
readonly name: string;
|
|
170
179
|
readonly behaviorRevision?: string;
|
|
171
|
-
readonly create: AdapterFactory<Context>;
|
|
180
|
+
readonly create: AdapterFactory<Context, Flags>;
|
|
181
|
+
readonly parseFlags?: Flags;
|
|
172
182
|
readonly assertions?: undefined;
|
|
173
|
-
} & AdapterContextValidation<NoInfer<Context>>): AdapterImplementation<Context>;
|
|
174
|
-
export declare function defineAdapter<Context extends object, Assertions extends object>(input: {
|
|
183
|
+
} & AdapterContextValidation<NoInfer<Context>> & AdapterFlagsParserValidation<NoInfer<Flags>>): AdapterImplementation<Context, undefined, Flags>;
|
|
184
|
+
export declare function defineAdapter<Context extends object, Assertions extends object, Flags extends AdapterFlagsParser = undefined>(input: {
|
|
175
185
|
readonly name: string;
|
|
176
186
|
readonly behaviorRevision?: string;
|
|
177
|
-
readonly create: AdapterFactory<Context>;
|
|
187
|
+
readonly create: AdapterFactory<Context, Flags>;
|
|
188
|
+
readonly parseFlags?: Flags;
|
|
178
189
|
/** Attempt-local Assertion sugar, assembled once after create() succeeds. */
|
|
179
190
|
readonly assertions: AdapterAssertionsFactory<Context, Assertions>;
|
|
180
|
-
} & AdapterContextValidation<NoInfer<Context>> & AdapterAssertionsValidation<Context, NoInfer<Assertions>>): AdapterImplementation<Context, Assertions>;
|
|
191
|
+
} & AdapterContextValidation<NoInfer<Context>> & AdapterFlagsParserValidation<NoInfer<Flags>> & AdapterAssertionsValidation<Context, NoInfer<Assertions>>): AdapterImplementation<Context, Assertions, Flags>;
|
|
181
192
|
/** Defines a reusable contract whose implementations and Evals share one runtime-only token. */
|
|
182
193
|
export declare function defineAdapterContract<Context extends object>(input: {
|
|
183
194
|
readonly name: string;
|