@adcp/sdk 6.7.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 (971) hide show
  1. package/ADCP_VERSION +1 -1
  2. package/bin/adcp.js +15 -3
  3. package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/inventory_list_targeting.yaml +5 -0
  4. package/compliance/cache/{3.0.5 → 3.0.6}/index.json +2 -2
  5. package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +5 -0
  6. package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-guaranteed/index.yaml +1 -1
  7. package/compliance/cache/{3.0.5 → 3.0.6}/universal/storyboard-schema.yaml +15 -0
  8. package/dist/lib/adapters/derived-account-store.d.ts +152 -0
  9. package/dist/lib/adapters/derived-account-store.d.ts.map +1 -0
  10. package/dist/lib/adapters/derived-account-store.js +135 -0
  11. package/dist/lib/adapters/derived-account-store.js.map +1 -0
  12. package/dist/lib/adapters/implicit-account-store.d.ts +3 -1
  13. package/dist/lib/adapters/implicit-account-store.d.ts.map +1 -1
  14. package/dist/lib/adapters/implicit-account-store.js +3 -1
  15. package/dist/lib/adapters/implicit-account-store.js.map +1 -1
  16. package/dist/lib/adapters/index.d.ts +1 -0
  17. package/dist/lib/adapters/index.d.ts.map +1 -1
  18. package/dist/lib/adapters/index.js +7 -1
  19. package/dist/lib/adapters/index.js.map +1 -1
  20. package/dist/lib/adapters/oauth-passthrough-resolver.d.ts +3 -1
  21. package/dist/lib/adapters/oauth-passthrough-resolver.d.ts.map +1 -1
  22. package/dist/lib/adapters/oauth-passthrough-resolver.js +3 -1
  23. package/dist/lib/adapters/oauth-passthrough-resolver.js.map +1 -1
  24. package/dist/lib/adapters/roster-account-store.d.ts +85 -24
  25. package/dist/lib/adapters/roster-account-store.d.ts.map +1 -1
  26. package/dist/lib/adapters/roster-account-store.js +52 -30
  27. package/dist/lib/adapters/roster-account-store.js.map +1 -1
  28. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  29. package/dist/lib/core/AgentClient.js +20 -0
  30. package/dist/lib/core/AgentClient.js.map +1 -1
  31. package/dist/lib/index.d.ts +3 -3
  32. package/dist/lib/index.d.ts.map +1 -1
  33. package/dist/lib/index.js +13 -8
  34. package/dist/lib/index.js.map +1 -1
  35. package/dist/lib/mock-server/creative-ad-server/seed-data.d.ts +81 -0
  36. package/dist/lib/mock-server/creative-ad-server/seed-data.d.ts.map +1 -0
  37. package/dist/lib/mock-server/creative-ad-server/seed-data.js +200 -0
  38. package/dist/lib/mock-server/creative-ad-server/seed-data.js.map +1 -0
  39. package/dist/lib/mock-server/creative-ad-server/server.d.ts +39 -0
  40. package/dist/lib/mock-server/creative-ad-server/server.d.ts.map +1 -0
  41. package/dist/lib/mock-server/creative-ad-server/server.js +618 -0
  42. package/dist/lib/mock-server/creative-ad-server/server.js.map +1 -0
  43. package/dist/lib/mock-server/creative-template/seed-data.d.ts +1 -1
  44. package/dist/lib/mock-server/creative-template/seed-data.d.ts.map +1 -1
  45. package/dist/lib/mock-server/creative-template/seed-data.js +53 -0
  46. package/dist/lib/mock-server/creative-template/seed-data.js.map +1 -1
  47. package/dist/lib/mock-server/creative-template/server.d.ts.map +1 -1
  48. package/dist/lib/mock-server/creative-template/server.js +12 -0
  49. package/dist/lib/mock-server/creative-template/server.js.map +1 -1
  50. package/dist/lib/mock-server/index.d.ts.map +1 -1
  51. package/dist/lib/mock-server/index.js +180 -24
  52. package/dist/lib/mock-server/index.js.map +1 -1
  53. package/dist/lib/mock-server/sales-non-guaranteed/seed-data.d.ts +66 -0
  54. package/dist/lib/mock-server/sales-non-guaranteed/seed-data.d.ts.map +1 -0
  55. package/dist/lib/mock-server/sales-non-guaranteed/seed-data.js +193 -0
  56. package/dist/lib/mock-server/sales-non-guaranteed/seed-data.js.map +1 -0
  57. package/dist/lib/mock-server/sales-non-guaranteed/server.d.ts +33 -0
  58. package/dist/lib/mock-server/sales-non-guaranteed/server.d.ts.map +1 -0
  59. package/dist/lib/mock-server/sales-non-guaranteed/server.js +782 -0
  60. package/dist/lib/mock-server/sales-non-guaranteed/server.js.map +1 -0
  61. package/dist/lib/mock-server/sponsored-intelligence/seed-data.d.ts +50 -0
  62. package/dist/lib/mock-server/sponsored-intelligence/seed-data.d.ts.map +1 -0
  63. package/dist/lib/mock-server/sponsored-intelligence/seed-data.js +133 -0
  64. package/dist/lib/mock-server/sponsored-intelligence/seed-data.js.map +1 -0
  65. package/dist/lib/mock-server/sponsored-intelligence/server.d.ts +13 -0
  66. package/dist/lib/mock-server/sponsored-intelligence/server.d.ts.map +1 -0
  67. package/dist/lib/mock-server/sponsored-intelligence/server.js +609 -0
  68. package/dist/lib/mock-server/sponsored-intelligence/server.js.map +1 -0
  69. package/dist/lib/protocols/mcp.d.ts.map +1 -1
  70. package/dist/lib/protocols/mcp.js +1 -41
  71. package/dist/lib/protocols/mcp.js.map +1 -1
  72. package/dist/lib/schemas-data/3.0/a2ui/bound-value.json +1 -1
  73. package/dist/lib/schemas-data/3.0/a2ui/component.json +1 -1
  74. package/dist/lib/schemas-data/3.0/a2ui/si-catalog.json +25 -25
  75. package/dist/lib/schemas-data/3.0/a2ui/surface.json +2 -2
  76. package/dist/lib/schemas-data/3.0/a2ui/user-action.json +1 -1
  77. package/dist/lib/schemas-data/3.0/account/get-account-financials-request.json +5 -5
  78. package/dist/lib/schemas-data/3.0/account/get-account-financials-response.json +10 -10
  79. package/dist/lib/schemas-data/3.0/account/list-accounts-request.json +4 -4
  80. package/dist/lib/schemas-data/3.0/account/list-accounts-response.json +6 -6
  81. package/dist/lib/schemas-data/3.0/account/report-usage-request.json +5 -5
  82. package/dist/lib/schemas-data/3.0/account/report-usage-response.json +4 -4
  83. package/dist/lib/schemas-data/3.0/account/sync-accounts-request.json +9 -9
  84. package/dist/lib/schemas-data/3.0/account/sync-accounts-response.json +12 -12
  85. package/dist/lib/schemas-data/3.0/account/sync-governance-request.json +5 -5
  86. package/dist/lib/schemas-data/3.0/account/sync-governance-response.json +8 -8
  87. package/dist/lib/schemas-data/3.0/adagents.json +32 -32
  88. package/dist/lib/schemas-data/3.0/brand/acquire-rights-request.json +8 -8
  89. package/dist/lib/schemas-data/3.0/brand/acquire-rights-response.json +14 -14
  90. package/dist/lib/schemas-data/3.0/brand/creative-approval-request.json +4 -4
  91. package/dist/lib/schemas-data/3.0/brand/creative-approval-response.json +10 -10
  92. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-request.json +3 -3
  93. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-response.json +8 -8
  94. package/dist/lib/schemas-data/3.0/brand/get-rights-request.json +7 -7
  95. package/dist/lib/schemas-data/3.0/brand/get-rights-response.json +9 -9
  96. package/dist/lib/schemas-data/3.0/brand/revocation-notification.json +4 -4
  97. package/dist/lib/schemas-data/3.0/brand/rights-pricing-option.json +5 -5
  98. package/dist/lib/schemas-data/3.0/brand/rights-terms.json +3 -3
  99. package/dist/lib/schemas-data/3.0/brand/update-rights-request.json +4 -4
  100. package/dist/lib/schemas-data/3.0/brand/update-rights-response.json +9 -9
  101. package/dist/lib/schemas-data/3.0/brand.json +14 -14
  102. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-request.json +2 -2
  103. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-response.json +2 -2
  104. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-request.json +2 -2
  105. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-response.json +2 -2
  106. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-request.json +2 -2
  107. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-response.json +2 -2
  108. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-request.json +2 -2
  109. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-response.json +2 -2
  110. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-request.json +2 -2
  111. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-response.json +2 -2
  112. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-request.json +2 -2
  113. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-response.json +2 -2
  114. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-request.json +2 -2
  115. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-response.json +2 -2
  116. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-request.json +2 -2
  117. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-response.json +2 -2
  118. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-request.json +2 -2
  119. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-response.json +2 -2
  120. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-request.json +2 -2
  121. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-response.json +2 -2
  122. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-request.json +2 -2
  123. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-response.json +2 -2
  124. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-request.json +2 -2
  125. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-response.json +2 -2
  126. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-request.json +2 -2
  127. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-response.json +2 -2
  128. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-request.json +2 -2
  129. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-response.json +2 -2
  130. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-request.json +2 -2
  131. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-response.json +2 -2
  132. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-request.json +2 -2
  133. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-response.json +2 -2
  134. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-request.json +2 -2
  135. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-response.json +2 -2
  136. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-request.json +2 -2
  137. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-response.json +2 -2
  138. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-request.json +2 -2
  139. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-response.json +2 -2
  140. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-request.json +2 -2
  141. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-response.json +2 -2
  142. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-request.json +2 -2
  143. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-response.json +2 -2
  144. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-request.json +2 -2
  145. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-response.json +2 -2
  146. package/dist/lib/schemas-data/3.0/bundled/media-buy/package-request.json +2 -2
  147. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-request.json +2 -2
  148. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-response.json +2 -2
  149. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-request.json +2 -2
  150. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-response.json +2 -2
  151. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-request.json +2 -2
  152. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-response.json +2 -2
  153. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-request.json +2 -2
  154. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-response.json +2 -2
  155. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-request.json +2 -2
  156. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-response.json +2 -2
  157. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-request.json +2 -2
  158. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-response.json +2 -2
  159. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-request.json +2 -2
  160. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-response.json +2 -2
  161. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-request.json +2 -2
  162. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-response.json +2 -2
  163. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-request.json +2 -2
  164. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-response.json +2 -2
  165. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-request.json +2 -2
  166. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-response.json +2 -2
  167. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-request.json +2 -2
  168. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-response.json +2 -2
  169. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-request.json +2 -2
  170. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-response.json +2 -2
  171. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-request.json +2 -2
  172. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-response.json +2 -2
  173. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-request.json +2 -2
  174. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-response.json +2 -2
  175. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-request.json +2 -2
  176. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-response.json +2 -2
  177. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-request.json +2 -2
  178. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-response.json +2 -2
  179. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-request.json +2 -2
  180. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-response.json +2 -2
  181. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-request.json +2 -2
  182. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-response.json +2 -2
  183. package/dist/lib/schemas-data/3.0/collection/base-collection-source.json +3 -3
  184. package/dist/lib/schemas-data/3.0/collection/collection-list-changed-webhook.json +2 -2
  185. package/dist/lib/schemas-data/3.0/collection/collection-list-filters.json +7 -7
  186. package/dist/lib/schemas-data/3.0/collection/collection-list.json +5 -5
  187. package/dist/lib/schemas-data/3.0/collection/create-collection-list-request.json +7 -7
  188. package/dist/lib/schemas-data/3.0/collection/create-collection-list-response.json +4 -4
  189. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-request.json +4 -4
  190. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-response.json +3 -3
  191. package/dist/lib/schemas-data/3.0/collection/get-collection-list-request.json +4 -4
  192. package/dist/lib/schemas-data/3.0/collection/get-collection-list-response.json +10 -10
  193. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-request.json +5 -5
  194. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-response.json +5 -5
  195. package/dist/lib/schemas-data/3.0/collection/update-collection-list-request.json +7 -7
  196. package/dist/lib/schemas-data/3.0/collection/update-collection-list-response.json +4 -4
  197. package/dist/lib/schemas-data/3.0/content-standards/artifact-webhook-payload.json +3 -3
  198. package/dist/lib/schemas-data/3.0/content-standards/artifact.json +7 -7
  199. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-request.json +4 -4
  200. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-response.json +8 -8
  201. package/dist/lib/schemas-data/3.0/content-standards/content-standards.json +7 -7
  202. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-request.json +7 -7
  203. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-response.json +6 -6
  204. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-request.json +3 -3
  205. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-response.json +7 -7
  206. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-request.json +4 -4
  207. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-response.json +8 -8
  208. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-request.json +5 -5
  209. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-response.json +8 -8
  210. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-request.json +7 -7
  211. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-response.json +6 -6
  212. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-request.json +4 -4
  213. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-response.json +8 -8
  214. package/dist/lib/schemas-data/3.0/core/account-ref.json +2 -2
  215. package/dist/lib/schemas-data/3.0/core/account.json +9 -9
  216. package/dist/lib/schemas-data/3.0/core/activation-key.json +1 -1
  217. package/dist/lib/schemas-data/3.0/core/ad-inventory-config.json +1 -1
  218. package/dist/lib/schemas-data/3.0/core/agent-encryption-key.json +1 -1
  219. package/dist/lib/schemas-data/3.0/core/agent-signing-key.json +1 -1
  220. package/dist/lib/schemas-data/3.0/core/app-item.json +4 -4
  221. package/dist/lib/schemas-data/3.0/core/assets/asset-union.json +15 -15
  222. package/dist/lib/schemas-data/3.0/core/assets/audio-asset.json +3 -3
  223. package/dist/lib/schemas-data/3.0/core/assets/brief-asset.json +2 -2
  224. package/dist/lib/schemas-data/3.0/core/assets/catalog-asset.json +2 -2
  225. package/dist/lib/schemas-data/3.0/core/assets/css-asset.json +2 -2
  226. package/dist/lib/schemas-data/3.0/core/assets/daast-asset.json +4 -4
  227. package/dist/lib/schemas-data/3.0/core/assets/html-asset.json +2 -2
  228. package/dist/lib/schemas-data/3.0/core/assets/image-asset.json +2 -2
  229. package/dist/lib/schemas-data/3.0/core/assets/javascript-asset.json +3 -3
  230. package/dist/lib/schemas-data/3.0/core/assets/markdown-asset.json +2 -2
  231. package/dist/lib/schemas-data/3.0/core/assets/text-asset.json +2 -2
  232. package/dist/lib/schemas-data/3.0/core/assets/url-asset.json +3 -3
  233. package/dist/lib/schemas-data/3.0/core/assets/vast-asset.json +4 -4
  234. package/dist/lib/schemas-data/3.0/core/assets/video-asset.json +7 -7
  235. package/dist/lib/schemas-data/3.0/core/assets/webhook-asset.json +7 -7
  236. package/dist/lib/schemas-data/3.0/core/async-response-data.json +25 -25
  237. package/dist/lib/schemas-data/3.0/core/attribution-window.json +4 -4
  238. package/dist/lib/schemas-data/3.0/core/audience-member.json +3 -3
  239. package/dist/lib/schemas-data/3.0/core/audience-selector.json +4 -4
  240. package/dist/lib/schemas-data/3.0/core/brand-id.json +1 -1
  241. package/dist/lib/schemas-data/3.0/core/brand-ref.json +2 -2
  242. package/dist/lib/schemas-data/3.0/core/business-entity.json +2 -2
  243. package/dist/lib/schemas-data/3.0/core/cancellation-policy.json +2 -2
  244. package/dist/lib/schemas-data/3.0/core/catalog-field-mapping.json +2 -2
  245. package/dist/lib/schemas-data/3.0/core/catalog.json +7 -7
  246. package/dist/lib/schemas-data/3.0/core/catchment.json +5 -5
  247. package/dist/lib/schemas-data/3.0/core/collection-distribution.json +2 -2
  248. package/dist/lib/schemas-data/3.0/core/collection-list-ref.json +1 -1
  249. package/dist/lib/schemas-data/3.0/core/collection-selector.json +1 -1
  250. package/dist/lib/schemas-data/3.0/core/collection.json +13 -13
  251. package/dist/lib/schemas-data/3.0/core/content-rating.json +2 -2
  252. package/dist/lib/schemas-data/3.0/core/context.json +1 -1
  253. package/dist/lib/schemas-data/3.0/core/creative-asset.json +6 -6
  254. package/dist/lib/schemas-data/3.0/core/creative-assignment.json +1 -1
  255. package/dist/lib/schemas-data/3.0/core/creative-brief.json +4 -4
  256. package/dist/lib/schemas-data/3.0/core/creative-consumption.json +1 -1
  257. package/dist/lib/schemas-data/3.0/core/creative-filters.json +4 -4
  258. package/dist/lib/schemas-data/3.0/core/creative-item.json +1 -1
  259. package/dist/lib/schemas-data/3.0/core/creative-manifest.json +7 -7
  260. package/dist/lib/schemas-data/3.0/core/creative-policy.json +3 -3
  261. package/dist/lib/schemas-data/3.0/core/creative-variable.json +1 -1
  262. package/dist/lib/schemas-data/3.0/core/creative-variant.json +5 -5
  263. package/dist/lib/schemas-data/3.0/core/data-provider-signal-selector.json +1 -1
  264. package/dist/lib/schemas-data/3.0/core/date-range.json +1 -1
  265. package/dist/lib/schemas-data/3.0/core/datetime-range.json +1 -1
  266. package/dist/lib/schemas-data/3.0/core/daypart-target.json +2 -2
  267. package/dist/lib/schemas-data/3.0/core/deadline-policy.json +1 -1
  268. package/dist/lib/schemas-data/3.0/core/delivery-forecast.json +7 -7
  269. package/dist/lib/schemas-data/3.0/core/delivery-metrics.json +5 -5
  270. package/dist/lib/schemas-data/3.0/core/deployment.json +3 -3
  271. package/dist/lib/schemas-data/3.0/core/destination-item.json +4 -4
  272. package/dist/lib/schemas-data/3.0/core/destination.json +1 -1
  273. package/dist/lib/schemas-data/3.0/core/diagnostic-issue.json +1 -1
  274. package/dist/lib/schemas-data/3.0/core/duration.json +1 -1
  275. package/dist/lib/schemas-data/3.0/core/education-item.json +4 -4
  276. package/dist/lib/schemas-data/3.0/core/error.json +1 -1
  277. package/dist/lib/schemas-data/3.0/core/event-custom-data.json +2 -2
  278. package/dist/lib/schemas-data/3.0/core/event-source-health.json +3 -3
  279. package/dist/lib/schemas-data/3.0/core/event.json +6 -6
  280. package/dist/lib/schemas-data/3.0/core/ext.json +1 -1
  281. package/dist/lib/schemas-data/3.0/core/feature-requirement.json +1 -1
  282. package/dist/lib/schemas-data/3.0/core/flight-item.json +4 -4
  283. package/dist/lib/schemas-data/3.0/core/forecast-point.json +18 -18
  284. package/dist/lib/schemas-data/3.0/core/forecast-range.json +1 -1
  285. package/dist/lib/schemas-data/3.0/core/format-id.json +1 -1
  286. package/dist/lib/schemas-data/3.0/core/format.json +42 -42
  287. package/dist/lib/schemas-data/3.0/core/frequency-cap.json +4 -4
  288. package/dist/lib/schemas-data/3.0/core/generation-credential.json +3 -3
  289. package/dist/lib/schemas-data/3.0/core/geo-breakdown-support.json +3 -3
  290. package/dist/lib/schemas-data/3.0/core/hotel-item.json +4 -4
  291. package/dist/lib/schemas-data/3.0/core/identifier.json +2 -2
  292. package/dist/lib/schemas-data/3.0/core/industry-identifier.json +2 -2
  293. package/dist/lib/schemas-data/3.0/core/insertion-order.json +1 -1
  294. package/dist/lib/schemas-data/3.0/core/installment-deadlines.json +2 -2
  295. package/dist/lib/schemas-data/3.0/core/installment.json +9 -9
  296. package/dist/lib/schemas-data/3.0/core/job-item.json +3 -3
  297. package/dist/lib/schemas-data/3.0/core/limited-series.json +1 -1
  298. package/dist/lib/schemas-data/3.0/core/material-deadline.json +1 -1
  299. package/dist/lib/schemas-data/3.0/core/mcp-webhook-payload.json +5 -5
  300. package/dist/lib/schemas-data/3.0/core/measurement-readiness.json +5 -5
  301. package/dist/lib/schemas-data/3.0/core/measurement-terms.json +3 -3
  302. package/dist/lib/schemas-data/3.0/core/measurement-window.json +1 -1
  303. package/dist/lib/schemas-data/3.0/core/media-buy-features.json +1 -1
  304. package/dist/lib/schemas-data/3.0/core/media-buy.json +7 -7
  305. package/dist/lib/schemas-data/3.0/core/offering-asset-group.json +15 -15
  306. package/dist/lib/schemas-data/3.0/core/offering.json +5 -5
  307. package/dist/lib/schemas-data/3.0/core/optimization-goal.json +6 -6
  308. package/dist/lib/schemas-data/3.0/core/outcome-measurement.json +2 -2
  309. package/dist/lib/schemas-data/3.0/core/overlay.json +1 -1
  310. package/dist/lib/schemas-data/3.0/core/package.json +14 -14
  311. package/dist/lib/schemas-data/3.0/core/pagination-request.json +1 -1
  312. package/dist/lib/schemas-data/3.0/core/pagination-response.json +1 -1
  313. package/dist/lib/schemas-data/3.0/core/performance-feedback.json +3 -3
  314. package/dist/lib/schemas-data/3.0/core/performance-standard.json +4 -4
  315. package/dist/lib/schemas-data/3.0/core/placement-definition.json +5 -5
  316. package/dist/lib/schemas-data/3.0/core/placement.json +2 -2
  317. package/dist/lib/schemas-data/3.0/core/planned-delivery.json +5 -5
  318. package/dist/lib/schemas-data/3.0/core/price.json +1 -1
  319. package/dist/lib/schemas-data/3.0/core/pricing-option.json +10 -10
  320. package/dist/lib/schemas-data/3.0/core/product-allocation.json +4 -4
  321. package/dist/lib/schemas-data/3.0/core/product-filters.json +16 -16
  322. package/dist/lib/schemas-data/3.0/core/product.json +28 -28
  323. package/dist/lib/schemas-data/3.0/core/property-id.json +1 -1
  324. package/dist/lib/schemas-data/3.0/core/property-list-ref.json +1 -1
  325. package/dist/lib/schemas-data/3.0/core/property-tag.json +1 -1
  326. package/dist/lib/schemas-data/3.0/core/property.json +6 -6
  327. package/dist/lib/schemas-data/3.0/core/proposal.json +6 -6
  328. package/dist/lib/schemas-data/3.0/core/protocol-envelope.json +3 -3
  329. package/dist/lib/schemas-data/3.0/core/provenance.json +6 -6
  330. package/dist/lib/schemas-data/3.0/core/publisher-property-selector.json +3 -3
  331. package/dist/lib/schemas-data/3.0/core/push-notification-config.json +2 -2
  332. package/dist/lib/schemas-data/3.0/core/real-estate-item.json +4 -4
  333. package/dist/lib/schemas-data/3.0/core/reference-asset.json +1 -1
  334. package/dist/lib/schemas-data/3.0/core/reporting-capabilities.json +5 -5
  335. package/dist/lib/schemas-data/3.0/core/reporting-webhook.json +3 -3
  336. package/dist/lib/schemas-data/3.0/core/requirements/asset-requirements.json +13 -13
  337. package/dist/lib/schemas-data/3.0/core/requirements/audio-asset-requirements.json +1 -1
  338. package/dist/lib/schemas-data/3.0/core/requirements/catalog-field-binding.json +4 -4
  339. package/dist/lib/schemas-data/3.0/core/requirements/catalog-requirements.json +5 -5
  340. package/dist/lib/schemas-data/3.0/core/requirements/css-asset-requirements.json +1 -1
  341. package/dist/lib/schemas-data/3.0/core/requirements/daast-asset-requirements.json +1 -1
  342. package/dist/lib/schemas-data/3.0/core/requirements/html-asset-requirements.json +1 -1
  343. package/dist/lib/schemas-data/3.0/core/requirements/image-asset-requirements.json +2 -2
  344. package/dist/lib/schemas-data/3.0/core/requirements/javascript-asset-requirements.json +1 -1
  345. package/dist/lib/schemas-data/3.0/core/requirements/markdown-asset-requirements.json +1 -1
  346. package/dist/lib/schemas-data/3.0/core/requirements/offering-asset-constraint.json +4 -4
  347. package/dist/lib/schemas-data/3.0/core/requirements/text-asset-requirements.json +1 -1
  348. package/dist/lib/schemas-data/3.0/core/requirements/url-asset-requirements.json +1 -1
  349. package/dist/lib/schemas-data/3.0/core/requirements/vast-asset-requirements.json +1 -1
  350. package/dist/lib/schemas-data/3.0/core/requirements/video-asset-requirements.json +6 -6
  351. package/dist/lib/schemas-data/3.0/core/requirements/webhook-asset-requirements.json +1 -1
  352. package/dist/lib/schemas-data/3.0/core/response.json +1 -1
  353. package/dist/lib/schemas-data/3.0/core/rights-constraint.json +4 -4
  354. package/dist/lib/schemas-data/3.0/core/seller-agent-ref.json +1 -1
  355. package/dist/lib/schemas-data/3.0/core/signal-definition.json +3 -3
  356. package/dist/lib/schemas-data/3.0/core/signal-filters.json +2 -2
  357. package/dist/lib/schemas-data/3.0/core/signal-id.json +1 -1
  358. package/dist/lib/schemas-data/3.0/core/signal-pricing-option.json +2 -2
  359. package/dist/lib/schemas-data/3.0/core/signal-pricing.json +6 -6
  360. package/dist/lib/schemas-data/3.0/core/signal-targeting.json +4 -4
  361. package/dist/lib/schemas-data/3.0/core/special.json +2 -2
  362. package/dist/lib/schemas-data/3.0/core/start-timing.json +1 -1
  363. package/dist/lib/schemas-data/3.0/core/store-item.json +3 -3
  364. package/dist/lib/schemas-data/3.0/core/talent.json +2 -2
  365. package/dist/lib/schemas-data/3.0/core/targeting.json +20 -20
  366. package/dist/lib/schemas-data/3.0/core/tasks-get-request.json +3 -3
  367. package/dist/lib/schemas-data/3.0/core/tasks-get-response.json +7 -7
  368. package/dist/lib/schemas-data/3.0/core/tasks-list-request.json +11 -11
  369. package/dist/lib/schemas-data/3.0/core/tasks-list-response.json +6 -6
  370. package/dist/lib/schemas-data/3.0/core/user-match.json +3 -3
  371. package/dist/lib/schemas-data/3.0/core/vehicle-item.json +4 -4
  372. package/dist/lib/schemas-data/3.0/core/vendor-pricing-option.json +2 -2
  373. package/dist/lib/schemas-data/3.0/core/x-entity-types.json +1 -1
  374. package/dist/lib/schemas-data/3.0/creative/asset-types/index.json +5 -5
  375. package/dist/lib/schemas-data/3.0/creative/creative-feature-result.json +2 -2
  376. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-request.json +5 -5
  377. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-response.json +7 -7
  378. package/dist/lib/schemas-data/3.0/creative/get-creative-features-request.json +5 -5
  379. package/dist/lib/schemas-data/3.0/creative/get-creative-features-response.json +8 -8
  380. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-request.json +11 -11
  381. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-response.json +7 -7
  382. package/dist/lib/schemas-data/3.0/creative/list-creatives-request.json +8 -8
  383. package/dist/lib/schemas-data/3.0/creative/list-creatives-response.json +14 -14
  384. package/dist/lib/schemas-data/3.0/creative/preview-creative-request.json +11 -11
  385. package/dist/lib/schemas-data/3.0/creative/preview-creative-response.json +12 -12
  386. package/dist/lib/schemas-data/3.0/creative/preview-render.json +1 -1
  387. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-input-required.json +3 -3
  388. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-submitted.json +3 -3
  389. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-working.json +3 -3
  390. package/dist/lib/schemas-data/3.0/creative/sync-creatives-request.json +7 -7
  391. package/dist/lib/schemas-data/3.0/creative/sync-creatives-response.json +13 -13
  392. package/dist/lib/schemas-data/3.0/enums/account-scope.json +1 -1
  393. package/dist/lib/schemas-data/3.0/enums/account-status.json +1 -1
  394. package/dist/lib/schemas-data/3.0/enums/action-source.json +1 -1
  395. package/dist/lib/schemas-data/3.0/enums/adcp-protocol.json +1 -1
  396. package/dist/lib/schemas-data/3.0/enums/adjustment-kind.json +1 -1
  397. package/dist/lib/schemas-data/3.0/enums/advertiser-industry.json +1 -1
  398. package/dist/lib/schemas-data/3.0/enums/age-verification-method.json +1 -1
  399. package/dist/lib/schemas-data/3.0/enums/assessment-status.json +1 -1
  400. package/dist/lib/schemas-data/3.0/enums/asset-content-type.json +1 -1
  401. package/dist/lib/schemas-data/3.0/enums/attribution-model.json +1 -1
  402. package/dist/lib/schemas-data/3.0/enums/audience-source.json +1 -1
  403. package/dist/lib/schemas-data/3.0/enums/audience-status.json +1 -1
  404. package/dist/lib/schemas-data/3.0/enums/audio-channel-layout.json +1 -1
  405. package/dist/lib/schemas-data/3.0/enums/auth-scheme.json +1 -1
  406. package/dist/lib/schemas-data/3.0/enums/available-metric.json +1 -1
  407. package/dist/lib/schemas-data/3.0/enums/billing-party.json +1 -1
  408. package/dist/lib/schemas-data/3.0/enums/binary-verdict.json +1 -1
  409. package/dist/lib/schemas-data/3.0/enums/brand-agent-type.json +1 -1
  410. package/dist/lib/schemas-data/3.0/enums/canceled-by.json +1 -1
  411. package/dist/lib/schemas-data/3.0/enums/catalog-action.json +1 -1
  412. package/dist/lib/schemas-data/3.0/enums/catalog-item-status.json +1 -1
  413. package/dist/lib/schemas-data/3.0/enums/catalog-type.json +1 -1
  414. package/dist/lib/schemas-data/3.0/enums/channels.json +1 -1
  415. package/dist/lib/schemas-data/3.0/enums/cloud-storage-protocol.json +1 -1
  416. package/dist/lib/schemas-data/3.0/enums/co-branding-requirement.json +1 -1
  417. package/dist/lib/schemas-data/3.0/enums/collection-cadence.json +1 -1
  418. package/dist/lib/schemas-data/3.0/enums/collection-kind.json +1 -1
  419. package/dist/lib/schemas-data/3.0/enums/collection-relationship.json +1 -1
  420. package/dist/lib/schemas-data/3.0/enums/collection-status.json +1 -1
  421. package/dist/lib/schemas-data/3.0/enums/consent-basis.json +1 -1
  422. package/dist/lib/schemas-data/3.0/enums/content-id-type.json +1 -1
  423. package/dist/lib/schemas-data/3.0/enums/content-rating-system.json +1 -1
  424. package/dist/lib/schemas-data/3.0/enums/creative-action.json +1 -1
  425. package/dist/lib/schemas-data/3.0/enums/creative-agent-capability.json +1 -1
  426. package/dist/lib/schemas-data/3.0/enums/creative-approval-status.json +1 -1
  427. package/dist/lib/schemas-data/3.0/enums/creative-identifier-type.json +1 -1
  428. package/dist/lib/schemas-data/3.0/enums/creative-quality.json +1 -1
  429. package/dist/lib/schemas-data/3.0/enums/creative-sort-field.json +1 -1
  430. package/dist/lib/schemas-data/3.0/enums/creative-status.json +1 -1
  431. package/dist/lib/schemas-data/3.0/enums/daast-tracking-event.json +1 -1
  432. package/dist/lib/schemas-data/3.0/enums/daast-version.json +1 -1
  433. package/dist/lib/schemas-data/3.0/enums/day-of-week.json +1 -1
  434. package/dist/lib/schemas-data/3.0/enums/delegation-authority.json +1 -1
  435. package/dist/lib/schemas-data/3.0/enums/delivery-type.json +1 -1
  436. package/dist/lib/schemas-data/3.0/enums/demographic-system.json +1 -1
  437. package/dist/lib/schemas-data/3.0/enums/derivative-type.json +1 -1
  438. package/dist/lib/schemas-data/3.0/enums/device-platform.json +1 -1
  439. package/dist/lib/schemas-data/3.0/enums/device-type.json +1 -1
  440. package/dist/lib/schemas-data/3.0/enums/digital-source-type.json +1 -1
  441. package/dist/lib/schemas-data/3.0/enums/dimension-unit.json +1 -1
  442. package/dist/lib/schemas-data/3.0/enums/disclosure-persistence.json +1 -1
  443. package/dist/lib/schemas-data/3.0/enums/disclosure-position.json +1 -1
  444. package/dist/lib/schemas-data/3.0/enums/distance-unit.json +1 -1
  445. package/dist/lib/schemas-data/3.0/enums/distribution-identifier-type.json +1 -1
  446. package/dist/lib/schemas-data/3.0/enums/error-code.json +3 -3
  447. package/dist/lib/schemas-data/3.0/enums/escalation-severity.json +1 -1
  448. package/dist/lib/schemas-data/3.0/enums/event-type.json +1 -1
  449. package/dist/lib/schemas-data/3.0/enums/exclusivity.json +1 -1
  450. package/dist/lib/schemas-data/3.0/enums/feature-check-status.json +1 -1
  451. package/dist/lib/schemas-data/3.0/enums/feed-format.json +1 -1
  452. package/dist/lib/schemas-data/3.0/enums/feedback-source.json +1 -1
  453. package/dist/lib/schemas-data/3.0/enums/forecast-method.json +1 -1
  454. package/dist/lib/schemas-data/3.0/enums/forecast-range-unit.json +1 -1
  455. package/dist/lib/schemas-data/3.0/enums/forecastable-metric.json +1 -1
  456. package/dist/lib/schemas-data/3.0/enums/format-id-parameter.json +1 -1
  457. package/dist/lib/schemas-data/3.0/enums/frame-rate-type.json +1 -1
  458. package/dist/lib/schemas-data/3.0/enums/frequency-cap-scope.json +1 -1
  459. package/dist/lib/schemas-data/3.0/enums/genre-taxonomy.json +1 -1
  460. package/dist/lib/schemas-data/3.0/enums/geo-level.json +1 -1
  461. package/dist/lib/schemas-data/3.0/enums/gop-type.json +1 -1
  462. package/dist/lib/schemas-data/3.0/enums/governance-decision.json +1 -1
  463. package/dist/lib/schemas-data/3.0/enums/governance-domain.json +1 -1
  464. package/dist/lib/schemas-data/3.0/enums/governance-mode.json +1 -1
  465. package/dist/lib/schemas-data/3.0/enums/governance-phase.json +1 -1
  466. package/dist/lib/schemas-data/3.0/enums/history-entry-type.json +1 -1
  467. package/dist/lib/schemas-data/3.0/enums/http-method.json +1 -1
  468. package/dist/lib/schemas-data/3.0/enums/identifier-types.json +1 -1
  469. package/dist/lib/schemas-data/3.0/enums/installment-status.json +1 -1
  470. package/dist/lib/schemas-data/3.0/enums/javascript-module-type.json +1 -1
  471. package/dist/lib/schemas-data/3.0/enums/landing-page-requirement.json +1 -1
  472. package/dist/lib/schemas-data/3.0/enums/makegood-remedy.json +1 -1
  473. package/dist/lib/schemas-data/3.0/enums/markdown-flavor.json +1 -1
  474. package/dist/lib/schemas-data/3.0/enums/match-id-type.json +1 -1
  475. package/dist/lib/schemas-data/3.0/enums/match-type.json +1 -1
  476. package/dist/lib/schemas-data/3.0/enums/media-buy-status.json +1 -1
  477. package/dist/lib/schemas-data/3.0/enums/media-buy-valid-action.json +1 -1
  478. package/dist/lib/schemas-data/3.0/enums/metric-type.json +1 -1
  479. package/dist/lib/schemas-data/3.0/enums/metro-system.json +1 -1
  480. package/dist/lib/schemas-data/3.0/enums/moov-atom-position.json +1 -1
  481. package/dist/lib/schemas-data/3.0/enums/notification-type.json +1 -1
  482. package/dist/lib/schemas-data/3.0/enums/outcome-type.json +1 -1
  483. package/dist/lib/schemas-data/3.0/enums/pacing.json +1 -1
  484. package/dist/lib/schemas-data/3.0/enums/payment-terms.json +1 -1
  485. package/dist/lib/schemas-data/3.0/enums/performance-standard-metric.json +1 -1
  486. package/dist/lib/schemas-data/3.0/enums/policy-category.json +1 -1
  487. package/dist/lib/schemas-data/3.0/enums/policy-enforcement.json +1 -1
  488. package/dist/lib/schemas-data/3.0/enums/postal-system.json +1 -1
  489. package/dist/lib/schemas-data/3.0/enums/preview-output-format.json +1 -1
  490. package/dist/lib/schemas-data/3.0/enums/pricing-model.json +1 -1
  491. package/dist/lib/schemas-data/3.0/enums/production-quality.json +1 -1
  492. package/dist/lib/schemas-data/3.0/enums/property-type.json +1 -1
  493. package/dist/lib/schemas-data/3.0/enums/proposal-status.json +1 -1
  494. package/dist/lib/schemas-data/3.0/enums/publisher-identifier-types.json +1 -1
  495. package/dist/lib/schemas-data/3.0/enums/purchase-type.json +1 -1
  496. package/dist/lib/schemas-data/3.0/enums/reach-unit.json +1 -1
  497. package/dist/lib/schemas-data/3.0/enums/reporting-frequency.json +1 -1
  498. package/dist/lib/schemas-data/3.0/enums/response-type.json +1 -1
  499. package/dist/lib/schemas-data/3.0/enums/restricted-attribute.json +1 -1
  500. package/dist/lib/schemas-data/3.0/enums/right-type.json +1 -1
  501. package/dist/lib/schemas-data/3.0/enums/right-use.json +1 -1
  502. package/dist/lib/schemas-data/3.0/enums/rights-billing-period.json +1 -1
  503. package/dist/lib/schemas-data/3.0/enums/scan-type.json +1 -1
  504. package/dist/lib/schemas-data/3.0/enums/si-session-status.json +1 -1
  505. package/dist/lib/schemas-data/3.0/enums/signal-catalog-type.json +1 -1
  506. package/dist/lib/schemas-data/3.0/enums/signal-source.json +1 -1
  507. package/dist/lib/schemas-data/3.0/enums/signal-value-type.json +1 -1
  508. package/dist/lib/schemas-data/3.0/enums/snapshot-unavailable-reason.json +1 -1
  509. package/dist/lib/schemas-data/3.0/enums/sort-direction.json +1 -1
  510. package/dist/lib/schemas-data/3.0/enums/sort-metric.json +1 -1
  511. package/dist/lib/schemas-data/3.0/enums/special-category.json +1 -1
  512. package/dist/lib/schemas-data/3.0/enums/specialism.json +1 -1
  513. package/dist/lib/schemas-data/3.0/enums/talent-role.json +1 -1
  514. package/dist/lib/schemas-data/3.0/enums/task-status.json +1 -1
  515. package/dist/lib/schemas-data/3.0/enums/task-type.json +1 -1
  516. package/dist/lib/schemas-data/3.0/enums/transport-mode.json +1 -1
  517. package/dist/lib/schemas-data/3.0/enums/travel-time-unit.json +1 -1
  518. package/dist/lib/schemas-data/3.0/enums/uid-type.json +1 -1
  519. package/dist/lib/schemas-data/3.0/enums/universal-macro.json +1 -1
  520. package/dist/lib/schemas-data/3.0/enums/update-frequency.json +1 -1
  521. package/dist/lib/schemas-data/3.0/enums/url-asset-type.json +1 -1
  522. package/dist/lib/schemas-data/3.0/enums/validation-mode.json +1 -1
  523. package/dist/lib/schemas-data/3.0/enums/vast-tracking-event.json +1 -1
  524. package/dist/lib/schemas-data/3.0/enums/vast-version.json +1 -1
  525. package/dist/lib/schemas-data/3.0/enums/viewability-standard.json +1 -1
  526. package/dist/lib/schemas-data/3.0/enums/wcag-level.json +1 -1
  527. package/dist/lib/schemas-data/3.0/enums/webhook-response-type.json +1 -1
  528. package/dist/lib/schemas-data/3.0/enums/webhook-security-method.json +1 -1
  529. package/dist/lib/schemas-data/3.0/error-details/account-setup-required.json +1 -1
  530. package/dist/lib/schemas-data/3.0/error-details/audience-too-small.json +1 -1
  531. package/dist/lib/schemas-data/3.0/error-details/budget-too-low.json +1 -1
  532. package/dist/lib/schemas-data/3.0/error-details/conflict.json +1 -1
  533. package/dist/lib/schemas-data/3.0/error-details/creative-rejected.json +1 -1
  534. package/dist/lib/schemas-data/3.0/error-details/policy-violation.json +1 -1
  535. package/dist/lib/schemas-data/3.0/error-details/rate-limited.json +1 -1
  536. package/dist/lib/schemas-data/3.0/error-details/vendor-error-codes.json +1 -1
  537. package/dist/lib/schemas-data/3.0/extensions/extension-meta.json +1 -1
  538. package/dist/lib/schemas-data/3.0/extensions/index.json +2 -2
  539. package/dist/lib/schemas-data/3.0/governance/attribute-definition.json +1 -1
  540. package/dist/lib/schemas-data/3.0/governance/audience-constraints.json +3 -3
  541. package/dist/lib/schemas-data/3.0/governance/check-governance-request.json +7 -7
  542. package/dist/lib/schemas-data/3.0/governance/check-governance-response.json +6 -6
  543. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-request.json +4 -4
  544. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-response.json +9 -9
  545. package/dist/lib/schemas-data/3.0/governance/policy-category-definition.json +2 -2
  546. package/dist/lib/schemas-data/3.0/governance/policy-entry.json +6 -6
  547. package/dist/lib/schemas-data/3.0/governance/policy-ref.json +1 -1
  548. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-request.json +6 -6
  549. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-response.json +4 -4
  550. package/dist/lib/schemas-data/3.0/governance/sync-plans-request.json +13 -13
  551. package/dist/lib/schemas-data/3.0/governance/sync-plans-response.json +4 -4
  552. package/dist/lib/schemas-data/3.0/index.json +364 -364
  553. package/dist/lib/schemas-data/3.0/manifest.json +5 -5
  554. package/dist/lib/schemas-data/3.0/manifest.schema.json +1 -1
  555. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-input-required.json +4 -4
  556. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-submitted.json +3 -3
  557. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-working.json +3 -3
  558. package/dist/lib/schemas-data/3.0/media-buy/build-creative-request.json +11 -11
  559. package/dist/lib/schemas-data/3.0/media-buy/build-creative-response.json +17 -17
  560. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-input-required.json +4 -4
  561. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-submitted.json +3 -3
  562. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-working.json +3 -3
  563. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-request.json +12 -12
  564. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-response.json +15 -15
  565. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-request.json +17 -17
  566. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-response.json +24 -24
  567. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-request.json +7 -7
  568. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-response.json +19 -19
  569. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-input-required.json +4 -4
  570. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-submitted.json +3 -3
  571. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-working.json +3 -3
  572. package/dist/lib/schemas-data/3.0/media-buy/get-products-request.json +11 -11
  573. package/dist/lib/schemas-data/3.0/media-buy/get-products-response.json +8 -8
  574. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-request.json +11 -11
  575. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-response.json +7 -7
  576. package/dist/lib/schemas-data/3.0/media-buy/log-event-request.json +4 -4
  577. package/dist/lib/schemas-data/3.0/media-buy/log-event-response.json +6 -6
  578. package/dist/lib/schemas-data/3.0/media-buy/package-request.json +12 -12
  579. package/dist/lib/schemas-data/3.0/media-buy/package-update.json +13 -13
  580. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-request.json +6 -6
  581. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-response.json +6 -6
  582. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-request.json +7 -7
  583. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-response.json +9 -9
  584. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  585. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-submitted.json +3 -3
  586. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-working.json +3 -3
  587. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-request.json +7 -7
  588. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-response.json +9 -9
  589. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-request.json +5 -5
  590. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-response.json +10 -10
  591. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-input-required.json +3 -3
  592. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-submitted.json +3 -3
  593. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-working.json +3 -3
  594. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-request.json +10 -10
  595. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-response.json +10 -10
  596. package/dist/lib/schemas-data/3.0/pricing-options/cpa-option.json +4 -4
  597. package/dist/lib/schemas-data/3.0/pricing-options/cpc-option.json +4 -4
  598. package/dist/lib/schemas-data/3.0/pricing-options/cpcv-option.json +4 -4
  599. package/dist/lib/schemas-data/3.0/pricing-options/cpm-option.json +4 -4
  600. package/dist/lib/schemas-data/3.0/pricing-options/cpp-option.json +5 -5
  601. package/dist/lib/schemas-data/3.0/pricing-options/cpv-option.json +4 -4
  602. package/dist/lib/schemas-data/3.0/pricing-options/flat-rate-option.json +4 -4
  603. package/dist/lib/schemas-data/3.0/pricing-options/price-breakdown.json +2 -2
  604. package/dist/lib/schemas-data/3.0/pricing-options/price-guidance.json +1 -1
  605. package/dist/lib/schemas-data/3.0/pricing-options/time-option.json +4 -4
  606. package/dist/lib/schemas-data/3.0/pricing-options/vcpm-option.json +4 -4
  607. package/dist/lib/schemas-data/3.0/property/authorization-result.json +1 -1
  608. package/dist/lib/schemas-data/3.0/property/base-property-source.json +4 -4
  609. package/dist/lib/schemas-data/3.0/property/create-property-list-request.json +7 -7
  610. package/dist/lib/schemas-data/3.0/property/create-property-list-response.json +4 -4
  611. package/dist/lib/schemas-data/3.0/property/delete-property-list-request.json +4 -4
  612. package/dist/lib/schemas-data/3.0/property/delete-property-list-response.json +3 -3
  613. package/dist/lib/schemas-data/3.0/property/delivery-record.json +3 -3
  614. package/dist/lib/schemas-data/3.0/property/get-property-list-request.json +4 -4
  615. package/dist/lib/schemas-data/3.0/property/get-property-list-response.json +7 -7
  616. package/dist/lib/schemas-data/3.0/property/list-property-lists-request.json +5 -5
  617. package/dist/lib/schemas-data/3.0/property/list-property-lists-response.json +5 -5
  618. package/dist/lib/schemas-data/3.0/property/property-error.json +2 -2
  619. package/dist/lib/schemas-data/3.0/property/property-feature-definition.json +2 -2
  620. package/dist/lib/schemas-data/3.0/property/property-feature-result.json +4 -4
  621. package/dist/lib/schemas-data/3.0/property/property-feature-value.json +2 -2
  622. package/dist/lib/schemas-data/3.0/property/property-feature.json +1 -1
  623. package/dist/lib/schemas-data/3.0/property/property-list-changed-webhook.json +2 -2
  624. package/dist/lib/schemas-data/3.0/property/property-list-filters.json +5 -5
  625. package/dist/lib/schemas-data/3.0/property/property-list.json +6 -6
  626. package/dist/lib/schemas-data/3.0/property/update-property-list-request.json +7 -7
  627. package/dist/lib/schemas-data/3.0/property/update-property-list-response.json +4 -4
  628. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-request.json +5 -5
  629. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-response.json +4 -4
  630. package/dist/lib/schemas-data/3.0/property/validation-result.json +5 -5
  631. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-request.json +3 -3
  632. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-response.json +25 -25
  633. package/dist/lib/schemas-data/3.0/signals/activate-signal-request.json +5 -5
  634. package/dist/lib/schemas-data/3.0/signals/activate-signal-response.json +7 -7
  635. package/dist/lib/schemas-data/3.0/signals/get-signals-request.json +8 -8
  636. package/dist/lib/schemas-data/3.0/signals/get-signals-response.json +10 -10
  637. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-capabilities.json +1 -1
  638. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-request.json +3 -3
  639. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-response.json +4 -4
  640. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-identity.json +1 -1
  641. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-request.json +5 -5
  642. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-response.json +7 -7
  643. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-request.json +3 -3
  644. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-response.json +7 -7
  645. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-request.json +3 -3
  646. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-response.json +5 -5
  647. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-ui-element.json +1 -1
  648. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  649. package/dist/lib/server/account-mode.d.ts +113 -0
  650. package/dist/lib/server/account-mode.d.ts.map +1 -0
  651. package/dist/lib/server/account-mode.js +125 -0
  652. package/dist/lib/server/account-mode.js.map +1 -0
  653. package/dist/lib/server/adcp-server.js +41 -0
  654. package/dist/lib/server/adcp-server.js.map +1 -1
  655. package/dist/lib/server/auth.d.ts +35 -0
  656. package/dist/lib/server/auth.d.ts.map +1 -1
  657. package/dist/lib/server/auth.js.map +1 -1
  658. package/dist/lib/server/create-adcp-server.d.ts +26 -9
  659. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  660. package/dist/lib/server/create-adcp-server.js +46 -20
  661. package/dist/lib/server/create-adcp-server.js.map +1 -1
  662. package/dist/lib/server/ctx-metadata/store.d.ts +1 -1
  663. package/dist/lib/server/ctx-metadata/store.d.ts.map +1 -1
  664. package/dist/lib/server/ctx-metadata/store.js +1 -0
  665. package/dist/lib/server/ctx-metadata/store.js.map +1 -1
  666. package/dist/lib/server/decisioning/account.d.ts +19 -0
  667. package/dist/lib/server/decisioning/account.d.ts.map +1 -1
  668. package/dist/lib/server/decisioning/account.js.map +1 -1
  669. package/dist/lib/server/decisioning/buyer-agent.d.ts +37 -4
  670. package/dist/lib/server/decisioning/buyer-agent.d.ts.map +1 -1
  671. package/dist/lib/server/decisioning/buyer-agent.js +12 -2
  672. package/dist/lib/server/decisioning/buyer-agent.js.map +1 -1
  673. package/dist/lib/server/decisioning/compose.d.ts +33 -2
  674. package/dist/lib/server/decisioning/compose.d.ts.map +1 -1
  675. package/dist/lib/server/decisioning/compose.js +13 -46
  676. package/dist/lib/server/decisioning/compose.js.map +1 -1
  677. package/dist/lib/server/decisioning/index.d.ts +2 -1
  678. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  679. package/dist/lib/server/decisioning/index.js +2 -1
  680. package/dist/lib/server/decisioning/index.js.map +1 -1
  681. package/dist/lib/server/decisioning/platform-helpers.d.ts +18 -0
  682. package/dist/lib/server/decisioning/platform-helpers.d.ts.map +1 -1
  683. package/dist/lib/server/decisioning/platform-helpers.js +20 -0
  684. package/dist/lib/server/decisioning/platform-helpers.js.map +1 -1
  685. package/dist/lib/server/decisioning/platform.d.ts +19 -21
  686. package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
  687. package/dist/lib/server/decisioning/platform.js.map +1 -1
  688. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js +1 -1
  689. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  690. package/dist/lib/server/decisioning/runtime/from-platform.js +369 -54
  691. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  692. package/dist/lib/server/decisioning/runtime/observed-modes.d.ts +40 -0
  693. package/dist/lib/server/decisioning/runtime/observed-modes.d.ts.map +1 -0
  694. package/dist/lib/server/decisioning/runtime/observed-modes.js +82 -0
  695. package/dist/lib/server/decisioning/runtime/observed-modes.js.map +1 -0
  696. package/dist/lib/server/decisioning/runtime/protocol-for-tool.js +2 -2
  697. package/dist/lib/server/decisioning/runtime/protocol-for-tool.js.map +1 -1
  698. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
  699. package/dist/lib/server/decisioning/runtime/validate-platform.js +9 -1
  700. package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
  701. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.d.ts +125 -0
  702. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.d.ts.map +1 -0
  703. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.js +52 -0
  704. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.js.map +1 -0
  705. package/dist/lib/server/decisioning/tenant-registry.d.ts +16 -0
  706. package/dist/lib/server/decisioning/tenant-registry.d.ts.map +1 -1
  707. package/dist/lib/server/decisioning/tenant-registry.js.map +1 -1
  708. package/dist/lib/server/index.d.ts +5 -1
  709. package/dist/lib/server/index.d.ts.map +1 -1
  710. package/dist/lib/server/index.js +15 -3
  711. package/dist/lib/server/index.js.map +1 -1
  712. package/dist/lib/server/serve.js +20 -2
  713. package/dist/lib/server/serve.js.map +1 -1
  714. package/dist/lib/server/socket-mode/conformance-client.d.ts +83 -0
  715. package/dist/lib/server/socket-mode/conformance-client.d.ts.map +1 -0
  716. package/dist/lib/server/socket-mode/conformance-client.js +117 -0
  717. package/dist/lib/server/socket-mode/conformance-client.js.map +1 -0
  718. package/dist/lib/server/socket-mode/index.d.ts +15 -0
  719. package/dist/lib/server/socket-mode/index.d.ts.map +1 -0
  720. package/dist/lib/server/socket-mode/index.js +20 -0
  721. package/dist/lib/server/socket-mode/index.js.map +1 -0
  722. package/dist/lib/server/socket-mode/ws-transport.d.ts +26 -0
  723. package/dist/lib/server/socket-mode/ws-transport.d.ts.map +1 -0
  724. package/dist/lib/server/socket-mode/ws-transport.js +93 -0
  725. package/dist/lib/server/socket-mode/ws-transport.js.map +1 -0
  726. package/dist/lib/server/test-controller.d.ts +3 -0
  727. package/dist/lib/server/test-controller.d.ts.map +1 -1
  728. package/dist/lib/server/test-controller.js +23 -20
  729. package/dist/lib/server/test-controller.js.map +1 -1
  730. package/dist/lib/testing/comply-controller.d.ts +65 -3
  731. package/dist/lib/testing/comply-controller.d.ts.map +1 -1
  732. package/dist/lib/testing/comply-controller.js +32 -3
  733. package/dist/lib/testing/comply-controller.js.map +1 -1
  734. package/dist/lib/testing/index.d.ts +1 -1
  735. package/dist/lib/testing/index.d.ts.map +1 -1
  736. package/dist/lib/testing/index.js.map +1 -1
  737. package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -1
  738. package/dist/lib/testing/storyboard/request-builder.js +63 -40
  739. package/dist/lib/testing/storyboard/request-builder.js.map +1 -1
  740. package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
  741. package/dist/lib/testing/storyboard/validations.js +36 -54
  742. package/dist/lib/testing/storyboard/validations.js.map +1 -1
  743. package/dist/lib/testing/test-controller.d.ts +10 -4
  744. package/dist/lib/testing/test-controller.d.ts.map +1 -1
  745. package/dist/lib/testing/test-controller.js +9 -3
  746. package/dist/lib/testing/test-controller.js.map +1 -1
  747. package/dist/lib/types/core.generated.d.ts +54 -14
  748. package/dist/lib/types/core.generated.d.ts.map +1 -1
  749. package/dist/lib/types/core.generated.js +2 -2
  750. package/dist/lib/types/error-codes.d.ts +2 -2
  751. package/dist/lib/types/index.d.ts +4 -3
  752. package/dist/lib/types/index.d.ts.map +1 -1
  753. package/dist/lib/types/index.js +3 -0
  754. package/dist/lib/types/index.js.map +1 -1
  755. package/dist/lib/types/manifest.generated.d.ts +5 -5
  756. package/dist/lib/types/manifest.generated.js +3 -3
  757. package/dist/lib/types/manifest.generated.js.map +1 -1
  758. package/dist/lib/types/schemas.generated.d.ts +465 -381
  759. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  760. package/dist/lib/types/schemas.generated.js +171 -143
  761. package/dist/lib/types/schemas.generated.js.map +1 -1
  762. package/dist/lib/types/tools.generated.d.ts +42 -14
  763. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  764. package/dist/lib/utils/glob.d.ts +4 -2
  765. package/dist/lib/utils/glob.d.ts.map +1 -1
  766. package/dist/lib/utils/glob.js +4 -2
  767. package/dist/lib/utils/glob.js.map +1 -1
  768. package/dist/lib/version.d.ts +7 -7
  769. package/dist/lib/version.d.ts.map +1 -1
  770. package/dist/lib/version.js +6 -5
  771. package/dist/lib/version.js.map +1 -1
  772. package/docs/llms.txt +5 -4
  773. package/examples/README.md +29 -13
  774. package/examples/hello-cluster.ts +62 -23
  775. package/examples/hello_creative_adapter_ad_server.ts +809 -0
  776. package/examples/hello_creative_adapter_template.ts +61 -6
  777. package/examples/hello_seller_adapter_guaranteed.ts +158 -25
  778. package/examples/hello_seller_adapter_multi_tenant.ts +39 -5
  779. package/examples/hello_seller_adapter_non_guaranteed.ts +1071 -0
  780. package/examples/hello_seller_adapter_social.ts +1 -1
  781. package/examples/hello_si_adapter_brand.ts +572 -0
  782. package/examples/hello_signals_adapter_marketplace.ts +34 -29
  783. package/package.json +7 -5
  784. package/skills/SHAPE-GOTCHAS.md +18 -0
  785. package/skills/build-brand-rights-agent/SKILL.md +61 -597
  786. package/skills/build-creative-agent/SKILL.md +69 -830
  787. package/skills/build-generative-seller-agent/SKILL.md +43 -577
  788. package/skills/build-governance-agent/SKILL.md +63 -950
  789. package/skills/build-holdco-agent/SKILL.md +8 -0
  790. package/skills/build-retail-media-agent/SKILL.md +46 -478
  791. package/skills/build-seller-agent/SKILL.md +53 -1795
  792. package/skills/build-seller-agent/specialisms/sales-non-guaranteed.md +9 -31
  793. package/skills/build-si-agent/SKILL.md +55 -318
  794. package/skills/build-signals-agent/SKILL.md +49 -537
  795. package/skills/call-adcp-agent/SKILL.md +7 -1
  796. package/skills/cross-cutting.md +84 -0
  797. package/skills/call-adcp-agent.previous/SKILL.md +0 -261
  798. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/brand/index.yaml +0 -0
  799. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/creative/index.yaml +0 -0
  800. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/governance/index.yaml +0 -0
  801. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/creative-reception.yaml +0 -0
  802. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/index.yaml +0 -0
  803. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  804. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  805. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  806. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
  807. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
  808. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
  809. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  810. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
  811. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  812. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  813. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  814. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  815. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  816. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/state-machine.yaml +0 -0
  817. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/signals/index.yaml +0 -0
  818. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/sponsored-intelligence/index.yaml +0 -0
  819. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/brand/index.yaml +0 -0
  820. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/creative/index.yaml +0 -0
  821. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/governance/index.yaml +0 -0
  822. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/creative-reception.yaml +0 -0
  823. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/index.yaml +0 -0
  824. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  825. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  826. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  827. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
  828. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
  829. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
  830. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  831. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
  832. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  833. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  834. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  835. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  836. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  837. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/state-machine.yaml +0 -0
  838. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/signals/index.yaml +0 -0
  839. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/sponsored-intelligence/index.yaml +0 -0
  840. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/audience-sync/index.yaml +0 -0
  841. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/brand-rights/index.yaml +0 -0
  842. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  843. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/collection-lists/index.yaml +0 -0
  844. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/content-standards/index.yaml +0 -0
  845. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-ad-server/index.yaml +0 -0
  846. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-generative/generative-seller.yaml +0 -0
  847. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-generative/index.yaml +0 -0
  848. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-template/index.yaml +0 -0
  849. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-aware-seller/index.yaml +0 -0
  850. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  851. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-spend-authority/denied.yaml +0 -0
  852. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-spend-authority/index.yaml +0 -0
  853. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/property-lists/index.yaml +0 -0
  854. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  855. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-catalog-driven/index.yaml +0 -0
  856. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  857. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-proposal-mode/index.yaml +0 -0
  858. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-social/index.yaml +0 -0
  859. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-marketplace/index.yaml +0 -0
  860. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  861. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-owned/index.yaml +0 -0
  862. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/acme-outdoor.yaml +0 -0
  863. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/bistro-oranje.yaml +0 -0
  864. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/nova-motors.yaml +0 -0
  865. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/osei-natural.yaml +0 -0
  866. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/signed-requests-runner.yaml +0 -0
  867. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/substitution-observer-runner.yaml +0 -0
  868. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/summit-foods.yaml +0 -0
  869. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/webhook-receiver-runner.yaml +0 -0
  870. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  871. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/002-full-plan.json +0 -0
  872. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  873. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  874. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  875. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  876. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  877. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  878. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  879. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  880. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  881. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/README.md +0 -0
  882. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/canonicalization.json +0 -0
  883. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/keys.json +0 -0
  884. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  885. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  886. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  887. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  888. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  889. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  890. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  891. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  892. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  893. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  894. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  895. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  896. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  897. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  898. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  899. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  900. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  901. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  902. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  903. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  904. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  905. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  906. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  907. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  908. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  909. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  910. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  911. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  912. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  913. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  914. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  915. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  916. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  917. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  918. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  919. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  920. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  921. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  922. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  923. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/README.md +0 -0
  924. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/keys.json +0 -0
  925. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  926. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  927. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  928. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  929. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  930. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  931. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  932. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  933. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  934. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  935. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  936. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  937. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  938. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  939. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  940. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  941. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  942. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  943. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  944. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  945. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  946. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  947. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  948. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  949. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  950. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  951. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  952. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  953. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/capability-discovery.yaml +0 -0
  954. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/collection-lists-pagination-integrity.yaml +0 -0
  955. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/content-standards-pagination-integrity.yaml +0 -0
  956. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/deterministic-testing.yaml +0 -0
  957. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/error-compliance.yaml +0 -0
  958. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/fictional-entities.yaml +0 -0
  959. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  960. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/get-signals-pagination-integrity.yaml +0 -0
  961. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/idempotency.yaml +0 -0
  962. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity-creative-formats.yaml +0 -0
  963. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity-list-accounts.yaml +0 -0
  964. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity.yaml +0 -0
  965. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/property-lists-pagination-integrity.yaml +0 -0
  966. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/runner-output-contract.yaml +0 -0
  967. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/schema-validation.yaml +0 -0
  968. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/security.yaml +0 -0
  969. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/signed-requests.yaml +0 -0
  970. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/v3-envelope-integrity.yaml +0 -0
  971. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/webhook-emission.yaml +0 -0
@@ -32,6 +32,14 @@ The reference adapter is `examples/hello_seller_adapter_multi_tenant.ts` — for
32
32
  - Multiple specialisms but no tenant partitioning (single-tenant SaaS) → drop the tenant routing and follow the per-specialism skill for each interface
33
33
  - One agent acting on behalf of multiple brands without specialism overlap → that's a multi-account single-specialism agent; use the per-specialism skill
34
34
 
35
+ ## Cross-cutting rules
36
+
37
+ Every holdco hub hits the cross-cutting rules in [`../cross-cutting.md`](../cross-cutting.md). The most relevant for a holdco (deep-linked to the rule):
38
+
39
+ - [Account resolution](../cross-cutting.md#account-resolution-pick-a-security-preset) — `createTenantStore` is the right answer for any multi-tenant adopter (covered in detail below)
40
+ - [Resolve-then-authorize](../cross-cutting.md#resolve-then-authorize--uniform-errors-for-not-found--not-yours) — byte-equivalent errors on cross-tenant id lookups; the multi-tenant attack surface makes this load-bearing
41
+ - [`ctx_metadata` is not for credentials](../cross-cutting.md#ctx_metadata-is-not-for-credentials) — particularly important for holdcos because per-tenant credentials must NOT travel through `ctx_metadata`; re-derive from `ctx.authInfo` per request
42
+
35
43
  ## The shape: one DecisioningPlatform, three specialism interfaces
36
44
 
37
45
  ```ts
@@ -1,513 +1,81 @@
1
1
  ---
2
2
  name: build-retail-media-agent
3
- description: Use when building an AdCP retail media network agent — a platform that sells on-site placements, supports product catalogs, tracks conversions, and reports performance.
3
+ description: Use when building an AdCP retail media network agent — a platform that sells on-site placements, supports product catalogs, tracks conversions, and reports performance. Applies to retail, restaurants, travel, and any platform rendering ads from a feed.
4
4
  ---
5
5
 
6
6
  # Build a Retail Media Agent
7
7
 
8
- ## Overview
8
+ A retail media agent sells on-site placements driven by a product catalog and reports conversion outcomes back to buyers. The fastest path is to **fork a seller adapter** and add the catalog-driven surface (`syncCatalogs`, `syncEventSources`, `logEvent`, `providePerformanceFeedback`) on top.
9
9
 
10
- A retail media agent sells advertising on a retailer's properties (sponsored products, homepage banners, search results). It extends the standard seller with catalog sync, event tracking, and performance feedback. Buyers sync product catalogs, the platform renders dynamic ads from the feed, and conversion data flows back for optimization.
10
+ ## Pick your fork target
11
11
 
12
- ## When to Use
12
+ There's no dedicated `hello_retail_media_adapter_*.ts` yet — retail-media is additive on top of `sales-non-guaranteed`, so adopters fork the seller adapter and add the catalog surface.
13
13
 
14
- - User wants to build a retail media network, commerce media platform, or sponsored products agent
15
- - User mentions catalogs, product feeds, conversion tracking, or performance feedback
16
- - User references `sync_catalogs`, `log_event`, or `provide_performance_feedback`
14
+ | Specialism | Status | Fork this | Add | Storyboard |
15
+ | --- | --- | --- | --- | --- |
16
+ | `sales-catalog-driven` | stable | [`hello_seller_adapter_non_guaranteed.ts`](../../examples/hello_seller_adapter_non_guaranteed.ts) | `syncCatalogs`, `syncEventSources`, `logEvent`, `providePerformanceFeedback` | `sales_catalog_driven` |
17
+ | `sales-retail-media` | preview | Same | + retail-specific surface encoding in `publisher_properties` / `format_ids` (search vs PDP vs homepage vs offsite vs in-store) | placeholder |
17
18
 
18
- **Not this skill:**
19
-
20
- - Standard seller without catalogs → `skills/build-seller-agent/`
21
- - Generative seller (AI creative from briefs) → `skills/build-generative-seller-agent/`
22
- - Signals/audience data → `skills/build-signals-agent/`
23
-
24
- Despite the name, **this skill also covers non-retail catalog-driven sales** — restaurants, travel, local commerce, any platform where the ad unit is rendered from a feed of products/listings/menu items. The compliance storyboard `media_buy_catalog_creative` uses a steakhouse protagonist, not a retailer.
25
-
26
- ## Specialisms This Skill Covers
27
-
28
- | Specialism | Status | Delta |
29
- | ---------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
30
- | `sales-catalog-driven` | stable | Products declare `supports_catalog: true` and `supports_conversion_tracking: true`; `create_media_buy` accepts `packages[].catalogs[]`; `log_event` response includes `match_quality`. Applies to retail, restaurants, travel, and any platform rendering ads from a feed. |
31
- | `sales-retail-media` | preview | v3.1 placeholder. Ship the `sales-catalog-driven` baseline plus retail-specific surface encoding (search vs PDP vs homepage vs offsite vs in-store) in `publisher_properties` / `format_ids` |
32
-
33
- Attribution linkage (`log_event.content_ids` → catalog `item_id` → `media_buy_id`) is deliberately out-of-scope for AdCP 3.0 — the storyboard accepts counter-only responses. Closed-loop attribution + ROAS reporting land in 3.1.
34
-
35
- ## Protocol-Wide Requirements
36
-
37
- Full treatment in `skills/build-seller-agent/SKILL.md` §Protocol-Wide Requirements and §Composing — a retail-media agent inherits all the baseline-seller requirements. Minimum viable pointers:
38
-
39
- - **`idempotency_key`** on every mutating request (`create_media_buy`, `update_media_buy`, `sync_accounts`, `sync_creatives`, `sync_catalogs`, `sync_event_sources`, `log_event`, `provide_performance_feedback`). Pass `createIdempotencyStore` to `createAdcpServerFromPlatform(platform, { idempotency })`.
40
- - **Authentication** via `serve({ authenticate })`. Unauthenticated agents fail the universal `security_baseline` storyboard.
41
- - **Signature-header transparency**: accept `Signature-Input`/`Signature` headers even if you don't claim `signed-requests`.
42
-
43
- ## Before Writing Code
44
-
45
- Same domain decisions as the seller skill, plus:
46
-
47
- ### 1. Products and pricing
48
-
49
- Same as seller. Each product needs: `product_id`, `name`, `description`, `publisher_properties`, `format_ids`, `delivery_type`, `pricing_options`, `reporting_capabilities`. See [`docs/TYPE-SUMMARY.md`](../../docs/TYPE-SUMMARY.md) for full field details.
50
-
51
- ### 2. Catalog support
52
-
53
- What product catalogs does the platform accept?
54
-
55
- - Feed format: JSON, CSV, XML
56
- - What fields: product_id, title, price, image_url, category
57
- - How does the catalog connect to ad rendering?
58
-
59
- ### 3. Event tracking
60
-
61
- What conversion events does the platform track?
62
-
63
- - Purchase, add_to_cart, page_view, search
64
- - How are events attributed to catalog items?
65
-
66
- ### 4. Performance feedback
67
-
68
- Does the buyer send performance metrics back for optimization?
69
-
70
- ## Tools and Required Response Shapes
71
-
72
- > **Before writing any handler's return statement, fetch [`docs/llms.txt`](../../docs/llms.txt) and grep for `#### \`<tool_name>\``(e.g.`#### \`sync_catalogs\``) 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.
73
- >
74
- > **Cross-cutting pitfalls matrix runs keep catching:**
75
- >
76
- > - **Declare `capabilities.specialisms: ['sales-catalog-driven'] as const` on the `DecisioningPlatform` you pass to `createAdcpServerFromPlatform`.** 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.
77
- > - `get_media_buy_delivery` response requires **top-level `currency: string`** (ISO 4217).
78
- > - `get_media_buy_delivery /media_buy_deliveries[i]/by_package[j]` rows require `package_id`, `spend`, `pricing_model`, `rate`, `currency`. Mock handlers that return `{package_id, impressions, clicks}` fail validation — include the billing quintet on every package row.
79
- > - `get_media_buy_delivery /reporting_period/start` and `/end` are ISO 8601 **date-time** strings (`new Date().toISOString()`), not date-only. `'2026-04-21'` fails the GA format check.
80
- > - `get_media_buys /media_buys[i]` rows require `media_buy_id`, `status`, `currency`, `total_budget`, `packages`. Persist `currency` + `total_budget` from `create_media_buy` so they can be echoed back verbatim.
81
- > - `sync_accounts` response: each `accounts[]` row requires `action: 'created' | 'updated' | 'unchanged' | 'failed'` (same shape as `sync_creatives`). Omitting `action` fails schema validation and blocks every downstream stateful step.
82
-
83
- All standard seller tools apply (see `skills/build-seller-agent/SKILL.md`). The additional tools:
84
-
85
- **`get_adcp_capabilities`** — auto-generated by `createAdcpServerFromPlatform` from the typed `DecisioningPlatform` you provide. Do not implement manually.
86
-
87
- **`sync_accounts`** — `SyncAccountsRequestSchema.shape`
88
-
89
- ```
90
- taskToolResponse({
91
- accounts: [{
92
- account_id: string,
93
- brand: { domain: string },
94
- operator: string,
95
- action: 'created' | 'updated',
96
- status: 'active' | 'pending_approval',
97
- }]
98
- })
99
- ```
100
-
101
- **`get_products`** — `GetProductsRequestSchema.shape`
102
-
103
- ```typescript
104
- import { DEFAULT_REPORTING_CAPABILITIES } from '@adcp/sdk/server';
105
-
106
- productsResponse({
107
- products: [
108
- {
109
- product_id: 'sponsored-home',
110
- name: 'Sponsored Products — Home',
111
- description: 'On-site sponsored placements.',
112
- publisher_properties: [{ publisher_domain: 'retailer.example', selection_type: 'all' }],
113
- format_ids: [{ agent_url: 'https://retailer.example/mcp', id: 'display_300x250' }],
114
- delivery_type: 'non_guaranteed',
115
- pricing_options: [{ pricing_option_id: 'cpc-std', pricing_model: 'cpc', fixed_price: 0.75, currency: 'USD' }],
116
- reporting_capabilities: DEFAULT_REPORTING_CAPABILITIES, // required — never hand-roll
117
- supports_catalog: true,
118
- supports_conversion_tracking: true,
119
- },
120
- ],
121
- sandbox: true,
122
- });
123
- ```
124
-
125
- Hand-rolling `reporting_capabilities: { ... }` is the biggest drift tax — the spec adds required fields (most recently `date_range_support`) and literals go stale. Always use `DEFAULT_REPORTING_CAPABILITIES`.
126
-
127
- **`create_media_buy`** — `CreateMediaBuyRequestSchema.shape`
128
-
129
- ```
130
- // revision, confirmed_at, and valid_actions are auto-set:
131
- mediaBuyResponse({
132
- media_buy_id: string,
133
- status: 'pending_creatives',
134
- packages: [{ package_id, product_id, pricing_option_id, budget }],
135
- })
136
- ```
137
-
138
- **`list_creative_formats`** — `ListCreativeFormatsRequestSchema.shape`
139
-
140
- ```
141
- listCreativeFormatsResponse({
142
- formats: [{
143
- format_id: { agent_url: string, id: string },
144
- name: string,
145
- renders: [{ // required — at least one render
146
- role: 'primary', // required
147
- dimensions: { width: 300, height: 250 }, // oneOf: dimensions (object) OR parameters_from_format_id: true
148
- }],
149
- }]
150
- })
151
- ```
152
-
153
- **`sync_catalogs`** — `SyncCatalogsRequestSchema.shape`
154
-
155
- Accept product catalog feeds. Return per-catalog status with item counts.
156
-
157
- ```
158
- taskToolResponse({
159
- catalogs: [{
160
- catalog_id: string, // required — echo from request
161
- action: 'created' | 'updated', // required
162
- item_count: number, // total items in catalog
163
- items_approved: number, // items that passed validation
164
- }],
165
- sandbox: true,
166
- })
167
- ```
168
-
169
- **`sync_event_sources`** — `SyncEventSourcesRequestSchema.shape`
170
-
171
- Register event tracking integrations.
172
-
173
- ```
174
- taskToolResponse({
175
- event_sources: [{
176
- event_source_id: string, // required — echo from request
177
- action: 'created' | 'updated', // required
178
- }],
179
- sandbox: true,
180
- })
181
- ```
182
-
183
- **`log_event`** — `LogEventRequestSchema.shape`
184
-
185
- Accept conversion events.
186
-
187
- ```
188
- taskToolResponse({
189
- events_received: number, // required — how many events in the request
190
- events_processed: number, // required — how many were successfully processed
191
- sandbox: true,
192
- })
193
- ```
194
-
195
- **`provide_performance_feedback`** — `ProvidePerformanceFeedbackRequestSchema.shape`
196
-
197
- Accept performance metrics from the buyer.
198
-
199
- ```
200
- performanceFeedbackResponse({
201
- success: true,
202
- sandbox: true,
203
- })
204
- ```
205
-
206
- **`get_media_buy_delivery`** — `GetMediaBuyDeliveryRequestSchema.shape`
207
-
208
- ```
209
- deliveryResponse({
210
- reporting_period: { start: string, end: string },
211
- media_buy_deliveries: [{
212
- media_buy_id: string,
213
- status: 'active',
214
- totals: { impressions: number, spend: number },
215
- by_package: [],
216
- }]
217
- })
218
- ```
219
-
220
- ### Context and Ext Passthrough
221
-
222
- The framework auto-echoes the request's `context` into every response — **do not set `context` yourself in your handler return values.** It's injected post-handler only when the field isn't already present.
223
-
224
- **Crucial:** `context` is schema-typed as an object. If your handler hand-sets a string or narrative description, validation fails with `/context: must be object` and the framework does not overwrite. Leave the field out entirely.
225
-
226
- Some schemas also define an `ext` field for vendor-namespaced extensions. If your request schema includes `ext`, accept it without error. Tools with explicit `ext` support: `sync_event_sources`, `provide_performance_feedback`.
227
-
228
- ## Compliance Testing (Optional)
229
-
230
- Add `registerTestController` so the comply framework can deterministically test your state machines. One function call — the SDK handles request parsing, status validation, and response formatting.
231
-
232
- ```
233
- import { registerTestController, TestControllerError } from '@adcp/sdk';
234
- import type { TestControllerStore } from '@adcp/sdk';
235
-
236
- const store: TestControllerStore = {
237
- async forceAccountStatus(accountId, status) {
238
- const prev = accounts.get(accountId);
239
- if (!prev) throw new TestControllerError('NOT_FOUND', `Account ${accountId} not found`);
240
- accounts.set(accountId, status);
241
- return { success: true, previous_state: prev, current_state: status };
242
- },
243
- async forceMediaBuyStatus(mediaBuyId, status) { /* same pattern */ },
244
- async forceCreativeStatus(creativeId, status) { /* same pattern */ },
245
- // simulateDelivery, simulateBudgetSpend — implement as needed
246
- };
247
-
248
- registerTestController(server, store);
249
- ```
250
-
251
- `registerTestController` auto-emits the `capabilities.compliance_testing.scenarios` block per AdCP 3.0 — no manual `supported_protocols` edit. Only implement the store methods for scenarios your agent supports; unimplemented methods are excluded from `list_scenarios` automatically. For typed domain state (catalog entries with inventory, audience assignments), see `examples/seller-test-controller.ts`.
252
-
253
- Validate with: `adcp storyboard run <agent> deterministic_testing --json`
254
-
255
- ## SDK Quick Reference
256
-
257
- | SDK piece | Usage |
258
- | --------------------------------------- | ----------------------------------------------------------------------- |
259
- | `createAdcpServerFromPlatform(platform, opts)` | Create server from a typed `DecisioningPlatform` — compile-time specialism enforcement, ctx_metadata round-trip, auto-generated capabilities |
260
- | `createAdcpServer(config)` *(legacy)* | v5 handler-bag entry. Mid-migration / escape-hatch only; reach via `@adcp/sdk/server/legacy/v5` |
261
- | `serve(() => createAdcpServerFromPlatform(platform, opts))` | Start HTTP server on `:3001/mcp` |
262
- | `ctx.store` | State persistence — `get/put/patch/delete/list` domain objects |
263
- | `adcpError(code, { message })` | Structured error |
264
- | `registerTestController(server, store)` | Add `comply_test_controller` for deterministic testing |
265
-
266
- Response builders (`productsResponse`, `mediaBuyResponse`, `deliveryResponse`, etc.) are auto-applied by the framework. Handlers return raw data objects — the framework wraps them.
267
-
268
- `get_adcp_capabilities` is auto-generated from registered handlers. Do not register it manually.
19
+ A worked retail-media fork target is tracked as a follow-up. Until then, the seller `hello_seller_adapter_non_guaranteed.ts` is the closest baseline; the deltas are in [`docs/llms.txt`](../../docs/llms.txt) under `#### \`sync_catalogs\``, `#### \`sync_event_sources\``, `#### \`log_event\``, `#### \`provide_performance_feedback\``.
269
20
 
270
- Import: `import { createAdcpServerFromPlatform, serve, adcpError } from '@adcp/sdk/server';`
21
+ For exact response shapes, error codes, and optional fields, `docs/llms.txt` is the canonical reference.
271
22
 
272
- ## Setup
23
+ ## When to use this skill
273
24
 
274
- ```bash
275
- npm init -y
276
- npm install @adcp/sdk
277
- npm install -D typescript @types/node
278
- ```
279
-
280
- Minimal `tsconfig.json`:
281
-
282
- ```json
283
- {
284
- "compilerOptions": {
285
- "target": "ES2022",
286
- "module": "Node16",
287
- "moduleResolution": "Node16",
288
- "strict": true,
289
- "skipLibCheck": true,
290
- "outDir": "dist"
291
- }
292
- }
293
- ```
294
-
295
- `skipLibCheck: true` avoids false-positive errors from transitive `.d.ts` files (e.g., `@opentelemetry/api`).
296
-
297
- ## Implementation
298
-
299
- 1. Single `.ts` file — all tools in one file
300
- 2. Use `createAdcpServerFromPlatform` with `sales` (incl. `syncCatalogs`/`syncEventSources`/`logEvent`/`syncAudiences`) on a typed `DecisioningPlatform` class
301
- 3. Handlers return raw data objects — the framework auto-applies response builders
302
- 4. `get_adcp_capabilities` is auto-generated from registered handlers — do not register it manually
303
- 5. Use `ctx.store` for state persistence (accounts, media buys, catalogs)
304
- 6. Set `sandbox: true` on all mock/demo responses
305
-
306
- Catalog/event/audience methods (`syncCatalogs`, `syncEventSources`, `logEvent`, `syncAudiences`, `providePerformanceFeedback`) live on the `sales: SalesPlatform` field — they're optional methods on the same interface as `getProducts`/`createMediaBuy`/etc. (See `src/lib/server/decisioning/specialisms/sales.ts`.)
307
-
308
- ```typescript
309
- import { randomUUID } from 'node:crypto';
310
- import {
311
- createAdcpServerFromPlatform,
312
- serve,
313
- adcpError,
314
- createIdempotencyStore,
315
- memoryBackend,
316
- type DecisioningPlatform,
317
- type SalesPlatform,
318
- type AccountStore,
319
- } from '@adcp/sdk/server';
320
-
321
- // Idempotency — required for v3. Retail media has many mutating tools:
322
- // create/update_media_buy, sync_creatives, sync_catalogs, sync_event_sources,
323
- // sync_audiences, log_event. Without this, the framework logs a non-
324
- // compliance error at startup.
325
- const idempotency = createIdempotencyStore({
326
- backend: memoryBackend(), // pgBackend(pool) for production
327
- ttlSeconds: 86400, // 24 hours (spec bounds: 1h–7d)
328
- });
329
-
330
- class MyRetailMedia implements DecisioningPlatform {
331
- capabilities = {
332
- specialisms: ['sales-non-guaranteed', 'sales-catalog-driven'] as const,
333
- pricingModels: ['cpm'] as const,
334
- channels: ['display'] as const,
335
- config: {},
336
- };
337
-
338
- accounts: AccountStore = {
339
- resolve: async ref => ({
340
- id: 'account_id' in ref ? ref.account_id : 'rm_acc_1',
341
- operator: 'me',
342
- ctx_metadata: {},
343
- }),
344
- upsert: async () => ({ ok: true, items: [] }),
345
- list: async () => ({ items: [], nextCursor: null }),
346
- };
347
-
348
- sales: SalesPlatform = {
349
- getProducts: async (req, ctx) => ({ products: PRODUCTS, sandbox: true }),
350
- createMediaBuy: async (req, ctx) => {
351
- const buy = {
352
- media_buy_id: `mb_${randomUUID()}`,
353
- status: 'pending_creatives' as const,
354
- packages:
355
- req.packages?.map(p => ({
356
- package_id: `pkg_${randomUUID()}`,
357
- product_id: p.product_id,
358
- pricing_option_id: p.pricing_option_id,
359
- budget: p.budget,
360
- })) ?? [],
361
- };
362
- await ctx.store.put('media_buys', buy.media_buy_id, buy);
363
- return buy;
364
- },
365
- updateMediaBuy: async (id, patch, ctx) => ({ media_buy_id: id, status: 'active' }),
366
- getMediaBuys: async () => ({ media_buys: [] }),
367
- getMediaBuyDelivery: async () => ({ deliveries: [] }),
368
- syncCreatives: async () => [],
369
- listCreativeFormats: async () => ({ formats: [] }),
25
+ - User is building a retail media network (Criteo RMN, Amazon DSP, Kroger Precision)
26
+ - User mentions catalog-driven creative, dynamic product ads, on-site sponsored listings
27
+ - User describes restaurants / travel / local commerce platforms rendering ads from a product feed
28
+ - User mentions `sync_catalogs`, `log_event`, or `provide_performance_feedback`
370
29
 
371
- // Catalog-driven specialism methods — all optional on SalesPlatform.
372
- syncCatalogs: async (req, ctx) => ({
373
- catalogs: req.catalogs.map(c => ({
374
- catalog_id: c.catalog_id,
375
- action: 'created' as const,
376
- item_count: c.items?.length ?? 0,
377
- items_approved: c.items?.length ?? 0,
378
- })),
379
- }),
380
- syncEventSources: async (req, ctx) => ({
381
- event_sources: req.event_sources.map(s => ({
382
- event_source_id: s.event_source_id,
383
- action: 'created' as const,
384
- })),
385
- }),
386
- logEvent: async (req, ctx) => ({
387
- events_received: req.events?.length ?? 0,
388
- events_processed: req.events?.length ?? 0,
389
- }),
390
- providePerformanceFeedback: async (req, ctx) => ({ feedback_id: `fb_${randomUUID()}` }),
391
- };
392
- }
393
-
394
- const platform = new MyRetailMedia();
395
-
396
- serve(() =>
397
- createAdcpServerFromPlatform(platform, {
398
- name: 'My Retail Media Agent',
399
- version: '1.0.0',
400
- idempotency,
401
- })
402
- );
403
- ```
404
-
405
- The skill contains everything you need. Do not read additional docs before writing code.
406
-
407
- ## Idempotency
408
-
409
- AdCP v3 requires an `idempotency_key` on every mutating request — for retail media that's `create_media_buy`, `update_media_buy`, `sync_creatives`, `sync_event_sources`, `sync_catalogs`, `sync_audiences`, and `log_event`. Idempotency is already wired in the Implementation example above. The framework then handles:
30
+ **Not this skill:**
410
31
 
411
- - Missing/malformed key `INVALID_REQUEST` (spec pattern `^[A-Za-z0-9_.:-]{16,255}$`)
412
- - JCS-canonicalized payload hashing with same-key-different-payload → `IDEMPOTENCY_CONFLICT` (no payload leaked in the error body)
413
- - Past-TTL replay → `IDEMPOTENCY_EXPIRED` (±60s clock-skew tolerance)
414
- - Cache hits replay the cached envelope with `replayed: true` injected
415
- - `adcp.idempotency.replay_ttl_seconds` auto-declared on `get_adcp_capabilities`
416
- - Only successful responses cache — failed catalog syncs or event ingests re-execute on retry
417
- - Atomic claim so concurrent retries with the same key don't all race
32
+ - Generic display / video selling without a catalog → `skills/build-seller-agent/`
33
+ - AI-generated ads coupled with selling → `skills/build-generative-seller-agent/`
418
34
 
419
- Scoping is per-principal via `resolveSessionKey` (override with `resolveIdempotencyPrincipal`). `ttlSeconds` must be 3600–604800 out of range throws at construction.
35
+ `sales-catalog-driven` applies far beyond retail — restaurants (DoorDash sponsored listings), travel (Expedia accelerator), local commerce (Yelp). The storyboard tests the catalog + event surface, not the vertical.
420
36
 
421
- ## Protecting your agent
37
+ ## Cross-cutting rules
422
38
 
423
- **An AdCP agent that accepts unauthenticated requests is non-compliant** (see `security_baseline` in the universal storyboard bundle). Ask the operator: "API key, OAuth, or both?" then wire one of these into `serve()`.
39
+ Every retail-media agent hits the cross-cutting rules in [`../cross-cutting.md`](../cross-cutting.md). Plus all the seller cross-cutting from [`../build-seller-agent/SKILL.md`](../build-seller-agent/SKILL.md) retail-media is additive on top of the seller baseline. The high-traffic ones for retail-media (deep-linked to the rule):
424
40
 
425
- ```typescript
426
- import { serve } from '@adcp/sdk';
427
- import { verifyApiKey, verifyBearer, anyOf } from '@adcp/sdk/server';
41
+ - [`idempotency_key`](../cross-cutting.md#idempotency_key-is-required-on-every-mutating-call) on `sync_catalogs`, `sync_event_sources`, `log_event`, `provide_performance_feedback` (in addition to the seller-side mutating tools)
42
+ - [Webhooks](../cross-cutting.md#webhooks-stable-operation_id-across-retries) for catalog-ingestion completions, use `catalog_sync.${catalog_id}.${batch_id}` as a stable `operation_id`
428
43
 
429
- // API key simplest, good for B2B integrations
430
- serve(createAgent, {
431
- authenticate: verifyApiKey({
432
- verify: async token => {
433
- const row = await db.api_keys.findUnique({ where: { token } });
434
- return row ? { principal: row.account_id } : null;
435
- },
436
- }),
437
- });
44
+ ## Specialism deltas at a glance
438
45
 
439
- // OAuth best when buyers authenticate as themselves
440
- const AGENT_URL = 'https://my-agent.example.com/mcp';
441
- serve(createAgent, {
442
- publicUrl: AGENT_URL, // canonical RFC 8707 audience — also served as `resource` in protected-resource metadata
443
- authenticate: verifyBearer({
444
- jwksUri: 'https://auth.example.com/.well-known/jwks.json',
445
- issuer: 'https://auth.example.com',
446
- audience: AGENT_URL, // MUST equal publicUrl
447
- }),
448
- protectedResource: { authorization_servers: ['https://auth.example.com'] },
449
- });
46
+ **`sales-catalog-driven`**
450
47
 
451
- // Both
452
- serve(createAgent, {
453
- publicUrl: AGENT_URL,
454
- authenticate: anyOf(verifyApiKey({ verify: lookupKey }), verifyBearer({ jwksUri, issuer, audience: AGENT_URL })),
455
- protectedResource: { authorization_servers: [issuer] },
456
- });
457
- ```
48
+ - Products declare `supports_catalog: true` and `supports_conversion_tracking: true`
49
+ - `create_media_buy` accepts `packages[].catalogs[]` referencing previously-synced catalog ids
50
+ - `sync_catalogs` ingests product feeds (JSON/CSV/XML) with at minimum `product_id`, `title`, `price`, `image_url`, `category`
51
+ - `sync_event_sources` registers conversion endpoints (purchase, add_to_cart, page_view, search)
52
+ - `log_event` accepts conversion events with `content_ids` and returns a `match_quality` score; counter-only responses pass the storyboard (closed-loop attribution lands in 3.1)
53
+ - `provide_performance_feedback` accepts buyer optimization signals back
458
54
 
459
- The framework produces RFC 6750-compliant `WWW-Authenticate: Bearer` 401s on failure, and serves `/.well-known/oauth-protected-resource<mountPath>` with `publicUrl` as the `resource` field so buyers get tokens bound to the right audience. The default JWT allowlist is asymmetric-only (RS*/ES*/PS\*/EdDSA) to prevent algorithm-confusion attacks.
55
+ **`sales-retail-media`** currently a v3.1 placeholder (empty `phases`). Ship the catalog-driven baseline plus retail-specific surface encoding in `publisher_properties` / `format_ids`. Claim the specialism to advertise intent.
460
56
 
461
- ## Validate Locally
57
+ Attribution linkage (`log_event.content_ids` → catalog `item_id` → `media_buy_id`) is deliberately out-of-scope for AdCP 3.0 — the storyboard accepts counter-only responses. Closed-loop attribution + ROAS reporting land in 3.1.
462
58
 
463
- **Full validation checklist:** [docs/guides/VALIDATE-YOUR-AGENT.md](../../docs/guides/VALIDATE-YOUR-AGENT.md). Retail-media-specific commands:
59
+ ## Validate locally
464
60
 
465
61
  ```bash
466
- # Boot
467
- npx tsx agent.ts &
468
-
469
- # Happy path — catalog-driven creative + conversion tracking
470
- npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp sales_catalog_driven --auth $TOKEN
471
-
472
- # Cross-cutting obligations
473
- npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp \
474
- --storyboards security_baseline,idempotency,schema_validation,error_compliance --auth $TOKEN
62
+ # Run the fork-matrix gate against the seller-non-guaranteed baseline
63
+ npm run compliance:fork-matrix -- --test-name-pattern="hello-seller-adapter-non-guaranteed"
475
64
 
476
- # Rejection-surface fuzz includes the catalog surface
477
- npx @adcp/sdk@latest fuzz http://localhost:3001/mcp \
478
- --tools get_products,list_creative_formats \
479
- --auth-token $TOKEN
65
+ # Or validate your forked agent directly against the catalog-driven storyboard
66
+ adcp storyboard run http://127.0.0.1:3005/mcp sales_catalog_driven \
67
+ --bearer "$ADCP_AUTH_TOKEN" --include-bundles --json
480
68
  ```
481
69
 
482
- **Substitution verification** (required for catalog-driven macro URLs):
483
-
484
- Wire `SubstitutionEncoder.encode_for_url_context()` into your tracker-URL macro expansion. The storyboard `sales_catalog_driven` asserts that emitted preview URLs pass `SubstitutionObserver.assert_rfc3986_safe()` — unencoded values (especially those containing `javascript:`, reserved chars, or nested macros) fail with `substitution_encoding_violation`. See [VALIDATE-YOUR-AGENT.md § Substitution](../../docs/guides/VALIDATE-YOUR-AGENT.md#substitution-verification-catalog-driven-sellers) for the API.
485
-
486
- Common failure decoder:
487
-
488
- - `substitution_encoding_violation` → switch from `encodeURIComponent` to `SubstitutionEncoder.encode_for_url_context`
489
- - `substitution_binding_missing` → seller stripped the macro entirely; return the rendered URL with the macro expanded, not deleted
490
- - `log_event` missing `events_received` / `events_processed` → required counters on the response
70
+ The fork-matrix gate is the three-gate contract from [`docs/guides/EXAMPLE-TEST-CONTRACT.md`](../../docs/guides/EXAMPLE-TEST-CONTRACT.md): tsc strict / storyboard zero-failures / upstream façade.
491
71
 
492
- **Keep iterating until all steps pass.** Can't bind ports? `npm run compliance:skill-matrix -- --filter retail-media` runs an isolated end-to-end test.
72
+ For deeper validation: [`docs/guides/VALIDATE-YOUR-AGENT.md`](../../docs/guides/VALIDATE-YOUR-AGENT.md).
493
73
 
494
- ## Common Mistakes
74
+ ## Common shape gotchas
495
75
 
496
- | Mistake | Fix |
497
- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
498
- | Manually registering `get_adcp_capabilities` | Auto-generated by `createAdcpServer` — do not register it |
499
- | Putting event tracking handlers in `mediaBuy` | `syncEventSources`, `logEvent`, `syncCatalogs`, `syncAudiences` belong in `eventTracking` |
500
- | Using `server.tool()` instead of domain groups | Use `createAdcpServer({ mediaBuy: {...}, eventTracking: {...} })` |
501
- | sync_catalogs missing `item_count` / `items_approved` | Optional but recommended for catalog validation results |
502
- | format_ids in products don't match list_creative_formats | Buyers echo format_ids from products into sync_creatives — if your validation rejects your own format_ids, the buyer can't fulfill creative requirements |
503
- | log_event missing `events_received` / `events_processed` | Required counters |
504
- | `sandbox: false` on mock data | Buyers may treat mock data as real |
505
- | Dropping `context` from responses | Echo `args.context` back unchanged in every response — buyers use it for correlation |
76
+ `get_media_buy_delivery /reporting_period/start|end` are ISO 8601 **date-time** strings, not date-only. Per-package billing rows require `package_id`, `spend`, `pricing_model`, `rate`, `currency`. `sync_accounts` rows require `action: 'created' | 'updated' | 'unchanged' | 'failed'`. See [`../SHAPE-GOTCHAS.md`](../SHAPE-GOTCHAS.md).
506
77
 
507
- ## Reference
78
+ ## Migration notes
508
79
 
509
- - `skills/build-seller-agent/SKILL.md` — base seller skill (retail media extends this)
510
- - `storyboards/media_buy_catalog_creative.yaml` — full catalog creative storyboard
511
- - `docs/guides/BUILD-AN-AGENT.md` — SDK patterns
512
- - `docs/TYPE-SUMMARY.md` — curated type signatures
513
- - `docs/llms.txt` — full protocol reference
80
+ - 6.6 → 6.7: [`docs/migration-6.6-to-6.7.md`](../../docs/migration-6.6-to-6.7.md)
81
+ - 4.x → 5.x: [`docs/migration-4.x-to-5.x.md`](../../docs/migration-4.x-to-5.x.md)