@adcp/sdk 7.11.0 → 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.
Files changed (282) hide show
  1. package/compliance/cache/3.1.0-rc.2/domains/brand/index.yaml +160 -0
  2. package/compliance/cache/3.1.0-rc.2/domains/brand/scenarios/distributed_brand_resolution.yaml +415 -0
  3. package/compliance/cache/3.1.0-rc.2/domains/brand/scenarios/single_side_trust_extension.yaml +454 -0
  4. package/compliance/cache/3.1.0-rc.2/domains/creative/index.yaml +339 -0
  5. package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/billing_out_of_band.yaml +153 -0
  6. package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/canonical_supported_formats.yaml +212 -0
  7. package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +389 -0
  8. package/compliance/cache/3.1.0-rc.2/domains/creative/scenarios/native_in_feed.yaml +543 -0
  9. package/compliance/cache/3.1.0-rc.2/domains/governance/index.yaml +682 -0
  10. package/compliance/cache/3.1.0-rc.2/domains/media-buy/index.yaml +789 -0
  11. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/audience_buy_flow.yaml +380 -0
  12. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/available_actions.yaml +565 -0
  13. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/billing_finality_delivery.yaml +354 -0
  14. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/canonical_formats.yaml +861 -0
  15. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/clicks_buy_flow.yaml +264 -0
  16. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/completed_views_buy_flow.yaml +344 -0
  17. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/create_media_buy_async.yaml +234 -0
  18. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +419 -0
  19. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/creative_reception.yaml +247 -0
  20. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/delivery_reporting.yaml +357 -0
  21. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/dependency_impairment.yaml +633 -0
  22. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +800 -0
  23. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/event_dedup_flow.yaml +399 -0
  24. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +309 -0
  25. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_approved.yaml +214 -0
  26. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_conditions.yaml +199 -0
  27. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_denied.yaml +204 -0
  28. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/governance_denied_recovery.yaml +252 -0
  29. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/invalid_transitions.yaml +289 -0
  30. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/inventory_list_no_match.yaml +148 -0
  31. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/inventory_list_targeting.yaml +276 -0
  32. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/measurement_accountability.yaml +244 -0
  33. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/measurement_terms_rejected.yaml +203 -0
  34. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +113 -0
  35. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/pending_creatives_to_start.yaml +292 -0
  36. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +500 -0
  37. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/performance_buy_flow.yaml +428 -0
  38. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +470 -0
  39. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/product_signal_targeting.yaml +373 -0
  40. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_finalize.yaml +399 -0
  41. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +264 -0
  42. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_not_found_errors.yaml +257 -0
  43. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/provenance_audit_observation.yaml +333 -0
  44. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/provenance_enforcement.yaml +517 -0
  45. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +294 -0
  46. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/reach_buy_flow.yaml +823 -0
  47. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +360 -0
  48. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/refine_products.yaml +148 -0
  49. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/vendor_metric_accountability.yaml +293 -0
  50. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +307 -0
  51. package/compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +576 -0
  52. package/compliance/cache/3.1.0-rc.2/domains/media-buy/state-machine.yaml +442 -0
  53. package/compliance/cache/3.1.0-rc.2/domains/signals/index.yaml +266 -0
  54. package/compliance/cache/3.1.0-rc.2/domains/sponsored-intelligence/index.yaml +256 -0
  55. package/compliance/cache/3.1.0-rc.2/index.json +356 -0
  56. package/compliance/cache/3.1.0-rc.2/protocols/brand/index.yaml +160 -0
  57. package/compliance/cache/3.1.0-rc.2/protocols/brand/scenarios/distributed_brand_resolution.yaml +415 -0
  58. package/compliance/cache/3.1.0-rc.2/protocols/brand/scenarios/single_side_trust_extension.yaml +454 -0
  59. package/compliance/cache/3.1.0-rc.2/protocols/creative/index.yaml +339 -0
  60. package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/billing_out_of_band.yaml +153 -0
  61. package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/canonical_supported_formats.yaml +212 -0
  62. package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +389 -0
  63. package/compliance/cache/3.1.0-rc.2/protocols/creative/scenarios/native_in_feed.yaml +543 -0
  64. package/compliance/cache/3.1.0-rc.2/protocols/governance/index.yaml +682 -0
  65. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/index.yaml +789 -0
  66. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/audience_buy_flow.yaml +380 -0
  67. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/available_actions.yaml +565 -0
  68. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/billing_finality_delivery.yaml +354 -0
  69. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/canonical_formats.yaml +861 -0
  70. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/clicks_buy_flow.yaml +264 -0
  71. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +344 -0
  72. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/create_media_buy_async.yaml +234 -0
  73. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +419 -0
  74. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/creative_reception.yaml +247 -0
  75. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/delivery_reporting.yaml +357 -0
  76. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/dependency_impairment.yaml +633 -0
  77. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +800 -0
  78. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/event_dedup_flow.yaml +399 -0
  79. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +309 -0
  80. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_approved.yaml +214 -0
  81. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_conditions.yaml +199 -0
  82. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_denied.yaml +204 -0
  83. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/governance_denied_recovery.yaml +252 -0
  84. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/invalid_transitions.yaml +289 -0
  85. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/inventory_list_no_match.yaml +148 -0
  86. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/inventory_list_targeting.yaml +276 -0
  87. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/measurement_accountability.yaml +244 -0
  88. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +203 -0
  89. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +113 -0
  90. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +292 -0
  91. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +500 -0
  92. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/performance_buy_flow.yaml +428 -0
  93. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +470 -0
  94. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/product_signal_targeting.yaml +373 -0
  95. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/proposal_finalize.yaml +399 -0
  96. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +264 -0
  97. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +257 -0
  98. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_audit_observation.yaml +333 -0
  99. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_enforcement.yaml +517 -0
  100. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +294 -0
  101. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/reach_buy_flow.yaml +823 -0
  102. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +360 -0
  103. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/refine_products.yaml +148 -0
  104. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +293 -0
  105. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +307 -0
  106. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +576 -0
  107. package/compliance/cache/3.1.0-rc.2/protocols/media-buy/state-machine.yaml +442 -0
  108. package/compliance/cache/3.1.0-rc.2/protocols/signals/index.yaml +266 -0
  109. package/compliance/cache/3.1.0-rc.2/protocols/sponsored-intelligence/index.yaml +256 -0
  110. package/compliance/cache/3.1.0-rc.2/specialisms/audience-sync/index.yaml +313 -0
  111. package/compliance/cache/3.1.0-rc.2/specialisms/brand-rights/index.yaml +350 -0
  112. package/compliance/cache/3.1.0-rc.2/specialisms/brand-rights/scenarios/governance_denied.yaml +226 -0
  113. package/compliance/cache/3.1.0-rc.2/specialisms/collection-lists/index.yaml +359 -0
  114. package/compliance/cache/3.1.0-rc.2/specialisms/content-standards/index.yaml +572 -0
  115. package/compliance/cache/3.1.0-rc.2/specialisms/creative-ad-server/index.yaml +409 -0
  116. package/compliance/cache/3.1.0-rc.2/specialisms/creative-generative/generative-seller.yaml +807 -0
  117. package/compliance/cache/3.1.0-rc.2/specialisms/creative-generative/index.yaml +758 -0
  118. package/compliance/cache/3.1.0-rc.2/specialisms/creative-template/index.yaml +510 -0
  119. package/compliance/cache/3.1.0-rc.2/specialisms/governance-aware-seller/index.yaml +143 -0
  120. package/compliance/cache/3.1.0-rc.2/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +117 -0
  121. package/compliance/cache/3.1.0-rc.2/specialisms/governance-delivery-monitor/index.yaml +441 -0
  122. package/compliance/cache/3.1.0-rc.2/specialisms/governance-spend-authority/denied.yaml +221 -0
  123. package/compliance/cache/3.1.0-rc.2/specialisms/governance-spend-authority/index.yaml +330 -0
  124. package/compliance/cache/3.1.0-rc.2/specialisms/property-lists/index.yaml +482 -0
  125. package/compliance/cache/3.1.0-rc.2/specialisms/sales-broadcast-tv/index.yaml +738 -0
  126. package/compliance/cache/3.1.0-rc.2/specialisms/sales-catalog-driven/index.yaml +840 -0
  127. package/compliance/cache/3.1.0-rc.2/specialisms/sales-guaranteed/index.yaml +601 -0
  128. package/compliance/cache/3.1.0-rc.2/specialisms/sales-non-guaranteed/index.yaml +546 -0
  129. package/compliance/cache/3.1.0-rc.2/specialisms/sales-proposal-mode/index.yaml +586 -0
  130. package/compliance/cache/3.1.0-rc.2/specialisms/sales-social/index.yaml +919 -0
  131. package/compliance/cache/3.1.0-rc.2/specialisms/signal-marketplace/index.yaml +424 -0
  132. package/compliance/cache/3.1.0-rc.2/specialisms/signal-marketplace/scenarios/governance_denied.yaml +210 -0
  133. package/compliance/cache/3.1.0-rc.2/specialisms/signal-owned/index.yaml +317 -0
  134. package/compliance/cache/3.1.0-rc.2/specialisms/sponsored-intelligence/index.yaml +59 -0
  135. package/compliance/cache/3.1.0-rc.2/test-kits/acme-outdoor-live.yaml +78 -0
  136. package/compliance/cache/3.1.0-rc.2/test-kits/acme-outdoor.yaml +223 -0
  137. package/compliance/cache/3.1.0-rc.2/test-kits/billing-gate-runner.yaml +115 -0
  138. package/compliance/cache/3.1.0-rc.2/test-kits/bistro-oranje.yaml +126 -0
  139. package/compliance/cache/3.1.0-rc.2/test-kits/distributed-brand-runner.yaml +281 -0
  140. package/compliance/cache/3.1.0-rc.2/test-kits/nova-motors.yaml +262 -0
  141. package/compliance/cache/3.1.0-rc.2/test-kits/osei-natural.yaml +126 -0
  142. package/compliance/cache/3.1.0-rc.2/test-kits/parallel-dispatch-runner.yaml +196 -0
  143. package/compliance/cache/3.1.0-rc.2/test-kits/rate-limit-trip-runner.yaml +172 -0
  144. package/compliance/cache/3.1.0-rc.2/test-kits/signed-requests-runner.yaml +155 -0
  145. package/compliance/cache/3.1.0-rc.2/test-kits/single-side-trust-runner.yaml +294 -0
  146. package/compliance/cache/3.1.0-rc.2/test-kits/substitution-observer-runner.yaml +688 -0
  147. package/compliance/cache/3.1.0-rc.2/test-kits/summit-foods.yaml +125 -0
  148. package/compliance/cache/3.1.0-rc.2/test-kits/webhook-receiver-runner.yaml +265 -0
  149. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/001-minimal-plan.json +43 -0
  150. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/002-full-plan.json +217 -0
  151. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/003-bookkeeping-stripped.json +60 -0
  152. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/004a-human-review-omitted.json +43 -0
  153. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/004b-human-review-explicit-null.json +49 -0
  154. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/005a-policy-categories-order-1.json +53 -0
  155. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/005b-policy-categories-order-2.json +57 -0
  156. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/006a-ext-trace-v1.json +49 -0
  157. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/006b-ext-trace-v2.json +53 -0
  158. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/007-unicode-objectives.json +43 -0
  159. package/compliance/cache/3.1.0-rc.2/test-vectors/plan-hash/008-numeric-canonicalization.json +65 -0
  160. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/README.md +220 -0
  161. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/canonicalization.json +241 -0
  162. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/keys.json +60 -0
  163. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/001-no-signature-header.json +24 -0
  164. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/002-wrong-tag.json +26 -0
  165. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/003-expired-signature.json +26 -0
  166. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/004-window-too-long.json +26 -0
  167. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/005-alg-not-allowed.json +26 -0
  168. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/006-missing-covered-component.json +26 -0
  169. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/007-missing-content-digest.json +26 -0
  170. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/008-unknown-keyid.json +26 -0
  171. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +27 -0
  172. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/010-content-digest-mismatch.json +33 -0
  173. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/011-malformed-header.json +27 -0
  174. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/012-missing-expires-param.json +26 -0
  175. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/013-expires-le-created.json +27 -0
  176. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/014-missing-nonce-param.json +27 -0
  177. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/015-signature-invalid.json +28 -0
  178. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/016-replayed-nonce.json +35 -0
  179. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/017-key-revoked.json +38 -0
  180. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +28 -0
  181. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/019-signature-without-signature-input.json +26 -0
  182. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/020-rate-abuse.json +34 -0
  183. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +31 -0
  184. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/022-multi-valued-content-type.json +31 -0
  185. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +32 -0
  186. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/024-unquoted-string-param.json +31 -0
  187. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +43 -0
  188. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/026-non-ascii-host.json +31 -0
  189. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +25 -0
  190. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +26 -0
  191. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/001-basic-post.json +30 -0
  192. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/002-post-with-content-digest.json +31 -0
  193. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/003-es256-post.json +30 -0
  194. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/004-multiple-signature-labels.json +26 -0
  195. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/005-default-port-stripped.json +30 -0
  196. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/006-dot-segment-path.json +30 -0
  197. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/007-query-byte-preserved.json +30 -0
  198. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/008-percent-encoded-path.json +30 -0
  199. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +30 -0
  200. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +30 -0
  201. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/011-ipv6-authority.json +30 -0
  202. package/compliance/cache/3.1.0-rc.2/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +30 -0
  203. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/README.md +211 -0
  204. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/keys.json +61 -0
  205. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/001-wrong-tag.json +26 -0
  206. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/002-expired-signature.json +26 -0
  207. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/003-window-too-long.json +26 -0
  208. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +26 -0
  209. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/005-missing-authority-component.json +26 -0
  210. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/006-missing-content-digest.json +25 -0
  211. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/007-unknown-keyid.json +26 -0
  212. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +26 -0
  213. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +26 -0
  214. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +26 -0
  215. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/011-signature-without-input.json +25 -0
  216. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/012-missing-expires-param.json +26 -0
  217. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/013-expires-le-created.json +26 -0
  218. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +26 -0
  219. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/015-signature-invalid.json +26 -0
  220. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/016-replayed-nonce.json +37 -0
  221. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/017-key-revoked.json +32 -0
  222. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/018-rate-abuse.json +33 -0
  223. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/019-revocation-stale.json +32 -0
  224. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +41 -0
  225. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +26 -0
  226. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/001-basic-post.json +24 -0
  227. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/002-es256-post.json +24 -0
  228. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +24 -0
  229. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/004-default-port-stripped.json +24 -0
  230. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +24 -0
  231. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +24 -0
  232. package/compliance/cache/3.1.0-rc.2/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +25 -0
  233. package/compliance/cache/3.1.0-rc.2/universal/billing-gate-dispatch.yaml +450 -0
  234. package/compliance/cache/3.1.0-rc.2/universal/canonical-format-validate-input.yaml +640 -0
  235. package/compliance/cache/3.1.0-rc.2/universal/capability-discovery.yaml +125 -0
  236. package/compliance/cache/3.1.0-rc.2/universal/collection-lists-pagination-integrity.yaml +306 -0
  237. package/compliance/cache/3.1.0-rc.2/universal/comply-controller-mode-gate.yaml +141 -0
  238. package/compliance/cache/3.1.0-rc.2/universal/content-standards-pagination-integrity.yaml +326 -0
  239. package/compliance/cache/3.1.0-rc.2/universal/deterministic-testing.yaml +1430 -0
  240. package/compliance/cache/3.1.0-rc.2/universal/error-compliance-signals.yaml +377 -0
  241. package/compliance/cache/3.1.0-rc.2/universal/error-compliance.yaml +528 -0
  242. package/compliance/cache/3.1.0-rc.2/universal/fictional-entities.yaml +307 -0
  243. package/compliance/cache/3.1.0-rc.2/universal/get-media-buys-pagination-integrity.yaml +160 -0
  244. package/compliance/cache/3.1.0-rc.2/universal/get-signals-pagination-integrity.yaml +210 -0
  245. package/compliance/cache/3.1.0-rc.2/universal/idempotency.yaml +861 -0
  246. package/compliance/cache/3.1.0-rc.2/universal/notification-config-event-scope.yaml +119 -0
  247. package/compliance/cache/3.1.0-rc.2/universal/notification-config-lifecycle.yaml +337 -0
  248. package/compliance/cache/3.1.0-rc.2/universal/notification-config-rejections.yaml +107 -0
  249. package/compliance/cache/3.1.0-rc.2/universal/pagination-integrity-creative-formats.yaml +265 -0
  250. package/compliance/cache/3.1.0-rc.2/universal/pagination-integrity-list-accounts.yaml +245 -0
  251. package/compliance/cache/3.1.0-rc.2/universal/pagination-integrity.yaml +263 -0
  252. package/compliance/cache/3.1.0-rc.2/universal/property-lists-pagination-integrity.yaml +307 -0
  253. package/compliance/cache/3.1.0-rc.2/universal/read-tool-idempotency.yaml +405 -0
  254. package/compliance/cache/3.1.0-rc.2/universal/runner-output-contract.yaml +1285 -0
  255. package/compliance/cache/3.1.0-rc.2/universal/schema-validation-signals.yaml +181 -0
  256. package/compliance/cache/3.1.0-rc.2/universal/schema-validation.yaml +548 -0
  257. package/compliance/cache/3.1.0-rc.2/universal/security.yaml +539 -0
  258. package/compliance/cache/3.1.0-rc.2/universal/signed-requests.yaml +217 -0
  259. package/compliance/cache/3.1.0-rc.2/universal/stale-response-advisory.yaml +295 -0
  260. package/compliance/cache/3.1.0-rc.2/universal/storyboard-schema.yaml +2194 -0
  261. package/compliance/cache/3.1.0-rc.2/universal/v3-envelope-integrity.yaml +117 -0
  262. package/compliance/cache/3.1.0-rc.2/universal/version-negotiation.yaml +130 -0
  263. package/compliance/cache/3.1.0-rc.2/universal/webhook-emission.yaml +411 -0
  264. package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-bulk-webhooks.yaml +82 -0
  265. package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-product-webhooks.yaml +83 -0
  266. package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-products.yaml +151 -0
  267. package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-signal-webhooks.yaml +83 -0
  268. package/compliance/cache/3.1.0-rc.2/universal/wholesale-feed-signals.yaml +149 -0
  269. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  270. package/dist/lib/testing/storyboard/default-invariants.js +23 -0
  271. package/dist/lib/testing/storyboard/default-invariants.js.map +1 -1
  272. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  273. package/dist/lib/testing/storyboard/runner.js +84 -21
  274. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  275. package/dist/lib/testing/storyboard/types.d.ts +21 -0
  276. package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
  277. package/dist/lib/testing/storyboard/types.js.map +1 -1
  278. package/dist/lib/testing/types.d.ts +9 -0
  279. package/dist/lib/testing/types.d.ts.map +1 -1
  280. package/dist/lib/version.d.ts +3 -3
  281. package/dist/lib/version.js +3 -3
  282. package/package.json +1 -1
@@ -0,0 +1,356 @@
1
+ {
2
+ "published_version": "3.1.0-rc.2",
3
+ "adcp_version": "3.1.0-rc.2",
4
+ "generated_at": "2026-05-29T21:35:47.317Z",
5
+ "universal": [
6
+ "billing-gate-dispatch",
7
+ "canonical-format-validate-input",
8
+ "capability-discovery",
9
+ "collection-lists-pagination-integrity",
10
+ "comply-controller-mode-gate",
11
+ "content-standards-pagination-integrity",
12
+ "deterministic-testing",
13
+ "error-compliance",
14
+ "error-compliance-signals",
15
+ "fictional-entities",
16
+ "get-media-buys-pagination-integrity",
17
+ "get-signals-pagination-integrity",
18
+ "idempotency",
19
+ "notification-config-event-scope",
20
+ "notification-config-lifecycle",
21
+ "notification-config-rejections",
22
+ "pagination-integrity",
23
+ "pagination-integrity-creative-formats",
24
+ "pagination-integrity-list-accounts",
25
+ "property-lists-pagination-integrity",
26
+ "read-tool-idempotency",
27
+ "runner-output-contract",
28
+ "schema-validation",
29
+ "schema-validation-signals",
30
+ "security",
31
+ "signed-requests",
32
+ "stale-response-advisory",
33
+ "storyboard-schema",
34
+ "v3-envelope-integrity",
35
+ "version-negotiation",
36
+ "webhook-emission",
37
+ "wholesale-feed-bulk-webhooks",
38
+ "wholesale-feed-product-webhooks",
39
+ "wholesale-feed-products",
40
+ "wholesale-feed-signal-webhooks",
41
+ "wholesale-feed-signals"
42
+ ],
43
+ "protocols": [
44
+ {
45
+ "id": "brand",
46
+ "title": "Brand baseline",
47
+ "has_baseline": true,
48
+ "path": "protocols/brand/"
49
+ },
50
+ {
51
+ "id": "creative",
52
+ "title": "Creative lifecycle",
53
+ "has_baseline": true,
54
+ "path": "protocols/creative/"
55
+ },
56
+ {
57
+ "id": "governance",
58
+ "title": "Governance denial and human escalation",
59
+ "has_baseline": true,
60
+ "path": "protocols/governance/"
61
+ },
62
+ {
63
+ "id": "media-buy",
64
+ "title": "Media buy seller agent",
65
+ "has_baseline": true,
66
+ "path": "protocols/media-buy/"
67
+ },
68
+ {
69
+ "id": "signals",
70
+ "title": "Signals baseline",
71
+ "has_baseline": true,
72
+ "path": "protocols/signals/"
73
+ },
74
+ {
75
+ "id": "sponsored-intelligence",
76
+ "title": "Sponsored intelligence baseline",
77
+ "has_baseline": true,
78
+ "path": "protocols/sponsored-intelligence/"
79
+ }
80
+ ],
81
+ "domains": [
82
+ {
83
+ "id": "brand",
84
+ "title": "Brand baseline",
85
+ "has_baseline": true,
86
+ "path": "domains/brand/"
87
+ },
88
+ {
89
+ "id": "creative",
90
+ "title": "Creative lifecycle",
91
+ "has_baseline": true,
92
+ "path": "domains/creative/"
93
+ },
94
+ {
95
+ "id": "governance",
96
+ "title": "Governance denial and human escalation",
97
+ "has_baseline": true,
98
+ "path": "domains/governance/"
99
+ },
100
+ {
101
+ "id": "media-buy",
102
+ "title": "Media buy seller agent",
103
+ "has_baseline": true,
104
+ "path": "domains/media-buy/"
105
+ },
106
+ {
107
+ "id": "signals",
108
+ "title": "Signals baseline",
109
+ "has_baseline": true,
110
+ "path": "domains/signals/"
111
+ },
112
+ {
113
+ "id": "sponsored-intelligence",
114
+ "title": "Sponsored intelligence baseline",
115
+ "has_baseline": true,
116
+ "path": "domains/sponsored-intelligence/"
117
+ }
118
+ ],
119
+ "specialisms": [
120
+ {
121
+ "id": "audience-sync",
122
+ "protocol": "media-buy",
123
+ "domain": "media-buy",
124
+ "title": "Audience sync",
125
+ "status": "stable",
126
+ "required_tools": [
127
+ "list_accounts",
128
+ "sync_audiences"
129
+ ],
130
+ "path": "specialisms/audience-sync/"
131
+ },
132
+ {
133
+ "id": "brand-rights",
134
+ "protocol": "brand",
135
+ "domain": "brand",
136
+ "title": "Brand identity and rights licensing",
137
+ "status": "stable",
138
+ "required_tools": [
139
+ "get_brand_identity"
140
+ ],
141
+ "path": "specialisms/brand-rights/"
142
+ },
143
+ {
144
+ "id": "collection-lists",
145
+ "protocol": "governance",
146
+ "domain": "governance",
147
+ "title": "Collection lists",
148
+ "status": "stable",
149
+ "required_tools": [
150
+ "create_collection_list"
151
+ ],
152
+ "path": "specialisms/collection-lists/"
153
+ },
154
+ {
155
+ "id": "content-standards",
156
+ "protocol": "governance",
157
+ "domain": "governance",
158
+ "title": "Content standards",
159
+ "status": "stable",
160
+ "required_tools": [
161
+ "list_content_standards"
162
+ ],
163
+ "path": "specialisms/content-standards/"
164
+ },
165
+ {
166
+ "id": "creative-ad-server",
167
+ "protocol": "creative",
168
+ "domain": "creative",
169
+ "title": "Creative ad server",
170
+ "status": "stable",
171
+ "required_tools": [
172
+ "build_creative"
173
+ ],
174
+ "path": "specialisms/creative-ad-server/"
175
+ },
176
+ {
177
+ "id": "creative-generative",
178
+ "protocol": "creative",
179
+ "domain": "creative",
180
+ "title": "Generative creative agent",
181
+ "status": "stable",
182
+ "required_tools": [
183
+ "build_creative"
184
+ ],
185
+ "path": "specialisms/creative-generative/"
186
+ },
187
+ {
188
+ "id": "creative-template",
189
+ "protocol": "creative",
190
+ "domain": "creative",
191
+ "title": "Creative template and transformation agent",
192
+ "status": "stable",
193
+ "required_tools": [
194
+ "build_creative"
195
+ ],
196
+ "path": "specialisms/creative-template/"
197
+ },
198
+ {
199
+ "id": "governance-aware-seller",
200
+ "protocol": "media-buy",
201
+ "domain": "media-buy",
202
+ "title": "Governance-aware seller",
203
+ "status": "stable",
204
+ "required_tools": [
205
+ "sync_governance",
206
+ "create_media_buy"
207
+ ],
208
+ "path": "specialisms/governance-aware-seller/"
209
+ },
210
+ {
211
+ "id": "governance-delivery-monitor",
212
+ "protocol": "governance",
213
+ "domain": "governance",
214
+ "title": "Campaign governance — delivery monitoring with drift detection",
215
+ "status": "stable",
216
+ "required_tools": [
217
+ "check_governance"
218
+ ],
219
+ "path": "specialisms/governance-delivery-monitor/"
220
+ },
221
+ {
222
+ "id": "governance-spend-authority",
223
+ "protocol": "governance",
224
+ "domain": "governance",
225
+ "title": "Campaign governance — conditional approval",
226
+ "status": "stable",
227
+ "required_tools": [
228
+ "sync_plans",
229
+ "check_governance"
230
+ ],
231
+ "path": "specialisms/governance-spend-authority/"
232
+ },
233
+ {
234
+ "id": "property-lists",
235
+ "protocol": "governance",
236
+ "domain": "governance",
237
+ "title": "Property lists",
238
+ "status": "stable",
239
+ "required_tools": [
240
+ "create_property_list"
241
+ ],
242
+ "path": "specialisms/property-lists/"
243
+ },
244
+ {
245
+ "id": "sales-broadcast-tv",
246
+ "protocol": "media-buy",
247
+ "domain": "media-buy",
248
+ "title": "Broadcast linear TV seller agent",
249
+ "status": "stable",
250
+ "required_tools": [
251
+ "sync_governance",
252
+ "get_products",
253
+ "create_media_buy"
254
+ ],
255
+ "path": "specialisms/sales-broadcast-tv/"
256
+ },
257
+ {
258
+ "id": "sales-catalog-driven",
259
+ "protocol": "media-buy",
260
+ "domain": "media-buy",
261
+ "title": "Catalog-driven creative and conversion tracking",
262
+ "status": "stable",
263
+ "required_tools": [
264
+ "sync_governance",
265
+ "get_products",
266
+ "create_media_buy"
267
+ ],
268
+ "path": "specialisms/sales-catalog-driven/"
269
+ },
270
+ {
271
+ "id": "sales-guaranteed",
272
+ "protocol": "media-buy",
273
+ "domain": "media-buy",
274
+ "title": "Guaranteed media buy with human IO approval",
275
+ "status": "stable",
276
+ "required_tools": [
277
+ "sync_governance",
278
+ "get_products",
279
+ "create_media_buy"
280
+ ],
281
+ "path": "specialisms/sales-guaranteed/"
282
+ },
283
+ {
284
+ "id": "sales-non-guaranteed",
285
+ "protocol": "media-buy",
286
+ "domain": "media-buy",
287
+ "title": "Non-guaranteed auction-based media buy",
288
+ "status": "stable",
289
+ "required_tools": [
290
+ "sync_governance",
291
+ "get_products",
292
+ "create_media_buy"
293
+ ],
294
+ "path": "specialisms/sales-non-guaranteed/"
295
+ },
296
+ {
297
+ "id": "sales-proposal-mode",
298
+ "protocol": "media-buy",
299
+ "domain": "media-buy",
300
+ "title": "Media buy via proposal acceptance",
301
+ "status": "stable",
302
+ "required_tools": [
303
+ "get_products",
304
+ "create_media_buy"
305
+ ],
306
+ "path": "specialisms/sales-proposal-mode/"
307
+ },
308
+ {
309
+ "id": "sales-social",
310
+ "protocol": "media-buy",
311
+ "domain": "media-buy",
312
+ "title": "Social platform",
313
+ "status": "stable",
314
+ "required_tools": [
315
+ "sync_governance",
316
+ "sync_audiences",
317
+ "sync_catalogs",
318
+ "sync_creatives",
319
+ "sync_event_sources",
320
+ "preview_creative"
321
+ ],
322
+ "path": "specialisms/sales-social/"
323
+ },
324
+ {
325
+ "id": "signal-marketplace",
326
+ "protocol": "signals",
327
+ "domain": "signals",
328
+ "title": "Marketplace signal agent",
329
+ "status": "stable",
330
+ "required_tools": [
331
+ "get_signals"
332
+ ],
333
+ "path": "specialisms/signal-marketplace/"
334
+ },
335
+ {
336
+ "id": "signal-owned",
337
+ "protocol": "signals",
338
+ "domain": "signals",
339
+ "title": "Owned signal agent",
340
+ "status": "stable",
341
+ "required_tools": [
342
+ "get_signals"
343
+ ],
344
+ "path": "specialisms/signal-owned/"
345
+ },
346
+ {
347
+ "id": "sponsored-intelligence",
348
+ "protocol": "sponsored-intelligence",
349
+ "domain": "sponsored-intelligence",
350
+ "title": "Sponsored intelligence",
351
+ "status": "preview",
352
+ "required_tools": [],
353
+ "path": "specialisms/sponsored-intelligence/"
354
+ }
355
+ ]
356
+ }
@@ -0,0 +1,160 @@
1
+ id: brand_baseline
2
+ version: "1.0.0"
3
+ title: "Brand baseline"
4
+ protocol: brand
5
+ category: brand_baseline
6
+ summary: "Baseline protocol storyboard — every brand agent must declare the brand protocol in capabilities and return a schema-valid brand identity."
7
+ track: brand
8
+ required_tools:
9
+ - get_brand_identity
10
+
11
+ narrative: |
12
+ Brand protocol agents are the identity layer of AdCP. Their job is to hold
13
+ brand identity data (names, logos, colors, fonts, tone) and expose it to
14
+ other agents — buyer agents, creative agents, DSPs — that need to render
15
+ on-brand creative or verify who a campaign is for.
16
+
17
+ The baseline tests the minimum contract that every brand agent honors,
18
+ regardless of what additional capabilities (rights licensing, creative
19
+ approval) it layers on top:
20
+
21
+ 1. Declare `brand` in `supported_protocols` on `get_adcp_capabilities`.
22
+ 2. Respond to `get_brand_identity` with a schema-valid identity manifest.
23
+ 3. Reject unknown `brand_id` values with a structured error.
24
+
25
+ Rights licensing (`get_rights`, `acquire_rights`, `update_rights`,
26
+ `creative_approval`) ships experimentally in 3.0 and is covered by the
27
+ `brand-rights` specialism storyboard, not this baseline.
28
+
29
+ agent:
30
+ interaction_model: brand_agent
31
+ capabilities: []
32
+ examples:
33
+ - "Any brand agent (simple identity host or full rights platform)"
34
+ - "Brand-owned agents (Acme Outdoor)"
35
+ - "Third-party brand identity platforms"
36
+ - "Agency-hosted brand agents"
37
+
38
+ caller:
39
+ role: buyer_agent
40
+ example: "Any buyer, creative agent, or DSP needing brand identity"
41
+
42
+ prerequisites:
43
+ description: |
44
+ The test kit provides a sample brand (Nova Motors) that any brand agent
45
+ can serve identity for.
46
+ test_kit: "test-kits/nova-motors.yaml"
47
+
48
+ phases:
49
+ - id: capability_discovery
50
+ title: "Capability discovery"
51
+ narrative: |
52
+ The buyer calls `get_adcp_capabilities` to confirm the agent declares
53
+ the brand protocol before issuing any brand-identity call.
54
+
55
+ steps:
56
+ - id: get_capabilities
57
+ title: "Check agent capabilities"
58
+ narrative: |
59
+ Verify that the agent declares `brand` in `supported_protocols`.
60
+ Without this claim the buyer MUST NOT send `get_brand_identity`.
61
+ task: get_adcp_capabilities
62
+ schema_ref: "protocol/get-adcp-capabilities-request.json"
63
+ response_schema_ref: "protocol/get-adcp-capabilities-response.json"
64
+ doc_ref: "/protocol/get_adcp_capabilities"
65
+ comply_scenario: capability_discovery
66
+ stateful: false
67
+ expected: |
68
+ Return capabilities declaring `brand` in `supported_protocols`.
69
+
70
+ sample_request:
71
+ context:
72
+ correlation_id: "brand_baseline--get_capabilities"
73
+ validations:
74
+ - check: response_schema
75
+ description: "Response matches get-adcp-capabilities-response.json schema"
76
+ - check: field_present
77
+ path: "supported_protocols"
78
+ description: "Response declares supported_protocols"
79
+
80
+ - id: brand_identity_retrieval
81
+ title: "Brand identity retrieval"
82
+ narrative: |
83
+ The buyer calls `get_brand_identity` to retrieve the brand's identity
84
+ manifest. The minimum contract is a schema-valid response that echoes
85
+ the requested `brand_id` and carries at least one name.
86
+
87
+ steps:
88
+ - id: get_brand_identity
89
+ title: "Retrieve brand identity"
90
+ narrative: |
91
+ The buyer calls `get_brand_identity` with a known `brand_id`. The
92
+ response MUST match the brand-identity schema and echo the
93
+ requested `brand_id`. Rich fields (logos, colors, fonts, tone,
94
+ visual_guidelines) are optional at the baseline level — the
95
+ minimum bar is that identity resolution works and is schema-valid.
96
+ task: get_brand_identity
97
+ schema_ref: "brand/get-brand-identity-request.json"
98
+ response_schema_ref: "brand/get-brand-identity-response.json"
99
+ doc_ref: "/brand-protocol/tasks/get_brand_identity"
100
+ stateful: false
101
+ expected: |
102
+ Return a schema-valid brand identity that echoes the requested
103
+ brand_id and includes at least one name.
104
+
105
+ sample_request:
106
+ brand_id: "nova_motors"
107
+ context:
108
+ correlation_id: "brand_baseline--get_brand_identity"
109
+ context_outputs:
110
+ - path: "brand_id"
111
+ key: "brand_id"
112
+
113
+ validations:
114
+ - check: response_schema
115
+ description: "Response matches get-brand-identity-response.json schema"
116
+ - check: field_present
117
+ path: "brand_id"
118
+ description: "Response includes brand_id"
119
+ - check: field_value
120
+ path: "brand_id"
121
+ value: "nova_motors"
122
+ description: "Returned brand_id echoes the requested brand"
123
+ - check: field_present
124
+ path: "names"
125
+ description: "Response includes brand names"
126
+
127
+ - id: unknown_brand_rejection
128
+ title: "Unknown brand rejection"
129
+ narrative: |
130
+ Agents MUST reject unknown `brand_id` values with a structured
131
+ AdCP error rather than returning an empty or fabricated manifest.
132
+
133
+ steps:
134
+ - id: get_brand_identity_unknown
135
+ title: "Reject unknown brand ID"
136
+ narrative: |
137
+ The buyer calls `get_brand_identity` with a `brand_id` the agent
138
+ does not serve. The response MUST be a structured error with a
139
+ recovery classification — not a success response with empty
140
+ fields.
141
+ task: get_brand_identity
142
+ schema_ref: "brand/get-brand-identity-request.json"
143
+ response_schema_ref: "brand/get-brand-identity-response.json"
144
+ doc_ref: "/brand-protocol/tasks/get_brand_identity"
145
+ stateful: false
146
+ expected: |
147
+ Return an AdCP error response indicating the brand is not known
148
+ to this agent.
149
+
150
+ sample_request:
151
+ brand_id: "brand_that_does_not_exist_12345"
152
+ context:
153
+ correlation_id: "brand_baseline--get_brand_identity_unknown"
154
+
155
+ expect_error: true
156
+ negative_path: payload_well_formed
157
+ validations:
158
+ - check: error_code
159
+ value: "REFERENCE_NOT_FOUND"
160
+ description: "Error code indicates brand-not-found. REFERENCE_NOT_FOUND is the canonical fallback per error-handling.mdx (brands lack a dedicated *_NOT_FOUND code)."