@adcp/sdk 6.8.0 → 6.9.0

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 (837) hide show
  1. package/ADCP_VERSION +1 -1
  2. package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/inventory_list_targeting.yaml +5 -0
  3. package/compliance/cache/{3.0.5 → 3.0.6}/index.json +2 -2
  4. package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +5 -0
  5. package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-guaranteed/index.yaml +1 -1
  6. package/compliance/cache/{3.0.5 → 3.0.6}/universal/storyboard-schema.yaml +15 -0
  7. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  8. package/dist/lib/core/AgentClient.js +20 -0
  9. package/dist/lib/core/AgentClient.js.map +1 -1
  10. package/dist/lib/mock-server/creative-template/seed-data.d.ts +1 -1
  11. package/dist/lib/mock-server/creative-template/seed-data.d.ts.map +1 -1
  12. package/dist/lib/mock-server/creative-template/seed-data.js +53 -0
  13. package/dist/lib/mock-server/creative-template/seed-data.js.map +1 -1
  14. package/dist/lib/mock-server/creative-template/server.d.ts.map +1 -1
  15. package/dist/lib/mock-server/creative-template/server.js +12 -0
  16. package/dist/lib/mock-server/creative-template/server.js.map +1 -1
  17. package/dist/lib/schemas-data/3.0/a2ui/bound-value.json +1 -1
  18. package/dist/lib/schemas-data/3.0/a2ui/component.json +1 -1
  19. package/dist/lib/schemas-data/3.0/a2ui/si-catalog.json +25 -25
  20. package/dist/lib/schemas-data/3.0/a2ui/surface.json +2 -2
  21. package/dist/lib/schemas-data/3.0/a2ui/user-action.json +1 -1
  22. package/dist/lib/schemas-data/3.0/account/get-account-financials-request.json +5 -5
  23. package/dist/lib/schemas-data/3.0/account/get-account-financials-response.json +10 -10
  24. package/dist/lib/schemas-data/3.0/account/list-accounts-request.json +4 -4
  25. package/dist/lib/schemas-data/3.0/account/list-accounts-response.json +6 -6
  26. package/dist/lib/schemas-data/3.0/account/report-usage-request.json +5 -5
  27. package/dist/lib/schemas-data/3.0/account/report-usage-response.json +4 -4
  28. package/dist/lib/schemas-data/3.0/account/sync-accounts-request.json +9 -9
  29. package/dist/lib/schemas-data/3.0/account/sync-accounts-response.json +12 -12
  30. package/dist/lib/schemas-data/3.0/account/sync-governance-request.json +5 -5
  31. package/dist/lib/schemas-data/3.0/account/sync-governance-response.json +8 -8
  32. package/dist/lib/schemas-data/3.0/adagents.json +32 -32
  33. package/dist/lib/schemas-data/3.0/brand/acquire-rights-request.json +8 -8
  34. package/dist/lib/schemas-data/3.0/brand/acquire-rights-response.json +14 -14
  35. package/dist/lib/schemas-data/3.0/brand/creative-approval-request.json +4 -4
  36. package/dist/lib/schemas-data/3.0/brand/creative-approval-response.json +10 -10
  37. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-request.json +3 -3
  38. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-response.json +8 -8
  39. package/dist/lib/schemas-data/3.0/brand/get-rights-request.json +7 -7
  40. package/dist/lib/schemas-data/3.0/brand/get-rights-response.json +9 -9
  41. package/dist/lib/schemas-data/3.0/brand/revocation-notification.json +4 -4
  42. package/dist/lib/schemas-data/3.0/brand/rights-pricing-option.json +5 -5
  43. package/dist/lib/schemas-data/3.0/brand/rights-terms.json +3 -3
  44. package/dist/lib/schemas-data/3.0/brand/update-rights-request.json +4 -4
  45. package/dist/lib/schemas-data/3.0/brand/update-rights-response.json +9 -9
  46. package/dist/lib/schemas-data/3.0/brand.json +14 -14
  47. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-request.json +2 -2
  48. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-response.json +2 -2
  49. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-request.json +2 -2
  50. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-response.json +2 -2
  51. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-request.json +2 -2
  52. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-response.json +2 -2
  53. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-request.json +2 -2
  54. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-response.json +2 -2
  55. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-request.json +2 -2
  56. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-response.json +2 -2
  57. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-request.json +2 -2
  58. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-response.json +2 -2
  59. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-request.json +2 -2
  60. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-response.json +2 -2
  61. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-request.json +2 -2
  62. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-response.json +2 -2
  63. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-request.json +2 -2
  64. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-response.json +2 -2
  65. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-request.json +2 -2
  66. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-response.json +2 -2
  67. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-request.json +2 -2
  68. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-response.json +2 -2
  69. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-request.json +2 -2
  70. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-response.json +2 -2
  71. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-request.json +2 -2
  72. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-response.json +2 -2
  73. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-request.json +2 -2
  74. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-response.json +2 -2
  75. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-request.json +2 -2
  76. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-response.json +2 -2
  77. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-request.json +2 -2
  78. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-response.json +2 -2
  79. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-request.json +2 -2
  80. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-response.json +2 -2
  81. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-request.json +2 -2
  82. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-response.json +2 -2
  83. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-request.json +2 -2
  84. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-response.json +2 -2
  85. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-request.json +2 -2
  86. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-response.json +2 -2
  87. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-request.json +2 -2
  88. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-response.json +2 -2
  89. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-request.json +2 -2
  90. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-response.json +2 -2
  91. package/dist/lib/schemas-data/3.0/bundled/media-buy/package-request.json +2 -2
  92. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-request.json +2 -2
  93. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-response.json +2 -2
  94. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-request.json +2 -2
  95. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-response.json +2 -2
  96. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-request.json +2 -2
  97. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-response.json +2 -2
  98. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-request.json +2 -2
  99. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-response.json +2 -2
  100. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-request.json +2 -2
  101. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-response.json +2 -2
  102. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-request.json +2 -2
  103. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-response.json +2 -2
  104. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-request.json +2 -2
  105. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-response.json +2 -2
  106. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-request.json +2 -2
  107. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-response.json +2 -2
  108. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-request.json +2 -2
  109. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-response.json +2 -2
  110. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-request.json +2 -2
  111. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-response.json +2 -2
  112. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-request.json +2 -2
  113. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-response.json +2 -2
  114. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-request.json +2 -2
  115. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-response.json +2 -2
  116. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-request.json +2 -2
  117. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-response.json +2 -2
  118. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-request.json +2 -2
  119. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-response.json +2 -2
  120. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-request.json +2 -2
  121. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-response.json +2 -2
  122. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-request.json +2 -2
  123. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-response.json +2 -2
  124. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-request.json +2 -2
  125. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-response.json +2 -2
  126. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-request.json +2 -2
  127. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-response.json +2 -2
  128. package/dist/lib/schemas-data/3.0/collection/base-collection-source.json +3 -3
  129. package/dist/lib/schemas-data/3.0/collection/collection-list-changed-webhook.json +2 -2
  130. package/dist/lib/schemas-data/3.0/collection/collection-list-filters.json +7 -7
  131. package/dist/lib/schemas-data/3.0/collection/collection-list.json +5 -5
  132. package/dist/lib/schemas-data/3.0/collection/create-collection-list-request.json +7 -7
  133. package/dist/lib/schemas-data/3.0/collection/create-collection-list-response.json +4 -4
  134. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-request.json +4 -4
  135. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-response.json +3 -3
  136. package/dist/lib/schemas-data/3.0/collection/get-collection-list-request.json +4 -4
  137. package/dist/lib/schemas-data/3.0/collection/get-collection-list-response.json +10 -10
  138. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-request.json +5 -5
  139. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-response.json +5 -5
  140. package/dist/lib/schemas-data/3.0/collection/update-collection-list-request.json +7 -7
  141. package/dist/lib/schemas-data/3.0/collection/update-collection-list-response.json +4 -4
  142. package/dist/lib/schemas-data/3.0/content-standards/artifact-webhook-payload.json +3 -3
  143. package/dist/lib/schemas-data/3.0/content-standards/artifact.json +7 -7
  144. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-request.json +4 -4
  145. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-response.json +8 -8
  146. package/dist/lib/schemas-data/3.0/content-standards/content-standards.json +7 -7
  147. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-request.json +7 -7
  148. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-response.json +6 -6
  149. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-request.json +3 -3
  150. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-response.json +7 -7
  151. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-request.json +4 -4
  152. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-response.json +8 -8
  153. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-request.json +5 -5
  154. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-response.json +8 -8
  155. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-request.json +7 -7
  156. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-response.json +6 -6
  157. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-request.json +4 -4
  158. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-response.json +8 -8
  159. package/dist/lib/schemas-data/3.0/core/account-ref.json +2 -2
  160. package/dist/lib/schemas-data/3.0/core/account.json +9 -9
  161. package/dist/lib/schemas-data/3.0/core/activation-key.json +1 -1
  162. package/dist/lib/schemas-data/3.0/core/ad-inventory-config.json +1 -1
  163. package/dist/lib/schemas-data/3.0/core/agent-encryption-key.json +1 -1
  164. package/dist/lib/schemas-data/3.0/core/agent-signing-key.json +1 -1
  165. package/dist/lib/schemas-data/3.0/core/app-item.json +4 -4
  166. package/dist/lib/schemas-data/3.0/core/assets/asset-union.json +15 -15
  167. package/dist/lib/schemas-data/3.0/core/assets/audio-asset.json +3 -3
  168. package/dist/lib/schemas-data/3.0/core/assets/brief-asset.json +2 -2
  169. package/dist/lib/schemas-data/3.0/core/assets/catalog-asset.json +2 -2
  170. package/dist/lib/schemas-data/3.0/core/assets/css-asset.json +2 -2
  171. package/dist/lib/schemas-data/3.0/core/assets/daast-asset.json +4 -4
  172. package/dist/lib/schemas-data/3.0/core/assets/html-asset.json +2 -2
  173. package/dist/lib/schemas-data/3.0/core/assets/image-asset.json +2 -2
  174. package/dist/lib/schemas-data/3.0/core/assets/javascript-asset.json +3 -3
  175. package/dist/lib/schemas-data/3.0/core/assets/markdown-asset.json +2 -2
  176. package/dist/lib/schemas-data/3.0/core/assets/text-asset.json +2 -2
  177. package/dist/lib/schemas-data/3.0/core/assets/url-asset.json +3 -3
  178. package/dist/lib/schemas-data/3.0/core/assets/vast-asset.json +4 -4
  179. package/dist/lib/schemas-data/3.0/core/assets/video-asset.json +7 -7
  180. package/dist/lib/schemas-data/3.0/core/assets/webhook-asset.json +7 -7
  181. package/dist/lib/schemas-data/3.0/core/async-response-data.json +25 -25
  182. package/dist/lib/schemas-data/3.0/core/attribution-window.json +4 -4
  183. package/dist/lib/schemas-data/3.0/core/audience-member.json +3 -3
  184. package/dist/lib/schemas-data/3.0/core/audience-selector.json +4 -4
  185. package/dist/lib/schemas-data/3.0/core/brand-id.json +1 -1
  186. package/dist/lib/schemas-data/3.0/core/brand-ref.json +2 -2
  187. package/dist/lib/schemas-data/3.0/core/business-entity.json +2 -2
  188. package/dist/lib/schemas-data/3.0/core/cancellation-policy.json +2 -2
  189. package/dist/lib/schemas-data/3.0/core/catalog-field-mapping.json +2 -2
  190. package/dist/lib/schemas-data/3.0/core/catalog.json +7 -7
  191. package/dist/lib/schemas-data/3.0/core/catchment.json +5 -5
  192. package/dist/lib/schemas-data/3.0/core/collection-distribution.json +2 -2
  193. package/dist/lib/schemas-data/3.0/core/collection-list-ref.json +1 -1
  194. package/dist/lib/schemas-data/3.0/core/collection-selector.json +1 -1
  195. package/dist/lib/schemas-data/3.0/core/collection.json +13 -13
  196. package/dist/lib/schemas-data/3.0/core/content-rating.json +2 -2
  197. package/dist/lib/schemas-data/3.0/core/context.json +1 -1
  198. package/dist/lib/schemas-data/3.0/core/creative-asset.json +6 -6
  199. package/dist/lib/schemas-data/3.0/core/creative-assignment.json +1 -1
  200. package/dist/lib/schemas-data/3.0/core/creative-brief.json +4 -4
  201. package/dist/lib/schemas-data/3.0/core/creative-consumption.json +1 -1
  202. package/dist/lib/schemas-data/3.0/core/creative-filters.json +4 -4
  203. package/dist/lib/schemas-data/3.0/core/creative-item.json +1 -1
  204. package/dist/lib/schemas-data/3.0/core/creative-manifest.json +7 -7
  205. package/dist/lib/schemas-data/3.0/core/creative-policy.json +3 -3
  206. package/dist/lib/schemas-data/3.0/core/creative-variable.json +1 -1
  207. package/dist/lib/schemas-data/3.0/core/creative-variant.json +5 -5
  208. package/dist/lib/schemas-data/3.0/core/data-provider-signal-selector.json +1 -1
  209. package/dist/lib/schemas-data/3.0/core/date-range.json +1 -1
  210. package/dist/lib/schemas-data/3.0/core/datetime-range.json +1 -1
  211. package/dist/lib/schemas-data/3.0/core/daypart-target.json +2 -2
  212. package/dist/lib/schemas-data/3.0/core/deadline-policy.json +1 -1
  213. package/dist/lib/schemas-data/3.0/core/delivery-forecast.json +7 -7
  214. package/dist/lib/schemas-data/3.0/core/delivery-metrics.json +5 -5
  215. package/dist/lib/schemas-data/3.0/core/deployment.json +3 -3
  216. package/dist/lib/schemas-data/3.0/core/destination-item.json +4 -4
  217. package/dist/lib/schemas-data/3.0/core/destination.json +1 -1
  218. package/dist/lib/schemas-data/3.0/core/diagnostic-issue.json +1 -1
  219. package/dist/lib/schemas-data/3.0/core/duration.json +1 -1
  220. package/dist/lib/schemas-data/3.0/core/education-item.json +4 -4
  221. package/dist/lib/schemas-data/3.0/core/error.json +1 -1
  222. package/dist/lib/schemas-data/3.0/core/event-custom-data.json +2 -2
  223. package/dist/lib/schemas-data/3.0/core/event-source-health.json +3 -3
  224. package/dist/lib/schemas-data/3.0/core/event.json +6 -6
  225. package/dist/lib/schemas-data/3.0/core/ext.json +1 -1
  226. package/dist/lib/schemas-data/3.0/core/feature-requirement.json +1 -1
  227. package/dist/lib/schemas-data/3.0/core/flight-item.json +4 -4
  228. package/dist/lib/schemas-data/3.0/core/forecast-point.json +18 -18
  229. package/dist/lib/schemas-data/3.0/core/forecast-range.json +1 -1
  230. package/dist/lib/schemas-data/3.0/core/format-id.json +1 -1
  231. package/dist/lib/schemas-data/3.0/core/format.json +42 -42
  232. package/dist/lib/schemas-data/3.0/core/frequency-cap.json +4 -4
  233. package/dist/lib/schemas-data/3.0/core/generation-credential.json +3 -3
  234. package/dist/lib/schemas-data/3.0/core/geo-breakdown-support.json +3 -3
  235. package/dist/lib/schemas-data/3.0/core/hotel-item.json +4 -4
  236. package/dist/lib/schemas-data/3.0/core/identifier.json +2 -2
  237. package/dist/lib/schemas-data/3.0/core/industry-identifier.json +2 -2
  238. package/dist/lib/schemas-data/3.0/core/insertion-order.json +1 -1
  239. package/dist/lib/schemas-data/3.0/core/installment-deadlines.json +2 -2
  240. package/dist/lib/schemas-data/3.0/core/installment.json +9 -9
  241. package/dist/lib/schemas-data/3.0/core/job-item.json +3 -3
  242. package/dist/lib/schemas-data/3.0/core/limited-series.json +1 -1
  243. package/dist/lib/schemas-data/3.0/core/material-deadline.json +1 -1
  244. package/dist/lib/schemas-data/3.0/core/mcp-webhook-payload.json +5 -5
  245. package/dist/lib/schemas-data/3.0/core/measurement-readiness.json +5 -5
  246. package/dist/lib/schemas-data/3.0/core/measurement-terms.json +3 -3
  247. package/dist/lib/schemas-data/3.0/core/measurement-window.json +1 -1
  248. package/dist/lib/schemas-data/3.0/core/media-buy-features.json +1 -1
  249. package/dist/lib/schemas-data/3.0/core/media-buy.json +7 -7
  250. package/dist/lib/schemas-data/3.0/core/offering-asset-group.json +15 -15
  251. package/dist/lib/schemas-data/3.0/core/offering.json +5 -5
  252. package/dist/lib/schemas-data/3.0/core/optimization-goal.json +6 -6
  253. package/dist/lib/schemas-data/3.0/core/outcome-measurement.json +2 -2
  254. package/dist/lib/schemas-data/3.0/core/overlay.json +1 -1
  255. package/dist/lib/schemas-data/3.0/core/package.json +14 -14
  256. package/dist/lib/schemas-data/3.0/core/pagination-request.json +1 -1
  257. package/dist/lib/schemas-data/3.0/core/pagination-response.json +1 -1
  258. package/dist/lib/schemas-data/3.0/core/performance-feedback.json +3 -3
  259. package/dist/lib/schemas-data/3.0/core/performance-standard.json +4 -4
  260. package/dist/lib/schemas-data/3.0/core/placement-definition.json +5 -5
  261. package/dist/lib/schemas-data/3.0/core/placement.json +2 -2
  262. package/dist/lib/schemas-data/3.0/core/planned-delivery.json +5 -5
  263. package/dist/lib/schemas-data/3.0/core/price.json +1 -1
  264. package/dist/lib/schemas-data/3.0/core/pricing-option.json +10 -10
  265. package/dist/lib/schemas-data/3.0/core/product-allocation.json +4 -4
  266. package/dist/lib/schemas-data/3.0/core/product-filters.json +16 -16
  267. package/dist/lib/schemas-data/3.0/core/product.json +28 -28
  268. package/dist/lib/schemas-data/3.0/core/property-id.json +1 -1
  269. package/dist/lib/schemas-data/3.0/core/property-list-ref.json +1 -1
  270. package/dist/lib/schemas-data/3.0/core/property-tag.json +1 -1
  271. package/dist/lib/schemas-data/3.0/core/property.json +6 -6
  272. package/dist/lib/schemas-data/3.0/core/proposal.json +6 -6
  273. package/dist/lib/schemas-data/3.0/core/protocol-envelope.json +3 -3
  274. package/dist/lib/schemas-data/3.0/core/provenance.json +6 -6
  275. package/dist/lib/schemas-data/3.0/core/publisher-property-selector.json +3 -3
  276. package/dist/lib/schemas-data/3.0/core/push-notification-config.json +2 -2
  277. package/dist/lib/schemas-data/3.0/core/real-estate-item.json +4 -4
  278. package/dist/lib/schemas-data/3.0/core/reference-asset.json +1 -1
  279. package/dist/lib/schemas-data/3.0/core/reporting-capabilities.json +5 -5
  280. package/dist/lib/schemas-data/3.0/core/reporting-webhook.json +3 -3
  281. package/dist/lib/schemas-data/3.0/core/requirements/asset-requirements.json +13 -13
  282. package/dist/lib/schemas-data/3.0/core/requirements/audio-asset-requirements.json +1 -1
  283. package/dist/lib/schemas-data/3.0/core/requirements/catalog-field-binding.json +4 -4
  284. package/dist/lib/schemas-data/3.0/core/requirements/catalog-requirements.json +5 -5
  285. package/dist/lib/schemas-data/3.0/core/requirements/css-asset-requirements.json +1 -1
  286. package/dist/lib/schemas-data/3.0/core/requirements/daast-asset-requirements.json +1 -1
  287. package/dist/lib/schemas-data/3.0/core/requirements/html-asset-requirements.json +1 -1
  288. package/dist/lib/schemas-data/3.0/core/requirements/image-asset-requirements.json +2 -2
  289. package/dist/lib/schemas-data/3.0/core/requirements/javascript-asset-requirements.json +1 -1
  290. package/dist/lib/schemas-data/3.0/core/requirements/markdown-asset-requirements.json +1 -1
  291. package/dist/lib/schemas-data/3.0/core/requirements/offering-asset-constraint.json +4 -4
  292. package/dist/lib/schemas-data/3.0/core/requirements/text-asset-requirements.json +1 -1
  293. package/dist/lib/schemas-data/3.0/core/requirements/url-asset-requirements.json +1 -1
  294. package/dist/lib/schemas-data/3.0/core/requirements/vast-asset-requirements.json +1 -1
  295. package/dist/lib/schemas-data/3.0/core/requirements/video-asset-requirements.json +6 -6
  296. package/dist/lib/schemas-data/3.0/core/requirements/webhook-asset-requirements.json +1 -1
  297. package/dist/lib/schemas-data/3.0/core/response.json +1 -1
  298. package/dist/lib/schemas-data/3.0/core/rights-constraint.json +4 -4
  299. package/dist/lib/schemas-data/3.0/core/seller-agent-ref.json +1 -1
  300. package/dist/lib/schemas-data/3.0/core/signal-definition.json +3 -3
  301. package/dist/lib/schemas-data/3.0/core/signal-filters.json +2 -2
  302. package/dist/lib/schemas-data/3.0/core/signal-id.json +1 -1
  303. package/dist/lib/schemas-data/3.0/core/signal-pricing-option.json +2 -2
  304. package/dist/lib/schemas-data/3.0/core/signal-pricing.json +6 -6
  305. package/dist/lib/schemas-data/3.0/core/signal-targeting.json +4 -4
  306. package/dist/lib/schemas-data/3.0/core/special.json +2 -2
  307. package/dist/lib/schemas-data/3.0/core/start-timing.json +1 -1
  308. package/dist/lib/schemas-data/3.0/core/store-item.json +3 -3
  309. package/dist/lib/schemas-data/3.0/core/talent.json +2 -2
  310. package/dist/lib/schemas-data/3.0/core/targeting.json +20 -20
  311. package/dist/lib/schemas-data/3.0/core/tasks-get-request.json +3 -3
  312. package/dist/lib/schemas-data/3.0/core/tasks-get-response.json +7 -7
  313. package/dist/lib/schemas-data/3.0/core/tasks-list-request.json +11 -11
  314. package/dist/lib/schemas-data/3.0/core/tasks-list-response.json +6 -6
  315. package/dist/lib/schemas-data/3.0/core/user-match.json +3 -3
  316. package/dist/lib/schemas-data/3.0/core/vehicle-item.json +4 -4
  317. package/dist/lib/schemas-data/3.0/core/vendor-pricing-option.json +2 -2
  318. package/dist/lib/schemas-data/3.0/core/x-entity-types.json +1 -1
  319. package/dist/lib/schemas-data/3.0/creative/asset-types/index.json +5 -5
  320. package/dist/lib/schemas-data/3.0/creative/creative-feature-result.json +2 -2
  321. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-request.json +5 -5
  322. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-response.json +7 -7
  323. package/dist/lib/schemas-data/3.0/creative/get-creative-features-request.json +5 -5
  324. package/dist/lib/schemas-data/3.0/creative/get-creative-features-response.json +8 -8
  325. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-request.json +11 -11
  326. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-response.json +7 -7
  327. package/dist/lib/schemas-data/3.0/creative/list-creatives-request.json +8 -8
  328. package/dist/lib/schemas-data/3.0/creative/list-creatives-response.json +14 -14
  329. package/dist/lib/schemas-data/3.0/creative/preview-creative-request.json +11 -11
  330. package/dist/lib/schemas-data/3.0/creative/preview-creative-response.json +12 -12
  331. package/dist/lib/schemas-data/3.0/creative/preview-render.json +1 -1
  332. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-input-required.json +3 -3
  333. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-submitted.json +3 -3
  334. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-working.json +3 -3
  335. package/dist/lib/schemas-data/3.0/creative/sync-creatives-request.json +7 -7
  336. package/dist/lib/schemas-data/3.0/creative/sync-creatives-response.json +13 -13
  337. package/dist/lib/schemas-data/3.0/enums/account-scope.json +1 -1
  338. package/dist/lib/schemas-data/3.0/enums/account-status.json +1 -1
  339. package/dist/lib/schemas-data/3.0/enums/action-source.json +1 -1
  340. package/dist/lib/schemas-data/3.0/enums/adcp-protocol.json +1 -1
  341. package/dist/lib/schemas-data/3.0/enums/adjustment-kind.json +1 -1
  342. package/dist/lib/schemas-data/3.0/enums/advertiser-industry.json +1 -1
  343. package/dist/lib/schemas-data/3.0/enums/age-verification-method.json +1 -1
  344. package/dist/lib/schemas-data/3.0/enums/assessment-status.json +1 -1
  345. package/dist/lib/schemas-data/3.0/enums/asset-content-type.json +1 -1
  346. package/dist/lib/schemas-data/3.0/enums/attribution-model.json +1 -1
  347. package/dist/lib/schemas-data/3.0/enums/audience-source.json +1 -1
  348. package/dist/lib/schemas-data/3.0/enums/audience-status.json +1 -1
  349. package/dist/lib/schemas-data/3.0/enums/audio-channel-layout.json +1 -1
  350. package/dist/lib/schemas-data/3.0/enums/auth-scheme.json +1 -1
  351. package/dist/lib/schemas-data/3.0/enums/available-metric.json +1 -1
  352. package/dist/lib/schemas-data/3.0/enums/billing-party.json +1 -1
  353. package/dist/lib/schemas-data/3.0/enums/binary-verdict.json +1 -1
  354. package/dist/lib/schemas-data/3.0/enums/brand-agent-type.json +1 -1
  355. package/dist/lib/schemas-data/3.0/enums/canceled-by.json +1 -1
  356. package/dist/lib/schemas-data/3.0/enums/catalog-action.json +1 -1
  357. package/dist/lib/schemas-data/3.0/enums/catalog-item-status.json +1 -1
  358. package/dist/lib/schemas-data/3.0/enums/catalog-type.json +1 -1
  359. package/dist/lib/schemas-data/3.0/enums/channels.json +1 -1
  360. package/dist/lib/schemas-data/3.0/enums/cloud-storage-protocol.json +1 -1
  361. package/dist/lib/schemas-data/3.0/enums/co-branding-requirement.json +1 -1
  362. package/dist/lib/schemas-data/3.0/enums/collection-cadence.json +1 -1
  363. package/dist/lib/schemas-data/3.0/enums/collection-kind.json +1 -1
  364. package/dist/lib/schemas-data/3.0/enums/collection-relationship.json +1 -1
  365. package/dist/lib/schemas-data/3.0/enums/collection-status.json +1 -1
  366. package/dist/lib/schemas-data/3.0/enums/consent-basis.json +1 -1
  367. package/dist/lib/schemas-data/3.0/enums/content-id-type.json +1 -1
  368. package/dist/lib/schemas-data/3.0/enums/content-rating-system.json +1 -1
  369. package/dist/lib/schemas-data/3.0/enums/creative-action.json +1 -1
  370. package/dist/lib/schemas-data/3.0/enums/creative-agent-capability.json +1 -1
  371. package/dist/lib/schemas-data/3.0/enums/creative-approval-status.json +1 -1
  372. package/dist/lib/schemas-data/3.0/enums/creative-identifier-type.json +1 -1
  373. package/dist/lib/schemas-data/3.0/enums/creative-quality.json +1 -1
  374. package/dist/lib/schemas-data/3.0/enums/creative-sort-field.json +1 -1
  375. package/dist/lib/schemas-data/3.0/enums/creative-status.json +1 -1
  376. package/dist/lib/schemas-data/3.0/enums/daast-tracking-event.json +1 -1
  377. package/dist/lib/schemas-data/3.0/enums/daast-version.json +1 -1
  378. package/dist/lib/schemas-data/3.0/enums/day-of-week.json +1 -1
  379. package/dist/lib/schemas-data/3.0/enums/delegation-authority.json +1 -1
  380. package/dist/lib/schemas-data/3.0/enums/delivery-type.json +1 -1
  381. package/dist/lib/schemas-data/3.0/enums/demographic-system.json +1 -1
  382. package/dist/lib/schemas-data/3.0/enums/derivative-type.json +1 -1
  383. package/dist/lib/schemas-data/3.0/enums/device-platform.json +1 -1
  384. package/dist/lib/schemas-data/3.0/enums/device-type.json +1 -1
  385. package/dist/lib/schemas-data/3.0/enums/digital-source-type.json +1 -1
  386. package/dist/lib/schemas-data/3.0/enums/dimension-unit.json +1 -1
  387. package/dist/lib/schemas-data/3.0/enums/disclosure-persistence.json +1 -1
  388. package/dist/lib/schemas-data/3.0/enums/disclosure-position.json +1 -1
  389. package/dist/lib/schemas-data/3.0/enums/distance-unit.json +1 -1
  390. package/dist/lib/schemas-data/3.0/enums/distribution-identifier-type.json +1 -1
  391. package/dist/lib/schemas-data/3.0/enums/error-code.json +3 -3
  392. package/dist/lib/schemas-data/3.0/enums/escalation-severity.json +1 -1
  393. package/dist/lib/schemas-data/3.0/enums/event-type.json +1 -1
  394. package/dist/lib/schemas-data/3.0/enums/exclusivity.json +1 -1
  395. package/dist/lib/schemas-data/3.0/enums/feature-check-status.json +1 -1
  396. package/dist/lib/schemas-data/3.0/enums/feed-format.json +1 -1
  397. package/dist/lib/schemas-data/3.0/enums/feedback-source.json +1 -1
  398. package/dist/lib/schemas-data/3.0/enums/forecast-method.json +1 -1
  399. package/dist/lib/schemas-data/3.0/enums/forecast-range-unit.json +1 -1
  400. package/dist/lib/schemas-data/3.0/enums/forecastable-metric.json +1 -1
  401. package/dist/lib/schemas-data/3.0/enums/format-id-parameter.json +1 -1
  402. package/dist/lib/schemas-data/3.0/enums/frame-rate-type.json +1 -1
  403. package/dist/lib/schemas-data/3.0/enums/frequency-cap-scope.json +1 -1
  404. package/dist/lib/schemas-data/3.0/enums/genre-taxonomy.json +1 -1
  405. package/dist/lib/schemas-data/3.0/enums/geo-level.json +1 -1
  406. package/dist/lib/schemas-data/3.0/enums/gop-type.json +1 -1
  407. package/dist/lib/schemas-data/3.0/enums/governance-decision.json +1 -1
  408. package/dist/lib/schemas-data/3.0/enums/governance-domain.json +1 -1
  409. package/dist/lib/schemas-data/3.0/enums/governance-mode.json +1 -1
  410. package/dist/lib/schemas-data/3.0/enums/governance-phase.json +1 -1
  411. package/dist/lib/schemas-data/3.0/enums/history-entry-type.json +1 -1
  412. package/dist/lib/schemas-data/3.0/enums/http-method.json +1 -1
  413. package/dist/lib/schemas-data/3.0/enums/identifier-types.json +1 -1
  414. package/dist/lib/schemas-data/3.0/enums/installment-status.json +1 -1
  415. package/dist/lib/schemas-data/3.0/enums/javascript-module-type.json +1 -1
  416. package/dist/lib/schemas-data/3.0/enums/landing-page-requirement.json +1 -1
  417. package/dist/lib/schemas-data/3.0/enums/makegood-remedy.json +1 -1
  418. package/dist/lib/schemas-data/3.0/enums/markdown-flavor.json +1 -1
  419. package/dist/lib/schemas-data/3.0/enums/match-id-type.json +1 -1
  420. package/dist/lib/schemas-data/3.0/enums/match-type.json +1 -1
  421. package/dist/lib/schemas-data/3.0/enums/media-buy-status.json +1 -1
  422. package/dist/lib/schemas-data/3.0/enums/media-buy-valid-action.json +1 -1
  423. package/dist/lib/schemas-data/3.0/enums/metric-type.json +1 -1
  424. package/dist/lib/schemas-data/3.0/enums/metro-system.json +1 -1
  425. package/dist/lib/schemas-data/3.0/enums/moov-atom-position.json +1 -1
  426. package/dist/lib/schemas-data/3.0/enums/notification-type.json +1 -1
  427. package/dist/lib/schemas-data/3.0/enums/outcome-type.json +1 -1
  428. package/dist/lib/schemas-data/3.0/enums/pacing.json +1 -1
  429. package/dist/lib/schemas-data/3.0/enums/payment-terms.json +1 -1
  430. package/dist/lib/schemas-data/3.0/enums/performance-standard-metric.json +1 -1
  431. package/dist/lib/schemas-data/3.0/enums/policy-category.json +1 -1
  432. package/dist/lib/schemas-data/3.0/enums/policy-enforcement.json +1 -1
  433. package/dist/lib/schemas-data/3.0/enums/postal-system.json +1 -1
  434. package/dist/lib/schemas-data/3.0/enums/preview-output-format.json +1 -1
  435. package/dist/lib/schemas-data/3.0/enums/pricing-model.json +1 -1
  436. package/dist/lib/schemas-data/3.0/enums/production-quality.json +1 -1
  437. package/dist/lib/schemas-data/3.0/enums/property-type.json +1 -1
  438. package/dist/lib/schemas-data/3.0/enums/proposal-status.json +1 -1
  439. package/dist/lib/schemas-data/3.0/enums/publisher-identifier-types.json +1 -1
  440. package/dist/lib/schemas-data/3.0/enums/purchase-type.json +1 -1
  441. package/dist/lib/schemas-data/3.0/enums/reach-unit.json +1 -1
  442. package/dist/lib/schemas-data/3.0/enums/reporting-frequency.json +1 -1
  443. package/dist/lib/schemas-data/3.0/enums/response-type.json +1 -1
  444. package/dist/lib/schemas-data/3.0/enums/restricted-attribute.json +1 -1
  445. package/dist/lib/schemas-data/3.0/enums/right-type.json +1 -1
  446. package/dist/lib/schemas-data/3.0/enums/right-use.json +1 -1
  447. package/dist/lib/schemas-data/3.0/enums/rights-billing-period.json +1 -1
  448. package/dist/lib/schemas-data/3.0/enums/scan-type.json +1 -1
  449. package/dist/lib/schemas-data/3.0/enums/si-session-status.json +1 -1
  450. package/dist/lib/schemas-data/3.0/enums/signal-catalog-type.json +1 -1
  451. package/dist/lib/schemas-data/3.0/enums/signal-source.json +1 -1
  452. package/dist/lib/schemas-data/3.0/enums/signal-value-type.json +1 -1
  453. package/dist/lib/schemas-data/3.0/enums/snapshot-unavailable-reason.json +1 -1
  454. package/dist/lib/schemas-data/3.0/enums/sort-direction.json +1 -1
  455. package/dist/lib/schemas-data/3.0/enums/sort-metric.json +1 -1
  456. package/dist/lib/schemas-data/3.0/enums/special-category.json +1 -1
  457. package/dist/lib/schemas-data/3.0/enums/specialism.json +1 -1
  458. package/dist/lib/schemas-data/3.0/enums/talent-role.json +1 -1
  459. package/dist/lib/schemas-data/3.0/enums/task-status.json +1 -1
  460. package/dist/lib/schemas-data/3.0/enums/task-type.json +1 -1
  461. package/dist/lib/schemas-data/3.0/enums/transport-mode.json +1 -1
  462. package/dist/lib/schemas-data/3.0/enums/travel-time-unit.json +1 -1
  463. package/dist/lib/schemas-data/3.0/enums/uid-type.json +1 -1
  464. package/dist/lib/schemas-data/3.0/enums/universal-macro.json +1 -1
  465. package/dist/lib/schemas-data/3.0/enums/update-frequency.json +1 -1
  466. package/dist/lib/schemas-data/3.0/enums/url-asset-type.json +1 -1
  467. package/dist/lib/schemas-data/3.0/enums/validation-mode.json +1 -1
  468. package/dist/lib/schemas-data/3.0/enums/vast-tracking-event.json +1 -1
  469. package/dist/lib/schemas-data/3.0/enums/vast-version.json +1 -1
  470. package/dist/lib/schemas-data/3.0/enums/viewability-standard.json +1 -1
  471. package/dist/lib/schemas-data/3.0/enums/wcag-level.json +1 -1
  472. package/dist/lib/schemas-data/3.0/enums/webhook-response-type.json +1 -1
  473. package/dist/lib/schemas-data/3.0/enums/webhook-security-method.json +1 -1
  474. package/dist/lib/schemas-data/3.0/error-details/account-setup-required.json +1 -1
  475. package/dist/lib/schemas-data/3.0/error-details/audience-too-small.json +1 -1
  476. package/dist/lib/schemas-data/3.0/error-details/budget-too-low.json +1 -1
  477. package/dist/lib/schemas-data/3.0/error-details/conflict.json +1 -1
  478. package/dist/lib/schemas-data/3.0/error-details/creative-rejected.json +1 -1
  479. package/dist/lib/schemas-data/3.0/error-details/policy-violation.json +1 -1
  480. package/dist/lib/schemas-data/3.0/error-details/rate-limited.json +1 -1
  481. package/dist/lib/schemas-data/3.0/error-details/vendor-error-codes.json +1 -1
  482. package/dist/lib/schemas-data/3.0/extensions/extension-meta.json +1 -1
  483. package/dist/lib/schemas-data/3.0/extensions/index.json +2 -2
  484. package/dist/lib/schemas-data/3.0/governance/attribute-definition.json +1 -1
  485. package/dist/lib/schemas-data/3.0/governance/audience-constraints.json +3 -3
  486. package/dist/lib/schemas-data/3.0/governance/check-governance-request.json +7 -7
  487. package/dist/lib/schemas-data/3.0/governance/check-governance-response.json +6 -6
  488. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-request.json +4 -4
  489. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-response.json +9 -9
  490. package/dist/lib/schemas-data/3.0/governance/policy-category-definition.json +2 -2
  491. package/dist/lib/schemas-data/3.0/governance/policy-entry.json +6 -6
  492. package/dist/lib/schemas-data/3.0/governance/policy-ref.json +1 -1
  493. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-request.json +6 -6
  494. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-response.json +4 -4
  495. package/dist/lib/schemas-data/3.0/governance/sync-plans-request.json +13 -13
  496. package/dist/lib/schemas-data/3.0/governance/sync-plans-response.json +4 -4
  497. package/dist/lib/schemas-data/3.0/index.json +364 -364
  498. package/dist/lib/schemas-data/3.0/manifest.json +5 -5
  499. package/dist/lib/schemas-data/3.0/manifest.schema.json +1 -1
  500. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-input-required.json +4 -4
  501. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-submitted.json +3 -3
  502. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-working.json +3 -3
  503. package/dist/lib/schemas-data/3.0/media-buy/build-creative-request.json +11 -11
  504. package/dist/lib/schemas-data/3.0/media-buy/build-creative-response.json +17 -17
  505. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-input-required.json +4 -4
  506. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-submitted.json +3 -3
  507. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-working.json +3 -3
  508. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-request.json +12 -12
  509. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-response.json +15 -15
  510. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-request.json +17 -17
  511. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-response.json +24 -24
  512. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-request.json +7 -7
  513. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-response.json +19 -19
  514. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-input-required.json +4 -4
  515. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-submitted.json +3 -3
  516. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-working.json +3 -3
  517. package/dist/lib/schemas-data/3.0/media-buy/get-products-request.json +11 -11
  518. package/dist/lib/schemas-data/3.0/media-buy/get-products-response.json +8 -8
  519. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-request.json +11 -11
  520. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-response.json +7 -7
  521. package/dist/lib/schemas-data/3.0/media-buy/log-event-request.json +4 -4
  522. package/dist/lib/schemas-data/3.0/media-buy/log-event-response.json +6 -6
  523. package/dist/lib/schemas-data/3.0/media-buy/package-request.json +12 -12
  524. package/dist/lib/schemas-data/3.0/media-buy/package-update.json +13 -13
  525. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-request.json +6 -6
  526. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-response.json +6 -6
  527. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-request.json +7 -7
  528. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-response.json +9 -9
  529. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  530. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-submitted.json +3 -3
  531. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-working.json +3 -3
  532. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-request.json +7 -7
  533. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-response.json +9 -9
  534. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-request.json +5 -5
  535. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-response.json +10 -10
  536. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-input-required.json +3 -3
  537. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-submitted.json +3 -3
  538. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-working.json +3 -3
  539. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-request.json +10 -10
  540. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-response.json +10 -10
  541. package/dist/lib/schemas-data/3.0/pricing-options/cpa-option.json +4 -4
  542. package/dist/lib/schemas-data/3.0/pricing-options/cpc-option.json +4 -4
  543. package/dist/lib/schemas-data/3.0/pricing-options/cpcv-option.json +4 -4
  544. package/dist/lib/schemas-data/3.0/pricing-options/cpm-option.json +4 -4
  545. package/dist/lib/schemas-data/3.0/pricing-options/cpp-option.json +5 -5
  546. package/dist/lib/schemas-data/3.0/pricing-options/cpv-option.json +4 -4
  547. package/dist/lib/schemas-data/3.0/pricing-options/flat-rate-option.json +4 -4
  548. package/dist/lib/schemas-data/3.0/pricing-options/price-breakdown.json +2 -2
  549. package/dist/lib/schemas-data/3.0/pricing-options/price-guidance.json +1 -1
  550. package/dist/lib/schemas-data/3.0/pricing-options/time-option.json +4 -4
  551. package/dist/lib/schemas-data/3.0/pricing-options/vcpm-option.json +4 -4
  552. package/dist/lib/schemas-data/3.0/property/authorization-result.json +1 -1
  553. package/dist/lib/schemas-data/3.0/property/base-property-source.json +4 -4
  554. package/dist/lib/schemas-data/3.0/property/create-property-list-request.json +7 -7
  555. package/dist/lib/schemas-data/3.0/property/create-property-list-response.json +4 -4
  556. package/dist/lib/schemas-data/3.0/property/delete-property-list-request.json +4 -4
  557. package/dist/lib/schemas-data/3.0/property/delete-property-list-response.json +3 -3
  558. package/dist/lib/schemas-data/3.0/property/delivery-record.json +3 -3
  559. package/dist/lib/schemas-data/3.0/property/get-property-list-request.json +4 -4
  560. package/dist/lib/schemas-data/3.0/property/get-property-list-response.json +7 -7
  561. package/dist/lib/schemas-data/3.0/property/list-property-lists-request.json +5 -5
  562. package/dist/lib/schemas-data/3.0/property/list-property-lists-response.json +5 -5
  563. package/dist/lib/schemas-data/3.0/property/property-error.json +2 -2
  564. package/dist/lib/schemas-data/3.0/property/property-feature-definition.json +2 -2
  565. package/dist/lib/schemas-data/3.0/property/property-feature-result.json +4 -4
  566. package/dist/lib/schemas-data/3.0/property/property-feature-value.json +2 -2
  567. package/dist/lib/schemas-data/3.0/property/property-feature.json +1 -1
  568. package/dist/lib/schemas-data/3.0/property/property-list-changed-webhook.json +2 -2
  569. package/dist/lib/schemas-data/3.0/property/property-list-filters.json +5 -5
  570. package/dist/lib/schemas-data/3.0/property/property-list.json +6 -6
  571. package/dist/lib/schemas-data/3.0/property/update-property-list-request.json +7 -7
  572. package/dist/lib/schemas-data/3.0/property/update-property-list-response.json +4 -4
  573. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-request.json +5 -5
  574. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-response.json +4 -4
  575. package/dist/lib/schemas-data/3.0/property/validation-result.json +5 -5
  576. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-request.json +3 -3
  577. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-response.json +25 -25
  578. package/dist/lib/schemas-data/3.0/signals/activate-signal-request.json +5 -5
  579. package/dist/lib/schemas-data/3.0/signals/activate-signal-response.json +7 -7
  580. package/dist/lib/schemas-data/3.0/signals/get-signals-request.json +8 -8
  581. package/dist/lib/schemas-data/3.0/signals/get-signals-response.json +10 -10
  582. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-capabilities.json +1 -1
  583. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-request.json +3 -3
  584. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-response.json +4 -4
  585. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-identity.json +1 -1
  586. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-request.json +5 -5
  587. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-response.json +7 -7
  588. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-request.json +3 -3
  589. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-response.json +7 -7
  590. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-request.json +3 -3
  591. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-response.json +5 -5
  592. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-ui-element.json +1 -1
  593. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  594. package/dist/lib/server/decisioning/account.d.ts +14 -0
  595. package/dist/lib/server/decisioning/account.d.ts.map +1 -1
  596. package/dist/lib/server/decisioning/account.js.map +1 -1
  597. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js +1 -1
  598. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  599. package/dist/lib/server/decisioning/runtime/from-platform.js +36 -11
  600. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  601. package/dist/lib/server/index.d.ts +1 -0
  602. package/dist/lib/server/index.d.ts.map +1 -1
  603. package/dist/lib/server/index.js +7 -1
  604. package/dist/lib/server/index.js.map +1 -1
  605. package/dist/lib/server/socket-mode/conformance-client.d.ts +83 -0
  606. package/dist/lib/server/socket-mode/conformance-client.d.ts.map +1 -0
  607. package/dist/lib/server/socket-mode/conformance-client.js +117 -0
  608. package/dist/lib/server/socket-mode/conformance-client.js.map +1 -0
  609. package/dist/lib/server/socket-mode/index.d.ts +15 -0
  610. package/dist/lib/server/socket-mode/index.d.ts.map +1 -0
  611. package/dist/lib/server/socket-mode/index.js +20 -0
  612. package/dist/lib/server/socket-mode/index.js.map +1 -0
  613. package/dist/lib/server/socket-mode/ws-transport.d.ts +26 -0
  614. package/dist/lib/server/socket-mode/ws-transport.d.ts.map +1 -0
  615. package/dist/lib/server/socket-mode/ws-transport.js +93 -0
  616. package/dist/lib/server/socket-mode/ws-transport.js.map +1 -0
  617. package/dist/lib/testing/comply-controller.d.ts +42 -1
  618. package/dist/lib/testing/comply-controller.d.ts.map +1 -1
  619. package/dist/lib/testing/comply-controller.js +13 -1
  620. package/dist/lib/testing/comply-controller.js.map +1 -1
  621. package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -1
  622. package/dist/lib/testing/storyboard/request-builder.js +63 -40
  623. package/dist/lib/testing/storyboard/request-builder.js.map +1 -1
  624. package/dist/lib/types/core.generated.d.ts +54 -14
  625. package/dist/lib/types/core.generated.d.ts.map +1 -1
  626. package/dist/lib/types/core.generated.js +2 -2
  627. package/dist/lib/types/error-codes.d.ts +2 -2
  628. package/dist/lib/types/index.d.ts +1 -1
  629. package/dist/lib/types/index.d.ts.map +1 -1
  630. package/dist/lib/types/index.js.map +1 -1
  631. package/dist/lib/types/manifest.generated.d.ts +5 -5
  632. package/dist/lib/types/manifest.generated.js +3 -3
  633. package/dist/lib/types/manifest.generated.js.map +1 -1
  634. package/dist/lib/types/schemas.generated.d.ts +465 -381
  635. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  636. package/dist/lib/types/schemas.generated.js +171 -143
  637. package/dist/lib/types/schemas.generated.js.map +1 -1
  638. package/dist/lib/types/tools.generated.d.ts +42 -14
  639. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  640. package/dist/lib/version.d.ts +7 -7
  641. package/dist/lib/version.d.ts.map +1 -1
  642. package/dist/lib/version.js +6 -5
  643. package/dist/lib/version.js.map +1 -1
  644. package/docs/llms.txt +4 -3
  645. package/examples/hello_creative_adapter_ad_server.ts +22 -3
  646. package/examples/hello_creative_adapter_template.ts +61 -6
  647. package/examples/hello_seller_adapter_guaranteed.ts +85 -10
  648. package/examples/hello_seller_adapter_multi_tenant.ts +39 -5
  649. package/examples/hello_seller_adapter_non_guaranteed.ts +54 -3
  650. package/examples/hello_seller_adapter_social.ts +1 -1
  651. package/examples/hello_signals_adapter_marketplace.ts +34 -29
  652. package/package.json +5 -4
  653. package/skills/SHAPE-GOTCHAS.md +18 -0
  654. package/skills/build-brand-rights-agent/SKILL.md +61 -597
  655. package/skills/build-creative-agent/SKILL.md +69 -750
  656. package/skills/build-generative-seller-agent/SKILL.md +43 -583
  657. package/skills/build-governance-agent/SKILL.md +63 -959
  658. package/skills/build-holdco-agent/SKILL.md +8 -0
  659. package/skills/build-retail-media-agent/SKILL.md +46 -480
  660. package/skills/build-seller-agent/SKILL.md +53 -1797
  661. package/skills/build-si-agent/SKILL.md +50 -368
  662. package/skills/build-signals-agent/SKILL.md +49 -539
  663. package/skills/cross-cutting.md +84 -0
  664. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/brand/index.yaml +0 -0
  665. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/creative/index.yaml +0 -0
  666. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/governance/index.yaml +0 -0
  667. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/creative-reception.yaml +0 -0
  668. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/index.yaml +0 -0
  669. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  670. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  671. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  672. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
  673. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
  674. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
  675. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  676. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
  677. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  678. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  679. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  680. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  681. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  682. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/state-machine.yaml +0 -0
  683. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/signals/index.yaml +0 -0
  684. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/sponsored-intelligence/index.yaml +0 -0
  685. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/brand/index.yaml +0 -0
  686. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/creative/index.yaml +0 -0
  687. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/governance/index.yaml +0 -0
  688. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/creative-reception.yaml +0 -0
  689. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/index.yaml +0 -0
  690. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  691. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  692. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  693. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
  694. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
  695. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
  696. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  697. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
  698. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  699. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  700. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  701. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  702. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  703. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/state-machine.yaml +0 -0
  704. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/signals/index.yaml +0 -0
  705. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/sponsored-intelligence/index.yaml +0 -0
  706. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/audience-sync/index.yaml +0 -0
  707. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/brand-rights/index.yaml +0 -0
  708. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  709. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/collection-lists/index.yaml +0 -0
  710. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/content-standards/index.yaml +0 -0
  711. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-ad-server/index.yaml +0 -0
  712. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-generative/generative-seller.yaml +0 -0
  713. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-generative/index.yaml +0 -0
  714. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-template/index.yaml +0 -0
  715. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-aware-seller/index.yaml +0 -0
  716. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  717. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-spend-authority/denied.yaml +0 -0
  718. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-spend-authority/index.yaml +0 -0
  719. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/property-lists/index.yaml +0 -0
  720. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  721. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-catalog-driven/index.yaml +0 -0
  722. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  723. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-proposal-mode/index.yaml +0 -0
  724. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-social/index.yaml +0 -0
  725. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-marketplace/index.yaml +0 -0
  726. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  727. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-owned/index.yaml +0 -0
  728. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/acme-outdoor.yaml +0 -0
  729. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/bistro-oranje.yaml +0 -0
  730. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/nova-motors.yaml +0 -0
  731. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/osei-natural.yaml +0 -0
  732. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/signed-requests-runner.yaml +0 -0
  733. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/substitution-observer-runner.yaml +0 -0
  734. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/summit-foods.yaml +0 -0
  735. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/webhook-receiver-runner.yaml +0 -0
  736. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  737. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/002-full-plan.json +0 -0
  738. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  739. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  740. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  741. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  742. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  743. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  744. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  745. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  746. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  747. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/README.md +0 -0
  748. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/canonicalization.json +0 -0
  749. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/keys.json +0 -0
  750. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  751. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  752. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  753. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  754. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  755. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  756. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  757. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  758. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  759. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  760. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  761. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  762. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  763. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  764. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  765. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  766. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  767. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  768. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  769. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  770. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  771. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  772. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  773. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  774. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  775. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  776. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  777. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  778. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  779. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  780. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  781. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  782. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  783. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  784. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  785. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  786. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  787. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  788. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  789. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/README.md +0 -0
  790. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/keys.json +0 -0
  791. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  792. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  793. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  794. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  795. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  796. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  797. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  798. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  799. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  800. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  801. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  802. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  803. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  804. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  805. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  806. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  807. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  808. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  809. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  810. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  811. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  812. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  813. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  814. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  815. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  816. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  817. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  818. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  819. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/capability-discovery.yaml +0 -0
  820. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/collection-lists-pagination-integrity.yaml +0 -0
  821. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/content-standards-pagination-integrity.yaml +0 -0
  822. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/deterministic-testing.yaml +0 -0
  823. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/error-compliance.yaml +0 -0
  824. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/fictional-entities.yaml +0 -0
  825. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  826. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/get-signals-pagination-integrity.yaml +0 -0
  827. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/idempotency.yaml +0 -0
  828. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity-creative-formats.yaml +0 -0
  829. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity-list-accounts.yaml +0 -0
  830. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity.yaml +0 -0
  831. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/property-lists-pagination-integrity.yaml +0 -0
  832. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/runner-output-contract.yaml +0 -0
  833. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/schema-validation.yaml +0 -0
  834. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/security.yaml +0 -0
  835. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/signed-requests.yaml +0 -0
  836. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/v3-envelope-integrity.yaml +0 -0
  837. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/webhook-emission.yaml +0 -0
@@ -1,640 +1,104 @@
1
1
  ---
2
2
  name: build-brand-rights-agent
3
- description: Use when building an AdCP brand rights agent — a platform that manages brand identity, licenses usage rights, and approves generated creatives.
3
+ description: Use when building an AdCP brand rights agent — a platform that represents brand identity, licenses rights (image usage, logo placement, AI generation), and approves creatives.
4
4
  ---
5
5
 
6
6
  # Build a Brand Rights Agent
7
7
 
8
- ## Overview
9
-
10
8
  A brand rights agent represents a brand's identity and licensing. Buyers discover the brand, browse available rights (image usage, logo placement, AI generation), acquire licenses, and submit generated creatives for approval. The agent enforces brand guidelines.
11
9
 
12
- ## When to Use
13
-
14
- - User wants to build an agent that manages brand identity and licensing
15
- - User mentions brand rights, brand guidelines, creative approval, or licensing
16
- - User references `get_brand_identity`, `get_rights`, `acquire_rights`, `update_rights`, or `creative_approval`
17
-
18
- **Not this skill:**
19
-
20
- - Selling ad inventory → `skills/build-seller-agent/`
21
- - Managing creative formats/library → `skills/build-creative-agent/`
22
- - Evaluating media buys → `skills/build-governance-agent/`
23
-
24
- ## Specialisms This Skill Covers
25
-
26
- | Specialism | Status | Delta | See |
27
- | -------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
28
- | `brand-rights` | stable | First-class tools: `get_brand_identity`, `get_rights`, `acquire_rights`, `update_rights`. `creative_approval` is webhook-only — wire your HTTP receiver at the `approval_webhook` URL. | [§ brand-rights](#specialism-brand-rights) |
29
-
30
- Storyboard: `brand_rights`. The specialism tests identity discovery → rights search → acquisition → enforcement (including expired-campaign denial).
31
-
32
- ## Protocol-Wide Requirements
33
-
34
- Full treatment in `skills/build-seller-agent/SKILL.md` §Protocol-Wide Requirements and §Composing. Minimum viable pointers:
35
-
36
- - **`idempotency_key`** on every mutating request (`acquire_rights`, `update_rights`, and the `creative_approval` webhook payload). Wire `createIdempotencyStore` into `createAdcpServer({ idempotency })`. The framework auto-applies idempotency middleware to mutating tools; for the `creative_approval` webhook receiver, validate `idempotency_key` yourself and replay the cached verdict on resubmission.
37
- - **Authentication** via `serve({ authenticate })` with `verifyApiKey`/`verifyBearer` from `@adcp/sdk/server`. Unauthenticated agents fail the universal `security_baseline` storyboard.
38
- - **Signature-header transparency**: accept `Signature-Input`/`Signature` headers even if you don't claim `signed-requests`.
39
-
40
- ## Before Writing Code
41
-
42
- ### 1. What Brand?
43
-
44
- Define the brand this agent represents:
45
-
46
- - Brand name (locale-keyed for i18n), domain, logos
47
- - House identity (parent organization)
48
- - What languages/markets the brand operates in
49
-
50
- ### 2. What Rights Are Available?
51
-
52
- Define licensable rights:
53
-
54
- - **Image usage** — use brand images in digital ads
55
- - **AI generation** — generate new creatives using brand assets
56
- - **Logo placement** — use brand logo in ads
57
- - **Talent likeness** — use a person's likeness in generated content
58
-
59
- Each right needs pricing (flat_rate, cpm, etc.) and uses (likeness, voice, commercial, ai_generated_image, etc.).
60
-
61
- ### 3. Approval Criteria
62
-
63
- How are generated creatives reviewed?
64
-
65
- - **Auto-approve** — passes basic checks, instantly approved
66
- - **Guidelines check** — validate against brand standards
67
- - **Human review** — queue for manual review
68
-
69
- ## Protocol Status
70
-
71
- Four MCP/A2A tools are first-class in the `brandRights` domain group. `creative_approval` is webhook-only — the spec models it as an HTTP POST from the buyer to the `approval_webhook` URL the seller returned in `acquire_rights`.
72
-
73
- | Operation | Status | How to implement |
74
- | -------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
75
- | `get_brand_identity` | Published schema — `brand/get-brand-identity` | `brandRights.getBrandIdentity` handler |
76
- | `get_rights` | Published schema — `brand/get-rights` | `brandRights.getRights` handler |
77
- | `acquire_rights` | Published schema — `brand/acquire-rights` | `brandRights.acquireRights` handler |
78
- | `update_rights` | Published schema — `brand/update-rights` | `brandRights.updateRights` handler (mutating) |
79
- | `creative_approval` | Published schema — `brand/creative-approval` | Webhook receiver at the URL you returned in `acquire_rights.approval_webhook`; dispatch to `brandRights.reviewCreativeApproval` |
80
-
81
- <a name="specialism-brand-rights"></a>
10
+ ## Pick your fork target
82
11
 
83
- ## Tools and Required Response Shapes
12
+ | Specialism | Status | Fork this | Storyboard |
13
+ | --- | --- | --- | --- |
14
+ | `brand-rights` | stable | [`hello_seller_adapter_multi_tenant.ts`](../../examples/hello_seller_adapter_multi_tenant.ts) — `brandRights` block | `brand_rights` |
84
15
 
85
- > **Before writing any handler's return statement, fetch [`docs/llms.txt`](../../docs/llms.txt) and grep for `#### \`<tool_name>\``(e.g.`#### \`acquire_rights\``) to read the exact required + optional field list.** The schema-derived contract lives there; this skill covers patterns, gotchas, and domain-specific examples. Strict response validation is on by default in dev it will tell you the exact field path if you drift, so write the obvious thing and trust the contract.
86
- >
87
- > **Cross-cutting pitfalls matrix runs keep catching:**
88
- >
89
- > - **Declare `capabilities: { specialisms: ['brand-rights'] }` on `createAdcpServer`.** Value is `string[]` of enum ids (not `[{id, version}]`). Agents that don't declare their specialism fail the grader with "No applicable tracks found" even if every tool works — tracks are gated on the specialism claim.
16
+ The multi-tenant adapter is the canonical fork target. Its `brandRights` block implements all five operations (`getBrandIdentity`, `getRights`, `acquireRights`, `updateRights`, `reviewCreativeApproval`) plus the cross-specialism governance check (`enforceGovernance`) called from `acquireRights`.
90
17
 
91
- **`get_brand_identity`** returns brand identity matching `brand/get-brand-identity-response.json`
18
+ ### What to delete if you're single-specialism brand-rights
92
19
 
93
- Required: `brand_id`, `house`, `names` (array of locale-keyed objects).
20
+ **Forking the multi-tenant adapter for a single specialism? Delete these blocks first** — leaning on stable symbol names rather than line numbers (the adapter evolves; greppable identifiers don't):
94
21
 
95
- ```typescript
96
- {
97
- brand_id: 'acme_outdoor',
98
- house: {
99
- domain: 'acme.example',
100
- name: 'Acme Corporation',
101
- },
102
- names: [
103
- { en_US: 'Acme Outdoor' }, // locale-specific
104
- { en: 'Acme Outdoor' }, // language wildcard
105
- ],
106
- logos: [
107
- {
108
- url: 'https://cdn.acme.example/logo-primary.svg',
109
- orientation: 'horizontal', // horizontal | vertical | square
110
- background: 'transparent-bg', // dark-bg | light-bg | transparent-bg
111
- variant: 'primary',
112
- width: 512,
113
- height: 128,
114
- },
115
- ],
116
- tone: { // brand voice lives under `tone`, not at the top level
117
- voice: 'Confident, outdoorsy, direct.',
118
- },
119
- // context echoed back by the framework when present
120
- }
121
- ```
122
-
123
- **`get_rights`** — returns matching rights with pricing
124
-
125
- Each right requires `rights_id`, `brand_id`, `name`, `available_uses`, `pricing_options`.
126
-
127
- The `right-use` enum at `/schemas/latest/enums/right-use.json` is: `likeness | voice | name | endorsement | motion_capture | signature | catchphrase | sync | background_music | editorial | commercial | ai_generated_image | image_generation`.
128
-
129
- ```typescript
130
- {
131
- rights: [
132
- {
133
- rights_id: 'likeness_commercial_standard',
134
- brand_id: 'acme_outdoor',
135
- name: 'Likeness for commercial use — standard',
136
- available_uses: ['likeness', 'commercial'],
137
- pricing_options: [
138
- {
139
- pricing_option_id: 'monthly_standard',
140
- model: 'flat_rate', // from pricing-model enum
141
- price: 2500,
142
- currency: 'USD',
143
- uses: ['likeness', 'commercial'],
144
- period: 'monthly',
145
- },
146
- ],
147
- },
148
- ],
149
- }
150
- ```
151
-
152
- **`acquire_rights`** — returns a discriminated union on `status`
153
-
154
- Three success variants plus an error variant. The most common is `acquired`. Three shapes need exact field names to satisfy the spec schemas — `terms` must match `rights-terms.json` (required: `pricing_option_id`, `amount`, `currency`, `uses`), `rights_constraint` must match `/schemas/latest/core/rights-constraint.json` (required: `rights_id`, `rights_agent`, `uses`), and `approval_webhook.authentication.credentials` requires `minLength: 32`.
155
-
156
- ```typescript
157
- {
158
- rights_id: 'likeness_commercial_standard', // echoed from request
159
- status: 'acquired',
160
- brand_id: 'acme_outdoor',
161
- terms: {
162
- pricing_option_id: 'monthly_standard', // required
163
- amount: 2500, // required
164
- currency: 'USD', // required
165
- uses: ['likeness', 'commercial'], // required
166
- period: 'monthly',
167
- start_date: '2026-04-01T00:00:00Z',
168
- end_date: '2026-05-01T00:00:00Z',
169
- exclusivity: { scope: 'non_exclusive', countries: ['US', 'CA'] }, // object per rights-terms.json: { scope, countries }
170
- },
171
- generation_credentials: [ /* generation-credential refs */ ],
172
- rights_constraint: {
173
- rights_id: 'likeness_commercial_standard', // required — NOT brand_id
174
- rights_agent: { // required — {url, id} pointing at this agent
175
- url: 'https://brand.example/mcp',
176
- id: 'acme_outdoor',
177
- },
178
- uses: ['likeness', 'commercial'], // required
179
- },
180
- approval_webhook: {
181
- url: 'https://brand.example/webhooks/creative-approval',
182
- authentication: {
183
- schemes: ['Bearer'],
184
- credentials: 'brand-approval-webhook-secret-32chars+', // minLength: 32
185
- },
186
- },
187
- }
188
- // or
189
- { rights_id, status: 'pending_approval', brand_id, detail?, estimated_response_time? }
190
- // or
191
- { rights_id, status: 'rejected', brand_id, reason, suggestions? }
192
- ```
193
-
194
- **`update_rights`** — returns either a success arm (with re-issued credentials) or the error arm
195
-
196
- Mutating; framework auto-applies idempotency middleware. Carry only the fields you're changing — omitted fields stay at their current value (parallels `update_media_buy` semantics). The framework hydrates the underlying grant from `rights_id`, so handlers read the resolved grant from `ctx.store`.
197
-
198
- ```typescript
199
- // Success — change applied
200
- {
201
- rights_id: 'likeness_commercial_standard',
202
- terms: { /* updated rights-terms shape */ },
203
- generation_credentials: [ /* re-issued with the new constraint */ ],
204
- rights_constraint: { /* updated for re-embedding in creative manifests */ },
205
- paused: false,
206
- implementation_date: '2026-05-02T19:00:00Z', // string when live immediately
207
- }
208
- // Pending rights-holder approval
209
- {
210
- rights_id: 'likeness_commercial_standard',
211
- terms: { /* updated terms */ },
212
- implementation_date: null, // null = follow-up via push_notification_config webhook
213
- }
214
- // Error — buyer-fixable rejection. Throw `adcpError('INVALID_REQUEST', ...)`
215
- // for single-error cases; the multi-error arm is for batch failures.
216
- {
217
- errors: [{ code: 'INVALID_REQUEST', message: 'impression_cap below delivered count' }],
218
- }
219
- ```
220
-
221
- Common rejections to surface as errors: `impression_cap` below already-delivered count, `end_date` earlier than current `end_date`, switching to a `pricing_option_id` from a different `get_rights` offering than the original.
222
-
223
- **Creative approval (webhook).** The `approval_webhook` in your `acquire_rights` response is a URL **your agent hosts** — the buyer POSTs `CreativeApprovalRequest` there when a generated creative needs review. Schema is published in 3.0.x (`brand/creative-approval-{request,response}.json`); the SDK does NOT register this as an MCP/A2A tool because it's webhook-only.
224
-
225
- The receiver pattern: **authenticate first**, then validate the request body with `CreativeApprovalRequestSchema`, dispatch to `brandRights.reviewCreativeApproval(req, ctx)`, and serialize the result with the typed builders.
226
-
227
- > **Security order matters.** The auth check (Bearer token from `acquire_rights.approval_webhook.authentication.credentials`, or your RFC 9421 signature verifier) MUST run **before** the idempotency-store lookup. The cache is a verdict store keyed by `(principal, idempotency_key)`; an unauthenticated lookup turns the endpoint into a replay-existence oracle and lets anyone who can reach the URL pull back a previously-issued verdict. Same posture as `acquire_rights` — apply the same `verifyApiKey` / signature middleware to this route.
228
-
229
- > **SSRF on `creative_url`.** The buyer's `creative_url` is a buyer-controlled URL the brand-rights agent typically fetches to render or scan for review. Treat it like any inbound URL: route through your standard SSRF-guarded HTTP client (https-only in prod, no RFC 1918 / loopback / link-local / metadata-service IPs). The SDK applies the same allowlist on `push_notification_config.url` via `extractPushConfig` — match that posture for `creative_url`.
230
-
231
- ```typescript
232
- import express from 'express';
233
- import {
234
- creativeApprovalApproved,
235
- creativeApprovalRejected,
236
- creativeApprovalPendingReview,
237
- } from '@adcp/sdk/server';
238
- import { CreativeApprovalRequestSchema } from '@adcp/sdk/types';
239
-
240
- const app = express();
241
- // Cap payload size to bound a hostile body.
242
- app.use(express.json({ limit: '256kb' }));
243
-
244
- // Auth middleware — verify Bearer token / RFC 9421 signature against the
245
- // (principal, rights_id) you advertised on `acquire_rights`. Run BEFORE
246
- // idempotency-store lookup; verdicts are tenant-scoped state.
247
- app.use('/webhooks/creative-approval', verifyApprovalWebhookAuth);
248
-
249
- app.post('/webhooks/creative-approval', async (req, res) => {
250
- const parsed = CreativeApprovalRequestSchema.safeParse(req.body);
251
- if (!parsed.success) {
252
- return res.status(400).json({ errors: [{ code: 'INVALID_REQUEST', message: 'malformed creative-approval request' }] });
253
- }
254
-
255
- // Idempotency — keyed by (authenticated principal, idempotency_key) so
256
- // verdicts can't leak across tenants. Replay the cached verdict if seen.
257
- const principal = req.adcpPrincipal; // set by verifyApprovalWebhookAuth
258
- const cached = await idempotencyStore.get(`${principal}:${parsed.data.idempotency_key}`);
259
- if (cached) return res.json(cached);
260
-
261
- // Dispatch to the platform — same `reviewCreativeApproval` method shape
262
- // as if it were a tool. The framework doesn't auto-wire HTTP for webhook-
263
- // only surfaces, so adopters host the route themselves.
264
- try {
265
- const verdict = await platform.brandRights.reviewCreativeApproval(parsed.data, /* ctx built per request */);
266
- await idempotencyStore.set(`${principal}:${parsed.data.idempotency_key}`, verdict);
267
- return res.json(verdict);
268
- } catch (err) {
269
- return res.status(500).json({ errors: [{ code: 'INTERNAL_ERROR', message: err.message }] });
270
- }
271
- });
272
- ```
273
-
274
- Three success arms (Approved / Rejected / PendingReview) plus an error arm. Arm choice depends on review pipeline — auto-approve immediately, route to human review, or pre-flight reject for hard violations. Use the typed builders so the discriminator (`status`) is injected for you:
275
-
276
- ```typescript
277
- // Approved
278
- creativeApprovalApproved({
279
- rights_id: 'likeness_commercial_standard',
280
- creative_id: 'cr_42',
281
- creative_url: 'https://buyer.example.com/creatives/42.mp4',
282
- approved_at: new Date().toISOString(),
283
- conditions: ['approved for NL only'], // optional
284
- });
285
-
286
- // Rejected
287
- creativeApprovalRejected({
288
- rights_id: 'likeness_commercial_standard',
289
- creative_id: 'cr_42',
290
- reason: 'logo not visible per brand standards',
291
- suggestions: ['enlarge the logo to 15% of the frame'],
292
- });
293
-
294
- // Pending — buyer polls `status_url` or waits up to `estimated_response_time`
295
- creativeApprovalPendingReview({
296
- rights_id: 'likeness_commercial_standard',
297
- creative_id: 'cr_42',
298
- estimated_response_time: '24h',
299
- status_url: 'https://brand.example/approvals/cr_42',
300
- });
301
- ```
302
-
303
- **Revocation webhook.** The `acquire_rights` _request_ carries a required `revocation_webhook`. Persist it against the grant. When you need to revoke (credential rotation, terms violation, brand takedown), use `ctx.emitWebhook` — don't hand-roll `fetch`. See [`skills/build-seller-agent/SKILL.md`](../build-seller-agent/SKILL.md) § Webhooks for the full wiring; minimal call:
22
+ - The `campaignGovernance = defineCampaignGovernancePlatform({ ... })` block (the entire `sync_plans` / `check_governance` / `report_plan_outcome` / `get_plan_audit_logs` surface)
23
+ - The `propertyLists = definePropertyListsPlatform({ ... })` block (property-lists CRUD)
24
+ - The `private async enforceGovernance(...)` helper method and its **call site inside `acquireRights`** — the two lines `const denial = await this.enforceGovernance(tenant, ctx, offering, req); if (denial) return denial;`. Without `campaignGovernance` co-resident, the in-process dispatch has nothing to call. Single-specialism adopters who need governance dial out to a registered governance agent's URL via the `@adcp/sdk` client.
25
+ - The `governanceBindings: Map<string, GovernanceBinding>` field on `TenantState`, the `interface GovernanceBinding`, and the `syncGovernanceRow` callback on `createTenantStore` (governance bindings have nothing to register against).
26
+ - The validation seam block in `acquireRights` that requires `campaign.estimated_impressions` when a governance binding exists — without bindings this constraint never fires.
304
27
 
305
- ```typescript
306
- await ctx.emitWebhook!({
307
- url: storedGrant.revocation_webhook.url,
308
- payload: { rights_id: storedGrant.rights_id, reason: 'credential_rotation', effective_at: new Date().toISOString() },
309
- operation_id: `revoke_rights.${storedGrant.rights_id}`, // stable across retries, NOT a fresh UUID
310
- });
311
- ```
312
-
313
- 3.0 GA renamed `RevocationNotification.notification_id` → `idempotency_key` — the emitter populates it for you when `operation_id` is set.
28
+ **Keep**: the `accounts` / `createTenantStore` block (translates to single-tenant by passing one tenant entry — needed for tenant isolation), `agentRegistry`, the `brandRights` block, `getTenant(ctx)` resolution.
314
29
 
315
- ### Context and Ext Passthrough
30
+ The storyboard tests identity discovery → rights search → acquisition → enforcement (including expired-campaign denial).
316
31
 
317
- Every AdCP request may include a `context` field. The framework echoes it back on success and error responses automatically when you use `createAdcpServer`. Do not read, modify, or omit `context` in your handler — treat it as opaque.
32
+ For exact response shapes, error codes, and optional fields, `docs/llms.txt` is the canonical reference.
318
33
 
319
- ## SDK Quick Reference
34
+ ## When to use this skill
320
35
 
321
- | SDK piece | Usage |
322
- | -------------------------------------------- | ------------------------------------------------------------ |
323
- | `createAdcpServer({ brandRights: { ... } })` | Register brand rights handlers as a first-class domain group |
324
- | `serve(() => createAdcpServer(...))` | Start HTTP server on `:3001/mcp` |
325
- | `adcpError(code, { message })` | Structured error (BRAND_NOT_FOUND, RIGHTS_UNAVAILABLE, etc.) |
36
+ - User wants to build an agent that manages brand identity and licensing
37
+ - User mentions brand rights, brand guidelines, creative approval, or licensing (Warner Bros Discovery, Disney rights pipelines)
38
+ - User references `get_brand_identity`, `get_rights`, `acquire_rights`, `update_rights`, or `creative_approval`
326
39
 
327
- Import: `import { createAdcpServer, serve, adcpError } from '@adcp/sdk/server/legacy/v5';`
40
+ **Not this skill:**
328
41
 
329
- > **v6 specialism status.** `brandRights` is wired via the v5 `createAdcpServer` handler bag today. A v6 `BrandRightsPlatform` interface ships at `src/lib/server/decisioning/specialisms/brand-rights.ts` but the dispatcher path through `createAdcpServerFromPlatform` is not yet documented for adopters — pin to the legacy subpath until that lands.
42
+ - Selling ad inventory `skills/build-seller-agent/`
43
+ - Managing creative formats/library → `skills/build-creative-agent/`
44
+ - Evaluating media buys → `skills/build-governance-agent/`
330
45
 
331
- ## Setup
46
+ ## Cross-cutting rules
332
47
 
333
- ```bash
334
- npm init -y
335
- npm install @adcp/sdk
336
- npm install -D typescript @types/node
337
- ```
48
+ Every brand-rights agent hits the cross-cutting rules in [`../cross-cutting.md`](../cross-cutting.md). The high-traffic ones for brand-rights (deep-linked to the rule):
338
49
 
339
- Minimal `tsconfig.json`:
340
-
341
- ```json
342
- {
343
- "compilerOptions": {
344
- "target": "ES2022",
345
- "module": "Node16",
346
- "moduleResolution": "Node16",
347
- "strict": true,
348
- "skipLibCheck": true,
349
- "outDir": "dist"
350
- }
351
- }
352
- ```
50
+ - [`idempotency_key`](../cross-cutting.md#idempotency_key-is-required-on-every-mutating-call) on `acquire_rights` and `update_rights`
51
+ - [Authentication](../cross-cutting.md#authentication-is-mandatory) — `serve({ authenticate })` baseline
52
+ - [Webhooks](../cross-cutting.md#webhooks-stable-operation_id-across-retries) — `creative_approval.${creative_id}` operation_id must be stable across retries; the `creative_approval` webhook receiver itself validates idempotency manually (the framework's auto-idempotency middleware applies to MCP/A2A tools, not arbitrary HTTP receivers)
353
53
 
354
- ## Implementation
355
-
356
- Single `.ts` file, one `createAdcpServer` call with a `brandRights` domain group. The framework:
357
-
358
- - Auto-registers `get_adcp_capabilities` declaring `brand` as a supported protocol
359
- - Echoes `context` on success and error responses
360
- - Validates `get_brand_identity`, `get_rights`, `acquire_rights` against their Zod schemas
361
-
362
- Creative-approval webhooks are implemented as a regular outbound HTTP call — outside the MCP server, after you accept `acquire_rights`.
363
-
364
- ```typescript
365
- import {
366
- createAdcpServer,
367
- serve,
368
- adcpError,
369
- createIdempotencyStore,
370
- memoryBackend,
371
- } from '@adcp/sdk/server/legacy/v5';
372
-
373
- // Idempotency — required for v3. `acquire_rights` is mutating (issues
374
- // credentials + may trigger billing); `get_brand_identity` and
375
- // `get_rights` are read-only and exempt.
376
- const idempotency = createIdempotencyStore({
377
- backend: memoryBackend(), // pgBackend(pool) for production
378
- ttlSeconds: 86400, // 24 hours (spec bounds: 1h–7d)
379
- });
380
-
381
- serve(() =>
382
- createAdcpServer({
383
- name: 'Acme Brand Rights Agent',
384
- version: '1.0.0',
385
- capabilities: { major_versions: [3] },
386
- idempotency,
387
-
388
- // Principal scoping for idempotency. MUST never return undefined — or
389
- // every mutating request rejects as SERVICE_UNAVAILABLE.
390
- resolveSessionKey: () => 'default-principal',
391
-
392
- // Accounts domain — required for the governance_denied scenario. Buyers
393
- // call sync_accounts to register their operator/billing relationship, then
394
- // sync_governance to point the brand agent at their governance agent.
395
- accounts: {
396
- async syncAccounts(params, ctx) {
397
- for (const account of params.accounts) {
398
- // `ctx.store.put` rejects keys outside `[A-Za-z0-9_.\-:]` — use `:`
399
- // as the composite-key separator (not `|`, which the store rejects).
400
- const key = `${account.brand.domain}:${account.operator}`;
401
- await ctx.store.put('accounts', key, {
402
- ...account,
403
- account_id: `acct_${key}`,
404
- status: 'active',
405
- });
406
- }
407
- return {
408
- accounts: params.accounts.map(account => ({
409
- brand: account.brand,
410
- operator: account.operator,
411
- account_id: `acct_${account.brand.domain}:${account.operator}`,
412
- status: 'active' as const,
413
- action: 'created' as const, // required — one of 'created'|'updated'|'unchanged'|'failed'
414
- })),
415
- };
416
- },
417
-
418
- async syncGovernance(params, ctx) {
419
- for (const acc of params.accounts) {
420
- const key = `${acc.account.brand.domain}:${acc.account.operator}`;
421
- await ctx.store.put('governance', key, {
422
- governance_agents: acc.governance_agents,
423
- });
424
- }
425
- return {
426
- status: 'synced' as const,
427
- governance_agents: params.accounts.flatMap(a => a.governance_agents),
428
- };
429
- },
430
- },
431
-
432
- brandRights: {
433
- async getBrandIdentity(params) {
434
- if (params.brand_id !== 'acme_outdoor') {
435
- return adcpError('BRAND_NOT_FOUND', {
436
- message: `Brand ${params.brand_id} is not managed by this agent`,
437
- });
438
- }
439
- return {
440
- brand_id: 'acme_outdoor',
441
- house: { domain: 'acme.example', name: 'Acme Corporation' },
442
- names: [{ en_US: 'Acme Outdoor' }, { en: 'Acme Outdoor' }],
443
- logos: [
444
- {
445
- url: 'https://cdn.acme.example/logo.svg',
446
- orientation: 'horizontal',
447
- background: 'transparent',
448
- variant: 'primary',
449
- width: 512,
450
- height: 128,
451
- },
452
- ],
453
- };
454
- },
455
-
456
- async getRights(params) {
457
- return {
458
- rights: [
459
- {
460
- rights_id: 'img_gen_standard',
461
- brand_id: 'acme_outdoor',
462
- name: 'AI image generation — standard',
463
- available_uses: ['ai_generated_image', 'commercial'],
464
- pricing_options: [
465
- {
466
- pricing_option_id: 'monthly_standard',
467
- model: 'flat_rate',
468
- price: 2500,
469
- currency: 'USD',
470
- uses: ['ai_generated_image', 'commercial'],
471
- period: 'monthly',
472
- },
473
- ],
474
- },
475
- ],
476
- };
477
- },
478
-
479
- async acquireRights(params, ctx) {
480
- const campaignEnd = new Date(params.campaign?.end_date ?? 0);
481
- if (campaignEnd < new Date()) {
482
- return adcpError('INVALID_REQUEST', {
483
- message: 'Campaign end_date is in the past',
484
- field: 'campaign.end_date',
485
- });
486
- }
487
-
488
- // Governance check — REQUIRED before issuing a rights license. Acquiring
489
- // rights is a spending event; the `brand_rights/governance_denied` scenario
490
- // expects GOVERNANCE_DENIED when the buyer's plan denies the spend.
491
- // 1. Look up the governance agent the buyer registered via sync_governance
492
- // (accountKey = brand.domain + operator, stored by syncAccounts/syncGovernance).
493
- // 2. Call check_governance on it; propagate findings on denial.
494
- if (!params.account?.brand?.domain || !params.account?.operator) {
495
- return adcpError('INVALID_REQUEST', {
496
- message: 'acquire_rights requires account.brand.domain and account.operator',
497
- field: 'account',
498
- });
499
- }
500
- const accountKey = `${params.account.brand.domain}:${params.account.operator}`;
501
- const registration = await ctx.store.get('governance', accountKey);
502
- if (registration?.governance_agents?.length) {
503
- const { checkGovernance } = await import('@adcp/sdk'); // buyer-side helper
504
- const plan = await checkGovernance({
505
- agentUrl: registration.governance_agents[0].url,
506
- plan_id: params.plan_id ?? registration.plan_id,
507
- caller: { role: 'brand_agent', id: AGENT_URL },
508
- tool: 'acquire_rights',
509
- payload: {
510
- rights_id: params.rights_id,
511
- pricing_option_id: params.pricing_option_id,
512
- total_cost: { amount: 2500, currency: 'USD' },
513
- },
514
- });
515
- if (plan.status === 'denied') {
516
- return adcpError('GOVERNANCE_DENIED', {
517
- message: plan.explanation ?? 'Governance agent denied this rights acquisition.',
518
- findings: plan.findings ?? [], // propagate verbatim
519
- });
520
- }
521
- // status === 'conditions' → you may attach conditions, or deny in strict mode
522
- // status === 'approved' → fall through to issue the grant
523
- }
524
-
525
- const grantId = `grant_${Date.now()}`;
526
- // Persist params.revocation_webhook against grantId so you can call it
527
- // if you later need to revoke (credential rotation, terms violation).
528
- return {
529
- rights_id: params.rights_id,
530
- status: 'acquired',
531
- brand_id: 'acme_outdoor',
532
- terms: {
533
- pricing_option_id: 'monthly_standard', // required per rights-terms.json
534
- amount: 2500, // required
535
- currency: 'USD', // required
536
- uses: params.campaign?.uses ?? [], // required
537
- countries: ['US', 'CA'],
538
- exclusivity: { scope: 'non_exclusive', countries: ['US', 'CA'] }, // object, not string
539
- },
540
- generation_credentials: [],
541
- rights_constraint: {
542
- rights_id: params.rights_id, // required — NOT brand_id
543
- rights_agent: { url: AGENT_URL, id: 'acme_outdoor' }, // required — {url, id}
544
- uses: params.campaign?.uses ?? [], // required
545
- },
546
- // URL you host — buyer POSTs creative-approval-request here for review.
547
- // `credentials` MUST be ≥32 chars (spec: push-notification-config.json
548
- // minLength: 32). `randomUUID().replace(/-/g, '')` produces 32 hex chars.
549
- approval_webhook: {
550
- url: `https://brand.example/webhooks/approval/${grantId}`,
551
- authentication: {
552
- schemes: ['Bearer'],
553
- credentials: randomUUID().replace(/-/g, ''), // 32-char high-entropy token
554
- },
555
- },
556
- };
557
- },
558
- },
559
- })
560
- );
561
- ```
54
+ One brand-rights-specific note:
562
55
 
563
- The skill contains everything you need. Do not read additional docs before writing code.
56
+ ### `creative_approval` is webhook-only
564
57
 
565
- ## Idempotency & Auth
58
+ The spec models creative approval as an HTTP POST from the buyer to the `approval_webhook` URL the seller returned in `acquire_rights`. There is no inbound MCP/A2A tool for `creative_approval` — wire an HTTP receiver and dispatch to `brandRights.reviewCreativeApproval`.
566
59
 
567
- For brand-rights only `acquire_rights` is mutating (`get_brand_identity` and `get_rights` are reads). Wire `createIdempotencyStore({ backend: memoryBackend(), ttlSeconds: 86400 })` into `createAdcpServer({ idempotency })` once framework handles `INVALID_REQUEST` / `IDEMPOTENCY_CONFLICT` / `IDEMPOTENCY_EXPIRED` / replay-with-`replayed:true` / atomic-claim. See [`skills/build-seller-agent/SKILL.md`](../build-seller-agent/SKILL.md) § Idempotency for the full framework contract.
60
+ The receiver must validate `idempotency_key` itself (the framework's auto-idempotency middleware applies to MCP/A2A tools, not arbitrary HTTP receivers) and replay the cached verdict on resubmission.
568
61
 
569
- Authentication is mandatory (otherwise `security_baseline` fails). Minimum viable:
62
+ ## Tool surface
570
63
 
571
- ```typescript
572
- import { serve } from '@adcp/sdk';
573
- import { verifyApiKey } from '@adcp/sdk/server';
64
+ | Operation | How to implement |
65
+ | --- | --- |
66
+ | `get_brand_identity` | `brandRights.getBrandIdentity` handler — locale-keyed brand name, domain, logos, house identity |
67
+ | `get_rights` | `brandRights.getRights` handler — list licensable rights with pricing + use cases |
68
+ | `acquire_rights` | `brandRights.acquireRights` handler (mutating) — returns `approval_webhook` URL |
69
+ | `update_rights` | `brandRights.updateRights` handler (mutating) — for campaign-end revocation, scope changes |
70
+ | `creative_approval` | HTTP receiver at the `approval_webhook` URL; dispatch to `brandRights.reviewCreativeApproval` |
574
71
 
575
- serve(createAgent, {
576
- authenticate: verifyApiKey({
577
- keys: { 'compliance-runner': { principal: 'compliance-runner' } }, // replace with db-backed lookup in prod
578
- }),
579
- });
580
- ```
72
+ ## Specialism deltas
581
73
 
582
- For OAuth, `anyOf(verifyApiKey, verifyBearer)` composition, or `publicUrl` + `protectedResource` see [seller skill § Protecting your agent](../build-seller-agent/SKILL.md#protecting-your-agent).
74
+ **`brand-rights`**
583
75
 
584
- ## Validate Locally
76
+ - **Brand definition**: name (locale-keyed for i18n), domain, logos, house identity, languages/markets
77
+ - **Rights catalog**: image usage, AI generation, logo placement, talent likeness; each with pricing (flat_rate, cpm) and uses (likeness, voice, commercial, ai_generated_image)
78
+ - **Approval criteria**: auto-approve (basic checks), guidelines check (brand standards), human review (queue for manual)
79
+ - **Revocation webhook**: emit when a campaign ends or rights are revoked mid-campaign — same `operation_id` stability rules as other webhooks (see `../cross-cutting.md`)
80
+ - **Governance denial**: the storyboard exercises `GOVERNANCE_DENIED` on `acquire_rights` when the requested use exceeds the licensed scope; map this error code, don't substitute a generic `INVALID_REQUEST`
585
81
 
586
- **Full validation checklist:** [docs/guides/VALIDATE-YOUR-AGENT.md](../../docs/guides/VALIDATE-YOUR-AGENT.md). Brand-rights-specific commands:
82
+ ## Validate locally
587
83
 
588
84
  ```bash
589
- # Boot
590
- npx tsx agent.ts &
591
-
592
- # Happy path — brand_rights bundle (includes governance_denied sub-scenario)
593
- npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp brand_rights --auth $TOKEN
594
-
595
- # Cross-cutting obligations
596
- npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp \
597
- --storyboards security_baseline,idempotency,schema_validation --auth $TOKEN
598
-
599
- # Revocation webhook conformance (if you emit revocations)
600
- npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp webhook_emission \
601
- --webhook-receiver --auth $TOKEN
85
+ # Run the fork-matrix gate (tsc strict)
86
+ npm run compliance:fork-matrix -- --test-name-pattern="hello-seller-adapter-multi-tenant"
602
87
 
603
- # Rejection-surface fuzz
604
- npx @adcp/sdk@latest fuzz http://localhost:3001/mcp --auth-token $TOKEN
88
+ # Run your forked agent against the brand_rights storyboard
89
+ adcp storyboard run http://127.0.0.1:3003/mcp brand_rights \
90
+ --bearer "$ADCP_AUTH_TOKEN" --include-bundles --json
605
91
  ```
606
92
 
607
- Common failure decoder:
608
-
609
- - `exclusivity: 'non_exclusive'` (string) → must be object `{ scope, countries }` — see § Concept model
610
- - `available_uses` enum mismatch → `right-use.json` enum is the source of truth; includes `ai_generated_image` in AdCP 3.0+
611
- - `acquire_rights` rejected with `Invalid input` → buyer omitted required `revocation_webhook: { url }`
612
-
613
- **Keep iterating until all steps pass.** Can't bind ports? `npm run compliance:skill-matrix -- --filter brand-rights` runs an isolated end-to-end test.
614
-
615
- ## Common Mistakes
93
+ The fork-matrix gate is the three-gate contract from [`docs/guides/EXAMPLE-TEST-CONTRACT.md`](../../docs/guides/EXAMPLE-TEST-CONTRACT.md). The multi-tenant adapter currently runs the strict-tsc gate only (no brand-rights mock-server today); storyboard-grader gates land alongside the next mock-server family.
616
94
 
617
- | Mistake | Fix |
618
- | ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
619
- | `names: [{name, language}]` | `names` is an array of locale-keyed objects: `[{en_US: "Acme"}]` |
620
- | `pricing_options` using `pricing_model`/`fixed_price` | Schema uses `model` + `price` + `currency` + `uses` |
621
- | `uses` containing `digital_display` etc. | Only values from `right-use` enum (likeness, voice, ai_generated_image, commercial, ...) |
622
- | `logos` with `format: 'png'` | Use `orientation`, `background`, `variant`, plus optional `width`/`height` — derive format from the URL extension |
623
- | Acquire rights returning `status: 'active'` | Valid values are `acquired`, `pending_approval`, `rejected` |
624
- | Treating `approval_webhook` as a URL the buyer supplies | The seller _returns_ `approval_webhook` in `acquire_rights` response. The buyer POSTs `creative-approval-request` to that URL later — your agent hosts the endpoint. |
625
- | Shipping a concrete `creative-approval-request` shape | Spec names the payload but has not published the schema (see https://github.com/adcontextprotocol/adcp/issues/2253). Treat the body as TBD; don't lock buyers into an invented shape. |
626
- | Dropping `context` from responses | Framework echoes it automatically — don't read or write it yourself |
95
+ For deeper validation: [`docs/guides/VALIDATE-YOUR-AGENT.md`](../../docs/guides/VALIDATE-YOUR-AGENT.md).
627
96
 
628
- ## Storyboards
97
+ ## Common shape gotchas
629
98
 
630
- | Storyboard | Tests |
631
- | -------------- | ----------------------------------------------------------------------------------------------------------------------------- |
632
- | `brand_rights` | Discover brand → browse rights → acquire license → enforce expired campaigns (update/approval covered once spec schemas land) |
99
+ `acquire_rights` response includes `approval_webhook` URL — buyer POSTs to this to submit creatives, you don't pull. `sync_accounts` rows require `action: 'created' | 'updated' | 'unchanged' | 'failed'`. Brand name is locale-keyed (`{ "en-US": "...", "es-MX": "..." }`), not a bare string. See [`../SHAPE-GOTCHAS.md`](../SHAPE-GOTCHAS.md).
633
100
 
634
- ## Reference
101
+ ## Migration notes
635
102
 
636
- - `storyboards/brand_rights.yaml` full brand rights storyboard
637
- - `schemas/cache/latest/brand/` JSON schemas (ground truth for request/response shapes)
638
- - `docs/guides/BUILD-AN-AGENT.md` — SDK patterns
639
- - `docs/TYPE-SUMMARY.md` — curated type signatures
640
- - `docs/llms.txt` — full protocol reference
103
+ - 6.6 → 6.7: `update_rights` wired as a first-class tool + `creative_approval` webhook builders shipped in #1349. See [`docs/migration-6.6-to-6.7.md`](../../docs/migration-6.6-to-6.7.md).
104
+ - 4.x 5.x: [`docs/migration-4.x-to-5.x.md`](../../docs/migration-4.x-to-5.x.md)