@adcp/sdk 7.10.2 → 7.11.1
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/compliance/cache/3.1.0-rc.2/domains/brand/index.yaml +160 -0
- package/compliance/cache/3.1.0-rc.2/domains/brand/scenarios/distributed_brand_resolution.yaml +415 -0
- package/compliance/cache/3.1.0-rc.2/domains/brand/scenarios/single_side_trust_extension.yaml +454 -0
- package/compliance/cache/3.1.0-rc.2/domains/creative/index.yaml +339 -0
- package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/billing_out_of_band.yaml +153 -0
- package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/canonical_supported_formats.yaml +212 -0
- package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +389 -0
- package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/native_in_feed.yaml +543 -0
- package/compliance/cache/3.1.0-rc.2/domains/governance/index.yaml +682 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/index.yaml +789 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/audience_buy_flow.yaml +380 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/available_actions.yaml +565 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/billing_finality_delivery.yaml +354 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/canonical_formats.yaml +861 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/clicks_buy_flow.yaml +264 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/completed_views_buy_flow.yaml +344 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/create_media_buy_async.yaml +234 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +419 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/creative_reception.yaml +247 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/delivery_reporting.yaml +357 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/dependency_impairment.yaml +633 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +800 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/event_dedup_flow.yaml +399 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +309 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_approved.yaml +214 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_conditions.yaml +199 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_denied.yaml +204 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_denied_recovery.yaml +252 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/invalid_transitions.yaml +289 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/inventory_list_no_match.yaml +148 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/inventory_list_targeting.yaml +276 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/measurement_accountability.yaml +244 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/measurement_terms_rejected.yaml +203 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +113 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/pending_creatives_to_start.yaml +292 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +500 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/performance_buy_flow.yaml +428 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +470 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/product_signal_targeting.yaml +373 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_finalize.yaml +399 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +264 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_not_found_errors.yaml +257 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/provenance_audit_observation.yaml +333 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/provenance_enforcement.yaml +517 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +294 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/reach_buy_flow.yaml +823 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +360 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/vendor_metric_accountability.yaml +293 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +307 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +576 -0
- package/compliance/cache/3.1.0-rc.2/domains/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.1.0-rc.2/domains/signals/index.yaml +266 -0
- package/compliance/cache/3.1.0-rc.2/domains/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.1.0-rc.2/index.json +356 -0
- package/compliance/cache/3.1.0-rc.2/protocols/brand/index.yaml +160 -0
- package/compliance/cache/3.1.0-rc.2/protocols/brand/scenarios/distributed_brand_resolution.yaml +415 -0
- package/compliance/cache/3.1.0-rc.2/protocols/brand/scenarios/single_side_trust_extension.yaml +454 -0
- package/compliance/cache/3.1.0-rc.2/protocols/creative/index.yaml +339 -0
- package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/billing_out_of_band.yaml +153 -0
- package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/canonical_supported_formats.yaml +212 -0
- package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +389 -0
- package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/native_in_feed.yaml +543 -0
- package/compliance/cache/3.1.0-rc.2/protocols/governance/index.yaml +682 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/index.yaml +789 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/audience_buy_flow.yaml +380 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/available_actions.yaml +565 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/billing_finality_delivery.yaml +354 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/canonical_formats.yaml +861 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/clicks_buy_flow.yaml +264 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +344 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/create_media_buy_async.yaml +234 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +419 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/creative_reception.yaml +247 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/delivery_reporting.yaml +357 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/dependency_impairment.yaml +633 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +800 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/event_dedup_flow.yaml +399 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +309 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_approved.yaml +214 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_conditions.yaml +199 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_denied.yaml +204 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_denied_recovery.yaml +252 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/invalid_transitions.yaml +289 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/inventory_list_no_match.yaml +148 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/inventory_list_targeting.yaml +276 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/measurement_accountability.yaml +244 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +203 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +113 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +292 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +500 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/performance_buy_flow.yaml +428 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +470 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/product_signal_targeting.yaml +373 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/proposal_finalize.yaml +399 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +264 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +257 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_audit_observation.yaml +333 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_enforcement.yaml +517 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +294 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/reach_buy_flow.yaml +823 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +360 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/refine_products.yaml +148 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +293 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +307 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +576 -0
- package/compliance/cache/3.1.0-rc.2/protocols/media-buy/state-machine.yaml +442 -0
- package/compliance/cache/3.1.0-rc.2/protocols/signals/index.yaml +266 -0
- package/compliance/cache/3.1.0-rc.2/protocols/sponsored-intelligence/index.yaml +256 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/audience-sync/index.yaml +313 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/brand-rights/index.yaml +350 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/brand-rights/scenarios/governance_denied.yaml +226 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/collection-lists/index.yaml +359 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/content-standards/index.yaml +572 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/creative-ad-server/index.yaml +409 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/creative-generative/generative-seller.yaml +807 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/creative-generative/index.yaml +758 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/creative-template/index.yaml +510 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-aware-seller/index.yaml +143 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +117 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-delivery-monitor/index.yaml +441 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-spend-authority/denied.yaml +221 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/governance-spend-authority/index.yaml +330 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/property-lists/index.yaml +482 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-broadcast-tv/index.yaml +738 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-catalog-driven/index.yaml +840 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-guaranteed/index.yaml +601 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-non-guaranteed/index.yaml +546 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-proposal-mode/index.yaml +586 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/sales-social/index.yaml +919 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/signal-marketplace/index.yaml +424 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/signal-marketplace/scenarios/governance_denied.yaml +210 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/signal-owned/index.yaml +317 -0
- package/compliance/cache/3.1.0-rc.2/specialisms/sponsored-intelligence/index.yaml +59 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/acme-outdoor-live.yaml +78 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/acme-outdoor.yaml +223 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/billing-gate-runner.yaml +115 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/bistro-oranje.yaml +126 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/distributed-brand-runner.yaml +281 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/nova-motors.yaml +262 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/osei-natural.yaml +126 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/parallel-dispatch-runner.yaml +196 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/rate-limit-trip-runner.yaml +172 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/signed-requests-runner.yaml +155 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/single-side-trust-runner.yaml +294 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/substitution-observer-runner.yaml +688 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/summit-foods.yaml +125 -0
- package/compliance/cache/3.1.0-rc.2/test-kits/webhook-receiver-runner.yaml +265 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/001-minimal-plan.json +43 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/002-full-plan.json +217 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/README.md +220 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/canonicalization.json +241 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/keys.json +60 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/001-basic-post.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/003-es256-post.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/README.md +211 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/keys.json +61 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
- package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
- package/compliance/cache/3.1.0-rc.2/universal/billing-gate-dispatch.yaml +450 -0
- package/compliance/cache/3.1.0-rc.2/universal/canonical-format-validate-input.yaml +640 -0
- package/compliance/cache/3.1.0-rc.2/universal/capability-discovery.yaml +125 -0
- package/compliance/cache/3.1.0-rc.2/universal/collection-lists-pagination-integrity.yaml +306 -0
- package/compliance/cache/3.1.0-rc.2/universal/comply-controller-mode-gate.yaml +141 -0
- package/compliance/cache/3.1.0-rc.2/universal/content-standards-pagination-integrity.yaml +326 -0
- package/compliance/cache/3.1.0-rc.2/universal/deterministic-testing.yaml +1430 -0
- package/compliance/cache/3.1.0-rc.2/universal/error-compliance-signals.yaml +377 -0
- package/compliance/cache/3.1.0-rc.2/universal/error-compliance.yaml +528 -0
- package/compliance/cache/3.1.0-rc.2/universal/fictional-entities.yaml +307 -0
- package/compliance/cache/3.1.0-rc.2/universal/get-media-buys-pagination-integrity.yaml +160 -0
- package/compliance/cache/3.1.0-rc.2/universal/get-signals-pagination-integrity.yaml +210 -0
- package/compliance/cache/3.1.0-rc.2/universal/idempotency.yaml +861 -0
- package/compliance/cache/3.1.0-rc.2/universal/notification-config-event-scope.yaml +119 -0
- package/compliance/cache/3.1.0-rc.2/universal/notification-config-lifecycle.yaml +337 -0
- package/compliance/cache/3.1.0-rc.2/universal/notification-config-rejections.yaml +107 -0
- package/compliance/cache/3.1.0-rc.2/universal/pagination-integrity-creative-formats.yaml +265 -0
- package/compliance/cache/3.1.0-rc.2/universal/pagination-integrity-list-accounts.yaml +245 -0
- package/compliance/cache/3.1.0-rc.2/universal/pagination-integrity.yaml +263 -0
- package/compliance/cache/3.1.0-rc.2/universal/property-lists-pagination-integrity.yaml +307 -0
- package/compliance/cache/3.1.0-rc.2/universal/read-tool-idempotency.yaml +405 -0
- package/compliance/cache/3.1.0-rc.2/universal/runner-output-contract.yaml +1285 -0
- package/compliance/cache/3.1.0-rc.2/universal/schema-validation-signals.yaml +181 -0
- package/compliance/cache/3.1.0-rc.2/universal/schema-validation.yaml +548 -0
- package/compliance/cache/3.1.0-rc.2/universal/security.yaml +539 -0
- package/compliance/cache/3.1.0-rc.2/universal/signed-requests.yaml +217 -0
- package/compliance/cache/3.1.0-rc.2/universal/stale-response-advisory.yaml +295 -0
- package/compliance/cache/3.1.0-rc.2/universal/storyboard-schema.yaml +2194 -0
- package/compliance/cache/3.1.0-rc.2/universal/v3-envelope-integrity.yaml +117 -0
- package/compliance/cache/3.1.0-rc.2/universal/version-negotiation.yaml +130 -0
- package/compliance/cache/3.1.0-rc.2/universal/webhook-emission.yaml +411 -0
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-bulk-webhooks.yaml +82 -0
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-product-webhooks.yaml +83 -0
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-products.yaml +151 -0
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-signal-webhooks.yaml +83 -0
- package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-signals.yaml +149 -0
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +9 -5
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
- package/dist/lib/testing/storyboard/default-invariants.js +30 -1
- package/dist/lib/testing/storyboard/default-invariants.js.map +1 -1
- package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
- package/dist/lib/testing/storyboard/runner.js +84 -21
- package/dist/lib/testing/storyboard/runner.js.map +1 -1
- package/dist/lib/testing/storyboard/types.d.ts +21 -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/types.d.ts +9 -0
- package/dist/lib/testing/types.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.d.ts +6707 -12040
- package/dist/lib/types/schemas.generated.d.ts.map +1 -1
- package/dist/lib/types/schemas.generated.js +1 -1
- package/dist/lib/types/schemas.generated.js.map +1 -1
- package/dist/lib/utils/signal-id-builders.d.ts +19 -0
- package/dist/lib/utils/signal-id-builders.d.ts.map +1 -1
- package/dist/lib/utils/signal-id-builders.js +30 -0
- package/dist/lib/utils/signal-id-builders.js.map +1 -1
- package/dist/lib/utils/tool-request-schemas.d.ts.map +1 -1
- package/dist/lib/utils/tool-request-schemas.js +3 -0
- package/dist/lib/utils/tool-request-schemas.js.map +1 -1
- package/dist/lib/v2/projection/constants.d.ts +28 -0
- package/dist/lib/v2/projection/constants.d.ts.map +1 -0
- package/dist/lib/v2/projection/constants.js +31 -0
- package/dist/lib/v2/projection/constants.js.map +1 -0
- package/dist/lib/v2/projection/registry.d.ts.map +1 -1
- package/dist/lib/v2/projection/registry.js +9 -4
- package/dist/lib/v2/projection/registry.js.map +1 -1
- package/dist/lib/version.d.ts +3 -3
- package/dist/lib/version.js +3 -3
- package/package.json +1 -1
- package/skills/SHAPE-GOTCHAS.md +5 -0
package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml
ADDED
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
id: media_buy_seller/provenance_truth_of_claim
|
|
2
|
+
version: "1.0.0"
|
|
3
|
+
title: "Seller refutes a buyer's provenance claim via on-list verifier"
|
|
4
|
+
category: media_buy_seller
|
|
5
|
+
summary: "Buyer attaches a digital_source_type claim. Seller invokes get_creative_features against an on-list verifier (creative_policy.accepted_verifiers); when the verifier contradicts the claim, seller rejects with PROVENANCE_CLAIM_CONTRADICTED carrying audit-safe error.details."
|
|
6
|
+
track: creative
|
|
7
|
+
required_tools:
|
|
8
|
+
- get_products
|
|
9
|
+
- sync_creatives
|
|
10
|
+
|
|
11
|
+
narrative: |
|
|
12
|
+
This is the truth-of-claim half of the provenance enforcement contract.
|
|
13
|
+
The structural-rejection half (media_buy_seller/provenance_enforcement)
|
|
14
|
+
exercises the PROVENANCE_*_MISSING / PROVENANCE_VERIFIER_NOT_ACCEPTED
|
|
15
|
+
codes — failures the seller detects by inspecting the submission against
|
|
16
|
+
creative_policy. This scenario exercises PROVENANCE_CLAIM_CONTRADICTED:
|
|
17
|
+
the seller calls a governance agent from creative_policy.accepted_verifiers
|
|
18
|
+
via get_creative_features; the verifier returns a result that contradicts
|
|
19
|
+
the buyer's provenance claim (e.g., buyer claims digital_source_type:
|
|
20
|
+
digital_capture but the AI-detection feature returns ai_generated: true
|
|
21
|
+
above the seller's confidence threshold), and the seller rejects.
|
|
22
|
+
|
|
23
|
+
Three phases:
|
|
24
|
+
1. Discover — get_products surfaces accepted_verifiers
|
|
25
|
+
2. Reject contradicted — buyer claims digital_capture (non-AI) but
|
|
26
|
+
attaches an asset URL the verifier flags as AI-generated. Seller
|
|
27
|
+
invokes the verifier, observes contradiction, returns
|
|
28
|
+
PROVENANCE_CLAIM_CONTRADICTED with error.details carrying the
|
|
29
|
+
audit-safe allowlist.
|
|
30
|
+
3. Accept consistent — buyer claims digital_capture and attaches an
|
|
31
|
+
asset URL the verifier confirms as non-AI. Seller invokes the
|
|
32
|
+
verifier, observes agreement, accepts.
|
|
33
|
+
|
|
34
|
+
The training agent's verifier is deterministic: substring "ai-generated-true"
|
|
35
|
+
in any asset URL drives the verifier to return ai_generated:true with
|
|
36
|
+
confidence 0.95; "ai-generated-false" drives ai_generated:false. This
|
|
37
|
+
removes any per-test stateful bookkeeping — the storyboard fixture's
|
|
38
|
+
asset URLs are the contract.
|
|
39
|
+
|
|
40
|
+
agent:
|
|
41
|
+
interaction_model: stateful_push
|
|
42
|
+
capabilities:
|
|
43
|
+
- has_creative_library
|
|
44
|
+
examples:
|
|
45
|
+
- "Publishers and SSPs that run independent AI detection against buyer-claimed provenance"
|
|
46
|
+
|
|
47
|
+
caller:
|
|
48
|
+
role: buyer_agent
|
|
49
|
+
example: "Pinnacle Agency (buyer)"
|
|
50
|
+
|
|
51
|
+
prerequisites:
|
|
52
|
+
description: |
|
|
53
|
+
Seller publishes a product with creative_policy.accepted_verifiers
|
|
54
|
+
pointing at a governance agent that implements get_creative_features.
|
|
55
|
+
The training agent acts as both seller and verifier in-process; the
|
|
56
|
+
accepted_verifiers entry's agent_url is a sentinel value that the
|
|
57
|
+
seller maps to its internal verifier.
|
|
58
|
+
test_kit: "test-kits/acme-outdoor.yaml"
|
|
59
|
+
controller_seeding: true
|
|
60
|
+
|
|
61
|
+
fixtures:
|
|
62
|
+
products:
|
|
63
|
+
- product_id: "test-product-truth-of-claim"
|
|
64
|
+
name: "Provenance Truth-of-Claim Test Product"
|
|
65
|
+
description: "Sandbox display inventory exercising verifier-driven contradiction of buyer provenance claims via accepted verifier allowlist"
|
|
66
|
+
delivery_type: "non_guaranteed"
|
|
67
|
+
channels: ["display"]
|
|
68
|
+
creative_policy:
|
|
69
|
+
co_branding: "optional"
|
|
70
|
+
landing_page: "any"
|
|
71
|
+
templates_available: false
|
|
72
|
+
provenance_required: true
|
|
73
|
+
accepted_verifiers:
|
|
74
|
+
- agent_url: "https://governance.encypher.seller.example"
|
|
75
|
+
feature_id: "ai_generated"
|
|
76
|
+
providers: ["Encypher"]
|
|
77
|
+
pricing_options:
|
|
78
|
+
- pricing_option_id: "test-pricing-cpm"
|
|
79
|
+
pricing_model: "cpm"
|
|
80
|
+
rate: 5.00
|
|
81
|
+
currency: "USD"
|
|
82
|
+
|
|
83
|
+
phases:
|
|
84
|
+
- id: discover_verifier
|
|
85
|
+
title: "Discover the verifier allowlist"
|
|
86
|
+
narrative: |
|
|
87
|
+
The buyer reads creative_policy.accepted_verifiers from get_products
|
|
88
|
+
so it knows which on-list governance agent it can attach to its
|
|
89
|
+
embedded_provenance entries. This is the same get_products flow as
|
|
90
|
+
the structural-rejection storyboard.
|
|
91
|
+
|
|
92
|
+
steps:
|
|
93
|
+
- id: get_products_with_accepted_verifiers
|
|
94
|
+
title: "Read accepted_verifiers from creative_policy"
|
|
95
|
+
task: get_products
|
|
96
|
+
schema_ref: "media-buy/get-products-request.json"
|
|
97
|
+
response_schema_ref: "media-buy/get-products-response.json"
|
|
98
|
+
doc_ref: "/media-buy/task-reference/get_products"
|
|
99
|
+
stateful: false
|
|
100
|
+
expected: |
|
|
101
|
+
Return the seeded product with creative_policy.accepted_verifiers
|
|
102
|
+
populated. Buyer reads the agent_url for use on its
|
|
103
|
+
verify_agent reference in the next phase.
|
|
104
|
+
sample_request:
|
|
105
|
+
buying_mode: "brief"
|
|
106
|
+
brief: "Provenance Truth-of-Claim display inventory — verifier-driven AI detection on accepted verifier allowlist"
|
|
107
|
+
brand:
|
|
108
|
+
domain: "acmeoutdoor.example"
|
|
109
|
+
account:
|
|
110
|
+
brand:
|
|
111
|
+
domain: "acmeoutdoor.example"
|
|
112
|
+
operator: "pinnacle-agency.example"
|
|
113
|
+
context:
|
|
114
|
+
correlation_id: "provenance_truth_of_claim--get_products"
|
|
115
|
+
validations:
|
|
116
|
+
- check: response_schema
|
|
117
|
+
description: "Response matches get-products-response.json schema"
|
|
118
|
+
- check: field_present
|
|
119
|
+
path: "products[0].creative_policy.accepted_verifiers[0].agent_url"
|
|
120
|
+
description: "Seller publishes at least one accepted verifier"
|
|
121
|
+
- check: field_value
|
|
122
|
+
path: "context.correlation_id"
|
|
123
|
+
value: "provenance_truth_of_claim--get_products"
|
|
124
|
+
description: "Context correlation_id returned unchanged"
|
|
125
|
+
|
|
126
|
+
- id: reject_contradicted_claim
|
|
127
|
+
title: "Sync with contradicted claim — rejected"
|
|
128
|
+
narrative: |
|
|
129
|
+
The buyer claims digital_source_type: digital_capture (non-AI) but
|
|
130
|
+
attaches an asset URL containing "ai-generated-true" — which drives
|
|
131
|
+
the seller's deterministic verifier to return ai_generated:true with
|
|
132
|
+
confidence 0.95. The seller invokes the verifier (via
|
|
133
|
+
get_creative_features against the on-list accepted_verifiers entry),
|
|
134
|
+
observes the contradiction, and rejects the per-creative entry with
|
|
135
|
+
PROVENANCE_CLAIM_CONTRADICTED.
|
|
136
|
+
|
|
137
|
+
error.details carries only the audit-safe allowlist defined in
|
|
138
|
+
error-code.json: agent_url, feature_id, claimed_value, observed_value,
|
|
139
|
+
confidence (and substituted_for when the seller substitutes a
|
|
140
|
+
different on-list agent than the buyer nominated). No detail_url, no
|
|
141
|
+
verifier extension fields — that's the trust boundary that prevents
|
|
142
|
+
verifier responses from leaking cross-tenant data through the seller.
|
|
143
|
+
|
|
144
|
+
steps:
|
|
145
|
+
- id: sync_creatives_contradicted
|
|
146
|
+
title: "Submit creative whose claim contradicts the verifier's verdict"
|
|
147
|
+
task: sync_creatives
|
|
148
|
+
schema_ref: "creative/sync-creatives-request.json"
|
|
149
|
+
response_schema_ref: "creative/sync-creatives-response.json"
|
|
150
|
+
doc_ref: "/creative/task-reference/sync_creatives"
|
|
151
|
+
stateful: true
|
|
152
|
+
expected: |
|
|
153
|
+
The seller invokes the on-list verifier against the manifest's
|
|
154
|
+
asset URLs, observes ai_generated:true with confidence >= 0.9,
|
|
155
|
+
and refutes the buyer's digital_capture claim. Per-creative
|
|
156
|
+
result: action: failed, errors[0].code: PROVENANCE_CLAIM_CONTRADICTED.
|
|
157
|
+
sample_request:
|
|
158
|
+
account:
|
|
159
|
+
brand:
|
|
160
|
+
domain: "acmeoutdoor.example"
|
|
161
|
+
operator: "pinnacle-agency.example"
|
|
162
|
+
creatives:
|
|
163
|
+
- creative_id: "acme_truth_of_claim_probe_001"
|
|
164
|
+
name: "Acme truth-of-claim probe — contradicted"
|
|
165
|
+
format_id:
|
|
166
|
+
agent_url: "https://your-platform.example.com"
|
|
167
|
+
id: "display_300x250"
|
|
168
|
+
assets:
|
|
169
|
+
headline:
|
|
170
|
+
asset_type: "text"
|
|
171
|
+
content: "Outdoor gear, photographed live"
|
|
172
|
+
image:
|
|
173
|
+
asset_type: "image"
|
|
174
|
+
url: "https://test-assets.adcontextprotocol.org/acme-outdoor/ai-generated-true.jpg"
|
|
175
|
+
width: 300
|
|
176
|
+
height: 250
|
|
177
|
+
click_url:
|
|
178
|
+
asset_type: "url"
|
|
179
|
+
url: "https://acmeoutdoor.example/spring"
|
|
180
|
+
provenance:
|
|
181
|
+
digital_source_type: "digital_capture"
|
|
182
|
+
declared_by:
|
|
183
|
+
role: "agency"
|
|
184
|
+
disclosure:
|
|
185
|
+
required: false
|
|
186
|
+
embedded_provenance:
|
|
187
|
+
- method: "provenance_markers"
|
|
188
|
+
provider: "Encypher"
|
|
189
|
+
verify_agent:
|
|
190
|
+
agent_url: "https://governance.encypher.seller.example"
|
|
191
|
+
feature_id: "ai_generated"
|
|
192
|
+
idempotency_key: "$generate:uuid_v4#provenance_truth_of_claim_reject_contradicted_sync"
|
|
193
|
+
context:
|
|
194
|
+
correlation_id: "provenance_truth_of_claim--reject_contradicted"
|
|
195
|
+
validations:
|
|
196
|
+
- check: response_schema
|
|
197
|
+
description: "Response matches sync-creatives-response.json schema"
|
|
198
|
+
- check: field_value
|
|
199
|
+
path: "creatives[0].action"
|
|
200
|
+
value: "failed"
|
|
201
|
+
description: "Per-creative action is failed when verifier contradicts the claim"
|
|
202
|
+
- check: field_value
|
|
203
|
+
path: "creatives[0].errors[0].code"
|
|
204
|
+
value: "PROVENANCE_CLAIM_CONTRADICTED"
|
|
205
|
+
description: "Per-creative error code is PROVENANCE_CLAIM_CONTRADICTED"
|
|
206
|
+
- check: field_present
|
|
207
|
+
path: "creatives[0].errors[0].details.agent_url"
|
|
208
|
+
description: "error.details carries the verifier's agent_url for audit"
|
|
209
|
+
- check: field_present
|
|
210
|
+
path: "creatives[0].errors[0].details.feature_id"
|
|
211
|
+
description: "error.details carries the queried feature_id"
|
|
212
|
+
- check: field_value
|
|
213
|
+
path: "creatives[0].errors[0].details.claimed_value"
|
|
214
|
+
value: "digital_capture"
|
|
215
|
+
description: "error.details carries the buyer's claimed digital_source_type"
|
|
216
|
+
- check: field_value
|
|
217
|
+
path: "creatives[0].errors[0].details.observed_value"
|
|
218
|
+
value: true
|
|
219
|
+
description: "error.details carries the verifier's observed ai_generated value"
|
|
220
|
+
- check: field_value
|
|
221
|
+
path: "context.correlation_id"
|
|
222
|
+
value: "provenance_truth_of_claim--reject_contradicted"
|
|
223
|
+
description: "Context correlation_id returned unchanged on rejection"
|
|
224
|
+
|
|
225
|
+
- id: accept_consistent_claim
|
|
226
|
+
title: "Sync with consistent claim — accepted"
|
|
227
|
+
narrative: |
|
|
228
|
+
The buyer's claim and the verifier's observation agree: buyer claims
|
|
229
|
+
digital_source_type: digital_capture (non-AI), asset URL contains
|
|
230
|
+
"ai-generated-false" which drives the verifier to return
|
|
231
|
+
ai_generated:false. Seller's verifier-call confirms the claim; the
|
|
232
|
+
creative enters the seller's review lifecycle.
|
|
233
|
+
|
|
234
|
+
steps:
|
|
235
|
+
- id: sync_creatives_consistent
|
|
236
|
+
title: "Submit creative whose claim matches the verifier's verdict"
|
|
237
|
+
task: sync_creatives
|
|
238
|
+
schema_ref: "creative/sync-creatives-request.json"
|
|
239
|
+
response_schema_ref: "creative/sync-creatives-response.json"
|
|
240
|
+
doc_ref: "/creative/task-reference/sync_creatives"
|
|
241
|
+
stateful: true
|
|
242
|
+
expected: |
|
|
243
|
+
The seller invokes the verifier, observes ai_generated:false,
|
|
244
|
+
confirms the claim, and accepts. Per-creative result: action
|
|
245
|
+
created or updated; no per-creative errors[].
|
|
246
|
+
sample_request:
|
|
247
|
+
account:
|
|
248
|
+
brand:
|
|
249
|
+
domain: "acmeoutdoor.example"
|
|
250
|
+
operator: "pinnacle-agency.example"
|
|
251
|
+
creatives:
|
|
252
|
+
- creative_id: "acme_truth_of_claim_probe_002"
|
|
253
|
+
name: "Acme truth-of-claim probe — consistent"
|
|
254
|
+
format_id:
|
|
255
|
+
agent_url: "https://your-platform.example.com"
|
|
256
|
+
id: "display_300x250"
|
|
257
|
+
assets:
|
|
258
|
+
headline:
|
|
259
|
+
asset_type: "text"
|
|
260
|
+
content: "Outdoor gear, photographed live"
|
|
261
|
+
image:
|
|
262
|
+
asset_type: "image"
|
|
263
|
+
url: "https://test-assets.adcontextprotocol.org/acme-outdoor/ai-generated-false.jpg"
|
|
264
|
+
width: 300
|
|
265
|
+
height: 250
|
|
266
|
+
click_url:
|
|
267
|
+
asset_type: "url"
|
|
268
|
+
url: "https://acmeoutdoor.example/spring"
|
|
269
|
+
provenance:
|
|
270
|
+
digital_source_type: "digital_capture"
|
|
271
|
+
declared_by:
|
|
272
|
+
role: "agency"
|
|
273
|
+
disclosure:
|
|
274
|
+
required: false
|
|
275
|
+
embedded_provenance:
|
|
276
|
+
- method: "provenance_markers"
|
|
277
|
+
provider: "Encypher"
|
|
278
|
+
verify_agent:
|
|
279
|
+
agent_url: "https://governance.encypher.seller.example"
|
|
280
|
+
feature_id: "ai_generated"
|
|
281
|
+
idempotency_key: "$generate:uuid_v4#provenance_truth_of_claim_accept_consistent_sync"
|
|
282
|
+
context:
|
|
283
|
+
correlation_id: "provenance_truth_of_claim--accept_consistent"
|
|
284
|
+
validations:
|
|
285
|
+
- check: response_schema
|
|
286
|
+
description: "Response matches sync-creatives-response.json schema"
|
|
287
|
+
- check: field_value
|
|
288
|
+
path: "creatives[0].action"
|
|
289
|
+
allowed_values: ["created", "updated"]
|
|
290
|
+
description: "Per-creative action is created or updated when verifier confirms the claim"
|
|
291
|
+
- check: field_value
|
|
292
|
+
path: "context.correlation_id"
|
|
293
|
+
value: "provenance_truth_of_claim--accept_consistent"
|
|
294
|
+
description: "Context correlation_id returned unchanged"
|