@adcp/sdk 7.11.1 → 7.11.3
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/ADCP_VERSION +1 -1
- package/compliance/cache/{3.0.12 → 3.0.18}/domains/creative/index.yaml +2 -1
- package/compliance/cache/{3.0.12/protocols → 3.0.18/domains}/media-buy/creative-reception.yaml +1 -0
- package/compliance/cache/{3.0.12/protocols → 3.0.18/domains}/media-buy/scenarios/measurement_terms_rejected.yaml +19 -11
- package/compliance/cache/{3.0.12.previous → 3.0.18}/domains/media-buy/scenarios/proposal_finalize.yaml +6 -0
- package/compliance/cache/{3.0.12.previous/protocols → 3.0.18/domains}/media-buy/state-machine.yaml +82 -13
- package/compliance/cache/{3.0.12 → 3.0.18}/index.json +3 -2
- package/compliance/cache/{3.0.12 → 3.0.18}/protocols/creative/index.yaml +2 -1
- package/compliance/cache/{3.0.12.previous/domains → 3.0.18/protocols}/media-buy/creative-reception.yaml +1 -0
- package/compliance/cache/{3.0.12.previous → 3.0.18}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +19 -11
- package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/proposal_finalize.yaml +6 -0
- package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/state-machine.yaml +82 -13
- package/compliance/cache/{3.0.12.previous → 3.0.18}/specialisms/creative-template/index.yaml +1 -0
- package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/webhook-receiver-runner.yaml +9 -9
- package/compliance/cache/{3.0.12 → 3.0.18}/universal/idempotency.yaml +327 -124
- package/compliance/cache/{3.0.12.previous → 3.0.18}/universal/schema-validation.yaml +52 -13
- package/compliance/cache/{3.0.12 → 3.0.18}/universal/security.yaml +170 -61
- package/compliance/cache/{3.0.12 → 3.0.18}/universal/storyboard-schema.yaml +43 -23
- package/compliance/cache/{3.0.12.previous → 3.0.18}/universal/v3-envelope-integrity.yaml +20 -1
- package/compliance/cache/3.0.18/universal/webhook-emission.yaml +751 -0
- package/compliance/cache/{3.0.12.previous/protocols → 3.0.18.previous/domains}/creative/index.yaml +2 -1
- package/compliance/cache/{3.0.12.previous/protocols → 3.0.18.previous/domains}/media-buy/creative-reception.yaml +1 -0
- package/compliance/cache/{3.1.0-rc.2 → 3.0.18.previous}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +5 -4
- package/compliance/cache/{3.0.12.previous/protocols → 3.0.18.previous/domains}/media-buy/scenarios/proposal_finalize.yaml +6 -0
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/state-machine.yaml +82 -13
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/index.json +3 -2
- package/compliance/cache/{3.0.12.previous/domains → 3.0.18.previous/protocols}/creative/index.yaml +2 -1
- package/compliance/cache/{3.0.12/domains → 3.0.18.previous/protocols}/media-buy/creative-reception.yaml +1 -0
- package/compliance/cache/{3.1.0-rc.2 → 3.0.18.previous}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +5 -4
- package/compliance/cache/{3.0.12/domains → 3.0.18.previous/protocols}/media-buy/scenarios/proposal_finalize.yaml +6 -0
- package/compliance/cache/{3.0.12/domains → 3.0.18.previous/protocols}/media-buy/state-machine.yaml +82 -13
- package/compliance/cache/{3.0.12 → 3.0.18.previous}/specialisms/creative-template/index.yaml +1 -0
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/webhook-receiver-runner.yaml +9 -9
- package/compliance/cache/{3.1.0-rc.2 → 3.0.18.previous}/universal/idempotency.yaml +56 -108
- package/compliance/cache/{3.1.0-rc.2 → 3.0.18.previous}/universal/schema-validation.yaml +25 -8
- package/compliance/cache/{3.1.0-rc.2 → 3.0.18.previous}/universal/security.yaml +29 -28
- package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/storyboard-schema.yaml +43 -23
- package/compliance/cache/{3.1.0-rc.2 → 3.0.18.previous}/universal/v3-envelope-integrity.yaml +22 -14
- package/compliance/cache/{3.1.0-rc.2 → 3.0.18.previous}/universal/webhook-emission.yaml +362 -22
- package/dist/lib/core/AgentClient.d.ts +1 -1
- package/dist/lib/core/AgentClient.d.ts.map +1 -1
- package/dist/lib/core/AgentClient.js.map +1 -1
- package/dist/lib/core/ResponseValidator.d.ts +2 -0
- package/dist/lib/core/ResponseValidator.d.ts.map +1 -1
- package/dist/lib/core/ResponseValidator.js +3 -3
- package/dist/lib/core/ResponseValidator.js.map +1 -1
- package/dist/lib/core/SingleAgentClient.d.ts +6 -0
- package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
- package/dist/lib/core/SingleAgentClient.js +1 -0
- package/dist/lib/core/SingleAgentClient.js.map +1 -1
- package/dist/lib/core/TaskExecutor.d.ts +6 -0
- package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
- package/dist/lib/core/TaskExecutor.js +15 -1
- package/dist/lib/core/TaskExecutor.js.map +1 -1
- package/dist/lib/protocols/index.d.ts +10 -2
- package/dist/lib/protocols/index.d.ts.map +1 -1
- package/dist/lib/protocols/index.js +14 -6
- package/dist/lib/protocols/index.js.map +1 -1
- package/dist/lib/schemas-data/3.0/a2ui/bound-value.json +1 -1
- package/dist/lib/schemas-data/3.0/a2ui/component.json +1 -1
- package/dist/lib/schemas-data/3.0/a2ui/si-catalog.json +25 -25
- package/dist/lib/schemas-data/3.0/a2ui/surface.json +2 -2
- package/dist/lib/schemas-data/3.0/a2ui/user-action.json +1 -1
- package/dist/lib/schemas-data/3.0/account/get-account-financials-request.json +5 -5
- package/dist/lib/schemas-data/3.0/account/get-account-financials-response.json +10 -10
- package/dist/lib/schemas-data/3.0/account/list-accounts-request.json +4 -4
- package/dist/lib/schemas-data/3.0/account/list-accounts-response.json +6 -6
- package/dist/lib/schemas-data/3.0/account/report-usage-request.json +5 -5
- package/dist/lib/schemas-data/3.0/account/report-usage-response.json +4 -4
- package/dist/lib/schemas-data/3.0/account/sync-accounts-request.json +9 -9
- package/dist/lib/schemas-data/3.0/account/sync-accounts-response.json +12 -12
- package/dist/lib/schemas-data/3.0/account/sync-governance-request.json +5 -5
- package/dist/lib/schemas-data/3.0/account/sync-governance-response.json +8 -8
- package/dist/lib/schemas-data/3.0/adagents.json +32 -32
- package/dist/lib/schemas-data/3.0/brand/acquire-rights-request.json +8 -8
- package/dist/lib/schemas-data/3.0/brand/acquire-rights-response.json +14 -14
- package/dist/lib/schemas-data/3.0/brand/creative-approval-request.json +4 -4
- package/dist/lib/schemas-data/3.0/brand/creative-approval-response.json +10 -10
- package/dist/lib/schemas-data/3.0/brand/get-brand-identity-request.json +3 -3
- package/dist/lib/schemas-data/3.0/brand/get-brand-identity-response.json +8 -8
- package/dist/lib/schemas-data/3.0/brand/get-rights-request.json +7 -7
- package/dist/lib/schemas-data/3.0/brand/get-rights-response.json +9 -9
- package/dist/lib/schemas-data/3.0/brand/revocation-notification.json +4 -4
- package/dist/lib/schemas-data/3.0/brand/rights-pricing-option.json +5 -5
- package/dist/lib/schemas-data/3.0/brand/rights-terms.json +3 -3
- package/dist/lib/schemas-data/3.0/brand/update-rights-request.json +4 -4
- package/dist/lib/schemas-data/3.0/brand/update-rights-response.json +9 -9
- package/dist/lib/schemas-data/3.0/brand.json +14 -14
- package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/package-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-response.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-request.json +2 -2
- package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-response.json +2 -2
- package/dist/lib/schemas-data/3.0/collection/base-collection-source.json +3 -3
- package/dist/lib/schemas-data/3.0/collection/collection-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.0/collection/collection-list-filters.json +7 -7
- package/dist/lib/schemas-data/3.0/collection/collection-list.json +5 -5
- package/dist/lib/schemas-data/3.0/collection/create-collection-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/collection/create-collection-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/collection/delete-collection-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/collection/delete-collection-list-response.json +3 -3
- package/dist/lib/schemas-data/3.0/collection/get-collection-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/collection/get-collection-list-response.json +10 -10
- package/dist/lib/schemas-data/3.0/collection/list-collection-lists-request.json +5 -5
- package/dist/lib/schemas-data/3.0/collection/list-collection-lists-response.json +5 -5
- package/dist/lib/schemas-data/3.0/collection/update-collection-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/collection/update-collection-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/artifact-webhook-payload.json +3 -3
- package/dist/lib/schemas-data/3.0/content-standards/artifact.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-request.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-response.json +8 -8
- package/dist/lib/schemas-data/3.0/content-standards/content-standards.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-request.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-response.json +6 -6
- package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-request.json +3 -3
- package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-response.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-request.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-response.json +8 -8
- package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-request.json +5 -5
- package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-response.json +8 -8
- package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-request.json +7 -7
- package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-response.json +6 -6
- package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-request.json +4 -4
- package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-response.json +8 -8
- package/dist/lib/schemas-data/3.0/core/account-ref.json +2 -2
- package/dist/lib/schemas-data/3.0/core/account.json +9 -9
- package/dist/lib/schemas-data/3.0/core/activation-key.json +1 -1
- package/dist/lib/schemas-data/3.0/core/ad-inventory-config.json +1 -1
- package/dist/lib/schemas-data/3.0/core/agent-encryption-key.json +1 -1
- package/dist/lib/schemas-data/3.0/core/agent-signing-key.json +1 -1
- package/dist/lib/schemas-data/3.0/core/app-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/assets/asset-union.json +15 -15
- package/dist/lib/schemas-data/3.0/core/assets/audio-asset.json +3 -3
- package/dist/lib/schemas-data/3.0/core/assets/brief-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/catalog-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/css-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/daast-asset.json +4 -4
- package/dist/lib/schemas-data/3.0/core/assets/html-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/image-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/javascript-asset.json +3 -3
- package/dist/lib/schemas-data/3.0/core/assets/markdown-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/text-asset.json +2 -2
- package/dist/lib/schemas-data/3.0/core/assets/url-asset.json +3 -3
- package/dist/lib/schemas-data/3.0/core/assets/vast-asset.json +4 -4
- package/dist/lib/schemas-data/3.0/core/assets/video-asset.json +7 -7
- package/dist/lib/schemas-data/3.0/core/assets/webhook-asset.json +7 -7
- package/dist/lib/schemas-data/3.0/core/async-response-data.json +25 -25
- package/dist/lib/schemas-data/3.0/core/attribution-window.json +4 -4
- package/dist/lib/schemas-data/3.0/core/audience-member.json +3 -3
- package/dist/lib/schemas-data/3.0/core/audience-selector.json +4 -4
- package/dist/lib/schemas-data/3.0/core/brand-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/brand-ref.json +2 -2
- package/dist/lib/schemas-data/3.0/core/business-entity.json +2 -2
- package/dist/lib/schemas-data/3.0/core/cancellation-policy.json +2 -2
- package/dist/lib/schemas-data/3.0/core/catalog-field-mapping.json +2 -2
- package/dist/lib/schemas-data/3.0/core/catalog.json +7 -7
- package/dist/lib/schemas-data/3.0/core/catchment.json +5 -5
- package/dist/lib/schemas-data/3.0/core/collection-distribution.json +2 -2
- package/dist/lib/schemas-data/3.0/core/collection-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/core/collection-selector.json +1 -1
- package/dist/lib/schemas-data/3.0/core/collection.json +13 -13
- package/dist/lib/schemas-data/3.0/core/content-rating.json +2 -2
- package/dist/lib/schemas-data/3.0/core/context.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-asset.json +6 -6
- package/dist/lib/schemas-data/3.0/core/creative-assignment.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-brief.json +4 -4
- package/dist/lib/schemas-data/3.0/core/creative-consumption.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-filters.json +4 -4
- package/dist/lib/schemas-data/3.0/core/creative-item.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-manifest.json +7 -7
- package/dist/lib/schemas-data/3.0/core/creative-policy.json +3 -3
- package/dist/lib/schemas-data/3.0/core/creative-variable.json +1 -1
- package/dist/lib/schemas-data/3.0/core/creative-variant.json +5 -5
- package/dist/lib/schemas-data/3.0/core/data-provider-signal-selector.json +1 -1
- package/dist/lib/schemas-data/3.0/core/date-range.json +1 -1
- package/dist/lib/schemas-data/3.0/core/datetime-range.json +1 -1
- package/dist/lib/schemas-data/3.0/core/daypart-target.json +2 -2
- package/dist/lib/schemas-data/3.0/core/deadline-policy.json +1 -1
- package/dist/lib/schemas-data/3.0/core/delivery-forecast.json +7 -7
- package/dist/lib/schemas-data/3.0/core/delivery-metrics.json +5 -5
- package/dist/lib/schemas-data/3.0/core/deployment.json +3 -3
- package/dist/lib/schemas-data/3.0/core/destination-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/destination.json +1 -1
- package/dist/lib/schemas-data/3.0/core/diagnostic-issue.json +1 -1
- package/dist/lib/schemas-data/3.0/core/duration.json +1 -1
- package/dist/lib/schemas-data/3.0/core/education-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/error.json +1 -1
- package/dist/lib/schemas-data/3.0/core/event-custom-data.json +2 -2
- package/dist/lib/schemas-data/3.0/core/event-source-health.json +3 -3
- package/dist/lib/schemas-data/3.0/core/event.json +6 -6
- package/dist/lib/schemas-data/3.0/core/ext.json +1 -1
- package/dist/lib/schemas-data/3.0/core/feature-requirement.json +1 -1
- package/dist/lib/schemas-data/3.0/core/flight-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/forecast-point.json +18 -18
- package/dist/lib/schemas-data/3.0/core/forecast-range.json +1 -1
- package/dist/lib/schemas-data/3.0/core/format-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/format.json +42 -42
- package/dist/lib/schemas-data/3.0/core/frequency-cap.json +4 -4
- package/dist/lib/schemas-data/3.0/core/generation-credential.json +3 -3
- package/dist/lib/schemas-data/3.0/core/geo-breakdown-support.json +3 -3
- package/dist/lib/schemas-data/3.0/core/hotel-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/identifier.json +2 -2
- package/dist/lib/schemas-data/3.0/core/industry-identifier.json +2 -2
- package/dist/lib/schemas-data/3.0/core/insertion-order.json +1 -1
- package/dist/lib/schemas-data/3.0/core/installment-deadlines.json +2 -2
- package/dist/lib/schemas-data/3.0/core/installment.json +9 -9
- package/dist/lib/schemas-data/3.0/core/job-item.json +3 -3
- package/dist/lib/schemas-data/3.0/core/limited-series.json +1 -1
- package/dist/lib/schemas-data/3.0/core/material-deadline.json +1 -1
- package/dist/lib/schemas-data/3.0/core/mcp-webhook-payload.json +5 -5
- package/dist/lib/schemas-data/3.0/core/measurement-readiness.json +5 -5
- package/dist/lib/schemas-data/3.0/core/measurement-terms.json +3 -3
- package/dist/lib/schemas-data/3.0/core/measurement-window.json +1 -1
- package/dist/lib/schemas-data/3.0/core/media-buy-features.json +1 -1
- package/dist/lib/schemas-data/3.0/core/media-buy.json +7 -7
- package/dist/lib/schemas-data/3.0/core/offering-asset-group.json +15 -15
- package/dist/lib/schemas-data/3.0/core/offering.json +5 -5
- package/dist/lib/schemas-data/3.0/core/optimization-goal.json +6 -6
- package/dist/lib/schemas-data/3.0/core/outcome-measurement.json +2 -2
- package/dist/lib/schemas-data/3.0/core/overlay.json +1 -1
- package/dist/lib/schemas-data/3.0/core/package.json +14 -14
- package/dist/lib/schemas-data/3.0/core/pagination-request.json +1 -1
- package/dist/lib/schemas-data/3.0/core/pagination-response.json +1 -1
- package/dist/lib/schemas-data/3.0/core/performance-feedback.json +3 -3
- package/dist/lib/schemas-data/3.0/core/performance-standard.json +4 -4
- package/dist/lib/schemas-data/3.0/core/placement-definition.json +5 -5
- package/dist/lib/schemas-data/3.0/core/placement.json +2 -2
- package/dist/lib/schemas-data/3.0/core/planned-delivery.json +5 -5
- package/dist/lib/schemas-data/3.0/core/price.json +1 -1
- package/dist/lib/schemas-data/3.0/core/pricing-option.json +10 -10
- package/dist/lib/schemas-data/3.0/core/product-allocation.json +4 -4
- package/dist/lib/schemas-data/3.0/core/product-filters.json +16 -16
- package/dist/lib/schemas-data/3.0/core/product.json +28 -28
- package/dist/lib/schemas-data/3.0/core/property-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/property-list-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/core/property-tag.json +1 -1
- package/dist/lib/schemas-data/3.0/core/property.json +6 -6
- package/dist/lib/schemas-data/3.0/core/proposal.json +6 -6
- package/dist/lib/schemas-data/3.0/core/protocol-envelope.json +3 -3
- package/dist/lib/schemas-data/3.0/core/provenance.json +6 -6
- package/dist/lib/schemas-data/3.0/core/publisher-property-selector.json +3 -3
- package/dist/lib/schemas-data/3.0/core/push-notification-config.json +2 -2
- package/dist/lib/schemas-data/3.0/core/real-estate-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/reference-asset.json +1 -1
- package/dist/lib/schemas-data/3.0/core/reporting-capabilities.json +5 -5
- package/dist/lib/schemas-data/3.0/core/reporting-webhook.json +3 -3
- package/dist/lib/schemas-data/3.0/core/requirements/asset-requirements.json +13 -13
- package/dist/lib/schemas-data/3.0/core/requirements/audio-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/catalog-field-binding.json +4 -4
- package/dist/lib/schemas-data/3.0/core/requirements/catalog-requirements.json +5 -5
- package/dist/lib/schemas-data/3.0/core/requirements/css-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/daast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/html-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/image-asset-requirements.json +2 -2
- package/dist/lib/schemas-data/3.0/core/requirements/javascript-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/markdown-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/offering-asset-constraint.json +4 -4
- package/dist/lib/schemas-data/3.0/core/requirements/text-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/url-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/vast-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/requirements/video-asset-requirements.json +6 -6
- package/dist/lib/schemas-data/3.0/core/requirements/webhook-asset-requirements.json +1 -1
- package/dist/lib/schemas-data/3.0/core/response.json +1 -1
- package/dist/lib/schemas-data/3.0/core/rights-constraint.json +4 -4
- package/dist/lib/schemas-data/3.0/core/seller-agent-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/core/signal-definition.json +3 -3
- package/dist/lib/schemas-data/3.0/core/signal-filters.json +2 -2
- package/dist/lib/schemas-data/3.0/core/signal-id.json +1 -1
- package/dist/lib/schemas-data/3.0/core/signal-pricing-option.json +2 -2
- package/dist/lib/schemas-data/3.0/core/signal-pricing.json +6 -6
- package/dist/lib/schemas-data/3.0/core/signal-targeting.json +4 -4
- package/dist/lib/schemas-data/3.0/core/special.json +2 -2
- package/dist/lib/schemas-data/3.0/core/start-timing.json +1 -1
- package/dist/lib/schemas-data/3.0/core/store-item.json +3 -3
- package/dist/lib/schemas-data/3.0/core/talent.json +2 -2
- package/dist/lib/schemas-data/3.0/core/targeting.json +20 -20
- package/dist/lib/schemas-data/3.0/core/tasks-get-request.json +3 -3
- package/dist/lib/schemas-data/3.0/core/tasks-get-response.json +7 -7
- package/dist/lib/schemas-data/3.0/core/tasks-list-request.json +11 -11
- package/dist/lib/schemas-data/3.0/core/tasks-list-response.json +6 -6
- package/dist/lib/schemas-data/3.0/core/user-match.json +3 -3
- package/dist/lib/schemas-data/3.0/core/vehicle-item.json +4 -4
- package/dist/lib/schemas-data/3.0/core/vendor-pricing-option.json +2 -2
- package/dist/lib/schemas-data/3.0/core/x-entity-types.json +1 -1
- package/dist/lib/schemas-data/3.0/creative/asset-types/index.json +5 -5
- package/dist/lib/schemas-data/3.0/creative/creative-feature-result.json +2 -2
- package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-request.json +5 -5
- package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-response.json +7 -7
- package/dist/lib/schemas-data/3.0/creative/get-creative-features-request.json +5 -5
- package/dist/lib/schemas-data/3.0/creative/get-creative-features-response.json +8 -8
- package/dist/lib/schemas-data/3.0/creative/list-creative-formats-request.json +11 -11
- package/dist/lib/schemas-data/3.0/creative/list-creative-formats-response.json +7 -7
- package/dist/lib/schemas-data/3.0/creative/list-creatives-request.json +8 -8
- package/dist/lib/schemas-data/3.0/creative/list-creatives-response.json +14 -14
- package/dist/lib/schemas-data/3.0/creative/preview-creative-request.json +11 -11
- package/dist/lib/schemas-data/3.0/creative/preview-creative-response.json +12 -12
- package/dist/lib/schemas-data/3.0/creative/preview-render.json +1 -1
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-request.json +7 -7
- package/dist/lib/schemas-data/3.0/creative/sync-creatives-response.json +13 -13
- package/dist/lib/schemas-data/3.0/enums/account-scope.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/account-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/action-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/adcp-protocol.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/adjustment-kind.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/advertiser-industry.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/age-verification-method.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/assessment-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/asset-content-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/attribution-model.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/audience-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/audience-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/audio-channel-layout.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/auth-scheme.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/available-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/billing-party.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/binary-verdict.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/brand-agent-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/canceled-by.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/catalog-action.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/catalog-item-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/channels.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/cloud-storage-protocol.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/co-branding-requirement.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-cadence.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-kind.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-relationship.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/collection-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/consent-basis.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/content-id-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/content-rating-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-action.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-agent-capability.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-approval-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-quality.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-sort-field.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/creative-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/daast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/daast-version.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/day-of-week.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/delegation-authority.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/delivery-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/demographic-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/derivative-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/device-platform.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/device-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/digital-source-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/dimension-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/disclosure-persistence.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/disclosure-position.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/distance-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/distribution-identifier-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/error-code.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/escalation-severity.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/event-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/exclusivity.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/feature-check-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/feed-format.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/feedback-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/forecast-method.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/forecast-range-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/forecastable-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/format-id-parameter.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/frame-rate-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/frequency-cap-scope.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/genre-taxonomy.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/geo-level.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/gop-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-decision.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-domain.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-mode.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/governance-phase.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/history-entry-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/http-method.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/installment-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/javascript-module-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/landing-page-requirement.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/makegood-remedy.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/markdown-flavor.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/match-id-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/match-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/media-buy-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/media-buy-valid-action.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/metric-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/metro-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/moov-atom-position.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/notification-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/outcome-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/pacing.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/payment-terms.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/performance-standard-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/policy-category.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/policy-enforcement.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/postal-system.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/preview-output-format.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/pricing-model.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/production-quality.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/property-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/proposal-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/publisher-identifier-types.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/purchase-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/reach-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/reporting-frequency.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/response-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/restricted-attribute.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/right-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/right-use.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/rights-billing-period.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/scan-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/si-session-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/signal-catalog-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/signal-source.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/signal-value-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/snapshot-unavailable-reason.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/sort-direction.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/sort-metric.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/special-category.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/specialism.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/talent-role.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/task-status.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/task-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/transport-mode.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/travel-time-unit.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/uid-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/universal-macro.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/update-frequency.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/url-asset-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/validation-mode.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/vast-tracking-event.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/vast-version.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/viewability-standard.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/wcag-level.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/webhook-response-type.json +1 -1
- package/dist/lib/schemas-data/3.0/enums/webhook-security-method.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/account-setup-required.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/audience-too-small.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/budget-too-low.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/conflict.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/creative-rejected.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/policy-violation.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/rate-limited.json +1 -1
- package/dist/lib/schemas-data/3.0/error-details/vendor-error-codes.json +1 -1
- package/dist/lib/schemas-data/3.0/extensions/extension-meta.json +1 -1
- package/dist/lib/schemas-data/3.0/extensions/index.json +2 -2
- package/dist/lib/schemas-data/3.0/governance/attribute-definition.json +1 -1
- package/dist/lib/schemas-data/3.0/governance/audience-constraints.json +3 -3
- package/dist/lib/schemas-data/3.0/governance/check-governance-request.json +7 -7
- package/dist/lib/schemas-data/3.0/governance/check-governance-response.json +6 -6
- package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-request.json +4 -4
- package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-response.json +9 -9
- package/dist/lib/schemas-data/3.0/governance/policy-category-definition.json +2 -2
- package/dist/lib/schemas-data/3.0/governance/policy-entry.json +6 -6
- package/dist/lib/schemas-data/3.0/governance/policy-ref.json +1 -1
- package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-request.json +6 -6
- package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-response.json +4 -4
- package/dist/lib/schemas-data/3.0/governance/sync-plans-request.json +13 -13
- package/dist/lib/schemas-data/3.0/governance/sync-plans-response.json +4 -4
- package/dist/lib/schemas-data/3.0/index.json +366 -365
- package/dist/lib/schemas-data/3.0/manifest.json +5 -9
- package/dist/lib/schemas-data/3.0/manifest.schema.json +1 -1
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-request.json +11 -11
- package/dist/lib/schemas-data/3.0/media-buy/build-creative-response.json +17 -17
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-request.json +12 -12
- package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-response.json +15 -15
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-request.json +17 -17
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-response.json +24 -24
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-request.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-response.json +19 -19
- package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-input-required.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/get-products-request.json +11 -11
- package/dist/lib/schemas-data/3.0/media-buy/get-products-response.json +8 -8
- package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-request.json +11 -11
- package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-response.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/log-event-request.json +4 -4
- package/dist/lib/schemas-data/3.0/media-buy/log-event-response.json +6 -6
- package/dist/lib/schemas-data/3.0/media-buy/package-request.json +12 -12
- package/dist/lib/schemas-data/3.0/media-buy/package-update.json +13 -13
- package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-request.json +6 -6
- package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-response.json +6 -6
- package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-request.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-response.json +9 -9
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-request.json +7 -7
- package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-response.json +9 -9
- package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-request.json +5 -5
- package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-response.json +10 -10
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-input-required.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-submitted.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-working.json +3 -3
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-request.json +10 -10
- package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-response.json +10 -10
- package/dist/lib/schemas-data/3.0/pricing-options/cpa-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpc-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpcv-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpm-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/cpp-option.json +5 -5
- package/dist/lib/schemas-data/3.0/pricing-options/cpv-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/flat-rate-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/price-breakdown.json +2 -2
- package/dist/lib/schemas-data/3.0/pricing-options/price-guidance.json +1 -1
- package/dist/lib/schemas-data/3.0/pricing-options/time-option.json +4 -4
- package/dist/lib/schemas-data/3.0/pricing-options/vcpm-option.json +4 -4
- package/dist/lib/schemas-data/3.0/property/authorization-result.json +1 -1
- package/dist/lib/schemas-data/3.0/property/base-property-source.json +4 -4
- package/dist/lib/schemas-data/3.0/property/create-property-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/property/create-property-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/property/delete-property-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/property/delete-property-list-response.json +3 -3
- package/dist/lib/schemas-data/3.0/property/delivery-record.json +3 -3
- package/dist/lib/schemas-data/3.0/property/get-property-list-request.json +4 -4
- package/dist/lib/schemas-data/3.0/property/get-property-list-response.json +7 -7
- package/dist/lib/schemas-data/3.0/property/list-property-lists-request.json +5 -5
- package/dist/lib/schemas-data/3.0/property/list-property-lists-response.json +5 -5
- package/dist/lib/schemas-data/3.0/property/property-error.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-feature-definition.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-feature-result.json +4 -4
- package/dist/lib/schemas-data/3.0/property/property-feature-value.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-feature.json +1 -1
- package/dist/lib/schemas-data/3.0/property/property-list-changed-webhook.json +2 -2
- package/dist/lib/schemas-data/3.0/property/property-list-filters.json +5 -5
- package/dist/lib/schemas-data/3.0/property/property-list.json +6 -6
- package/dist/lib/schemas-data/3.0/property/update-property-list-request.json +7 -7
- package/dist/lib/schemas-data/3.0/property/update-property-list-response.json +4 -4
- package/dist/lib/schemas-data/3.0/property/validate-property-delivery-request.json +5 -5
- package/dist/lib/schemas-data/3.0/property/validate-property-delivery-response.json +4 -4
- package/dist/lib/schemas-data/3.0/property/validation-result.json +5 -5
- package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-request.json +3 -3
- package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-response.json +25 -25
- package/dist/lib/schemas-data/3.0/signals/activate-signal-request.json +5 -5
- package/dist/lib/schemas-data/3.0/signals/activate-signal-response.json +7 -7
- package/dist/lib/schemas-data/3.0/signals/get-signals-request.json +8 -8
- package/dist/lib/schemas-data/3.0/signals/get-signals-response.json +10 -10
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-capabilities.json +1 -1
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-request.json +3 -3
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-response.json +4 -4
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-identity.json +1 -1
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-request.json +5 -5
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-response.json +7 -7
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-request.json +3 -3
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-response.json +7 -7
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-request.json +3 -3
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-response.json +5 -5
- package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-ui-element.json +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js +1 -1
- package/dist/lib/server/wire-spec-fields.generated.d.ts +29 -29
- package/dist/lib/server/wire-spec-fields.generated.js +31 -31
- package/dist/lib/testing/client.d.ts +1 -1
- package/dist/lib/testing/client.d.ts.map +1 -1
- package/dist/lib/testing/client.js +9 -2
- package/dist/lib/testing/client.js.map +1 -1
- package/dist/lib/testing/compliance/comply.d.ts +6 -0
- package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
- package/dist/lib/testing/compliance/comply.js +110 -4
- package/dist/lib/testing/compliance/comply.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts +2 -0
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +51 -1
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/testing/storyboard/types.d.ts +2 -0
- package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/types.js.map +1 -1
- package/dist/lib/testing/storyboard/validations.d.ts +4 -0
- package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/validations.js +13 -4
- package/dist/lib/testing/storyboard/validations.js.map +1 -1
- package/dist/lib/testing/types.d.ts +23 -0
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/types/core.generated.js +2 -2
- package/dist/lib/types/manifest.generated.d.ts +3 -3
- package/dist/lib/types/manifest.generated.js +1 -1
- package/dist/lib/utils/adcp-version-config.d.ts +1 -0
- package/dist/lib/utils/adcp-version-config.d.ts.map +1 -1
- package/dist/lib/utils/adcp-version-config.js +21 -0
- package/dist/lib/utils/adcp-version-config.js.map +1 -1
- package/dist/lib/utils/response-schemas.d.ts +1 -0
- package/dist/lib/utils/response-schemas.d.ts.map +1 -1
- package/dist/lib/utils/response-schemas.js +14 -0
- package/dist/lib/utils/response-schemas.js.map +1 -1
- package/dist/lib/utils/response-unwrapper.d.ts +2 -1
- package/dist/lib/utils/response-unwrapper.d.ts.map +1 -1
- package/dist/lib/utils/response-unwrapper.js +15 -5
- package/dist/lib/utils/response-unwrapper.js.map +1 -1
- package/dist/lib/version.d.ts +7 -7
- package/dist/lib/version.d.ts.map +1 -1
- package/dist/lib/version.js +11 -5
- package/dist/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/compliance/cache/3.0.12/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -196
- package/compliance/cache/3.0.12/universal/schema-validation.yaml +0 -526
- package/compliance/cache/3.0.12/universal/v3-envelope-integrity.yaml +0 -106
- package/compliance/cache/3.0.12/universal/webhook-emission.yaml +0 -337
- package/compliance/cache/3.0.12.previous/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -196
- package/compliance/cache/3.0.12.previous/universal/idempotency.yaml +0 -606
- package/compliance/cache/3.0.12.previous/universal/security.yaml +0 -431
- package/compliance/cache/3.0.12.previous/universal/webhook-emission.yaml +0 -337
- package/compliance/cache/3.1.0-rc.2/domains/brand/index.yaml +0 -160
- package/compliance/cache/3.1.0-rc.2/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -415
- package/compliance/cache/3.1.0-rc.2/domains/brand/scenarios/single_side_trust_extension.yaml +0 -454
- package/compliance/cache/3.1.0-rc.2/domains/creative/index.yaml +0 -339
- package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/billing_out_of_band.yaml +0 -153
- package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/canonical_supported_formats.yaml +0 -212
- package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
- package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/native_in_feed.yaml +0 -543
- package/compliance/cache/3.1.0-rc.2/domains/governance/index.yaml +0 -682
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/index.yaml +0 -789
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -380
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/available_actions.yaml +0 -565
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/canonical_formats.yaml +0 -861
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -234
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/creative_reception.yaml +0 -247
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/delivery_reporting.yaml +0 -357
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/dependency_impairment.yaml +0 -633
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -399
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_approved.yaml +0 -214
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_conditions.yaml +0 -199
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_denied.yaml +0 -204
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/invalid_transitions.yaml +0 -289
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/measurement_accountability.yaml +0 -244
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -113
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -292
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -428
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -373
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_finalize.yaml +0 -399
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -517
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -823
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/refine_products.yaml +0 -148
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/state-machine.yaml +0 -442
- package/compliance/cache/3.1.0-rc.2/domains/signals/index.yaml +0 -266
- package/compliance/cache/3.1.0-rc.2/domains/sponsored-intelligence/index.yaml +0 -256
- package/compliance/cache/3.1.0-rc.2/index.json +0 -356
- package/compliance/cache/3.1.0-rc.2/protocols/brand/index.yaml +0 -160
- package/compliance/cache/3.1.0-rc.2/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -415
- package/compliance/cache/3.1.0-rc.2/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -454
- package/compliance/cache/3.1.0-rc.2/protocols/creative/index.yaml +0 -339
- package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/billing_out_of_band.yaml +0 -153
- package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/canonical_supported_formats.yaml +0 -212
- package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
- package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/native_in_feed.yaml +0 -543
- package/compliance/cache/3.1.0-rc.2/protocols/governance/index.yaml +0 -682
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/index.yaml +0 -789
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -380
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/available_actions.yaml +0 -565
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/canonical_formats.yaml +0 -861
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -234
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/creative_reception.yaml +0 -247
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -357
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -633
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -399
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_approved.yaml +0 -214
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_conditions.yaml +0 -199
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_denied.yaml +0 -204
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -289
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -244
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -113
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -292
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -428
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -373
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -399
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -517
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -823
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/refine_products.yaml +0 -148
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/state-machine.yaml +0 -442
- package/compliance/cache/3.1.0-rc.2/protocols/signals/index.yaml +0 -266
- package/compliance/cache/3.1.0-rc.2/protocols/sponsored-intelligence/index.yaml +0 -256
- package/compliance/cache/3.1.0-rc.2/specialisms/audience-sync/index.yaml +0 -313
- package/compliance/cache/3.1.0-rc.2/specialisms/brand-rights/index.yaml +0 -350
- package/compliance/cache/3.1.0-rc.2/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -226
- package/compliance/cache/3.1.0-rc.2/specialisms/collection-lists/index.yaml +0 -359
- package/compliance/cache/3.1.0-rc.2/specialisms/content-standards/index.yaml +0 -572
- package/compliance/cache/3.1.0-rc.2/specialisms/creative-ad-server/index.yaml +0 -409
- package/compliance/cache/3.1.0-rc.2/specialisms/creative-generative/generative-seller.yaml +0 -807
- package/compliance/cache/3.1.0-rc.2/specialisms/creative-generative/index.yaml +0 -758
- package/compliance/cache/3.1.0-rc.2/specialisms/creative-template/index.yaml +0 -510
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-aware-seller/index.yaml +0 -143
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -117
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-delivery-monitor/index.yaml +0 -441
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-spend-authority/denied.yaml +0 -221
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-spend-authority/index.yaml +0 -330
- package/compliance/cache/3.1.0-rc.2/specialisms/property-lists/index.yaml +0 -482
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-broadcast-tv/index.yaml +0 -738
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-catalog-driven/index.yaml +0 -840
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-guaranteed/index.yaml +0 -601
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-non-guaranteed/index.yaml +0 -546
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-proposal-mode/index.yaml +0 -586
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-social/index.yaml +0 -919
- package/compliance/cache/3.1.0-rc.2/specialisms/signal-marketplace/index.yaml +0 -424
- package/compliance/cache/3.1.0-rc.2/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -210
- package/compliance/cache/3.1.0-rc.2/specialisms/signal-owned/index.yaml +0 -317
- package/compliance/cache/3.1.0-rc.2/specialisms/sponsored-intelligence/index.yaml +0 -59
- package/compliance/cache/3.1.0-rc.2/test-kits/acme-outdoor-live.yaml +0 -78
- package/compliance/cache/3.1.0-rc.2/test-kits/acme-outdoor.yaml +0 -223
- package/compliance/cache/3.1.0-rc.2/test-kits/billing-gate-runner.yaml +0 -115
- package/compliance/cache/3.1.0-rc.2/test-kits/bistro-oranje.yaml +0 -126
- package/compliance/cache/3.1.0-rc.2/test-kits/distributed-brand-runner.yaml +0 -281
- package/compliance/cache/3.1.0-rc.2/test-kits/nova-motors.yaml +0 -262
- package/compliance/cache/3.1.0-rc.2/test-kits/osei-natural.yaml +0 -126
- package/compliance/cache/3.1.0-rc.2/test-kits/parallel-dispatch-runner.yaml +0 -196
- package/compliance/cache/3.1.0-rc.2/test-kits/rate-limit-trip-runner.yaml +0 -172
- package/compliance/cache/3.1.0-rc.2/test-kits/signed-requests-runner.yaml +0 -155
- package/compliance/cache/3.1.0-rc.2/test-kits/single-side-trust-runner.yaml +0 -294
- package/compliance/cache/3.1.0-rc.2/test-kits/substitution-observer-runner.yaml +0 -688
- package/compliance/cache/3.1.0-rc.2/test-kits/summit-foods.yaml +0 -125
- package/compliance/cache/3.1.0-rc.2/test-kits/webhook-receiver-runner.yaml +0 -265
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/001-minimal-plan.json +0 -43
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/002-full-plan.json +0 -217
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -60
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/004a-human-review-omitted.json +0 -43
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -49
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -53
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -57
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -49
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -53
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/007-unicode-objectives.json +0 -43
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -65
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/README.md +0 -220
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/canonicalization.json +0 -241
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/keys.json +0 -60
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/001-no-signature-header.json +0 -24
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/002-wrong-tag.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/003-expired-signature.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/004-window-too-long.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -27
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -33
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/011-malformed-header.json +0 -27
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/013-expires-le-created.json +0 -27
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -27
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/015-signature-invalid.json +0 -28
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -35
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/017-key-revoked.json +0 -38
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -28
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/020-rate-abuse.json +0 -34
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -31
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -31
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -32
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -31
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -43
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -31
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -25
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/001-basic-post.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -31
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/003-es256-post.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -30
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/README.md +0 -211
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/keys.json +0 -61
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -25
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -25
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -37
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -32
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -33
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -32
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -41
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -26
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/001-basic-post.json +0 -24
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/002-es256-post.json +0 -24
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -24
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -24
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -24
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -24
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -25
- package/compliance/cache/3.1.0-rc.2/universal/billing-gate-dispatch.yaml +0 -450
- package/compliance/cache/3.1.0-rc.2/universal/canonical-format-validate-input.yaml +0 -640
- package/compliance/cache/3.1.0-rc.2/universal/capability-discovery.yaml +0 -125
- package/compliance/cache/3.1.0-rc.2/universal/collection-lists-pagination-integrity.yaml +0 -306
- package/compliance/cache/3.1.0-rc.2/universal/comply-controller-mode-gate.yaml +0 -141
- package/compliance/cache/3.1.0-rc.2/universal/content-standards-pagination-integrity.yaml +0 -326
- package/compliance/cache/3.1.0-rc.2/universal/deterministic-testing.yaml +0 -1430
- package/compliance/cache/3.1.0-rc.2/universal/error-compliance-signals.yaml +0 -377
- package/compliance/cache/3.1.0-rc.2/universal/error-compliance.yaml +0 -528
- package/compliance/cache/3.1.0-rc.2/universal/fictional-entities.yaml +0 -307
- package/compliance/cache/3.1.0-rc.2/universal/get-media-buys-pagination-integrity.yaml +0 -160
- package/compliance/cache/3.1.0-rc.2/universal/get-signals-pagination-integrity.yaml +0 -210
- package/compliance/cache/3.1.0-rc.2/universal/notification-config-event-scope.yaml +0 -119
- package/compliance/cache/3.1.0-rc.2/universal/notification-config-lifecycle.yaml +0 -337
- package/compliance/cache/3.1.0-rc.2/universal/notification-config-rejections.yaml +0 -107
- package/compliance/cache/3.1.0-rc.2/universal/pagination-integrity-creative-formats.yaml +0 -265
- package/compliance/cache/3.1.0-rc.2/universal/pagination-integrity-list-accounts.yaml +0 -245
- package/compliance/cache/3.1.0-rc.2/universal/pagination-integrity.yaml +0 -263
- package/compliance/cache/3.1.0-rc.2/universal/property-lists-pagination-integrity.yaml +0 -307
- package/compliance/cache/3.1.0-rc.2/universal/read-tool-idempotency.yaml +0 -405
- package/compliance/cache/3.1.0-rc.2/universal/runner-output-contract.yaml +0 -1285
- package/compliance/cache/3.1.0-rc.2/universal/schema-validation-signals.yaml +0 -181
- package/compliance/cache/3.1.0-rc.2/universal/signed-requests.yaml +0 -217
- package/compliance/cache/3.1.0-rc.2/universal/stale-response-advisory.yaml +0 -295
- package/compliance/cache/3.1.0-rc.2/universal/storyboard-schema.yaml +0 -2194
- package/compliance/cache/3.1.0-rc.2/universal/version-negotiation.yaml +0 -130
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-bulk-webhooks.yaml +0 -82
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-product-webhooks.yaml +0 -83
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-products.yaml +0 -151
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-signal-webhooks.yaml +0 -83
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-signals.yaml +0 -149
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/domains/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/protocols/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/audience-sync/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/brand-rights/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/collection-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/content-standards/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/creative-ad-server/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/creative-generative/generative-seller.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/creative-generative/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/governance-aware-seller/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/governance-delivery-monitor/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/governance-spend-authority/denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/governance-spend-authority/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/property-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-broadcast-tv/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-catalog-driven/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-non-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-proposal-mode/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/sales-social/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/signal-marketplace/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/specialisms/signal-owned/index.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/acme-outdoor-live.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/acme-outdoor.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/bistro-oranje.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/nova-motors.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/osei-natural.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/signed-requests-runner.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/substitution-observer-runner.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-kits/summit-foods.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/002-full-plan.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/README.md +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/canonicalization.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/README.md +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/capability-discovery.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/collection-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/comply-controller-mode-gate.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/content-standards-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/deterministic-testing.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/error-compliance.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/fictional-entities.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/get-media-buys-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/get-signals-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/pagination-integrity-creative-formats.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/pagination-integrity-list-accounts.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/property-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/runner-output-contract.yaml +0 -0
- /package/compliance/cache/{3.0.12 → 3.0.18}/universal/signed-requests.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/domains/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/brand/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/governance/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/signals/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/protocols/sponsored-intelligence/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/audience-sync/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/brand-rights/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/collection-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/content-standards/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/creative-ad-server/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/creative-generative/generative-seller.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/creative-generative/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/governance-aware-seller/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/governance-delivery-monitor/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/governance-spend-authority/denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/governance-spend-authority/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/property-lists/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-broadcast-tv/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-catalog-driven/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-non-guaranteed/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-proposal-mode/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/sales-social/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/signal-marketplace/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/specialisms/signal-owned/index.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/acme-outdoor-live.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/acme-outdoor.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/bistro-oranje.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/nova-motors.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/osei-natural.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/signed-requests-runner.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/substitution-observer-runner.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-kits/summit-foods.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/002-full-plan.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/README.md +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/canonicalization.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/README.md +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/keys.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/capability-discovery.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/collection-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/comply-controller-mode-gate.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/content-standards-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/deterministic-testing.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/error-compliance.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/fictional-entities.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/get-media-buys-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/get-signals-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/pagination-integrity-creative-formats.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/pagination-integrity-list-accounts.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/property-lists-pagination-integrity.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/runner-output-contract.yaml +0 -0
- /package/compliance/cache/{3.0.12.previous → 3.0.18.previous}/universal/signed-requests.yaml +0 -0
|
@@ -0,0 +1,751 @@
|
|
|
1
|
+
id: webhook_emission
|
|
2
|
+
version: "1.3.0"
|
|
3
|
+
title: "Webhook emission — outbound webhook conformance (operation ID + signing + idempotency + sync silence)"
|
|
4
|
+
category: core
|
|
5
|
+
summary: "Any agent that emits webhooks MUST echo the caller-supplied operation_id in every payload, carry a stable idempotency_key across retries, avoid duplicate webhook side effects on request replay, and — when the buyer has not opted into the deprecated HMAC fallback — MUST sign deliveries under the RFC 9421 webhook profile. Sellers MUST NOT emit task webhooks for inline terminal responses; any future sync-completion notification mode would be explicit and capability-advertised. Graded by a runner hosting a webhook receiver during storyboard execution."
|
|
6
|
+
track: core
|
|
7
|
+
requires:
|
|
8
|
+
- webhook_receiver
|
|
9
|
+
|
|
10
|
+
narrative: |
|
|
11
|
+
Webhook emission is a cross-cutting capability, not a specialism. Sellers emit
|
|
12
|
+
webhooks on `create_media_buy` status changes. Rights agents emit revocation
|
|
13
|
+
notifications. Governance agents emit `collection_list_changed` and
|
|
14
|
+
`property_list_changed`. Content-standards agents emit artifact webhooks.
|
|
15
|
+
Every agent that accepts `push_notification_config` on any operation is in
|
|
16
|
+
scope for this universal — no capability flag, no opt-in.
|
|
17
|
+
|
|
18
|
+
Five load-bearing conformance requirements apply across this universal. The
|
|
19
|
+
first four apply to emitted outbound webhooks; the fifth guards the absence
|
|
20
|
+
of task webhooks on synchronous completions:
|
|
21
|
+
|
|
22
|
+
1. **`operation_id` echoes the caller-supplied value from
|
|
23
|
+
`push_notification_config.operation_id`.** The webhook URL is opaque to
|
|
24
|
+
the seller. Sellers MUST NOT derive operation correlation by parsing the
|
|
25
|
+
receiver URL path or query string.
|
|
26
|
+
|
|
27
|
+
2. **`idempotency_key` is present on every payload and stable across retries.**
|
|
28
|
+
Required by adcontextprotocol/adcp#2417. Receivers dedupe on this field;
|
|
29
|
+
a sender that regenerates the key on retry breaks at-least-once delivery
|
|
30
|
+
semantics and creates duplicate side effects downstream.
|
|
31
|
+
|
|
32
|
+
3. **Idempotency replay does not duplicate outbound webhook side effects.**
|
|
33
|
+
Replaying the same operation request with the same idempotency_key MUST
|
|
34
|
+
return the cached response and MUST NOT emit a second logical webhook.
|
|
35
|
+
|
|
36
|
+
4. **RFC 9421 webhook signing is baseline in 3.0** unless the buyer opts into
|
|
37
|
+
the deprecated HMAC fallback via `push_notification_config.authentication`.
|
|
38
|
+
Required by adcontextprotocol/adcp#2423. Signatures carry
|
|
39
|
+
`tag="adcp/webhook-signing/v1"`, cover `content-digest`, and verify
|
|
40
|
+
against the seller's brand.json-published JWKS.
|
|
41
|
+
|
|
42
|
+
5. **Synchronous completions do not emit task webhooks.**
|
|
43
|
+
`push_notification_config` registers a notification channel for operations
|
|
44
|
+
whose initial response is non-terminal (`working` or `submitted`); it does
|
|
45
|
+
not ask the seller to duplicate an inline terminal result onto the webhook
|
|
46
|
+
channel. Buyer SDKs may normalize synchronous responses into local
|
|
47
|
+
callbacks, promises, or handler invocations, but those local conveniences
|
|
48
|
+
are not AdCP webhooks. In particular, advertised guaranteed-sync wholesale
|
|
49
|
+
discovery requests either reject `push_notification_config` as a
|
|
50
|
+
well-formed but unsupported runtime condition or stay synchronous without
|
|
51
|
+
firing a completion webhook.
|
|
52
|
+
|
|
53
|
+
Grading is observable-behavior only. The runner hosts a webhook receiver per
|
|
54
|
+
the contract at `test-kits/webhook-receiver-runner.yaml`, drives storyboards
|
|
55
|
+
that trigger webhooks from whatever operations the agent advertises, and
|
|
56
|
+
asserts on what the agent sends back.
|
|
57
|
+
|
|
58
|
+
This universal grades not_applicable when the runner does not host a webhook
|
|
59
|
+
receiver (e.g., lint-only runs against an agent that has no webhook-emitting
|
|
60
|
+
operations, or runs where the operator has not configured the receiver
|
|
61
|
+
contract).
|
|
62
|
+
|
|
63
|
+
The runner MUST resolve every `{{runner.webhook_url:<step_id>}}` placeholder
|
|
64
|
+
before sending a request. If the receiver contract is not configured, the
|
|
65
|
+
storyboard is not_applicable; the runner MUST NOT send a literal mustache
|
|
66
|
+
token such as `{{runner.webhook_url:...}}` to the agent under test.
|
|
67
|
+
|
|
68
|
+
**9421 is the on-ramp.** Any agent advertising webhook-emitting operations
|
|
69
|
+
MUST publish a `webhook-signing` JWKS at its `brand.json` `agents[].jwks_uri`
|
|
70
|
+
and MUST emit valid 9421 signatures when triggered with no `authentication`
|
|
71
|
+
block on `push_notification_config`. Agents without published signing keys
|
|
72
|
+
fail the `signing_keys_published` precheck before the signature phase runs;
|
|
73
|
+
agents with keys but invalid signatures fail `signature_validity`. The
|
|
74
|
+
deprecated HMAC fallback remains a buyer-side registration option in 3.x
|
|
75
|
+
(`push_notification_config.authentication`), but it is not a path that
|
|
76
|
+
exempts the agent from publishing 9421 keys — the runner registers as a
|
|
77
|
+
9421-default buyer, and the agent is graded on what it does in that mode.
|
|
78
|
+
This closes the on-ramp loophole that previously let agents self-declare
|
|
79
|
+
themselves out of the signing phase via `webhook_auth_mode == 'hmac_legacy'`.
|
|
80
|
+
|
|
81
|
+
**Clean seam**: the runner does NOT reimplement signature verification or
|
|
82
|
+
idempotency dedup. It delegates to `@adcp/client` primitives —
|
|
83
|
+
`AsyncHandlerConfig.webhookDedup`, `WebhookMetadata.idempotency_key`, and
|
|
84
|
+
the 9421 webhook verifier once that lands in the client library. The same
|
|
85
|
+
code that production receivers rely on is what the conformance runner
|
|
86
|
+
exercises; a single bug fix in the library covers both surfaces.
|
|
87
|
+
|
|
88
|
+
agent:
|
|
89
|
+
interaction_model: webhook_emitter
|
|
90
|
+
capabilities:
|
|
91
|
+
- emits_webhooks
|
|
92
|
+
examples:
|
|
93
|
+
- "Any AdCP seller that accepts push_notification_config on create_media_buy, update_media_buy, or equivalent async operations"
|
|
94
|
+
- "Rights agents that post revocation notifications"
|
|
95
|
+
- "Governance agents that emit collection_list_changed or property_list_changed webhooks"
|
|
96
|
+
- "Content-standards agents that emit artifact webhooks"
|
|
97
|
+
|
|
98
|
+
caller:
|
|
99
|
+
role: compliance_runner
|
|
100
|
+
example: "AdCP Verified runner with webhook receiver capability"
|
|
101
|
+
|
|
102
|
+
prerequisites:
|
|
103
|
+
description: |
|
|
104
|
+
The runner MUST be configured with a webhook receiver per the contract at
|
|
105
|
+
`test-kits/webhook-receiver-runner.yaml`. The receiver operates in one of
|
|
106
|
+
two modes: `loopback_mock` (intercepts at the `@adcp/client` AsyncHandler
|
|
107
|
+
layer — zero network deps, used for lint runs) or `proxy_url` (operator-
|
|
108
|
+
supplied HTTPS URL routing into the runner — used for AdCP Verified
|
|
109
|
+
grading). Runners without a receiver grade this universal as
|
|
110
|
+
not_applicable.
|
|
111
|
+
|
|
112
|
+
The agent under test MUST advertise the operations it supports in
|
|
113
|
+
`get_adcp_capabilities`. The runner drives whichever webhook-emitting
|
|
114
|
+
operations are advertised; operations the agent does not support are
|
|
115
|
+
skipped cleanly, not graded as failures.
|
|
116
|
+
|
|
117
|
+
Agents advertising webhook-emitting operations MUST publish a JWKS at the
|
|
118
|
+
`jwks_uri` on their brand.json `agents[]` entry containing a key with
|
|
119
|
+
`adcp_use: "webhook-signing"`. The `signing_keys_published` precheck
|
|
120
|
+
asserts this directly; agents without published signing keys fail
|
|
121
|
+
`webhook_signing_keys_unpublished` before the signature phase runs.
|
|
122
|
+
test_kit: "test-kits/webhook-receiver-runner.yaml"
|
|
123
|
+
|
|
124
|
+
phases:
|
|
125
|
+
- id: capability_discovery
|
|
126
|
+
title: "Capability discovery"
|
|
127
|
+
narrative: |
|
|
128
|
+
Discover which async operations the agent supports so the runner knows
|
|
129
|
+
which to drive for webhook emission.
|
|
130
|
+
|
|
131
|
+
steps:
|
|
132
|
+
- id: get_capabilities
|
|
133
|
+
title: "Discover webhook-emitting operations"
|
|
134
|
+
narrative: |
|
|
135
|
+
The runner calls `get_adcp_capabilities` and inspects which async
|
|
136
|
+
operations the agent supports. If the agent advertises none that
|
|
137
|
+
accept `push_notification_config`, this universal does not apply
|
|
138
|
+
and grading returns not_applicable (not a failure).
|
|
139
|
+
task: get_adcp_capabilities
|
|
140
|
+
schema_ref: "protocol/get-adcp-capabilities-request.json"
|
|
141
|
+
response_schema_ref: "protocol/get-adcp-capabilities-response.json"
|
|
142
|
+
doc_ref: "/protocol/get_adcp_capabilities"
|
|
143
|
+
comply_scenario: capability_discovery
|
|
144
|
+
stateful: false
|
|
145
|
+
expected: |
|
|
146
|
+
Return a capabilities block including supported_protocols. Webhook-
|
|
147
|
+
emitting operations are discovered via the transport handshake
|
|
148
|
+
(MCP tools/list, A2A skills), not the capabilities body; grading
|
|
149
|
+
returns a stable not_applicable marker downstream when no webhook-
|
|
150
|
+
emitting operation resolves through
|
|
151
|
+
$test_kit.operations.primary_webhook_emitter.
|
|
152
|
+
sample_request:
|
|
153
|
+
context:
|
|
154
|
+
correlation_id: "webhook_emission--get_capabilities"
|
|
155
|
+
validations:
|
|
156
|
+
- check: field_present
|
|
157
|
+
path: "supported_protocols"
|
|
158
|
+
description: "Agent declares its supported AdCP protocols"
|
|
159
|
+
|
|
160
|
+
- id: idempotency_key_presence
|
|
161
|
+
title: "Every webhook payload carries idempotency_key"
|
|
162
|
+
narrative: |
|
|
163
|
+
The runner triggers a webhook-emitting operation with a
|
|
164
|
+
push_notification_config pointed at the runner's per-step receiver. The
|
|
165
|
+
first inbound webhook MUST carry an `idempotency_key` matching the
|
|
166
|
+
required pattern (`^[A-Za-z0-9_.:-]{16,255}$`). Absence of the field or
|
|
167
|
+
a pattern mismatch fails the phase.
|
|
168
|
+
|
|
169
|
+
This is the baseline conformance with adcontextprotocol/adcp#2417 —
|
|
170
|
+
receivers cannot dedupe without it, so "I forgot to emit the field" is
|
|
171
|
+
the single highest-impact publisher bug the universal catches.
|
|
172
|
+
|
|
173
|
+
steps:
|
|
174
|
+
- id: trigger_webhook_operation
|
|
175
|
+
title: "Trigger an operation that emits a webhook"
|
|
176
|
+
narrative: |
|
|
177
|
+
Runner calls the first operation the capability block advertises as
|
|
178
|
+
webhook-emitting (typically `create_media_buy` for sales agents,
|
|
179
|
+
`acquire_rights` for rights agents, etc.), passing
|
|
180
|
+
`push_notification_config.url = {{runner.webhook_url:trigger_webhook_operation}}`
|
|
181
|
+
and an explicit `push_notification_config.operation_id` — no
|
|
182
|
+
`authentication` block (9421 is the baseline for conformance).
|
|
183
|
+
task: "$test_kit.operations.primary_webhook_emitter"
|
|
184
|
+
task_default: create_media_buy
|
|
185
|
+
schema_ref: "$test_kit.schemas.primary_request"
|
|
186
|
+
response_schema_ref: "$test_kit.schemas.primary_response"
|
|
187
|
+
doc_ref: "/building/implementation/webhooks"
|
|
188
|
+
comply_scenario: webhook_trigger
|
|
189
|
+
stateful: false
|
|
190
|
+
sample_request:
|
|
191
|
+
push_notification_config:
|
|
192
|
+
url: "{{runner.webhook_url:trigger_webhook_operation}}"
|
|
193
|
+
operation_id: "op_webhook_presence_explicit"
|
|
194
|
+
idempotency_key: "$generate:uuid_v4#webhook_emission_trigger"
|
|
195
|
+
context:
|
|
196
|
+
correlation_id: "webhook_emission--trigger_webhook_operation"
|
|
197
|
+
expected: |
|
|
198
|
+
Agent accepts the request and begins async execution. Response either
|
|
199
|
+
returns an immediate terminal status (no webhook needed) or an
|
|
200
|
+
interim status indicating async processing (webhook will follow).
|
|
201
|
+
|
|
202
|
+
- id: expect_webhook_presence
|
|
203
|
+
title: "Assert inbound webhook carries a valid idempotency_key"
|
|
204
|
+
narrative: |
|
|
205
|
+
Wait for a webhook at the per-step URL. When it arrives, validate
|
|
206
|
+
the payload against the webhook schema and assert the
|
|
207
|
+
idempotency_key is present and matches the required pattern.
|
|
208
|
+
task: expect_webhook
|
|
209
|
+
triggered_by: trigger_webhook_operation
|
|
210
|
+
filter:
|
|
211
|
+
body:
|
|
212
|
+
operation_id: "op_webhook_presence_explicit"
|
|
213
|
+
timeout_seconds: 30
|
|
214
|
+
expect_idempotency_key: true
|
|
215
|
+
webhook_payload_schema_ref: "core/mcp-webhook-payload.json"
|
|
216
|
+
stateful: true
|
|
217
|
+
expected: |
|
|
218
|
+
Webhook arrives within 30 seconds. Payload validates against
|
|
219
|
+
mcp-webhook-payload.json. idempotency_key is present and matches
|
|
220
|
+
the pattern `^[A-Za-z0-9_.:-]{16,255}$`. Any other outcome fails the
|
|
221
|
+
phase with a specific error code: no_webhook_received,
|
|
222
|
+
schema_violation, missing_idempotency_key, or
|
|
223
|
+
invalid_idempotency_key_format.
|
|
224
|
+
|
|
225
|
+
- id: operation_id_echo
|
|
226
|
+
title: "Webhook payload echoes explicit operation_id"
|
|
227
|
+
narrative: |
|
|
228
|
+
The runner triggers a webhook-emitting operation with both a per-step
|
|
229
|
+
receiver URL and an explicit `push_notification_config.operation_id`.
|
|
230
|
+
The receiver URL's internal capture identifier is intentionally different
|
|
231
|
+
from the explicit operation_id. The seller MUST treat the URL as opaque
|
|
232
|
+
and echo the explicit field verbatim in the webhook payload.
|
|
233
|
+
|
|
234
|
+
This catches the SDK/framework regression where the delivery layer had
|
|
235
|
+
an operation id for routing but the JSON payload omitted it, and the
|
|
236
|
+
equally dangerous variant where a seller parses a URL path segment
|
|
237
|
+
instead of using the registered `operation_id` field.
|
|
238
|
+
|
|
239
|
+
steps:
|
|
240
|
+
- id: trigger_operation_id_echo
|
|
241
|
+
title: "Trigger an operation with an explicit operation_id"
|
|
242
|
+
narrative: |
|
|
243
|
+
Runner calls a webhook-emitting operation with
|
|
244
|
+
`push_notification_config.url = {{runner.webhook_url:trigger_operation_id_echo}}`
|
|
245
|
+
and `push_notification_config.operation_id =
|
|
246
|
+
op_storyboard_echo_123`. The URL is a receiver-routing detail; the
|
|
247
|
+
payload echo must come from the explicit operation_id field.
|
|
248
|
+
task: "$test_kit.operations.primary_webhook_emitter"
|
|
249
|
+
task_default: create_media_buy
|
|
250
|
+
schema_ref: "$test_kit.schemas.primary_request"
|
|
251
|
+
response_schema_ref: "$test_kit.schemas.primary_response"
|
|
252
|
+
doc_ref: "/building/implementation/webhooks"
|
|
253
|
+
comply_scenario: webhook_operation_id_echo_trigger
|
|
254
|
+
stateful: false
|
|
255
|
+
sample_request:
|
|
256
|
+
push_notification_config:
|
|
257
|
+
url: "{{runner.webhook_url:trigger_operation_id_echo}}"
|
|
258
|
+
operation_id: "op_storyboard_echo_123"
|
|
259
|
+
idempotency_key: "$generate:uuid_v4#webhook_emission_operation_id_echo_trigger"
|
|
260
|
+
context:
|
|
261
|
+
correlation_id: "webhook_emission--trigger_operation_id_echo"
|
|
262
|
+
expected: |
|
|
263
|
+
Agent accepts the request and begins async execution. The webhook it
|
|
264
|
+
emits uses the receiver URL only for delivery, and carries
|
|
265
|
+
operation_id: op_storyboard_echo_123 in the JSON payload.
|
|
266
|
+
|
|
267
|
+
- id: expect_operation_id_echo
|
|
268
|
+
title: "Assert webhook payload operation_id came from push_notification_config"
|
|
269
|
+
narrative: |
|
|
270
|
+
Wait for a webhook whose payload operation_id equals the explicit
|
|
271
|
+
registration value. The runner validates the full payload against
|
|
272
|
+
mcp-webhook-payload.json, which requires operation_id, task_id,
|
|
273
|
+
task_type, status, timestamp, and the task-specific result shape.
|
|
274
|
+
A payload that omits operation_id, or echoes a value parsed from the
|
|
275
|
+
URL instead of push_notification_config.operation_id, does not match
|
|
276
|
+
this assertion and fails the phase.
|
|
277
|
+
task: expect_webhook
|
|
278
|
+
triggered_by: trigger_operation_id_echo
|
|
279
|
+
filter:
|
|
280
|
+
body:
|
|
281
|
+
operation_id: "op_storyboard_echo_123"
|
|
282
|
+
timeout_seconds: 30
|
|
283
|
+
expect_idempotency_key: true
|
|
284
|
+
webhook_payload_schema_ref: "core/mcp-webhook-payload.json"
|
|
285
|
+
stateful: true
|
|
286
|
+
expected: |
|
|
287
|
+
Webhook arrives within 30 seconds. Payload validates against
|
|
288
|
+
mcp-webhook-payload.json and carries top-level operation_id exactly
|
|
289
|
+
equal to op_storyboard_echo_123. The payload carries the task_type,
|
|
290
|
+
status, and result shape required by the schema; any task status is
|
|
291
|
+
acceptable because every webhook for the operation must echo the
|
|
292
|
+
registered operation_id.
|
|
293
|
+
|
|
294
|
+
- id: idempotency_replay_side_effects
|
|
295
|
+
title: "Idempotency replay does not duplicate webhook side effects"
|
|
296
|
+
narrative: |
|
|
297
|
+
The runner triggers a webhook-emitting operation, then replays the exact
|
|
298
|
+
same request with the same idempotency_key and same webhook registration.
|
|
299
|
+
The seller MUST return the cached task response and MUST NOT re-execute
|
|
300
|
+
outbound webhook side effects on replay.
|
|
301
|
+
|
|
302
|
+
This check lives in the webhook-emission universal rather than the core
|
|
303
|
+
idempotency universal because it depends on runner-hosted webhook URL
|
|
304
|
+
substitution. Core idempotency remains runnable by agents and runners
|
|
305
|
+
that do not host a webhook receiver; webhook side-effect idempotency is
|
|
306
|
+
graded here when the receiver contract is in scope.
|
|
307
|
+
|
|
308
|
+
steps:
|
|
309
|
+
- id: trigger_idempotent_webhook_initial
|
|
310
|
+
title: "Trigger a webhook-emitting operation with a fresh idempotency key"
|
|
311
|
+
narrative: |
|
|
312
|
+
Runner calls a webhook-emitting operation with a fresh idempotency_key
|
|
313
|
+
and a receiver URL. This first request establishes the cached response
|
|
314
|
+
and the single logical webhook event that the replay below must not
|
|
315
|
+
duplicate.
|
|
316
|
+
task: "$test_kit.operations.primary_webhook_emitter"
|
|
317
|
+
task_default: create_media_buy
|
|
318
|
+
schema_ref: "$test_kit.schemas.primary_request"
|
|
319
|
+
response_schema_ref: "$test_kit.schemas.primary_response"
|
|
320
|
+
doc_ref: "/building/implementation/webhooks"
|
|
321
|
+
comply_scenario: webhook_idempotency_replay_trigger
|
|
322
|
+
stateful: true
|
|
323
|
+
sample_request:
|
|
324
|
+
push_notification_config:
|
|
325
|
+
url: "{{runner.webhook_url:trigger_idempotent_webhook_initial}}"
|
|
326
|
+
operation_id: "op_webhook_idempotency_replay"
|
|
327
|
+
idempotency_key: "$generate:uuid_v4#webhook_emission_replay_key"
|
|
328
|
+
context:
|
|
329
|
+
correlation_id: "webhook_emission--idempotent_replay_initial"
|
|
330
|
+
expected: |
|
|
331
|
+
Agent accepts the request and emits at most one logical webhook event
|
|
332
|
+
for this operation.
|
|
333
|
+
|
|
334
|
+
- id: trigger_idempotent_webhook_replay
|
|
335
|
+
title: "Replay the same request with the same idempotency key"
|
|
336
|
+
narrative: |
|
|
337
|
+
Runner re-sends the same logical request: same idempotency_key, same
|
|
338
|
+
payload, same webhook receiver URL, and same explicit operation_id.
|
|
339
|
+
The seller must return the cached response and must not emit another
|
|
340
|
+
webhook for the replay.
|
|
341
|
+
task: "$test_kit.operations.primary_webhook_emitter"
|
|
342
|
+
task_default: create_media_buy
|
|
343
|
+
schema_ref: "$test_kit.schemas.primary_request"
|
|
344
|
+
response_schema_ref: "$test_kit.schemas.primary_response"
|
|
345
|
+
doc_ref: "/building/implementation/webhooks"
|
|
346
|
+
comply_scenario: webhook_idempotency_replay_trigger
|
|
347
|
+
stateful: true
|
|
348
|
+
sample_request:
|
|
349
|
+
push_notification_config:
|
|
350
|
+
url: "{{runner.webhook_url:trigger_idempotent_webhook_initial}}"
|
|
351
|
+
operation_id: "op_webhook_idempotency_replay"
|
|
352
|
+
idempotency_key: "$generate:uuid_v4#webhook_emission_replay_key"
|
|
353
|
+
context:
|
|
354
|
+
correlation_id: "webhook_emission--idempotent_replay_replay"
|
|
355
|
+
validations:
|
|
356
|
+
- check: field_value
|
|
357
|
+
path: "replayed"
|
|
358
|
+
value: true
|
|
359
|
+
description: "Replay resolves from the idempotency cache"
|
|
360
|
+
expected: |
|
|
361
|
+
Agent returns the cached response for the original operation without
|
|
362
|
+
re-executing outbound webhook side effects.
|
|
363
|
+
|
|
364
|
+
- id: expect_no_duplicate_webhook_on_replay
|
|
365
|
+
title: "Assert replay did not duplicate the logical webhook"
|
|
366
|
+
narrative: |
|
|
367
|
+
The runner counts webhooks arriving at the initial request's receiver
|
|
368
|
+
URL across both the initial and replay windows. A conformant seller
|
|
369
|
+
emits the logical webhook at most once; a seller that re-executes on
|
|
370
|
+
replay emits a second event and fails this step.
|
|
371
|
+
task: expect_webhook
|
|
372
|
+
triggered_by: trigger_idempotent_webhook_initial
|
|
373
|
+
filter:
|
|
374
|
+
body:
|
|
375
|
+
operation_id: "op_webhook_idempotency_replay"
|
|
376
|
+
timeout_seconds: 30
|
|
377
|
+
expect_max_deliveries_per_logical_event: 1
|
|
378
|
+
webhook_payload_schema_ref: "core/mcp-webhook-payload.json"
|
|
379
|
+
stateful: true
|
|
380
|
+
expected: |
|
|
381
|
+
At most one logical webhook event is delivered for the operation
|
|
382
|
+
across the initial request and idempotency replay. Duplicate delivery
|
|
383
|
+
with a distinct webhook idempotency_key but the same operation_id
|
|
384
|
+
fails as duplicate_webhook_on_replay.
|
|
385
|
+
|
|
386
|
+
- id: synchronous_completion_success_path
|
|
387
|
+
title: "Synchronous-only reads stay terminal when accepted"
|
|
388
|
+
narrative: |
|
|
389
|
+
The runner calls a guaranteed-sync operation with
|
|
390
|
+
`push_notification_config` present. Because wholesale `get_products` is
|
|
391
|
+
a synchronous repair and reconciliation read, a conformant seller may
|
|
392
|
+
accept the request only if it remains synchronous and does not treat the
|
|
393
|
+
webhook registration as an opt-in sync-completion notification mode.
|
|
394
|
+
|
|
395
|
+
This branch uses `get_products` with `buying_mode: "wholesale"` as the
|
|
396
|
+
canonical conformance probe because wholesale product feed reads are
|
|
397
|
+
explicitly synchronous repair and reconciliation reads. The webhook
|
|
398
|
+
channel is meaningful only if curated `brief` or `refine` discovery
|
|
399
|
+
enters the async lifecycle. A seller MUST NOT route advertised wholesale
|
|
400
|
+
discovery through Submitted in response to an unsupported
|
|
401
|
+
`push_notification_config`.
|
|
402
|
+
|
|
403
|
+
Runners skip this phase unless the agent exposes `get_products` and
|
|
404
|
+
advertises `media_buy.buying_modes` including `"wholesale"`.
|
|
405
|
+
optional: true
|
|
406
|
+
branch_set:
|
|
407
|
+
id: synchronous_completion_handled
|
|
408
|
+
semantics: any_of
|
|
409
|
+
|
|
410
|
+
steps:
|
|
411
|
+
- id: sync_get_products_with_webhook_config_success
|
|
412
|
+
title: "Keep wholesale discovery synchronous when webhook config is present"
|
|
413
|
+
narrative: |
|
|
414
|
+
Runner sends a wholesale get_products request with an explicit
|
|
415
|
+
operation_id and a receiver URL. The request is schema-valid; if the
|
|
416
|
+
seller accepts it, the response must remain a terminal synchronous
|
|
417
|
+
get_products response with no task_id. The load-bearing assertion is
|
|
418
|
+
that the sync-only read did not become an async task.
|
|
419
|
+
task: get_products
|
|
420
|
+
requires_tool: get_products
|
|
421
|
+
schema_ref: "media-buy/get-products-request.json"
|
|
422
|
+
response_schema_ref: "media-buy/get-products-response.json"
|
|
423
|
+
doc_ref: "/media-buy/task-reference/get_products"
|
|
424
|
+
stateful: false
|
|
425
|
+
contributes: true
|
|
426
|
+
sample_request:
|
|
427
|
+
buying_mode: "wholesale"
|
|
428
|
+
account:
|
|
429
|
+
brand:
|
|
430
|
+
domain: "acmeoutdoor.example"
|
|
431
|
+
operator: "pinnacle-agency.example"
|
|
432
|
+
push_notification_config:
|
|
433
|
+
url: "{{runner.webhook_url:sync_get_products_with_webhook_config_success}}"
|
|
434
|
+
operation_id: "op_sync_get_products_no_webhook"
|
|
435
|
+
context:
|
|
436
|
+
correlation_id: "webhook_emission--sync_get_products_no_webhook"
|
|
437
|
+
validations:
|
|
438
|
+
- check: response_schema
|
|
439
|
+
description: "Accepted wholesale get_products response matches get-products-response.json"
|
|
440
|
+
- check: field_present
|
|
441
|
+
path: "products"
|
|
442
|
+
description: "Accepted wholesale get_products response returns the synchronous products collection"
|
|
443
|
+
- check: field_absent
|
|
444
|
+
path: "task_id"
|
|
445
|
+
description: "Accepted wholesale get_products response does not mint an async task_id"
|
|
446
|
+
- check: field_value
|
|
447
|
+
path: "context.correlation_id"
|
|
448
|
+
value: "webhook_emission--sync_get_products_no_webhook"
|
|
449
|
+
description: "Context correlation_id returned unchanged"
|
|
450
|
+
|
|
451
|
+
- id: synchronous_completion_rejection_path
|
|
452
|
+
title: "Synchronous-only reads may reject webhook registration"
|
|
453
|
+
narrative: |
|
|
454
|
+
Some sellers choose to reject `push_notification_config` on the wholesale
|
|
455
|
+
`get_products` path rather than accepting it inertly. That is conformant
|
|
456
|
+
only as a structured runtime rejection of a schema-valid request; the
|
|
457
|
+
payload is not a malformed JSON Schema instance.
|
|
458
|
+
optional: true
|
|
459
|
+
branch_set:
|
|
460
|
+
id: synchronous_completion_handled
|
|
461
|
+
semantics: any_of
|
|
462
|
+
|
|
463
|
+
steps:
|
|
464
|
+
- id: sync_get_products_with_webhook_config_reject
|
|
465
|
+
title: "Reject webhook registration as a well-formed runtime error"
|
|
466
|
+
narrative: |
|
|
467
|
+
Runner sends the same wholesale get_products request with an explicit
|
|
468
|
+
operation_id and a receiver URL. A seller may reject the webhook
|
|
469
|
+
registration, but because the request payload is schema-valid the
|
|
470
|
+
rejection must be a structured INVALID_REQUEST-class runtime error,
|
|
471
|
+
not a schema-invalid branch. This branch also fails if the seller
|
|
472
|
+
returns a Submitted envelope instead of an error.
|
|
473
|
+
task: get_products
|
|
474
|
+
requires_tool: get_products
|
|
475
|
+
schema_ref: "media-buy/get-products-request.json"
|
|
476
|
+
response_schema_ref: "media-buy/get-products-response.json"
|
|
477
|
+
doc_ref: "/media-buy/task-reference/get_products"
|
|
478
|
+
expect_error: true
|
|
479
|
+
negative_path: payload_well_formed
|
|
480
|
+
stateful: false
|
|
481
|
+
contributes: true
|
|
482
|
+
sample_request:
|
|
483
|
+
buying_mode: "wholesale"
|
|
484
|
+
account:
|
|
485
|
+
brand:
|
|
486
|
+
domain: "acmeoutdoor.example"
|
|
487
|
+
operator: "pinnacle-agency.example"
|
|
488
|
+
push_notification_config:
|
|
489
|
+
url: "{{runner.webhook_url:sync_get_products_with_webhook_config_reject}}"
|
|
490
|
+
operation_id: "op_sync_get_products_no_webhook"
|
|
491
|
+
context:
|
|
492
|
+
correlation_id: "webhook_emission--sync_get_products_no_webhook"
|
|
493
|
+
validations:
|
|
494
|
+
- check: error_code
|
|
495
|
+
allowed_values: ["INVALID_REQUEST", "VALIDATION_ERROR"]
|
|
496
|
+
description: "Webhook registration on wholesale get_products may be rejected as a structured well-formed runtime error"
|
|
497
|
+
|
|
498
|
+
- id: synchronous_completion_assertion
|
|
499
|
+
title: "Synchronous-only reads do not enter async lifecycle"
|
|
500
|
+
narrative: |
|
|
501
|
+
Synthetic assertion over the two optional branches. A seller passes when
|
|
502
|
+
it either returns a terminal synchronous get_products response without a
|
|
503
|
+
task_id or rejects the schema-valid request with a structured runtime
|
|
504
|
+
error. A Submitted envelope satisfies neither branch.
|
|
505
|
+
|
|
506
|
+
steps:
|
|
507
|
+
- id: assert_synchronous_completion_handled
|
|
508
|
+
title: "Require synchronous handling or well-formed rejection"
|
|
509
|
+
task: assert_contribution
|
|
510
|
+
comply_scenario: webhook_emission
|
|
511
|
+
stateful: false
|
|
512
|
+
expected: |
|
|
513
|
+
At least one of synchronous_completion_success_path or
|
|
514
|
+
synchronous_completion_rejection_path contributed
|
|
515
|
+
`synchronous_completion_handled`.
|
|
516
|
+
validations:
|
|
517
|
+
- check: any_of
|
|
518
|
+
allowed_values: ["synchronous_completion_handled"]
|
|
519
|
+
description: "Wholesale get_products with push_notification_config must either complete synchronously without task_id or reject as a well-formed runtime error; it must not enter Submitted async lifecycle."
|
|
520
|
+
|
|
521
|
+
- id: idempotency_key_stability
|
|
522
|
+
title: "idempotency_key is byte-identical across retries of the same event"
|
|
523
|
+
narrative: |
|
|
524
|
+
The runner's receiver deterministically returns HTTP 503 for the first
|
|
525
|
+
`count` deliveries, then 200. The runner records the idempotency_key on
|
|
526
|
+
every delivery and asserts all recorded keys are byte-identical. A
|
|
527
|
+
sender that regenerates the key on retry breaks at-least-once semantics
|
|
528
|
+
and fails the phase.
|
|
529
|
+
|
|
530
|
+
This is the conformance test that cannot be replaced by schema
|
|
531
|
+
validation — schema validation catches "no key at all" but not "wrong
|
|
532
|
+
key on retry." Only a live observation catches publisher-side retry
|
|
533
|
+
bugs.
|
|
534
|
+
|
|
535
|
+
steps:
|
|
536
|
+
- id: trigger_retry_scenario
|
|
537
|
+
title: "Trigger a webhook that will be retried via 5xx response"
|
|
538
|
+
narrative: |
|
|
539
|
+
Runner calls a webhook-emitting operation with
|
|
540
|
+
push_notification_config.url =
|
|
541
|
+
{{runner.webhook_url:trigger_retry_scenario}} and an explicit
|
|
542
|
+
push_notification_config.operation_id.
|
|
543
|
+
The runner's receiver at that URL returns 503 for the first 3
|
|
544
|
+
deliveries and 200 afterwards. Any conformant at-least-once sender
|
|
545
|
+
will retry on each 5xx and eventually succeed.
|
|
546
|
+
task: "$test_kit.operations.primary_webhook_emitter"
|
|
547
|
+
task_default: create_media_buy
|
|
548
|
+
schema_ref: "$test_kit.schemas.primary_request"
|
|
549
|
+
response_schema_ref: "$test_kit.schemas.primary_response"
|
|
550
|
+
doc_ref: "/building/implementation/webhooks"
|
|
551
|
+
comply_scenario: webhook_retry_trigger
|
|
552
|
+
stateful: false
|
|
553
|
+
sample_request:
|
|
554
|
+
push_notification_config:
|
|
555
|
+
url: "{{runner.webhook_url:trigger_retry_scenario}}"
|
|
556
|
+
operation_id: "op_webhook_retry_explicit"
|
|
557
|
+
idempotency_key: "$generate:uuid_v4#webhook_emission_retry_trigger"
|
|
558
|
+
context:
|
|
559
|
+
correlation_id: "webhook_emission--trigger_retry_scenario"
|
|
560
|
+
expected: |
|
|
561
|
+
Agent accepts the request and begins async execution. The webhook
|
|
562
|
+
it emits will be rejected with 503 by the runner and retried.
|
|
563
|
+
|
|
564
|
+
- id: expect_key_stable_across_retries
|
|
565
|
+
title: "Assert idempotency_key byte-identical across all deliveries"
|
|
566
|
+
narrative: |
|
|
567
|
+
Runner records every delivery and asserts all recorded keys are
|
|
568
|
+
byte-identical. Requires at least 2 deliveries observed within the
|
|
569
|
+
timeout window — a sender that doesn't retry at all cannot be
|
|
570
|
+
graded on retry stability.
|
|
571
|
+
task: expect_webhook_retry_keys_stable
|
|
572
|
+
triggered_by: trigger_retry_scenario
|
|
573
|
+
filter:
|
|
574
|
+
body:
|
|
575
|
+
operation_id: "op_webhook_retry_explicit"
|
|
576
|
+
retry_trigger:
|
|
577
|
+
count: 3
|
|
578
|
+
http_status: 503
|
|
579
|
+
timeout_seconds: 90
|
|
580
|
+
expect_min_deliveries: 2
|
|
581
|
+
stateful: true
|
|
582
|
+
expected: |
|
|
583
|
+
At least 2 deliveries of the same logical event observed within
|
|
584
|
+
90 seconds; all deliveries carry byte-identical idempotency_key.
|
|
585
|
+
Fails with insufficient_retries if fewer than 2 deliveries arrive,
|
|
586
|
+
idempotency_key_rotated if the key changes across deliveries, or
|
|
587
|
+
idempotency_key_format_changed if a later delivery carries a
|
|
588
|
+
different-shaped value. If the payload omits or mismatches the
|
|
589
|
+
registered operation_id, it will not match this payload assertion.
|
|
590
|
+
|
|
591
|
+
- id: signing_keys_published
|
|
592
|
+
title: "Agent publishes a webhook-signing JWKS at brand.json"
|
|
593
|
+
narrative: |
|
|
594
|
+
Precheck: any agent advertising webhook-emitting operations MUST publish
|
|
595
|
+
a JWKS at the `jwks_uri` on its `brand.json` `agents[]` entry containing
|
|
596
|
+
at least one key with `adcp_use: "webhook-signing"`. This is the on-ramp
|
|
597
|
+
gate — an agent that has only ever signed HMAC and never published a
|
|
598
|
+
9421 signing key fails here, before the signature phase even runs.
|
|
599
|
+
|
|
600
|
+
The runner resolves the agent's `brand.json` from its
|
|
601
|
+
`get_adcp_capabilities` advertisement (or, for agents not yet member-
|
|
602
|
+
registered, from operator configuration), fetches the JWKS at
|
|
603
|
+
`agents[].jwks_uri`, and asserts at least one key has
|
|
604
|
+
`adcp_use: "webhook-signing"` and a non-revoked status. Absent or
|
|
605
|
+
malformed JWKS produces `webhook_signing_keys_unpublished`; JWKS present
|
|
606
|
+
but with no webhook-signing key produces
|
|
607
|
+
`webhook_signing_keys_wrong_purpose`.
|
|
608
|
+
|
|
609
|
+
This phase is observable-only and stateless — no traffic flows. It runs
|
|
610
|
+
before the signature phase so an operator debugging "why did signing
|
|
611
|
+
fail" gets a specific keys-vs-signing diagnostic instead of a generic
|
|
612
|
+
`signature_key_unknown` deep in the verifier checklist.
|
|
613
|
+
|
|
614
|
+
steps:
|
|
615
|
+
- id: fetch_brand_json
|
|
616
|
+
title: "Fetch brand.json and resolve jwks_uri"
|
|
617
|
+
narrative: |
|
|
618
|
+
Runner fetches the agent's `brand.json` (resolved from
|
|
619
|
+
`get_adcp_capabilities` or operator configuration), iterates the
|
|
620
|
+
`agents[]` array, and asserts at least one entry exposes a
|
|
621
|
+
`jwks_uri` reachable at HTTP 200.
|
|
622
|
+
task: fetch_brand_jwks
|
|
623
|
+
stateful: false
|
|
624
|
+
expected: |
|
|
625
|
+
brand.json reachable and parseable; at least one `agents[]` entry
|
|
626
|
+
has a `jwks_uri` returning a valid JWKS document. Fails with
|
|
627
|
+
`brand_json_unreachable`, `brand_json_malformed`, or
|
|
628
|
+
`agents_jwks_uri_missing`.
|
|
629
|
+
|
|
630
|
+
- id: assert_webhook_signing_key_present
|
|
631
|
+
title: "Assert JWKS contains a webhook-signing key"
|
|
632
|
+
narrative: |
|
|
633
|
+
Runner inspects the JWKS and asserts at least one key has
|
|
634
|
+
`adcp_use: "webhook-signing"`. Keys advertising other purposes
|
|
635
|
+
(`request-signing`, `webhook-receipts`, etc.) do not satisfy this
|
|
636
|
+
check — purpose-separation is enforced per the `adcp_use` rule
|
|
637
|
+
(one cryptoKeyVersion per signing purpose; receivers enforce
|
|
638
|
+
purpose at JWK `adcp_use`, not RFC 9421 tag).
|
|
639
|
+
task: assert_jwks_purpose
|
|
640
|
+
stateful: false
|
|
641
|
+
expected: |
|
|
642
|
+
At least one JWK in the agent's published JWKS carries
|
|
643
|
+
`adcp_use: "webhook-signing"` and is not marked revoked. Fails
|
|
644
|
+
with `webhook_signing_keys_unpublished` (no JWKS or empty JWKS),
|
|
645
|
+
`webhook_signing_keys_wrong_purpose` (JWKS present but no key
|
|
646
|
+
with the webhook-signing purpose), or
|
|
647
|
+
`webhook_signing_keys_all_revoked` (all webhook-signing keys
|
|
648
|
+
revoked).
|
|
649
|
+
|
|
650
|
+
- id: signature_validity
|
|
651
|
+
title: "Webhook signatures validate under the 9421 profile"
|
|
652
|
+
narrative: |
|
|
653
|
+
Every outbound webhook MUST verify under the 14-step webhook verifier
|
|
654
|
+
checklist per
|
|
655
|
+
docs/building/implementation/security.mdx#verifier-checklist-for-webhooks.
|
|
656
|
+
The runner registers the trigger as a 9421-default buyer (no
|
|
657
|
+
`authentication` block on `push_notification_config`); the agent is
|
|
658
|
+
graded on the signatures it emits in that mode.
|
|
659
|
+
|
|
660
|
+
Verification is delegated to the `@adcp/client` 9421 webhook verifier
|
|
661
|
+
(see test-kits/webhook-receiver-runner.yaml client_primitives section).
|
|
662
|
+
Until the client verifier lands in a published release, this phase
|
|
663
|
+
grades as `not_applicable` rather than skipping silently — operators
|
|
664
|
+
get an explicit "verifier not yet available" signal instead of a
|
|
665
|
+
false-pass.
|
|
666
|
+
|
|
667
|
+
Negative conformance — signatures that MUST be rejected with a specific
|
|
668
|
+
webhook_signature_* error code — is tested via static conformance
|
|
669
|
+
vectors at `/compliance/{version}/test-vectors/webhook-signing/`
|
|
670
|
+
(follow-up), not by this phase. This phase only grades positive-path
|
|
671
|
+
agents emitting conformant signatures on live traffic.
|
|
672
|
+
|
|
673
|
+
steps:
|
|
674
|
+
- id: trigger_signed_webhook
|
|
675
|
+
title: "Trigger a webhook the agent will sign"
|
|
676
|
+
narrative: |
|
|
677
|
+
Runner calls a webhook-emitting operation with no `authentication`
|
|
678
|
+
block on push_notification_config and with an explicit operation_id,
|
|
679
|
+
forcing 9421 signing per the baseline rule.
|
|
680
|
+
task: "$test_kit.operations.primary_webhook_emitter"
|
|
681
|
+
task_default: create_media_buy
|
|
682
|
+
schema_ref: "$test_kit.schemas.primary_request"
|
|
683
|
+
response_schema_ref: "$test_kit.schemas.primary_response"
|
|
684
|
+
doc_ref: "/building/implementation/webhooks"
|
|
685
|
+
comply_scenario: webhook_signed_trigger
|
|
686
|
+
stateful: false
|
|
687
|
+
sample_request:
|
|
688
|
+
push_notification_config:
|
|
689
|
+
url: "{{runner.webhook_url:trigger_signed_webhook}}"
|
|
690
|
+
operation_id: "op_webhook_signed_explicit"
|
|
691
|
+
idempotency_key: "$generate:uuid_v4#webhook_emission_signed_trigger"
|
|
692
|
+
context:
|
|
693
|
+
correlation_id: "webhook_emission--trigger_signed_webhook"
|
|
694
|
+
expected: |
|
|
695
|
+
Agent accepts the request; the webhook it emits will carry
|
|
696
|
+
Signature-Input, Signature, and Content-Digest headers per the
|
|
697
|
+
9421 webhook profile.
|
|
698
|
+
|
|
699
|
+
- id: expect_signature_valid
|
|
700
|
+
title: "Assert webhook signature verifies under the 9421 profile"
|
|
701
|
+
narrative: |
|
|
702
|
+
Runner delegates to the @adcp/client 9421 webhook verifier (14-step
|
|
703
|
+
checklist). A passing signature means: covered components include
|
|
704
|
+
`@method`, `@target-uri`, `@authority`, `content-type`,
|
|
705
|
+
`content-digest`; `tag` is `adcp/webhook-signing/v1`; `alg` is
|
|
706
|
+
allowlisted; `keyid` resolves via the agent's brand.json
|
|
707
|
+
`agents[]` jwks_uri; content-digest recomputes cleanly; nonce is
|
|
708
|
+
not replayed.
|
|
709
|
+
task: expect_webhook_signature_valid
|
|
710
|
+
triggered_by: trigger_signed_webhook
|
|
711
|
+
filter:
|
|
712
|
+
body:
|
|
713
|
+
operation_id: "op_webhook_signed_explicit"
|
|
714
|
+
timeout_seconds: 30
|
|
715
|
+
require_tag: "adcp/webhook-signing/v1"
|
|
716
|
+
stateful: true
|
|
717
|
+
expected: |
|
|
718
|
+
Signature verifies under the 9421 webhook profile. Fails with the
|
|
719
|
+
specific webhook_signature_* error code on any checklist failure
|
|
720
|
+
(e.g., signature_invalid, signature_expired, signature_key_unknown,
|
|
721
|
+
signature_digest_mismatch, signature_tag_invalid). If the payload
|
|
722
|
+
omits or mismatches the registered operation_id, it will not match
|
|
723
|
+
this payload assertion. Not_applicable if the client library doesn't
|
|
724
|
+
yet implement 9421 webhook verification.
|
|
725
|
+
|
|
726
|
+
grading:
|
|
727
|
+
pass_criteria: |
|
|
728
|
+
Phases idempotency_key_presence, operation_id_echo,
|
|
729
|
+
idempotency_key_stability, signing_keys_published, and
|
|
730
|
+
signature_validity MUST pass when the agent advertises any
|
|
731
|
+
webhook-emitting operation and the runner hosts a webhook receiver. The
|
|
732
|
+
synchronous completion branch set MUST pass for agents that expose
|
|
733
|
+
get_products and advertise `media_buy.buying_modes` including `"wholesale"`;
|
|
734
|
+
otherwise the branch steps grade not_applicable.
|
|
735
|
+
Agents without a published webhook-signing JWKS fail
|
|
736
|
+
signing_keys_published — there is no exemption for "HMAC legacy mode."
|
|
737
|
+
Agents that advertise no webhook-emitting operations grade the entire
|
|
738
|
+
universal as not_applicable. Runners without a webhook receiver grade the
|
|
739
|
+
entire universal as not_applicable. signature_validity may grade
|
|
740
|
+
not_applicable if the runner's `@adcp/client` 9421 webhook verifier is
|
|
741
|
+
not yet available; this is an explicit operator signal, not a silent
|
|
742
|
+
skip.
|
|
743
|
+
report_format: |
|
|
744
|
+
Per-phase pass/fail/not_applicable, with per-step error codes on failure.
|
|
745
|
+
Retry-stability failures include a diff of the observed keys across
|
|
746
|
+
deliveries so operators can debug sender-side retry bugs without re-running
|
|
747
|
+
the full suite. signing_keys_published failures cite the specific gap —
|
|
748
|
+
`webhook_signing_keys_unpublished`, `webhook_signing_keys_wrong_purpose`,
|
|
749
|
+
or `webhook_signing_keys_all_revoked` — so operators distinguish "never
|
|
750
|
+
set up keys" from "set up keys with the wrong purpose label" without
|
|
751
|
+
reading the JWKS by hand.
|