@adcp/sdk 15.8.1 → 16.0.0-beta.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 (2348) hide show
  1. package/ADCP_VERSION +1 -1
  2. package/bin/adcp-identity.js +74 -0
  3. package/bin/adcp.js +2 -0
  4. package/compliance/cache/3.2.4/domains/creative/index.yaml +370 -0
  5. package/compliance/cache/3.2.4/domains/creative/scenarios/billing_out_of_band.yaml +181 -0
  6. package/compliance/cache/3.2.4/domains/creative/scenarios/canonical_supported_formats.yaml +235 -0
  7. package/compliance/cache/3.2.4/domains/creative/scenarios/creative_features_idempotency.yaml +675 -0
  8. package/compliance/cache/3.2.4/domains/creative/scenarios/creative_revision_identity.yaml +219 -0
  9. package/compliance/cache/3.2.4/domains/creative/scenarios/evaluator_auth.yaml +589 -0
  10. package/compliance/cache/3.2.4/domains/creative/scenarios/list_creatives_filter_behavior.yaml +132 -0
  11. package/compliance/cache/3.2.4/domains/creative/scenarios/native_in_feed.yaml +557 -0
  12. package/compliance/cache/3.2.4/domains/creative/scenarios/native_localization.yaml +393 -0
  13. package/compliance/cache/3.2.4/domains/governance/index.yaml +708 -0
  14. package/compliance/cache/3.2.4/domains/governance/scenarios/property_list_change_webhook_signing.yaml +165 -0
  15. package/compliance/cache/3.2.4/domains/media-buy/index.yaml +865 -0
  16. package/compliance/cache/3.2.4/domains/media-buy/scenarios/advanced_delivery_reporting.yaml +276 -0
  17. package/compliance/cache/3.2.4/domains/media-buy/scenarios/audience_activation_discovery.yaml +275 -0
  18. package/compliance/cache/3.2.4/domains/media-buy/scenarios/audience_buy_flow.yaml +387 -0
  19. package/compliance/cache/3.2.4/domains/media-buy/scenarios/availability_windows.yaml +446 -0
  20. package/compliance/cache/3.2.4/domains/media-buy/scenarios/available_actions.yaml +692 -0
  21. package/compliance/cache/3.2.4/domains/media-buy/scenarios/bidding_cost_binding.yaml +154 -0
  22. package/compliance/cache/3.2.4/domains/media-buy/scenarios/bidding_policy_placement.yaml +301 -0
  23. package/compliance/cache/3.2.4/domains/media-buy/scenarios/billing_finality_delivery.yaml +363 -0
  24. package/compliance/cache/3.2.4/domains/media-buy/scenarios/canonical_formats.yaml +1291 -0
  25. package/compliance/cache/3.2.4/domains/media-buy/scenarios/catalog_item_availability_updates.yaml +938 -0
  26. package/compliance/cache/3.2.4/domains/media-buy/scenarios/clicks_buy_flow.yaml +271 -0
  27. package/compliance/cache/3.2.4/domains/media-buy/scenarios/collection_selection.yaml +474 -0
  28. package/compliance/cache/3.2.4/domains/media-buy/scenarios/completed_views_buy_flow.yaml +350 -0
  29. package/compliance/cache/3.2.4/domains/media-buy/scenarios/create_media_buy_async.yaml +267 -0
  30. package/compliance/cache/3.2.4/domains/media-buy/scenarios/create_media_buy_async_lifecycle.yaml +432 -0
  31. package/compliance/cache/3.2.4/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +463 -0
  32. package/compliance/cache/3.2.4/domains/media-buy/scenarios/creative_reception.yaml +252 -0
  33. package/compliance/cache/3.2.4/domains/media-buy/scenarios/cross_path_targeting_provenance.yaml +445 -0
  34. package/compliance/cache/3.2.4/domains/media-buy/scenarios/delivery_reporting.yaml +410 -0
  35. package/compliance/cache/3.2.4/domains/media-buy/scenarios/demographic_targeting.yaml +653 -0
  36. package/compliance/cache/3.2.4/domains/media-buy/scenarios/dependency_impairment.yaml +750 -0
  37. package/compliance/cache/3.2.4/domains/media-buy/scenarios/dependency_impairment_audience.yaml +352 -0
  38. package/compliance/cache/3.2.4/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +1007 -0
  39. package/compliance/cache/3.2.4/domains/media-buy/scenarios/event_dedup_flow.yaml +406 -0
  40. package/compliance/cache/3.2.4/domains/media-buy/scenarios/external_audience_source_binding.yaml +332 -0
  41. package/compliance/cache/3.2.4/domains/media-buy/scenarios/frequency_cap_capability_updates.yaml +329 -0
  42. package/compliance/cache/3.2.4/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +316 -0
  43. package/compliance/cache/3.2.4/domains/media-buy/scenarios/geo_place_targeting.yaml +1049 -0
  44. package/compliance/cache/3.2.4/domains/media-buy/scenarios/geo_region_all_values_support.yaml +145 -0
  45. package/compliance/cache/3.2.4/domains/media-buy/scenarios/geo_region_exclusion_support.yaml +227 -0
  46. package/compliance/cache/3.2.4/domains/media-buy/scenarios/geo_region_targeting.yaml +1001 -0
  47. package/compliance/cache/3.2.4/domains/media-buy/scenarios/get_products_async.yaml +553 -0
  48. package/compliance/cache/3.2.4/domains/media-buy/scenarios/get_products_rejected.yaml +193 -0
  49. package/compliance/cache/3.2.4/domains/media-buy/scenarios/governance_approved.yaml +447 -0
  50. package/compliance/cache/3.2.4/domains/media-buy/scenarios/governance_conditions.yaml +552 -0
  51. package/compliance/cache/3.2.4/domains/media-buy/scenarios/governance_denied.yaml +398 -0
  52. package/compliance/cache/3.2.4/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +601 -0
  53. package/compliance/cache/3.2.4/domains/media-buy/scenarios/invalid_transitions.yaml +329 -0
  54. package/compliance/cache/3.2.4/domains/media-buy/scenarios/inventory_list_no_match.yaml +173 -0
  55. package/compliance/cache/3.2.4/domains/media-buy/scenarios/inventory_list_targeting.yaml +306 -0
  56. package/compliance/cache/3.2.4/domains/media-buy/scenarios/measurement_accountability.yaml +273 -0
  57. package/compliance/cache/3.2.4/domains/media-buy/scenarios/measurement_terms_accepted.yaml +173 -0
  58. package/compliance/cache/3.2.4/domains/media-buy/scenarios/measurement_terms_rejected.yaml +171 -0
  59. package/compliance/cache/3.2.4/domains/media-buy/scenarios/media_buy_frequency_cap_readback.yaml +332 -0
  60. package/compliance/cache/3.2.4/domains/media-buy/scenarios/media_buy_frequency_cap_updates.yaml +434 -0
  61. package/compliance/cache/3.2.4/domains/media-buy/scenarios/metric_container_subsumption.yaml +365 -0
  62. package/compliance/cache/3.2.4/domains/media-buy/scenarios/outcome_target.yaml +517 -0
  63. package/compliance/cache/3.2.4/domains/media-buy/scenarios/outcome_target_list_products_inert.yaml +96 -0
  64. package/compliance/cache/3.2.4/domains/media-buy/scenarios/owner_sold_channel_carriage.yaml +388 -0
  65. package/compliance/cache/3.2.4/domains/media-buy/scenarios/package_automatic_bidding.yaml +154 -0
  66. package/compliance/cache/3.2.4/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +131 -0
  67. package/compliance/cache/3.2.4/domains/media-buy/scenarios/pending_creatives_to_start.yaml +343 -0
  68. package/compliance/cache/3.2.4/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +505 -0
  69. package/compliance/cache/3.2.4/domains/media-buy/scenarios/performance_buy_flow.yaml +440 -0
  70. package/compliance/cache/3.2.4/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +482 -0
  71. package/compliance/cache/3.2.4/domains/media-buy/scenarios/portfolio_routing_scope.yaml +170 -0
  72. package/compliance/cache/3.2.4/domains/media-buy/scenarios/pricing_currency_filter.yaml +197 -0
  73. package/compliance/cache/3.2.4/domains/media-buy/scenarios/product_coverage_filters.yaml +149 -0
  74. package/compliance/cache/3.2.4/domains/media-buy/scenarios/product_filter_behavior.yaml +206 -0
  75. package/compliance/cache/3.2.4/domains/media-buy/scenarios/product_signal_targeting.yaml +407 -0
  76. package/compliance/cache/3.2.4/domains/media-buy/scenarios/provenance_audit_observation.yaml +361 -0
  77. package/compliance/cache/3.2.4/domains/media-buy/scenarios/provenance_enforcement.yaml +549 -0
  78. package/compliance/cache/3.2.4/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +323 -0
  79. package/compliance/cache/3.2.4/domains/media-buy/scenarios/reach_buy_flow.yaml +829 -0
  80. package/compliance/cache/3.2.4/domains/media-buy/scenarios/read_filter_behavior.yaml +302 -0
  81. package/compliance/cache/3.2.4/domains/media-buy/scenarios/revenue_share_pricing.yaml +349 -0
  82. package/compliance/cache/3.2.4/domains/media-buy/scenarios/seller_optimized_budget.yaml +1223 -0
  83. package/compliance/cache/3.2.4/domains/media-buy/scenarios/seller_optimized_min_spend_target_exceeds_package_cap.yaml +178 -0
  84. package/compliance/cache/3.2.4/domains/media-buy/scenarios/seller_optimized_proposal_package_pacing.yaml +300 -0
  85. package/compliance/cache/3.2.4/domains/media-buy/scenarios/targeting_aware_discovery.yaml +1701 -0
  86. package/compliance/cache/3.2.4/domains/media-buy/scenarios/total_budget_redistribution.yaml +198 -0
  87. package/compliance/cache/3.2.4/domains/media-buy/scenarios/typed_proposal_negotiation.yaml +798 -0
  88. package/compliance/cache/3.2.4/domains/media-buy/scenarios/vendor_metric_accountability.yaml +390 -0
  89. package/compliance/cache/3.2.4/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +314 -0
  90. package/compliance/cache/3.2.4/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +592 -0
  91. package/compliance/cache/3.2.4/domains/media-buy/state-machine.yaml +567 -0
  92. package/compliance/cache/3.2.4/domains/signals/index.yaml +177 -0
  93. package/compliance/cache/3.2.4/domains/signals/scenarios/get_signals_async.yaml +458 -0
  94. package/compliance/cache/3.2.4/index.json +508 -0
  95. package/compliance/cache/3.2.4/protocols/creative/index.yaml +370 -0
  96. package/compliance/cache/3.2.4/protocols/creative/scenarios/billing_out_of_band.yaml +181 -0
  97. package/compliance/cache/3.2.4/protocols/creative/scenarios/canonical_supported_formats.yaml +235 -0
  98. package/compliance/cache/3.2.4/protocols/creative/scenarios/creative_features_idempotency.yaml +675 -0
  99. package/compliance/cache/3.2.4/protocols/creative/scenarios/creative_revision_identity.yaml +219 -0
  100. package/compliance/cache/3.2.4/protocols/creative/scenarios/evaluator_auth.yaml +589 -0
  101. package/compliance/cache/3.2.4/protocols/creative/scenarios/list_creatives_filter_behavior.yaml +132 -0
  102. package/compliance/cache/3.2.4/protocols/creative/scenarios/native_in_feed.yaml +557 -0
  103. package/compliance/cache/3.2.4/protocols/creative/scenarios/native_localization.yaml +393 -0
  104. package/compliance/cache/3.2.4/protocols/governance/index.yaml +708 -0
  105. package/compliance/cache/3.2.4/protocols/governance/scenarios/property_list_change_webhook_signing.yaml +165 -0
  106. package/compliance/cache/3.2.4/protocols/media-buy/index.yaml +865 -0
  107. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/advanced_delivery_reporting.yaml +276 -0
  108. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/audience_activation_discovery.yaml +275 -0
  109. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/audience_buy_flow.yaml +387 -0
  110. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/availability_windows.yaml +446 -0
  111. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/available_actions.yaml +692 -0
  112. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/bidding_cost_binding.yaml +154 -0
  113. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/bidding_policy_placement.yaml +301 -0
  114. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/billing_finality_delivery.yaml +363 -0
  115. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/canonical_formats.yaml +1291 -0
  116. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/catalog_item_availability_updates.yaml +938 -0
  117. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/clicks_buy_flow.yaml +271 -0
  118. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/collection_selection.yaml +474 -0
  119. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +350 -0
  120. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/create_media_buy_async.yaml +267 -0
  121. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/create_media_buy_async_lifecycle.yaml +432 -0
  122. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +463 -0
  123. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/creative_reception.yaml +252 -0
  124. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/cross_path_targeting_provenance.yaml +445 -0
  125. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/delivery_reporting.yaml +410 -0
  126. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/demographic_targeting.yaml +653 -0
  127. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/dependency_impairment.yaml +750 -0
  128. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +352 -0
  129. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +1007 -0
  130. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/event_dedup_flow.yaml +406 -0
  131. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/external_audience_source_binding.yaml +332 -0
  132. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/frequency_cap_capability_updates.yaml +329 -0
  133. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +316 -0
  134. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/geo_place_targeting.yaml +1049 -0
  135. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/geo_region_all_values_support.yaml +145 -0
  136. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/geo_region_exclusion_support.yaml +227 -0
  137. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/geo_region_targeting.yaml +1001 -0
  138. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/get_products_async.yaml +553 -0
  139. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/get_products_rejected.yaml +193 -0
  140. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/governance_approved.yaml +447 -0
  141. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/governance_conditions.yaml +552 -0
  142. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/governance_denied.yaml +398 -0
  143. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +601 -0
  144. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/invalid_transitions.yaml +329 -0
  145. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/inventory_list_no_match.yaml +173 -0
  146. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/inventory_list_targeting.yaml +306 -0
  147. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/measurement_accountability.yaml +273 -0
  148. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/measurement_terms_accepted.yaml +173 -0
  149. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +171 -0
  150. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/media_buy_frequency_cap_readback.yaml +332 -0
  151. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/media_buy_frequency_cap_updates.yaml +434 -0
  152. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/metric_container_subsumption.yaml +365 -0
  153. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/outcome_target.yaml +517 -0
  154. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/outcome_target_list_products_inert.yaml +96 -0
  155. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/owner_sold_channel_carriage.yaml +388 -0
  156. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/package_automatic_bidding.yaml +154 -0
  157. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +131 -0
  158. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +343 -0
  159. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +505 -0
  160. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/performance_buy_flow.yaml +440 -0
  161. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +482 -0
  162. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/portfolio_routing_scope.yaml +170 -0
  163. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/pricing_currency_filter.yaml +197 -0
  164. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/product_coverage_filters.yaml +149 -0
  165. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/product_filter_behavior.yaml +206 -0
  166. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/product_signal_targeting.yaml +407 -0
  167. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/provenance_audit_observation.yaml +361 -0
  168. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/provenance_enforcement.yaml +549 -0
  169. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +323 -0
  170. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/reach_buy_flow.yaml +829 -0
  171. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/read_filter_behavior.yaml +302 -0
  172. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/revenue_share_pricing.yaml +349 -0
  173. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/seller_optimized_budget.yaml +1223 -0
  174. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/seller_optimized_min_spend_target_exceeds_package_cap.yaml +178 -0
  175. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/seller_optimized_proposal_package_pacing.yaml +300 -0
  176. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/targeting_aware_discovery.yaml +1701 -0
  177. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/total_budget_redistribution.yaml +198 -0
  178. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/typed_proposal_negotiation.yaml +798 -0
  179. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +390 -0
  180. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +314 -0
  181. package/compliance/cache/3.2.4/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +592 -0
  182. package/compliance/cache/3.2.4/protocols/media-buy/state-machine.yaml +567 -0
  183. package/compliance/cache/3.2.4/protocols/signals/index.yaml +177 -0
  184. package/compliance/cache/3.2.4/protocols/signals/scenarios/get_signals_async.yaml +458 -0
  185. package/compliance/cache/3.2.4/specialisms/audience-sync/index.yaml +354 -0
  186. package/compliance/cache/3.2.4/specialisms/brand-rights/index.yaml +436 -0
  187. package/compliance/cache/3.2.4/specialisms/brand-rights/scenarios/update_rights_lifecycle.yaml +163 -0
  188. package/compliance/cache/3.2.4/specialisms/collection-lists/index.yaml +412 -0
  189. package/compliance/cache/3.2.4/specialisms/content-standards/index.yaml +725 -0
  190. package/compliance/cache/3.2.4/specialisms/creative-ad-server/index.yaml +425 -0
  191. package/compliance/cache/3.2.4/specialisms/creative-generative/generative-seller.yaml +701 -0
  192. package/compliance/cache/3.2.4/specialisms/creative-generative/index.yaml +742 -0
  193. package/compliance/cache/3.2.4/specialisms/creative-template/index.yaml +440 -0
  194. package/compliance/cache/3.2.4/specialisms/creative-transformers/index.yaml +475 -0
  195. package/compliance/cache/3.2.4/specialisms/governance-delivery-monitor/index.yaml +1374 -0
  196. package/compliance/cache/3.2.4/specialisms/governance-spend-authority/denied.yaml +251 -0
  197. package/compliance/cache/3.2.4/specialisms/governance-spend-authority/index.yaml +483 -0
  198. package/compliance/cache/3.2.4/specialisms/property-lists/index.yaml +544 -0
  199. package/compliance/cache/3.2.4/specialisms/sales-broadcast-tv/index.yaml +682 -0
  200. package/compliance/cache/3.2.4/specialisms/sales-dooh/index.yaml +739 -0
  201. package/compliance/cache/3.2.4/specialisms/sales-guaranteed/index.yaml +714 -0
  202. package/compliance/cache/3.2.4/specialisms/sales-non-guaranteed/index.yaml +662 -0
  203. package/compliance/cache/3.2.4/specialisms/signal-marketplace/index.yaml +471 -0
  204. package/compliance/cache/3.2.4/specialisms/signal-owned/index.yaml +235 -0
  205. package/compliance/cache/3.2.4/test-vectors/request-signing/README.md +319 -0
  206. package/compliance/cache/3.2.4/test-vectors/request-signing/canonicalization.json +318 -0
  207. package/compliance/cache/3.2.4/test-vectors/request-signing/negative/026-non-ascii-host.json +33 -0
  208. package/compliance/cache/3.2.4/test-vectors/request-signing/negative/029-duplicate-signature-label.json +32 -0
  209. package/compliance/cache/3.2.4/test-vectors/request-signing/negative/030-content-digest-key-case.json +33 -0
  210. package/compliance/cache/3.2.4/test-vectors/request-signing/negative/031-malformed-host-authority.json +34 -0
  211. package/compliance/cache/3.2.4/test-vectors/request-signing/positive/013-two-signature-labels-distinct.json +32 -0
  212. package/compliance/cache/3.2.4/test-vectors/request-signing/positive/014-content-digest-two-algorithms.json +32 -0
  213. package/compliance/cache/3.2.4/test-vectors/request-signing/positive/015-bracketed-ipv6-host-with-port.json +32 -0
  214. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/001-no-signature-header.json +31 -0
  215. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/011-malformed-header.json +33 -0
  216. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/019-signature-without-signature-input.json +31 -0
  217. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/021-duplicate-signature-input-label.json +34 -0
  218. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/022-multi-valued-content-type.json +34 -0
  219. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/023-multi-valued-content-digest.json +34 -0
  220. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/024-unquoted-string-param.json +34 -0
  221. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/026-non-ascii-host.json +34 -0
  222. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/027-webhook-registration-authentication-unsigned.json +30 -0
  223. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/028-unsigned-protocol-method-required.json +32 -0
  224. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/029-duplicate-signature-label.json +34 -0
  225. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/030-content-digest-key-case.json +34 -0
  226. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/negative/031-malformed-host-authority.json +35 -0
  227. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/positive/013-two-signature-labels-distinct.json +33 -0
  228. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/positive/014-content-digest-two-algorithms.json +32 -0
  229. package/compliance/cache/3.2.4/test-vectors/request-signing/profile-3.2/positive/015-bracketed-ipv6-host-with-port.json +33 -0
  230. package/compliance/cache/3.2.4/universal/billing-gate-dispatch.yaml +570 -0
  231. package/compliance/cache/3.2.4/universal/collection-lists-pagination-integrity.yaml +341 -0
  232. package/compliance/cache/3.2.4/universal/content-standards-pagination-integrity.yaml +361 -0
  233. package/compliance/cache/3.2.4/universal/deterministic-testing.yaml +1471 -0
  234. package/compliance/cache/3.2.4/universal/error-compliance-signals.yaml +417 -0
  235. package/compliance/cache/3.2.4/universal/error-compliance.yaml +577 -0
  236. package/compliance/cache/3.2.4/universal/get-signals-pagination-integrity.yaml +241 -0
  237. package/compliance/cache/3.2.4/universal/idempotency.yaml +917 -0
  238. package/compliance/cache/3.2.4/universal/property-lists-pagination-integrity.yaml +342 -0
  239. package/compliance/cache/3.2.4/universal/read-tool-idempotency.yaml +345 -0
  240. package/compliance/cache/3.2.4/universal/schema-validation-signals.yaml +212 -0
  241. package/compliance/cache/3.2.4/universal/schema-validation.yaml +442 -0
  242. package/compliance/cache/3.2.4/universal/signed-requests.yaml +224 -0
  243. package/compliance/cache/3.2.4/universal/stale-response-advisory.yaml +320 -0
  244. package/compliance/cache/3.2.4/universal/storyboard-schema.yaml +2749 -0
  245. package/compliance/cache/3.2.4/universal/webhook-emission.yaml +944 -0
  246. package/compliance/cache/3.2.4/universal/wholesale-feed-products-scope-isolation.yaml +156 -0
  247. package/compliance/cache/3.2.4/universal/wholesale-feed-products.yaml +185 -0
  248. package/compliance/cache/3.2.4/universal/wholesale-feed-signals-scope-isolation.yaml +154 -0
  249. package/compliance/cache/3.2.4/universal/wholesale-feed-signals.yaml +180 -0
  250. package/dist/lib/adapters/keyed-account-backend.d.mts +37 -0
  251. package/dist/lib/adapters/keyed-account-backend.d.ts +37 -0
  252. package/dist/lib/adapters/keyed-account-backend.js +121 -0
  253. package/dist/lib/adapters/keyed-account-backend.mjs +94 -0
  254. package/dist/lib/adapters/keyed-account-store.d.mts +28 -0
  255. package/dist/lib/adapters/keyed-account-store.d.ts +28 -0
  256. package/dist/lib/adapters/keyed-account-store.js +227 -0
  257. package/dist/lib/adapters/keyed-account-store.mjs +203 -0
  258. package/dist/lib/client/core.d.mts +1 -1
  259. package/dist/lib/client/core.d.ts +1 -1
  260. package/dist/lib/compliance-fixtures/canonical-storyboards-provenance.json +4 -4
  261. package/dist/lib/compliance-fixtures/canonical-storyboards.d.mts +2 -2
  262. package/dist/lib/compliance-fixtures/canonical-storyboards.d.ts +2 -2
  263. package/dist/lib/core/AgentClient.d.mts +10 -2
  264. package/dist/lib/core/AgentClient.d.ts +10 -2
  265. package/dist/lib/core/AgentClient.js +0 -1
  266. package/dist/lib/core/AgentClient.mjs +0 -1
  267. package/dist/lib/core/SingleAgentClient.d.mts +45 -13
  268. package/dist/lib/core/SingleAgentClient.d.ts +45 -13
  269. package/dist/lib/core/SingleAgentClient.js +397 -99
  270. package/dist/lib/core/SingleAgentClient.mjs +406 -95
  271. package/dist/lib/core/TaskExecutor.d.mts +6 -0
  272. package/dist/lib/core/TaskExecutor.d.ts +6 -0
  273. package/dist/lib/core/TaskExecutor.js +66 -5
  274. package/dist/lib/core/TaskExecutor.mjs +71 -5
  275. package/dist/lib/core/account-resolution.d.mts +6 -0
  276. package/dist/lib/core/account-resolution.d.ts +6 -0
  277. package/dist/lib/core/buyer-account-registry.d.mts +6 -0
  278. package/dist/lib/core/buyer-account-registry.d.ts +6 -0
  279. package/dist/lib/core/buyer-account-registry.js +36 -17
  280. package/dist/lib/core/buyer-account-registry.mjs +36 -17
  281. package/dist/lib/core/postgres-webhook-registration-store.js +32 -5
  282. package/dist/lib/core/postgres-webhook-registration-store.mjs +32 -5
  283. package/dist/lib/core/redis-webhook-registration-store.js +23 -1
  284. package/dist/lib/core/redis-webhook-registration-store.mjs +23 -1
  285. package/dist/lib/core/webhook-registration.d.mts +7 -1
  286. package/dist/lib/core/webhook-registration.d.ts +7 -1
  287. package/dist/lib/core/webhook-registration.js +24 -2
  288. package/dist/lib/core/webhook-registration.mjs +23 -2
  289. package/dist/lib/errors/index.d.mts +2 -2
  290. package/dist/lib/errors/index.d.ts +2 -2
  291. package/dist/lib/errors/index.js +4 -2
  292. package/dist/lib/errors/index.mjs +4 -2
  293. package/dist/lib/identity-3.3/index.d.mts +10 -0
  294. package/dist/lib/identity-3.3/index.d.ts +10 -0
  295. package/dist/lib/identity-3.3/index.js +75 -0
  296. package/dist/lib/identity-3.3/index.mjs +46 -0
  297. package/dist/lib/identity-3.3/lifecycle.d.mts +113 -0
  298. package/dist/lib/identity-3.3/lifecycle.d.ts +113 -0
  299. package/dist/lib/identity-3.3/lifecycle.js +267 -0
  300. package/dist/lib/identity-3.3/lifecycle.mjs +240 -0
  301. package/dist/lib/identity-3.3/revocation.d.mts +50 -0
  302. package/dist/lib/identity-3.3/revocation.d.ts +50 -0
  303. package/dist/lib/identity-3.3/revocation.js +238 -0
  304. package/dist/lib/identity-3.3/revocation.mjs +216 -0
  305. package/dist/lib/identity-3.3/schemas.draft.d.mts +2472 -0
  306. package/dist/lib/identity-3.3/schemas.draft.d.ts +2472 -0
  307. package/dist/lib/identity-3.3/schemas.draft.js +1448 -0
  308. package/dist/lib/identity-3.3/schemas.draft.mjs +1428 -0
  309. package/dist/lib/identity-3.3/server.d.mts +34 -0
  310. package/dist/lib/identity-3.3/server.d.ts +34 -0
  311. package/dist/lib/identity-3.3/server.js +219 -0
  312. package/dist/lib/identity-3.3/server.mjs +194 -0
  313. package/dist/lib/identity-3.3/store.d.mts +24 -0
  314. package/dist/lib/identity-3.3/store.d.ts +24 -0
  315. package/dist/lib/identity-3.3/store.js +191 -0
  316. package/dist/lib/identity-3.3/store.mjs +169 -0
  317. package/dist/lib/identity-3.3/trust.d.mts +94 -0
  318. package/dist/lib/identity-3.3/trust.d.ts +94 -0
  319. package/dist/lib/identity-3.3/trust.js +278 -0
  320. package/dist/lib/identity-3.3/trust.mjs +239 -0
  321. package/dist/lib/identity-3.3/types.d.mts +127 -0
  322. package/dist/lib/identity-3.3/types.d.ts +127 -0
  323. package/dist/lib/identity-3.3/types.js +16 -0
  324. package/dist/lib/identity-3.3/types.mjs +0 -0
  325. package/dist/lib/identity-3.3/validation.d.mts +2 -0
  326. package/dist/lib/identity-3.3/validation.d.ts +2 -0
  327. package/dist/lib/identity-3.3/validation.js +125 -0
  328. package/dist/lib/identity-3.3/validation.mjs +91 -0
  329. package/dist/lib/index.d.mts +2 -2
  330. package/dist/lib/index.d.ts +2 -2
  331. package/dist/lib/negotiation/commercial-terms-semantics.d.mts +2 -1
  332. package/dist/lib/negotiation/commercial-terms-semantics.d.ts +2 -1
  333. package/dist/lib/negotiation/commercial-terms-semantics.js +11 -0
  334. package/dist/lib/negotiation/commercial-terms-semantics.mjs +11 -0
  335. package/dist/lib/reporting/azure/index.d.mts +5 -0
  336. package/dist/lib/reporting/azure/index.d.ts +5 -0
  337. package/dist/lib/reporting/azure/index.js +26 -7
  338. package/dist/lib/reporting/azure/index.mjs +26 -7
  339. package/dist/lib/reporting/bigquery/index.d.mts +139 -20
  340. package/dist/lib/reporting/bigquery/index.d.ts +139 -20
  341. package/dist/lib/reporting/bigquery/index.js +345 -99
  342. package/dist/lib/reporting/bigquery/index.mjs +343 -98
  343. package/dist/lib/reporting/gcs/adapter.d.mts +8 -1
  344. package/dist/lib/reporting/gcs/adapter.d.ts +8 -1
  345. package/dist/lib/reporting/gcs/errors.d.mts +6 -0
  346. package/dist/lib/reporting/gcs/errors.d.ts +6 -0
  347. package/dist/lib/reporting/gcs/fence.d.mts +5 -0
  348. package/dist/lib/reporting/gcs/fence.d.ts +5 -0
  349. package/dist/lib/reporting/gcs/index.d.mts +9 -0
  350. package/dist/lib/reporting/gcs/index.d.ts +9 -0
  351. package/dist/lib/reporting/gcs/reader.d.mts +27 -3
  352. package/dist/lib/reporting/gcs/reader.d.ts +27 -3
  353. package/dist/lib/reporting/gcs/row-provider.d.mts +7 -0
  354. package/dist/lib/reporting/gcs/row-provider.d.ts +7 -0
  355. package/dist/lib/reporting/gcs/row-provider.js +34 -14
  356. package/dist/lib/reporting/gcs/row-provider.mjs +34 -14
  357. package/dist/lib/reporting/ledger/change-feed.d.mts +31 -3
  358. package/dist/lib/reporting/ledger/change-feed.d.ts +31 -3
  359. package/dist/lib/reporting/ledger/change-feed.js +8 -2
  360. package/dist/lib/reporting/ledger/change-feed.mjs +8 -2
  361. package/dist/lib/reporting/ledger/handler.js +15 -4
  362. package/dist/lib/reporting/ledger/handler.mjs +18 -5
  363. package/dist/lib/reporting/ledger/health.d.mts +6 -0
  364. package/dist/lib/reporting/ledger/health.d.ts +6 -0
  365. package/dist/lib/reporting/ledger/health.js +25 -0
  366. package/dist/lib/reporting/ledger/health.mjs +23 -0
  367. package/dist/lib/reporting/ledger/index.d.mts +12 -0
  368. package/dist/lib/reporting/ledger/index.d.ts +12 -0
  369. package/dist/lib/reporting/ledger/index.js +2 -0
  370. package/dist/lib/reporting/ledger/index.mjs +1 -0
  371. package/dist/lib/reporting/ledger/managed-postgres.d.mts +31 -0
  372. package/dist/lib/reporting/ledger/managed-postgres.d.ts +31 -0
  373. package/dist/lib/reporting/ledger/managed-postgres.js +152 -7
  374. package/dist/lib/reporting/ledger/managed-postgres.mjs +155 -8
  375. package/dist/lib/reporting/ledger/managed-router.d.mts +148 -0
  376. package/dist/lib/reporting/ledger/managed-router.d.ts +148 -0
  377. package/dist/lib/reporting/ledger/managed-router.js +280 -0
  378. package/dist/lib/reporting/ledger/managed-router.mjs +258 -0
  379. package/dist/lib/reporting/ledger/managed.d.mts +190 -21
  380. package/dist/lib/reporting/ledger/managed.d.ts +190 -21
  381. package/dist/lib/reporting/ledger/managed.js +82 -3
  382. package/dist/lib/reporting/ledger/managed.mjs +78 -3
  383. package/dist/lib/reporting/ledger/notification-activity.d.mts +65 -3
  384. package/dist/lib/reporting/ledger/notification-activity.d.ts +65 -3
  385. package/dist/lib/reporting/ledger/object-writes.d.mts +64 -5
  386. package/dist/lib/reporting/ledger/object-writes.d.ts +64 -5
  387. package/dist/lib/reporting/ledger/postgres.d.mts +118 -12
  388. package/dist/lib/reporting/ledger/postgres.d.ts +118 -12
  389. package/dist/lib/reporting/ledger/postgres.js +251 -61
  390. package/dist/lib/reporting/ledger/postgres.mjs +254 -62
  391. package/dist/lib/reporting/ledger/row-encoding.d.mts +92 -6
  392. package/dist/lib/reporting/ledger/row-encoding.d.ts +92 -6
  393. package/dist/lib/reporting/ledger/row-encoding.js +8 -4
  394. package/dist/lib/reporting/ledger/row-encoding.mjs +6 -3
  395. package/dist/lib/reporting/ledger/row-storage-errors.d.mts +11 -1
  396. package/dist/lib/reporting/ledger/row-storage-errors.d.ts +11 -1
  397. package/dist/lib/reporting/ledger/row-storage-migration.d.mts +19 -1
  398. package/dist/lib/reporting/ledger/row-storage-migration.d.ts +19 -1
  399. package/dist/lib/reporting/ledger/row-storage-migration.js +149 -18
  400. package/dist/lib/reporting/ledger/row-storage-migration.mjs +149 -18
  401. package/dist/lib/reporting/ledger/row-storage-object.d.mts +103 -12
  402. package/dist/lib/reporting/ledger/row-storage-object.d.ts +103 -12
  403. package/dist/lib/reporting/ledger/row-storage-object.js +106 -31
  404. package/dist/lib/reporting/ledger/row-storage-object.mjs +104 -31
  405. package/dist/lib/reporting/ledger/row-storage.d.mts +89 -20
  406. package/dist/lib/reporting/ledger/row-storage.d.ts +89 -20
  407. package/dist/lib/reporting/ledger/row-storage.js +130 -66
  408. package/dist/lib/reporting/ledger/row-storage.mjs +133 -67
  409. package/dist/lib/reporting/ledger/schedule.d.mts +13 -0
  410. package/dist/lib/reporting/ledger/schedule.d.ts +13 -0
  411. package/dist/lib/reporting/ledger/schedule.js +24 -0
  412. package/dist/lib/reporting/ledger/schedule.mjs +23 -0
  413. package/dist/lib/reporting/ledger/types.d.mts +38 -2
  414. package/dist/lib/reporting/ledger/types.d.ts +38 -2
  415. package/dist/lib/reporting/s3/index.d.mts +5 -0
  416. package/dist/lib/reporting/s3/index.d.ts +5 -0
  417. package/dist/lib/reporting/s3/index.js +37 -14
  418. package/dist/lib/reporting/s3/index.mjs +37 -14
  419. package/dist/lib/reporting/service/index.d.mts +10 -0
  420. package/dist/lib/reporting/service/index.d.ts +10 -0
  421. package/dist/lib/reporting/service/maintenance.d.mts +41 -3
  422. package/dist/lib/reporting/service/maintenance.d.ts +41 -3
  423. package/dist/lib/reporting/service/maintenance.js +26 -4
  424. package/dist/lib/reporting/service/maintenance.mjs +26 -4
  425. package/dist/lib/schemas-data/3.2/a2ui/bound-value.json +1 -1
  426. package/dist/lib/schemas-data/3.2/a2ui/component.json +1 -1
  427. package/dist/lib/schemas-data/3.2/a2ui/si-catalog.json +25 -25
  428. package/dist/lib/schemas-data/3.2/a2ui/surface.json +2 -2
  429. package/dist/lib/schemas-data/3.2/a2ui/user-action.json +1 -1
  430. package/dist/lib/schemas-data/3.2/aao/agent-publishers.json +1 -1
  431. package/dist/lib/schemas-data/3.2/account/get-account-financials-request.json +6 -6
  432. package/dist/lib/schemas-data/3.2/account/get-account-financials-response.json +12 -12
  433. package/dist/lib/schemas-data/3.2/account/list-account-changes-request.json +11 -12
  434. package/dist/lib/schemas-data/3.2/account/list-account-changes-response.json +7 -7
  435. package/dist/lib/schemas-data/3.2/account/list-accounts-request.json +6 -6
  436. package/dist/lib/schemas-data/3.2/account/list-accounts-response.json +8 -8
  437. package/dist/lib/schemas-data/3.2/account/report-usage-request.json +6 -6
  438. package/dist/lib/schemas-data/3.2/account/report-usage-response.json +6 -6
  439. package/dist/lib/schemas-data/3.2/account/sync-accounts-request.json +16 -16
  440. package/dist/lib/schemas-data/3.2/account/sync-accounts-response.json +21 -21
  441. package/dist/lib/schemas-data/3.2/account/sync-governance-request.json +5 -5
  442. package/dist/lib/schemas-data/3.2/account/sync-governance-response.json +10 -10
  443. package/dist/lib/schemas-data/3.2/adagents.json +30 -30
  444. package/dist/lib/schemas-data/3.2/brand/acquire-rights-request.json +12 -12
  445. package/dist/lib/schemas-data/3.2/brand/acquire-rights-response.json +16 -16
  446. package/dist/lib/schemas-data/3.2/brand/creative-approval-request.json +5 -5
  447. package/dist/lib/schemas-data/3.2/brand/creative-approval-response.json +12 -12
  448. package/dist/lib/schemas-data/3.2/brand/get-brand-identity-request.json +4 -4
  449. package/dist/lib/schemas-data/3.2/brand/get-brand-identity-response.json +10 -10
  450. package/dist/lib/schemas-data/3.2/brand/get-rights-request.json +8 -8
  451. package/dist/lib/schemas-data/3.2/brand/get-rights-response.json +11 -11
  452. package/dist/lib/schemas-data/3.2/brand/revocation-notification.json +4 -4
  453. package/dist/lib/schemas-data/3.2/brand/rights-pricing-option.json +5 -5
  454. package/dist/lib/schemas-data/3.2/brand/rights-terms.json +3 -3
  455. package/dist/lib/schemas-data/3.2/brand/search-brands-request.json +6 -6
  456. package/dist/lib/schemas-data/3.2/brand/search-brands-response.json +11 -11
  457. package/dist/lib/schemas-data/3.2/brand/update-rights-request.json +6 -6
  458. package/dist/lib/schemas-data/3.2/brand/update-rights-response.json +11 -11
  459. package/dist/lib/schemas-data/3.2/brand/verification-status.json +1 -1
  460. package/dist/lib/schemas-data/3.2/brand/verify-brand-claim-request.json +3 -3
  461. package/dist/lib/schemas-data/3.2/brand/verify-brand-claim-response.json +13 -13
  462. package/dist/lib/schemas-data/3.2/brand/verify-brand-claims-request.json +3 -3
  463. package/dist/lib/schemas-data/3.2/brand/verify-brand-claims-response.json +13 -13
  464. package/dist/lib/schemas-data/3.2/brand.json +23 -23
  465. package/dist/lib/schemas-data/3.2/bundled.schemas.br +0 -0
  466. package/dist/lib/schemas-data/3.2/collection/base-collection-source.json +3 -3
  467. package/dist/lib/schemas-data/3.2/collection/collection-list-changed-webhook.json +2 -2
  468. package/dist/lib/schemas-data/3.2/collection/collection-list-filters.json +7 -7
  469. package/dist/lib/schemas-data/3.2/collection/collection-list.json +5 -5
  470. package/dist/lib/schemas-data/3.2/collection/create-collection-list-request.json +8 -8
  471. package/dist/lib/schemas-data/3.2/collection/create-collection-list-response.json +6 -6
  472. package/dist/lib/schemas-data/3.2/collection/delete-collection-list-request.json +5 -5
  473. package/dist/lib/schemas-data/3.2/collection/delete-collection-list-response.json +5 -5
  474. package/dist/lib/schemas-data/3.2/collection/get-collection-list-request.json +5 -5
  475. package/dist/lib/schemas-data/3.2/collection/get-collection-list-response.json +12 -12
  476. package/dist/lib/schemas-data/3.2/collection/list-collection-lists-request.json +6 -6
  477. package/dist/lib/schemas-data/3.2/collection/list-collection-lists-response.json +7 -7
  478. package/dist/lib/schemas-data/3.2/collection/update-collection-list-request.json +8 -8
  479. package/dist/lib/schemas-data/3.2/collection/update-collection-list-response.json +6 -6
  480. package/dist/lib/schemas-data/3.2/content-standards/artifact-webhook-payload.json +3 -3
  481. package/dist/lib/schemas-data/3.2/content-standards/artifact.json +8 -8
  482. package/dist/lib/schemas-data/3.2/content-standards/calibrate-content-request.json +5 -5
  483. package/dist/lib/schemas-data/3.2/content-standards/calibrate-content-response.json +10 -10
  484. package/dist/lib/schemas-data/3.2/content-standards/content-standards.json +7 -7
  485. package/dist/lib/schemas-data/3.2/content-standards/create-content-standards-request.json +8 -8
  486. package/dist/lib/schemas-data/3.2/content-standards/create-content-standards-response.json +8 -8
  487. package/dist/lib/schemas-data/3.2/content-standards/get-content-standards-request.json +4 -4
  488. package/dist/lib/schemas-data/3.2/content-standards/get-content-standards-response.json +9 -9
  489. package/dist/lib/schemas-data/3.2/content-standards/get-media-buy-artifacts-request.json +5 -5
  490. package/dist/lib/schemas-data/3.2/content-standards/get-media-buy-artifacts-response.json +10 -10
  491. package/dist/lib/schemas-data/3.2/content-standards/list-content-standards-request.json +6 -6
  492. package/dist/lib/schemas-data/3.2/content-standards/list-content-standards-response.json +10 -10
  493. package/dist/lib/schemas-data/3.2/content-standards/update-content-standards-request.json +8 -8
  494. package/dist/lib/schemas-data/3.2/content-standards/update-content-standards-response.json +8 -8
  495. package/dist/lib/schemas-data/3.2/content-standards/validate-content-delivery-request.json +5 -5
  496. package/dist/lib/schemas-data/3.2/content-standards/validate-content-delivery-response.json +10 -10
  497. package/dist/lib/schemas-data/3.2/core/acceptance-policy-profile-ids.json +1 -1
  498. package/dist/lib/schemas-data/3.2/core/account-authorization.json +1 -1
  499. package/dist/lib/schemas-data/3.2/core/account-change-recorded-webhook.json +2 -2
  500. package/dist/lib/schemas-data/3.2/core/account-change.json +2 -2
  501. package/dist/lib/schemas-data/3.2/core/account-identity-change-preview.json +4 -4
  502. package/dist/lib/schemas-data/3.2/core/account-identity-change.json +3 -3
  503. package/dist/lib/schemas-data/3.2/core/account-ref.json +3 -3
  504. package/dist/lib/schemas-data/3.2/core/account-status-changed-webhook.json +4 -4
  505. package/dist/lib/schemas-data/3.2/core/account-timezone-capability.json +1 -1
  506. package/dist/lib/schemas-data/3.2/core/account-with-authorization.json +3 -3
  507. package/dist/lib/schemas-data/3.2/core/account.json +14 -14
  508. package/dist/lib/schemas-data/3.2/core/activation-key.json +1 -1
  509. package/dist/lib/schemas-data/3.2/core/ad-inventory-config.json +1 -1
  510. package/dist/lib/schemas-data/3.2/core/agent-encryption-key.json +1 -1
  511. package/dist/lib/schemas-data/3.2/core/agent-notification-config-state.json +4 -4
  512. package/dist/lib/schemas-data/3.2/core/agent-notification-config.json +4 -4
  513. package/dist/lib/schemas-data/3.2/core/agent-reporting-destination-state.json +4 -4
  514. package/dist/lib/schemas-data/3.2/core/agent-reporting-destination.json +8 -8
  515. package/dist/lib/schemas-data/3.2/core/agent-signing-key.json +1 -1
  516. package/dist/lib/schemas-data/3.2/core/agent-webhook-challenge.json +1 -1
  517. package/dist/lib/schemas-data/3.2/core/app-item.json +4 -4
  518. package/dist/lib/schemas-data/3.2/core/applicable-package-id.json +1 -1
  519. package/dist/lib/schemas-data/3.2/core/asset-group-vocabulary.json +1 -1
  520. package/dist/lib/schemas-data/3.2/core/assets/asset-union.json +22 -22
  521. package/dist/lib/schemas-data/3.2/core/assets/audio-asset.json +3 -3
  522. package/dist/lib/schemas-data/3.2/core/assets/brief-asset.json +2 -2
  523. package/dist/lib/schemas-data/3.2/core/assets/card-asset.json +6 -6
  524. package/dist/lib/schemas-data/3.2/core/assets/catalog-asset.json +2 -2
  525. package/dist/lib/schemas-data/3.2/core/assets/css-asset.json +2 -2
  526. package/dist/lib/schemas-data/3.2/core/assets/daast-asset.json +6 -6
  527. package/dist/lib/schemas-data/3.2/core/assets/daast-tracker-asset.json +5 -5
  528. package/dist/lib/schemas-data/3.2/core/assets/display-tag-asset.json +12 -12
  529. package/dist/lib/schemas-data/3.2/core/assets/html-asset.json +2 -2
  530. package/dist/lib/schemas-data/3.2/core/assets/image-asset.json +2 -2
  531. package/dist/lib/schemas-data/3.2/core/assets/javascript-asset.json +3 -3
  532. package/dist/lib/schemas-data/3.2/core/assets/markdown-asset.json +2 -2
  533. package/dist/lib/schemas-data/3.2/core/assets/pixel-tracker-asset.json +5 -5
  534. package/dist/lib/schemas-data/3.2/core/assets/published-post-asset.json +2 -2
  535. package/dist/lib/schemas-data/3.2/core/assets/text-asset.json +2 -2
  536. package/dist/lib/schemas-data/3.2/core/assets/url-asset.json +5 -5
  537. package/dist/lib/schemas-data/3.2/core/assets/vast-asset.json +6 -6
  538. package/dist/lib/schemas-data/3.2/core/assets/vast-tracker-asset.json +5 -5
  539. package/dist/lib/schemas-data/3.2/core/assets/video-asset.json +7 -7
  540. package/dist/lib/schemas-data/3.2/core/assets/webhook-asset.json +7 -7
  541. package/dist/lib/schemas-data/3.2/core/assets/zip-asset.json +2 -2
  542. package/dist/lib/schemas-data/3.2/core/async-response-data.json +43 -43
  543. package/dist/lib/schemas-data/3.2/core/async-response-refs/creative/get-creative-features-async-response-submitted.json +3 -3
  544. package/dist/lib/schemas-data/3.2/core/async-response-refs/creative/sync-creatives-async-response-input-required.json +3 -3
  545. package/dist/lib/schemas-data/3.2/core/async-response-refs/creative/sync-creatives-async-response-submitted.json +4 -4
  546. package/dist/lib/schemas-data/3.2/core/async-response-refs/creative/sync-creatives-async-response-working.json +3 -3
  547. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/accept-proposal-async-response-input-required.json +2 -2
  548. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/accept-proposal-async-response-submitted.json +2 -2
  549. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/accept-proposal-async-response-working.json +2 -2
  550. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/build-creative-async-response-input-required.json +4 -4
  551. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/build-creative-async-response-submitted.json +4 -4
  552. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/build-creative-async-response-working.json +3 -3
  553. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/buy-products-async-response-input-required.json +2 -2
  554. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/buy-products-async-response-submitted.json +2 -2
  555. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/buy-products-async-response-working.json +2 -2
  556. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/control-media-buy-async-response-input-required.json +2 -2
  557. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/control-media-buy-async-response-submitted.json +2 -2
  558. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/control-media-buy-async-response-working.json +2 -2
  559. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/create-media-buy-async-response-input-required.json +4 -4
  560. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/create-media-buy-async-response-submitted.json +4 -4
  561. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/create-media-buy-async-response-working.json +3 -3
  562. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/decline-proposals-async-response-input-required.json +2 -2
  563. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/decline-proposals-async-response-submitted.json +2 -2
  564. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/decline-proposals-async-response-working.json +2 -2
  565. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/get-products-async-response-input-required.json +4 -4
  566. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/get-products-async-response-submitted.json +4 -4
  567. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/get-products-async-response-working.json +3 -3
  568. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/refine-proposals-async-response-input-required.json +2 -2
  569. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/refine-proposals-async-response-submitted.json +2 -2
  570. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/refine-proposals-async-response-working.json +2 -2
  571. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/request-proposals-async-response-input-required.json +2 -2
  572. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/request-proposals-async-response-submitted.json +2 -2
  573. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/request-proposals-async-response-working.json +2 -2
  574. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  575. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/sync-catalogs-async-response-submitted.json +4 -4
  576. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/sync-catalogs-async-response-working.json +3 -3
  577. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/update-media-buy-async-response-input-required.json +3 -3
  578. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/update-media-buy-async-response-submitted.json +4 -4
  579. package/dist/lib/schemas-data/3.2/core/async-response-refs/media-buy/update-media-buy-async-response-working.json +3 -3
  580. package/dist/lib/schemas-data/3.2/core/async-response-refs/signals/get-signals-async-response-submitted.json +4 -4
  581. package/dist/lib/schemas-data/3.2/core/async-response-refs/signals/get-signals-async-response-working.json +3 -3
  582. package/dist/lib/schemas-data/3.2/core/attestation-capabilities.json +5 -5
  583. package/dist/lib/schemas-data/3.2/core/attestation-evaluation.json +2 -2
  584. package/dist/lib/schemas-data/3.2/core/attestation-issuer.json +5 -5
  585. package/dist/lib/schemas-data/3.2/core/attestation-reference.json +7 -7
  586. package/dist/lib/schemas-data/3.2/core/attestation-subject.json +5 -5
  587. package/dist/lib/schemas-data/3.2/core/attribution-window.json +4 -4
  588. package/dist/lib/schemas-data/3.2/core/audience-activation-method.json +6 -6
  589. package/dist/lib/schemas-data/3.2/core/audience-characteristic.json +1 -1
  590. package/dist/lib/schemas-data/3.2/core/audience-evidence-pin.json +2 -2
  591. package/dist/lib/schemas-data/3.2/core/audience-evidence-requirements.json +10 -10
  592. package/dist/lib/schemas-data/3.2/core/audience-evidence-selection.json +5 -5
  593. package/dist/lib/schemas-data/3.2/core/audience-evidence.json +10 -10
  594. package/dist/lib/schemas-data/3.2/core/audience-member.json +3 -3
  595. package/dist/lib/schemas-data/3.2/core/audience-selector.json +7 -7
  596. package/dist/lib/schemas-data/3.2/core/audience-source.json +3 -3
  597. package/dist/lib/schemas-data/3.2/core/authorized-agent-base.json +3 -3
  598. package/dist/lib/schemas-data/3.2/core/bidding-policy-capability.json +1 -1
  599. package/dist/lib/schemas-data/3.2/core/bidding-policy.json +1 -1
  600. package/dist/lib/schemas-data/3.2/core/brand-id.json +1 -1
  601. package/dist/lib/schemas-data/3.2/core/brand-key.json +2 -2
  602. package/dist/lib/schemas-data/3.2/core/brand-ref.json +3 -3
  603. package/dist/lib/schemas-data/3.2/core/brand-response-authorization-result.json +1 -1
  604. package/dist/lib/schemas-data/3.2/core/budget-allocation.json +2 -2
  605. package/dist/lib/schemas-data/3.2/core/budget-range.json +1 -1
  606. package/dist/lib/schemas-data/3.2/core/business-entity.json +2 -2
  607. package/dist/lib/schemas-data/3.2/core/cancellation-policy.json +2 -2
  608. package/dist/lib/schemas-data/3.2/core/canonical-account-ref.json +3 -3
  609. package/dist/lib/schemas-data/3.2/core/canonical-audience-evidence-selection.json +3 -3
  610. package/dist/lib/schemas-data/3.2/core/canonical-audience-evidence.json +8 -8
  611. package/dist/lib/schemas-data/3.2/core/canonical-budget-allocation.json +2 -2
  612. package/dist/lib/schemas-data/3.2/core/canonical-delivery-forecast.json +7 -7
  613. package/dist/lib/schemas-data/3.2/core/canonical-forecast-point.json +12 -12
  614. package/dist/lib/schemas-data/3.2/core/canonical-forecast-vendor-metric-value.json +5 -5
  615. package/dist/lib/schemas-data/3.2/core/canonical-format-kind.json +1 -1
  616. package/dist/lib/schemas-data/3.2/core/canonical-format-option.json +6 -6
  617. package/dist/lib/schemas-data/3.2/core/canonical-measurement-terms.json +3 -3
  618. package/dist/lib/schemas-data/3.2/core/canonical-media-buy-action-fields.json +6 -6
  619. package/dist/lib/schemas-data/3.2/core/canonical-media-buy-action.json +4 -4
  620. package/dist/lib/schemas-data/3.2/core/canonical-media-buy-features.json +2 -2
  621. package/dist/lib/schemas-data/3.2/core/canonical-metric-qualifier.json +6 -6
  622. package/dist/lib/schemas-data/3.2/core/canonical-optimization-goal.json +9 -9
  623. package/dist/lib/schemas-data/3.2/core/canonical-performance-standard.json +4 -4
  624. package/dist/lib/schemas-data/3.2/core/canonical-placement.json +9 -9
  625. package/dist/lib/schemas-data/3.2/core/canonical-pricing-option.json +5 -5
  626. package/dist/lib/schemas-data/3.2/core/canonical-product-action.json +6 -6
  627. package/dist/lib/schemas-data/3.2/core/canonical-product.json +31 -31
  628. package/dist/lib/schemas-data/3.2/core/canonical-projection-ref.json +3 -3
  629. package/dist/lib/schemas-data/3.2/core/canonical-projection-slot-override.json +1 -1
  630. package/dist/lib/schemas-data/3.2/core/canonical-proposal.json +5 -5
  631. package/dist/lib/schemas-data/3.2/core/canonical-reporting-capabilities.json +11 -11
  632. package/dist/lib/schemas-data/3.2/core/canonical-reporting-commitment.json +6 -6
  633. package/dist/lib/schemas-data/3.2/core/canvas-constraint.json +1 -1
  634. package/dist/lib/schemas-data/3.2/core/capabilities-changed-webhook.json +2 -2
  635. package/dist/lib/schemas-data/3.2/core/catalog-field-mapping.json +2 -2
  636. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-error.json +3 -3
  637. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-ref.json +1 -1
  638. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-state.json +4 -4
  639. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-update-result.json +4 -4
  640. package/dist/lib/schemas-data/3.2/core/catalog-item-availability-update.json +2 -2
  641. package/dist/lib/schemas-data/3.2/core/catalog-item-delivery-metrics.json +3 -3
  642. package/dist/lib/schemas-data/3.2/core/catalog-item-reference-not-found-error.json +1 -1
  643. package/dist/lib/schemas-data/3.2/core/catalog-selection.json +7 -7
  644. package/dist/lib/schemas-data/3.2/core/catalog.json +7 -7
  645. package/dist/lib/schemas-data/3.2/core/catchment.json +5 -5
  646. package/dist/lib/schemas-data/3.2/core/collection-delivery-metrics.json +3 -3
  647. package/dist/lib/schemas-data/3.2/core/collection-distribution.json +3 -3
  648. package/dist/lib/schemas-data/3.2/core/collection-list-ref.json +1 -1
  649. package/dist/lib/schemas-data/3.2/core/collection-property-delivery-metrics.json +5 -5
  650. package/dist/lib/schemas-data/3.2/core/collection-ref.json +1 -1
  651. package/dist/lib/schemas-data/3.2/core/collection-selection.json +4 -4
  652. package/dist/lib/schemas-data/3.2/core/collection-selector.json +1 -1
  653. package/dist/lib/schemas-data/3.2/core/collection.json +13 -13
  654. package/dist/lib/schemas-data/3.2/core/committed-metric.json +14 -14
  655. package/dist/lib/schemas-data/3.2/core/compact-task-input-required.json +4 -4
  656. package/dist/lib/schemas-data/3.2/core/compact-task-submitted.json +12 -4
  657. package/dist/lib/schemas-data/3.2/core/compact-task-working.json +3 -3
  658. package/dist/lib/schemas-data/3.2/core/content-rating.json +2 -2
  659. package/dist/lib/schemas-data/3.2/core/context.json +1 -1
  660. package/dist/lib/schemas-data/3.2/core/creative-approval-scope.json +3 -3
  661. package/dist/lib/schemas-data/3.2/core/creative-asset.json +13 -13
  662. package/dist/lib/schemas-data/3.2/core/creative-assets.json +3 -3
  663. package/dist/lib/schemas-data/3.2/core/creative-assignment.json +2 -2
  664. package/dist/lib/schemas-data/3.2/core/creative-brief.json +4 -4
  665. package/dist/lib/schemas-data/3.2/core/creative-consumption.json +1 -1
  666. package/dist/lib/schemas-data/3.2/core/creative-delivery-metrics.json +2 -2
  667. package/dist/lib/schemas-data/3.2/core/creative-filters.json +8 -8
  668. package/dist/lib/schemas-data/3.2/core/creative-item.json +1 -1
  669. package/dist/lib/schemas-data/3.2/core/creative-locale-policy.json +2 -2
  670. package/dist/lib/schemas-data/3.2/core/creative-localization-readback.json +6 -6
  671. package/dist/lib/schemas-data/3.2/core/creative-localization.json +6 -6
  672. package/dist/lib/schemas-data/3.2/core/creative-manifest.json +13 -13
  673. package/dist/lib/schemas-data/3.2/core/creative-operation-format-declaration.json +7 -7
  674. package/dist/lib/schemas-data/3.2/core/creative-policy.json +3 -3
  675. package/dist/lib/schemas-data/3.2/core/creative-representation-set.json +4 -4
  676. package/dist/lib/schemas-data/3.2/core/creative-representation.json +2 -2
  677. package/dist/lib/schemas-data/3.2/core/creative-revision-id.json +1 -1
  678. package/dist/lib/schemas-data/3.2/core/creative-variable.json +1 -1
  679. package/dist/lib/schemas-data/3.2/core/creative-variant.json +6 -6
  680. package/dist/lib/schemas-data/3.2/core/daast-tracker-constraints.json +2 -2
  681. package/dist/lib/schemas-data/3.2/core/data-provider-signal-selector.json +1 -1
  682. package/dist/lib/schemas-data/3.2/core/date-range.json +1 -1
  683. package/dist/lib/schemas-data/3.2/core/datetime-range.json +1 -1
  684. package/dist/lib/schemas-data/3.2/core/daypart-target.json +3 -3
  685. package/dist/lib/schemas-data/3.2/core/deadline-policy.json +1 -1
  686. package/dist/lib/schemas-data/3.2/core/delivery-breakdown-controls.json +3 -3
  687. package/dist/lib/schemas-data/3.2/core/delivery-forecast.json +7 -7
  688. package/dist/lib/schemas-data/3.2/core/delivery-metric-aggregate.json +14 -14
  689. package/dist/lib/schemas-data/3.2/core/delivery-metrics.json +11 -11
  690. package/dist/lib/schemas-data/3.2/core/delivery-provider.json +1 -1
  691. package/dist/lib/schemas-data/3.2/core/delivery-recipient.json +2 -2
  692. package/dist/lib/schemas-data/3.2/core/demographic-age-range.json +1 -1
  693. package/dist/lib/schemas-data/3.2/core/demographic-predicate.json +2 -2
  694. package/dist/lib/schemas-data/3.2/core/demographic-reporting-capability.json +4 -4
  695. package/dist/lib/schemas-data/3.2/core/demographic-targeting-capability.json +4 -4
  696. package/dist/lib/schemas-data/3.2/core/demographic-targeting-intent.json +4 -4
  697. package/dist/lib/schemas-data/3.2/core/demographic-targeting-resolution.json +10 -10
  698. package/dist/lib/schemas-data/3.2/core/deployment.json +3 -3
  699. package/dist/lib/schemas-data/3.2/core/destination-item.json +4 -4
  700. package/dist/lib/schemas-data/3.2/core/destination.json +1 -1
  701. package/dist/lib/schemas-data/3.2/core/diagnostic-issue.json +1 -1
  702. package/dist/lib/schemas-data/3.2/core/downstream-connection-requirement.json +1 -1
  703. package/dist/lib/schemas-data/3.2/core/duration.json +1 -1
  704. package/dist/lib/schemas-data/3.2/core/education-item.json +4 -4
  705. package/dist/lib/schemas-data/3.2/core/error.json +1 -1
  706. package/dist/lib/schemas-data/3.2/core/evaluator-spec.json +5 -5
  707. package/dist/lib/schemas-data/3.2/core/event-custom-data.json +2 -2
  708. package/dist/lib/schemas-data/3.2/core/event-source-health.json +3 -3
  709. package/dist/lib/schemas-data/3.2/core/event-surface.json +2 -2
  710. package/dist/lib/schemas-data/3.2/core/event.json +8 -8
  711. package/dist/lib/schemas-data/3.2/core/experimental-feature-id.json +1 -1
  712. package/dist/lib/schemas-data/3.2/core/ext.json +1 -1
  713. package/dist/lib/schemas-data/3.2/core/feature-requirement.json +1 -1
  714. package/dist/lib/schemas-data/3.2/core/flight-item.json +4 -4
  715. package/dist/lib/schemas-data/3.2/core/forecast-dimension-audience.json +2 -2
  716. package/dist/lib/schemas-data/3.2/core/forecast-dimension-device-platform.json +2 -2
  717. package/dist/lib/schemas-data/3.2/core/forecast-dimension-device-type.json +2 -2
  718. package/dist/lib/schemas-data/3.2/core/forecast-dimension-geo.json +5 -5
  719. package/dist/lib/schemas-data/3.2/core/forecast-dimension-placement.json +2 -2
  720. package/dist/lib/schemas-data/3.2/core/forecast-dimension-signal.json +2 -2
  721. package/dist/lib/schemas-data/3.2/core/forecast-dimension-time.json +1 -1
  722. package/dist/lib/schemas-data/3.2/core/forecast-point-dimensions.json +8 -8
  723. package/dist/lib/schemas-data/3.2/core/forecast-point.json +28 -28
  724. package/dist/lib/schemas-data/3.2/core/forecast-range.json +1 -1
  725. package/dist/lib/schemas-data/3.2/core/forecast-rate-range.json +2 -2
  726. package/dist/lib/schemas-data/3.2/core/forecast-vendor-metric-value.json +7 -7
  727. package/dist/lib/schemas-data/3.2/core/format-id.json +1 -1
  728. package/dist/lib/schemas-data/3.2/core/format-option-ref.json +1 -1
  729. package/dist/lib/schemas-data/3.2/core/format-shape-vocabulary.json +1 -1
  730. package/dist/lib/schemas-data/3.2/core/format.json +45 -45
  731. package/dist/lib/schemas-data/3.2/core/frequency-cap-constraints.json +8 -8
  732. package/dist/lib/schemas-data/3.2/core/frequency-cap-duration-unit.json +1 -1
  733. package/dist/lib/schemas-data/3.2/core/frequency-cap-impression-constraints.json +2 -2
  734. package/dist/lib/schemas-data/3.2/core/frequency-cap-interval-constraints.json +3 -3
  735. package/dist/lib/schemas-data/3.2/core/frequency-cap-requirements.json +6 -6
  736. package/dist/lib/schemas-data/3.2/core/frequency-cap.json +4 -4
  737. package/dist/lib/schemas-data/3.2/core/generation-credential.json +3 -3
  738. package/dist/lib/schemas-data/3.2/core/geo-breakdown-support.json +3 -3
  739. package/dist/lib/schemas-data/3.2/core/geo-delivery-metrics.json +6 -6
  740. package/dist/lib/schemas-data/3.2/core/geo-metro.json +2 -2
  741. package/dist/lib/schemas-data/3.2/core/geo-place-area.json +4 -4
  742. package/dist/lib/schemas-data/3.2/core/geo-place-catalog-capability.json +2 -2
  743. package/dist/lib/schemas-data/3.2/core/geo-place-catalog-entry.json +3 -3
  744. package/dist/lib/schemas-data/3.2/core/geo-place-requirement.json +3 -3
  745. package/dist/lib/schemas-data/3.2/core/geo-place-resolver.json +1 -1
  746. package/dist/lib/schemas-data/3.2/core/geo-place-support.json +3 -3
  747. package/dist/lib/schemas-data/3.2/core/geo-place-system.json +1 -1
  748. package/dist/lib/schemas-data/3.2/core/geo-place-type.json +1 -1
  749. package/dist/lib/schemas-data/3.2/core/geo-region-requirement.json +1 -1
  750. package/dist/lib/schemas-data/3.2/core/geo-region-support.json +2 -2
  751. package/dist/lib/schemas-data/3.2/core/get-geo-place-resolution-request.json +3 -3
  752. package/dist/lib/schemas-data/3.2/core/get-geo-place-resolution-response.json +4 -4
  753. package/dist/lib/schemas-data/3.2/core/hotel-item.json +4 -4
  754. package/dist/lib/schemas-data/3.2/core/iana-timezone.json +1 -1
  755. package/dist/lib/schemas-data/3.2/core/identifier.json +2 -2
  756. package/dist/lib/schemas-data/3.2/core/impairment.json +3 -3
  757. package/dist/lib/schemas-data/3.2/core/indicator-bearing.json +4 -4
  758. package/dist/lib/schemas-data/3.2/core/indicator-scope.json +1 -1
  759. package/dist/lib/schemas-data/3.2/core/indicator.json +4 -4
  760. package/dist/lib/schemas-data/3.2/core/indicators-changed-webhook.json +3 -3
  761. package/dist/lib/schemas-data/3.2/core/industry-identifier.json +2 -2
  762. package/dist/lib/schemas-data/3.2/core/insertion-order.json +1 -1
  763. package/dist/lib/schemas-data/3.2/core/installment-deadlines.json +2 -2
  764. package/dist/lib/schemas-data/3.2/core/installment-delivery-metrics.json +3 -3
  765. package/dist/lib/schemas-data/3.2/core/installment-property-delivery-metrics.json +5 -5
  766. package/dist/lib/schemas-data/3.2/core/installment-ref.json +2 -2
  767. package/dist/lib/schemas-data/3.2/core/installment.json +10 -10
  768. package/dist/lib/schemas-data/3.2/core/inventory-list-application.json +1 -1
  769. package/dist/lib/schemas-data/3.2/core/job-item.json +3 -3
  770. package/dist/lib/schemas-data/3.2/core/keyword-delivery-metrics.json +3 -3
  771. package/dist/lib/schemas-data/3.2/core/keyword-target.json +2 -2
  772. package/dist/lib/schemas-data/3.2/core/limited-series.json +1 -1
  773. package/dist/lib/schemas-data/3.2/core/locale-tag.json +1 -1
  774. package/dist/lib/schemas-data/3.2/core/localized-creative-asset.json +3 -3
  775. package/dist/lib/schemas-data/3.2/core/macro-bearing-url.json +1 -1
  776. package/dist/lib/schemas-data/3.2/core/macro-declaration.json +10 -10
  777. package/dist/lib/schemas-data/3.2/core/macro-encoding.json +1 -1
  778. package/dist/lib/schemas-data/3.2/core/macro-resolution-capability.json +8 -8
  779. package/dist/lib/schemas-data/3.2/core/macro-resolution-result.json +10 -10
  780. package/dist/lib/schemas-data/3.2/core/macro-translation-target.json +7 -7
  781. package/dist/lib/schemas-data/3.2/core/material-deadline.json +1 -1
  782. package/dist/lib/schemas-data/3.2/core/mcp-webhook-payload.json +6 -6
  783. package/dist/lib/schemas-data/3.2/core/measurement-readiness.json +5 -5
  784. package/dist/lib/schemas-data/3.2/core/measurement-terms.json +3 -3
  785. package/dist/lib/schemas-data/3.2/core/measurement-window.json +1 -1
  786. package/dist/lib/schemas-data/3.2/core/media-buy-available-action-id.json +2 -2
  787. package/dist/lib/schemas-data/3.2/core/media-buy-available-action.json +7 -7
  788. package/dist/lib/schemas-data/3.2/core/media-buy-change-term-id.json +1 -1
  789. package/dist/lib/schemas-data/3.2/core/media-buy-features.json +2 -2
  790. package/dist/lib/schemas-data/3.2/core/media-buy-frequency-cap-capability.json +3 -3
  791. package/dist/lib/schemas-data/3.2/core/media-buy-frequency-cap-requirement.json +3 -3
  792. package/dist/lib/schemas-data/3.2/core/media-buy-frequency-cap-support.json +3 -3
  793. package/dist/lib/schemas-data/3.2/core/media-buy-frequency-cap.json +2 -2
  794. package/dist/lib/schemas-data/3.2/core/media-buy-legacy-terms-ref.json +1 -1
  795. package/dist/lib/schemas-data/3.2/core/media-buy-support-requirements.json +2 -2
  796. package/dist/lib/schemas-data/3.2/core/media-buy-support.json +3 -3
  797. package/dist/lib/schemas-data/3.2/core/media-buy.json +14 -14
  798. package/dist/lib/schemas-data/3.2/core/missing-metric.json +14 -14
  799. package/dist/lib/schemas-data/3.2/core/negative-keyword.json +2 -2
  800. package/dist/lib/schemas-data/3.2/core/notification-config.json +3 -3
  801. package/dist/lib/schemas-data/3.2/core/offering-asset-group.json +16 -16
  802. package/dist/lib/schemas-data/3.2/core/offering.json +5 -5
  803. package/dist/lib/schemas-data/3.2/core/operator-identity.json +2 -2
  804. package/dist/lib/schemas-data/3.2/core/operator-unit.json +1 -1
  805. package/dist/lib/schemas-data/3.2/core/opportunity-context.json +2 -2
  806. package/dist/lib/schemas-data/3.2/core/optimization-goal.json +9 -9
  807. package/dist/lib/schemas-data/3.2/core/outcome-measurement.json +2 -2
  808. package/dist/lib/schemas-data/3.2/core/outcome-target-cost-per.json +2 -2
  809. package/dist/lib/schemas-data/3.2/core/overlay.json +1 -1
  810. package/dist/lib/schemas-data/3.2/core/package-delivery-metric-value.json +2 -2
  811. package/dist/lib/schemas-data/3.2/core/package-format-snapshot.json +5 -5
  812. package/dist/lib/schemas-data/3.2/core/package-signal-targeting-group.json +2 -2
  813. package/dist/lib/schemas-data/3.2/core/package-signal-targeting-groups.json +2 -2
  814. package/dist/lib/schemas-data/3.2/core/package-signal-targeting.json +3 -3
  815. package/dist/lib/schemas-data/3.2/core/package-targeting-resolution.json +3 -3
  816. package/dist/lib/schemas-data/3.2/core/package.json +23 -23
  817. package/dist/lib/schemas-data/3.2/core/pagination-request.json +1 -1
  818. package/dist/lib/schemas-data/3.2/core/pagination-response.json +1 -1
  819. package/dist/lib/schemas-data/3.2/core/performance-feedback-assertion.json +8 -8
  820. package/dist/lib/schemas-data/3.2/core/performance-feedback-metric.json +14 -14
  821. package/dist/lib/schemas-data/3.2/core/performance-feedback.json +17 -17
  822. package/dist/lib/schemas-data/3.2/core/performance-standard.json +4 -4
  823. package/dist/lib/schemas-data/3.2/core/placement-definition.json +15 -15
  824. package/dist/lib/schemas-data/3.2/core/placement-delivery-metrics.json +3 -3
  825. package/dist/lib/schemas-data/3.2/core/placement-evidence.json +1 -1
  826. package/dist/lib/schemas-data/3.2/core/placement-identity.json +2 -2
  827. package/dist/lib/schemas-data/3.2/core/placement-presentation.json +1 -1
  828. package/dist/lib/schemas-data/3.2/core/placement-property-delivery-metrics.json +5 -5
  829. package/dist/lib/schemas-data/3.2/core/placement-ref.json +1 -1
  830. package/dist/lib/schemas-data/3.2/core/placement-selection.json +5 -5
  831. package/dist/lib/schemas-data/3.2/core/placement.json +10 -10
  832. package/dist/lib/schemas-data/3.2/core/planned-delivery.json +8 -8
  833. package/dist/lib/schemas-data/3.2/core/platform-extension-ref.json +1 -1
  834. package/dist/lib/schemas-data/3.2/core/positive-postal-area-support.json +2 -2
  835. package/dist/lib/schemas-data/3.2/core/postal-area-support.json +2 -2
  836. package/dist/lib/schemas-data/3.2/core/postal-area.json +4 -4
  837. package/dist/lib/schemas-data/3.2/core/postal-country-system.json +2 -2
  838. package/dist/lib/schemas-data/3.2/core/presentation-ref.json +1 -1
  839. package/dist/lib/schemas-data/3.2/core/preview-provider.json +1 -1
  840. package/dist/lib/schemas-data/3.2/core/preview-renderer-metadata.json +1 -1
  841. package/dist/lib/schemas-data/3.2/core/price.json +1 -1
  842. package/dist/lib/schemas-data/3.2/core/pricing-option.json +11 -11
  843. package/dist/lib/schemas-data/3.2/core/principal-changed-webhook.json +2 -2
  844. package/dist/lib/schemas-data/3.2/core/principal-declarations-state.json +3 -3
  845. package/dist/lib/schemas-data/3.2/core/principal-declarations.json +2 -2
  846. package/dist/lib/schemas-data/3.2/core/principal-state.json +4 -4
  847. package/dist/lib/schemas-data/3.2/core/product-allocation.json +5 -5
  848. package/dist/lib/schemas-data/3.2/core/product-allowed-action.json +6 -6
  849. package/dist/lib/schemas-data/3.2/core/product-audience-evidence-requirements.json +13 -13
  850. package/dist/lib/schemas-data/3.2/core/product-card-reference-asset.json +5 -5
  851. package/dist/lib/schemas-data/3.2/core/product-change-map.json +1 -1
  852. package/dist/lib/schemas-data/3.2/core/product-execution-requirement.json +7 -7
  853. package/dist/lib/schemas-data/3.2/core/product-filters.json +36 -36
  854. package/dist/lib/schemas-data/3.2/core/product-format-declaration.json +22 -22
  855. package/dist/lib/schemas-data/3.2/core/product-identity.json +1 -1
  856. package/dist/lib/schemas-data/3.2/core/product-offer-filters.json +26 -26
  857. package/dist/lib/schemas-data/3.2/core/product-signal-targeting-option.json +3 -3
  858. package/dist/lib/schemas-data/3.2/core/product-targeting-resolution.json +3 -3
  859. package/dist/lib/schemas-data/3.2/core/product.json +54 -54
  860. package/dist/lib/schemas-data/3.2/core/property-delivery-metrics.json +4 -4
  861. package/dist/lib/schemas-data/3.2/core/property-id.json +1 -1
  862. package/dist/lib/schemas-data/3.2/core/property-list-ref.json +1 -1
  863. package/dist/lib/schemas-data/3.2/core/property-ref.json +2 -2
  864. package/dist/lib/schemas-data/3.2/core/property-tag.json +1 -1
  865. package/dist/lib/schemas-data/3.2/core/property.json +6 -6
  866. package/dist/lib/schemas-data/3.2/core/proposal.json +9 -9
  867. package/dist/lib/schemas-data/3.2/core/protocol-envelope.json +5 -5
  868. package/dist/lib/schemas-data/3.2/core/provenance.json +9 -9
  869. package/dist/lib/schemas-data/3.2/core/publisher-property-selector.json +3 -3
  870. package/dist/lib/schemas-data/3.2/core/push-notification-config.json +2 -2
  871. package/dist/lib/schemas-data/3.2/core/real-estate-item.json +4 -4
  872. package/dist/lib/schemas-data/3.2/core/reference-asset.json +1 -1
  873. package/dist/lib/schemas-data/3.2/core/reference-renderer.json +1 -1
  874. package/dist/lib/schemas-data/3.2/core/registry-event.json +15 -15
  875. package/dist/lib/schemas-data/3.2/core/registry-feed-response.json +2 -2
  876. package/dist/lib/schemas-data/3.2/core/reporting-adjustment-receipt.json +1 -1
  877. package/dist/lib/schemas-data/3.2/core/reporting-adjustment.json +2 -2
  878. package/dist/lib/schemas-data/3.2/core/reporting-canonical-content-digest.json +1 -1
  879. package/dist/lib/schemas-data/3.2/core/reporting-canonicalization-contract.json +1 -1
  880. package/dist/lib/schemas-data/3.2/core/reporting-capabilities.json +12 -12
  881. package/dist/lib/schemas-data/3.2/core/reporting-consumer-status.json +1 -1
  882. package/dist/lib/schemas-data/3.2/core/reporting-control-total.json +1 -1
  883. package/dist/lib/schemas-data/3.2/core/reporting-coverage.json +1 -1
  884. package/dist/lib/schemas-data/3.2/core/reporting-dataset-share-destination.json +1 -1
  885. package/dist/lib/schemas-data/3.2/core/reporting-delivery-capabilities.json +3 -3
  886. package/dist/lib/schemas-data/3.2/core/reporting-delivery-config-state.json +4 -4
  887. package/dist/lib/schemas-data/3.2/core/reporting-delivery-config.json +7 -7
  888. package/dist/lib/schemas-data/3.2/core/reporting-delivery-method.json +4 -4
  889. package/dist/lib/schemas-data/3.2/core/reporting-delivery-offering-id.json +1 -1
  890. package/dist/lib/schemas-data/3.2/core/reporting-delivery-offering.json +8 -8
  891. package/dist/lib/schemas-data/3.2/core/reporting-delivery-ready-webhook.json +3 -3
  892. package/dist/lib/schemas-data/3.2/core/reporting-file-compression.json +1 -1
  893. package/dist/lib/schemas-data/3.2/core/reporting-file-entry.json +3 -3
  894. package/dist/lib/schemas-data/3.2/core/reporting-file-manifest.json +4 -4
  895. package/dist/lib/schemas-data/3.2/core/reporting-file-object-ref.json +1 -1
  896. package/dist/lib/schemas-data/3.2/core/reporting-ledger-changed-webhook.json +3 -3
  897. package/dist/lib/schemas-data/3.2/core/reporting-materialization.json +4 -4
  898. package/dist/lib/schemas-data/3.2/core/reporting-native-version-ref.json +1 -1
  899. package/dist/lib/schemas-data/3.2/core/reporting-obligation.json +10 -10
  900. package/dist/lib/schemas-data/3.2/core/reporting-receipt.json +5 -5
  901. package/dist/lib/schemas-data/3.2/core/reporting-reconciliation-mode.json +1 -1
  902. package/dist/lib/schemas-data/3.2/core/reporting-reliability-statistics.json +1 -1
  903. package/dist/lib/schemas-data/3.2/core/reporting-report-definition.json +1 -1
  904. package/dist/lib/schemas-data/3.2/core/reporting-resource.json +2 -2
  905. package/dist/lib/schemas-data/3.2/core/reporting-revision.json +6 -6
  906. package/dist/lib/schemas-data/3.2/core/reporting-schedule-offering.json +2 -2
  907. package/dist/lib/schemas-data/3.2/core/reporting-schedule.json +1 -1
  908. package/dist/lib/schemas-data/3.2/core/reporting-status-changed-webhook.json +5 -5
  909. package/dist/lib/schemas-data/3.2/core/reporting-status-issue.json +59 -5
  910. package/dist/lib/schemas-data/3.2/core/reporting-verification-profile-set.json +1 -1
  911. package/dist/lib/schemas-data/3.2/core/reporting-verification-profile.json +1 -1
  912. package/dist/lib/schemas-data/3.2/core/reporting-verification.json +7 -7
  913. package/dist/lib/schemas-data/3.2/core/reporting-webhook.json +3 -3
  914. package/dist/lib/schemas-data/3.2/core/reporting-write-destination.json +1 -1
  915. package/dist/lib/schemas-data/3.2/core/representation-destination.json +5 -5
  916. package/dist/lib/schemas-data/3.2/core/representation-rejection.json +1 -1
  917. package/dist/lib/schemas-data/3.2/core/representation-selection.json +5 -5
  918. package/dist/lib/schemas-data/3.2/core/requirements/asset-requirements.json +13 -13
  919. package/dist/lib/schemas-data/3.2/core/requirements/audio-asset-requirements.json +1 -1
  920. package/dist/lib/schemas-data/3.2/core/requirements/catalog-field-binding.json +4 -4
  921. package/dist/lib/schemas-data/3.2/core/requirements/catalog-requirements.json +5 -5
  922. package/dist/lib/schemas-data/3.2/core/requirements/css-asset-requirements.json +1 -1
  923. package/dist/lib/schemas-data/3.2/core/requirements/daast-asset-requirements.json +3 -3
  924. package/dist/lib/schemas-data/3.2/core/requirements/html-asset-requirements.json +1 -1
  925. package/dist/lib/schemas-data/3.2/core/requirements/image-asset-requirements.json +2 -2
  926. package/dist/lib/schemas-data/3.2/core/requirements/javascript-asset-requirements.json +1 -1
  927. package/dist/lib/schemas-data/3.2/core/requirements/markdown-asset-requirements.json +1 -1
  928. package/dist/lib/schemas-data/3.2/core/requirements/offering-asset-constraint.json +4 -4
  929. package/dist/lib/schemas-data/3.2/core/requirements/text-asset-requirements.json +1 -1
  930. package/dist/lib/schemas-data/3.2/core/requirements/url-asset-requirements.json +1 -1
  931. package/dist/lib/schemas-data/3.2/core/requirements/vast-asset-requirements.json +4 -4
  932. package/dist/lib/schemas-data/3.2/core/requirements/video-asset-requirements.json +6 -6
  933. package/dist/lib/schemas-data/3.2/core/requirements/webhook-asset-requirements.json +1 -1
  934. package/dist/lib/schemas-data/3.2/core/response-payload-jws-envelope.json +1 -1
  935. package/dist/lib/schemas-data/3.2/core/response.json +1 -1
  936. package/dist/lib/schemas-data/3.2/core/rights-attestation-evaluation.json +5 -5
  937. package/dist/lib/schemas-data/3.2/core/rights-constraint.json +7 -7
  938. package/dist/lib/schemas-data/3.2/core/seller-agent-ref.json +1 -1
  939. package/dist/lib/schemas-data/3.2/core/signal-coverage-forecast.json +5 -5
  940. package/dist/lib/schemas-data/3.2/core/signal-definition-enrichment.json +5 -5
  941. package/dist/lib/schemas-data/3.2/core/signal-definition.json +8 -8
  942. package/dist/lib/schemas-data/3.2/core/signal-filters.json +3 -3
  943. package/dist/lib/schemas-data/3.2/core/signal-id.json +1 -1
  944. package/dist/lib/schemas-data/3.2/core/signal-listing.json +6 -6
  945. package/dist/lib/schemas-data/3.2/core/signal-modeling-disclosure.json +1 -1
  946. package/dist/lib/schemas-data/3.2/core/signal-pricing-option.json +2 -2
  947. package/dist/lib/schemas-data/3.2/core/signal-pricing.json +6 -6
  948. package/dist/lib/schemas-data/3.2/core/signal-ref.json +1 -1
  949. package/dist/lib/schemas-data/3.2/core/signal-selection-group-rule.json +1 -1
  950. package/dist/lib/schemas-data/3.2/core/signal-targeting-expression.json +4 -4
  951. package/dist/lib/schemas-data/3.2/core/signal-targeting-rules.json +2 -2
  952. package/dist/lib/schemas-data/3.2/core/signal-targeting.json +7 -7
  953. package/dist/lib/schemas-data/3.2/core/sla-window.json +1 -1
  954. package/dist/lib/schemas-data/3.2/core/special.json +2 -2
  955. package/dist/lib/schemas-data/3.2/core/spot-reporting-capability.json +2 -2
  956. package/dist/lib/schemas-data/3.2/core/start-timing.json +1 -1
  957. package/dist/lib/schemas-data/3.2/core/store-item.json +3 -3
  958. package/dist/lib/schemas-data/3.2/core/talent.json +2 -2
  959. package/dist/lib/schemas-data/3.2/core/targeting-input.json +40 -40
  960. package/dist/lib/schemas-data/3.2/core/targeting-modification.json +3 -3
  961. package/dist/lib/schemas-data/3.2/core/targeting-overlay-requirements.json +15 -15
  962. package/dist/lib/schemas-data/3.2/core/targeting-overlay-support.json +25 -25
  963. package/dist/lib/schemas-data/3.2/core/targeting-unknown-age-eligibility-constraint.json +1 -1
  964. package/dist/lib/schemas-data/3.2/core/targeting-verified-age-basis-constraint.json +1 -1
  965. package/dist/lib/schemas-data/3.2/core/targeting.json +34 -34
  966. package/dist/lib/schemas-data/3.2/core/tasks-get-request.json +5 -5
  967. package/dist/lib/schemas-data/3.2/core/tasks-get-response.json +10 -10
  968. package/dist/lib/schemas-data/3.2/core/tasks-list-request.json +13 -13
  969. package/dist/lib/schemas-data/3.2/core/tasks-list-response.json +8 -8
  970. package/dist/lib/schemas-data/3.2/core/tracker-execution-contract.json +2 -2
  971. package/dist/lib/schemas-data/3.2/core/tracker-execution-selector.json +18 -18
  972. package/dist/lib/schemas-data/3.2/core/transformer-param.json +1 -1
  973. package/dist/lib/schemas-data/3.2/core/transformer.json +6 -6
  974. package/dist/lib/schemas-data/3.2/core/truncation-sentinel.json +1 -1
  975. package/dist/lib/schemas-data/3.2/core/user-match.json +3 -3
  976. package/dist/lib/schemas-data/3.2/core/vast-media-file-requirements.json +2 -2
  977. package/dist/lib/schemas-data/3.2/core/vast-tracker-constraints.json +2 -2
  978. package/dist/lib/schemas-data/3.2/core/vehicle-item.json +4 -4
  979. package/dist/lib/schemas-data/3.2/core/vendor-metric-id.json +1 -1
  980. package/dist/lib/schemas-data/3.2/core/vendor-metric-optimization-supported-metric.json +3 -3
  981. package/dist/lib/schemas-data/3.2/core/vendor-metric-optimization.json +2 -2
  982. package/dist/lib/schemas-data/3.2/core/vendor-metric-value.json +9 -9
  983. package/dist/lib/schemas-data/3.2/core/vendor-pricing-option.json +3 -3
  984. package/dist/lib/schemas-data/3.2/core/verification-token-claims.json +1 -1
  985. package/dist/lib/schemas-data/3.2/core/version-envelope.json +2 -2
  986. package/dist/lib/schemas-data/3.2/core/warning-resource.json +1 -1
  987. package/dist/lib/schemas-data/3.2/core/warning.json +4 -4
  988. package/dist/lib/schemas-data/3.2/core/webhook-activity-record.json +3 -3
  989. package/dist/lib/schemas-data/3.2/core/webhook-challenge-response.json +1 -1
  990. package/dist/lib/schemas-data/3.2/core/webhook-challenge.json +2 -2
  991. package/dist/lib/schemas-data/3.2/core/wholesale-feed-event.json +20 -20
  992. package/dist/lib/schemas-data/3.2/core/wholesale-feed-webhook.json +3 -3
  993. package/dist/lib/schemas-data/3.2/core/x-entity-types.json +1 -1
  994. package/dist/lib/schemas-data/3.2/creative/asset-types/index.json +6 -6
  995. package/dist/lib/schemas-data/3.2/creative/audit-observation.json +2 -2
  996. package/dist/lib/schemas-data/3.2/creative/creative-assignment-changed-webhook.json +2 -2
  997. package/dist/lib/schemas-data/3.2/creative/creative-feature-result.json +2 -2
  998. package/dist/lib/schemas-data/3.2/creative/creative-purged-webhook.json +3 -3
  999. package/dist/lib/schemas-data/3.2/creative/creative-status-changed-webhook.json +5 -5
  1000. package/dist/lib/schemas-data/3.2/creative/get-creative-delivery-request.json +6 -6
  1001. package/dist/lib/schemas-data/3.2/creative/get-creative-delivery-response.json +11 -11
  1002. package/dist/lib/schemas-data/3.2/creative/get-creative-features-async-response-submitted.json +3 -3
  1003. package/dist/lib/schemas-data/3.2/creative/get-creative-features-request.json +7 -7
  1004. package/dist/lib/schemas-data/3.2/creative/get-creative-features-response.json +9 -9
  1005. package/dist/lib/schemas-data/3.2/creative/get-creative-features-terminal-success.json +6 -6
  1006. package/dist/lib/schemas-data/3.2/creative/list-creative-formats-request.json +13 -13
  1007. package/dist/lib/schemas-data/3.2/creative/list-creative-formats-response.json +9 -9
  1008. package/dist/lib/schemas-data/3.2/creative/list-creatives-request.json +9 -9
  1009. package/dist/lib/schemas-data/3.2/creative/list-creatives-response.json +34 -34
  1010. package/dist/lib/schemas-data/3.2/creative/list-transformers-request.json +9 -9
  1011. package/dist/lib/schemas-data/3.2/creative/list-transformers-response.json +8 -8
  1012. package/dist/lib/schemas-data/3.2/creative/preview-creative-request.json +13 -13
  1013. package/dist/lib/schemas-data/3.2/creative/preview-creative-response.json +18 -18
  1014. package/dist/lib/schemas-data/3.2/creative/preview-render.json +4 -4
  1015. package/dist/lib/schemas-data/3.2/creative/sync-creatives-async-response-input-required.json +3 -3
  1016. package/dist/lib/schemas-data/3.2/creative/sync-creatives-async-response-submitted.json +4 -4
  1017. package/dist/lib/schemas-data/3.2/creative/sync-creatives-async-response-working.json +3 -3
  1018. package/dist/lib/schemas-data/3.2/creative/sync-creatives-request.json +10 -10
  1019. package/dist/lib/schemas-data/3.2/creative/sync-creatives-response.json +18 -18
  1020. package/dist/lib/schemas-data/3.2/creative/validate-input-request.json +4 -4
  1021. package/dist/lib/schemas-data/3.2/creative/validate-input-response.json +4 -4
  1022. package/dist/lib/schemas-data/3.2/creative/validate-input-result.json +2 -2
  1023. package/dist/lib/schemas-data/3.2/creative/video-brief.json +1 -1
  1024. package/dist/lib/schemas-data/3.2/enums/account-currency-mode.json +1 -1
  1025. package/dist/lib/schemas-data/3.2/enums/account-scope.json +1 -1
  1026. package/dist/lib/schemas-data/3.2/enums/account-status.json +1 -1
  1027. package/dist/lib/schemas-data/3.2/enums/action-not-allowed-reason.json +1 -1
  1028. package/dist/lib/schemas-data/3.2/enums/action-source.json +1 -1
  1029. package/dist/lib/schemas-data/3.2/enums/activation-method.json +1 -1
  1030. package/dist/lib/schemas-data/3.2/enums/adcp-protocol.json +1 -1
  1031. package/dist/lib/schemas-data/3.2/enums/adjustment-kind.json +1 -1
  1032. package/dist/lib/schemas-data/3.2/enums/advertiser-industry.json +1 -1
  1033. package/dist/lib/schemas-data/3.2/enums/age-determination-basis.json +1 -1
  1034. package/dist/lib/schemas-data/3.2/enums/age-verification-method.json +1 -1
  1035. package/dist/lib/schemas-data/3.2/enums/assessment-status.json +1 -1
  1036. package/dist/lib/schemas-data/3.2/enums/asset-content-type.json +1 -1
  1037. package/dist/lib/schemas-data/3.2/enums/attestation-claim.json +1 -1
  1038. package/dist/lib/schemas-data/3.2/enums/attribution-methodology.json +1 -1
  1039. package/dist/lib/schemas-data/3.2/enums/attribution-model.json +1 -1
  1040. package/dist/lib/schemas-data/3.2/enums/audience-evidence-methodology.json +1 -1
  1041. package/dist/lib/schemas-data/3.2/enums/audience-resolution-method.json +1 -1
  1042. package/dist/lib/schemas-data/3.2/enums/audience-source.json +1 -1
  1043. package/dist/lib/schemas-data/3.2/enums/audience-status.json +1 -1
  1044. package/dist/lib/schemas-data/3.2/enums/audience-subject-type.json +1 -1
  1045. package/dist/lib/schemas-data/3.2/enums/audio-channel-layout.json +1 -1
  1046. package/dist/lib/schemas-data/3.2/enums/audio-distribution-type.json +1 -1
  1047. package/dist/lib/schemas-data/3.2/enums/auth-scheme.json +1 -1
  1048. package/dist/lib/schemas-data/3.2/enums/availability-status.json +1 -1
  1049. package/dist/lib/schemas-data/3.2/enums/available-metric.json +1 -1
  1050. package/dist/lib/schemas-data/3.2/enums/billing-party.json +1 -1
  1051. package/dist/lib/schemas-data/3.2/enums/binary-verdict.json +1 -1
  1052. package/dist/lib/schemas-data/3.2/enums/brand-agent-type.json +1 -1
  1053. package/dist/lib/schemas-data/3.2/enums/browser-family.json +1 -1
  1054. package/dist/lib/schemas-data/3.2/enums/c2pa-watermark-action.json +1 -1
  1055. package/dist/lib/schemas-data/3.2/enums/canceled-by.json +1 -1
  1056. package/dist/lib/schemas-data/3.2/enums/canonical-media-buy-action-mode.json +1 -1
  1057. package/dist/lib/schemas-data/3.2/enums/canonical-media-buy-action.json +1 -1
  1058. package/dist/lib/schemas-data/3.2/enums/catalog-action.json +1 -1
  1059. package/dist/lib/schemas-data/3.2/enums/catalog-item-status.json +1 -1
  1060. package/dist/lib/schemas-data/3.2/enums/catalog-type.json +1 -1
  1061. package/dist/lib/schemas-data/3.2/enums/channels.json +1 -1
  1062. package/dist/lib/schemas-data/3.2/enums/cloud-storage-protocol.json +1 -1
  1063. package/dist/lib/schemas-data/3.2/enums/co-branding-requirement.json +1 -1
  1064. package/dist/lib/schemas-data/3.2/enums/collection-cadence.json +1 -1
  1065. package/dist/lib/schemas-data/3.2/enums/collection-kind.json +1 -1
  1066. package/dist/lib/schemas-data/3.2/enums/collection-relationship.json +1 -1
  1067. package/dist/lib/schemas-data/3.2/enums/collection-status.json +1 -1
  1068. package/dist/lib/schemas-data/3.2/enums/completion-source.json +1 -1
  1069. package/dist/lib/schemas-data/3.2/enums/consent-basis.json +1 -1
  1070. package/dist/lib/schemas-data/3.2/enums/content-id-type.json +1 -1
  1071. package/dist/lib/schemas-data/3.2/enums/content-rating-system.json +1 -1
  1072. package/dist/lib/schemas-data/3.2/enums/creative-action.json +1 -1
  1073. package/dist/lib/schemas-data/3.2/enums/creative-agent-capability.json +1 -1
  1074. package/dist/lib/schemas-data/3.2/enums/creative-approval-status.json +1 -1
  1075. package/dist/lib/schemas-data/3.2/enums/creative-event-reason-code.json +1 -1
  1076. package/dist/lib/schemas-data/3.2/enums/creative-identifier-type.json +1 -1
  1077. package/dist/lib/schemas-data/3.2/enums/creative-quality.json +1 -1
  1078. package/dist/lib/schemas-data/3.2/enums/creative-selection-strategy.json +1 -1
  1079. package/dist/lib/schemas-data/3.2/enums/creative-sort-field.json +1 -1
  1080. package/dist/lib/schemas-data/3.2/enums/creative-status.json +1 -1
  1081. package/dist/lib/schemas-data/3.2/enums/ctv-ad-experience.json +1 -1
  1082. package/dist/lib/schemas-data/3.2/enums/daast-tracking-event.json +1 -1
  1083. package/dist/lib/schemas-data/3.2/enums/daast-version.json +1 -1
  1084. package/dist/lib/schemas-data/3.2/enums/day-of-week.json +1 -1
  1085. package/dist/lib/schemas-data/3.2/enums/daypart-timezone-mode.json +1 -1
  1086. package/dist/lib/schemas-data/3.2/enums/delegation-authority.json +1 -1
  1087. package/dist/lib/schemas-data/3.2/enums/delivery-recipient-cloud.json +1 -1
  1088. package/dist/lib/schemas-data/3.2/enums/delivery-status.json +1 -1
  1089. package/dist/lib/schemas-data/3.2/enums/delivery-type.json +1 -1
  1090. package/dist/lib/schemas-data/3.2/enums/demographic-system.json +1 -1
  1091. package/dist/lib/schemas-data/3.2/enums/derivative-type.json +1 -1
  1092. package/dist/lib/schemas-data/3.2/enums/device-platform.json +1 -1
  1093. package/dist/lib/schemas-data/3.2/enums/device-type.json +1 -1
  1094. package/dist/lib/schemas-data/3.2/enums/digital-source-type.json +1 -1
  1095. package/dist/lib/schemas-data/3.2/enums/dimension-unit.json +1 -1
  1096. package/dist/lib/schemas-data/3.2/enums/disclosure-persistence.json +1 -1
  1097. package/dist/lib/schemas-data/3.2/enums/disclosure-position.json +1 -1
  1098. package/dist/lib/schemas-data/3.2/enums/distance-unit.json +1 -1
  1099. package/dist/lib/schemas-data/3.2/enums/distribution-identifier-type.json +1 -1
  1100. package/dist/lib/schemas-data/3.2/enums/dooh-motion-type.json +1 -1
  1101. package/dist/lib/schemas-data/3.2/enums/embedded-provenance-method.json +1 -1
  1102. package/dist/lib/schemas-data/3.2/enums/error-code.json +1 -1
  1103. package/dist/lib/schemas-data/3.2/enums/error-scope.json +1 -1
  1104. package/dist/lib/schemas-data/3.2/enums/escalation-severity.json +1 -1
  1105. package/dist/lib/schemas-data/3.2/enums/event-type.json +1 -1
  1106. package/dist/lib/schemas-data/3.2/enums/exclusivity.json +1 -1
  1107. package/dist/lib/schemas-data/3.2/enums/feature-check-status.json +1 -1
  1108. package/dist/lib/schemas-data/3.2/enums/feed-format.json +1 -1
  1109. package/dist/lib/schemas-data/3.2/enums/feedback-source.json +1 -1
  1110. package/dist/lib/schemas-data/3.2/enums/forecast-method.json +1 -1
  1111. package/dist/lib/schemas-data/3.2/enums/forecast-range-unit.json +1 -1
  1112. package/dist/lib/schemas-data/3.2/enums/forecastable-metric.json +1 -1
  1113. package/dist/lib/schemas-data/3.2/enums/format-id-parameter.json +1 -1
  1114. package/dist/lib/schemas-data/3.2/enums/frame-rate-type.json +1 -1
  1115. package/dist/lib/schemas-data/3.2/enums/frequency-cap-control-mode.json +1 -1
  1116. package/dist/lib/schemas-data/3.2/enums/frequency-cap-mutable-field.json +1 -1
  1117. package/dist/lib/schemas-data/3.2/enums/frequency-cap-scope.json +1 -1
  1118. package/dist/lib/schemas-data/3.2/enums/genre-taxonomy.json +1 -1
  1119. package/dist/lib/schemas-data/3.2/enums/geo-level.json +1 -1
  1120. package/dist/lib/schemas-data/3.2/enums/gop-type.json +1 -1
  1121. package/dist/lib/schemas-data/3.2/enums/governance-decision.json +1 -1
  1122. package/dist/lib/schemas-data/3.2/enums/governance-domain.json +1 -1
  1123. package/dist/lib/schemas-data/3.2/enums/governance-mode.json +1 -1
  1124. package/dist/lib/schemas-data/3.2/enums/governance-phase.json +1 -1
  1125. package/dist/lib/schemas-data/3.2/enums/history-entry-type.json +1 -1
  1126. package/dist/lib/schemas-data/3.2/enums/http-method.json +1 -1
  1127. package/dist/lib/schemas-data/3.2/enums/identifier-types.json +1 -1
  1128. package/dist/lib/schemas-data/3.2/enums/impairment-offline-state.json +1 -1
  1129. package/dist/lib/schemas-data/3.2/enums/impairment-reason-code.json +1 -1
  1130. package/dist/lib/schemas-data/3.2/enums/indicator-type.json +1 -1
  1131. package/dist/lib/schemas-data/3.2/enums/installment-status.json +1 -1
  1132. package/dist/lib/schemas-data/3.2/enums/javascript-module-type.json +1 -1
  1133. package/dist/lib/schemas-data/3.2/enums/landing-page-requirement.json +1 -1
  1134. package/dist/lib/schemas-data/3.2/enums/legacy-postal-system.json +1 -1
  1135. package/dist/lib/schemas-data/3.2/enums/lift-dimension.json +1 -1
  1136. package/dist/lib/schemas-data/3.2/enums/logo-slot.json +1 -1
  1137. package/dist/lib/schemas-data/3.2/enums/macro-dialect.json +1 -1
  1138. package/dist/lib/schemas-data/3.2/enums/macro-mapping-status.json +1 -1
  1139. package/dist/lib/schemas-data/3.2/enums/macro-processing-operation.json +1 -1
  1140. package/dist/lib/schemas-data/3.2/enums/macro-resolution-reason.json +1 -1
  1141. package/dist/lib/schemas-data/3.2/enums/macro-resolver.json +1 -1
  1142. package/dist/lib/schemas-data/3.2/enums/macro-value-context.json +1 -1
  1143. package/dist/lib/schemas-data/3.2/enums/makegood-remedy.json +1 -1
  1144. package/dist/lib/schemas-data/3.2/enums/markdown-flavor.json +1 -1
  1145. package/dist/lib/schemas-data/3.2/enums/match-id-type.json +1 -1
  1146. package/dist/lib/schemas-data/3.2/enums/match-type.json +1 -1
  1147. package/dist/lib/schemas-data/3.2/enums/media-buy-action-mode.json +1 -1
  1148. package/dist/lib/schemas-data/3.2/enums/media-buy-frequency-cap-control-mode.json +1 -1
  1149. package/dist/lib/schemas-data/3.2/enums/media-buy-health.json +1 -1
  1150. package/dist/lib/schemas-data/3.2/enums/media-buy-status.json +1 -1
  1151. package/dist/lib/schemas-data/3.2/enums/media-buy-valid-action.json +1 -1
  1152. package/dist/lib/schemas-data/3.2/enums/metric-scope.json +1 -1
  1153. package/dist/lib/schemas-data/3.2/enums/metric-type.json +1 -1
  1154. package/dist/lib/schemas-data/3.2/enums/metro-system.json +1 -1
  1155. package/dist/lib/schemas-data/3.2/enums/moov-atom-position.json +1 -1
  1156. package/dist/lib/schemas-data/3.2/enums/motion-level.json +1 -1
  1157. package/dist/lib/schemas-data/3.2/enums/notification-type.json +1 -1
  1158. package/dist/lib/schemas-data/3.2/enums/offering-availability-status.json +1 -1
  1159. package/dist/lib/schemas-data/3.2/enums/outcome-target-cost-strength.json +1 -1
  1160. package/dist/lib/schemas-data/3.2/enums/outcome-type.json +1 -1
  1161. package/dist/lib/schemas-data/3.2/enums/pacing.json +1 -1
  1162. package/dist/lib/schemas-data/3.2/enums/payment-terms.json +1 -1
  1163. package/dist/lib/schemas-data/3.2/enums/performance-baseline.json +1 -1
  1164. package/dist/lib/schemas-data/3.2/enums/performance-standard-metric.json +1 -1
  1165. package/dist/lib/schemas-data/3.2/enums/pixel-tracking-event.json +1 -1
  1166. package/dist/lib/schemas-data/3.2/enums/policy-category.json +1 -1
  1167. package/dist/lib/schemas-data/3.2/enums/policy-enforcement.json +1 -1
  1168. package/dist/lib/schemas-data/3.2/enums/postal-system.json +1 -1
  1169. package/dist/lib/schemas-data/3.2/enums/preview-output-format.json +1 -1
  1170. package/dist/lib/schemas-data/3.2/enums/pricing-model.json +1 -1
  1171. package/dist/lib/schemas-data/3.2/enums/pricing-structure.json +1 -1
  1172. package/dist/lib/schemas-data/3.2/enums/principal-kind.json +1 -1
  1173. package/dist/lib/schemas-data/3.2/enums/production-quality.json +1 -1
  1174. package/dist/lib/schemas-data/3.2/enums/property-type.json +1 -1
  1175. package/dist/lib/schemas-data/3.2/enums/proposal-decline-reason.json +1 -1
  1176. package/dist/lib/schemas-data/3.2/enums/proposal-refinement-reason.json +1 -1
  1177. package/dist/lib/schemas-data/3.2/enums/proposal-status.json +1 -1
  1178. package/dist/lib/schemas-data/3.2/enums/publisher-identifier-types.json +1 -1
  1179. package/dist/lib/schemas-data/3.2/enums/purchase-type.json +1 -1
  1180. package/dist/lib/schemas-data/3.2/enums/reach-aggregation.json +1 -1
  1181. package/dist/lib/schemas-data/3.2/enums/reach-unit.json +1 -1
  1182. package/dist/lib/schemas-data/3.2/enums/reporting-destination-setup-state.json +1 -1
  1183. package/dist/lib/schemas-data/3.2/enums/reporting-finality.json +1 -1
  1184. package/dist/lib/schemas-data/3.2/enums/reporting-frequency.json +1 -1
  1185. package/dist/lib/schemas-data/3.2/enums/reporting-health.json +1 -1
  1186. package/dist/lib/schemas-data/3.2/enums/representation-selection-strategy.json +1 -1
  1187. package/dist/lib/schemas-data/3.2/enums/request-signing-error-code.json +1 -1
  1188. package/dist/lib/schemas-data/3.2/enums/response-type.json +1 -1
  1189. package/dist/lib/schemas-data/3.2/enums/restricted-attribute.json +1 -1
  1190. package/dist/lib/schemas-data/3.2/enums/right-type.json +1 -1
  1191. package/dist/lib/schemas-data/3.2/enums/right-use.json +1 -1
  1192. package/dist/lib/schemas-data/3.2/enums/rights-billing-period.json +1 -1
  1193. package/dist/lib/schemas-data/3.2/enums/scan-type.json +1 -1
  1194. package/dist/lib/schemas-data/3.2/enums/seller-policy-decline-reason.json +1 -1
  1195. package/dist/lib/schemas-data/3.2/enums/si-session-status.json +1 -1
  1196. package/dist/lib/schemas-data/3.2/enums/signal-catalog-type.json +1 -1
  1197. package/dist/lib/schemas-data/3.2/enums/signal-source.json +1 -1
  1198. package/dist/lib/schemas-data/3.2/enums/signal-value-type.json +1 -1
  1199. package/dist/lib/schemas-data/3.2/enums/snapshot-unavailable-reason.json +1 -1
  1200. package/dist/lib/schemas-data/3.2/enums/social-placement-surface.json +1 -1
  1201. package/dist/lib/schemas-data/3.2/enums/sort-direction.json +1 -1
  1202. package/dist/lib/schemas-data/3.2/enums/sort-metric.json +1 -1
  1203. package/dist/lib/schemas-data/3.2/enums/special-category.json +1 -1
  1204. package/dist/lib/schemas-data/3.2/enums/specialism.json +1 -1
  1205. package/dist/lib/schemas-data/3.2/enums/sponsored-placement-type.json +1 -1
  1206. package/dist/lib/schemas-data/3.2/enums/talent-role.json +1 -1
  1207. package/dist/lib/schemas-data/3.2/enums/task-status.json +1 -1
  1208. package/dist/lib/schemas-data/3.2/enums/task-type.json +1 -1
  1209. package/dist/lib/schemas-data/3.2/enums/tracker-execution-actor.json +1 -1
  1210. package/dist/lib/schemas-data/3.2/enums/tracker-firing-path.json +1 -1
  1211. package/dist/lib/schemas-data/3.2/enums/transport-mode.json +1 -1
  1212. package/dist/lib/schemas-data/3.2/enums/travel-time-unit.json +1 -1
  1213. package/dist/lib/schemas-data/3.2/enums/uid-type.json +1 -1
  1214. package/dist/lib/schemas-data/3.2/enums/universal-macro.json +1 -1
  1215. package/dist/lib/schemas-data/3.2/enums/update-frequency.json +1 -1
  1216. package/dist/lib/schemas-data/3.2/enums/url-asset-type.json +1 -1
  1217. package/dist/lib/schemas-data/3.2/enums/validation-mode.json +1 -1
  1218. package/dist/lib/schemas-data/3.2/enums/vast-media-delivery-method.json +1 -1
  1219. package/dist/lib/schemas-data/3.2/enums/vast-tracking-event.json +1 -1
  1220. package/dist/lib/schemas-data/3.2/enums/vast-version.json +1 -1
  1221. package/dist/lib/schemas-data/3.2/enums/vendor-relationship.json +1 -1
  1222. package/dist/lib/schemas-data/3.2/enums/video-placement-type.json +1 -1
  1223. package/dist/lib/schemas-data/3.2/enums/view-threshold-basis.json +1 -1
  1224. package/dist/lib/schemas-data/3.2/enums/viewability-standard.json +1 -1
  1225. package/dist/lib/schemas-data/3.2/enums/warning-code.json +1 -1
  1226. package/dist/lib/schemas-data/3.2/enums/watermark-media-type.json +1 -1
  1227. package/dist/lib/schemas-data/3.2/enums/wcag-level.json +1 -1
  1228. package/dist/lib/schemas-data/3.2/enums/webhook-response-type.json +1 -1
  1229. package/dist/lib/schemas-data/3.2/enums/webhook-security-method.json +1 -1
  1230. package/dist/lib/schemas-data/3.2/error-details/accessibility-violation.json +1 -1
  1231. package/dist/lib/schemas-data/3.2/error-details/account-moved.json +2 -2
  1232. package/dist/lib/schemas-data/3.2/error-details/account-setup-required.json +1 -1
  1233. package/dist/lib/schemas-data/3.2/error-details/action-not-allowed.json +5 -5
  1234. package/dist/lib/schemas-data/3.2/error-details/agent-permission-denied.json +1 -1
  1235. package/dist/lib/schemas-data/3.2/error-details/audience-too-small.json +1 -1
  1236. package/dist/lib/schemas-data/3.2/error-details/authorization-required.json +3 -3
  1237. package/dist/lib/schemas-data/3.2/error-details/billing-not-permitted-for-agent.json +3 -3
  1238. package/dist/lib/schemas-data/3.2/error-details/billing-not-supported.json +2 -2
  1239. package/dist/lib/schemas-data/3.2/error-details/budget-too-low.json +1 -1
  1240. package/dist/lib/schemas-data/3.2/error-details/conflict.json +1 -1
  1241. package/dist/lib/schemas-data/3.2/error-details/creative-rejected.json +1 -1
  1242. package/dist/lib/schemas-data/3.2/error-details/creative-representation-unresolved.json +2 -2
  1243. package/dist/lib/schemas-data/3.2/error-details/creative-revision-content-mismatch.json +2 -2
  1244. package/dist/lib/schemas-data/3.2/error-details/execution-requirement-unmet.json +2 -2
  1245. package/dist/lib/schemas-data/3.2/error-details/governance-agent-not-accepted.json +2 -2
  1246. package/dist/lib/schemas-data/3.2/error-details/macro-resolution-failed.json +2 -2
  1247. package/dist/lib/schemas-data/3.2/error-details/policy-violation.json +1 -1
  1248. package/dist/lib/schemas-data/3.2/error-details/rate-limited.json +1 -1
  1249. package/dist/lib/schemas-data/3.2/error-details/requote-required.json +3 -3
  1250. package/dist/lib/schemas-data/3.2/error-details/stale-response.json +1 -1
  1251. package/dist/lib/schemas-data/3.2/error-details/unsupported-refinement-dimension.json +1 -1
  1252. package/dist/lib/schemas-data/3.2/error-details/vast-version-mismatch.json +6 -6
  1253. package/dist/lib/schemas-data/3.2/error-details/vendor-error-codes.json +1 -1
  1254. package/dist/lib/schemas-data/3.2/error-details/version-unsupported.json +2 -2
  1255. package/dist/lib/schemas-data/3.2/extensions/extension-meta.json +1 -1
  1256. package/dist/lib/schemas-data/3.2/extensions/index.json +2 -2
  1257. package/dist/lib/schemas-data/3.2/formats/canonical/_base.json +5 -5
  1258. package/dist/lib/schemas-data/3.2/formats/canonical/agent_placement.json +2 -2
  1259. package/dist/lib/schemas-data/3.2/formats/canonical/audio_daast.json +4 -4
  1260. package/dist/lib/schemas-data/3.2/formats/canonical/audio_hosted.json +2 -2
  1261. package/dist/lib/schemas-data/3.2/formats/canonical/audio_vast.json +5 -5
  1262. package/dist/lib/schemas-data/3.2/formats/canonical/coordinated_placements.json +18 -18
  1263. package/dist/lib/schemas-data/3.2/formats/canonical/display_tag.json +2 -2
  1264. package/dist/lib/schemas-data/3.2/formats/canonical/html5.json +2 -2
  1265. package/dist/lib/schemas-data/3.2/formats/canonical/image.json +5 -5
  1266. package/dist/lib/schemas-data/3.2/formats/canonical/image_carousel.json +2 -2
  1267. package/dist/lib/schemas-data/3.2/formats/canonical/native_in_feed.json +5 -5
  1268. package/dist/lib/schemas-data/3.2/formats/canonical/responsive_creative.json +2 -2
  1269. package/dist/lib/schemas-data/3.2/formats/canonical/seller_rendered_stateful_display.json +3 -3
  1270. package/dist/lib/schemas-data/3.2/formats/canonical/sponsored_placement.json +4 -4
  1271. package/dist/lib/schemas-data/3.2/formats/canonical/video_hosted.json +3 -3
  1272. package/dist/lib/schemas-data/3.2/formats/canonical/video_vast.json +8 -8
  1273. package/dist/lib/schemas-data/3.2/governance/accepted-governance-agents.json +1 -1
  1274. package/dist/lib/schemas-data/3.2/governance/attribute-definition.json +1 -1
  1275. package/dist/lib/schemas-data/3.2/governance/audience-constraints.json +3 -3
  1276. package/dist/lib/schemas-data/3.2/governance/check-governance-request.json +10 -10
  1277. package/dist/lib/schemas-data/3.2/governance/check-governance-response.json +8 -8
  1278. package/dist/lib/schemas-data/3.2/governance/get-plan-audit-logs-request.json +5 -5
  1279. package/dist/lib/schemas-data/3.2/governance/get-plan-audit-logs-response.json +14 -14
  1280. package/dist/lib/schemas-data/3.2/governance/policy-category-definition.json +2 -2
  1281. package/dist/lib/schemas-data/3.2/governance/policy-entry.json +7 -7
  1282. package/dist/lib/schemas-data/3.2/governance/policy-ref.json +1 -1
  1283. package/dist/lib/schemas-data/3.2/governance/report-plan-adjustment-request.json +4 -4
  1284. package/dist/lib/schemas-data/3.2/governance/report-plan-adjustment-response.json +4 -4
  1285. package/dist/lib/schemas-data/3.2/governance/report-plan-outcome-request.json +8 -8
  1286. package/dist/lib/schemas-data/3.2/governance/report-plan-outcome-response.json +5 -5
  1287. package/dist/lib/schemas-data/3.2/governance/reported-outcome-error.json +1 -1
  1288. package/dist/lib/schemas-data/3.2/governance/sync-plans-request.json +14 -14
  1289. package/dist/lib/schemas-data/3.2/governance/sync-plans-response.json +6 -6
  1290. package/dist/lib/schemas-data/3.2/index.json +639 -639
  1291. package/dist/lib/schemas-data/3.2/manifest.json +3 -3
  1292. package/dist/lib/schemas-data/3.2/manifest.schema.json +1 -1
  1293. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/get-account-financials-request.json +31 -31
  1294. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/list-account-changes-request.json +56 -36
  1295. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/list-accounts-request.json +31 -31
  1296. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/report-usage-request.json +31 -31
  1297. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/sync-accounts-request.json +94 -94
  1298. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/account/sync-governance-request.json +30 -30
  1299. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/acquire-rights-request.json +37 -37
  1300. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/get-brand-identity-request.json +5 -5
  1301. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/get-rights-request.json +29 -29
  1302. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/search-brands-request.json +26 -26
  1303. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/update-rights-request.json +33 -33
  1304. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/verify-brand-claim-request.json +4 -4
  1305. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/brand/verify-brand-claims-request.json +4 -4
  1306. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/create-collection-list-request.json +47 -47
  1307. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/delete-collection-list-request.json +30 -30
  1308. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/get-collection-list-request.json +30 -30
  1309. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/list-collection-lists-request.json +31 -31
  1310. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/collection/update-collection-list-request.json +47 -47
  1311. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/compliance/comply-test-controller-request.json +1265 -1211
  1312. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/calibrate-content-request.json +33 -33
  1313. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/create-content-standards-request.json +56 -56
  1314. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/get-content-standards-request.json +5 -5
  1315. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/get-media-buy-artifacts-request.json +30 -30
  1316. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/list-content-standards-request.json +7 -7
  1317. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/update-content-standards-request.json +56 -56
  1318. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/content-standards/validate-content-delivery-request.json +33 -33
  1319. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/get-creative-delivery-request.json +31 -31
  1320. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/get-creative-features-request.json +257 -257
  1321. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/list-creatives-request.json +46 -46
  1322. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/list-transformers-request.json +33 -33
  1323. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/preview-creative-request.json +255 -255
  1324. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/sync-creatives-request.json +270 -270
  1325. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/creative/validate-input-request.json +251 -251
  1326. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/check-governance-request.json +377 -377
  1327. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/get-plan-audit-logs-request.json +6 -6
  1328. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/report-plan-adjustment-request.json +5 -5
  1329. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/report-plan-outcome-request.json +87 -87
  1330. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/governance/sync-plans-request.json +63 -63
  1331. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/accept-proposal-request.json +22 -22
  1332. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/build-creative-request.json +447 -447
  1333. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/buy-products-request.json +279 -279
  1334. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/control-media-buy-request.json +211 -211
  1335. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/create-media-buy-request.json +509 -509
  1336. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/decline-proposals-request.json +13 -13
  1337. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/get-media-buy-delivery-request.json +48 -48
  1338. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/get-media-buys-request.json +33 -33
  1339. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/get-products-request.json +337 -337
  1340. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/get-reporting-status-request.json +58 -58
  1341. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/list-creative-formats-request.json +35 -35
  1342. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/list-products-request.json +324 -324
  1343. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/log-event-request.json +23 -23
  1344. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/provide-performance-feedback-request.json +66 -66
  1345. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/refine-proposals-request.json +325 -325
  1346. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/request-proposals-request.json +326 -326
  1347. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-audiences-request.json +38 -38
  1348. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-catalogs-request.json +51 -51
  1349. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-event-sources-request.json +34 -34
  1350. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-reporting-receipts-request.json +23 -23
  1351. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/sync-reporting-status-request.json +13 -13
  1352. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/media-buy/update-media-buy-request.json +519 -519
  1353. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/get-account-financials-request.json +30 -30
  1354. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/list-accounts-request.json +30 -30
  1355. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/report-usage-request.json +30 -30
  1356. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/sync-accounts-request.json +93 -93
  1357. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/account/sync-governance-request.json +29 -29
  1358. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/creative/list-creatives-request.json +45 -45
  1359. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/creative/sync-creatives-request.json +269 -269
  1360. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/manifest.json +1 -1
  1361. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/accept-proposal-request.json +21 -21
  1362. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/buy-products-request.json +278 -278
  1363. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/control-media-buy-request.json +210 -210
  1364. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/decline-proposals-request.json +12 -12
  1365. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buy-delivery-request.json +47 -47
  1366. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/get-media-buys-request.json +32 -32
  1367. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/get-reporting-status-request.json +57 -57
  1368. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/list-products-request.json +323 -323
  1369. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/log-event-request.json +22 -22
  1370. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/provide-performance-feedback-request.json +65 -65
  1371. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/refine-proposals-request.json +324 -324
  1372. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/request-proposals-request.json +325 -325
  1373. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-audiences-request.json +37 -37
  1374. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-catalogs-request.json +50 -50
  1375. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-event-sources-request.json +33 -33
  1376. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-reporting-receipts-request.json +22 -22
  1377. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/media-buy/sync-reporting-status-request.json +12 -12
  1378. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/get-adcp-capabilities-request.json +4 -4
  1379. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/get-principal-request.json +4 -4
  1380. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/get-task-status-request.json +29 -29
  1381. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/list-tasks-request.json +34 -34
  1382. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/profiles/media-buy/protocol/sync-principal-request.json +27 -27
  1383. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/create-property-list-request.json +47 -47
  1384. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/delete-property-list-request.json +30 -30
  1385. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/get-property-list-request.json +30 -30
  1386. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/list-property-lists-request.json +31 -31
  1387. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/update-property-list-request.json +47 -47
  1388. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/property/validate-property-delivery-request.json +36 -36
  1389. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/get-adcp-capabilities-request.json +5 -5
  1390. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/get-principal-request.json +5 -5
  1391. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/get-task-status-request.json +30 -30
  1392. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/list-tasks-request.json +35 -35
  1393. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/sync-agent-notification-configs-request.json +11 -11
  1394. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/protocol/sync-principal-request.json +28 -28
  1395. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/signals/activate-signal-request.json +31 -31
  1396. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/signals/get-signals-request.json +41 -41
  1397. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/sponsored-intelligence/si-get-offering-request.json +5 -5
  1398. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/sponsored-intelligence/si-initiate-session-request.json +37 -37
  1399. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/sponsored-intelligence/si-send-message-request.json +35 -35
  1400. package/dist/lib/schemas-data/3.2/mcp/2026-07-28/sponsored-intelligence/si-terminate-session-request.json +5 -5
  1401. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-async-response-input-required.json +2 -2
  1402. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-async-response-submitted.json +2 -2
  1403. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-async-response-working.json +2 -2
  1404. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-request.json +14 -9
  1405. package/dist/lib/schemas-data/3.2/media-buy/accept-proposal-response.json +2 -2
  1406. package/dist/lib/schemas-data/3.2/media-buy/acceptance-context.json +3 -3
  1407. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-catalog.json +4 -4
  1408. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-profile-ref.json +1 -1
  1409. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-profile.json +3 -3
  1410. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-requirement.json +3 -3
  1411. package/dist/lib/schemas-data/3.2/media-buy/acceptance-policy-rule.json +3 -3
  1412. package/dist/lib/schemas-data/3.2/media-buy/build-creative-async-response-input-required.json +4 -4
  1413. package/dist/lib/schemas-data/3.2/media-buy/build-creative-async-response-submitted.json +4 -4
  1414. package/dist/lib/schemas-data/3.2/media-buy/build-creative-async-response-working.json +3 -3
  1415. package/dist/lib/schemas-data/3.2/media-buy/build-creative-request.json +19 -19
  1416. package/dist/lib/schemas-data/3.2/media-buy/build-creative-response.json +35 -35
  1417. package/dist/lib/schemas-data/3.2/media-buy/buy-products-async-response-input-required.json +2 -2
  1418. package/dist/lib/schemas-data/3.2/media-buy/buy-products-async-response-submitted.json +2 -2
  1419. package/dist/lib/schemas-data/3.2/media-buy/buy-products-async-response-working.json +2 -2
  1420. package/dist/lib/schemas-data/3.2/media-buy/buy-products-request.json +21 -18
  1421. package/dist/lib/schemas-data/3.2/media-buy/buy-products-response.json +2 -2
  1422. package/dist/lib/schemas-data/3.2/media-buy/change-term-constraints.json +4 -4
  1423. package/dist/lib/schemas-data/3.2/media-buy/change-term.json +6 -6
  1424. package/dist/lib/schemas-data/3.2/media-buy/commercial-terms.json +12 -12
  1425. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-async-response-input-required.json +2 -2
  1426. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-async-response-submitted.json +2 -2
  1427. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-async-response-working.json +2 -2
  1428. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-request.json +16 -13
  1429. package/dist/lib/schemas-data/3.2/media-buy/control-media-buy-response.json +12 -12
  1430. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-async-response-input-required.json +4 -4
  1431. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-async-response-submitted.json +4 -4
  1432. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-async-response-working.json +3 -3
  1433. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-request.json +19 -19
  1434. package/dist/lib/schemas-data/3.2/media-buy/create-media-buy-response.json +23 -23
  1435. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-async-response-input-required.json +2 -2
  1436. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-async-response-submitted.json +2 -2
  1437. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-async-response-working.json +2 -2
  1438. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-request.json +12 -7
  1439. package/dist/lib/schemas-data/3.2/media-buy/decline-proposals-response.json +5 -5
  1440. package/dist/lib/schemas-data/3.2/media-buy/get-media-buy-delivery-request.json +47 -47
  1441. package/dist/lib/schemas-data/3.2/media-buy/get-media-buy-delivery-response.json +81 -81
  1442. package/dist/lib/schemas-data/3.2/media-buy/get-media-buys-request.json +9 -9
  1443. package/dist/lib/schemas-data/3.2/media-buy/get-media-buys-response.json +52 -52
  1444. package/dist/lib/schemas-data/3.2/media-buy/get-products-async-response-input-required.json +4 -4
  1445. package/dist/lib/schemas-data/3.2/media-buy/get-products-async-response-submitted.json +4 -4
  1446. package/dist/lib/schemas-data/3.2/media-buy/get-products-async-response-working.json +3 -3
  1447. package/dist/lib/schemas-data/3.2/media-buy/get-products-rejected.json +5 -5
  1448. package/dist/lib/schemas-data/3.2/media-buy/get-products-request.json +19 -19
  1449. package/dist/lib/schemas-data/3.2/media-buy/get-products-response.json +13 -13
  1450. package/dist/lib/schemas-data/3.2/media-buy/get-products-targeting-resolution.json +3 -3
  1451. package/dist/lib/schemas-data/3.2/media-buy/get-reporting-status-request.json +10 -10
  1452. package/dist/lib/schemas-data/3.2/media-buy/get-reporting-status-response.json +27 -27
  1453. package/dist/lib/schemas-data/3.2/media-buy/legacy-purchase-continuation-input.json +2 -2
  1454. package/dist/lib/schemas-data/3.2/media-buy/list-creative-formats-request.json +14 -14
  1455. package/dist/lib/schemas-data/3.2/media-buy/list-creative-formats-response.json +9 -9
  1456. package/dist/lib/schemas-data/3.2/media-buy/list-products-request.json +12 -9
  1457. package/dist/lib/schemas-data/3.2/media-buy/list-products-response.json +5 -5
  1458. package/dist/lib/schemas-data/3.2/media-buy/log-event-request.json +5 -5
  1459. package/dist/lib/schemas-data/3.2/media-buy/log-event-response.json +8 -8
  1460. package/dist/lib/schemas-data/3.2/media-buy/media-buy-commitment-response.json +13 -13
  1461. package/dist/lib/schemas-data/3.2/media-buy/media-buy-delivery-webhook-result.json +11 -11
  1462. package/dist/lib/schemas-data/3.2/media-buy/outcome-target.json +4 -4
  1463. package/dist/lib/schemas-data/3.2/media-buy/package-control.json +9 -9
  1464. package/dist/lib/schemas-data/3.2/media-buy/package-request.json +31 -31
  1465. package/dist/lib/schemas-data/3.2/media-buy/package-update.json +14 -14
  1466. package/dist/lib/schemas-data/3.2/media-buy/product-discovery-criteria.json +9 -9
  1467. package/dist/lib/schemas-data/3.2/media-buy/product-fields.json +1 -1
  1468. package/dist/lib/schemas-data/3.2/media-buy/product-purchase-input.json +22 -22
  1469. package/dist/lib/schemas-data/3.2/media-buy/product-purchase.json +13 -13
  1470. package/dist/lib/schemas-data/3.2/media-buy/product-refinement.json +1 -1
  1471. package/dist/lib/schemas-data/3.2/media-buy/proposal-budget-constraint.json +1 -1
  1472. package/dist/lib/schemas-data/3.2/media-buy/proposal-decline.json +2 -2
  1473. package/dist/lib/schemas-data/3.2/media-buy/proposal-refinement.json +4 -4
  1474. package/dist/lib/schemas-data/3.2/media-buy/provide-performance-feedback-request.json +5 -5
  1475. package/dist/lib/schemas-data/3.2/media-buy/provide-performance-feedback-response.json +8 -8
  1476. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-async-response-input-required.json +2 -2
  1477. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-async-response-submitted.json +2 -2
  1478. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-async-response-working.json +2 -2
  1479. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-request.json +11 -6
  1480. package/dist/lib/schemas-data/3.2/media-buy/refine-proposals-response.json +12 -12
  1481. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-async-response-input-required.json +2 -2
  1482. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-async-response-submitted.json +2 -2
  1483. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-async-response-working.json +2 -2
  1484. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-request.json +12 -9
  1485. package/dist/lib/schemas-data/3.2/media-buy/request-proposals-response.json +10 -10
  1486. package/dist/lib/schemas-data/3.2/media-buy/sync-audiences-request.json +9 -9
  1487. package/dist/lib/schemas-data/3.2/media-buy/sync-audiences-response.json +15 -15
  1488. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  1489. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-async-response-submitted.json +4 -4
  1490. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-async-response-working.json +3 -3
  1491. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-request.json +10 -10
  1492. package/dist/lib/schemas-data/3.2/media-buy/sync-catalogs-response.json +20 -20
  1493. package/dist/lib/schemas-data/3.2/media-buy/sync-event-sources-request.json +8 -8
  1494. package/dist/lib/schemas-data/3.2/media-buy/sync-event-sources-response.json +14 -14
  1495. package/dist/lib/schemas-data/3.2/media-buy/sync-reporting-receipts-request.json +9 -9
  1496. package/dist/lib/schemas-data/3.2/media-buy/sync-reporting-receipts-response.json +10 -10
  1497. package/dist/lib/schemas-data/3.2/media-buy/sync-reporting-status-request.json +12 -7
  1498. package/dist/lib/schemas-data/3.2/media-buy/sync-reporting-status-response.json +8 -8
  1499. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-async-response-input-required.json +3 -3
  1500. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-async-response-submitted.json +4 -4
  1501. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-async-response-working.json +3 -3
  1502. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-request.json +15 -15
  1503. package/dist/lib/schemas-data/3.2/media-buy/update-media-buy-response.json +21 -21
  1504. package/dist/lib/schemas-data/3.2/pricing-options/cpa-option.json +4 -4
  1505. package/dist/lib/schemas-data/3.2/pricing-options/cpc-option.json +4 -4
  1506. package/dist/lib/schemas-data/3.2/pricing-options/cpcv-option.json +4 -4
  1507. package/dist/lib/schemas-data/3.2/pricing-options/cpm-option.json +4 -4
  1508. package/dist/lib/schemas-data/3.2/pricing-options/cpp-option.json +5 -5
  1509. package/dist/lib/schemas-data/3.2/pricing-options/cpv-option.json +4 -4
  1510. package/dist/lib/schemas-data/3.2/pricing-options/flat-rate-option.json +4 -4
  1511. package/dist/lib/schemas-data/3.2/pricing-options/price-breakdown.json +2 -2
  1512. package/dist/lib/schemas-data/3.2/pricing-options/price-guidance.json +1 -1
  1513. package/dist/lib/schemas-data/3.2/pricing-options/revenue-share-option.json +2 -2
  1514. package/dist/lib/schemas-data/3.2/pricing-options/time-option.json +4 -4
  1515. package/dist/lib/schemas-data/3.2/pricing-options/vcpm-option.json +4 -4
  1516. package/dist/lib/schemas-data/3.2/property/authorization-result.json +1 -1
  1517. package/dist/lib/schemas-data/3.2/property/base-property-source.json +4 -4
  1518. package/dist/lib/schemas-data/3.2/property/create-property-list-request.json +8 -8
  1519. package/dist/lib/schemas-data/3.2/property/create-property-list-response.json +6 -6
  1520. package/dist/lib/schemas-data/3.2/property/delete-property-list-request.json +5 -5
  1521. package/dist/lib/schemas-data/3.2/property/delete-property-list-response.json +5 -5
  1522. package/dist/lib/schemas-data/3.2/property/delivery-record.json +3 -3
  1523. package/dist/lib/schemas-data/3.2/property/get-property-list-request.json +5 -5
  1524. package/dist/lib/schemas-data/3.2/property/get-property-list-response.json +9 -9
  1525. package/dist/lib/schemas-data/3.2/property/list-property-lists-request.json +6 -6
  1526. package/dist/lib/schemas-data/3.2/property/list-property-lists-response.json +7 -7
  1527. package/dist/lib/schemas-data/3.2/property/property-error.json +2 -2
  1528. package/dist/lib/schemas-data/3.2/property/property-feature-definition.json +2 -2
  1529. package/dist/lib/schemas-data/3.2/property/property-feature-result.json +4 -4
  1530. package/dist/lib/schemas-data/3.2/property/property-feature-value.json +2 -2
  1531. package/dist/lib/schemas-data/3.2/property/property-feature.json +1 -1
  1532. package/dist/lib/schemas-data/3.2/property/property-list-changed-webhook.json +2 -2
  1533. package/dist/lib/schemas-data/3.2/property/property-list-filters.json +5 -5
  1534. package/dist/lib/schemas-data/3.2/property/property-list.json +6 -6
  1535. package/dist/lib/schemas-data/3.2/property/update-property-list-request.json +8 -8
  1536. package/dist/lib/schemas-data/3.2/property/update-property-list-response.json +6 -6
  1537. package/dist/lib/schemas-data/3.2/property/validate-property-delivery-request.json +6 -6
  1538. package/dist/lib/schemas-data/3.2/property/validate-property-delivery-response.json +6 -6
  1539. package/dist/lib/schemas-data/3.2/property/validation-result.json +5 -5
  1540. package/dist/lib/schemas-data/3.2/protocol/get-adcp-capabilities-request.json +4 -4
  1541. package/dist/lib/schemas-data/3.2/protocol/get-adcp-capabilities-response.json +53 -53
  1542. package/dist/lib/schemas-data/3.2/protocol/get-principal-request.json +4 -4
  1543. package/dist/lib/schemas-data/3.2/protocol/get-principal-response.json +9 -9
  1544. package/dist/lib/schemas-data/3.2/protocol/get-task-status-request.json +5 -5
  1545. package/dist/lib/schemas-data/3.2/protocol/get-task-status-response.json +10 -10
  1546. package/dist/lib/schemas-data/3.2/protocol/list-tasks-request.json +13 -13
  1547. package/dist/lib/schemas-data/3.2/protocol/list-tasks-response.json +8 -8
  1548. package/dist/lib/schemas-data/3.2/protocol/sync-agent-notification-configs-request.json +5 -5
  1549. package/dist/lib/schemas-data/3.2/protocol/sync-agent-notification-configs-response.json +7 -7
  1550. package/dist/lib/schemas-data/3.2/protocol/sync-principal-request.json +8 -8
  1551. package/dist/lib/schemas-data/3.2/protocol/sync-principal-response.json +10 -10
  1552. package/dist/lib/schemas-data/3.2/registries/v1-canonical-mapping.json +2 -2
  1553. package/dist/lib/schemas-data/3.2/signals/activate-signal-request.json +6 -6
  1554. package/dist/lib/schemas-data/3.2/signals/activate-signal-response.json +9 -9
  1555. package/dist/lib/schemas-data/3.2/signals/get-signals-async-response-submitted.json +4 -4
  1556. package/dist/lib/schemas-data/3.2/signals/get-signals-async-response-working.json +3 -3
  1557. package/dist/lib/schemas-data/3.2/signals/get-signals-request.json +11 -11
  1558. package/dist/lib/schemas-data/3.2/signals/get-signals-response.json +17 -17
  1559. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-capabilities.json +1 -1
  1560. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-context-use.json +1 -1
  1561. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-get-offering-request.json +4 -4
  1562. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-get-offering-response.json +9 -9
  1563. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-identity.json +1 -1
  1564. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-initiate-session-request.json +7 -7
  1565. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-initiate-session-response.json +10 -10
  1566. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-send-message-request.json +5 -5
  1567. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-send-message-response.json +10 -10
  1568. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-sponsored-context-receipt.json +4 -4
  1569. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-sponsored-context.json +4 -4
  1570. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-terminate-session-request.json +4 -4
  1571. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-terminate-session-response.json +7 -7
  1572. package/dist/lib/schemas-data/3.2/sponsored-intelligence/si-ui-element.json +1 -1
  1573. package/dist/lib/schemas-data/3.2/trusted-match/available-package.json +5 -5
  1574. package/dist/lib/schemas-data/3.2/trusted-match/context-match-request.json +5 -5
  1575. package/dist/lib/schemas-data/3.2/trusted-match/context-match-response.json +4 -4
  1576. package/dist/lib/schemas-data/3.2/trusted-match/error.json +1 -1
  1577. package/dist/lib/schemas-data/3.2/trusted-match/identity-match-request.json +4 -4
  1578. package/dist/lib/schemas-data/3.2/trusted-match/identity-match-response.json +4 -4
  1579. package/dist/lib/schemas-data/3.2/trusted-match/offer-price.json +1 -1
  1580. package/dist/lib/schemas-data/3.2/trusted-match/offer.json +5 -5
  1581. package/dist/lib/schemas-data/3.2/trusted-match/provider-context-match-response.json +4 -4
  1582. package/dist/lib/schemas-data/3.2/trusted-match/provider-identity-match-response.json +4 -4
  1583. package/dist/lib/schemas-data/3.2/trusted-match/provider-registration.json +2 -2
  1584. package/dist/lib/schemas-data/3.2/trusted-match/publisher-targeting-kv-config.json +1 -1
  1585. package/dist/lib/schemas-data/3.2/trusted-match/publisher-tmpx-config.json +1 -1
  1586. package/dist/lib/schemas-data/3.2/trusted-match/tmpx-chunk.json +1 -1
  1587. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  1588. package/dist/lib/server/account-sync-contract.d.mts +14 -0
  1589. package/dist/lib/server/account-sync-contract.d.ts +14 -0
  1590. package/dist/lib/server/account-sync-contract.js +225 -0
  1591. package/dist/lib/server/account-sync-contract.mjs +197 -0
  1592. package/dist/lib/server/adcp-server.js +5 -0
  1593. package/dist/lib/server/adcp-server.mjs +10 -0
  1594. package/dist/lib/server/auth-signature.d.mts +10 -0
  1595. package/dist/lib/server/auth-signature.d.ts +10 -0
  1596. package/dist/lib/server/auth-signature.js +61 -2
  1597. package/dist/lib/server/auth-signature.mjs +65 -2
  1598. package/dist/lib/server/auth.d.mts +6 -0
  1599. package/dist/lib/server/auth.d.ts +6 -0
  1600. package/dist/lib/server/auth.js +6 -0
  1601. package/dist/lib/server/auth.mjs +6 -0
  1602. package/dist/lib/server/create-adcp-server.d.mts +19 -5
  1603. package/dist/lib/server/create-adcp-server.d.ts +19 -5
  1604. package/dist/lib/server/create-adcp-server.js +238 -19
  1605. package/dist/lib/server/create-adcp-server.mjs +240 -10
  1606. package/dist/lib/server/decisioning/account.d.mts +24 -1
  1607. package/dist/lib/server/decisioning/account.d.ts +24 -1
  1608. package/dist/lib/server/decisioning/index.d.mts +1 -1
  1609. package/dist/lib/server/decisioning/index.d.ts +1 -1
  1610. package/dist/lib/server/decisioning/runtime/from-platform.d.mts +0 -50
  1611. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +0 -50
  1612. package/dist/lib/server/decisioning/runtime/from-platform.js +61 -11
  1613. package/dist/lib/server/decisioning/runtime/from-platform.mjs +65 -12
  1614. package/dist/lib/server/index.d.mts +2 -0
  1615. package/dist/lib/server/index.d.ts +2 -0
  1616. package/dist/lib/server/index.js +12 -0
  1617. package/dist/lib/server/index.mjs +12 -0
  1618. package/dist/lib/server/notification-subscriptions/runtime.js +9 -1
  1619. package/dist/lib/server/notification-subscriptions/runtime.mjs +9 -1
  1620. package/dist/lib/server/notification-subscriptions/types.d.mts +5 -0
  1621. package/dist/lib/server/notification-subscriptions/types.d.ts +5 -0
  1622. package/dist/lib/server/principal/types.d.mts +1 -1
  1623. package/dist/lib/server/principal/types.d.ts +1 -1
  1624. package/dist/lib/server/serve.js +5 -0
  1625. package/dist/lib/server/serve.mjs +5 -0
  1626. package/dist/lib/server/webhook-delivery/recovery.d.mts +1 -0
  1627. package/dist/lib/server/webhook-delivery/recovery.d.ts +1 -0
  1628. package/dist/lib/server/webhook-delivery/recovery.js +4 -0
  1629. package/dist/lib/server/webhook-delivery/recovery.mjs +4 -0
  1630. package/dist/lib/server/webhook-emitter.d.mts +10 -0
  1631. package/dist/lib/server/webhook-emitter.d.ts +10 -0
  1632. package/dist/lib/server/webhook-emitter.js +22 -0
  1633. package/dist/lib/server/webhook-emitter.mjs +22 -0
  1634. package/dist/lib/server/wire-spec-fields.generated.d.mts +32 -32
  1635. package/dist/lib/server/wire-spec-fields.generated.d.ts +32 -32
  1636. package/dist/lib/server/wire-spec-fields.generated.js +32 -32
  1637. package/dist/lib/server/wire-spec-fields.generated.mjs +32 -32
  1638. package/dist/lib/signing/agent-context.d.mts +0 -5
  1639. package/dist/lib/signing/agent-context.d.ts +0 -5
  1640. package/dist/lib/signing/agent-context.js +9 -1
  1641. package/dist/lib/signing/agent-context.mjs +9 -1
  1642. package/dist/lib/signing/agent-fetch.js +27 -2
  1643. package/dist/lib/signing/agent-fetch.mjs +32 -2
  1644. package/dist/lib/signing/agent-resolver/canonicalize.d.mts +10 -15
  1645. package/dist/lib/signing/agent-resolver/canonicalize.d.ts +10 -15
  1646. package/dist/lib/signing/agent-resolver/canonicalize.js +17 -5
  1647. package/dist/lib/signing/agent-resolver/canonicalize.mjs +16 -5
  1648. package/dist/lib/signing/agent-resolver/index.d.mts +1 -0
  1649. package/dist/lib/signing/agent-resolver/index.d.ts +1 -0
  1650. package/dist/lib/signing/agent-resolver/index.js +5 -0
  1651. package/dist/lib/signing/agent-resolver/index.mjs +3 -0
  1652. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.mts +3 -2
  1653. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.d.ts +3 -2
  1654. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.js +30 -3
  1655. package/dist/lib/signing/agent-resolver/resolved-agent-jwks.mjs +30 -3
  1656. package/dist/lib/signing/agent-resolver/strict-json.d.mts +2 -2
  1657. package/dist/lib/signing/agent-resolver/strict-json.d.ts +2 -2
  1658. package/dist/lib/signing/agent-resolver/strict-json.js +5 -3
  1659. package/dist/lib/signing/agent-resolver/strict-json.mjs +5 -3
  1660. package/dist/lib/signing/brand-jwks.d.mts +2 -2
  1661. package/dist/lib/signing/brand-jwks.d.ts +2 -2
  1662. package/dist/lib/signing/brand-jwks.js +4 -4
  1663. package/dist/lib/signing/brand-jwks.mjs +4 -4
  1664. package/dist/lib/signing/client.d.mts +1 -0
  1665. package/dist/lib/signing/client.d.ts +1 -0
  1666. package/dist/lib/signing/client.js +5 -0
  1667. package/dist/lib/signing/client.mjs +3 -0
  1668. package/dist/lib/signing/jwks-https.d.mts +1 -1
  1669. package/dist/lib/signing/jwks-https.d.ts +1 -1
  1670. package/dist/lib/signing/jwks-https.js +1 -1
  1671. package/dist/lib/signing/jwks-https.mjs +1 -1
  1672. package/dist/lib/signing/jwks.d.mts +11 -3
  1673. package/dist/lib/signing/jwks.d.ts +11 -3
  1674. package/dist/lib/signing/jwks.js +1 -1
  1675. package/dist/lib/signing/jwks.mjs +1 -1
  1676. package/dist/lib/signing/parser.d.mts +1 -1
  1677. package/dist/lib/signing/parser.d.ts +1 -1
  1678. package/dist/lib/signing/parser.js +5 -3
  1679. package/dist/lib/signing/parser.mjs +6 -4
  1680. package/dist/lib/signing/revocation.d.mts +4 -1
  1681. package/dist/lib/signing/revocation.d.ts +4 -1
  1682. package/dist/lib/signing/revocation.js +33 -3
  1683. package/dist/lib/signing/revocation.mjs +31 -2
  1684. package/dist/lib/signing/server.d.mts +1 -1
  1685. package/dist/lib/signing/server.d.ts +1 -1
  1686. package/dist/lib/signing/server.js +4 -0
  1687. package/dist/lib/signing/server.mjs +4 -0
  1688. package/dist/lib/signing/types.d.mts +3 -0
  1689. package/dist/lib/signing/types.d.ts +3 -0
  1690. package/dist/lib/signing/verifier.js +8 -0
  1691. package/dist/lib/signing/verifier.mjs +9 -0
  1692. package/dist/lib/signing/web-bot-auth.d.mts +117 -0
  1693. package/dist/lib/signing/web-bot-auth.d.ts +117 -0
  1694. package/dist/lib/signing/web-bot-auth.js +660 -0
  1695. package/dist/lib/signing/web-bot-auth.mjs +624 -0
  1696. package/dist/lib/testing/client.d.mts +1 -4
  1697. package/dist/lib/testing/client.d.ts +1 -4
  1698. package/dist/lib/testing/client.js +141 -20
  1699. package/dist/lib/testing/client.mjs +137 -19
  1700. package/dist/lib/testing/compliance/comply.js +29 -10
  1701. package/dist/lib/testing/compliance/comply.mjs +37 -11
  1702. package/dist/lib/testing/storyboard/account-sync-contract.d.mts +3 -0
  1703. package/dist/lib/testing/storyboard/account-sync-contract.d.ts +3 -0
  1704. package/dist/lib/testing/storyboard/account-sync-contract.js +79 -0
  1705. package/dist/lib/testing/storyboard/account-sync-contract.mjs +55 -0
  1706. package/dist/lib/testing/storyboard/default-invariants.js +2 -0
  1707. package/dist/lib/testing/storyboard/default-invariants.mjs +2 -0
  1708. package/dist/lib/testing/storyboard/request-signing/builder.js +111 -12
  1709. package/dist/lib/testing/storyboard/request-signing/builder.mjs +112 -13
  1710. package/dist/lib/testing/storyboard/request-signing/grader.js +37 -7
  1711. package/dist/lib/testing/storyboard/request-signing/grader.mjs +37 -7
  1712. package/dist/lib/testing/storyboard/runner.js +23 -8
  1713. package/dist/lib/testing/storyboard/runner.mjs +24 -8
  1714. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  1715. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  1716. package/dist/lib/types/adcp.d.mts +4 -0
  1717. package/dist/lib/types/adcp.d.ts +4 -0
  1718. package/dist/lib/types/comply-test-controller.d.ts +1 -1
  1719. package/dist/lib/types/core.generated.d.mts +23 -15
  1720. package/dist/lib/types/core.generated.d.ts +23 -15
  1721. package/dist/lib/types/create-media-buy.d.ts +12 -4
  1722. package/dist/lib/types/get-media-buys.d.ts +11 -3
  1723. package/dist/lib/types/get-reporting-status.d.ts +11 -3
  1724. package/dist/lib/types/inline-enums.generated.d.mts +1 -1
  1725. package/dist/lib/types/inline-enums.generated.d.ts +1 -1
  1726. package/dist/lib/types/inline-enums.generated.js +1 -1
  1727. package/dist/lib/types/inline-enums.generated.mjs +1 -1
  1728. package/dist/lib/types/list-account-changes.d.ts +2 -6
  1729. package/dist/lib/types/list-accounts.d.ts +11 -3
  1730. package/dist/lib/types/list-creatives.d.ts +11 -3
  1731. package/dist/lib/types/manifest.generated.d.mts +3 -3
  1732. package/dist/lib/types/manifest.generated.d.ts +3 -3
  1733. package/dist/lib/types/per-tool-index.json +1 -1
  1734. package/dist/lib/types/schemas.generated.d.ts +186 -50
  1735. package/dist/lib/types/schemas.generated.js +52 -30
  1736. package/dist/lib/types/schemas.generated.mjs +52 -30
  1737. package/dist/lib/types/search-brands.d.ts +1 -1
  1738. package/dist/lib/types/sync-accounts.d.ts +11 -3
  1739. package/dist/lib/types/sync-creatives.d.ts +11 -3
  1740. package/dist/lib/types/tools.generated.d.mts +13 -9
  1741. package/dist/lib/types/tools.generated.d.ts +13 -9
  1742. package/dist/lib/types/update-media-buy.d.ts +1 -1
  1743. package/dist/lib/types/verify-brand-claim.d.ts +1 -1
  1744. package/dist/lib/utils/capabilities.d.mts +3 -0
  1745. package/dist/lib/utils/capabilities.d.ts +3 -0
  1746. package/dist/lib/utils/capabilities.js +8 -0
  1747. package/dist/lib/utils/capabilities.mjs +8 -0
  1748. package/dist/lib/utils/reporting-status-response.js +10 -0
  1749. package/dist/lib/utils/reporting-status-response.mjs +10 -0
  1750. package/dist/lib/v2/projection/creative-delivery.d.mts +5 -9
  1751. package/dist/lib/v2/projection/creative-delivery.d.ts +5 -9
  1752. package/dist/lib/v2/projection/creative-delivery.js +26 -10
  1753. package/dist/lib/v2/projection/creative-delivery.mjs +26 -10
  1754. package/dist/lib/v2/projection/index.d.mts +1 -1
  1755. package/dist/lib/v2/projection/index.d.ts +1 -1
  1756. package/dist/lib/v2/projection/legacy-routes.d.mts +65 -5
  1757. package/dist/lib/v2/projection/legacy-routes.d.ts +65 -5
  1758. package/dist/lib/v2/projection/legacy-routes.js +88 -5
  1759. package/dist/lib/v2/projection/legacy-routes.mjs +84 -5
  1760. package/dist/lib/validation/schema-loader.d.mts +2 -0
  1761. package/dist/lib/validation/schema-loader.d.ts +2 -0
  1762. package/dist/lib/validation/schema-loader.js +43 -4
  1763. package/dist/lib/validation/schema-loader.mjs +39 -3
  1764. package/dist/lib/validation/sync-creatives.d.mts +6 -3
  1765. package/dist/lib/validation/sync-creatives.d.ts +6 -3
  1766. package/dist/lib/version.d.mts +7 -7
  1767. package/dist/lib/version.d.ts +7 -7
  1768. package/dist/lib/version.js +7 -6
  1769. package/dist/lib/version.mjs +7 -6
  1770. package/docs/TYPE-SUMMARY.md +2 -2
  1771. package/docs/guides/CONFORMANCE.md +1 -1
  1772. package/docs/guides/DISCOVERY-CACHE-AND-SESSION-REUSE.md +4 -0
  1773. package/docs/guides/FIRST-CALL-TO-A-SELLER.md +66 -7
  1774. package/docs/guides/REPORTING-LEDGER-CUTOVER.md +1 -1
  1775. package/docs/guides/REPORTING-LEDGER.md +313 -33
  1776. package/docs/guides/REPORTING-OPERATIONS.md +229 -7
  1777. package/docs/guides/REPORTING-STABILITY.md +76 -0
  1778. package/docs/guides/account-resolution.md +101 -0
  1779. package/docs/llms.txt +5 -4
  1780. package/docs/migration-12-to-13.md +16 -0
  1781. package/docs/migration-14.x-rc-worksheet.md +8 -8
  1782. package/docs/migration-agent-identity-3.3.md +355 -0
  1783. package/docs/migration-agent-resolution-3.3.md +5 -0
  1784. package/docs/migration-reporting-row-storage-alignment.md +137 -0
  1785. package/examples/storyboards/account-sync-contract.yaml +57 -0
  1786. package/package.json +18 -3
  1787. package/compliance/cache/3.2.3/domains/creative/index.yaml +0 -367
  1788. package/compliance/cache/3.2.3/domains/creative/scenarios/billing_out_of_band.yaml +0 -178
  1789. package/compliance/cache/3.2.3/domains/creative/scenarios/canonical_supported_formats.yaml +0 -232
  1790. package/compliance/cache/3.2.3/domains/creative/scenarios/creative_features_idempotency.yaml +0 -672
  1791. package/compliance/cache/3.2.3/domains/creative/scenarios/creative_revision_identity.yaml +0 -217
  1792. package/compliance/cache/3.2.3/domains/creative/scenarios/evaluator_auth.yaml +0 -586
  1793. package/compliance/cache/3.2.3/domains/creative/scenarios/list_creatives_filter_behavior.yaml +0 -130
  1794. package/compliance/cache/3.2.3/domains/creative/scenarios/native_in_feed.yaml +0 -554
  1795. package/compliance/cache/3.2.3/domains/creative/scenarios/native_localization.yaml +0 -390
  1796. package/compliance/cache/3.2.3/domains/governance/index.yaml +0 -705
  1797. package/compliance/cache/3.2.3/domains/governance/scenarios/property_list_change_webhook_signing.yaml +0 -162
  1798. package/compliance/cache/3.2.3/domains/media-buy/index.yaml +0 -862
  1799. package/compliance/cache/3.2.3/domains/media-buy/scenarios/advanced_delivery_reporting.yaml +0 -266
  1800. package/compliance/cache/3.2.3/domains/media-buy/scenarios/audience_activation_discovery.yaml +0 -273
  1801. package/compliance/cache/3.2.3/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -385
  1802. package/compliance/cache/3.2.3/domains/media-buy/scenarios/availability_windows.yaml +0 -443
  1803. package/compliance/cache/3.2.3/domains/media-buy/scenarios/available_actions.yaml +0 -689
  1804. package/compliance/cache/3.2.3/domains/media-buy/scenarios/bidding_cost_binding.yaml +0 -152
  1805. package/compliance/cache/3.2.3/domains/media-buy/scenarios/bidding_policy_placement.yaml +0 -299
  1806. package/compliance/cache/3.2.3/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -360
  1807. package/compliance/cache/3.2.3/domains/media-buy/scenarios/canonical_formats.yaml +0 -1288
  1808. package/compliance/cache/3.2.3/domains/media-buy/scenarios/catalog_item_availability_updates.yaml +0 -935
  1809. package/compliance/cache/3.2.3/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -269
  1810. package/compliance/cache/3.2.3/domains/media-buy/scenarios/collection_selection.yaml +0 -472
  1811. package/compliance/cache/3.2.3/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -348
  1812. package/compliance/cache/3.2.3/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -265
  1813. package/compliance/cache/3.2.3/domains/media-buy/scenarios/create_media_buy_async_lifecycle.yaml +0 -430
  1814. package/compliance/cache/3.2.3/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -460
  1815. package/compliance/cache/3.2.3/domains/media-buy/scenarios/creative_reception.yaml +0 -249
  1816. package/compliance/cache/3.2.3/domains/media-buy/scenarios/cross_path_targeting_provenance.yaml +0 -443
  1817. package/compliance/cache/3.2.3/domains/media-buy/scenarios/delivery_reporting.yaml +0 -407
  1818. package/compliance/cache/3.2.3/domains/media-buy/scenarios/demographic_targeting.yaml +0 -651
  1819. package/compliance/cache/3.2.3/domains/media-buy/scenarios/dependency_impairment.yaml +0 -747
  1820. package/compliance/cache/3.2.3/domains/media-buy/scenarios/dependency_impairment_audience.yaml +0 -350
  1821. package/compliance/cache/3.2.3/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -1004
  1822. package/compliance/cache/3.2.3/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -404
  1823. package/compliance/cache/3.2.3/domains/media-buy/scenarios/external_audience_source_binding.yaml +0 -330
  1824. package/compliance/cache/3.2.3/domains/media-buy/scenarios/frequency_cap_capability_updates.yaml +0 -327
  1825. package/compliance/cache/3.2.3/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -314
  1826. package/compliance/cache/3.2.3/domains/media-buy/scenarios/geo_place_targeting.yaml +0 -1047
  1827. package/compliance/cache/3.2.3/domains/media-buy/scenarios/geo_region_all_values_support.yaml +0 -143
  1828. package/compliance/cache/3.2.3/domains/media-buy/scenarios/geo_region_exclusion_support.yaml +0 -225
  1829. package/compliance/cache/3.2.3/domains/media-buy/scenarios/geo_region_targeting.yaml +0 -999
  1830. package/compliance/cache/3.2.3/domains/media-buy/scenarios/get_products_async.yaml +0 -550
  1831. package/compliance/cache/3.2.3/domains/media-buy/scenarios/get_products_rejected.yaml +0 -190
  1832. package/compliance/cache/3.2.3/domains/media-buy/scenarios/governance_approved.yaml +0 -446
  1833. package/compliance/cache/3.2.3/domains/media-buy/scenarios/governance_conditions.yaml +0 -551
  1834. package/compliance/cache/3.2.3/domains/media-buy/scenarios/governance_denied.yaml +0 -397
  1835. package/compliance/cache/3.2.3/domains/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -599
  1836. package/compliance/cache/3.2.3/domains/media-buy/scenarios/invalid_transitions.yaml +0 -326
  1837. package/compliance/cache/3.2.3/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -170
  1838. package/compliance/cache/3.2.3/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -303
  1839. package/compliance/cache/3.2.3/domains/media-buy/scenarios/measurement_accountability.yaml +0 -270
  1840. package/compliance/cache/3.2.3/domains/media-buy/scenarios/measurement_terms_accepted.yaml +0 -170
  1841. package/compliance/cache/3.2.3/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -168
  1842. package/compliance/cache/3.2.3/domains/media-buy/scenarios/media_buy_frequency_cap_readback.yaml +0 -330
  1843. package/compliance/cache/3.2.3/domains/media-buy/scenarios/media_buy_frequency_cap_updates.yaml +0 -432
  1844. package/compliance/cache/3.2.3/domains/media-buy/scenarios/metric_container_subsumption.yaml +0 -363
  1845. package/compliance/cache/3.2.3/domains/media-buy/scenarios/outcome_target.yaml +0 -514
  1846. package/compliance/cache/3.2.3/domains/media-buy/scenarios/outcome_target_list_products_inert.yaml +0 -93
  1847. package/compliance/cache/3.2.3/domains/media-buy/scenarios/owner_sold_channel_carriage.yaml +0 -386
  1848. package/compliance/cache/3.2.3/domains/media-buy/scenarios/package_automatic_bidding.yaml +0 -152
  1849. package/compliance/cache/3.2.3/domains/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -128
  1850. package/compliance/cache/3.2.3/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -341
  1851. package/compliance/cache/3.2.3/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -503
  1852. package/compliance/cache/3.2.3/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -438
  1853. package/compliance/cache/3.2.3/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -480
  1854. package/compliance/cache/3.2.3/domains/media-buy/scenarios/portfolio_routing_scope.yaml +0 -167
  1855. package/compliance/cache/3.2.3/domains/media-buy/scenarios/pricing_currency_filter.yaml +0 -194
  1856. package/compliance/cache/3.2.3/domains/media-buy/scenarios/product_coverage_filters.yaml +0 -146
  1857. package/compliance/cache/3.2.3/domains/media-buy/scenarios/product_filter_behavior.yaml +0 -204
  1858. package/compliance/cache/3.2.3/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -405
  1859. package/compliance/cache/3.2.3/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -358
  1860. package/compliance/cache/3.2.3/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -546
  1861. package/compliance/cache/3.2.3/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -320
  1862. package/compliance/cache/3.2.3/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -827
  1863. package/compliance/cache/3.2.3/domains/media-buy/scenarios/read_filter_behavior.yaml +0 -300
  1864. package/compliance/cache/3.2.3/domains/media-buy/scenarios/revenue_share_pricing.yaml +0 -346
  1865. package/compliance/cache/3.2.3/domains/media-buy/scenarios/seller_optimized_budget.yaml +0 -1217
  1866. package/compliance/cache/3.2.3/domains/media-buy/scenarios/seller_optimized_min_spend_target_exceeds_package_cap.yaml +0 -175
  1867. package/compliance/cache/3.2.3/domains/media-buy/scenarios/seller_optimized_proposal_package_pacing.yaml +0 -297
  1868. package/compliance/cache/3.2.3/domains/media-buy/scenarios/targeting_aware_discovery.yaml +0 -1698
  1869. package/compliance/cache/3.2.3/domains/media-buy/scenarios/total_budget_redistribution.yaml +0 -196
  1870. package/compliance/cache/3.2.3/domains/media-buy/scenarios/typed_proposal_negotiation.yaml +0 -771
  1871. package/compliance/cache/3.2.3/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -388
  1872. package/compliance/cache/3.2.3/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -311
  1873. package/compliance/cache/3.2.3/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -589
  1874. package/compliance/cache/3.2.3/domains/media-buy/state-machine.yaml +0 -565
  1875. package/compliance/cache/3.2.3/domains/signals/index.yaml +0 -174
  1876. package/compliance/cache/3.2.3/domains/signals/scenarios/get_signals_async.yaml +0 -455
  1877. package/compliance/cache/3.2.3/index.json +0 -508
  1878. package/compliance/cache/3.2.3/protocols/creative/index.yaml +0 -367
  1879. package/compliance/cache/3.2.3/protocols/creative/scenarios/billing_out_of_band.yaml +0 -178
  1880. package/compliance/cache/3.2.3/protocols/creative/scenarios/canonical_supported_formats.yaml +0 -232
  1881. package/compliance/cache/3.2.3/protocols/creative/scenarios/creative_features_idempotency.yaml +0 -672
  1882. package/compliance/cache/3.2.3/protocols/creative/scenarios/creative_revision_identity.yaml +0 -217
  1883. package/compliance/cache/3.2.3/protocols/creative/scenarios/evaluator_auth.yaml +0 -586
  1884. package/compliance/cache/3.2.3/protocols/creative/scenarios/list_creatives_filter_behavior.yaml +0 -130
  1885. package/compliance/cache/3.2.3/protocols/creative/scenarios/native_in_feed.yaml +0 -554
  1886. package/compliance/cache/3.2.3/protocols/creative/scenarios/native_localization.yaml +0 -390
  1887. package/compliance/cache/3.2.3/protocols/governance/index.yaml +0 -705
  1888. package/compliance/cache/3.2.3/protocols/governance/scenarios/property_list_change_webhook_signing.yaml +0 -162
  1889. package/compliance/cache/3.2.3/protocols/media-buy/index.yaml +0 -862
  1890. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/advanced_delivery_reporting.yaml +0 -266
  1891. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/audience_activation_discovery.yaml +0 -273
  1892. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -385
  1893. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/availability_windows.yaml +0 -443
  1894. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/available_actions.yaml +0 -689
  1895. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/bidding_cost_binding.yaml +0 -152
  1896. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/bidding_policy_placement.yaml +0 -299
  1897. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -360
  1898. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/canonical_formats.yaml +0 -1288
  1899. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/catalog_item_availability_updates.yaml +0 -935
  1900. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -269
  1901. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/collection_selection.yaml +0 -472
  1902. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -348
  1903. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -265
  1904. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/create_media_buy_async_lifecycle.yaml +0 -430
  1905. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -460
  1906. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/creative_reception.yaml +0 -249
  1907. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/cross_path_targeting_provenance.yaml +0 -443
  1908. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -407
  1909. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/demographic_targeting.yaml +0 -651
  1910. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -747
  1911. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/dependency_impairment_audience.yaml +0 -350
  1912. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -1004
  1913. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -404
  1914. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/external_audience_source_binding.yaml +0 -330
  1915. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/frequency_cap_capability_updates.yaml +0 -327
  1916. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -314
  1917. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/geo_place_targeting.yaml +0 -1047
  1918. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/geo_region_all_values_support.yaml +0 -143
  1919. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/geo_region_exclusion_support.yaml +0 -225
  1920. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/geo_region_targeting.yaml +0 -999
  1921. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/get_products_async.yaml +0 -550
  1922. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/get_products_rejected.yaml +0 -190
  1923. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/governance_approved.yaml +0 -446
  1924. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/governance_conditions.yaml +0 -551
  1925. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/governance_denied.yaml +0 -397
  1926. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/inline_creatives_without_sync.yaml +0 -599
  1927. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -326
  1928. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -170
  1929. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -303
  1930. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -270
  1931. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/measurement_terms_accepted.yaml +0 -170
  1932. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -168
  1933. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/media_buy_frequency_cap_readback.yaml +0 -330
  1934. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/media_buy_frequency_cap_updates.yaml +0 -432
  1935. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/metric_container_subsumption.yaml +0 -363
  1936. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/outcome_target.yaml +0 -514
  1937. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/outcome_target_list_products_inert.yaml +0 -93
  1938. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/owner_sold_channel_carriage.yaml +0 -386
  1939. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/package_automatic_bidding.yaml +0 -152
  1940. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/package_correlation_legacy_fallback.yaml +0 -128
  1941. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -341
  1942. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -503
  1943. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -438
  1944. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -480
  1945. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/portfolio_routing_scope.yaml +0 -167
  1946. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/pricing_currency_filter.yaml +0 -194
  1947. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/product_coverage_filters.yaml +0 -146
  1948. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/product_filter_behavior.yaml +0 -204
  1949. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -405
  1950. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -358
  1951. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -546
  1952. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -320
  1953. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -827
  1954. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/read_filter_behavior.yaml +0 -300
  1955. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/revenue_share_pricing.yaml +0 -346
  1956. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/seller_optimized_budget.yaml +0 -1217
  1957. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/seller_optimized_min_spend_target_exceeds_package_cap.yaml +0 -175
  1958. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/seller_optimized_proposal_package_pacing.yaml +0 -297
  1959. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/targeting_aware_discovery.yaml +0 -1698
  1960. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/total_budget_redistribution.yaml +0 -196
  1961. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/typed_proposal_negotiation.yaml +0 -771
  1962. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -388
  1963. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -311
  1964. package/compliance/cache/3.2.3/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -589
  1965. package/compliance/cache/3.2.3/protocols/media-buy/state-machine.yaml +0 -565
  1966. package/compliance/cache/3.2.3/protocols/signals/index.yaml +0 -174
  1967. package/compliance/cache/3.2.3/protocols/signals/scenarios/get_signals_async.yaml +0 -455
  1968. package/compliance/cache/3.2.3/specialisms/audience-sync/index.yaml +0 -351
  1969. package/compliance/cache/3.2.3/specialisms/brand-rights/index.yaml +0 -433
  1970. package/compliance/cache/3.2.3/specialisms/brand-rights/scenarios/update_rights_lifecycle.yaml +0 -161
  1971. package/compliance/cache/3.2.3/specialisms/collection-lists/index.yaml +0 -409
  1972. package/compliance/cache/3.2.3/specialisms/content-standards/index.yaml +0 -722
  1973. package/compliance/cache/3.2.3/specialisms/creative-ad-server/index.yaml +0 -422
  1974. package/compliance/cache/3.2.3/specialisms/creative-generative/generative-seller.yaml +0 -698
  1975. package/compliance/cache/3.2.3/specialisms/creative-generative/index.yaml +0 -739
  1976. package/compliance/cache/3.2.3/specialisms/creative-template/index.yaml +0 -437
  1977. package/compliance/cache/3.2.3/specialisms/creative-transformers/index.yaml +0 -472
  1978. package/compliance/cache/3.2.3/specialisms/governance-delivery-monitor/index.yaml +0 -1371
  1979. package/compliance/cache/3.2.3/specialisms/governance-spend-authority/denied.yaml +0 -248
  1980. package/compliance/cache/3.2.3/specialisms/governance-spend-authority/index.yaml +0 -480
  1981. package/compliance/cache/3.2.3/specialisms/property-lists/index.yaml +0 -541
  1982. package/compliance/cache/3.2.3/specialisms/sales-broadcast-tv/index.yaml +0 -679
  1983. package/compliance/cache/3.2.3/specialisms/sales-dooh/index.yaml +0 -736
  1984. package/compliance/cache/3.2.3/specialisms/sales-guaranteed/index.yaml +0 -711
  1985. package/compliance/cache/3.2.3/specialisms/sales-non-guaranteed/index.yaml +0 -654
  1986. package/compliance/cache/3.2.3/specialisms/signal-marketplace/index.yaml +0 -468
  1987. package/compliance/cache/3.2.3/specialisms/signal-owned/index.yaml +0 -232
  1988. package/compliance/cache/3.2.3/test-vectors/request-signing/README.md +0 -292
  1989. package/compliance/cache/3.2.3/test-vectors/request-signing/canonicalization.json +0 -286
  1990. package/compliance/cache/3.2.3/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -32
  1991. package/compliance/cache/3.2.3/universal/billing-gate-dispatch.yaml +0 -571
  1992. package/compliance/cache/3.2.3/universal/collection-lists-pagination-integrity.yaml +0 -338
  1993. package/compliance/cache/3.2.3/universal/content-standards-pagination-integrity.yaml +0 -358
  1994. package/compliance/cache/3.2.3/universal/deterministic-testing.yaml +0 -1468
  1995. package/compliance/cache/3.2.3/universal/error-compliance-signals.yaml +0 -414
  1996. package/compliance/cache/3.2.3/universal/error-compliance.yaml +0 -574
  1997. package/compliance/cache/3.2.3/universal/get-signals-pagination-integrity.yaml +0 -238
  1998. package/compliance/cache/3.2.3/universal/idempotency.yaml +0 -915
  1999. package/compliance/cache/3.2.3/universal/property-lists-pagination-integrity.yaml +0 -339
  2000. package/compliance/cache/3.2.3/universal/read-tool-idempotency.yaml +0 -342
  2001. package/compliance/cache/3.2.3/universal/schema-validation-signals.yaml +0 -209
  2002. package/compliance/cache/3.2.3/universal/schema-validation.yaml +0 -439
  2003. package/compliance/cache/3.2.3/universal/signed-requests.yaml +0 -221
  2004. package/compliance/cache/3.2.3/universal/stale-response-advisory.yaml +0 -317
  2005. package/compliance/cache/3.2.3/universal/storyboard-schema.yaml +0 -2745
  2006. package/compliance/cache/3.2.3/universal/webhook-emission.yaml +0 -943
  2007. package/compliance/cache/3.2.3/universal/wholesale-feed-products-scope-isolation.yaml +0 -153
  2008. package/compliance/cache/3.2.3/universal/wholesale-feed-products.yaml +0 -182
  2009. package/compliance/cache/3.2.3/universal/wholesale-feed-signals-scope-isolation.yaml +0 -151
  2010. package/compliance/cache/3.2.3/universal/wholesale-feed-signals.yaml +0 -177
  2011. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/brand/index.yaml +0 -0
  2012. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  2013. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/brand/scenarios/signed_response_envelope_vectors.yaml +0 -0
  2014. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/brand/scenarios/single_side_trust_extension.yaml +0 -0
  2015. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/creative/scenarios/asset_type_filtering.yaml +0 -0
  2016. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  2017. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/creative/scenarios/policy_backed_rejections.yaml +0 -0
  2018. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/governance/scenarios/failed_outcome_audit_persistence.yaml +0 -0
  2019. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/acceptance_policy_discovery.yaml +0 -0
  2020. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/account_change_feed.yaml +0 -0
  2021. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/account_timezone_buyer_selected.yaml +0 -0
  2022. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/account_timezone_seller_assigned.yaml +0 -0
  2023. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/account_timezone_seller_fixed.yaml +0 -0
  2024. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/budget_cap_timezone_account.yaml +0 -0
  2025. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/budget_cap_timezone_fixed.yaml +0 -0
  2026. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/budget_cap_timezone_override.yaml +0 -0
  2027. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/budget_cap_timezone_override_rejected.yaml +0 -0
  2028. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/change_rights_state_projection.yaml +0 -0
  2029. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/compact_direct_buy_lifecycle.yaml +0 -0
  2030. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/compact_product_lifecycle.yaml +0 -0
  2031. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/declined_proposal_execution.yaml +0 -0
  2032. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/declined_proposal_refinement.yaml +0 -0
  2033. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/expired_proposal_execution.yaml +0 -0
  2034. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/governance_agent_binding_acceptance.yaml +0 -0
  2035. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  2036. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  2037. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  2038. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  2039. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  2040. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/refine_frequency_cap_negotiation.yaml +0 -0
  2041. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  2042. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/sponsored-intelligence/index.yaml +0 -0
  2043. /package/compliance/cache/{3.2.3 → 3.2.4}/domains/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  2044. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/brand/index.yaml +0 -0
  2045. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -0
  2046. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/brand/scenarios/signed_response_envelope_vectors.yaml +0 -0
  2047. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -0
  2048. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/creative/scenarios/asset_type_filtering.yaml +0 -0
  2049. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -0
  2050. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/creative/scenarios/policy_backed_rejections.yaml +0 -0
  2051. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/governance/scenarios/failed_outcome_audit_persistence.yaml +0 -0
  2052. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/acceptance_policy_discovery.yaml +0 -0
  2053. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/account_change_feed.yaml +0 -0
  2054. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/account_timezone_buyer_selected.yaml +0 -0
  2055. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/account_timezone_seller_assigned.yaml +0 -0
  2056. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/account_timezone_seller_fixed.yaml +0 -0
  2057. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/budget_cap_timezone_account.yaml +0 -0
  2058. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/budget_cap_timezone_fixed.yaml +0 -0
  2059. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/budget_cap_timezone_override.yaml +0 -0
  2060. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/budget_cap_timezone_override_rejected.yaml +0 -0
  2061. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/change_rights_state_projection.yaml +0 -0
  2062. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/compact_direct_buy_lifecycle.yaml +0 -0
  2063. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/compact_product_lifecycle.yaml +0 -0
  2064. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/declined_proposal_execution.yaml +0 -0
  2065. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/declined_proposal_refinement.yaml +0 -0
  2066. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/expired_proposal_execution.yaml +0 -0
  2067. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/governance_agent_binding_acceptance.yaml +0 -0
  2068. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  2069. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  2070. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -0
  2071. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -0
  2072. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -0
  2073. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/refine_frequency_cap_negotiation.yaml +0 -0
  2074. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  2075. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/sponsored-intelligence/index.yaml +0 -0
  2076. /package/compliance/cache/{3.2.3 → 3.2.4}/protocols/sponsored-intelligence/sponsored-context-accountability.yaml +0 -0
  2077. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/brand-rights/scenarios/governance_approved.yaml +0 -0
  2078. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  2079. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-activation/index.yaml +0 -0
  2080. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-discovery/index.yaml +0 -0
  2081. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-monitoring/index.yaml +0 -0
  2082. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-negotiation/index.yaml +0 -0
  2083. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/buyer-recovery/index.yaml +0 -0
  2084. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/creative-transformers/scenarios/governance_approved.yaml +0 -0
  2085. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/creative-transformers/scenarios/governance_denied.yaml +0 -0
  2086. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/governance-aware-seller/index.yaml +0 -0
  2087. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -0
  2088. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/orchestrator-multi-agent/index.yaml +0 -0
  2089. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-catalog-driven/index.yaml +0 -0
  2090. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-exchange/index.yaml +0 -0
  2091. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-proposal-mode/index.yaml +0 -0
  2092. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-retail-media/index.yaml +0 -0
  2093. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-social/index.yaml +0 -0
  2094. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sales-streaming-tv/index.yaml +0 -0
  2095. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/signal-marketplace/scenarios/governance_approved.yaml +0 -0
  2096. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  2097. /package/compliance/cache/{3.2.3 → 3.2.4}/specialisms/sponsored-intelligence/index.yaml +0 -0
  2098. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/acme-outdoor-live.yaml +0 -0
  2099. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/acme-outdoor.yaml +0 -0
  2100. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/billing-gate-runner.yaml +0 -0
  2101. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/bistro-oranje.yaml +0 -0
  2102. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/distributed-brand-runner.yaml +0 -0
  2103. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/hosted-grader.yaml +0 -0
  2104. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/nova-motors.yaml +0 -0
  2105. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/oauth-setup-runner.yaml +0 -0
  2106. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/osei-natural.yaml +0 -0
  2107. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/parallel-dispatch-runner.yaml +0 -0
  2108. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/rate-limit-trip-runner.yaml +0 -0
  2109. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/signed-requests-runner.yaml +0 -0
  2110. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/signed-responses-runner.yaml +0 -0
  2111. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/single-side-trust-runner.yaml +0 -0
  2112. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/substitution-observer-runner.yaml +0 -0
  2113. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/summit-foods.yaml +0 -0
  2114. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/trusted-match-router-runner.yaml +0 -0
  2115. /package/compliance/cache/{3.2.3 → 3.2.4}/test-kits/webhook-receiver-runner.yaml +0 -0
  2116. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/attestations/README.md +0 -0
  2117. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/attestations/vectors.json +0 -0
  2118. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/audience-evidence/README.md +0 -0
  2119. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/audience-evidence/vectors.json +0 -0
  2120. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/brand-response-signing/brand-authorization-cross-check.json +0 -0
  2121. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/catalog-macro-substitution.json +0 -0
  2122. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/creative-representation-resolution.json +0 -0
  2123. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/creative-representation-resolution.schema.json +0 -0
  2124. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/error-recovery/README.md +0 -0
  2125. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/error-recovery/vectors.json +0 -0
  2126. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/governance-authorization.json +0 -0
  2127. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/governance-runtime-attestations/README.md +0 -0
  2128. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/governance-runtime-attestations/vectors.json +0 -0
  2129. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/macro-processing.json +0 -0
  2130. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/macro-processing.schema.json +0 -0
  2131. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/oauth-setup/vectors.json +0 -0
  2132. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  2133. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/002-full-plan.json +0 -0
  2134. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  2135. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  2136. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  2137. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  2138. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  2139. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  2140. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  2141. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  2142. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  2143. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/products-only-brief-compatibility/README.md +0 -0
  2144. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/products-only-brief-compatibility/vectors.json +0 -0
  2145. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/relationship-scoped-indicators.json +0 -0
  2146. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/README.md +0 -0
  2147. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/adjustment.json +0 -0
  2148. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/canonicalization.json +0 -0
  2149. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/coverage-aggregation.json +0 -0
  2150. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/manifest.json +0 -0
  2151. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/materialization.json +0 -0
  2152. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/obligation.json +0 -0
  2153. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/accepted-recorded-response.json +0 -0
  2154. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/accepted-request.json +0 -0
  2155. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/accepted-unchanged-response.json +0 -0
  2156. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/adjustment-accepted-recorded-response.json +0 -0
  2157. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/adjustment-accepted-request.json +0 -0
  2158. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/rejected-recorded-response.json +0 -0
  2159. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/receipts/rejected-request.json +0 -0
  2160. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/report-definition.json +0 -0
  2161. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/revision.json +0 -0
  2162. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/row-schema.json +0 -0
  2163. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/rows.jsonl +0 -0
  2164. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/scenario-index.json +0 -0
  2165. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-reconciliation/scenario-index.schema.json +0 -0
  2166. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/reporting-summary/complete-summary.json +0 -0
  2167. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/001-unsigned-sendmessage-required.json +0 -0
  2168. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/002-unsigned-message-send-v0-3-required.json +0 -0
  2169. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/003-unsigned-sendstreamingmessage-required.json +0 -0
  2170. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/004-duplicate-invocation-datapart.json +0 -0
  2171. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/005-signed-duplicate-invocation-datapart.json +0 -0
  2172. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/006-missing-skill.json +0 -0
  2173. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/007-protocol-method-required-covers-sendmessage.json +0 -0
  2174. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/008-no-extension-header.json +0 -0
  2175. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/009-extra-non-invocation-datapart.json +0 -0
  2176. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/010-filepart-present.json +0 -0
  2177. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/011-part-with-text-and-data.json +0 -0
  2178. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/012-non-object-data.json +0 -0
  2179. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/013-v0-3-kind-mismatch.json +0 -0
  2180. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/014-duplicate-skill-key.json +0 -0
  2181. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/015-non-string-skill.json +0 -0
  2182. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/016-text-only-message.json +0 -0
  2183. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/017-unsigned-message-stream-v0-3-required.json +0 -0
  2184. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/018-unresolvable-with-lone-signature-header.json +0 -0
  2185. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/019-raw-part-present.json +0 -0
  2186. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/020-case-variant-member-name.json +0 -0
  2187. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/021-escaped-duplicate-skill-key.json +0 -0
  2188. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/022-unsigned-http-json-message-send-required.json +0 -0
  2189. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/023-batch-body.json +0 -0
  2190. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/024-duplicate-method-key.json +0 -0
  2191. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/025-missing-method.json +0 -0
  2192. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/negative/026-empty-skill.json +0 -0
  2193. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/001-signed-sendmessage-create-media-buy.json +0 -0
  2194. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/002-signed-message-send-v0-3-create-media-buy.json +0 -0
  2195. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/003-unsigned-sendmessage-get-products-not-required.json +0 -0
  2196. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/004-unsigned-decoy-text-and-metadata.json +0 -0
  2197. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/005-unsigned-alias-skill-not-in-lists.json +0 -0
  2198. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/006-unsigned-message-send-v0-3-legacy-parameters.json +0 -0
  2199. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/a2a/positive/007-unsigned-method-case-variant.json +0 -0
  2200. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/body-integrity-policy.json +0 -0
  2201. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/keys.json +0 -0
  2202. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  2203. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  2204. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  2205. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  2206. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  2207. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  2208. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  2209. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  2210. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  2211. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  2212. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  2213. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  2214. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  2215. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  2216. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  2217. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  2218. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  2219. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  2220. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  2221. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  2222. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  2223. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  2224. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  2225. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  2226. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  2227. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  2228. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -0
  2229. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  2230. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  2231. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  2232. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  2233. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  2234. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  2235. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  2236. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  2237. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  2238. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  2239. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  2240. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  2241. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/001-base64url-sf-binary.json +0 -0
  2242. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/002-multiple-trailing-dots.json +0 -0
  2243. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/002-wrong-tag.json +0 -0
  2244. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/003-expired-signature.json +0 -0
  2245. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/004-window-too-long.json +0 -0
  2246. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/005-alg-not-allowed.json +0 -0
  2247. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/006-missing-covered-component.json +0 -0
  2248. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/007-missing-content-digest.json +0 -0
  2249. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/008-unknown-keyid.json +0 -0
  2250. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/009-key-ops-missing-verify.json +0 -0
  2251. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/010-content-digest-mismatch.json +0 -0
  2252. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/012-missing-expires-param.json +0 -0
  2253. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/013-expires-le-created.json +0 -0
  2254. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/014-missing-nonce-param.json +0 -0
  2255. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/015-signature-invalid.json +0 -0
  2256. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/016-replayed-nonce.json +0 -0
  2257. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/017-key-revoked.json +0 -0
  2258. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/020-rate-abuse.json +0 -0
  2259. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/negative/025-jwk-alg-crv-mismatch.json +0 -0
  2260. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/001-post-with-content-digest.json +0 -0
  2261. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/003-es256-post.json +0 -0
  2262. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/004-multiple-signature-labels.json +0 -0
  2263. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/005-default-port-stripped.json +0 -0
  2264. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/006-dot-segment-path.json +0 -0
  2265. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/007-query-byte-preserved.json +0 -0
  2266. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/008-percent-encoded-path.json +0 -0
  2267. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  2268. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/010-percent-encoded-slash-preserved.json +0 -0
  2269. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/011-ipv6-authority.json +0 -0
  2270. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/profile-3.2/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  2271. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/request-signing/protocol-method-names.json +0 -0
  2272. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/rights-attestations/README.md +0 -0
  2273. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/rights-attestations/vectors.json +0 -0
  2274. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/supply-path/README.md +0 -0
  2275. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/supply-path/vectors.json +0 -0
  2276. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/tracker-execution-contracts.json +0 -0
  2277. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/tracker-execution-contracts.schema.json +0 -0
  2278. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/trusted-match-context-merge/README.md +0 -0
  2279. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/trusted-match-context-merge/vectors.json +0 -0
  2280. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/universal-macro-translation.json +0 -0
  2281. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/universal-macro-translation.schema.json +0 -0
  2282. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-receiver-envelope.json +0 -0
  2283. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/README.md +0 -0
  2284. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/keys.json +0 -0
  2285. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  2286. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  2287. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  2288. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  2289. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  2290. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  2291. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  2292. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  2293. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  2294. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  2295. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  2296. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  2297. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  2298. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  2299. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  2300. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  2301. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  2302. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  2303. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  2304. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  2305. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  2306. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  2307. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  2308. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  2309. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  2310. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  2311. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  2312. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  2313. /package/compliance/cache/{3.2.3 → 3.2.4}/test-vectors/webhook-signing/positive/008-request-signing-key-reuse.json +0 -0
  2314. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/account-identity-reconciliation.yaml +0 -0
  2315. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/agent-notification-configs.yaml +0 -0
  2316. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/buyer-fixture-publisher.yaml +0 -0
  2317. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/buyer-orchestrator-track.yaml +0 -0
  2318. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/canonical-format-validate-input.yaml +0 -0
  2319. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/capability-discovery.yaml +0 -0
  2320. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/comply-controller-mode-gate.yaml +0 -0
  2321. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/ctv-experience-validate-input.yaml +0 -0
  2322. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/fictional-entities.yaml +0 -0
  2323. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  2324. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/get-products-pagination-integrity.yaml +0 -0
  2325. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/governance.yaml +0 -0
  2326. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/notification-config-event-scope.yaml +0 -0
  2327. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/notification-config-lifecycle.yaml +0 -0
  2328. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/notification-config-rejections.yaml +0 -0
  2329. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/oauth-setup.yaml +0 -0
  2330. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/pagination-integrity-creative-formats.yaml +0 -0
  2331. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/pagination-integrity-list-accounts.yaml +0 -0
  2332. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/pagination-integrity.yaml +0 -0
  2333. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/premium-display-canonical-validation.yaml +0 -0
  2334. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/principal.yaml +0 -0
  2335. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reliable-reporting-managed-delivery.yaml +0 -0
  2336. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reliable-reporting-reconciled-billing.yaml +0 -0
  2337. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reporting-consumer-status.yaml +0 -0
  2338. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reporting-core-declaration.yaml +0 -0
  2339. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/reporting-core.yaml +0 -0
  2340. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/runner-output-contract.yaml +0 -0
  2341. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/security.yaml +0 -0
  2342. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/trusted-match-publisher-authentication.yaml +0 -0
  2343. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/v3-envelope-integrity.yaml +0 -0
  2344. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/version-negotiation.yaml +0 -0
  2345. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/webhook-receiver-envelope.yaml +0 -0
  2346. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/wholesale-feed-bulk-webhooks.yaml +0 -0
  2347. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/wholesale-feed-product-webhooks.yaml +0 -0
  2348. /package/compliance/cache/{3.2.3 → 3.2.4}/universal/wholesale-feed-signal-webhooks.yaml +0 -0
@@ -1,2745 +0,0 @@
1
- # Storyboard Definition Schema
2
- #
3
- # Storyboards are narrative test workflows that walk agent builders through
4
- # the sequence of calls their agent will receive, with context at each step.
5
- #
6
- # Each storyboard targets a specific agent interaction model and
7
- # describes the flow from a caller's perspective.
8
-
9
- # --- Schema definition ---
10
-
11
- # A storyboard file must conform to this structure:
12
- #
13
- # id: string (unique identifier, e.g., "creative_template")
14
- # version: string (semver, e.g., "1.0.0")
15
- # title: string (human-readable title)
16
- # category: string — matches the storyboard's `id` top-level segment.
17
- #
18
- # For *specialism* storyboards, this is the snake_case form of an entry in
19
- # /schemas/enums/specialism.json (the wire-protocol enum declared by agents
20
- # on `get_adcp_capabilities.specialisms[]`). The protocol enum is
21
- # authoritative — when adding a new specialism storyboard, add the kebab-case
22
- # form to specialism.json first. The current specialism categories
23
- # (snake_case form) are:
24
- #
25
- # Sales: sales_guaranteed | sales_non_guaranteed | sales_proposal_mode
26
- # | sales_catalog_driven | sales_broadcast_tv | sales_social
27
- # Creative: creative_ad_server | creative_generative | creative_template
28
- # Governance: content_standards | property_lists | collection_lists
29
- # | governance_aware_seller | governance_delivery_monitor
30
- # | governance_spend_authority
31
- # Signals: signal_marketplace | signal_owned
32
- # Brand: brand_rights
33
- # Audiences: audience_sync
34
- # Buyer: buyer_discovery | buyer_activation | buyer_negotiation
35
- # | buyer_monitoring | buyer_recovery
36
- # Orchestrator: orchestrator_multi_agent
37
- #
38
- # For *universal / domain-level* storyboards, the category is descriptive
39
- # only (not on the wire). Examples in current use: capability_discovery,
40
- # schema_validation, error_compliance, security_baseline, si_baseline,
41
- # media_buy_seller, media_buy_governance_escalation, signed_requests,
42
- # idempotency, webhook_emission, deterministic_testing,
43
- # runner_output_contract, v3_envelope_integrity. New universal storyboards
44
- # pick a descriptive snake_case identifier; see existing files under
45
- # static/compliance/source/universal/ and protocols/ for the conventions.
46
- #
47
- # Scenario variants use <category>/<variant> form, e.g.
48
- # governance_spend_authority/denied, creative_generative/seller,
49
- # brand_rights/governance_denied, media_buy_seller/provenance_enforcement.
50
- # summary: string (one-line description for listings)
51
- # track: enum (optional — compliance track this storyboard contributes to:
52
- # core | products | media_buy | media_buy_buyer | creative | reporting | governance |
53
- # campaign_governance | signals | si | audiences | error_handling | brand | security)
54
- # required_tools: string[] (optional — tool names the storyboard uses; empty for protocol-level tests.
55
- # Lenient any-of: missing all listed tools triggers a coverage-gap skip
56
- # (skip_result.reason: missing_tool at step scope). See `required_any_of_tools`
57
- # below for the strict per-family load-time gate that grades requirement_unmet.)
58
- # required_any_of_tools: array of OR-family objects (optional — declarative one-of-N
59
- # tool-advertisement gate. Each entry is { tools: string[], rationale?: string };
60
- # at least one tool in each family MUST be advertised by the agent under test.
61
- # Multiple entries are AND-combined: every family must be satisfied independently.
62
- # Distinct from `required_tools` (which is the lenient any-of for storyboard
63
- # applicability — missing all listed tools triggers a coverage-gap skip).
64
- # See the dedicated `required_any_of_tools` block below for full semantics.
65
- # narrative: string (paragraph explaining the overall flow)
66
- #
67
- # requires_scenarios: string[] (optional — scenario IDs from storyboards/scenarios/ that must pass alongside this storyboard.
68
- # Scenarios are small, focused behavior tests (e.g., "media_buy_seller/accepts_governance").
69
- # The compliance engine resolves and runs them alongside the main storyboard.
70
- #
71
- # Flag flow across `requires_scenarios`:
72
- # A `branch_set` flag contributed in a step of storyboard X is
73
- # considered asserted if EITHER (a) a step in X's own phases asserts
74
- # it via `assert_contribution` with `check: any_of, allowed_values:
75
- # [<flag>]`, OR (b) a scenario Y listed in `X.requires_scenarios`
76
- # asserts it via the same check. The `orphan_contribution` lint
77
- # honors this flow.
78
- #
79
- # Reverse flow (a contribution in scenario Y asserted in parent X)
80
- # is NOT supported — scenarios MUST be internally self-grading.
81
- # The restriction preserves standalone lintability of scenarios
82
- # and prevents cycles in the composition graph. Scenarios that
83
- # contribute a flag without asserting it in their own phases will
84
- # surface as `orphan_contribution` when linted standalone.
85
- #
86
- # Scenario IDs in `requires_scenarios` MUST match the referenced
87
- # file's top-level `id:` exactly, and the referenced scenario file
88
- # MUST exist in the source tree at build time. Duplicate IDs
89
- # across files are a build-time error.)
90
- #
91
- # default_agent: string (optional — logical agent key used by multi-agent
92
- # storyboard runners to route steps that do not have a unique specialism
93
- # claimant in the runtime agents map. Resolved by the runner against the
94
- # `agents` option passed to `runStoryboard({ agents: { sales: …, governance: …, … } })`.
95
- #
96
- # Key shape: free-form non-empty string, matched verbatim against the
97
- # runtime `agents` map's keys. The spec does NOT constrain the key to the
98
- # specialism enum (`sales`, `signals`, `governance`, `creative`, `brand`)
99
- # because production multi-agent topologies legitimately fan out per-property
100
- # (`nyt_sales`, `wsj_sales`), per-region (`sales_eu`, `sales_us`), or
101
- # per-brand-rights-holder. Authors choose the convention that matches their
102
- # operator's CI invocation; portability across operators is the author's
103
- # concern, not the spec's.
104
- #
105
- # When to set it. Storyboards that exercise cross-domain tools — e.g.,
106
- # `sync_creatives`, `list_creative_formats` — do not name a single specialism
107
- # the runner can match. The author has the most context for which logical
108
- # tenant should receive these calls (usually "wherever the seller is":
109
- # `sales`). Encoding `default_agent: sales` once in the YAML beats
110
- # re-asserting it on every CI invocation. (Note: `comply_test_controller`
111
- # is routed via `prerequisites.controller_seeding`, not this field — the
112
- # controller is a back-channel, not a specialism claimant.)
113
- #
114
- # Resolution order (runner contract — see adcp-client#1066, adcp-client#1355):
115
- # 1. Step-level `agent:` override (if declared on the step).
116
- # 2. Specialism-claimant match against the runtime agents map (matched
117
- # via each agent's `get_adcp_capabilities.supported_protocols`):
118
- # - Exactly one agent claims the step's task's specialism → route there.
119
- # - Zero claimants → fall through to slot 3.
120
- # - Two or more claimants → runner MUST grade the step `unrouted_step`
121
- # rather than picking arbitrarily. Multi-claim is an operator-config
122
- # error; the storyboard cannot disambiguate it. Slot 3/4 do NOT
123
- # rescue this case — silently picking one would mask the misconfig.
124
- # 3. Storyboard-level `default_agent` (THIS field) resolved against the
125
- # runtime agents map. When the field is set but the key is absent from
126
- # the map, the runner MUST grade the step `default_agent_unresolved`
127
- # and MUST NOT fall through to slot 4 — silent fallback would invisibly
128
- # override the storyboard author's encoded intent. Slot 4 fires only
129
- # when the storyboard does NOT declare this field.
130
- # 4. Run-options `default_agent` passed to `runStoryboard({ default_agent })`.
131
- # Same key-resolution rule as slot 3: set-but-unmatched grades
132
- # `default_agent_unresolved`; unset falls through to slot 5.
133
- # 5. Fail-fast — runner raises `unrouted_step` and grades the step failed.
134
- #
135
- # Single-agent runs ignore this field entirely — there is no map to resolve
136
- # against, every step routes to the only configured agent. Authors SHOULD
137
- # still declare it for clarity; multi-agent runners treat it as advisory and
138
- # single-agent runners as a no-op.
139
- #
140
- # Validation. The `<key>` MUST be a non-empty string. Validation that the
141
- # key resolves to a configured tenant is a runtime concern (per the slot 3
142
- # rule above), not a schema concern — the same storyboard runs against
143
- # different topologies.)
144
- #
145
- # Applicability order: storyboard-level `requires_capability` and
146
- # `requires_all_capabilities` predicates MUST be evaluated before the runner
147
- # evaluates `requires`. When any capability predicate is not satisfied, the
148
- # runner emits `not_applicable` and MUST NOT report a missing runtime
149
- # requirement. Only an agent that selected the storyboard by satisfying every
150
- # authored capability predicate can receive `requirement_unmet`. This keeps
151
- # optional capability storyboards out of the coverage totals of agents that
152
- # never claimed the capability.
153
- #
154
- # requires: string[] (optional — storyboard-level runtime requirement gate.
155
- # Known values: controller | seeded_state | real_wire | webhook_receiver | multi_agent |
156
- # trusted_match_publisher_auth_runner (forward-compat:
157
- # unrecognized values are NOT schema violations — runners emit
158
- # requirement_unmet at runtime; see Forward compatibility below).
159
- # Default when absent: [real_wire] — untagged storyboards run unchanged.
160
- # minItems: 1 — runners MUST fail-load on requires: [] (empty array) because
161
- # no distinct semantic exists between the empty set and omitting the field;
162
- # the error message SHOULD read "use requires: [real_wire] for the default
163
- # behavior, or omit the field entirely."
164
- #
165
- # Values and availability:
166
- #
167
- # controller — gate on agent advertising comply_test_controller.
168
- # Available when the agent's get_adcp_capabilities response
169
- # includes comply_test_controller in its tool list. When
170
- # unmet, the runner MUST emit skip_result.reason:
171
- # requirement_unmet with detail naming "controller".
172
- # Orthogonal to prerequisites.controller_seeding: the two
173
- # fields are independent. controller_seeding is an execution-
174
- # phase instruction ("inject a fixtures phase before the main
175
- # phases run"); requires: [controller] is a load-phase gate
176
- # ("skip the whole storyboard if the capability is absent").
177
- # Storyboards may declare both: the gate fires first, and
178
- # controller_seeding takes effect only if the gate passes.
179
- # Declaring controller_seeding: true without requires:
180
- # [controller] is also valid — mid-run, individual steps
181
- # grade missing_test_controller if the agent lacks the
182
- # tool; requires: [controller] coalesces that into a single
183
- # whole-storyboard skip at load time instead.
184
- # Mid-run transient loss: if the load-phase gate passes
185
- # (the agent advertised comply_test_controller at load
186
- # time) but the tool becomes unavailable mid-run, the
187
- # runner MUST grade the affected step missing_test_controller
188
- # per the existing per-step path, NOT a retroactive
189
- # requirement_unmet at storyboard scope.
190
- #
191
- # seeded_state — gate on operator asserting out-of-band state provisioning.
192
- # Available when the operator declares (e.g., via a CLI flag
193
- # or runner option) that prerequisite state has been seeded
194
- # externally before the run. When unmet, the runner MUST emit
195
- # skip_result.reason: requirement_unmet with detail naming
196
- # "seeded_state". Scenarios fail naturally on the first
197
- # stateful step if state is not actually present.
198
- # ANTI-GAMING: trust signals (verified-live badges, Tier-2
199
- # production scores) MUST NOT consume requires: [seeded_state]
200
- # pass results without independent verification. The field
201
- # widens the graded set; it does not attest the state.
202
- # This is an operator-governance norm; the runner cannot
203
- # enforce it on behalf of downstream certification dashboards.
204
- #
205
- # real_wire — reserved for a future --mock-only execution mode. Current
206
- # behavior: no runtime effect (gate is always met). Authors
207
- # SHOULD omit this value rather than listing it explicitly,
208
- # since the default when the field is absent is semantically
209
- # equivalent to [real_wire] today (this equivalence holds
210
- # only while --mock-only is not active; the --mock-only
211
- # inversion may break it — see below).
212
- # IMPORTANT: the future --mock-only semantics INVERT the
213
- # skip direction compared to other values — this value will
214
- # cause a storyboard to skip when --mock-only is active (i.e.,
215
- # skip-when-mocked, pass-when-live), opposite to the
216
- # skip-when-absent logic of controller and seeded_state.
217
- # Whether the default-when-absent (omitting `requires`)
218
- # also triggers the skip under --mock-only is to be defined
219
- # when --mock-only ships; until then, authors MUST NOT rely
220
- # on any particular behavior for omitted vs. explicit
221
- # real_wire under a mock-only runner.
222
- # Composing real_wire with other values (e.g., requires:
223
- # [controller, real_wire]) is syntactically valid but the
224
- # combined behavior under --mock-only is unspecified; authors
225
- # SHOULD NOT mix real_wire with other values until --mock-only
226
- # semantics are defined.
227
- # Harnesses that consume this value MUST account for the
228
- # skip-direction inversion when --mock-only support lands.
229
- #
230
- # webhook_receiver
231
- # — gate on the runner hosting a webhook receiver for this run.
232
- # Available when the runner is configured with the webhook
233
- # receiver contract (for example
234
- # `webhook_receiver: { mode: "loopback_mock" }` or an
235
- # operator-supplied proxy URL). When unmet, the runner MUST
236
- # emit skip_result.reason: requirement_unmet with detail
237
- # naming "webhook_receiver" rather than sending unresolved
238
- # `{{runner.webhook_url:...}}` placeholders to the agent.
239
- # This value may be declared explicitly on storyboards such
240
- # as webhook-emission; runners may also infer it from
241
- # webhook URL substitutions in sample_request payloads.
242
- #
243
- # multi_agent — gate on the runner being configured with every logical
244
- # agent key required by this storyboard's `default_agent`
245
- # and step-level `agent:` declarations. Available when the
246
- # runner receives an `agents` map containing at least two
247
- # logical agents and all authored route keys used by the
248
- # storyboard resolve against that map. When unmet, the
249
- # runner MUST emit skip_result.reason: requirement_unmet
250
- # with detail naming "multi_agent" rather than failing a
251
- # routed step with default_agent_unresolved or unrouted_step.
252
- # Storyboards SHOULD declare this when the scenario's setup
253
- # and execution require distinct logical tenants, such as a
254
- # seller agent plus a governance agent.
255
- #
256
- # trusted_match_publisher_auth_runner
257
- # — gate on runner-owned, credential-profile-neutral Trusted
258
- # Match publisher-authentication probes. Available when the
259
- # runner has exact HTTPS `contextEndpoint` and
260
- # `identityEndpoint` values for the publisher-facing ingress,
261
- # plus an operator adapter exposing
262
- # `preparePublisherAuthProbe({ operation, credentialState })`.
263
- # The adapter supplies only declarative credential headers
264
- # and optional PEM-encoded client-certificate, private-key,
265
- # passphrase, and CA-certificate material for `absent` and
266
- # `invalid` credential states. It MUST NOT supply a URL,
267
- # dispatcher, fetch implementation, method, body, response,
268
- # SNI override, proxy, or TLS verification override. The
269
- # runner rejects Host, content-framing, hop-by-hop, forwarding,
270
- # routing-override, and proxy headers from the adapter and
271
- # constructs its own HTTP client/dispatcher. The runner owns
272
- # the POST, endpoint SSRF
273
- # validation, redirect rejection, timeout, bounded response
274
- # read, and output redaction. The adapter, not storyboard YAML
275
- # or the generic AdCP `auth` override, is responsible for
276
- # removing ambient deployment credentials or supplying a
277
- # credential known to be invalid for that deployment. When
278
- # unmet, the runner emits
279
- # skip_result.reason: requirement_unmet naming
280
- # "trusted_match_publisher_auth_runner"; it MUST NOT route
281
- # this pseudo-task through MCP or A2A as a fallback.
282
- #
283
- # Forward compatibility: runners encountering a requires value they do not
284
- # recognize MUST emit skip_result.reason: requirement_unmet (not fail-load)
285
- # and MUST name the unrecognized value in skip_result.detail so dashboards
286
- # can surface it. This matches runner-output-contract.yaml > requirement_unmet
287
- # and is consistent with the forward-compat posture throughout the harness —
288
- # an unrecognized gate is not a coverage gap (not_applicable would signal
289
- # "agent did not claim the protocol"), it is an unmet requirement. Only
290
- # requires: [] (empty array) is a hard fail-load — that is a schema
291
- # constraint, not a semantic gate, and schema violations are always loader
292
- # errors.
293
- #
294
- # Interaction with per-step requires_tool: the two fields are independent.
295
- # requires gates the whole storyboard at load time; requires_tool gates
296
- # individual steps at execution time. Both may be declared on the same
297
- # storyboard.)
298
- #
299
- # requires_capability: object (optional — storyboard-level applicability gate
300
- # evaluated against the agent's `get_adcp_capabilities` response before
301
- # executing phases. When the predicate is not satisfied, the runner skips the
302
- # storyboard with skip_result.reason: not_applicable and detail naming the
303
- # predicate path and declared value.
304
- #
305
- # Shape:
306
- # path: string (dot path into get_adcp_capabilities, e.g.
307
- # "media_buy.supports_proposals" or "supported_protocols")
308
- # equals: JSON value (optional — predicate passes when the path value is
309
- # strictly equal to this value)
310
- # contains: JSON value (optional — predicate passes when the path value is
311
- # an array containing this value)
312
- # not_contains: JSON value (optional — predicate passes when the path value
313
- # is an array that does not contain this value; missing/non-array values
314
- # do not satisfy the predicate)
315
- # present: boolean (optional — predicate passes when the path exists when
316
- # true, or is absent when false)
317
- #
318
- # Exactly one of equals, contains, not_contains, or present SHOULD be declared. Runners
319
- # that support stricter validation MAY fail-load a gate with no matcher or
320
- # multiple matchers. The same field is also legal on a phase; phase-level
321
- # gates skip only that phase and are useful when a universal storyboard
322
- # contains protocol-specific phase families.)
323
- #
324
- # requires_all_capabilities: object[] (optional — storyboard-level AND gate
325
- # for two or more capability predicates. Each entry has the same shape and
326
- # matcher rules as `requires_capability`. Every entry MUST pass before the
327
- # storyboard is selected. When this field and `requires_capability` are both
328
- # present, all predicates across both declarations MUST pass.
329
- #
330
- # minItems: 2 — use `requires_capability` for a single predicate. Runners MUST
331
- # fail-load empty or single-entry arrays so an incomplete compound gate cannot
332
- # silently widen a storyboard's applicability.
333
- #
334
- # Compound gates fail closed when the raw `get_adcp_capabilities` payload is
335
- # unavailable. Tool advertisement or auto-registration MUST NOT substitute
336
- # for an explicit capability declaration. Supported by @adcp/sdk starting in
337
- # 14.0.0-beta.4.)
338
- #
339
- # required_any_of_tools: array (optional — declarative one-of-N tool-advertisement
340
- # gate at storyboard load time. Each array entry is an OR-family object:
341
- #
342
- # required_any_of_tools:
343
- # - tools: [list_accounts, sync_accounts]
344
- # rationale: "AdCP 3.0.9 §accounts/overview"
345
- #
346
- # Per-entry object shape:
347
- # tools: string[] — tool names; at least one MUST be advertised by the agent
348
- # under test. minItems: 2 (a single-tool family collapses
349
- # to `required_tools`; encode it there instead).
350
- # rationale: string (optional) — human-readable spec citation surfaced in
351
- # skip messages so dashboards can attribute the gate to
352
- # the underlying normative requirement. Storyboard-author-
353
- # controlled string; runners that render this value into
354
- # LLM-facing surfaces MUST fence per
355
- # runner-output-contract.yaml > rendered_output_fencing
356
- # (the value flows into skip_result.detail, which is
357
- # already on the fenced list — this is defense-in-depth
358
- # for renderers that consume rationale directly).
359
- #
360
- # Multiple entries are AND-combined: every family in the array MUST be
361
- # satisfied independently. Empty array is fail-load — omit the field entirely
362
- # for "no requirement" (same posture as `requires`).
363
- #
364
- # Distinct from `required_tools`. `required_tools` is the lenient any-of for
365
- # storyboard applicability — missing all listed tools triggers a coverage-gap
366
- # skip. `required_any_of_tools` is the strict variant: missing the family is
367
- # still a skip (not a fail-load — see "Runner behavior" below), but with
368
- # distinct `detail` attribution so the skip aggregates against the spec rule
369
- # rather than the storyboard scope. The two compose cleanly on the same
370
- # storyboard.
371
- #
372
- # Distinct from `provides_state_for`. `provides_state_for` is a per-step
373
- # substitution mechanism that waives a downstream cascade when a peer step
374
- # establishes equivalent state at runtime. `required_any_of_tools` is a
375
- # storyboard-load-time gate on tool *advertisement* — it fires before any
376
- # step executes and does not interact with step-level substitution. The two
377
- # operate on different axes (storyboard scope vs step scope; advertisement-
378
- # time vs run-time) and may coexist on the same storyboard.
379
- #
380
- # Runner behavior. When an agent advertises NONE of the tools in any family,
381
- # the runner MUST emit at storyboard scope:
382
- #
383
- # skip_result.reason = requirement_unmet
384
- # skip_result.detail = "missing_required_tool_family: needs <tool_a> or <tool_b>[ or <tool_c>...] (<rationale>)"
385
- #
386
- # The `missing_required_tool_family:` sub-reason prefix in `detail` is the
387
- # canonical attribution string (see runner-output-contract.yaml >
388
- # `requirement_unmet` for the full enumeration of recognized detail
389
- # sub-reasons and the canonical wire shape for separators when more than one
390
- # gate fails). This matches the same `requirement_unmet`-with-detail pattern
391
- # already used for `requires:` gates — no new top-level reason enum is added
392
- # to `runner-output-contract.yaml`, so this field ships without bumping the
393
- # contract version.
394
- #
395
- # Per-family OR semantics. A family is satisfied as soon as the agent
396
- # advertises ANY tool in `tools[]`. The runner MUST NOT additionally require
397
- # that the named tools are exercised by storyboard steps — this field gates
398
- # on tool *advertisement*, not on step execution. Per-step gating remains
399
- # the job of `requires_tool` on individual steps.
400
- #
401
- # Forward compatibility. Runners encountering this field on a storyboard
402
- # they otherwise support MUST honor it. Runners that pre-date this field
403
- # will load and execute the storyboard as if the field were absent; this
404
- # is acceptable because the universal account-discovery rule (the first
405
- # use case) is also enforced by the SDK's runner-level conformance gate,
406
- # which fires independently of per-storyboard tagging. Future runners that
407
- # migrate to per-storyboard attribution (see adcp-client#1642) consume this
408
- # field for richer skip-cause aggregation.
409
- #
410
- # Composition with other gates. `required_any_of_tools` is evaluated at
411
- # load time alongside `requires`. Either gate failing produces
412
- # skip_result.reason: requirement_unmet at storyboard scope. Runners SHOULD
413
- # emit a single sub-reason in `detail` when only one gate is unmet. When
414
- # multiple gates fail, runners MAY aggregate sub-reasons per the wire shape
415
- # pinned in runner-output-contract.yaml > `requirement_unmet`; aggregated
416
- # `detail` strings are intended for human display and SHOULD NOT be
417
- # parsed beyond the first sub-reason by automated consumers. Dashboards
418
- # that need exhaustive multi-gate attribution SHOULD surface a multi-gate
419
- # indicator separately rather than splitting `detail` themselves.)
420
- #
421
- # agent:
422
- # interaction_model: enum (stateless_transform | stateful_preloaded | stateful_push | stateless_generate | media_buy_seller | media_buy_buyer | marketplace_catalog | owned_signals | si_platform | brand_rights_holder | governance_agent | tmp_router)
423
- # Descriptive authoring metadata, not a runner selection gate: agents do not
424
- # publish one canonical interaction_model value on the wire. Authors MUST
425
- # express executable scope through required_tools, requires_capability,
426
- # requires_contract, supported_protocols, or specialisms instead. Runners
427
- # MUST resolve those declared gates before context extraction or setup.
428
- # capabilities: string[] (legacy descriptive capability labels; bundle selection is driven by get_adcp_capabilities.supported_protocols and specialisms)
429
- # examples: string[] (real-world examples: "Celtra", "Innovid")
430
- #
431
- # caller:
432
- # role: string (who initiates the calls: "buyer_agent", "orchestrator", "dsp")
433
- # example: string (e.g., "Scope3", "Pinnacle Agency")
434
- #
435
- # prerequisites:
436
- # description: string (what must be true before running this storyboard)
437
- # test_kit: string (reference to a test kit file, e.g., "test-kits/acme-outdoor.yaml").
438
- # Always a single path — test kits are not composed through this field. See
439
- # "Test kit flavors" below for the two shapes a test kit may take and how
440
- # storyboards compose brand identity with harness coordination when they need
441
- # both.
442
- # controller_seeding: boolean (optional — when true, the runner auto-injects a
443
- # fixtures phase that seeds every entry in the storyboard's top-level
444
- # `fixtures:` block via `comply_test_controller` before the main phases run.
445
- # Storyboards that hardcode fixture IDs in sample_request payloads SHOULD
446
- # declare this and populate `fixtures:`. Missing `seed_*` support on the
447
- # agent grades the storyboard `not_applicable`, not failed.)
448
- #
449
- # fixtures: object (optional — declarative prerequisite state the runner seeds via
450
- # comply_test_controller before executing phases. Structure:
451
- # fixtures:
452
- # products:
453
- # - product_id: "test-product"
454
- # delivery_type: "non_guaranteed"
455
- # pricing_options:
456
- # - pricing_option_id: "test-pricing"
457
- # pricing_model: "cpm"
458
- # # Optional seller-internal calendar state for availability-window
459
- # # scenarios. Consumed by seeding only — never emitted as a product
460
- # # response field. Windows are half-open RFC3339 instants.
461
- # availability:
462
- # min_bookable_days: 3
463
- # booked_windows:
464
- # - start_time: "2099-09-20T00:00:00Z"
465
- # end_time: "2099-09-27T00:00:00Z"
466
- # accounts:
467
- # - account_id: "acct_test"
468
- # fixture:
469
- # brand: { domain: "acme.example" }
470
- # operator: "buyer.example"
471
- # billing: "operator"
472
- # sandbox: true
473
- # creatives:
474
- # - creative_id: "campaign_hero_video"
475
- # status: "approved"
476
- # format_kind: "video_hosted"
477
- # plans:
478
- # - plan_id: "gov_acme_q2_2027"
479
- # budget: { total: 30000, currency: "USD" }
480
- # media_buys:
481
- # - media_buy_id: "mb_acme_q2_2026_auction"
482
- # status: "active"
483
- # Each top-level key maps to a seed_* scenario (accounts → seed_account,
484
- # products → seed_product, pricing_options → seed_pricing_option,
485
- # creatives → seed_creative, plans → seed_plan, media_buys → seed_media_buy).
486
- # Storyboards that need an
487
- # external measurement vendor catalog SHOULD add an explicit
488
- # comply_test_controller step with scenario: seed_measurement_catalog. Product
489
- # fixtures may carry `measurement_catalogs[]` entries only as a compatibility
490
- # fallback when a storyboard needs to keep that snapshot beside the product
491
- # contract. Foreign-key dependency DAG the runner MUST honor when auto-seeding:
492
- #
493
- # account ───→ product
494
- # product ──┬─→ pricing_option
495
- # ├─→ plan
496
- # └─→ media_buy
497
- # creative ────→ media_buy
498
- # plan ────────→ media_buy
499
- #
500
- # Products seed before pricing_options and plans that reference them;
501
- # products, creatives, and plans all seed before media_buys that reference
502
- # them. See docs/building/implementation/comply-test-controller.mdx for the
503
- # full seeding semantics and per-scenario param shapes.
504
- #
505
- # Storyboards SHOULD prefer the `fixtures:` block over hardcoded sample_request
506
- # IDs whose existence the runner cannot verify.
507
- #
508
- # Hardcoded-literal fixtures in sample_request (e.g., product_id: "test-product"
509
- # without a matching `fixtures:` entry) are permitted through 3.x for existing
510
- # storyboards that pre-seed matching IDs out of band, and SHOULD migrate to the
511
- # `fixtures:` block before 4.0. New storyboards authored after this spec edit
512
- # MUST NOT hardcode fixture IDs without a corresponding `fixtures:` block or a
513
- # test-kit substitution.)
514
- #
515
- # fixture_resolution: object (optional, introduced in 3.2 — runner-owned rules
516
- # for satisfying fixture handles through the seller's normal AdCP surface).
517
- #
518
- # Identity fields in `fixtures:` are run-scoped handles. They remain the
519
- # caller-selected literal IDs for the `seed` strategy, but a seller is not
520
- # required to persist those literals when another explicitly enabled strategy
521
- # resolves the handle. Keeping this block separate from `fixtures:` is
522
- # intentional: 3.1 runners continue to seed the unchanged fixture payload and
523
- # never forward resolution metadata to the seller.
524
- #
525
- # Structure:
526
- #
527
- # fixture_resolution:
528
- # products:
529
- # - handle: "sports_display_auction"
530
- # strategies: [seed, discover]
531
- # match:
532
- # - path: /delivery_type
533
- # operator: equals
534
- # value: non_guaranteed
535
- # - path: /channels
536
- # operator: contains_all
537
- # value: [display]
538
- # - path: /format_options
539
- # operator: any_match
540
- # where:
541
- # - path: /format_kind
542
- # operator: equals
543
- # value: image
544
- # - path: /params/width
545
- # operator: equals
546
- # value: 300
547
- # - path: /params/height
548
- # operator: equals
549
- # value: 250
550
- # pricing_options:
551
- # - product_handle: "sports_display_auction"
552
- # handle: "cpm_auction"
553
- # strategies: [seed, discover]
554
- # match:
555
- # - path: /pricing_model
556
- # operator: equals
557
- # value: cpm
558
- # - path: /currency
559
- # operator: equals
560
- # value: USD
561
- # - path: /floor_price
562
- # operator: present
563
- #
564
- # handles and parent scope:
565
- # - `handle` MUST equal the corresponding identity value in `fixtures:`.
566
- # - A pricing-option entry MUST also declare `product_handle`; the pair
567
- # `(product_handle, handle)` is its identity because pricing_option_id is
568
- # scoped to a product and may repeat across products.
569
- # - Two handles MUST NOT bind the same seller entity unless both resolution
570
- # entries set `allow_reuse: true`. The default is false so a storyboard
571
- # requiring two contrasting products does not accidentally test one row
572
- # twice.
573
- #
574
- # strategies: non-empty array containing an ordered subset of:
575
- # - seed: call the existing seed_* scenario with the authored literal ID and
576
- # fixture exemplar.
577
- # - discover: enumerate the normal read surface and match seller-owned
578
- # entities. Product and pricing-option discovery uses a fully paginated
579
- # `get_products` wholesale request, scoped to the run's resolved sandbox
580
- # account when one exists. The request omits `brief`, filters, and `fields`
581
- # so matching operates on the complete returned product objects.
582
- # - construct: execute the entity-type-specific buyer lifecycle declared by
583
- # the runner contract, then apply required force_* transitions. A runner
584
- # MUST NOT invent a generic construct path for an entity type whose setup
585
- # lifecycle has not been specified.
586
- #
587
- # Backward compatibility: when a fixture has no matching
588
- # `fixture_resolution` entry, its effective strategies are `[seed]`. Runners
589
- # MUST NOT infer discoverability by treating the fixture object as a generic
590
- # subset predicate. Existing fields include illustrative values and
591
- # adversarial multi-entity relationships for which that inference would
592
- # weaken or change the authored test.
593
- #
594
- # match: non-empty array required when `strategies` includes `discover`.
595
- # Every clause has an RFC 6901 `path` relative to the candidate entity and an
596
- # operator from the following closed set:
597
- # - equals: candidate value is JSON-deep-equal to `value`.
598
- # - present: path resolves to a non-null value; `value` and `where` omitted.
599
- # - contains_all: candidate array contains every JSON-deep-equal item in
600
- # the `value` array; order is irrelevant.
601
- # - any_match: candidate path is an array and at least one member satisfies
602
- # every nested clause in non-empty `where`; `value` omitted.
603
- # - canonical_format_satisfies: candidate format declaration at `path`
604
- # satisfies the canonical format requirement in `value` using the same
605
- # directional algorithm as the `canonical_format_satisfaction` check.
606
- # Unknown operators are an authoring error, not a forward-compatible skip.
607
- #
608
- # strategy disposition:
609
- # - unavailable: an unadvertised seed scenario, no qualifying discovery
610
- # candidate, or an unavailable construct prerequisite advances to the next
611
- # declared strategy.
612
- # - failed: a strategy the seller advertises or begins returns a transport,
613
- # schema, protocol, pagination, or setup failure. The fixture resolution
614
- # fails immediately; the runner MUST NOT fall back and hide the failure.
615
- # - resolved: the handle binds to the seller identity and is pinned for the
616
- # full run.
617
- # - unsatisfied: every declared strategy was unavailable. The storyboard
618
- # grades `fixture_unsatisfied`, not passed.
619
- #
620
- # Discovery selection is deterministic. After excluding candidates already
621
- # pinned to non-reusable handles, the runner sorts matches by UTF-8 bytewise
622
- # seller identity (product_id; then product_id + U+0000 + pricing_option_id
623
- # for pricing options) and selects the first. Response order is never the
624
- # tie-breaker. An empty, valid result is an unavailable strategy; a malformed,
625
- # rejected, incomplete-without-a-usable-continuation, or transport-failed
626
- # discovery response is a conformance failure.
627
- #
628
- # handle substitution: after the whole fixture dependency graph resolves,
629
- # runners replace authored handles only in request fields whose resolved JSON
630
- # Schema carries the matching `x-entity` annotation. Replacement is exact —
631
- # handles embedded in larger strings are not rewritten. Product pricing-option
632
- # handles resolve against the sibling/ancestor product binding; an ambiguous
633
- # unscoped occurrence is an authoring failure. This translation applies to
634
- # normal task calls and comply_test_controller force/simulate calls. The agent
635
- # never sees the authored handle when discovery or construction supplied a
636
- # seller-issued identity.
637
- #
638
- # See runner-output-contract.yaml > fixture_resolution_result for evidence and
639
- # `fixture_unsatisfied` grading. See governance decision DR-0010.
640
- #
641
- # --- Test kit flavors ---
642
- #
643
- # Files under `static/compliance/source/test-kits/` come in two shapes. The
644
- # distinction is not enforced by a separate field today — it's identified by
645
- # which fixture data the kit carries.
646
- #
647
- # Brand kit — carries a brand identity and authentication fixture. Declares:
648
- # id string (short identifier)
649
- # auth.api_key string (`demo-<kit>-v1` pattern; the demo Bearer the
650
- # runner sends on positive api-key probes)
651
- # OR
652
- # auth.basic object (the demo HTTP Basic credential the runner sends
653
- # on positive Basic probes). Shape is either:
654
- # username: string
655
- # password: string
656
- # or:
657
- # credentials: string
658
- # where `credentials` is the unencoded `username:password`
659
- # pair used to build the Authorization header.
660
- # auth.probe_task string (the protected read the runner calls under
661
- # `auth: none` and with random-invalid credentials)
662
- # brand object (house + brand_id + names + logos + colors +
663
- # fonts + tone — full brand.json payload)
664
- # + optional products, creatives, pricing_options, destinations, etc.
665
- #
666
- # Today's brand kits: acme-outdoor, bistro-oranje, nova-motors, osei-natural,
667
- # summit-foods. Used by storyboards that exercise brand-specific AdCP protocol
668
- # flows (creative, media-buy, signals, governance, etc.).
669
- #
670
- # Runner contract — carries a harness coordination contract. Declares:
671
- # id string (short identifier)
672
- # applies_to object or list (which storyboards/specialisms consume
673
- # this contract, e.g., `{ universal_storyboard: signed-requests }`
674
- # or `{ specialism: sales-catalog-driven }`)
675
- # + contract-specific fields describing how the runner should pre-configure
676
- # the agent under test (e.g., `receiver_urls:`, `retry_replay_contract:`
677
- # for webhook-receiver-runner; `endpoint_modes:` for signed-requests)
678
- #
679
- # Today's runner contracts: signed-requests-runner, substitution-observer-
680
- # runner, webhook-receiver-runner. They carry no credentials today — the
681
- # runner injects no auth for these storyboards because the storyboards test
682
- # harness infrastructure (signature verification, webhook receiver
683
- # coordination, URL substitution observability), not brand-specific AdCP
684
- # flows. A future runner contract could legitimately carry its own test-
685
- # coordination principal (e.g., a callback-authenticating receiver), so the
686
- # "no credentials" property is temporal, not structural.
687
- #
688
- # Enforcement. `scripts/lint-storyboard-test-kits.cjs` fails the build if a
689
- # kit under `test-kits/` declares none of `auth.api_key`, `auth.basic`, or
690
- # `applies_to` — that's the bimodal partition this section describes. The lint
691
- # tolerates kits that declare both a credential marker and `applies_to` (the
692
- # future-branded-runner case above).
693
- #
694
- # Composition. Storyboards that need BOTH a brand identity AND a harness
695
- # contract declare the brand kit in `prerequisites.test_kit` and opt into the
696
- # runner contract through the `requires_contract: <runner_id>` field on
697
- # specific assertion tasks that need it — today that's `expect_substitution_safe`
698
- # and `expect_webhook*` (see their task definitions below for the per-task
699
- # field shape). When the named contract is not in scope for the runner, the
700
- # task grades as `not_applicable` rather than failing. Example:
701
- # `specialisms/sales-catalog-driven/index.yaml` declares
702
- # `prerequisites.test_kit: "test-kits/acme-outdoor.yaml"` and its
703
- # `expect_substitution_safe` step carries `requires_contract:
704
- # substitution_observer_runner`.
705
- #
706
- # Storyboards that test pure harness infrastructure without a specific brand
707
- # (e.g., `universal/signed-requests.yaml`,
708
- # `universal/webhook-emission.yaml`) point `prerequisites.test_kit` directly
709
- # at the runner contract and fall back on `task_default:` when any
710
- # `$test_kit.operations.<name>` reference resolves to null (see Step field
711
- # docs).
712
- #
713
- # `test_kit=<path>` in the contradiction-lint fingerprint disambiguates the
714
- # two flavors — `auth=kit_default` resolves to the kit's static credential for
715
- # brand kits and to no-credential for runner contracts, but the two never
716
- # collide because the `test_kit=` component separates them.
717
- #
718
- # Functional request signing composes differently from assertion contracts.
719
- # A runner that implements `test-kits/signed-requests-runner.yaml >
720
- # functional_dispatch` loads that shared signing identity at run level and
721
- # applies it to ordinary functional task dispatch after capability discovery.
722
- # Storyboards KEEP their brand test kit and do not add `requires_contract` to
723
- # each signed step. This avoids duplicating the public conformance key across
724
- # every fictional-brand kit and lets signing compose with an assertion step's
725
- # existing webhook/substitution contract.
726
- #
727
- # Dispatch rules:
728
- # 1. This path is sandbox-only. The public conformance private scalar MUST
729
- # NOT be used when the run targets production or disables sandbox routing.
730
- # 2. Bootstrap `get_adcp_capabilities` discovery remains unsigned so the
731
- # runner can learn the seller's profile. For subsequent ordinary task
732
- # calls, sign operations in `request_signing.required_for` and, when the
733
- # contract declares `sign_supported_for: true`, operations in
734
- # `supported_for` as well.
735
- # Signing the supported set covers request-body-dependent MUSTs such as a
736
- # webhook registration carrying `authentication` without hard-coding
737
- # those predicates in the runner.
738
- # 3. Build the complete transport request first (context substitutions,
739
- # generated idempotency key, protocol/version envelope, and exact JSON
740
- # bytes), then add RFC 9421 headers. Resolve `content-digest` coverage from
741
- # the advertised `request_signing.covers_content_digest` policy.
742
- # 4. Preserve independently configured transport authentication. A signed
743
- # request may also carry bearer/API-key credentials; signing is not a
744
- # replacement for the storyboard's principal selection.
745
- # 5. Mint a fresh nonce and signature for every dispatch or retry. Never
746
- # replay previously generated signature headers onto changed bytes.
747
- # 6. Never fall back to unsigned dispatch after signer setup or invocation
748
- # fails. Report a runner failure. Older runners that cannot implement the
749
- # functional-dispatch contract use the declared `unavailable_behavior`
750
- # compatibility disposition (`not_applicable`) rather than blaming the
751
- # seller for `request_signature_required`.
752
- #
753
- # This is NOT a sandbox-mode verifier bypass. The seller processes the signed
754
- # request through its normal RFC 9421 authentication path. `endpoint_scope:
755
- # sandbox` scopes the deliberately public test key; it does not weaken seller
756
- # enforcement.
757
- #
758
- # Future: if a storyboard ever needs to compose TWO assertion runner contracts
759
- # simultaneously (e.g., substitution-observer + webhook-receiver), the step-
760
- # level `requires_contract:` field will need to accept a list. Functional
761
- # signing does not consume that slot and therefore does not trigger this case.
762
- #
763
- # See `docs/contributing/storyboard-authoring.md` for the author-workflow
764
- # side of kit selection.
765
- #
766
- # context: object (optional — initial values seeded into the runner's context
767
- # accumulator before any step executes. Keys become $context.<key> references
768
- # available throughout the storyboard run. Use this field to provide
769
- # per-storyboard defaults for values that vary by operator topology (e.g.,
770
- # a governance agent URL the runner can override at invocation time once the
771
- # CLI supports --context on `storyboard run`).
772
- #
773
- # Example:
774
- # context:
775
- # governance_agent_url: "https://test-agent.adcontextprotocol.org"
776
- #
777
- # Precedence in the context accumulator (highest to lowest):
778
- # 1. Step `context_outputs:` captures (populated after a step passes)
779
- # 2. THIS field (storyboard-root `context:` block, fixed at run start)
780
- # 3. Test-kit substitutions where explicitly scoped into context
781
- #
782
- # Values MUST be scalars (strings, numbers, booleans — JSON scalar types).
783
- # Object and array values are not supported here — capture structured values
784
- # from step responses via `context_outputs:` instead.
785
- #
786
- # See "Context accumulator and substitution" below for the full precedence
787
- # contract, runner substitution rules, and unresolved-substitution grading.)
788
- #
789
- # phases: array of Phase objects
790
- #
791
- # --- Phase ---
792
- #
793
- # id: string (unique within storyboard)
794
- # title: string (human-readable phase title)
795
- # narrative: string (paragraph explaining this phase from the caller's perspective)
796
- #
797
- # requires_capability: object (optional — same shape as the storyboard-level
798
- # field above, but scoped to this phase. When the predicate is not satisfied,
799
- # the runner skips the phase as not_applicable and MUST NOT treat the skipped
800
- # phase as a prerequisite failure for independent sibling phases that declare
801
- # `depends_on: []`.)
802
- #
803
- # depends_on: string[] (optional — overrides the cross-phase cascade default)
804
- # Default semantics (field absent or undefined): "all prior phases." Every
805
- # phase implicitly depends on every prior phase, so when ANY prior phase
806
- # trips its stateful cascade (a stateful step fails or skips for a
807
- # missing-state reason — see `runner-output-contract.yaml > cascade_rules.
808
- # default_cascade`), every stateful step in this phase cascade-skips with
809
- # `prerequisite_failed`. This default preserves the F6 round-2 pattern
810
- # where setup phases establish state consumed by a later phase.
811
- #
812
- # Two override forms:
813
- #
814
- # - Independent phase: `depends_on: []` — explicitly declares the phase
815
- # has no upstream dependencies and runs even if every prior phase
816
- # tripped. Use for phases whose state derives entirely from in-phase
817
- # steps (e.g., the phase creates its own media buy / session / account
818
- # via a `comply_test_controller`-gated step) and that consume no
819
- # `$context.*` value produced by an earlier phase. The
820
- # `sole_stateful_step_exemption` in `runner-output-contract.yaml`
821
- # addresses a related-but-narrower case at the step level; `depends_on:
822
- # []` is the phase-level escape hatch and applies regardless of how
823
- # many stateful steps the phase contains.
824
- #
825
- # - Targeted dependency: `depends_on: ['phase_id', ...]` — only the
826
- # named phases gate this phase's cascade. Other phases tripping is
827
- # irrelevant. Listed phase IDs MUST exist in the same storyboard and
828
- # MUST be declared earlier in the `phases[]` array.
829
- #
830
- # Validation rules (enforced at storyboard load; fail at parse time):
831
- # - Value MUST be an array of non-empty strings (or absent).
832
- # - Self-references are rejected.
833
- # - Forward references and unknown phase IDs are rejected.
834
- # - Empty list is legal and means "no upstream dependencies."
835
- #
836
- # Authoring guidance: prefer the default. Use `[]` only when the phase
837
- # verifiably builds its own state in-phase — read the phase's
838
- # `context_inputs` and `$context.*` references to confirm no cross-phase
839
- # coupling exists. Use the targeted form when a phase depends on a
840
- # specific subset of prior phases (e.g., consumption phase depends only
841
- # on setup phases, not on sibling consumption phases that may legitimately
842
- # skip on different adopters).
843
- #
844
- # Branch-set peers are exempt from this cross-phase cascade: phases sharing a
845
- # `branch_set.id` with `any_of` semantics do NOT cascade `prerequisite_failed`
846
- # onto one another (they are mutually-exclusive alternatives, not a chain),
847
- # independent of whether the dependency is the implicit default or an explicit
848
- # `depends_on`. See `runner-output-contract.yaml >
849
- # cascade_rules.branch_set_cascade_exemption`.
850
- #
851
- # References: adcp-client#1161 (field introduction); adcp-client#1711
852
- # follow-up + adcp#4750 (deterministic_testing scope tightening that
853
- # surfaced the documentation gap).
854
- #
855
- # steps: array of Step objects
856
- #
857
- # --- Step ---
858
- #
859
- # id: string (unique within phase)
860
- # title: string (human-readable step title)
861
- # narrative: string (what's happening and why)
862
- # task: string (AdCP task name: list_creative_formats, preview_creative, build_creative, get_products,
863
- # create_media_buy, sync_accounts, etc. May reference a test-kit field, e.g.
864
- # "$test_kit.auth.probe_task", in which case `task_default` provides the fallback.)
865
- # Runner-owned Trusted Match probes:
866
- # `trusted_match_missing_auth_context_probe`,
867
- # `trusted_match_invalid_auth_context_probe`,
868
- # `trusted_match_missing_auth_identity_probe`, and
869
- # `trusted_match_invalid_auth_identity_probe` send the step's schema-valid
870
- # sample_request to the matching operator-supplied publisher-facing endpoint.
871
- # TMP does not prescribe router-ingress paths; the endpoint MUST NOT be
872
- # inferred from provider-facing `/context` and `/identity` paths. The runner
873
- # obtains declarative credential-header/TLS configuration from
874
- # `preparePublisherAuthProbe`, then owns the guarded HTTP request and bounded
875
- # response read. It MUST NOT implement these tasks through the generic
876
- # step-level `auth` override because that path is scoped to AdCP task
877
- # transports. The result exposed to ordinary validations includes HTTP
878
- # status, headers, and any body. These pseudo-tasks are valid only in a
879
- # storyboard gated by
880
- # `requires: [trusted_match_publisher_auth_runner]` and MUST NOT be
881
- # dispatched through an AdCP task transport.
882
- # task_default: string (optional — default task name when `task` is a test-kit reference that resolves to null)
883
- # schema_ref: string (path to request schema, e.g., "creative/list-creative-formats-request.json" or "media-buy/get-products-request.json")
884
- # response_schema_ref: string (path to response schema)
885
- # doc_ref: string (path to documentation page)
886
- # comply_scenario: string (maps to @adcp/client testing scenario, e.g., "creative_sync")
887
- # expected: string (human-readable description of expected behavior)
888
- # stateful: boolean (does this step depend on state from a previous step?)
889
- #
890
- # sample_request: object (optional — example request payload for this step)
891
- # Placeholders: `$context.<name>` and `{{prior_step.<id>.<field>}}`. See
892
- # the "Substitution" section below for the full semantics. For the narrow
893
- # case where the SDK's per-task request builder discards a body field
894
- # from `sample_request`, use `context_inputs:` (above) as the
895
- # post-builder injection path.
896
- #
897
- # Creative asset expansion: an `assets` object MAY contain the reserved
898
- # `$build_assets_from_format` key with a `$context.<name>` value. The context
899
- # value MUST be either canonical `FormatOption.params` captured from
900
- # `get_products` or a legacy `FormatId` resolved against formats captured from
901
- # `list_creative_formats`. Before request-schema validation or transport, the
902
- # runner MUST replace the entire directive-bearing `assets` object with an
903
- # asset map keyed by each required slot's canonical `asset_group_id` or legacy
904
- # `asset_id`. Values come from the storyboard's test kit and MUST satisfy the
905
- # slot contract. Image slots use an `assets.images[]` fixture satisfying the
906
- # declared dimensions; URL slots use `assets.click_url`; text slots use
907
- # `assets.text` only through an explicit runner-maintained mapping from the
908
- # exact declared `asset_group_id` or legacy `asset_id` to a fixture category
909
- # (for example, `headlines`, `descriptions`, or `cta`). Runners MUST NOT infer
910
- # text semantics from a slot-id substring or populate an unmapped slot (for
911
- # example, `legal`, `disclaimer`, or `alt_text`) from an arbitrary fallback
912
- # category.
913
- #
914
- # Asset-fixture coverage exception: when the captured format is valid but the
915
- # runner cannot populate a required slot from the test kit — including an
916
- # unsupported asset type, an unknown text-slot semantic, or no image fixture
917
- # satisfying the declared dimensions — the runner MUST stop before transport
918
- # and grade the storyboard `not_applicable` with `skip_result.reason:
919
- # fixture_unavailable`. As soon as the referenced format context is captured,
920
- # the runner MUST preflight every remaining `$build_assets_from_format`
921
- # directive that uses it before executing any intervening side-effecting
922
- # step. On this disposition, the runner MUST terminate the storyboard without
923
- # executing its remaining phases or emitting `prerequisite_failed` cascades.
924
- # This early whole-storyboard preflight prevents a later fixture gap from
925
- # leaving behind state such as an active media buy. The diagnostic detail MUST
926
- # begin with
927
- # `creative_asset_fixture_unavailable:` and name the slot id, asset type, and
928
- # any unsatisfied constraint. This is a runner/test-kit coverage gap, not a
929
- # grading signal about the agent, and MUST NOT contribute to failed steps.
930
- # A malformed directive, or missing format context caused by a prior agent
931
- # step failing or being skipped, follows the ordinary harness-error or
932
- # prerequisite-failure path instead; this exception MUST NOT conceal agent
933
- # behavior that the storyboard actually observed.
934
- # sample_response: object (optional — example expected response; also surfaces in published docs)
935
- #
936
- # auth: "none" | object (optional — overrides the transport's default credentials for this step)
937
- # auth: none → strip any configured credentials before sending
938
- # auth: { type: api_key, from_test_kit: true } → use the API key at `auth.api_key` in the test kit
939
- # auth: { type: api_key, from_test_kit: "auth.principals.<name>.api_key" }
940
- # → select a named principal within a multi-principal kit
941
- # (forward-compatible shape; no kit exposes multiple
942
- # principals today)
943
- # auth: { type: api_key, value_strategy: random_invalid }
944
- # → use a per-run random bogus API key (for invalid-key probes).
945
- # Runner generates `invalid-<32 random bytes>` per run.
946
- # auth: { type: basic, from_test_kit: "auth.basic" } → use the Basic credential at `auth.basic` in the test kit
947
- # auth: { type: basic, value_strategy: random_invalid }
948
- # → use a per-run random bogus Basic credential (for invalid-Basic probes).
949
- # Runner generates random username/password bytes per run.
950
- # auth: { type: oauth_bearer, value_strategy: random_invalid_jwt }
951
- # → use a per-run random JWT-shaped bogus Bearer token.
952
- # Runner generates `<base64url random>.<base64url random>.<base64url random>` per run.
953
- #
954
- # Positive credential checks SHOULD use the runner's normal transport auth
955
- # and initialized protocol session rather than step-level `auth:`. In MCP
956
- # terms: authenticate the Streamable HTTP session, call `initialize`, then
957
- # call the protected task. `auth:` overrides are intended for negative probes
958
- # that deliberately strip credentials or send invalid values, where a raw
959
- # unauthenticated-session rejection is acceptable evidence of rejection.
960
- #
961
- # DISALLOWED: `auth: { type: ..., value: "<literal>" }` — literal credentials in
962
- # storyboard YAML are a code smell (they bind the storyboard to a specific value,
963
- # can't rotate without rewriting, and leak plaintext identity into source).
964
- # `lint-storyboard-auth-shape.cjs` (rule `literal_value`) fails the build on this
965
- # shape. Use `from_test_kit` or `value_strategy` instead. See #2720.
966
- #
967
- # omit_idempotency_key: boolean (optional — when true on a task step, the runner
968
- # skips `applyIdempotencyInvariant` and signals the SDK client via
969
- # `skipIdempotencyAutoInject` so the request reaches the agent WITHOUT an
970
- # `idempotency_key`. Use for missing-key rejection vectors — without this flag
971
- # the SDK may auto-inject a key and the agent never sees the missing-key path.
972
- # Read tools leave the key optional, so omission probes SHOULD also set this
973
- # flag to prevent current or future runner/client auto-injection from masking
974
- # the vector. Supplying a key on a pure read does not by itself require replay.)
975
- #
976
- # contributes_to: string (optional — marks this step as contributing a named flag
977
- # that a later assert_contribution step can require)
978
- # contributes: boolean (optional — shorthand for `contributes_to: <enclosing phase's branch_set.id>`
979
- # introduced alongside first-class `branch_set:` declarations.
980
- # Legal only inside a phase that declares `branch_set:`; current
981
- # SDK runners resolve `contributes: true` to the phase's branch_set.id
982
- # and raise a storyboard-load error on `contributes: true` outside
983
- # a branch_set phase or on a step that also declares `contributes_to`.
984
- # Use explicit `contributes_to` when a storyboard must remain
985
- # compatible with older runners that grade before loader
986
- # normalization. See adcp-client#693 and
987
- # `lint:storyboard-branch-sets` for the full rule set.)
988
- # contributes_if: string (optional — runner-evaluated expression gating the contribution)
989
- # Supported grammar (single form; not a general-purpose DSL):
990
- # "prior_step.<step_id>.passed" → true if the named prior step in the same storyboard passed
991
- # Storyboard authors should prefer expressing gating through step ordering when possible.
992
- #
993
- # provides_state_for: string | string[] (optional — declares that this step's pass
994
- # establishes equivalent state for the named peer step(s) in the same phase. Used
995
- # to rescue the cascade-skip default when one of two interchangeable stateful
996
- # steps is missing on the agent: e.g., explicit-mode sellers that pre-provision
997
- # accounts out-of-band declare `sync_accounts` as missing_tool but expose
998
- # `list_accounts` as the canonical alternative — declaring
999
- # `provides_state_for: sync_accounts` on `list_accounts` tells the runner that
1000
- # the substitute's pass satisfies the same downstream state contract.
1001
- #
1002
- # Grammar parallels `contributes_to`: declared on the substitute step, names
1003
- # the target peer(s) whose state it provides. The two fields are independent —
1004
- # `contributes_to` flows branch-set flags into a later `assert_contribution`;
1005
- # `provides_state_for` waives a peer's missing-tool / missing-test-controller
1006
- # cascade so downstream stateful steps still run.
1007
- #
1008
- # Array semantics: `provides_state_for: [A, B]` is ALL-OF — one substitute pass
1009
- # establishes state for both A and B simultaneously. ANY-OF semantics are not
1010
- # supported; if a substitute only conditionally satisfies a peer, model it as
1011
- # two separate substitute steps.
1012
- #
1013
- # Validation rules (enforced by lint:storyboard-provides-state-for, fail at
1014
- # parse time):
1015
- # - Same-phase only. The target step MUST live in the same phase as the
1016
- # substitute step. Cross-phase substitution is rejected; a cross-phase
1017
- # state contract belongs in `context_outputs` / `context_inputs`, not
1018
- # this field.
1019
- # - Target step must exist in the same phase by `id`.
1020
- # - Target step MUST declare `stateful: true`. Stateless peers don't
1021
- # carry a state contract to substitute for.
1022
- # - Substitute step MUST declare `stateful: true`. A stateless step
1023
- # cannot establish equivalent state on the agent side.
1024
- # - Self-references (`provides_state_for: <own_id>`) are rejected.
1025
- # - Cycles (A→B and B→A in the same phase) are rejected. The peer-graph
1026
- # per phase MUST be acyclic.
1027
- #
1028
- # Runner behavior (see runner-output-contract.yaml > skip_result.reasons.peer_substituted):
1029
- # - When the substitute step passes AND the target peer would otherwise
1030
- # grade `missing_tool` / `missing_test_controller`, the runner MUST
1031
- # grade the target peer with skip reason `peer_substituted` (not
1032
- # `missing_tool`) and MUST NOT cascade `prerequisite_failed` to
1033
- # downstream stateful steps in subsequent phases.
1034
- # - When the substitute step itself fails or is skipped, the cascade
1035
- # proceeds as if `provides_state_for` were absent — the substitute
1036
- # did not establish the state it claimed.
1037
- #
1038
- # See adcontextprotocol/adcp#3734 (mechanism rationale) and
1039
- # adcp-client#1130 (the cascade-skip default this field rescues).
1040
- #
1041
- # context_outputs: array of ContextOutput objects (optional — capture values from
1042
- # this step's response into the runner's context accumulator so later steps can
1043
- # reference them via $context.<name>). Each entry:
1044
- # - name: string (the context variable to populate; MUST be unique within the
1045
- # storyboard run)
1046
- # path: string (JSON path against this step's response body, e.g.
1047
- # "media_buy_id", "accounts[0].account_id", "plans[0].plan_id")
1048
- # generate: string (alternative to `path`: mint a value at run start
1049
- # rather than capture from a response. Supported generator names:
1050
- # - uuid_v4 — RFC 4122 v4 UUID
1051
- # - opaque_id — RFC 4122 v4 UUID (alias; the two names exist for
1052
- # spec-vs-implementation framing — use uuid_v4 when
1053
- # the threaded value will appear as a UUID on the
1054
- # wire, opaque_id when callers treat it as an
1055
- # opaque correlation token).
1056
- # Exactly one of `path` or `generate` MUST be set on each entry.
1057
- # Setting both is a storyboard-load failure. Generated values are
1058
- # materialized once per storyboard run and stored under
1059
- # `context.<name>` so later steps' `$context.<name>` substitutions
1060
- # resolve to the same value. Use for deterministic correlation
1061
- # IDs (e.g. threading task_id through force_create_media_buy_arm
1062
- # register → create_media_buy → force_task_completion → tasks/get
1063
- # poll) without authors copy-pasting magic strings. Requires
1064
- # runner >= adcp-client v6.x with `generate` support (see
1065
- # adcp-client#1006); older runners reject the field at load.
1066
- #
1067
- # Example — deterministic task_id threading:
1068
- # context_outputs:
1069
- # - name: forced_task_id
1070
- # generate: uuid_v4
1071
- # # Subsequent steps reference $context.forced_task_id
1072
- # # in sample_request / context_inputs.
1073
- #
1074
- # Special path prefix `task_completion.<inner>`: when the immediate response
1075
- # carries a non-terminal AdCP response (status `submitted` / `working` /
1076
- # `input-required`, carrying a `task_id`), the runner polls the AdCP task
1077
- # until it reaches a terminal state and resolves `<inner>` against the
1078
- # completion result instead of the immediate response. On the AdCP v3 A2A profile,
1079
- # this means fresh `get_task_status` invocations; MCP may use its advertised
1080
- # AdCP polling task, including the legacy `tasks/get` alias. Use
1081
- # for captures whose value only exists on the completion artifact — e.g.
1082
- # the seller-assigned `media_buy_id` on an IO-signing / async-signed HITL
1083
- # flow where `create_media_buy` returns `submitted` and the ID lands on
1084
- # the completion artifact. Without the prefix, the literal key
1085
- # `task_completion` is looked up on the immediate response, which fails
1086
- # as `capture_path_not_resolvable`. Requires runner >= adcp-client v6.7;
1087
- # older runners treat the prefix as a literal key. See adcp-client#1417
1088
- # (rationale) and adcp-client#1426 (implementation).
1089
- #
1090
- # Runner behavior:
1091
- # - Captures occur AFTER the step's validations pass. A failed step MUST NOT
1092
- # populate the context accumulator — downstream $context.<name> references
1093
- # resolve to an unresolved_substitution error, which grades the dependent
1094
- # step as failed rather than the storyboard passing on fabricated state.
1095
- # - Paths that do not resolve to a usable value in the response body (absent,
1096
- # null, or "") are a runner-side grading failure on THIS step
1097
- # (capture_path_not_resolvable), not on the downstream reader — the capture
1098
- # declared a contract that the response did not meet. The capturing step
1099
- # grades as failed; downstream steps that depended on the captured value
1100
- # grade as skipped with reason: prerequisite_failed citing this step.
1101
- # See runner-output-contract.yaml > validation_result for the output shape.
1102
- # - The accumulator is storyboard-run-scoped; values do not leak across runs.
1103
- # - Special path prefix `task_completion.<inner>`: when the immediate
1104
- # response carries a non-terminal AdCP status (submitted/working,
1105
- # with a task_id), the runner polls the AdCP task until it exits
1106
- # {submitted, working}. On `completed`: resolves <inner> against the
1107
- # `result` payload; a missing path grades this step as
1108
- # capture_path_not_resolvable. On any other status (failed, canceled,
1109
- # rejected, auth-required, input-required, unknown): `result` is absent;
1110
- # the capture grades as capture_path_not_resolvable on this step;
1111
- # downstream $context.<name> references grade as prerequisite_failed
1112
- # citing this step. See adcp-client#1426 for the implementation.
1113
- #
1114
- # context_inputs: array of ContextInput objects (optional — inject captured
1115
- # context values into the request at a specific path AFTER the per-task
1116
- # request builder runs).
1117
- #
1118
- # Shape:
1119
- # context_inputs:
1120
- # - key: product_format_id # name populated by a prior context_outputs capture
1121
- # inject_at: "format_ids[0]" # JSON path inside the request body
1122
- #
1123
- # Do NOT use `context_inputs` unless `$context.<name>` inside
1124
- # `sample_request:` has been tried and verified not to reach the wire.
1125
- # The default substitution path is `$context.<name>` placeholders inside
1126
- # `sample_request:` — keep the request body honest about what the agent
1127
- # will receive. Reasons the default is preferred:
1128
- # - The published sample_response/sample_request pair is what seller
1129
- # engineers read to implement against the storyboard; anything the
1130
- # runner injects out-of-band is invisible there.
1131
- # - `$context.<name>` produces a pointed `unresolved_substitution` failure
1132
- # when the referenced capture is missing. `context_inputs` is
1133
- # silently a no-op on a missing `key` (runner:
1134
- # `if (input.key in context) setPath(...)`) — a typo in `key` or a
1135
- # failed capture produces an empty field rather than a loud error.
1136
- #
1137
- # Legitimate uses:
1138
- # - The @adcp/client per-task request builder for a given tool discards
1139
- # body fields from `sample_request` (the runner's post-builder merge
1140
- # only forwards envelope fields: `context`, `ext`, `idempotency_key`,
1141
- # `push_notification_config`). The observable symptom is that the
1142
- # agent answers with an unfiltered/default result and a round-trip
1143
- # or substitution-observer validation grades on fabricated state.
1144
- # `context_inputs` runs AFTER the builder, so it round-trips the
1145
- # captured value to the wire regardless.
1146
- # - Dependency-aware multi-instance dispatch, where the runner needs to
1147
- # route a step to a specific replica URL derived from a prior step's
1148
- # response (not applicable to single-instance storyboards).
1149
- #
1150
- # Value types are preserved. The captured value is written to `inject_at`
1151
- # as-is — object and numeric captures are NOT stringified, matching the
1152
- # `$context.<name>` behavior described below.
1153
- #
1154
- # Document every SDK-gap-workaround entry inline. The comment MUST name
1155
- # the SDK version that carries the gap and the upstream PR that closes
1156
- # it, so the entry can be removed when we bump past that release. See
1157
- # `static/compliance/source/protocols/media-buy/index.yaml`
1158
- # (`list_formats_integrity` step) for a worked example tied to
1159
- # adcontextprotocol/adcp-client#789.
1160
- #
1161
- # validations: array of Validation objects (optional)
1162
- #
1163
- # expect_error: boolean (optional, default false — when true, the runner expects
1164
- # the agent to return an error response for this step. Paired with `negative_path`
1165
- # to control whether the step's `sample_request` is schema-validated.)
1166
- #
1167
- # negative_path: "schema_invalid" | "payload_well_formed" (optional, default "schema_invalid")
1168
- # Disambiguates two categories of negative-path steps when `expect_error: true`:
1169
- # - schema_invalid (default): the `sample_request` payload is intentionally malformed
1170
- # (missing required field, wrong type, bad enum value, etc.) to verify the agent's
1171
- # validation response. Schema validation is SKIPPED on this step.
1172
- # - payload_well_formed: the `sample_request` payload is schema-valid but the agent
1173
- # rejects it at runtime — wrong state-machine transition, resource not found,
1174
- # governance denial, auth failure, temporal constraint, etc. Schema validation
1175
- # RUNS even though the agent is expected to return an error. Shape drift on these
1176
- # steps is caught statically.
1177
- # Omitting `negative_path` when `expect_error: true` behaves as `schema_invalid`
1178
- # (backwards-compatible default).
1179
- #
1180
- # sample_request_skip_schema: boolean (optional — explicit opt-out of schema
1181
- # validation for a step regardless of `expect_error` / `negative_path`. Use
1182
- # sparingly; prefer `negative_path: schema_invalid` for intentionally malformed
1183
- # negative-path fixtures.)
1184
- #
1185
- # expected_arm: string (optional — names the discriminator value of the `oneOf`
1186
- # arm this step expects the agent to return. When present, both the
1187
- # context-output-paths and validations-paths lints restrict path resolution
1188
- # to the matching arm only. Default behavior (no annotation) accepts a path
1189
- # that resolves through ANY oneOf arm — the right call for "no prior info,"
1190
- # but it lets a step capture or assert on a path that's defined on, say, the
1191
- # Acquired arm even when the storyboard semantically expects the Rejected
1192
- # arm. The annotation tightens that.
1193
- #
1194
- # Match shape: the lint walks each `oneOf` / `anyOf` branch and looks for
1195
- # ANY property with `const: "<expected_arm>"`. The first matching branch
1196
- # is the expected arm; subsequent path resolution restricts to it.
1197
- #
1198
- # Examples:
1199
- # expected_arm: "acquired" # matches AcquireRightsAcquired (status.const = "acquired")
1200
- # expected_arm: "rejected" # matches AcquireRightsRejected
1201
- # expected_arm: "pending_approval" # matches AcquireRightsPendingApproval
1202
- #
1203
- # When `expect_error: true` is set without `expected_arm`, the lint also
1204
- # tries to find an Error arm (one whose `required` list includes `errors`
1205
- # and which has no `status` const) and restricts to it. This covers
1206
- # `acquire_rights` / `creative_approval` / similar response shapes whose
1207
- # Error arm isn't const-discriminated.
1208
- #
1209
- # When the named arm doesn't match any branch, the lint emits an
1210
- # `unknown_expected_arm` violation — an authoring bug to fix at storyboard
1211
- # author time, not at runtime.
1212
- #
1213
- # --- Phase (optional fields for conditional execution) ---
1214
- #
1215
- # optional: boolean (default false — see semantics below)
1216
- # skip_if: string (expression — phase is skipped when the expression evaluates to true,
1217
- # e.g., "!test_kit.auth.api_key")
1218
- # branch_set: object (optional — first-class declaration of branch-set membership;
1219
- # see "Branch sets" section below)
1220
- #
1221
- # Optional phase semantics:
1222
- # - An `optional: true` phase always runs unless `skip_if` evaluates to true.
1223
- # `skip_if` (e.g., "!test_kit.auth.api_key") means "skip this phase when the
1224
- # expression is true"; without `skip_if`, the phase runs every time.
1225
- # - Failures inside an optional phase do NOT fail the overall storyboard on
1226
- # their own — the phase is for accumulating contributions toward a later
1227
- # `assert_contribution` check. The final assert is what fails the storyboard
1228
- # when no optional path succeeded.
1229
- # - A non-optional phase that fails fails the storyboard unconditionally.
1230
- #
1231
- # Branch sets:
1232
- # A branch set is a group of peer optional phases exercising mutually
1233
- # exclusive agent behaviors for the same trigger — e.g., an operation whose
1234
- # spec permits either an immediate success response or a pending-review
1235
- # response depending on seller policy. A later `assert_contribution` step
1236
- # over the set's `branch_set.id` fails the storyboard only when NO branch
1237
- # contributed.
1238
- #
1239
- # Minimal example — two peer phases and the assertion that grades them:
1240
- #
1241
- # phases:
1242
- # - id: immediate_success_path
1243
- # optional: true
1244
- # branch_set:
1245
- # id: operation_handled
1246
- # semantics: any_of
1247
- # steps:
1248
- # - id: submit_immediate_success
1249
- # task: example_operation
1250
- # contributes_to: operation_handled
1251
- # # ... expect status: "accepted" ...
1252
- #
1253
- # - id: pending_review_path
1254
- # optional: true
1255
- # branch_set:
1256
- # id: operation_handled
1257
- # semantics: any_of
1258
- # steps:
1259
- # - id: submit_pending_review
1260
- # task: example_operation
1261
- # contributes_to: operation_handled
1262
- # # ... expect status: "pending_review" ...
1263
- #
1264
- # - id: operation_enforcement
1265
- # steps:
1266
- # - task: assert_contribution
1267
- # validations:
1268
- # - check: any_of
1269
- # allowed_values: [operation_handled]
1270
- #
1271
- # `@adcp/client` 5.8.0+ also accepts the boolean shorthand
1272
- # `contributes: true` on a step inside a branch_set phase — the runner's
1273
- # loader resolves it to the enclosing phase's `branch_set.id`. The two
1274
- # forms are semantically identical in current SDK runners. Use explicit
1275
- # `contributes_to: <branch_set.id>` for storyboards that need to run against
1276
- # older graders that may inspect the field before loader normalization;
1277
- # use `contributes: true` only when the target runner line is known to
1278
- # support shorthand normalization. The lint enforces both forms.
1279
- #
1280
- # New storyboards MUST declare branch-set membership with a `branch_set:`
1281
- # object. The implicit-detection fallback below exists only so pre-#2633
1282
- # storyboards keep running unchanged.
1283
- #
1284
- # `branch_set:` field shape:
1285
- # - id: non-empty string. MUST equal the `contributes_to` value
1286
- # on every contributing step inside the phase and MUST
1287
- # appear in the `assert_contribution` step's any_of
1288
- # allowed_values.
1289
- # - semantics: `any_of`. No other value is supported today.
1290
- #
1291
- # Per-step contribution signalling is REQUIRED on each contributing step —
1292
- # the phase-level `branch_set:` declares membership but does not replace
1293
- # the step-level flag. Runners accumulate contributions at the step level.
1294
- # Two equivalent forms in current SDK runners:
1295
- # - `contributes_to: <branch_set.id>` (compatibility-safe string form;
1296
- # required outside a branch_set phase and must equal `branch_set.id`
1297
- # inside one)
1298
- # - `contributes: true` (shorthand inside a branch_set phase; resolves
1299
- # to the enclosing phase's `branch_set.id` on runners that support
1300
- # shorthand normalization)
1301
- #
1302
- # Authoring rules (enforced by `lint:storyboard-branch-sets`):
1303
- # - A phase with `branch_set:` MUST set `optional: true`. A
1304
- # non-optional phase's failure would fail the storyboard
1305
- # unconditionally and defeat the any_of semantics.
1306
- # - All phases in a storyboard sharing the same `branch_set.id` MUST
1307
- # share the same `branch_set.semantics`.
1308
- # - A storyboard with a `branch_set:` declaration MUST contain an
1309
- # `assert_contribution` step whose `validations[].check: any_of`
1310
- # includes the `branch_set.id` in `allowed_values`. Any
1311
- # `contributes_to:` / `contributes: true` whose resolved flag has no
1312
- # matching assert_contribution is flagged as `orphan_contribution` —
1313
- # nothing grades it.
1314
- # - Any step inside a branch-set phase that declares `contributes_to`
1315
- # MUST use the value `<branch_set.id>`.
1316
- # - A step MUST NOT declare both `contributes` and `contributes_to`
1317
- # (ambiguous). `contributes: true` is legal only inside a phase
1318
- # that declares `branch_set:`.
1319
- # - If any phase declares `branch_set: { id: X, ... }`, every optional
1320
- # phase in the same storyboard whose steps contribute to X MUST also
1321
- # declare `branch_set: { id: X, ... }`. A mixed-mode storyboard (one
1322
- # peer declared, one peer relying on implicit detection) would be
1323
- # graded as a single-member set by a runner preferring the explicit
1324
- # declaration.
1325
- #
1326
- # Runner grading:
1327
- # Runners MUST prefer the explicit `branch_set:` declaration when
1328
- # present and fall back to implicit detection otherwise (see below).
1329
- # - If at least one peer branch contributed the `branch_set.id`, the
1330
- # non-contributing branch's failing steps MUST be graded with skip
1331
- # reason `peer_branch_taken` (see
1332
- # runner-output-contract.yaml > skip_result.reasons.peer_branch_taken).
1333
- # They MUST NOT surface as `failed` in the storyboard summary, and
1334
- # MUST NOT be conflated with `not_applicable` (reserved for coverage
1335
- # gaps — agent didn't declare the protocol).
1336
- # - If no branch contributed, the final `assert_contribution` step
1337
- # fails the storyboard. Individual branch step failures still grade
1338
- # `failed` so the implementor sees what each branch observed.
1339
- #
1340
- # When to use a branch set:
1341
- # Only when the AdCP spec permits multiple conformant behaviors for
1342
- # the same trigger. If the spec mandates one behavior, write a
1343
- # required phase — a branch set where only one branch is legal
1344
- # weakens the test to any_of and hides regressions. Branch sets are
1345
- # not for optional features (use `skip_if` and coverage flags) or
1346
- # for progressive disclosure (use sequential phases).
1347
- #
1348
- # Authoring guidance: keep branch sets flat — two or three peer phases
1349
- # is typical. Nested branch sets (a branch set whose member is itself a
1350
- # branch set) are out of scope for runners. If a scenario needs deeper
1351
- # branching, restructure into separate storyboards or a linear sequence.
1352
- #
1353
- # Implicit branch-set detection (DEPRECATED — pre-#2633 storyboards only):
1354
- # When no phase in a storyboard declares `branch_set:`, runners fall
1355
- # back to the legacy rule: a branch set is the set of `optional: true`
1356
- # phases whose steps declare the same `contributes_to: <flag>` value
1357
- # as a later `assert_contribution` step's
1358
- # `validations[].check: any_of, allowed_values: [<flag>]` target.
1359
- # Fragile against typos in `contributes_to:` — new storyboards MUST
1360
- # use the explicit form above. This fallback exists only so
1361
- # pre-#2633 storyboards keep running during migration.
1362
- #
1363
- # Cross-storyboard contradiction lint:
1364
- # The `lint:storyboard-contradictions` script groups every step-with-
1365
- # assertions across every storyboard by (task, canonicalized request
1366
- # fingerprint, prior-state fingerprint, env fingerprint) and flags
1367
- # groups whose asserted outcomes disagree in a way no conformant agent
1368
- # can satisfy (success ↔ error, or disjoint error-code sets).
1369
- #
1370
- # Env fingerprint includes the storyboard's top-level `id:`, so two
1371
- # separate storyboards exercising different controller-seeded states
1372
- # are legitimately independent test suites and do not collide. To make
1373
- # two different storyboards' assertions collide — e.g., to catch
1374
- # "storyboard A assumes media_buy_id X is active, storyboard B
1375
- # assumes it is canceled" — use matching `comply_scenario:` values or
1376
- # shared `prerequisites.controller_seeding`.
1377
- #
1378
- # Branch-set peers (two optional phases in the same storyboard sharing
1379
- # a `branch_set.id`) are exempt from contradiction flagging by design:
1380
- # any_of semantics intentionally asserts mutually exclusive outcomes.
1381
- #
1382
- # Mutating-task detection: the lint's prior-state fingerprint partitions
1383
- # steps by the ordered list of prior MUTATING tasks. A task is mutating
1384
- # iff its request schema declares `"x-mutates-state": true` at the top
1385
- # level. The annotation is consumed by
1386
- # `scripts/lint-storyboard-contradictions.cjs` (which builds the
1387
- # mutating-task set at lint time) and is the single source of truth for
1388
- # this concern.
1389
- #
1390
- # Decidability rule (apply to any new task):
1391
- # A task declares `"x-mutates-state": true` iff a conformant compliance
1392
- # suite could write an assertion — on any later `get_*`, `list_*`, or
1393
- # follow-up call — whose outcome depends on this request having run.
1394
- # Equivalently: "this task changes observable server state a later
1395
- # conformant call may assert against."
1396
- #
1397
- # Mutating task classes (illustrative; the decidability rule above is
1398
- # the actual test):
1399
- # - Writes (create/update/delete/sync/build) — resource lifecycle.
1400
- # - State transitions (cancel, approve, reject) — status moves.
1401
- # - Session-scoped primitives (si_initiate_session, si_send_message,
1402
- # si_terminate_session) — session lifecycle.
1403
- # - Reporting/audit writes (log_event, report_usage,
1404
- # report_plan_outcome, provide_performance_feedback) — mutating
1405
- # because `get_plan_audit_logs` and billing-summary tasks can assert
1406
- # against their recorded outputs.
1407
- #
1408
- # Non-mutating task classes:
1409
- # - Read-only tasks (get_*, list_*, check_*, validate_*, preview_*) do
1410
- # not declare `x-mutates-state` UNLESS the read itself produces
1411
- # observable state a later task can assert against (e.g., a view
1412
- # counter that `get_analytics` can read) — those are mutating
1413
- # regardless of prefix.
1414
- # - Pure-compute tasks (no state read or write — estimates,
1415
- # calculations) MUST NOT declare `x-mutates-state`.
1416
- #
1417
- # Relationship to idempotency_key (decoupled, do not unify):
1418
- # `x-mutates-state` declares mutation semantics. `required:
1419
- # [idempotency_key]` declares the idempotency mechanism. The sets
1420
- # overlap ~95% but legitimately diverge for naturally-idempotent
1421
- # mutations. Example: `comply_test_controller` declares
1422
- # `x-mutates-state: true` but omits `idempotency_key` from `required`
1423
- # because the `scenario` enum is the dedup boundary — replaying
1424
- # `force_media_buy_status=active` converges to the same observable
1425
- # state without a key. `si_terminate_session` is the same shape
1426
- # (session_id is the dedup boundary). `scripts/build-compliance.cjs`
1427
- # reads `idempotency_key` for its own enforcement; do not try to share
1428
- # the two reads.
1429
- #
1430
- # --- Validation ---
1431
- #
1432
- # CANONICAL CHECK ENUM
1433
- # --------------------
1434
- # The authored check kinds storyboards MAY declare in `step.validations[].check`
1435
- # live in `runner-output-contract.yaml > authored_check_kinds` (structured
1436
- # YAML; this file is comment-only documentation). The build-time lint
1437
- # `scripts/lint-storyboard-check-enum.cjs` reads from there; runtime
1438
- # forward-compat (unknown kinds → not_applicable) is documented in
1439
- # runner-output-contract.yaml > validation_result. Add new kinds to that
1440
- # enum AND document semantics here in the same PR.
1441
- #
1442
- # id: string (optional stable machine-readable identifier for this validation.
1443
- # Use when a step declares multiple validations that need a
1444
- # durable cross-reference in runner output, dashboards, support
1445
- # requests, or SDK adapters. The value is author-chosen and
1446
- # stable across description/path edits; it SHOULD be unique
1447
- # within the containing step's `validations` array. Runners
1448
- # echo this value in `validation_result.id`; see
1449
- # runner-output-contract.yaml > validation_result.)
1450
- # check: string (what to validate: "response_schema", "field_present",
1451
- # "field_pattern" (path MUST resolve to a string matching
1452
- # `pattern`, a JavaScript regular expression source),
1453
- # "envelope_field_present" / "envelope_field_absent" (walks
1454
- # protocol-envelope.json instead of response_schema_ref — use for
1455
- # top-level envelope fields like `status`, `task_status`, and
1456
- # `response_status`),
1457
- # "envelope_field_pattern" (same as field_pattern, but scoped to
1458
- # protocol-envelope.json / version-envelope.json instead of
1459
- # response_schema_ref),
1460
- # "field_value",
1461
- # "field_value_or_absent",
1462
- # "field_contains" (wildcard-aware membership check; `path` may
1463
- # use `[*]` segments and passes when any resolved value matches
1464
- # `value` or one of `allowed_values`; object/array expectations
1465
- # are matched as deep subsets),
1466
- # "array_length" (asserts exact array cardinality with `value`,
1467
- # or an inclusive range with `min` / `max`),
1468
- # "status_code", "http_status", "http_status_in",
1469
- # "error_code", "on_401_require_header", "resource_equals_agent_url",
1470
- # "oauth_metadata_graph",
1471
- # "any_of", "refs_resolve", "a2a_submitted_artifact",
1472
- # "field_greater_than" (strict finite-number comparison against
1473
- # a literal threshold),
1474
- # "field_less_than" / "field_equals_context" /
1475
- # "field_in_context_array" (compare a field on this
1476
- # step's response against a value captured by a prior step — see
1477
- # "Cross-step comparison" section below),
1478
- # "upstream_traffic" (asserts side-effects via comply_test_controller's
1479
- # query_upstream_traffic scenario — see "upstream_traffic" section below),
1480
- # "canonical_format_satisfaction" (asserts create_media_buy package
1481
- # selectors against prior get_products format_options[] context — see
1482
- # "Canonical format satisfaction" section below))
1483
- # severity: string (optional, default "required"): "required" | "advisory".
1484
- # A "required" validation failure fails the step and contributes
1485
- # to steps_failed; this is the default. An "advisory" failure
1486
- # surfaces in the validation_result with passed: false but does
1487
- # NOT fail the step — the step grades on its remaining required
1488
- # validations. Advisory failures contribute to a distinct
1489
- # `validations_advisory_failed` counter on run_summary so they
1490
- # stay visible without polluting conformance verdicts.
1491
- #
1492
- # Use case: a storyboard declares a check whose runner support
1493
- # is rolling out (e.g., upstream_traffic during the months
1494
- # between the contract spec landing and the @adcp/sdk runner
1495
- # shipping it). Authors flip severity: advisory while
1496
- # instrumentation matures, then drop the field (or set
1497
- # "required") once adoption is stable. Without this escape
1498
- # valve, the choice was binary: declare the check and break
1499
- # conformance for adopters who haven't caught up, or omit it
1500
- # entirely and lose the validation surface during rollout.
1501
- # Distinct from the runtime forward-compat default (unknown
1502
- # check kinds → not_applicable): forward-compat handles
1503
- # runner-spec version skew; severity handles author-managed
1504
- # rollout gating.
1505
- # expires_after_version: string (optional, only meaningful when severity:
1506
- # advisory): semver gating runtime promotion of this advisory
1507
- # to "required". Closes the advisory-drift problem:
1508
- # storyboards declared with severity: advisory during an
1509
- # adoption window get force-promoted once runners catch up,
1510
- # so authors don't need to track every advisory entry across
1511
- # every PR.
1512
- #
1513
- # Versioning anchor: the comparison is against the runner's
1514
- # self-declared `runner_capability_version` (see
1515
- # runner-output-contract.yaml > run_summary), NOT against
1516
- # any specific implementation's package version. The runner
1517
- # chooses what its capability version corresponds to —
1518
- # @adcp/sdk semver, the AdCP spec version it implements, or
1519
- # a runner-binary version — and declares it in run_summary.
1520
- # Storyboard authors target the spec capability they need,
1521
- # not a specific SDK package; runners self-report the
1522
- # capability they offer.
1523
- #
1524
- # Runner behavior: at storyboard-load time the runner
1525
- # compares its own runner_capability_version to
1526
- # expires_after_version using semver.gte. If
1527
- # runner_capability_version >= expires_after_version, the
1528
- # runner MUST promote severity to "required" — advisory
1529
- # failures then fail the step. The validation_result MUST
1530
- # carry severity_promoted_from_advisory: true to surface the
1531
- # promotion on rendered reports.
1532
- #
1533
- # Forward-compat ordering: when a storyboard declares both
1534
- # an unknown check kind (graded `not_applicable` per #3816's
1535
- # forward-compat clause) AND severity: advisory +
1536
- # expires_after_version, forward-compat resolves FIRST. The
1537
- # check grades not_applicable and severity_promoted_from_advisory
1538
- # MUST be absent — no promotion was evaluated because no
1539
- # grading occurred. Promotion only applies to checks the
1540
- # runner actually grades.
1541
- #
1542
- # Pre-release tags: comparison uses standard semver including
1543
- # pre-releases (RFC §11). `6.5.0-rc.3 < 6.5.0`. Authors
1544
- # wanting "after 6.5.0 stable" write `6.5.0`; authors
1545
- # wanting "after any 6.5.0 pre-release" write `6.5.0-0`.
1546
- # The runner MUST use semver.gte semantics, not a custom
1547
- # comparator. Authors targeting a specific minor without
1548
- # regard to pre-release status SHOULD write the lowest
1549
- # pre-release form (`X.Y.0-0`) when they want to include
1550
- # early adopters running RC builds.
1551
- #
1552
- # Permanent advisories — see `permanent_advisory` field
1553
- # below for declaring an advisory that's deliberately not
1554
- # gated on runner version.
1555
- #
1556
- # Format: a semver-valid string. The build-time lint at
1557
- # scripts/lint-storyboard-advisory-expiry.cjs MUST validate
1558
- # the value via Node's `semver.valid()` and reject malformed
1559
- # values; this prevents typos AND bounds the trust surface
1560
- # on the value when it's interpolated into rendered reports.
1561
- #
1562
- # permanent_advisory: object (optional, only meaningful when severity:
1563
- # advisory and expires_after_version is absent): structured
1564
- # marker declaring this advisory is deliberately not gated
1565
- # on runner version. Use case: experimental signals where
1566
- # the spec authors explicitly want the advisory grade to
1567
- # persist regardless of runner adoption.
1568
- #
1569
- # Shape:
1570
- # permanent_advisory:
1571
- # reason: "<text>"
1572
- #
1573
- # Replaces the earlier `# advisory-permanent: <reason>` YAML
1574
- # comment marker (which broke under YAML round-tripping in
1575
- # editor formatters and downstream tooling). Structured
1576
- # field is greppable, schema-validatable, and the reason is
1577
- # machine-readable for dashboards.
1578
- #
1579
- # Schema requirement: when severity: advisory is declared,
1580
- # exactly one of `expires_after_version` or
1581
- # `permanent_advisory` MUST be present. The build-time lint
1582
- # surfaces violations (warning, not error — drift is a
1583
- # judgment call).
1584
- # path: string (JSON path to the field, e.g., "formats[0].format_id")
1585
- # value: any (expected value — string, number, or boolean; required when check is "field_value";
1586
- # accepted (optional) when check is "field_value_or_absent";
1587
- # required on "field_greater_than"; accepted (optional) on
1588
- # "field_less_than" as a literal comparand when
1589
- # `context_key` is not set; a non-negative integer exact count for
1590
- # "array_length" when range bounds are not used)
1591
- # min: integer (optional inclusive lower bound for "array_length"; non-negative)
1592
- # max: integer (optional inclusive upper bound for "array_length"; non-negative)
1593
- # allowed_values: array (acceptable values for "field_value", "field_value_or_absent",
1594
- # "field_contains", "http_status_in", "error_code", "any_of")
1595
- # context_key: string (only meaningful for "field_less_than" /
1596
- # "field_equals_context" / "field_in_context_array"
1597
- # cross-step comparison checks — names a key populated by a prior
1598
- # step's `context_outputs`. Required on
1599
- # "field_equals_context" and "field_in_context_array";
1600
- # optional on "field_less_than" (falls back to the literal `value`
1601
- # when omitted). Ignored on every other check kind. When set and
1602
- # the key is absent from the storyboard accumulator, the check
1603
- # passes with a `context_key_absent` observation — see
1604
- # "Cross-step comparison" section below.)
1605
- # description: string (human-readable description of validation)
1606
- #
1607
- # field_value_or_absent check:
1608
- # Passes when the field is absent OR present and equal to `value` / contained in
1609
- # `allowed_values`; fails only when the field is present with a disallowed value.
1610
- # Use for fields that the spec permits to be omitted but MUST NOT carry a wrong value
1611
- #
1612
- # field_greater_than check:
1613
- # Requires the value at `path` and the literal `value` threshold to be finite
1614
- # numbers, and passes only when the observed value is strictly greater.
1615
- # when present (e.g., a `replayed` flag that MAY be omitted on a fresh path but MUST
1616
- # NOT be true). Accepts both `value` (single expected value) and `allowed_values` (set
1617
- # membership); at least one of the two MUST be provided. A `field_value_or_absent` check
1618
- # that declares neither `value` nor `allowed_values` is a storyboard-load error; runners
1619
- # MUST reject the storyboard before execution begins.
1620
- # For fields that are required by the response schema, pair this check with a separate
1621
- # `check: field_present` to avoid silently accepting absent fields that are required.
1622
- #
1623
- # array_length check:
1624
- # Resolves `path` to one array and asserts its cardinality. Authors choose
1625
- # exactly one configuration: `value: N` for an exact count, or `min: N` /
1626
- # `max: N` for inclusive bounds (either bound may be omitted). Counts MUST be
1627
- # non-negative integers and `min` MUST NOT exceed `max`. A missing path or a
1628
- # non-array value fails; this check has no optional-field arm. Wildcard paths
1629
- # are not supported. Failure output uses the array path as `json_pointer`, the
1630
- # requested count or bounds as `expected`, and the observed cardinality as
1631
- # `actual`. For a missing/non-array path, failure output instead uses
1632
- # `expected: "array"` and the observed value as `actual` (null when absent).
1633
- #
1634
- # OAuth discovery graph — use `check: oauth_metadata_graph`:
1635
- # Applies only to a `protected_resource_metadata` runner task. Starting from
1636
- # the RFC 9728 document returned by that task, the runner validates the full
1637
- # public OAuth discovery graph described by `test-kits/oauth-setup-runner.yaml`:
1638
- # the protected-resource identifier, a non-empty `authorization_servers`
1639
- # array, every referenced RFC 8414 document, resource equality under the
1640
- # shared `resource_equals_agent_url` rule (scheme and host lowercased,
1641
- # default ports elided, path case-sensitive), exact issuer string equality
1642
- # after JSON decoding (without URL normalization),
1643
- # conditional RFC 8414 required fields, HTTPS URL constraints, and passive
1644
- # reachability of advertised authorization, token, and JWKS endpoints.
1645
- #
1646
- # The check follows EVERY authorization server named in a graph that is within
1647
- # the runner contract's fixed limits; an oversized graph fails with
1648
- # `oauth_graph_limit_exceeded` before unbounded traversal. A valid,
1649
- # explicitly named authorization server on another origin is conformant;
1650
- # origin equality with the protected resource MUST NOT be imposed. Every URL
1651
- # is independently subject to the runner contract's SSRF, redirect, size, and
1652
- # timeout policy before it is fetched.
1653
- #
1654
- # `registration_endpoint` is syntax-checked when advertised, but this check
1655
- # MUST NOT submit an RFC 7591 registration request. Active registration has
1656
- # credential-lifecycle and cleanup semantics and belongs to a separately
1657
- # capability-gated future grade.
1658
- #
1659
- # Failure output MUST use one of the stable diagnostic codes in the test-kit
1660
- # contract and include the offending URL/issuer/field when available. The
1661
- # deterministic fixtures at `test-vectors/oauth-setup/vectors.json` are the
1662
- # conformance corpus for runner implementations of this check.
1663
- #
1664
- # Error-shape validation — use `check: error_code`:
1665
- # The `error_code` check is shape-agnostic. The runner resolves the code from
1666
- # any of the transport-binding locations defined by the client detection
1667
- # order (see docs/building/implementation/transport-errors#client-detection-order):
1668
- # - `adcp_error.code` (MCP structuredContent, A2A artifact DataPart, JSON-RPC
1669
- # error.data, MCP text-fallback content JSON)
1670
- # - `errors[0].code` (task-payload errors array, top-level or under payload)
1671
- # A storyboard SHOULD assert error shape via `check: error_code` rather than
1672
- # `check: field_present, path: "errors"` or `path: "adcp_error"` — pinning to
1673
- # a specific shape makes the validator flakey against conformant agents that
1674
- # surface errors on the other layer.
1675
- #
1676
- # Error-code vocabulary:
1677
- # Every code referenced in a `value:` or `allowed_values:` under `check: error_code`
1678
- # MUST exist in the canonical enum at `static/schemas/source/enums/error-code.json`
1679
- # (or be registered as a deprecation alias). The `lint:error-codes` script
1680
- # enforces this at build time — references to undefined codes fail the build.
1681
- # Sellers MAY emit vendor-specific codes outside the enum, but storyboards
1682
- # MUST NOT assert on them (that couples the conformance suite to a specific
1683
- # vendor's taxonomy). When a test needs to accept multiple possible codes,
1684
- # use `allowed_values: [...]` rather than a single-code `value:` assertion.
1685
- #
1686
- # Canonical format satisfaction — use `check: canonical_format_satisfaction`:
1687
- # Applies only to create_media_buy steps. The runner compares each package's
1688
- # format selector against the target product captured from prior get_products
1689
- # context. When multiple get_products responses exist, the runner MUST use
1690
- # the most recent prior get_products response containing the package's
1691
- # product_id; if no such response exists, the check fails as an authoring or
1692
- # setup error. `value: true` means the request should be accepted; `value:
1693
- # false` means the request should be rejected for a format-selector cause.
1694
- #
1695
- # The check evaluates each present selector route independently before
1696
- # applying precedence:
1697
- # 1. Resolve `format_option_refs[]`, normalize legacy `format_ids[]` through
1698
- # `v1_format_ref[]` and the v1-to-canonical registry, and materialize the
1699
- # direct `format_kind`/`params` declaration. If any option reference is
1700
- # unresolved or any legacy ID is unprojectable, local_satisfied is false;
1701
- # a negative step asserting this path pairs the check with an
1702
- # `error_code: UNSUPPORTED_FEATURE` validation.
1703
- # 2. For every resolved route, derive the target product's selected
1704
- # `format_options[]` entries using directional product gating for fixed
1705
- # dimensions, duration declarations, canonical params, and range
1706
- # containment. Legacy compatibility uses the asymmetric v2-narrows-v1
1707
- # relation from canonical-formats.mdx, not raw declaration equality.
1708
- # 3. When multiple routes are present, their selected product-option sets
1709
- # MUST match. Different format shapes, option sets, or incompatible
1710
- # dimensions make local_satisfied false; a negative step asserting this
1711
- # path pairs the check with `error_code: CONFLICTING_SELECTORS`.
1712
- # 4. Only after every route resolves and the selected sets agree does the
1713
- # runner apply package precedence: format_option_refs, then direct
1714
- # format_kind/params, then format_ids.
1715
- #
1716
- # Negative cases only pass when the observed rejection is attributable to
1717
- # formats, so unrelated auth or tenant failures do not mask selector bugs.
1718
- #
1719
- # Fields:
1720
- # check: canonical_format_satisfaction
1721
- # value: boolean # true = expected accepted; false = expected rejected.
1722
- # path: string # optional; selects one package object or package array.
1723
- # # default is the request payload's packages[] array.
1724
- #
1725
- # Example:
1726
- # - check: canonical_format_satisfaction
1727
- # value: false
1728
- # description: "Bare image selector lacks the dimensions required by the fixed product"
1729
- #
1730
- # Cross-step integrity — use `check: refs_resolve`:
1731
- # `refs_resolve` asserts every ref in a source set resolves to a member of a
1732
- # target set, matched on declared keys. Use it when one step's response
1733
- # contains references that MUST exist in another step's response. In 3.2,
1734
- # prefer direct canonical declarations and use this primitive for remaining
1735
- # cross-resource identifiers.
1736
- # Without this primitive, broken references are silent until a later call
1737
- # (e.g., `sync_creatives`) fails at runtime, after commitments are already
1738
- # made.
1739
- #
1740
- # Fields:
1741
- # source:
1742
- # from: current_step | context
1743
- # # `current_step` reads the step's task-result data;
1744
- # # `context` reads values captured by prior steps.
1745
- # path: <string> # supports `[*]` wildcards — see below.
1746
- # target:
1747
- # from: current_step | context
1748
- # path: <string>
1749
- # match_keys: [<key>, ...] # keys compared on each ref — e.g. [agent_url, id].
1750
- # # A ref missing any declared key is NEVER a match
1751
- # # (agents that drop a key don't fuzzy-match others
1752
- # # that also dropped it).
1753
- # scope: # optional — restrict integrity to in-scope refs.
1754
- # key: <string> # e.g. `agent_url`.
1755
- # equals: <string> # literal value, or `$agent_url` for the
1756
- # # runner target URL. Keys ending in `url`
1757
- # # get trailing-slash / case normalization
1758
- # # on both sides before compare. Transport
1759
- # # path canonicalization (`/mcp`, well-known
1760
- # # A2A card path) for `$agent_url` is tracked
1761
- # # in adcp-client#710 — until it lands, MCP
1762
- # # agents should expect refs to fall
1763
- # # out-of-scope when format_ids name the
1764
- # # bare agent URL.
1765
- # on_out_of_scope: warn | ignore | fail
1766
- # # how refs outside `scope` are graded.
1767
- # # default `warn`: pass the check, attach
1768
- # # observations naming the skipped refs.
1769
- # # `ignore`: silent. `fail`: promote to
1770
- # # missing so reports name them.
1771
- #
1772
- # Path wildcards:
1773
- # `[*]` in a `source.path` or `target.path` flattens over arrays. So
1774
- # `products[*].format_ids[*]` walks every product and flattens every
1775
- # `format_ids` array into a single list of refs. Runners cap terminal
1776
- # fan-out at 10,000 values to bound malicious agent responses; paths
1777
- # realistic for any catalog size are well under the cap.
1778
- #
1779
- # Grading output:
1780
- # A failing `refs_resolve` check names the specific unresolved ref tuples
1781
- # in `actual.missing` (projected to `match_keys`). Duplicates are collapsed
1782
- # on the projected tuple so one broken ref across 50 products shows up
1783
- # once — compliance reports stay readable.
1784
- #
1785
- # Legacy 3.x example — every named format reference resolves:
1786
- # - check: refs_resolve
1787
- # description: "Every deprecated format_id resolves in the compatibility catalog"
1788
- # source:
1789
- # from: context
1790
- # path: "products[*].format_ids[*]"
1791
- # target:
1792
- # from: current_step
1793
- # path: "formats[*].format_id"
1794
- # match_keys: [agent_url, id]
1795
- # scope:
1796
- # key: agent_url
1797
- # equals: $agent_url
1798
- # on_out_of_scope: warn
1799
- #
1800
- # Cross-step comparison — use `check: field_less_than` /
1801
- # `field_equals_context` / `field_in_context_array` /
1802
- # `all_fields_in_context_array`:
1803
- # These checks compare a field in THIS step's response against a value
1804
- # captured by a PRIOR step via `context_outputs`. Without them, every existing
1805
- # `check:` is single-step (`field_value` resolves the comparand at YAML
1806
- # authoring time via `$context.<name>` substitution; the runtime value the
1807
- # prior step actually returned is opaque to the validation).
1808
- #
1809
- # Use cases:
1810
- # - Round-trip identity: assert that `media_buys[0].media_buy_id` on
1811
- # `get_media_buys` equals the id returned by the earlier `create_media_buy`
1812
- # step. Today's `field_value` + `$context.media_buy_id` substitution
1813
- # resolves the placeholder against the request, not the response — a
1814
- # seller could return a different id on the read and still pass.
1815
- # - Filtered-vs-baseline: assert that a filtered `get_rights` returns a
1816
- # strictly smaller `rights.length` than the unfiltered baseline call.
1817
- # - Idempotency replay: assert that the replayed response's body hash
1818
- # equals the originally captured hash (byte-for-byte cache hit).
1819
- # - Capability membership: assert that an applied account billing value is
1820
- # a member of the supported_billing array captured during discovery.
1821
- #
1822
- # Fields:
1823
- # check: field_less_than | field_equals_context | field_in_context_array | all_fields_in_context_array
1824
- # path: string # JSON path on this step's response.
1825
- # context_key: string # name set by a prior step's
1826
- # # `context_outputs[].name`. Required for
1827
- # # `field_equals_context` and
1828
- # # `field_in_context_array` and
1829
- # # `all_fields_in_context_array`. Optional for
1830
- # # `field_less_than` — when omitted, the
1831
- # # check falls back to the literal `value`
1832
- # # (so authors can compare against a
1833
- # # static threshold without context).
1834
- # value: number # Literal comparand for `field_less_than`
1835
- # # when `context_key` is not set. Ignored on
1836
- # # `field_equals_context` and
1837
- # # membership checks (which always
1838
- # # read from context).
1839
- # description: string
1840
- #
1841
- # Type semantics:
1842
- # `field_less_than` requires both operands to be finite numbers; non-numeric
1843
- # or absent values fail the check with a type error in the validation_result.
1844
- # `field_equals_context` deep-equals the response value against the captured
1845
- # comparand using the same equality semantics as `field_value`.
1846
- # `field_in_context_array` requires the captured comparand to be an array and
1847
- # a scalar path; it passes when the response value deep-equals one member.
1848
- # `all_fields_in_context_array` requires an array comparand and a wildcard
1849
- # path; it passes only when EVERY resolved terminal value belongs to the
1850
- # captured array. A path resolving no terminal values passes vacuously; pair
1851
- # it with field_present when an empty response is not allowed. Older runners
1852
- # that do not implement this additive check grade it not_applicable under the
1853
- # runner forward-compatibility contract rather than producing a false failure.
1854
- #
1855
- # Absent context_key — context_key_absent observation:
1856
- # When `context_key` is set but the named entry is missing from the
1857
- # storyboard accumulator (typically because the prior capturing step was
1858
- # legitimately skipped on a branch-set path), the check PASSES with a
1859
- # `context_key_absent` observation rather than failing. This preserves the
1860
- # "skipped prerequisite cascades to skip, not fail" semantics that
1861
- # `context_outputs` already establishes for `$context.<name>` substitution.
1862
- # A genuinely missing capture (the prior step ran but its capture path did
1863
- # not resolve) is graded `capture_path_not_resolvable` ON THE PRIOR STEP —
1864
- # downstream cross-step checks on a never-populated key are not the place
1865
- # to surface that failure.
1866
- #
1867
- # Examples:
1868
- # # Round-trip: get_media_buys returns the id we just created.
1869
- # # Pair with `context_outputs` on the earlier create_media_buy step:
1870
- # # context_outputs:
1871
- # # - name: created_media_buy_id
1872
- # # path: "media_buy_id"
1873
- # - check: field_equals_context
1874
- # path: "media_buys[0].media_buy_id"
1875
- # context_key: "created_media_buy_id"
1876
- # description: "get_media_buys echoes the id returned by create_media_buy"
1877
- #
1878
- # # Filtered call returns fewer rights than baseline.
1879
- # # Capture the baseline length on the unfiltered step:
1880
- # # context_outputs:
1881
- # # - name: baseline_rights_count
1882
- # # path: "rights.length"
1883
- # - check: field_less_than
1884
- # path: "rights.length"
1885
- # context_key: "baseline_rights_count"
1886
- # description: "Filtered rights array is smaller than unfiltered baseline"
1887
- #
1888
- # # Idempotency replay: replayed body deep-equals the originally-captured one.
1889
- # # Pair with `context_outputs` on the original call:
1890
- # # context_outputs:
1891
- # # - name: original_create_response
1892
- # # path: "" # capture the entire response body
1893
- # - check: field_equals_context
1894
- # path: ""
1895
- # context_key: "original_create_response"
1896
- # description: "Replay returned the cached response body, deep-equal to the original"
1897
- #
1898
- # # Capability membership: returned billing is one advertised value.
1899
- # - check: field_in_context_array
1900
- # path: "accounts[0].billing"
1901
- # context_key: "supported_billing"
1902
- # description: "Applied billing belongs to the advertised set"
1903
- #
1904
- # # Exhaustive routing scope: every returned product channel was advertised.
1905
- # - check: all_fields_in_context_array
1906
- # path: "products[*].channels[*]"
1907
- # context_key: "portfolio_channels"
1908
- # description: "Returned product channels stay inside portfolio scope"
1909
- #
1910
- # # Static threshold (single-step form — no context_key).
1911
- # # NOTE: `field_less_than` is primarily a cross-step check; the literal-
1912
- # # `value` form is a convenience for numeric thresholds. Authors who
1913
- # # need same-step equality should reach for `field_value` instead.
1914
- # - check: field_less_than
1915
- # path: "delivery.spend"
1916
- # value: 10000
1917
- # description: "Spend stays under the buy's budget cap"
1918
- #
1919
- # A2A wire-shape — use `check: a2a_submitted_artifact`:
1920
- # Asserts the A2A envelope invariants for AdCP `submitted` arms: `Task.id` /
1921
- # `Task.contextId` non-empty, `Task.state` normalised to `completed` (A2A 0.3
1922
- # wire value `"completed"`; A2A 1.0 enum `"TASK_STATE_COMPLETED"`), and the
1923
- # last non-null, object-typed DataPart's `data.status === 'submitted'`
1924
- # preserving the AdCP discriminator. Grades `not_applicable` on non-A2A
1925
- # transports so storyboards can include it alongside MCP-shape assertions
1926
- # without forking by transport.
1927
- #
1928
- # Upstream side-effects — use `check: upstream_traffic`:
1929
- # Asserts that the agent caused observable upstream traffic with a payload
1930
- # carrying the storyboard-supplied identifiers. The mechanism raises the bar
1931
- # against UNINTENTIONAL façades — adapters (often LLM-generated) that satisfy
1932
- # AdCP schema requirements with synthetic placeholders without forwarding the
1933
- # payload upstream. It is NOT an adversarial integrity check: adopters
1934
- # self-report their own traffic, and a determined façade could fabricate
1935
- # recorded_calls. Spec consumers MUST NOT treat upstream_traffic passing as
1936
- # cryptographic proof of adapter behavior; the value is "raises the bar
1937
- # against accidental façades," not "stops malicious façades."
1938
- #
1939
- # The runner queries the adopter's comply_test_controller with scenario
1940
- # `query_upstream_traffic`, scoped to traffic recorded since the storyboard
1941
- # step's request timestamp, and applies the assertion declared on the
1942
- # storyboard step. Adopters who do not advertise `query_upstream_traffic` in
1943
- # `list_scenarios` grade the check `not_applicable` — the contract is opt-in
1944
- # by adopter capability. Adopters who DO advertise it but return zero
1945
- # recorded calls during the assertion window grade as failed (the
1946
- # "controller present and observed nothing" path is the façade signal).
1947
- #
1948
- # Runner attestation-mode selection (normative):
1949
- # Conforming runners MUST choose params.attestation_mode for
1950
- # comply_test_controller query_upstream_traffic calls in a way that
1951
- # preserves assertion coverage:
1952
- # 1. If any upstream_traffic validation in the current step sets
1953
- # attestation_mode_required: "raw", request "raw".
1954
- # 2. Else if any upstream_traffic validation in the current step declares
1955
- # payload_must_contain, request "raw"; arbitrary payload-path
1956
- # assertions cannot be evaluated from digest attestations.
1957
- # 3. Else if every upstream_traffic validation in the current step can
1958
- # be evaluated from count/endpoint/purpose plus identifier_paths, and
1959
- # the runner can supply params.identifier_value_digests for all
1960
- # resolved identifier values, the runner SHOULD request "digest" when
1961
- # it knows the matching upstream calls are JSON-shaped
1962
- # (`application/json` or `*/*+json`). If the runner does not know the
1963
- # matching calls are JSON-shaped, request "raw"; digest-mode
1964
- # identifier_match_proofs are intentionally unavailable for non-JSON
1965
- # payloads, so an unconditional digest request can turn an otherwise
1966
- # evaluable identifier_paths assertion into not_applicable.
1967
- # 4. Otherwise, request "raw".
1968
- # Controllers MAY still return digest-mode attestations for a raw request
1969
- # when local policy forbids raw payload disclosure; raw-required and
1970
- # payload_must_contain assertions then grade not_applicable as described
1971
- # below.
1972
- # Storyboard authors SHOULD NOT invent non-schema attestation-mode hints.
1973
- # Use attestation_mode_required: "raw" only for hard raw requirements;
1974
- # otherwise rely on this runner selection rule.
1975
- #
1976
- # Fields:
1977
- # min_count: integer (default: 1)
1978
- # # Minimum number of recorded calls that match
1979
- # # the optional `endpoint_pattern` filter. Use 0
1980
- # # only for negative assertions (e.g., a step
1981
- # # MUST NOT cause upstream traffic).
1982
- # endpoint_pattern: string (optional)
1983
- # # Glob pattern matched against
1984
- # # recorded_calls[].endpoint. Examples:
1985
- # # "POST */audience/upload"
1986
- # # "POST *" (any POST, useful when
1987
- # # the storyboard stays
1988
- # # platform-agnostic)
1989
- # # When omitted, all recorded calls in the window
1990
- # # match. Storyboards in the shared corpus SHOULD
1991
- # # stay platform-agnostic — host-specific patterns
1992
- # # like "POST api.tiktok.com/*" couple the spec
1993
- # # to specific upstream platforms and break for
1994
- # # adopters whose upstream is something else.
1995
- # # Reserve host-specific patterns for
1996
- # # adapter-specific extensions, not shared
1997
- # # storyboards.
1998
- # payload_must_contain: array of MatchSpec (optional)
1999
- # # Each entry asserts a path/value pair that MUST
2000
- # # appear in at least one matching call's payload.
2001
- # # Path syntax: JSONPath-lite positional path
2002
- # # with `[*]` array wildcards. Shared storyboards
2003
- # # SHOULD use the bare dotted form. Examples:
2004
- # # "users[*].hashed_email"
2005
- # # "data.audience.members[*].id"
2006
- # # The literal `[*]` wildcard flattens over arrays
2007
- # # and passes if any element matches. The runner
2008
- # # also tolerates optional `$` / `$.` prefixes and
2009
- # # standalone numeric index tokens for SDK
2010
- # # compatibility (for example `items.[0].id`);
2011
- # # shared storyboards should avoid indexes unless
2012
- # # a position-specific assertion is intentional.
2013
- # # RFC 9535 JSONPath descendant syntax (`$..foo`) is NOT
2014
- # # supported — the runner uses
2015
- # # JSONPath-lite matching from @adcp/sdk. Path matching only
2016
- # # applies when recorded_calls[].content_type is
2017
- # # JSON-shaped — defined as `application/json`
2018
- # # or any structured-syntax-suffix `*/*+json`
2019
- # # per RFC 6839 §3.1 (e.g., `application/vnd.api+json`,
2020
- # # `application/scim+json`). All other content
2021
- # # types (form-urlencoded, multipart, plain text,
2022
- # # newline-delimited JSON like `application/json-seq`,
2023
- # # JSON Lines `application/jsonl`) take the non-
2024
- # # JSON path. Against non-JSON ALL match modes
2025
- # # (`present` / `equals` / `contains_any`) grade
2026
- # # `not_applicable`. Earlier sketches downgraded
2027
- # # `match: present` to a terminal-key substring
2028
- # # search of the raw payload string; that
2029
- # # heuristic creates false positives (a payload
2030
- # # mentioning the key name in any context — URL
2031
- # # fragment, comment, unrelated metadata field —
2032
- # # would pass), which is exactly the anti-façade
2033
- # # contract this surface exists to protect.
2034
- # # Storyboards that need a "the upstream call
2035
- # # carried this value" signal against non-JSON
2036
- # # payloads use `identifier_paths` instead — that
2037
- # # surface substring-searches storyboard-supplied
2038
- # # VALUES (not path-derived strings), which is
2039
- # # encoding-agnostic and doesn't suffer the
2040
- # # false-positive surface.
2041
- # # Shape:
2042
- # # - path: <dotted-with-[*] path>
2043
- # # match: present | equals | contains_any
2044
- # # value: <value> # for equals
2045
- # # allowed_values: [...] # for contains_any
2046
- # # Example:
2047
- # # - path: "users[*].hashed_email"
2048
- # # match: present
2049
- # identifier_paths: array of string (optional)
2050
- # # Paths into the storyboard's sample_request that
2051
- # # name the load-bearing identifiers the adapter
2052
- # # MUST forward upstream. The runner extracts the
2053
- # # values at these paths from the storyboard's
2054
- # # request and asserts each value appears in at
2055
- # # least one matching recorded_call's payload at
2056
- # # any depth. This is the strongest single
2057
- # # anti-façade signal — adapters cannot satisfy
2058
- # # it by fabricating a constant placeholder hash,
2059
- # # because the placeholder will not match the
2060
- # # storyboard's supplied value.
2061
- # # Portable path grammar (normative):
2062
- # # request-payload-relative dotted paths where
2063
- # # each segment is an identifier key optionally
2064
- # # followed by one `[*]` array wildcard. Example:
2065
- # # "audiences[*].add[*].hashed_email"
2066
- # # Supported segment form:
2067
- # # [A-Za-z_][A-Za-z0-9_-]* or
2068
- # # [A-Za-z_][A-Za-z0-9_-]*[*]
2069
- # # Unsupported forms MUST be rejected at
2070
- # # storyboard load/lint time rather than treated
2071
- # # as paths that resolve to zero values:
2072
- # # bracket-quoted keys (`foo["bar"]`), numeric
2073
- # # indexes (`items[0]`), recursive descent
2074
- # # (`$..foo`), absolute roots (`$.foo`), empty
2075
- # # segments, and reserved roots (`request.*`,
2076
- # # `response.*`, `context.*`). The path is
2077
- # # already relative to the storyboard step's
2078
- # # sample_request; adding an explicit root makes
2079
- # # the same storyboard ambiguous across runners.
2080
- # # Each path MAY resolve to a single value or an
2081
- # # array; all resolved values MUST be present in
2082
- # # the recorded payload. Replaces the earlier
2083
- # # `buyer_identifier_echo: boolean` shorthand
2084
- # # (which left "what counts as an identifier" to
2085
- # # convention) with an explicit enumeration.
2086
- # # Example:
2087
- # # identifier_paths:
2088
- # # - "audiences[*].add[*].hashed_email"
2089
- # # - "audiences[*].add[*].external_id"
2090
- # purpose_filter: array of string (optional)
2091
- # # Restrict the assertion to recorded_calls whose
2092
- # # `purpose` field matches one of the listed
2093
- # # values. Allowed values:
2094
- # # "platform_primary" | "measurement" |
2095
- # # "attribution" | "creative_serving" |
2096
- # # "identity" | "other"
2097
- # # Use this when an adapter legitimately makes
2098
- # # multiple kinds of upstream calls during a step
2099
- # # — e.g., a sales-non-guaranteed buyer agent
2100
- # # creating a campaign AND calling a measurement
2101
- # # vendor AND posting an attribution event during
2102
- # # the same create_media_buy. The storyboard
2103
- # # scopes to `purpose_filter: [platform_primary]`
2104
- # # so the other calls don't muddy the
2105
- # # campaign-creation assertion.
2106
- # # When omitted, the assertion considers all
2107
- # # recorded_calls regardless of purpose. Calls
2108
- # # without a `purpose` field (adopter didn't
2109
- # # classify) are treated as `purpose: other` for
2110
- # # filter matching — they're included by filters
2111
- # # listing `other` and excluded by filters that
2112
- # # don't. Runners MUST include a count of
2113
- # # unclassified calls in the validation_result's
2114
- # # `actual` when `purpose_filter` is set and
2115
- # # zero recorded_calls match the filter, so a
2116
- # # façade that misclassifies-into-`other` to
2117
- # # dodge filtering produces a noisy zero rather
2118
- # # than a silent one.
2119
- # since: prior_step_id (optional, default: this step's request timestamp)
2120
- # # Bound the lookup window. By default, the
2121
- # # runner queries traffic recorded since the
2122
- # # storyboard step issued its AdCP request, so
2123
- # # only side-effects of THIS step are counted.
2124
- # # Set to a prior step's id to include traffic
2125
- # # caused by an earlier step (e.g., for a
2126
- # # cumulative-effect assertion). The runner uses
2127
- # # its own wall-clock timestamp from when it
2128
- # # issued the AdCP request as the lower bound —
2129
- # # the controller's `since_timestamp` echo is
2130
- # # informational, not authoritative. See
2131
- # # runner-output-contract.yaml > validation_result
2132
- # # for the timestamp boundary semantics
2133
- # # (inclusive lower bound, clock-skew tolerance).
2134
- # attestation_mode_required: string (optional)
2135
- # # When set to "raw", the storyboard requires
2136
- # # raw payload introspection. Recorded calls
2137
- # # returned in `attestation_mode: digest` grade
2138
- # # the upstream_traffic check `not_applicable`
2139
- # # rather than failing — the storyboard is
2140
- # # asserting against payload contents the
2141
- # # adopter's privacy policy doesn't permit
2142
- # # disclosing.
2143
- # # When omitted, the storyboard accepts either
2144
- # # mode: assertions degrade gracefully in digest
2145
- # # mode (`payload_must_contain` grades
2146
- # # not_applicable per call; `identifier_paths`
2147
- # # works via the digest-of-identifier echo
2148
- # # mechanism, see "Digest-mode behavior" below).
2149
- # # Use "raw" sparingly — the digest mode exists
2150
- # # so EU/privacy-conscious adopters can support
2151
- # # upstream_traffic conformance without returning
2152
- # # hashed-PII payloads. Forcing raw excludes
2153
- # # those adopters; only use it when the
2154
- # # storyboard's assertion genuinely cannot be
2155
- # # expressed in identifier-digest form.
2156
- #
2157
- # Digest-mode behavior:
2158
- # `attestation_mode: digest` per recorded_call swaps payload introspection
2159
- # for digest-based echo verification (see comply-test-controller-response.json
2160
- # > UpstreamTrafficSuccess > recorded_calls > DigestAttestation):
2161
- # - `payload_must_contain` arbitrary path assertions: NOT supported in
2162
- # digest mode. Each entry grades `not_applicable` per affected call,
2163
- # with a note explaining the mode constraint.
2164
- # - JCS non-finite numbers: when a digest-mode upstream_traffic response
2165
- # cannot be produced because the parsed JSON-like value tree contains
2166
- # a non-finite numeric value (`NaN`, `+Infinity`, or `-Infinity`), the
2167
- # controller MUST NOT coerce that value to `null`, a string, or any
2168
- # other placeholder for digest computation; it returns ControllerError
2169
- # with error code `JCS_NON_FINITE_NUMBER`; the runner grades the
2170
- # affected validation `not_applicable`, not failed, with a note citing
2171
- # the RFC 8785/JCS constraint.
2172
- # - `payload_length`: MUST equal the exact byte length covered by
2173
- # `payload_digest_sha256` — RFC 8785 (JCS) canonical bytes for
2174
- # JSON-shaped content after redaction, or post-redaction raw body bytes
2175
- # for non-JSON content. It is not the original outbound body length
2176
- # before JSON parsing, redaction, or canonicalization.
2177
- # - `identifier_paths` echo verification: supported via the controller's
2178
- # `identifier_match_proofs[]`. The runner computes SHA-256 of each
2179
- # resolved identifier value, sends the digests in
2180
- # `params.identifier_value_digests`, and reads the per-digest
2181
- # `found: true | false` proof from the response. Plaintext identifiers
2182
- # never reach the controller; the controller never returns plaintext
2183
- # payloads. The privacy boundary holds in both directions.
2184
- # - `min_count` and `endpoint_pattern`: unchanged — count and URL
2185
- # matching work identically in both modes.
2186
- #
2187
- # Grading output (see runner-output-contract.yaml > validation_result):
2188
- # `expected` echoes the declared assertion fields. `actual` is a
2189
- # diagnostic summary: { matched_count, total_calls, missing_payload_paths,
2190
- # missing_identifier_values }. The full recorded_calls array lives in
2191
- # `response.payload` so an implementor can see the exact upstream
2192
- # payloads the runner observed.
2193
- #
2194
- # Adopter integration:
2195
- # The adopter implements `query_upstream_traffic` in its
2196
- # comply_test_controller. The controller records outbound HTTP calls in a
2197
- # caller-scoped buffer (sandbox-only — production builds MUST 404 the
2198
- # comply_test_controller tool entirely; multi-tenant sandboxes MUST key
2199
- # the buffer on the calling principal so cross-caller traffic does not
2200
- # leak). See comply-test-controller-request.json > query_upstream_traffic
2201
- # for the controller-side query contract.
2202
- #
2203
- # Example — sync_audiences must POST hashed members upstream:
2204
- # - check: upstream_traffic
2205
- # description: "sync_audiences caused upstream traffic with hashed members"
2206
- # endpoint_pattern: "POST *"
2207
- # min_count: 1
2208
- # payload_must_contain:
2209
- # - path: "users[*].hashed_email"
2210
- # match: present
2211
- # identifier_paths:
2212
- # - "audiences[*].add[*].hashed_email"
2213
- # - "audiences[*].add[*].external_id"
2214
- #
2215
- # Cross-response assertions — `check: cross_response_field_equal` / `cross_response_count_distinct`:
2216
- # These check kinds operate on the RESPONSE SET of a step that dispatches
2217
- # multiple parallel requests under the `parallel_dispatch_runner` contract
2218
- # (see test-kits/parallel-dispatch-runner.yaml). They are NOT applicable to
2219
- # single-dispatch steps: a single response trivially has cardinality 1 on any
2220
- # field. Runners MUST gate these checks on the step declaring
2221
- # `requires_contract: parallel_dispatch_runner` and a `parallel_dispatch`
2222
- # block; outside that gate the check MUST grade `not_applicable`. The
2223
- # canonical use case is rule-9 testing (concurrent retries / first-insert-wins
2224
- # from L1/security.mdx#idempotency) — fire N parallel calls with the same
2225
- # `idempotency_key`, assert exactly one resource was created.
2226
- #
2227
- # `parallel_dispatch` is a step-level block that travels alongside `requires_contract`:
2228
- #
2229
- # - id: concurrent_create
2230
- # task: create_media_buy
2231
- # requires_contract: parallel_dispatch_runner
2232
- # parallel_dispatch:
2233
- # count: 2 # required, integer 2..10. The runner fires
2234
- # # `count` logically-simultaneous requests
2235
- # # using the SDK's batch primitive.
2236
- # same_idempotency_key: true # required for rule-9 tests; future
2237
- # # non-idempotency parallel tests MAY set
2238
- # # this false.
2239
- # barrier_timeout_ms: 5000 # optional; default 5000 — how long the
2240
- # # runner waits at the dispatch barrier
2241
- # # before firing requests anyway.
2242
- # validations:
2243
- # - check: cross_response_count_distinct
2244
- # path: "media_buy_id"
2245
- # allowed_values: [1]
2246
- # description: "Exactly one media_buy_id across all dispatches"
2247
- # - check: cross_response_field_equal
2248
- # path: "media_buy_id"
2249
- # description: "All dispatches converge on the same media_buy_id"
2250
- #
2251
- # `cross_response_field_equal`:
2252
- # - path (string, required): JSON path checked on every resolved response.
2253
- # All non-null observed values at `path` MUST be deeply equal. A missing
2254
- # value on a response is treated as a non-equal observation and fails the
2255
- # check.
2256
- #
2257
- # `cross_response_count_distinct`:
2258
- # - path (string, required): JSON path scanned on every resolved response.
2259
- # - allowed_values (array of integers, required): permitted cardinalities of
2260
- # distinct values observed at `path` across the resolved response set.
2261
- # For rule-9 tests, `allowed_values: [1]` — exactly one resource was
2262
- # created across all dispatches.
2263
- #
2264
- # Resolution semantics. A seller adopting the reject-and-redirect policy under
2265
- # rule 9 may return `IDEMPOTENCY_IN_FLIGHT` on the second (or later) dispatch
2266
- # rather than block. The runner MUST resolve `IDEMPOTENCY_IN_FLIGHT` responses
2267
- # to their eventual cached response before applying these checks: wait
2268
- # top-level `error.retry_after` seconds and retry with the SAME idempotency_key,
2269
- # exactly as the buyer-side normative behavior specifies. The cross-response
2270
- # check operates on the resolved response set, not the raw initial set. If
2271
- # resolution exceeds the runner's step-timeout budget, the step grades
2272
- # `step_timeout` (a runner-synthesized code), not a rule-9 violation.
2273
- #
2274
- # Grading output. `expected` carries the declared assertion fields
2275
- # (`path`, plus `allowed_values` for `count_distinct`). `actual` summarizes
2276
- # what was observed across the resolved response set:
2277
- # cross_response_field_equal → { observed_values: [...] }
2278
- # cross_response_count_distinct → { observed_cardinality, observed_values: [...] }
2279
- # See runner-output-contract.yaml > validation_result > expected/actual for
2280
- # the canonical shapes.
2281
- #
2282
- # --- Runner output ---
2283
- #
2284
- # How a runner MUST report validation results — including which fields a
2285
- # failing validation carries (exact request, response, JSON Pointer, expected
2286
- # vs. actual, schema $id, schema URL) and how skipped storyboards MUST
2287
- # distinguish not_applicable vs. no_phases vs. missing_tool — is defined in
2288
- # runner-output-contract.yaml. Storyboard authors SHOULD assume failures will
2289
- # be rendered with that detail and write descriptions accordingly.
2290
- #
2291
- # Runner grading codes introduced by the context accumulator and fixture
2292
- # seeding:
2293
- #
2294
- # capture_path_not_resolvable
2295
- # Emitted on the capturing step when a `context_outputs:` entry's
2296
- # `path` does not resolve to a usable value in the step's response body.
2297
- # The step grades as failed — the capture declared a contract that the
2298
- # response did not meet. Distinct from unresolved_substitution so tooling
2299
- # can discriminate "producer contract breach" from "consumer missing
2300
- # state."
2301
- #
2302
- # "Does not resolve to a usable value" covers all three cases:
2303
- # 1. Path structurally absent (e.g. `signals[0]` when array is empty)
2304
- # 2. Path present but value is null
2305
- # 3. Path present but value is "" (empty string)
2306
- # Capturing null or "" produces fabricated downstream state and is as
2307
- # incorrect as a missing path; runners MUST treat all three as failures.
2308
- #
2309
- # Output shape: runner-output-contract.yaml > validation_result, with
2310
- # check: capture_path_not_resolvable, expected: the declared path string,
2311
- # actual: the resolved value (or null if absent), json_pointer: RFC 6901
2312
- # form of the path.
2313
- #
2314
- # unresolved_substitution
2315
- # Emitted on a consumer step when a referenced $context.<name> or
2316
- # {{prior_step.<id>.<field>}} value is not populated at step-execution
2317
- # time (either because the producer step failed, was skipped, or never
2318
- # ran). The step grades as failed. Also used at preflight when a
2319
- # substitution is statically unresolvable (e.g., {{runner.webhook_url:*}}
2320
- # on a run with no webhook receiver) to grade the entire storyboard
2321
- # not_applicable before execution. A `$build_assets_from_format`
2322
- # directive whose valid captured format cannot be satisfied by the
2323
- # runner's test-kit assets is not an unresolved substitution: it uses the
2324
- # storyboard-level not_applicable disposition with `skip_result.reason:
2325
- # fixture_unavailable` at the earliest preflight after the referenced
2326
- # format is captured and before any intervening side-effecting step. The
2327
- # runner terminates the remaining storyboard without prerequisite
2328
- # cascades. This runner-owned coverage gap MUST NOT count as a failed step.
2329
- #
2330
- # Output shape: runner-output-contract.yaml > validation_result, with
2331
- # check: unresolved_substitution, expected: the unresolved token string,
2332
- # actual: null, json_pointer: null (pre-wire failure — no response
2333
- # payload available).
2334
- #
2335
- # fixture_seed_unsupported
2336
- # Emitted when a storyboard's `prerequisites.controller_seeding` requires
2337
- # a seed_* scenario the seller does not implement (returned as
2338
- # UNKNOWN_SCENARIO). The storyboard grades not_applicable (coverage gap),
2339
- # not failed.
2340
- #
2341
- # unresolved_scenario_reference
2342
- # A detailed sub-reason under the canonical skip `reason:
2343
- # not_applicable`. Emitted when a parent storyboard's
2344
- # `requires_scenarios:` entry cannot be resolved against the source
2345
- # tree (no file declares that `id:`). Per the
2346
- # `detailed_reason_mapping` convention in runner-output-contract.yaml,
2347
- # runners MUST populate the canonical `reason: not_applicable` and
2348
- # encode `unresolved_scenario_reference` in `detail`. detail MUST
2349
- # follow the shape
2350
- # 'requires_scenarios reference "<scenario_id>" did not resolve
2351
- # against the source tree' — and when multiple references are
2352
- # unresolved, detail MUST enumerate every unresolved id with the
2353
- # same shape (comma-separated or newline-delimited) so downstream
2354
- # tooling can parse each. Runners MUST NOT silently pass the parent
2355
- # as if the missing scenario had contributed.
2356
- #
2357
- # Distinct from `fixture_seed_unsupported`: that reason indicates an
2358
- # agent-coverage gap (seller doesn't implement a seed scenario);
2359
- # `unresolved_scenario_reference` indicates a source-tree authoring
2360
- # bug that the build-time lint SHOULD have caught. Dashboards and
2361
- # summary reports SHOULD NOT conflate the two when aggregating
2362
- # `not_applicable` counts — they are categorically different
2363
- # signals.
2364
- #
2365
- # The `lint:storyboard-branch-sets` script surfaces this as a
2366
- # build-time error via the `unresolved_scenario_reference` rule so
2367
- # unresolved references in a well-linted corpus never reach a
2368
- # runner. The runner-side grading is defensive for corpora that
2369
- # bypass the lint or come from pre-lint CI states.
2370
- #
2371
- # --- Webhook receiver (optional, for outbound-webhook conformance) ---
2372
- #
2373
- # Storyboards that verify outbound webhook conformance (signing, idempotency_key
2374
- # presence, idempotency_key stability across retries) require the runner to host
2375
- # a webhook receiver during test execution. The receiver URL is injected into
2376
- # push_notification_config on steps that trigger webhooks, and a subsequent
2377
- # expect_webhook* step asserts on what arrived.
2378
- #
2379
- # Receiver behavior is specified by a test-kit contract referenced from the
2380
- # storyboard's prerequisites.test_kit field — see test-kits/webhook-receiver-runner.yaml
2381
- # for the reference contract (endpoint modes, retry-replay shape, client-primitive
2382
- # hooks). Storyboard authors MUST declare the contract in prerequisites; the
2383
- # webhook-emission universal (universal/webhook-emission.yaml) is the reference
2384
- # consumer, including idempotency replay side-effect assertions that need
2385
- # webhook observation. Keep those assertions on webhook-specific storyboards so
2386
- # core idempotency requests do not depend on runner-only URL templating.
2387
- #
2388
- # --- Substitution variables (webhook-receiver enabled) ---
2389
- #
2390
- # When a storyboard's test-kit contract declares a webhook_receiver, the runner
2391
- # exposes these substitutions for use in sample_request payloads and expectations:
2392
- #
2393
- # {{runner.webhook_base}} → HTTPS base of the runner's receiver for this run
2394
- # {{runner.webhook_url:<step_id>}} → per-step URL; unique per step
2395
- # The URL may contain a runner-internal
2396
- # capture id for receiver routing. That id
2397
- # is not the protocol operation_id. When a
2398
- # request includes
2399
- # push_notification_config.operation_id,
2400
- # the runner MUST make any URL capture id
2401
- # distinct so sellers that parse the URL
2402
- # fail a filter.body.operation_id payload
2403
- # assertion.
2404
- #
2405
- # Per-step receivers are the only supported shape in v1 so each step's
2406
- # expect_webhook matches only its own deliveries. Fan-in scenarios are deferred
2407
- # (see "shared_receiver" note below).
2408
- #
2409
- # --- Webhook-assertion steps ---
2410
- #
2411
- # The following step `task` values are only valid when the storyboard's test-kit
2412
- # declares a webhook_receiver. They are scheduled alongside regular task steps
2413
- # and reference earlier steps by id.
2414
- #
2415
- # task: expect_webhook
2416
- # Wait up to `timeout_seconds` (default 30) for a webhook delivered to the
2417
- # triggered receiver, validate the payload, then apply the filter. Runner
2418
- # delegates to the `@adcp/client` AsyncHandler; the webhook is observed via
2419
- # onActivity with type webhook_received, and WebhookMetadata (including
2420
- # idempotency_key) is provided by the client.
2421
- #
2422
- # `triggered_by` scopes the assertion to the per-step receiver URL. Payload
2423
- # fields are matched through `filter.body` using dotted paths. Authors MUST
2424
- # use `filter.body.operation_id` to assert the protocol payload operation_id;
2425
- # `filter.operation_id` is reserved for runner receiver routing and is not the
2426
- # protocol correlation field.
2427
- #
2428
- # Fields:
2429
- # triggered_by: <step_id> # earlier step whose task triggered this webhook
2430
- # filter:
2431
- # body: # match by webhook payload fields, never URL path
2432
- # operation_id: "op_explicit_from_push_notification_config"
2433
- # status: "completed" # optional; match any status if omitted
2434
- # timeout_seconds: 30 # optional; fail if no match within window
2435
- # expect_idempotency_key: true # default true; assert the key is present and pattern-valid
2436
- # webhook_payload_schema_ref: <path>
2437
- # # optional — validate payload against the webhook schema
2438
- # # (distinct from step-level `schema_ref` and
2439
- # # `response_schema_ref`, which apply to the caller→agent
2440
- # # request/response. Webhook steps have no caller request,
2441
- # # so the payload schema is named explicitly to avoid
2442
- # # overload of schema_ref.)
2443
- # expect_max_deliveries_per_logical_event: 1
2444
- # # optional — if set, runner asserts at most N distinct
2445
- # # logical webhook events (grouped by idempotency_key)
2446
- # # arrive within the window. Used by idempotency storyboards
2447
- # # to catch duplicate-side-effect bugs where a seller
2448
- # # re-executes on replay with a fresh idempotency_key.
2449
- # requires_contract: <contract_id>
2450
- # # optional — step grades as not_applicable (not fail)
2451
- # # when the named test-kit contract is not in scope.
2452
- # # Used on cross-specialism assertions that depend on
2453
- # # webhook_receiver_runner being active.
2454
- #
2455
- # Error modes: no_webhook_received, schema_violation, missing_idempotency_key,
2456
- # invalid_idempotency_key_format, signature_invalid (when signature assertion
2457
- # on), duplicate_webhook_on_replay (when
2458
- # expect_max_deliveries_per_logical_event exceeded).
2459
- #
2460
- # task: expect_no_webhook
2461
- # Observe the receiver associated with `triggered_by` for the full bounded
2462
- # window and pass only when zero deliveries match `filter`. The default
2463
- # `timeout_seconds` is 5. The assertion fails immediately on the first match
2464
- # with `unexpected_webhook_received`; it does not validate a payload schema or
2465
- # require an idempotency_key on the passing path because no payload exists.
2466
- #
2467
- # Fields:
2468
- # triggered_by: <step_id>
2469
- # filter: { ... } # same shape as expect_webhook
2470
- # timeout_seconds: 5 # optional; default 5
2471
- #
2472
- # Error modes: unexpected_webhook_received.
2473
- #
2474
- # task: expect_webhook_retry_keys_stable
2475
- # The runner's webhook receiver deterministically returns 5xx for the first
2476
- # `retry_trigger.count` deliveries of the matching webhook, then 2xx. The
2477
- # runner asserts that every delivery within the retry window carries the
2478
- # byte-identical idempotency_key (the sender regenerating a key on retry is a
2479
- # conformance failure).
2480
- #
2481
- # Signature verification on every delivery in the retry loop: when 9421 is in
2482
- # effect (i.e., push_notification_config was registered without `authentication`),
2483
- # the runner MUST verify the 9421 signature on EVERY delivery including retries
2484
- # and MUST reuse the run-scoped (keyid, nonce) replay store (see test-kit
2485
- # client_primitives.signature_replay_store). A publisher that stably reuses
2486
- # idempotency_key (correct) but also reuses the 9421 `nonce` sig-param
2487
- # (incorrect — nonce MUST be fresh per delivery) would pass retry-stability
2488
- # but MUST fail signature-replay dedup on the second delivery. Running the two
2489
- # checks together catches this class of bug; a retry-stability step that skips
2490
- # signature verification hides it.
2491
- #
2492
- # Fields:
2493
- # triggered_by: <step_id>
2494
- # filter: { ... } # same shape as expect_webhook
2495
- # retry_trigger:
2496
- # count: 3 # runner returns 5xx for the first N deliveries.
2497
- # # MUST be 1 ≤ count ≤ 10 (test-kit
2498
- # # retry_replay_contract.max_count). Counts outside
2499
- # # the range fail storyboard validation; sellers
2500
- # # legitimately exercise N=3 for back-off sanity,
2501
- # # higher counts risk becoming DoS amplifiers in
2502
- # # proxy_url mode.
2503
- # http_status: 503 # optional; default 503. MUST be in
2504
- # # {429, 500, 502, 503, 504} (test-kit
2505
- # # retry_replay_contract.allowed_statuses). Other
2506
- # # statuses are not retryable signals for
2507
- # # at-least-once senders and fail validation.
2508
- # timeout_seconds: 90 # longer default — must cover sender's retry back-off
2509
- # expect_min_deliveries: 2 # fail if fewer deliveries observed within window
2510
- # verify_signature_on_every_delivery: true
2511
- # # default true when 9421 is in effect. Set false
2512
- # # ONLY when the storyboard is explicitly registered
2513
- # # for legacy HMAC mode; in 9421 mode, silently
2514
- # # disabling retry-delivery signature verification
2515
- # # hides nonce-replay bugs.
2516
- #
2517
- # Error modes: insufficient_retries, idempotency_key_rotated,
2518
- # idempotency_key_format_changed, signature_replayed (nonce reused across
2519
- # retries), signature_invalid (any retry delivery fails 9421).
2520
- #
2521
- # task: expect_webhook_signature_valid
2522
- # Assert that the inbound webhook passed the 9421 webhook-signing verifier
2523
- # checklist (see docs/building/implementation/security.mdx#verifier-checklist-for-webhooks).
2524
- # Runner delegates verification to `verifyWebhookSignature` from
2525
- # `@adcp/sdk/signing` (see test-kit contract). Negative conformance —
2526
- # signatures that MUST be rejected with a specific webhook_signature_* code —
2527
- # is exercised through the published static conformance vectors under
2528
- # /compliance/{version}/test-vectors/webhook-signing/, not by this step type.
2529
- #
2530
- # Cross-step replay dedup: the runner MUST share a single (keyid, nonce) replay
2531
- # store across ALL expect_webhook_signature_valid invocations (and all retry
2532
- # deliveries under expect_webhook_retry_keys_stable) in a storyboard run — see
2533
- # test-kit client_primitives.signature_replay_store. A per-step store would let
2534
- # a publisher reuse the same (keyid, nonce) bytes at two expect_webhook_signature_valid
2535
- # steps and pass both in isolation, silently missing cross-step replay.
2536
- #
2537
- # Fields:
2538
- # triggered_by: <step_id>
2539
- # filter: { ... } # same shape as expect_webhook
2540
- # timeout_seconds: 30
2541
- # require_tag: "adcp/webhook-signing/v1" # default; sanity check
2542
- #
2543
- # Error modes: signature_invalid, signature_expired, signature_key_unknown,
2544
- # signature_key_purpose_invalid, signature_digest_mismatch,
2545
- # signature_tag_invalid, signature_replayed.
2546
- #
2547
- # task: expect_substitution_safe
2548
- # Assert that a creative preview (preview_html or preview_url) contains
2549
- # substituted catalog-item macro values that are percent-encoded per RFC 3986
2550
- # (unreserved-whitelist), per docs/creative/universal-macros#substitution-safety-catalog-item-macros.
2551
- # Runner delegates HTML parsing, URL extraction, and the encoding check to
2552
- # the `@adcp/client` SubstitutionObserver primitive (see test-kit
2553
- # substitution-observer-runner.yaml). Catches implementations that pass raw
2554
- # attacker bytes through substitution, including CRLF injection, bidi-override
2555
- # spoofing, reserved-character URL breakout, and javascript:-scheme injection.
2556
- #
2557
- # Fields:
2558
- # source: html_inline | url_fetch # default html_inline
2559
- # source_path: "<JSON pointer into previous step's response>"
2560
- # macro_template: "<URL template with {MACRO} placeholders>"
2561
- # catalog_bindings:
2562
- # - macro: "{SKU}"
2563
- # catalog_item_id: "<item_id in the synced catalog>"
2564
- # vector_name: "<fixture entry name, e.g. reserved-character-breakout>"
2565
- # # Optional overrides for custom (non-canonical-fixture) vectors:
2566
- # # raw_value: "<attacker-shaped input>"
2567
- # # expected_encoded: "<RFC 3986 unreserved-encoded form>"
2568
- # require_every_binding_observed: true # default true. Opt to false only
2569
- # # when preview shows a partial
2570
- # # catalog and partial observation
2571
- # # is legitimate (document why in
2572
- # # the narrative). The old field
2573
- # # name require_all_bindings_observed
2574
- # # is deprecated.
2575
- # requires_contract: substitution_observer_runner
2576
- #
2577
- # Error modes: substitution_encoding_violation, nested_macro_re_expansion,
2578
- # substitution_scheme_injection, substitution_binding_missing,
2579
- # preview_source_unavailable, preview_url_unusable (with sub-reason:
2580
- # http_status | content_type | size_exceeded | redirect_returned |
2581
- # ssrf_blocked | fetch_timeout).
2582
- #
2583
- # task: expect_rate_limit_not_replayed
2584
- # Assert that a `RATE_LIMITED` response on idempotency-cache insert MUST NOT
2585
- # be cached as the canonical replay for that idempotency_key, per
2586
- # L1/security.mdx#idempotency rule 3 ("Only successful responses are cached")
2587
- # and bullet 8 (insert-rate ceiling). The runner drives a sequential fresh-
2588
- # key burst against the named mutating-op target until a RATE_LIMITED
2589
- # response appears, then re-submits the same idempotency_key after waiting
2590
- # the RATE_LIMITED response's top-level `error.retry_after` seconds. The cross-step assertion fails if the
2591
- # replay returned the cached RATE_LIMITED response shape.
2592
- #
2593
- # When `max_attempts` requests complete without producing a RATE_LIMITED
2594
- # response, the step grades with `skip_result.reason: not_applicable` and
2595
- # `skip_result.detail: rate_limit_not_triggered` — a seller's sandbox limiter
2596
- # may legitimately sit above the contract's burst ceiling. Runner delegates the burst,
2597
- # wait, and replay mechanics to the `@adcp/client` RateLimitTripObserver
2598
- # primitive (see test-kit rate-limit-trip-runner.yaml).
2599
- #
2600
- # Fields:
2601
- # rate_limit_trip:
2602
- # trip_target_task: "<task name, e.g. create_media_buy>"
2603
- # # the mutating-op the burst targets
2604
- # trip_target_sample_request: { ... }
2605
- # # full canonical request body; the runner
2606
- # # rewrites `idempotency_key` per attempt
2607
- # # and on the replay reuses the captured key
2608
- # max_attempts: 200 # 50–500; see test-kit max_attempts bounds
2609
- # replay_max_wait_seconds: 30 # optional; caps the post-trip wait. Sellers
2610
- # # returning retry_after > this fail with
2611
- # # `replay_wait_exceeded` rather than the
2612
- # # invariant itself.
2613
- # requires_contract: rate_limit_trip_runner
2614
- #
2615
- # Failure outcomes: rate_limit_response_cached_as_replay,
2616
- # missing_retry_after, replay_wait_exceeded.
2617
- #
2618
- # Not-applicable outcome: rate_limit_not_triggered. This is emitted when
2619
- # max_attempts exhausts without observing RATE_LIMITED and MUST NOT be
2620
- # counted as a seller conformance failure.
2621
- #
2622
- # --- shared_receiver (deferred / out of scope v1) ---
2623
- #
2624
- # Storyboards with multiple webhook-triggering steps MUST use per-step receiver
2625
- # URLs; the default substitution `{{runner.webhook_url:<step_id>}}` gives each
2626
- # step its own receiver so expect_webhook scopes cleanly. A `shared_receiver: true`
2627
- # flag on an emitting step would route all emissions from that step to a shared
2628
- # bucket (for fan-in dedup tests), but the mechanics — filter matching across
2629
- # multiple emitters, retry-replay policy precedence, shared replay store scoping —
2630
- # are underspecified. shared_receiver is OUT OF SCOPE for the first
2631
- # webhook-emission universal release; storyboard authors MUST NOT set it. Future
2632
- # fan-in storyboards will either flesh out the semantics or adopt a different
2633
- # idiom (e.g., per-step receivers with cross-step assertions on aggregate
2634
- # observations).
2635
- #
2636
- # --- Context accumulator and substitution ---
2637
- #
2638
- # The runner maintains a storyboard-run-scoped context accumulator populated from
2639
- # three sources (evaluated in this precedence, high to low):
2640
- #
2641
- # 1. Step `context_outputs:` captures (populated after a step's validations pass)
2642
- # 2. Storyboard-root `context:` block (literal values fixed at run start)
2643
- # 3. Test-kit substitutions where explicitly scoped into context
2644
- #
2645
- # Two substitution syntaxes are supported in `sample_request` payloads:
2646
- #
2647
- # $context.<name> — single-token substitution. The runner replaces
2648
- # the literal string "$context.<name>" with the
2649
- # captured value. Example:
2650
- # account_id: '$context.account_id'
2651
- # resolves to the account_id captured from an
2652
- # earlier step. Works inside scalar values and
2653
- # inside array elements.
2654
- #
2655
- # {{prior_step.<id>.<field>}} — Mustache-style interpolation for webhook
2656
- # filters, operation_id matching, and any other
2657
- # cross-step reference. Resolves against the
2658
- # named prior step's captured response fields.
2659
- # Used by expect_webhook and expect_*_webhook_*
2660
- # assertion steps (see Webhook-assertion steps
2661
- # above) and by storyboards correlating an
2662
- # async operation_id across steps.
2663
- #
2664
- # Runner requirements:
2665
- # - Substitution runs at step-execution time, after resolving the test-kit
2666
- # overlay and before applying auth. The agent under test receives the
2667
- # substituted value — it MUST NOT see the literal `$context.foo` or `{{...}}`
2668
- # token on the wire (see Unresolved substitution behavior below for the one
2669
- # legitimate exception: preflight not_applicable grading when a substitution
2670
- # is statically unresolvable).
2671
- # - $context.<name> referencing an unpopulated name (the capturing step failed
2672
- # or did not run) grades the referencing step as failed with
2673
- # `unresolved_substitution`. The storyboard MUST NOT proceed with a fabricated
2674
- # default — test outcomes on synthesized state are not signal.
2675
- # - Captured values are typed as the JSON path resolved against the response;
2676
- # numeric and object captures are preserved (they do not round-trip through
2677
- # string coercion).
2678
- # - When the per-task request builder discards body fields and
2679
- # `$context.<name>` inside `sample_request` never reaches the wire (the
2680
- # observable symptom is the agent answering with an unfiltered result
2681
- # and the round-trip assertion grading on fabricated state), use
2682
- # `context_inputs:` as the post-builder injection path. See the
2683
- # `context_inputs:` field definition above for the full semantics and
2684
- # when it is acceptable to reach for.
2685
- #
2686
- # --- Context echo contract (agent-facing) ---
2687
- #
2688
- # Agents under test MUST obey the following when a storyboard sends a `context:`
2689
- # block on its sample_request:
2690
- #
2691
- # 1. Successful responses MUST echo the `context` object verbatim. The agent
2692
- # MUST NOT mutate, filter, or reorder fields. The echo applies whether the
2693
- # response is synchronous (`completed`) or asynchronous (`submitted` /
2694
- # `working`).
2695
- # 2. Error responses MUST also echo the `context` object verbatim. Context is
2696
- # used as a correlation surface; dropping it on failure prevents buyers from
2697
- # correlating errors with the originating call.
2698
- # 3. Agents MUST NOT synthesize a `context` object when the caller did not
2699
- # send one. A storyboard whose `sample_request` lacks `context:` MUST see
2700
- # the response lack `context:` — fabricating `{ correlation_id: "..." }` on
2701
- # the agent side is a conformance failure because the storyboard validator
2702
- # is asserting on what-the-caller-sent, not what-the-agent-invented.
2703
- # 4. Agents MUST NOT parse or act on `context` contents — see
2704
- # docs/building/integration/context-sessions.mdx for the normative
2705
- # agent-facing rules. The storyboard runner's validators rely on verbatim
2706
- # echo and will fail any mutation.
2707
- #
2708
- # Runners MUST NOT auto-inject an implicit `context:` block on sample_request
2709
- # payloads the storyboard did not declare. Storyboards that want to assert on
2710
- # `context.correlation_id` MUST declare the context block explicitly on each
2711
- # sample_request. This keeps the sample_request an honest shape of what the
2712
- # agent will receive, and prevents an agent from passing only because the
2713
- # runner compensated for its missing contract.
2714
- #
2715
- # --- Unresolved substitution behavior ---
2716
- #
2717
- # When a storyboard references a substitution variable the runner cannot
2718
- # resolve — whether a `$context.*` token or a `{{...}}` token, including tokens
2719
- # nested in object properties or array elements — the runner MUST NOT ship the
2720
- # literal token to the agent under test. Shipping unresolved substitutions is a
2721
- # conformance bug on the runner side, not a grading signal about the agent.
2722
- #
2723
- # Runners MUST resolve substitutions at one of two preflight points:
2724
- # 1. Before the storyboard run starts — if any step references an unresolvable
2725
- # substitution, grade the storyboard as not_applicable with
2726
- # `unresolved_substitution` as the reason, and skip execution entirely.
2727
- # This is the preferred behavior for absent webhook receivers.
2728
- # 2. Before individual step execution — if a later-computed substitution
2729
- # (e.g., {{prior_step.<id>.task_id}}) fails to resolve, grade the
2730
- # step as failed with `unresolved_substitution`.
2731
- #
2732
- # Exception for runner-owned creative-asset coverage: a
2733
- # `$build_assets_from_format` directive can only be resolved after a prior step
2734
- # captures the seller's valid format contract. If the format context exists but
2735
- # the runner's test kit cannot synthesize every required slot, the runner MUST
2736
- # apply a storyboard-level `not_applicable` disposition with
2737
- # `skip_result.reason: fixture_unavailable` at the earliest preflight after the
2738
- # referenced format is captured, not wait until the directive-bearing step.
2739
- # This preflight MUST occur before any intervening side-effecting step. The
2740
- # runner then terminates the remaining storyboard without executing later
2741
- # phases or emitting `prerequisite_failed` cascades. If the format context itself
2742
- # is absent because its producer failed or was skipped, point 2 and the normal
2743
- # prerequisite cascade still apply.
2744
- #
2745
- # Neither path may ship a literal `$context.*` or `{{...}}` token on the wire.