@adcp/sdk 14.0.0-rc.38 → 14.0.0-rc.39
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/bin/adcp-storyboard-summary.js +286 -0
- package/bin/adcp.js +221 -10
- package/dist/lib/conformance/schemaLoader.d.mts +1 -1
- package/dist/lib/conformance/schemaLoader.d.ts +1 -1
- package/dist/lib/core/AgentClient.d.mts +6 -1
- package/dist/lib/core/AgentClient.d.ts +6 -1
- package/dist/lib/core/AgentClient.js +9 -0
- package/dist/lib/core/AgentClient.mjs +9 -0
- package/dist/lib/core/ConversationTypes.d.mts +29 -0
- package/dist/lib/core/ConversationTypes.d.ts +29 -0
- package/dist/lib/core/SingleAgentClient.d.mts +3 -1
- package/dist/lib/core/SingleAgentClient.d.ts +3 -1
- package/dist/lib/core/SingleAgentClient.js +9 -1
- package/dist/lib/core/SingleAgentClient.mjs +9 -1
- package/dist/lib/core/TaskExecutor.d.mts +13 -1
- package/dist/lib/core/TaskExecutor.d.ts +13 -1
- package/dist/lib/core/TaskExecutor.js +216 -18
- package/dist/lib/core/TaskExecutor.mjs +216 -19
- package/dist/lib/index.d.mts +5 -2
- package/dist/lib/index.d.ts +5 -2
- package/dist/lib/index.js +10 -1
- package/dist/lib/index.mjs +10 -1
- package/dist/lib/media-buy/action-assessment.d.mts +77 -0
- package/dist/lib/media-buy/action-assessment.d.ts +77 -0
- package/dist/lib/media-buy/action-assessment.js +300 -0
- package/dist/lib/media-buy/action-assessment.mjs +284 -0
- package/dist/lib/media-buy/action-constraints.d.mts +9 -0
- package/dist/lib/media-buy/action-constraints.d.ts +9 -0
- package/dist/lib/media-buy/action-constraints.js +170 -0
- package/dist/lib/media-buy/action-constraints.mjs +146 -0
- package/dist/lib/media-buy/action-contracts.d.mts +40 -0
- package/dist/lib/media-buy/action-contracts.d.ts +40 -0
- package/dist/lib/media-buy/action-contracts.js +304 -0
- package/dist/lib/media-buy/action-contracts.mjs +267 -0
- package/dist/lib/media-buy/action-metadata.generated.d.mts +37 -0
- package/dist/lib/media-buy/action-metadata.generated.d.ts +37 -0
- package/dist/lib/media-buy/action-metadata.generated.js +128 -0
- package/dist/lib/media-buy/action-metadata.generated.mjs +101 -0
- package/dist/lib/media-buy/action-types.d.mts +106 -0
- package/dist/lib/media-buy/action-types.d.ts +106 -0
- package/dist/lib/{types/v3-1-beta/tools.generated.js → media-buy/action-types.js} +2 -2
- package/dist/lib/media-buy/actions.d.mts +6 -0
- package/dist/lib/media-buy/actions.d.ts +6 -0
- package/dist/lib/media-buy/actions.js +38 -0
- package/dist/lib/media-buy/actions.mjs +9 -0
- package/dist/lib/media-buy/available-actions.d.mts +2 -1
- package/dist/lib/media-buy/available-actions.d.ts +2 -1
- package/dist/lib/media-buy/available-actions.js +4 -3
- package/dist/lib/media-buy/available-actions.mjs +4 -3
- package/dist/lib/media-buy/compatibility.js +3 -0
- package/dist/lib/media-buy/compatibility.mjs +3 -0
- package/dist/lib/media-buy/index.d.mts +4 -0
- package/dist/lib/media-buy/index.d.ts +4 -0
- package/dist/lib/media-buy/index.js +3 -1
- package/dist/lib/media-buy/index.mjs +1 -0
- package/dist/lib/media-buy/legacy-action-ids.d.mts +1 -0
- package/dist/lib/media-buy/legacy-action-ids.d.ts +1 -0
- package/dist/lib/media-buy/legacy-action-ids.js +50 -0
- package/dist/lib/media-buy/legacy-action-ids.mjs +26 -0
- package/dist/lib/media-buy/mutations.d.mts +70 -0
- package/dist/lib/media-buy/mutations.d.ts +70 -0
- package/dist/lib/media-buy/mutations.js +525 -0
- package/dist/lib/media-buy/mutations.mjs +498 -0
- package/dist/lib/media-buy/preflight.d.mts +20 -69
- package/dist/lib/media-buy/preflight.d.ts +20 -69
- package/dist/lib/media-buy/preflight.js +100 -336
- package/dist/lib/media-buy/preflight.mjs +111 -333
- package/dist/lib/media-buy/targeting-input.d.mts +7 -4
- package/dist/lib/media-buy/targeting-input.d.ts +7 -4
- package/dist/lib/media-buy/types.d.mts +55 -7
- package/dist/lib/media-buy/types.d.ts +55 -7
- package/dist/lib/protocols/rawResponseCapture.d.mts +12 -0
- package/dist/lib/protocols/rawResponseCapture.d.ts +12 -0
- package/dist/lib/protocols/rawResponseCapture.js +33 -3
- package/dist/lib/protocols/rawResponseCapture.mjs +32 -3
- package/dist/lib/registry/types.generated.d.mts +377 -9
- package/dist/lib/registry/types.generated.d.ts +377 -9
- package/dist/lib/reporting/evidence.d.mts +1 -0
- package/dist/lib/reporting/evidence.d.ts +1 -0
- package/dist/lib/reporting/evidence.js +32 -3
- package/dist/lib/reporting/evidence.mjs +31 -3
- package/dist/lib/reporting/ledger/handler.d.mts +51 -1
- package/dist/lib/reporting/ledger/handler.d.ts +51 -1
- package/dist/lib/reporting/ledger/handler.js +306 -38
- package/dist/lib/reporting/ledger/handler.mjs +304 -37
- package/dist/lib/reporting/ledger/health.d.mts +12 -0
- package/dist/lib/reporting/ledger/health.d.ts +12 -0
- package/dist/lib/reporting/ledger/health.js +15 -2
- package/dist/lib/reporting/ledger/health.mjs +13 -1
- package/dist/lib/reporting/ledger/index.d.mts +3 -0
- package/dist/lib/reporting/ledger/index.d.ts +3 -0
- package/dist/lib/reporting/ledger/index.js +7 -1
- package/dist/lib/reporting/ledger/index.mjs +3 -0
- package/dist/lib/reporting/ledger/lifecycle.d.mts +31 -4
- package/dist/lib/reporting/ledger/lifecycle.d.ts +31 -4
- package/dist/lib/reporting/ledger/lifecycle.js +244 -37
- package/dist/lib/reporting/ledger/lifecycle.mjs +244 -37
- package/dist/lib/reporting/ledger/managed-postgres.d.mts +231 -0
- package/dist/lib/reporting/ledger/managed-postgres.d.ts +231 -0
- package/dist/lib/reporting/ledger/managed-postgres.js +1797 -0
- package/dist/lib/reporting/ledger/managed-postgres.mjs +1776 -0
- package/dist/lib/reporting/ledger/managed.d.mts +355 -0
- package/dist/lib/reporting/ledger/managed.d.ts +355 -0
- package/dist/lib/reporting/ledger/managed.js +661 -0
- package/dist/lib/reporting/ledger/managed.mjs +633 -0
- package/dist/lib/reporting/ledger/notification-activity.d.mts +222 -0
- package/dist/lib/reporting/ledger/notification-activity.d.ts +222 -0
- package/dist/lib/reporting/ledger/notification-activity.js +1139 -0
- package/dist/lib/reporting/ledger/notification-activity.mjs +1110 -0
- package/dist/lib/reporting/ledger/postgres.d.mts +161 -1
- package/dist/lib/reporting/ledger/postgres.d.ts +161 -1
- package/dist/lib/reporting/ledger/postgres.js +1153 -21
- package/dist/lib/reporting/ledger/postgres.mjs +1152 -21
- package/dist/lib/reporting/ledger/producer.d.mts +8 -0
- package/dist/lib/reporting/ledger/producer.d.ts +8 -0
- package/dist/lib/reporting/ledger/producer.js +146 -52
- package/dist/lib/reporting/ledger/producer.mjs +146 -51
- package/dist/lib/reporting/ledger/types.d.mts +358 -1
- package/dist/lib/reporting/ledger/types.d.ts +358 -1
- package/dist/lib/reporting/ledger/types.js +3 -0
- package/dist/lib/reporting/ledger/types.mjs +2 -0
- package/dist/lib/reporting/service/conformance.d.mts +35 -0
- package/dist/lib/reporting/service/conformance.d.ts +35 -0
- package/dist/lib/reporting/service/conformance.js +89 -0
- package/dist/lib/reporting/service/conformance.mjs +68 -0
- package/dist/lib/reporting/service/index.d.mts +182 -0
- package/dist/lib/reporting/service/index.d.ts +182 -0
- package/dist/lib/reporting/service/index.js +793 -0
- package/dist/lib/reporting/service/index.mjs +787 -0
- package/dist/lib/reporting/source/index.d.mts +2 -1
- package/dist/lib/reporting/source/index.d.ts +2 -1
- package/dist/lib/reporting/source/index.js +16 -3
- package/dist/lib/reporting/source/index.mjs +12 -1
- package/dist/lib/reporting/source/inline.d.mts +88 -1
- package/dist/lib/reporting/source/inline.d.ts +88 -1
- package/dist/lib/reporting/source/inline.js +1161 -163
- package/dist/lib/reporting/source/inline.mjs +1166 -163
- package/dist/lib/reporting/source/manifest.js +12 -7
- package/dist/lib/reporting/source/manifest.mjs +12 -7
- package/dist/lib/reporting/source/source.d.mts +26 -0
- package/dist/lib/reporting/source/source.d.ts +26 -0
- package/dist/lib/reporting/source/source.js +71 -2
- package/dist/lib/reporting/source/source.mjs +65 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/create-adcp-server.d.mts +18 -0
- package/dist/lib/server/create-adcp-server.d.ts +18 -0
- package/dist/lib/server/create-adcp-server.js +52 -2
- package/dist/lib/server/create-adcp-server.mjs +52 -2
- package/dist/lib/server/decisioning/account.d.mts +1 -1
- package/dist/lib/server/decisioning/account.d.ts +1 -1
- package/dist/lib/server/decisioning/index.d.mts +1 -0
- package/dist/lib/server/decisioning/index.d.ts +1 -0
- package/dist/lib/server/decisioning/platform.d.mts +3 -0
- package/dist/lib/server/decisioning/platform.d.ts +3 -0
- package/dist/lib/server/decisioning/runtime/from-platform.js +88 -10
- package/dist/lib/server/decisioning/runtime/from-platform.mjs +88 -10
- package/dist/lib/server/decisioning/specialisms/reporting.d.mts +38 -0
- package/dist/lib/server/decisioning/specialisms/reporting.d.ts +38 -0
- package/dist/lib/{types/v3-1-beta/index.js → server/decisioning/specialisms/reporting.js} +2 -8
- package/dist/lib/server/decisioning/specialisms/reporting.mjs +0 -0
- package/dist/lib/server/index.d.mts +4 -2
- package/dist/lib/server/index.d.ts +4 -2
- package/dist/lib/server/index.js +5 -0
- package/dist/lib/server/index.mjs +4 -0
- package/dist/lib/server/media-buy-action-resolver.d.mts +63 -0
- package/dist/lib/server/media-buy-action-resolver.d.ts +63 -0
- package/dist/lib/server/media-buy-action-resolver.js +297 -0
- package/dist/lib/server/media-buy-action-resolver.mjs +285 -0
- package/dist/lib/server/media-buy-actions.d.mts +7 -8
- package/dist/lib/server/media-buy-actions.d.ts +7 -8
- package/dist/lib/server/media-buy-actions.js +57 -14
- package/dist/lib/server/media-buy-actions.mjs +63 -14
- package/dist/lib/server/notification-subscriptions/index.d.mts +2 -2
- package/dist/lib/server/notification-subscriptions/index.d.ts +2 -2
- package/dist/lib/server/notification-subscriptions/index.js +2 -0
- package/dist/lib/server/notification-subscriptions/index.mjs +2 -0
- package/dist/lib/server/notification-subscriptions/postgres-runtime.d.mts +3 -1
- package/dist/lib/server/notification-subscriptions/postgres-runtime.d.ts +3 -1
- package/dist/lib/server/notification-subscriptions/postgres-runtime.js +1 -0
- package/dist/lib/server/notification-subscriptions/postgres-runtime.mjs +1 -0
- package/dist/lib/server/notification-subscriptions/runtime.d.mts +12 -1
- package/dist/lib/server/notification-subscriptions/runtime.d.ts +12 -1
- package/dist/lib/server/notification-subscriptions/runtime.js +102 -16
- package/dist/lib/server/notification-subscriptions/runtime.mjs +101 -16
- package/dist/lib/server/notification-subscriptions/types.d.mts +104 -1
- package/dist/lib/server/notification-subscriptions/types.d.ts +104 -1
- package/dist/lib/server/webhook-emitter.d.mts +40 -5
- package/dist/lib/server/webhook-emitter.d.ts +40 -5
- package/dist/lib/server/webhook-emitter.js +23 -12
- package/dist/lib/server/webhook-emitter.mjs +23 -12
- package/dist/lib/storage/interfaces.d.mts +14 -2
- package/dist/lib/storage/interfaces.d.ts +14 -2
- package/dist/lib/testing/compliance/comply.d.mts +9 -3
- package/dist/lib/testing/compliance/comply.d.ts +9 -3
- package/dist/lib/testing/compliance/comply.js +158 -3
- package/dist/lib/testing/compliance/comply.mjs +159 -4
- package/dist/lib/testing/compliance/storyboard-tracks.js +7 -5
- package/dist/lib/testing/compliance/storyboard-tracks.mjs +7 -5
- package/dist/lib/testing/compliance/summary.js +10 -1
- package/dist/lib/testing/compliance/summary.mjs +10 -1
- package/dist/lib/testing/index.d.mts +1 -1
- package/dist/lib/testing/index.d.ts +1 -1
- package/dist/lib/testing/index.js +2 -0
- package/dist/lib/testing/index.mjs +3 -1
- package/dist/lib/testing/storyboard/agent-routing.d.mts +12 -43
- package/dist/lib/testing/storyboard/agent-routing.d.ts +12 -43
- package/dist/lib/testing/storyboard/agent-routing.js +75 -13
- package/dist/lib/testing/storyboard/agent-routing.mjs +70 -12
- package/dist/lib/testing/storyboard/index.d.mts +1 -0
- package/dist/lib/testing/storyboard/index.d.ts +1 -0
- package/dist/lib/testing/storyboard/index.js +3 -0
- package/dist/lib/testing/storyboard/index.mjs +2 -0
- package/dist/lib/testing/storyboard/junit.d.mts +1 -1
- package/dist/lib/testing/storyboard/junit.d.ts +1 -1
- package/dist/lib/testing/storyboard/junit.js +21 -2
- package/dist/lib/testing/storyboard/junit.mjs +21 -2
- package/dist/lib/testing/storyboard/probes.d.mts +130 -0
- package/dist/lib/testing/storyboard/probes.d.ts +130 -0
- package/dist/lib/testing/storyboard/probes.js +682 -10
- package/dist/lib/testing/storyboard/probes.mjs +683 -3
- package/dist/lib/testing/storyboard/request-signing/builder.d.mts +16 -5
- package/dist/lib/testing/storyboard/request-signing/builder.d.ts +16 -5
- package/dist/lib/testing/storyboard/request-signing/grader.d.mts +44 -1
- package/dist/lib/testing/storyboard/request-signing/grader.d.ts +44 -1
- package/dist/lib/testing/storyboard/request-signing/grader.js +46 -22
- package/dist/lib/testing/storyboard/request-signing/grader.mjs +43 -21
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.mts +86 -11
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.ts +86 -11
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.js +119 -25
- package/dist/lib/testing/storyboard/request-signing/probe-dispatch.mjs +117 -26
- package/dist/lib/testing/storyboard/request-signing/synthesize.js +22 -2
- package/dist/lib/testing/storyboard/request-signing/synthesize.mjs +22 -2
- package/dist/lib/testing/storyboard/runner.d.mts +103 -0
- package/dist/lib/testing/storyboard/runner.d.ts +103 -0
- package/dist/lib/testing/storyboard/runner.js +1090 -268
- package/dist/lib/testing/storyboard/runner.mjs +1096 -261
- package/dist/lib/testing/storyboard/seeding.d.mts +4 -1
- package/dist/lib/testing/storyboard/seeding.d.ts +4 -1
- package/dist/lib/testing/storyboard/seeding.js +55 -24
- package/dist/lib/testing/storyboard/seeding.mjs +55 -24
- package/dist/lib/testing/storyboard/test-kit.d.mts +37 -3
- package/dist/lib/testing/storyboard/test-kit.d.ts +37 -3
- package/dist/lib/testing/storyboard/test-kit.js +8 -2
- package/dist/lib/testing/storyboard/test-kit.mjs +7 -2
- package/dist/lib/testing/storyboard/types.d.mts +132 -10
- package/dist/lib/testing/storyboard/types.d.ts +132 -10
- package/dist/lib/testing/storyboard/types.js +17 -0
- package/dist/lib/testing/storyboard/types.mjs +16 -0
- package/dist/lib/testing/storyboard/validations.d.mts +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +1 -1
- package/dist/lib/testing/storyboard/validations.js +16 -0
- package/dist/lib/testing/storyboard/validations.mjs +16 -0
- package/dist/lib/testing/test-controller.d.mts +1 -1
- package/dist/lib/testing/test-controller.d.ts +1 -1
- package/dist/lib/types/buy-products.d.ts +71 -6
- package/dist/lib/types/control-media-buy.d.ts +25 -11
- package/dist/lib/types/core.generated.d.mts +69 -10
- package/dist/lib/types/core.generated.d.ts +69 -10
- package/dist/lib/types/create-media-buy.d.ts +71 -6
- package/dist/lib/types/forward-compat-error-codes.d.mts +7 -6
- package/dist/lib/types/forward-compat-error-codes.d.ts +7 -6
- package/dist/lib/types/index.d.mts +2 -2
- package/dist/lib/types/index.d.ts +2 -2
- package/dist/lib/types/schemas.generated.d.ts +8040 -8116
- package/dist/lib/types/schemas.generated.js +1074 -309
- package/dist/lib/types/schemas.generated.mjs +1068 -309
- package/dist/lib/types/tools.generated.d.mts +65 -6
- package/dist/lib/types/tools.generated.d.ts +65 -6
- package/dist/lib/types/update-media-buy.d.ts +71 -6
- package/dist/lib/utils/redact-secrets.d.mts +1 -1
- package/dist/lib/utils/redact-secrets.d.ts +1 -1
- package/dist/lib/utils/redact-secrets.js +1 -1
- package/dist/lib/utils/redact-secrets.mjs +1 -1
- package/dist/lib/v2/projection/cache-versions.d.mts +0 -1
- package/dist/lib/v2/projection/cache-versions.d.ts +0 -1
- package/dist/lib/v2/projection/cache-versions.js +1 -15
- package/dist/lib/v2/projection/cache-versions.mjs +1 -14
- package/dist/lib/v2/projection/canonical-properties.js +2 -2
- package/dist/lib/v2/projection/canonical-properties.mjs +3 -3
- package/dist/lib/v2/projection/registry.d.mts +1 -1
- package/dist/lib/v2/projection/registry.d.ts +1 -1
- package/dist/lib/v2/projection/registry.js +2 -2
- package/dist/lib/v2/projection/registry.mjs +3 -3
- package/dist/lib/version.d.mts +5 -5
- package/dist/lib/version.d.ts +5 -5
- package/dist/lib/version.js +3 -8
- package/dist/lib/version.mjs +3 -8
- package/dist/lib/wholesale-feed-sync/index.d.mts +1 -0
- package/dist/lib/wholesale-feed-sync/index.d.ts +1 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.d.mts +42 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.d.ts +42 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.js +16 -0
- package/dist/lib/wholesale-feed-sync/protocol-types.mjs +0 -0
- package/dist/lib/wholesale-feed-sync/sync.d.mts +6 -6
- package/dist/lib/wholesale-feed-sync/sync.d.ts +6 -6
- package/dist/lib/wholesale-feed-sync/sync.js +3 -1
- package/dist/lib/wholesale-feed-sync/sync.mjs +3 -1
- package/dist/lib/wholesale-feed-sync/types.d.mts +15 -14
- package/dist/lib/wholesale-feed-sync/types.d.ts +15 -14
- package/dist/lib/wholesale-feed-sync/webhook-notification.d.mts +7 -5
- package/dist/lib/wholesale-feed-sync/webhook-notification.d.ts +7 -5
- package/dist/lib/wholesale-feed-sync/webhook-notification.js +45 -0
- package/dist/lib/wholesale-feed-sync/webhook-notification.mjs +44 -0
- package/docs/CLI.md +1 -1
- package/docs/TYPE-SUMMARY.md +118 -4
- package/docs/guides/ASYNC-API-REFERENCE.md +62 -1
- package/docs/guides/ASYNC-DEVELOPER-GUIDE.md +25 -0
- package/docs/guides/ASYNC-DOCUMENTATION-INDEX.md +3 -0
- package/docs/guides/BUYER-QUICKSTART-3.2.md +5 -0
- package/docs/guides/DURABLE-BUYER-WRITES.md +337 -0
- package/docs/guides/EXISTING-PLATFORM.md +35 -0
- package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +7 -3
- package/docs/guides/MEDIA-BUY-ACTION-ASSESSMENT.md +300 -0
- package/docs/guides/REPORTING-LEDGER.md +654 -3
- package/docs/guides/REPORTING-SOURCE-EXECUTOR.md +63 -1
- package/docs/guides/SELLER-QUICKSTART-3.2.md +2 -0
- package/docs/guides/VALIDATE-YOUR-AGENT.md +35 -0
- package/docs/guides/idempotency-crash-recovery.md +4 -0
- package/docs/llms.txt +4 -2
- package/docs/migration-14.x-rc-worksheet.md +5 -5
- package/docs/migration-7.9-to-7.10.md +7 -5
- package/examples/README.md +17 -0
- package/examples/durable-buyer-writes/caller.ts +745 -0
- package/examples/durable-buyer-writes/worker.ts +240 -0
- package/examples/reliable-reporting-service/README.md +100 -0
- package/examples/seller-3.2-starter.ts +7 -8
- package/examples/targeting-input-existing-platform.ts +153 -0
- package/package.json +41 -29
- package/skills/build-seller-agent/specialisms/signed-requests.md +11 -1
- package/skills/cross-cutting.md +28 -11
- package/compliance/cache/3.1.0-beta.7/domains/brand/index.yaml +0 -160
- package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -415
- package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/single_side_trust_extension.yaml +0 -454
- package/compliance/cache/3.1.0-beta.7/domains/creative/index.yaml +0 -339
- package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/billing_out_of_band.yaml +0 -153
- package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
- package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/native_in_feed.yaml +0 -543
- package/compliance/cache/3.1.0-beta.7/domains/governance/index.yaml +0 -682
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/index.yaml +0 -781
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -380
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/available_actions.yaml +0 -565
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/canonical_formats.yaml +0 -711
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -234
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_reception.yaml +0 -247
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/delivery_reporting.yaml +0 -357
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment.yaml +0 -633
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_approved.yaml +0 -214
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_conditions.yaml +0 -199
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied.yaml +0 -204
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/invalid_transitions.yaml +0 -289
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_accountability.yaml +0 -244
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -428
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -373
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -517
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -823
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_products.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
- package/compliance/cache/3.1.0-beta.7/domains/media-buy/state-machine.yaml +0 -442
- package/compliance/cache/3.1.0-beta.7/domains/signals/index.yaml +0 -266
- package/compliance/cache/3.1.0-beta.7/domains/sponsored-intelligence/index.yaml +0 -256
- package/compliance/cache/3.1.0-beta.7/index.json +0 -356
- package/compliance/cache/3.1.0-beta.7/protocols/brand/index.yaml +0 -160
- package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -415
- package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -454
- package/compliance/cache/3.1.0-beta.7/protocols/creative/index.yaml +0 -339
- package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/billing_out_of_band.yaml +0 -153
- package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
- package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/native_in_feed.yaml +0 -543
- package/compliance/cache/3.1.0-beta.7/protocols/governance/index.yaml +0 -682
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/index.yaml +0 -781
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -380
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/available_actions.yaml +0 -565
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/canonical_formats.yaml +0 -711
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -234
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_reception.yaml +0 -247
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -357
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -633
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_approved.yaml +0 -214
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_conditions.yaml +0 -199
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied.yaml +0 -204
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -289
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -244
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -428
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -373
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -399
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -517
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -823
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_products.yaml +0 -148
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
- package/compliance/cache/3.1.0-beta.7/protocols/media-buy/state-machine.yaml +0 -442
- package/compliance/cache/3.1.0-beta.7/protocols/signals/index.yaml +0 -266
- package/compliance/cache/3.1.0-beta.7/protocols/sponsored-intelligence/index.yaml +0 -256
- package/compliance/cache/3.1.0-beta.7/specialisms/audience-sync/index.yaml +0 -313
- package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/index.yaml +0 -350
- package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -226
- package/compliance/cache/3.1.0-beta.7/specialisms/collection-lists/index.yaml +0 -359
- package/compliance/cache/3.1.0-beta.7/specialisms/content-standards/index.yaml +0 -572
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-ad-server/index.yaml +0 -409
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/generative-seller.yaml +0 -807
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/index.yaml +0 -758
- package/compliance/cache/3.1.0-beta.7/specialisms/creative-template/index.yaml +0 -510
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/index.yaml +0 -143
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -117
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-delivery-monitor/index.yaml +0 -441
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/denied.yaml +0 -221
- package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/index.yaml +0 -330
- package/compliance/cache/3.1.0-beta.7/specialisms/property-lists/index.yaml +0 -482
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-broadcast-tv/index.yaml +0 -738
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-catalog-driven/index.yaml +0 -840
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-guaranteed/index.yaml +0 -601
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-non-guaranteed/index.yaml +0 -546
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-proposal-mode/index.yaml +0 -586
- package/compliance/cache/3.1.0-beta.7/specialisms/sales-social/index.yaml +0 -919
- package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/index.yaml +0 -424
- package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -211
- package/compliance/cache/3.1.0-beta.7/specialisms/signal-owned/index.yaml +0 -317
- package/compliance/cache/3.1.0-beta.7/specialisms/sponsored-intelligence/index.yaml +0 -59
- package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor-live.yaml +0 -78
- package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor.yaml +0 -223
- package/compliance/cache/3.1.0-beta.7/test-kits/billing-gate-runner.yaml +0 -115
- package/compliance/cache/3.1.0-beta.7/test-kits/bistro-oranje.yaml +0 -126
- package/compliance/cache/3.1.0-beta.7/test-kits/distributed-brand-runner.yaml +0 -281
- package/compliance/cache/3.1.0-beta.7/test-kits/nova-motors.yaml +0 -262
- package/compliance/cache/3.1.0-beta.7/test-kits/osei-natural.yaml +0 -126
- package/compliance/cache/3.1.0-beta.7/test-kits/parallel-dispatch-runner.yaml +0 -196
- package/compliance/cache/3.1.0-beta.7/test-kits/rate-limit-trip-runner.yaml +0 -172
- package/compliance/cache/3.1.0-beta.7/test-kits/signed-requests-runner.yaml +0 -155
- package/compliance/cache/3.1.0-beta.7/test-kits/single-side-trust-runner.yaml +0 -294
- package/compliance/cache/3.1.0-beta.7/test-kits/substitution-observer-runner.yaml +0 -688
- package/compliance/cache/3.1.0-beta.7/test-kits/summit-foods.yaml +0 -125
- package/compliance/cache/3.1.0-beta.7/test-kits/webhook-receiver-runner.yaml +0 -265
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/001-minimal-plan.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/002-full-plan.json +0 -217
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -60
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004a-human-review-omitted.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -49
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -53
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -57
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -49
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -53
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/007-unicode-objectives.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -65
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/README.md +0 -220
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/canonicalization.json +0 -241
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/keys.json +0 -60
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/001-no-signature-header.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/002-wrong-tag.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/003-expired-signature.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/004-window-too-long.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -33
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/011-malformed-header.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/013-expires-le-created.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -27
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/015-signature-invalid.json +0 -28
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -35
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/017-key-revoked.json +0 -38
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -28
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/020-rate-abuse.json +0 -34
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -32
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -43
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -25
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/001-basic-post.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -31
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/003-es256-post.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -30
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/README.md +0 -211
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/keys.json +0 -61
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -25
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -25
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -37
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -32
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -33
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -32
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -41
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -26
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/001-basic-post.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/002-es256-post.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -24
- package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -25
- package/compliance/cache/3.1.0-beta.7/universal/billing-gate-dispatch.yaml +0 -450
- package/compliance/cache/3.1.0-beta.7/universal/canonical-format-validate-input.yaml +0 -640
- package/compliance/cache/3.1.0-beta.7/universal/capability-discovery.yaml +0 -125
- package/compliance/cache/3.1.0-beta.7/universal/collection-lists-pagination-integrity.yaml +0 -306
- package/compliance/cache/3.1.0-beta.7/universal/comply-controller-mode-gate.yaml +0 -141
- package/compliance/cache/3.1.0-beta.7/universal/content-standards-pagination-integrity.yaml +0 -326
- package/compliance/cache/3.1.0-beta.7/universal/deterministic-testing.yaml +0 -1430
- package/compliance/cache/3.1.0-beta.7/universal/error-compliance-signals.yaml +0 -377
- package/compliance/cache/3.1.0-beta.7/universal/error-compliance.yaml +0 -528
- package/compliance/cache/3.1.0-beta.7/universal/fictional-entities.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/universal/get-media-buys-pagination-integrity.yaml +0 -160
- package/compliance/cache/3.1.0-beta.7/universal/get-signals-pagination-integrity.yaml +0 -211
- package/compliance/cache/3.1.0-beta.7/universal/idempotency.yaml +0 -861
- package/compliance/cache/3.1.0-beta.7/universal/notification-config-event-scope.yaml +0 -119
- package/compliance/cache/3.1.0-beta.7/universal/notification-config-lifecycle.yaml +0 -337
- package/compliance/cache/3.1.0-beta.7/universal/notification-config-rejections.yaml +0 -107
- package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-creative-formats.yaml +0 -265
- package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-list-accounts.yaml +0 -245
- package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity.yaml +0 -263
- package/compliance/cache/3.1.0-beta.7/universal/property-lists-pagination-integrity.yaml +0 -307
- package/compliance/cache/3.1.0-beta.7/universal/read-tool-idempotency.yaml +0 -405
- package/compliance/cache/3.1.0-beta.7/universal/runner-output-contract.yaml +0 -1266
- package/compliance/cache/3.1.0-beta.7/universal/schema-validation-signals.yaml +0 -181
- package/compliance/cache/3.1.0-beta.7/universal/schema-validation.yaml +0 -548
- package/compliance/cache/3.1.0-beta.7/universal/security.yaml +0 -539
- package/compliance/cache/3.1.0-beta.7/universal/signed-requests.yaml +0 -217
- package/compliance/cache/3.1.0-beta.7/universal/stale-response-advisory.yaml +0 -295
- package/compliance/cache/3.1.0-beta.7/universal/storyboard-schema.yaml +0 -2136
- package/compliance/cache/3.1.0-beta.7/universal/v3-envelope-integrity.yaml +0 -117
- package/compliance/cache/3.1.0-beta.7/universal/version-negotiation.yaml +0 -130
- package/compliance/cache/3.1.0-beta.7/universal/webhook-emission.yaml +0 -411
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-bulk-webhooks.yaml +0 -82
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-product-webhooks.yaml +0 -83
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-products.yaml +0 -151
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signal-webhooks.yaml +0 -83
- package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signals.yaml +0 -149
- package/dist/lib/types/v3-1-beta/index.d.mts +0 -1
- package/dist/lib/types/v3-1-beta/index.d.ts +0 -1
- package/dist/lib/types/v3-1-beta/index.mjs +0 -1
- package/dist/lib/types/v3-1-beta/tools.generated.d.mts +0 -26788
- package/dist/lib/types/v3-1-beta/tools.generated.d.ts +0 -26788
- /package/dist/lib/{types/v3-1-beta/tools.generated.mjs → media-buy/action-types.mjs} +0 -0
|
@@ -29,7 +29,7 @@ export interface Storyboard {
|
|
|
29
29
|
version: string;
|
|
30
30
|
/**
|
|
31
31
|
* AdCP compliance cache version this storyboard was loaded from, e.g.
|
|
32
|
-
* "3.
|
|
32
|
+
* "3.1.18" or "3.2.0-rc.3". Injected by the local cache loader; not
|
|
33
33
|
* authored in storyboard YAML.
|
|
34
34
|
*/
|
|
35
35
|
adcp_version?: string;
|
|
@@ -897,7 +897,22 @@ export type StoryboardValidationCheck = 'response_schema' | 'field_present' | 'f
|
|
|
897
897
|
* envelope fields such as `adcp_major_version` should use
|
|
898
898
|
* `envelope_field_value`.
|
|
899
899
|
*/
|
|
900
|
-
| 'envelope_field_pattern' | 'field_contains' | 'status_code' | 'error_code' | 'http_status' | 'http_status_in' | 'on_401_require_header'
|
|
900
|
+
| 'envelope_field_pattern' | 'field_contains' | 'status_code' | 'error_code' | 'http_status' | 'http_status_in' | 'on_401_require_header'
|
|
901
|
+
/**
|
|
902
|
+
* Assert that the step's probe reported no grading error, without asserting
|
|
903
|
+
* anything about an HTTP exchange. For probes whose verdict is decided
|
|
904
|
+
* in-library rather than on the wire — the `jwks_override` request-signing
|
|
905
|
+
* negatives, which mutate a JWK the agent under test never publishes and so
|
|
906
|
+
* are graded against the SDK verifier at `http_status: 0` — this is the only
|
|
907
|
+
* honest assertion: synthesizing a 401 from a library boolean would claim a
|
|
908
|
+
* wire exchange that never happened (RFC 9421 §3; adcp-client#2955).
|
|
909
|
+
*
|
|
910
|
+
* Passes when the probe result carries no `error`; fails with the probe's
|
|
911
|
+
* own diagnostic otherwise. Like the `http_status` family it requires a
|
|
912
|
+
* probe result, so authoring it on an ordinary task step fails the step
|
|
913
|
+
* rather than passing vacuously.
|
|
914
|
+
*/
|
|
915
|
+
| 'probe_passed' | 'resource_equals_agent_url' | 'oauth_metadata_graph' | 'any_of' | 'a2a_submitted_artifact' | 'a2a_context_continuity' | 'refs_resolve'
|
|
901
916
|
/**
|
|
902
917
|
* Assert a numeric field in the current step's response is strictly less than
|
|
903
918
|
* a comparand. The comparand is either a context-captured runtime value
|
|
@@ -1362,6 +1377,44 @@ export type WebhookAssertionErrorCode = 'no_webhook_received' | 'schema_violatio
|
|
|
1362
1377
|
* (tests, tooling) can reproduce the grader's exact validation.
|
|
1363
1378
|
*/
|
|
1364
1379
|
export declare const WEBHOOK_IDEMPOTENCY_KEY_PATTERN: RegExp;
|
|
1380
|
+
/**
|
|
1381
|
+
* Runner-native sentinel task for the MCP session auth probe
|
|
1382
|
+
* (adcp-client#2940).
|
|
1383
|
+
*
|
|
1384
|
+
* `$test_kit.auth.probe_task` normally resolves to an advertised entry of
|
|
1385
|
+
* `PROBE_TASK_ALLOWLIST`. When MCP discovery succeeds but the agent advertises
|
|
1386
|
+
* none of them, `selectProbeTask` resolves to this sentinel instead of
|
|
1387
|
+
* `undefined` — but only on an explicit `protocol: 'mcp'`. The runner then
|
|
1388
|
+
* drives a complete MCP session lifecycle: `initialize` →
|
|
1389
|
+
* `notifications/initialized` → `tools/call` against a canonical AdCP
|
|
1390
|
+
* protected read the agent advertises, then `DELETE` to terminate the session.
|
|
1391
|
+
*
|
|
1392
|
+
* The graded call is `tools/call`, not MCP discovery: `tools/list` is not an
|
|
1393
|
+
* AdCP protected task (`get_adcp_capabilities` is mandatory-public), so it can
|
|
1394
|
+
* never be evidence about this agent's authentication. Grading a real
|
|
1395
|
+
* protected operation — rather than stopping at the handshake — is also what
|
|
1396
|
+
* makes the verdict independent of whether the agent enforces auth at the
|
|
1397
|
+
* session boundary or per operation.
|
|
1398
|
+
*
|
|
1399
|
+
* The target is drawn from the canonical AdCP tool registries, excludes the
|
|
1400
|
+
* public tier and mutating tasks, and must declare no required request field.
|
|
1401
|
+
* The runner still cannot guarantee an agent accepts an empty-argument call:
|
|
1402
|
+
* the next candidate is tried, and if every one refuses the shape the step
|
|
1403
|
+
* reports *inconclusive* on its response rather than an auth result. When the
|
|
1404
|
+
* agent advertises no eligible target at all, the step is skipped
|
|
1405
|
+
* `session_probe_ungradable` instead.
|
|
1406
|
+
*
|
|
1407
|
+
* What the probe can establish is bounded: that the endpoint accepts a
|
|
1408
|
+
* credential the *runner was configured with* and refuses the states it was
|
|
1409
|
+
* told to refuse, **at the tool it graded**. It is evidence that the auth
|
|
1410
|
+
* mechanism is enforced, not proof that every tool enforces it. It does not
|
|
1411
|
+
* verify any cryptographic property of that credential, and does not prove
|
|
1412
|
+
* which issuer minted it.
|
|
1413
|
+
*
|
|
1414
|
+
* Deliberately **not** a member of `PROBE_TASK_ALLOWLIST`: operators cannot
|
|
1415
|
+
* select it via `test_kit.auth.probe_task`, only the runner can resolve to it.
|
|
1416
|
+
*/
|
|
1417
|
+
export declare const MCP_SESSION_PROBE_TASK = "mcp_session_probe";
|
|
1365
1418
|
/**
|
|
1366
1419
|
* Raw HTTP probe result for tasks like `protected_resource_metadata` that
|
|
1367
1420
|
* bypass the MCP transport. Carried through the runner alongside
|
|
@@ -1377,6 +1430,18 @@ export interface HttpProbeResult {
|
|
|
1377
1430
|
body: unknown;
|
|
1378
1431
|
/** Optional error — set when the fetch failed (network, SSRF guard, etc.). */
|
|
1379
1432
|
error?: string;
|
|
1433
|
+
/**
|
|
1434
|
+
* The probe could not complete for a reason the runner owns — a transport
|
|
1435
|
+
* or precondition failure (MCP initialize, DNS, an unreadable fixture
|
|
1436
|
+
* cache), as opposed to a verdict the probe reached.
|
|
1437
|
+
*
|
|
1438
|
+
* Needed because both shapes report `status: 0` with `error` set: an
|
|
1439
|
+
* in-library request-signing grade that failed is a real verdict about the
|
|
1440
|
+
* agent's expected behavior, while a failed MCP handshake says only that
|
|
1441
|
+
* the run never got far enough to ask. Coverage reporting has to tell an
|
|
1442
|
+
* operator which of the two happened, and the remedies are opposites.
|
|
1443
|
+
*/
|
|
1444
|
+
probe_error?: boolean;
|
|
1380
1445
|
/**
|
|
1381
1446
|
* Probe was intentionally skipped (e.g. operator opted out of a vector,
|
|
1382
1447
|
* capability profile mismatch, or test-kit contract not in scope). When
|
|
@@ -1493,8 +1558,8 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1493
1558
|
*
|
|
1494
1559
|
* Reuse a profile only for the same agent URL, authentication, AdCP version,
|
|
1495
1560
|
* and route that produced it. Route-specific profiles are not interchangeable.
|
|
1496
|
-
*
|
|
1497
|
-
*
|
|
1561
|
+
* Ignored in an `agents` run: each routed agent is discovered independently,
|
|
1562
|
+
* and its profile governs the steps selected for that agent.
|
|
1498
1563
|
* Profile reuse does not retain or reuse a client or transport connection.
|
|
1499
1564
|
*
|
|
1500
1565
|
* `AgentProfile` does not carry the server's exact wire version. Pass
|
|
@@ -1530,7 +1595,11 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1530
1595
|
contributions?: string[];
|
|
1531
1596
|
/** Override the step's sample_request with a custom request */
|
|
1532
1597
|
request?: Record<string, unknown>;
|
|
1533
|
-
/**
|
|
1598
|
+
/**
|
|
1599
|
+
* Agent's available tools for storyboard/step-level tool gates. Ignored when
|
|
1600
|
+
* `agents` is supplied: routed discovery determines applicability and each
|
|
1601
|
+
* selected agent's tool list controls its execution gates.
|
|
1602
|
+
*/
|
|
1534
1603
|
agentTools?: string[];
|
|
1535
1604
|
/**
|
|
1536
1605
|
* Allow plain-http agent URLs during compliance runs and permit guarded
|
|
@@ -1587,15 +1656,35 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1587
1656
|
* operation AdCP endpoint (e.g. `<baseUrl>/create_media_buy`).
|
|
1588
1657
|
* Works for agents that expose AdCP tools as discrete HTTP
|
|
1589
1658
|
* operations.
|
|
1590
|
-
* - `mcp`
|
|
1659
|
+
* - `mcp` — wraps each vector body in a JSON-RPC `tools/call`
|
|
1591
1660
|
* envelope and POSTs to the agent's single `/mcp` mount. Required
|
|
1592
1661
|
* for MCP-only agents that don't expose per-operation endpoints.
|
|
1593
1662
|
* The operation name is derived from the last path segment of the
|
|
1594
1663
|
* vector's target URL.
|
|
1595
1664
|
*
|
|
1596
|
-
*
|
|
1597
|
-
*
|
|
1598
|
-
*
|
|
1665
|
+
* Defaults to the shape the run's `protocol` can actually grade: `mcp`
|
|
1666
|
+
* on an MCP run, and neither shape on an A2A run — this runner
|
|
1667
|
+
* implements only those two dispatches, and neither is an A2A request.
|
|
1668
|
+
* Vectors that need a wire exchange then skip as
|
|
1669
|
+
* `signing_transport_unavailable` — and because no vector reached the
|
|
1670
|
+
* agent, the storyboard cannot report a pass and the track grades
|
|
1671
|
+
* `partial` rather than the run being scored against a transport error
|
|
1672
|
+
* (adcp-client#2954). Only the
|
|
1673
|
+
* in-library `jwks_override` negatives still run there: the grader
|
|
1674
|
+
* decides them against the library verifier with no wire exchange at
|
|
1675
|
+
* all, so the run's protocol is irrelevant to them. Every other probed
|
|
1676
|
+
* vector reports the coverage gap, the protocol-method negatives
|
|
1677
|
+
* included — the official `@a2a-js/sdk` client can issue those methods,
|
|
1678
|
+
* but this runner does not yet sign and dispatch a vector through it,
|
|
1679
|
+
* and writing the fixture bytes to the endpoint directly would be a
|
|
1680
|
+
* hand-rolled A2A dispatch. Setting this field explicitly overrides the
|
|
1681
|
+
* inference on any protocol; on an A2A run, do that only when the
|
|
1682
|
+
* agent's MCP or REST binding answers at the same URL.
|
|
1683
|
+
*
|
|
1684
|
+
* Matches the `adcp grade request-signing --transport <mode>` CLI flag,
|
|
1685
|
+
* and `adcp storyboard run --signing-transport <mode>`. Agents that only
|
|
1686
|
+
* speak MCP JSON-RPC can't grade under `raw`; use `mcp` to let the runner
|
|
1687
|
+
* round-trip every vector through `tools/call`.
|
|
1599
1688
|
*/
|
|
1600
1689
|
transport?: 'raw' | 'mcp';
|
|
1601
1690
|
/**
|
|
@@ -1640,6 +1729,12 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1640
1729
|
* (`StoryboardStep.task`) is resolved to the agent that claims its
|
|
1641
1730
|
* specialism via `TASK_FEATURE_MAP` × per-agent `get_adcp_capabilities`.
|
|
1642
1731
|
* An optional explicit `StoryboardStep.agent` override takes precedence.
|
|
1732
|
+
* Discovered tools across the map determine storyboard-level any-of
|
|
1733
|
+
* applicability. Each dispatched step uses its selected agent's tools
|
|
1734
|
+
* and profile; run-level `agentTools` cannot override routed discovery.
|
|
1735
|
+
* Per-entry authentication and transport override caller-supplied run
|
|
1736
|
+
* defaults. Other run options, including headers and request signing,
|
|
1737
|
+
* remain shared defaults across the map.
|
|
1643
1738
|
*
|
|
1644
1739
|
* Mutually exclusive with `multi_instance_strategy` (which is replica
|
|
1645
1740
|
* round-robin, a different concept) and with the legacy `_client`
|
|
@@ -1663,7 +1758,7 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1663
1758
|
agents?: Record<string, AgentEntry>;
|
|
1664
1759
|
/**
|
|
1665
1760
|
* Fallback agent key (must be present in `agents`) for tasks with no entry
|
|
1666
|
-
* in `TASK_FEATURE_MAP` — e.g., `
|
|
1761
|
+
* in `TASK_FEATURE_MAP` — e.g., `sync_creatives`, future tasks
|
|
1667
1762
|
* shipped before the SDK adds them to the map. When omitted, unmapped
|
|
1668
1763
|
* tasks fail-fast with `unroutable_task`.
|
|
1669
1764
|
*/
|
|
@@ -1930,6 +2025,26 @@ export type RunnerDetailedSkipReason = 'probe_skipped' | 'rate_abuse_opt_out' |
|
|
|
1930
2025
|
| 'capability_profile_mismatch'
|
|
1931
2026
|
/** Request-signing vector cannot be graded faithfully by the selected transport. */
|
|
1932
2027
|
| 'transport_ungradable'
|
|
2028
|
+
/**
|
|
2029
|
+
* The run's protocol has no shape the request-signing vectors can be
|
|
2030
|
+
* framed in, so the runner could not grade them at all — a runner-owned
|
|
2031
|
+
* coverage gap, not a property of the agent.
|
|
2032
|
+
*
|
|
2033
|
+
* Canonicalizes to `not_applicable` with `skip.detail` set to this exact
|
|
2034
|
+
* token, the shape `runner-output-contract.yaml` defines for a registered
|
|
2035
|
+
* `canonical_detail_sub_reasons.not_applicable.*` sub-reason (see
|
|
2036
|
+
* `rate_limit_not_triggered`, the shipped precedent). It deliberately does
|
|
2037
|
+
* NOT use `fixture_unavailable`: that reason's contract text mandates a
|
|
2038
|
+
* `creative_asset_fixture_unavailable:` detail prefix and says the
|
|
2039
|
+
* storyboard grades `not_applicable` with no verdict movement, which is
|
|
2040
|
+
* the opposite of what this gap must do.
|
|
2041
|
+
*
|
|
2042
|
+
* The gap is kept visible by coverage, not by the reason: `signingCoverage`
|
|
2043
|
+
* in the runner decides the storyboard verdict, the track rollup, the
|
|
2044
|
+
* report block and the CLI exit from whether any probe reached the agent.
|
|
2045
|
+
* See that function for why a skip reason cannot carry that weight.
|
|
2046
|
+
*/
|
|
2047
|
+
| 'signing_transport_unavailable'
|
|
1933
2048
|
/** Request-signing grader's MCP-transport mode collapses URL-edge vectors (#617). */
|
|
1934
2049
|
| 'mcp_mode_flattens_url_edges'
|
|
1935
2050
|
/** RFC 9728 protected-resource metadata returned 404 → agent is not advertising OAuth, cascade-skip oauth_discovery (#677). */
|
|
@@ -1955,6 +2070,13 @@ export type RunnerDetailedSkipReason = 'probe_skipped' | 'rate_abuse_opt_out' |
|
|
|
1955
2070
|
| 'fixture_seed_unsupported'
|
|
1956
2071
|
/** A valid fixture strategy ladder exhausted without finding a binding. */
|
|
1957
2072
|
| 'fixture_unsatisfied'
|
|
2073
|
+
/**
|
|
2074
|
+
* The MCP session auth probe (`mcp_session_probe`) cannot grade this step:
|
|
2075
|
+
* its authored validations assert an AdCP task response body that no MCP
|
|
2076
|
+
* protocol operation produces. Distinct from the generic `probe_skipped` so
|
|
2077
|
+
* human and JUnit output can surface the actionable detail (adcp-client#2940).
|
|
2078
|
+
*/
|
|
2079
|
+
| 'session_probe_ungradable'
|
|
1958
2080
|
/**
|
|
1959
2081
|
* A root capability predicate on the storyboard evaluated to false —
|
|
1960
2082
|
* the agent explicitly declared it does not support the capability this
|
|
@@ -29,7 +29,7 @@ export interface Storyboard {
|
|
|
29
29
|
version: string;
|
|
30
30
|
/**
|
|
31
31
|
* AdCP compliance cache version this storyboard was loaded from, e.g.
|
|
32
|
-
* "3.
|
|
32
|
+
* "3.1.18" or "3.2.0-rc.3". Injected by the local cache loader; not
|
|
33
33
|
* authored in storyboard YAML.
|
|
34
34
|
*/
|
|
35
35
|
adcp_version?: string;
|
|
@@ -897,7 +897,22 @@ export type StoryboardValidationCheck = 'response_schema' | 'field_present' | 'f
|
|
|
897
897
|
* envelope fields such as `adcp_major_version` should use
|
|
898
898
|
* `envelope_field_value`.
|
|
899
899
|
*/
|
|
900
|
-
| 'envelope_field_pattern' | 'field_contains' | 'status_code' | 'error_code' | 'http_status' | 'http_status_in' | 'on_401_require_header'
|
|
900
|
+
| 'envelope_field_pattern' | 'field_contains' | 'status_code' | 'error_code' | 'http_status' | 'http_status_in' | 'on_401_require_header'
|
|
901
|
+
/**
|
|
902
|
+
* Assert that the step's probe reported no grading error, without asserting
|
|
903
|
+
* anything about an HTTP exchange. For probes whose verdict is decided
|
|
904
|
+
* in-library rather than on the wire — the `jwks_override` request-signing
|
|
905
|
+
* negatives, which mutate a JWK the agent under test never publishes and so
|
|
906
|
+
* are graded against the SDK verifier at `http_status: 0` — this is the only
|
|
907
|
+
* honest assertion: synthesizing a 401 from a library boolean would claim a
|
|
908
|
+
* wire exchange that never happened (RFC 9421 §3; adcp-client#2955).
|
|
909
|
+
*
|
|
910
|
+
* Passes when the probe result carries no `error`; fails with the probe's
|
|
911
|
+
* own diagnostic otherwise. Like the `http_status` family it requires a
|
|
912
|
+
* probe result, so authoring it on an ordinary task step fails the step
|
|
913
|
+
* rather than passing vacuously.
|
|
914
|
+
*/
|
|
915
|
+
| 'probe_passed' | 'resource_equals_agent_url' | 'oauth_metadata_graph' | 'any_of' | 'a2a_submitted_artifact' | 'a2a_context_continuity' | 'refs_resolve'
|
|
901
916
|
/**
|
|
902
917
|
* Assert a numeric field in the current step's response is strictly less than
|
|
903
918
|
* a comparand. The comparand is either a context-captured runtime value
|
|
@@ -1362,6 +1377,44 @@ export type WebhookAssertionErrorCode = 'no_webhook_received' | 'schema_violatio
|
|
|
1362
1377
|
* (tests, tooling) can reproduce the grader's exact validation.
|
|
1363
1378
|
*/
|
|
1364
1379
|
export declare const WEBHOOK_IDEMPOTENCY_KEY_PATTERN: RegExp;
|
|
1380
|
+
/**
|
|
1381
|
+
* Runner-native sentinel task for the MCP session auth probe
|
|
1382
|
+
* (adcp-client#2940).
|
|
1383
|
+
*
|
|
1384
|
+
* `$test_kit.auth.probe_task` normally resolves to an advertised entry of
|
|
1385
|
+
* `PROBE_TASK_ALLOWLIST`. When MCP discovery succeeds but the agent advertises
|
|
1386
|
+
* none of them, `selectProbeTask` resolves to this sentinel instead of
|
|
1387
|
+
* `undefined` — but only on an explicit `protocol: 'mcp'`. The runner then
|
|
1388
|
+
* drives a complete MCP session lifecycle: `initialize` →
|
|
1389
|
+
* `notifications/initialized` → `tools/call` against a canonical AdCP
|
|
1390
|
+
* protected read the agent advertises, then `DELETE` to terminate the session.
|
|
1391
|
+
*
|
|
1392
|
+
* The graded call is `tools/call`, not MCP discovery: `tools/list` is not an
|
|
1393
|
+
* AdCP protected task (`get_adcp_capabilities` is mandatory-public), so it can
|
|
1394
|
+
* never be evidence about this agent's authentication. Grading a real
|
|
1395
|
+
* protected operation — rather than stopping at the handshake — is also what
|
|
1396
|
+
* makes the verdict independent of whether the agent enforces auth at the
|
|
1397
|
+
* session boundary or per operation.
|
|
1398
|
+
*
|
|
1399
|
+
* The target is drawn from the canonical AdCP tool registries, excludes the
|
|
1400
|
+
* public tier and mutating tasks, and must declare no required request field.
|
|
1401
|
+
* The runner still cannot guarantee an agent accepts an empty-argument call:
|
|
1402
|
+
* the next candidate is tried, and if every one refuses the shape the step
|
|
1403
|
+
* reports *inconclusive* on its response rather than an auth result. When the
|
|
1404
|
+
* agent advertises no eligible target at all, the step is skipped
|
|
1405
|
+
* `session_probe_ungradable` instead.
|
|
1406
|
+
*
|
|
1407
|
+
* What the probe can establish is bounded: that the endpoint accepts a
|
|
1408
|
+
* credential the *runner was configured with* and refuses the states it was
|
|
1409
|
+
* told to refuse, **at the tool it graded**. It is evidence that the auth
|
|
1410
|
+
* mechanism is enforced, not proof that every tool enforces it. It does not
|
|
1411
|
+
* verify any cryptographic property of that credential, and does not prove
|
|
1412
|
+
* which issuer minted it.
|
|
1413
|
+
*
|
|
1414
|
+
* Deliberately **not** a member of `PROBE_TASK_ALLOWLIST`: operators cannot
|
|
1415
|
+
* select it via `test_kit.auth.probe_task`, only the runner can resolve to it.
|
|
1416
|
+
*/
|
|
1417
|
+
export declare const MCP_SESSION_PROBE_TASK = "mcp_session_probe";
|
|
1365
1418
|
/**
|
|
1366
1419
|
* Raw HTTP probe result for tasks like `protected_resource_metadata` that
|
|
1367
1420
|
* bypass the MCP transport. Carried through the runner alongside
|
|
@@ -1377,6 +1430,18 @@ export interface HttpProbeResult {
|
|
|
1377
1430
|
body: unknown;
|
|
1378
1431
|
/** Optional error — set when the fetch failed (network, SSRF guard, etc.). */
|
|
1379
1432
|
error?: string;
|
|
1433
|
+
/**
|
|
1434
|
+
* The probe could not complete for a reason the runner owns — a transport
|
|
1435
|
+
* or precondition failure (MCP initialize, DNS, an unreadable fixture
|
|
1436
|
+
* cache), as opposed to a verdict the probe reached.
|
|
1437
|
+
*
|
|
1438
|
+
* Needed because both shapes report `status: 0` with `error` set: an
|
|
1439
|
+
* in-library request-signing grade that failed is a real verdict about the
|
|
1440
|
+
* agent's expected behavior, while a failed MCP handshake says only that
|
|
1441
|
+
* the run never got far enough to ask. Coverage reporting has to tell an
|
|
1442
|
+
* operator which of the two happened, and the remedies are opposites.
|
|
1443
|
+
*/
|
|
1444
|
+
probe_error?: boolean;
|
|
1380
1445
|
/**
|
|
1381
1446
|
* Probe was intentionally skipped (e.g. operator opted out of a vector,
|
|
1382
1447
|
* capability profile mismatch, or test-kit contract not in scope). When
|
|
@@ -1493,8 +1558,8 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1493
1558
|
*
|
|
1494
1559
|
* Reuse a profile only for the same agent URL, authentication, AdCP version,
|
|
1495
1560
|
* and route that produced it. Route-specific profiles are not interchangeable.
|
|
1496
|
-
*
|
|
1497
|
-
*
|
|
1561
|
+
* Ignored in an `agents` run: each routed agent is discovered independently,
|
|
1562
|
+
* and its profile governs the steps selected for that agent.
|
|
1498
1563
|
* Profile reuse does not retain or reuse a client or transport connection.
|
|
1499
1564
|
*
|
|
1500
1565
|
* `AgentProfile` does not carry the server's exact wire version. Pass
|
|
@@ -1530,7 +1595,11 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1530
1595
|
contributions?: string[];
|
|
1531
1596
|
/** Override the step's sample_request with a custom request */
|
|
1532
1597
|
request?: Record<string, unknown>;
|
|
1533
|
-
/**
|
|
1598
|
+
/**
|
|
1599
|
+
* Agent's available tools for storyboard/step-level tool gates. Ignored when
|
|
1600
|
+
* `agents` is supplied: routed discovery determines applicability and each
|
|
1601
|
+
* selected agent's tool list controls its execution gates.
|
|
1602
|
+
*/
|
|
1534
1603
|
agentTools?: string[];
|
|
1535
1604
|
/**
|
|
1536
1605
|
* Allow plain-http agent URLs during compliance runs and permit guarded
|
|
@@ -1587,15 +1656,35 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1587
1656
|
* operation AdCP endpoint (e.g. `<baseUrl>/create_media_buy`).
|
|
1588
1657
|
* Works for agents that expose AdCP tools as discrete HTTP
|
|
1589
1658
|
* operations.
|
|
1590
|
-
* - `mcp`
|
|
1659
|
+
* - `mcp` — wraps each vector body in a JSON-RPC `tools/call`
|
|
1591
1660
|
* envelope and POSTs to the agent's single `/mcp` mount. Required
|
|
1592
1661
|
* for MCP-only agents that don't expose per-operation endpoints.
|
|
1593
1662
|
* The operation name is derived from the last path segment of the
|
|
1594
1663
|
* vector's target URL.
|
|
1595
1664
|
*
|
|
1596
|
-
*
|
|
1597
|
-
*
|
|
1598
|
-
*
|
|
1665
|
+
* Defaults to the shape the run's `protocol` can actually grade: `mcp`
|
|
1666
|
+
* on an MCP run, and neither shape on an A2A run — this runner
|
|
1667
|
+
* implements only those two dispatches, and neither is an A2A request.
|
|
1668
|
+
* Vectors that need a wire exchange then skip as
|
|
1669
|
+
* `signing_transport_unavailable` — and because no vector reached the
|
|
1670
|
+
* agent, the storyboard cannot report a pass and the track grades
|
|
1671
|
+
* `partial` rather than the run being scored against a transport error
|
|
1672
|
+
* (adcp-client#2954). Only the
|
|
1673
|
+
* in-library `jwks_override` negatives still run there: the grader
|
|
1674
|
+
* decides them against the library verifier with no wire exchange at
|
|
1675
|
+
* all, so the run's protocol is irrelevant to them. Every other probed
|
|
1676
|
+
* vector reports the coverage gap, the protocol-method negatives
|
|
1677
|
+
* included — the official `@a2a-js/sdk` client can issue those methods,
|
|
1678
|
+
* but this runner does not yet sign and dispatch a vector through it,
|
|
1679
|
+
* and writing the fixture bytes to the endpoint directly would be a
|
|
1680
|
+
* hand-rolled A2A dispatch. Setting this field explicitly overrides the
|
|
1681
|
+
* inference on any protocol; on an A2A run, do that only when the
|
|
1682
|
+
* agent's MCP or REST binding answers at the same URL.
|
|
1683
|
+
*
|
|
1684
|
+
* Matches the `adcp grade request-signing --transport <mode>` CLI flag,
|
|
1685
|
+
* and `adcp storyboard run --signing-transport <mode>`. Agents that only
|
|
1686
|
+
* speak MCP JSON-RPC can't grade under `raw`; use `mcp` to let the runner
|
|
1687
|
+
* round-trip every vector through `tools/call`.
|
|
1599
1688
|
*/
|
|
1600
1689
|
transport?: 'raw' | 'mcp';
|
|
1601
1690
|
/**
|
|
@@ -1640,6 +1729,12 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1640
1729
|
* (`StoryboardStep.task`) is resolved to the agent that claims its
|
|
1641
1730
|
* specialism via `TASK_FEATURE_MAP` × per-agent `get_adcp_capabilities`.
|
|
1642
1731
|
* An optional explicit `StoryboardStep.agent` override takes precedence.
|
|
1732
|
+
* Discovered tools across the map determine storyboard-level any-of
|
|
1733
|
+
* applicability. Each dispatched step uses its selected agent's tools
|
|
1734
|
+
* and profile; run-level `agentTools` cannot override routed discovery.
|
|
1735
|
+
* Per-entry authentication and transport override caller-supplied run
|
|
1736
|
+
* defaults. Other run options, including headers and request signing,
|
|
1737
|
+
* remain shared defaults across the map.
|
|
1643
1738
|
*
|
|
1644
1739
|
* Mutually exclusive with `multi_instance_strategy` (which is replica
|
|
1645
1740
|
* round-robin, a different concept) and with the legacy `_client`
|
|
@@ -1663,7 +1758,7 @@ export interface StoryboardRunOptions extends TestOptions {
|
|
|
1663
1758
|
agents?: Record<string, AgentEntry>;
|
|
1664
1759
|
/**
|
|
1665
1760
|
* Fallback agent key (must be present in `agents`) for tasks with no entry
|
|
1666
|
-
* in `TASK_FEATURE_MAP` — e.g., `
|
|
1761
|
+
* in `TASK_FEATURE_MAP` — e.g., `sync_creatives`, future tasks
|
|
1667
1762
|
* shipped before the SDK adds them to the map. When omitted, unmapped
|
|
1668
1763
|
* tasks fail-fast with `unroutable_task`.
|
|
1669
1764
|
*/
|
|
@@ -1930,6 +2025,26 @@ export type RunnerDetailedSkipReason = 'probe_skipped' | 'rate_abuse_opt_out' |
|
|
|
1930
2025
|
| 'capability_profile_mismatch'
|
|
1931
2026
|
/** Request-signing vector cannot be graded faithfully by the selected transport. */
|
|
1932
2027
|
| 'transport_ungradable'
|
|
2028
|
+
/**
|
|
2029
|
+
* The run's protocol has no shape the request-signing vectors can be
|
|
2030
|
+
* framed in, so the runner could not grade them at all — a runner-owned
|
|
2031
|
+
* coverage gap, not a property of the agent.
|
|
2032
|
+
*
|
|
2033
|
+
* Canonicalizes to `not_applicable` with `skip.detail` set to this exact
|
|
2034
|
+
* token, the shape `runner-output-contract.yaml` defines for a registered
|
|
2035
|
+
* `canonical_detail_sub_reasons.not_applicable.*` sub-reason (see
|
|
2036
|
+
* `rate_limit_not_triggered`, the shipped precedent). It deliberately does
|
|
2037
|
+
* NOT use `fixture_unavailable`: that reason's contract text mandates a
|
|
2038
|
+
* `creative_asset_fixture_unavailable:` detail prefix and says the
|
|
2039
|
+
* storyboard grades `not_applicable` with no verdict movement, which is
|
|
2040
|
+
* the opposite of what this gap must do.
|
|
2041
|
+
*
|
|
2042
|
+
* The gap is kept visible by coverage, not by the reason: `signingCoverage`
|
|
2043
|
+
* in the runner decides the storyboard verdict, the track rollup, the
|
|
2044
|
+
* report block and the CLI exit from whether any probe reached the agent.
|
|
2045
|
+
* See that function for why a skip reason cannot carry that weight.
|
|
2046
|
+
*/
|
|
2047
|
+
| 'signing_transport_unavailable'
|
|
1933
2048
|
/** Request-signing grader's MCP-transport mode collapses URL-edge vectors (#617). */
|
|
1934
2049
|
| 'mcp_mode_flattens_url_edges'
|
|
1935
2050
|
/** RFC 9728 protected-resource metadata returned 404 → agent is not advertising OAuth, cascade-skip oauth_discovery (#677). */
|
|
@@ -1955,6 +2070,13 @@ export type RunnerDetailedSkipReason = 'probe_skipped' | 'rate_abuse_opt_out' |
|
|
|
1955
2070
|
| 'fixture_seed_unsupported'
|
|
1956
2071
|
/** A valid fixture strategy ladder exhausted without finding a binding. */
|
|
1957
2072
|
| 'fixture_unsatisfied'
|
|
2073
|
+
/**
|
|
2074
|
+
* The MCP session auth probe (`mcp_session_probe`) cannot grade this step:
|
|
2075
|
+
* its authored validations assert an AdCP task response body that no MCP
|
|
2076
|
+
* protocol operation produces. Distinct from the generic `probe_skipped` so
|
|
2077
|
+
* human and JUnit output can surface the actionable detail (adcp-client#2940).
|
|
2078
|
+
*/
|
|
2079
|
+
| 'session_probe_ungradable'
|
|
1958
2080
|
/**
|
|
1959
2081
|
* A root capability predicate on the storyboard evaluated to false —
|
|
1960
2082
|
* the agent explicitly declared it does not support the capability this
|
|
@@ -20,22 +20,38 @@ var types_exports = {};
|
|
|
20
20
|
__export(types_exports, {
|
|
21
21
|
DETAILED_SKIP_TO_CANONICAL: () => DETAILED_SKIP_TO_CANONICAL,
|
|
22
22
|
KNOWN_REQUIREMENTS: () => KNOWN_REQUIREMENTS,
|
|
23
|
+
MCP_SESSION_PROBE_TASK: () => MCP_SESSION_PROBE_TASK,
|
|
23
24
|
WEBHOOK_IDEMPOTENCY_KEY_PATTERN: () => WEBHOOK_IDEMPOTENCY_KEY_PATTERN
|
|
24
25
|
});
|
|
25
26
|
module.exports = __toCommonJS(types_exports);
|
|
26
27
|
const WEBHOOK_IDEMPOTENCY_KEY_PATTERN = /^[A-Za-z0-9_.:-]{16,255}$/;
|
|
28
|
+
const MCP_SESSION_PROBE_TASK = "mcp_session_probe";
|
|
27
29
|
const DETAILED_SKIP_TO_CANONICAL = {
|
|
28
30
|
probe_skipped: "not_applicable",
|
|
29
31
|
not_in_only_vectors: "not_applicable",
|
|
30
32
|
grader_skipped: "not_applicable",
|
|
31
33
|
capability_profile_mismatch: "not_applicable",
|
|
34
|
+
// Scope note (adcp-client#2954): `transport_ungradable` marks vectors the
|
|
35
|
+
// grader's own TRANSPORT_UNGRADABLE table carves out on every run because
|
|
36
|
+
// no HTTP client can put those bytes on the wire — `026-non-ascii-host`
|
|
37
|
+
// for any storyboard-synthesized run, plus a profile-3.2 entry the
|
|
38
|
+
// storyboard never synthesizes. It stays `not_applicable`: those vectors
|
|
39
|
+
// are inapplicable to every binding, and the other ~38 still verify the
|
|
40
|
+
// agent.
|
|
41
|
+
//
|
|
42
|
+
// `signing_transport_unavailable` is also `not_applicable` at the canonical
|
|
43
|
+
// layer, but for the contract-shape reason documented on the enum member
|
|
44
|
+
// above — not because the gap is tolerable. Its weight is carried by
|
|
45
|
+
// `signingCoverage`, which asks whether any vector reached the agent.
|
|
32
46
|
transport_ungradable: "not_applicable",
|
|
47
|
+
signing_transport_unavailable: "not_applicable",
|
|
33
48
|
mcp_mode_flattens_url_edges: "not_applicable",
|
|
34
49
|
oauth_not_advertised: "not_applicable",
|
|
35
50
|
rate_limit_not_triggered: "not_applicable",
|
|
36
51
|
force_scenario_unsupported: "not_applicable",
|
|
37
52
|
fixture_seed_unsupported: "not_applicable",
|
|
38
53
|
fixture_unsatisfied: "not_applicable",
|
|
54
|
+
session_probe_ungradable: "not_applicable",
|
|
39
55
|
capability_unsupported: "not_applicable",
|
|
40
56
|
capability_prerequisite_unavailable: "not_applicable",
|
|
41
57
|
rate_abuse_opt_out: "unsatisfied_contract",
|
|
@@ -59,5 +75,6 @@ const KNOWN_REQUIREMENTS = /* @__PURE__ */ new Set([
|
|
|
59
75
|
0 && (module.exports = {
|
|
60
76
|
DETAILED_SKIP_TO_CANONICAL,
|
|
61
77
|
KNOWN_REQUIREMENTS,
|
|
78
|
+
MCP_SESSION_PROBE_TASK,
|
|
62
79
|
WEBHOOK_IDEMPOTENCY_KEY_PATTERN
|
|
63
80
|
});
|
|
@@ -1,16 +1,31 @@
|
|
|
1
1
|
const WEBHOOK_IDEMPOTENCY_KEY_PATTERN = /^[A-Za-z0-9_.:-]{16,255}$/;
|
|
2
|
+
const MCP_SESSION_PROBE_TASK = "mcp_session_probe";
|
|
2
3
|
const DETAILED_SKIP_TO_CANONICAL = {
|
|
3
4
|
probe_skipped: "not_applicable",
|
|
4
5
|
not_in_only_vectors: "not_applicable",
|
|
5
6
|
grader_skipped: "not_applicable",
|
|
6
7
|
capability_profile_mismatch: "not_applicable",
|
|
8
|
+
// Scope note (adcp-client#2954): `transport_ungradable` marks vectors the
|
|
9
|
+
// grader's own TRANSPORT_UNGRADABLE table carves out on every run because
|
|
10
|
+
// no HTTP client can put those bytes on the wire — `026-non-ascii-host`
|
|
11
|
+
// for any storyboard-synthesized run, plus a profile-3.2 entry the
|
|
12
|
+
// storyboard never synthesizes. It stays `not_applicable`: those vectors
|
|
13
|
+
// are inapplicable to every binding, and the other ~38 still verify the
|
|
14
|
+
// agent.
|
|
15
|
+
//
|
|
16
|
+
// `signing_transport_unavailable` is also `not_applicable` at the canonical
|
|
17
|
+
// layer, but for the contract-shape reason documented on the enum member
|
|
18
|
+
// above — not because the gap is tolerable. Its weight is carried by
|
|
19
|
+
// `signingCoverage`, which asks whether any vector reached the agent.
|
|
7
20
|
transport_ungradable: "not_applicable",
|
|
21
|
+
signing_transport_unavailable: "not_applicable",
|
|
8
22
|
mcp_mode_flattens_url_edges: "not_applicable",
|
|
9
23
|
oauth_not_advertised: "not_applicable",
|
|
10
24
|
rate_limit_not_triggered: "not_applicable",
|
|
11
25
|
force_scenario_unsupported: "not_applicable",
|
|
12
26
|
fixture_seed_unsupported: "not_applicable",
|
|
13
27
|
fixture_unsatisfied: "not_applicable",
|
|
28
|
+
session_probe_ungradable: "not_applicable",
|
|
14
29
|
capability_unsupported: "not_applicable",
|
|
15
30
|
capability_prerequisite_unavailable: "not_applicable",
|
|
16
31
|
rate_abuse_opt_out: "unsatisfied_contract",
|
|
@@ -33,5 +48,6 @@ const KNOWN_REQUIREMENTS = /* @__PURE__ */ new Set([
|
|
|
33
48
|
export {
|
|
34
49
|
DETAILED_SKIP_TO_CANONICAL,
|
|
35
50
|
KNOWN_REQUIREMENTS,
|
|
51
|
+
MCP_SESSION_PROBE_TASK,
|
|
36
52
|
WEBHOOK_IDEMPOTENCY_KEY_PATTERN
|
|
37
53
|
};
|
|
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
|
|
|
197
197
|
*/
|
|
198
198
|
export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
|
|
199
199
|
/** Capability semver emitted in run summaries and used for advisory expiry. */
|
|
200
|
-
export declare const RUNNER_CAPABILITY_VERSION = "14.0.0-rc.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "14.0.0-rc.39";
|
|
201
201
|
/** True when a failed validation contributes to the owning step's grade. */
|
|
202
202
|
export declare function validationFailsStep(result: ValidationResult): boolean;
|
|
203
203
|
/**
|
|
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
|
|
|
197
197
|
*/
|
|
198
198
|
export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
|
|
199
199
|
/** Capability semver emitted in run summaries and used for advisory expiry. */
|
|
200
|
-
export declare const RUNNER_CAPABILITY_VERSION = "14.0.0-rc.
|
|
200
|
+
export declare const RUNNER_CAPABILITY_VERSION = "14.0.0-rc.39";
|
|
201
201
|
/** True when a failed validation contributes to the owning step's grade. */
|
|
202
202
|
export declare function validationFailsStep(result: ValidationResult): boolean;
|
|
203
203
|
/**
|
|
@@ -107,6 +107,8 @@ function runValidation(validation, ctx) {
|
|
|
107
107
|
return requireHttpResult(ctx, validation, (hr) => validateHttpStatus(validation, hr));
|
|
108
108
|
case "http_status_in":
|
|
109
109
|
return requireHttpResult(ctx, validation, (hr) => validateHttpStatusIn(validation, hr));
|
|
110
|
+
case "probe_passed":
|
|
111
|
+
return requireHttpResult(ctx, validation, (hr) => validateProbePassed(validation, hr));
|
|
110
112
|
case "on_401_require_header":
|
|
111
113
|
return requireHttpResult(ctx, validation, (hr) => validateOn401RequireHeader(validation, hr));
|
|
112
114
|
case "resource_equals_agent_url":
|
|
@@ -1210,6 +1212,20 @@ function validateHttpStatusIn(validation, hr) {
|
|
|
1210
1212
|
actual: hr.status
|
|
1211
1213
|
};
|
|
1212
1214
|
}
|
|
1215
|
+
function validateProbePassed(validation, hr) {
|
|
1216
|
+
if (!hr.error) {
|
|
1217
|
+
return { check: "probe_passed", passed: true, description: validation.description };
|
|
1218
|
+
}
|
|
1219
|
+
return {
|
|
1220
|
+
check: "probe_passed",
|
|
1221
|
+
passed: false,
|
|
1222
|
+
description: validation.description,
|
|
1223
|
+
error: `Probe reported a failed grade: ${hr.error}`,
|
|
1224
|
+
json_pointer: null,
|
|
1225
|
+
expected: "probe grade with no error",
|
|
1226
|
+
actual: hr.error
|
|
1227
|
+
};
|
|
1228
|
+
}
|
|
1213
1229
|
const SCHEMA_KEYWORD_RE = /invalid[_ ]?params|validation|schema|required|must be/i;
|
|
1214
1230
|
const SCHEMA_CODE_RE = /VALIDATION|INVALID|SCHEMA|BAD_REQUEST/i;
|
|
1215
1231
|
function looksLikeSchemaValidationBody(body) {
|
|
@@ -82,6 +82,8 @@ function runValidation(validation, ctx) {
|
|
|
82
82
|
return requireHttpResult(ctx, validation, (hr) => validateHttpStatus(validation, hr));
|
|
83
83
|
case "http_status_in":
|
|
84
84
|
return requireHttpResult(ctx, validation, (hr) => validateHttpStatusIn(validation, hr));
|
|
85
|
+
case "probe_passed":
|
|
86
|
+
return requireHttpResult(ctx, validation, (hr) => validateProbePassed(validation, hr));
|
|
85
87
|
case "on_401_require_header":
|
|
86
88
|
return requireHttpResult(ctx, validation, (hr) => validateOn401RequireHeader(validation, hr));
|
|
87
89
|
case "resource_equals_agent_url":
|
|
@@ -1186,6 +1188,20 @@ function validateHttpStatusIn(validation, hr) {
|
|
|
1186
1188
|
actual: hr.status
|
|
1187
1189
|
};
|
|
1188
1190
|
}
|
|
1191
|
+
function validateProbePassed(validation, hr) {
|
|
1192
|
+
if (!hr.error) {
|
|
1193
|
+
return { check: "probe_passed", passed: true, description: validation.description };
|
|
1194
|
+
}
|
|
1195
|
+
return {
|
|
1196
|
+
check: "probe_passed",
|
|
1197
|
+
passed: false,
|
|
1198
|
+
description: validation.description,
|
|
1199
|
+
error: `Probe reported a failed grade: ${hr.error}`,
|
|
1200
|
+
json_pointer: null,
|
|
1201
|
+
expected: "probe grade with no error",
|
|
1202
|
+
actual: hr.error
|
|
1203
|
+
};
|
|
1204
|
+
}
|
|
1189
1205
|
const SCHEMA_KEYWORD_RE = /invalid[_ ]?params|validation|schema|required|must be/i;
|
|
1190
1206
|
const SCHEMA_CODE_RE = /VALIDATION|INVALID|SCHEMA|BAD_REQUEST/i;
|
|
1191
1207
|
function looksLikeSchemaValidationBody(body) {
|
|
@@ -9,7 +9,7 @@ import type { AgentProfile, TaskResult, TestOptions } from './types.mjs';
|
|
|
9
9
|
import type { RecordedCall } from '../upstream-recorder/types.mjs';
|
|
10
10
|
import type { ComplyTestControllerResponse, ListScenariosSuccess, StateTransitionSuccess, SimulationSuccess, ControllerError } from '../types/tools.generated.mjs';
|
|
11
11
|
/** Known canonical scenarios, retained as an autocomplete convenience. */
|
|
12
|
-
export type ControllerScenario = 'force_creative_status' | 'force_account_status' | 'force_media_buy_status' | 'force_session_status' | 'force_create_media_buy_arm' | 'force_get_products_arm' | 'force_get_signals_arm' | 'force_task_completion' | 'simulate_delivery' | 'simulate_budget_spend'
|
|
12
|
+
export type ControllerScenario = 'force_creative_status' | 'force_account_status' | 'force_media_buy_status' | 'force_session_status' | 'force_create_media_buy_arm' | 'force_get_products_arm' | 'force_get_signals_arm' | 'force_task_completion' | 'reset_state' | 'simulate_delivery' | 'simulate_budget_spend'
|
|
13
13
|
/**
|
|
14
14
|
* Returns outbound HTTP calls the agent has made since session start
|
|
15
15
|
* (or since a caller-supplied timestamp). Backs the `upstream_traffic`
|
|
@@ -9,7 +9,7 @@ import type { AgentProfile, TaskResult, TestOptions } from './types';
|
|
|
9
9
|
import type { RecordedCall } from '../upstream-recorder/types';
|
|
10
10
|
import type { ComplyTestControllerResponse, ListScenariosSuccess, StateTransitionSuccess, SimulationSuccess, ControllerError } from '../types/tools.generated';
|
|
11
11
|
/** Known canonical scenarios, retained as an autocomplete convenience. */
|
|
12
|
-
export type ControllerScenario = 'force_creative_status' | 'force_account_status' | 'force_media_buy_status' | 'force_session_status' | 'force_create_media_buy_arm' | 'force_get_products_arm' | 'force_get_signals_arm' | 'force_task_completion' | 'simulate_delivery' | 'simulate_budget_spend'
|
|
12
|
+
export type ControllerScenario = 'force_creative_status' | 'force_account_status' | 'force_media_buy_status' | 'force_session_status' | 'force_create_media_buy_arm' | 'force_get_products_arm' | 'force_get_signals_arm' | 'force_task_completion' | 'reset_state' | 'simulate_delivery' | 'simulate_budget_spend'
|
|
13
13
|
/**
|
|
14
14
|
* Returns outbound HTTP calls the agent has made since session start
|
|
15
15
|
* (or since a caller-supplied timestamp). Backs the `upstream_traffic`
|