@adcp/sdk 6.13.2 → 6.15.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 (1024) hide show
  1. package/ADCP_VERSION +1 -1
  2. package/bin/adcp-storyboard-summary.js +152 -0
  3. package/bin/adcp.js +209 -17
  4. package/compliance/cache/{3.0.6.previous/protocols → 3.0.8/domains}/media-buy/scenarios/creative_fate_after_cancellation.yaml +5 -5
  5. package/compliance/cache/{3.0.6.previous/protocols → 3.0.8/domains}/media-buy/scenarios/governance_approved.yaml +1 -1
  6. package/compliance/cache/{3.0.6/protocols → 3.0.8/domains}/media-buy/scenarios/governance_conditions.yaml +1 -1
  7. package/compliance/cache/{3.0.6/protocols → 3.0.8/domains}/media-buy/scenarios/governance_denied.yaml +1 -1
  8. package/compliance/cache/{3.0.6/protocols → 3.0.8/domains}/media-buy/scenarios/governance_denied_recovery.yaml +3 -3
  9. package/compliance/cache/{3.0.6.previous → 3.0.8}/domains/media-buy/scenarios/invalid_transitions.yaml +1 -1
  10. package/compliance/cache/{3.0.6.previous/protocols → 3.0.8/domains}/media-buy/scenarios/inventory_list_no_match.yaml +1 -1
  11. package/compliance/cache/{3.0.6 → 3.0.8}/domains/media-buy/scenarios/inventory_list_targeting.yaml +1 -1
  12. package/compliance/cache/{3.0.6.previous → 3.0.8}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +5 -4
  13. package/compliance/cache/{3.0.6/protocols → 3.0.8/domains}/media-buy/scenarios/pending_creatives_to_start.yaml +1 -1
  14. package/compliance/cache/{3.0.6.previous → 3.0.8}/domains/media-buy/scenarios/proposal_finalize.yaml +7 -3
  15. package/compliance/cache/{3.0.6 → 3.0.8}/index.json +2 -2
  16. package/compliance/cache/{3.0.6.previous/domains → 3.0.8/protocols}/media-buy/scenarios/creative_fate_after_cancellation.yaml +5 -5
  17. package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/scenarios/governance_approved.yaml +1 -1
  18. package/compliance/cache/{3.0.6.previous/domains → 3.0.8/protocols}/media-buy/scenarios/governance_conditions.yaml +1 -1
  19. package/compliance/cache/{3.0.6.previous → 3.0.8}/protocols/media-buy/scenarios/governance_denied.yaml +1 -1
  20. package/compliance/cache/{3.0.6.previous → 3.0.8}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +3 -3
  21. package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/scenarios/invalid_transitions.yaml +1 -1
  22. package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +1 -1
  23. package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +1 -1
  24. package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +5 -4
  25. package/compliance/cache/{3.0.6.previous → 3.0.8}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +1 -1
  26. package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/scenarios/proposal_finalize.yaml +7 -3
  27. package/compliance/cache/{3.0.6 → 3.0.8.previous}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +5 -5
  28. package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/scenarios/governance_approved.yaml +1 -1
  29. package/compliance/cache/{3.0.6 → 3.0.8.previous}/domains/media-buy/scenarios/governance_conditions.yaml +1 -1
  30. package/compliance/cache/{3.0.6 → 3.0.8.previous}/domains/media-buy/scenarios/governance_denied.yaml +1 -1
  31. package/compliance/cache/{3.0.6 → 3.0.8.previous}/domains/media-buy/scenarios/governance_denied_recovery.yaml +3 -3
  32. package/compliance/cache/{3.0.6.previous/protocols → 3.0.8.previous/domains}/media-buy/scenarios/invalid_transitions.yaml +1 -1
  33. package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/scenarios/inventory_list_no_match.yaml +1 -1
  34. package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/scenarios/inventory_list_targeting.yaml +1 -1
  35. package/compliance/cache/{3.0.6 → 3.0.8.previous}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +5 -4
  36. package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +1 -1
  37. package/compliance/cache/{3.0.6.previous/protocols → 3.0.8.previous/domains}/media-buy/scenarios/proposal_finalize.yaml +7 -3
  38. package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/index.json +2 -2
  39. package/compliance/cache/{3.0.6 → 3.0.8.previous}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +5 -5
  40. package/compliance/cache/{3.0.6/domains → 3.0.8.previous/protocols}/media-buy/scenarios/governance_approved.yaml +1 -1
  41. package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/media-buy/scenarios/governance_conditions.yaml +1 -1
  42. package/compliance/cache/{3.0.6.previous/domains → 3.0.8.previous/protocols}/media-buy/scenarios/governance_denied.yaml +1 -1
  43. package/compliance/cache/{3.0.6.previous/domains → 3.0.8.previous/protocols}/media-buy/scenarios/governance_denied_recovery.yaml +3 -3
  44. package/compliance/cache/{3.0.6/domains → 3.0.8.previous/protocols}/media-buy/scenarios/invalid_transitions.yaml +1 -1
  45. package/compliance/cache/{3.0.6/domains → 3.0.8.previous/protocols}/media-buy/scenarios/inventory_list_no_match.yaml +1 -1
  46. package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +1 -1
  47. package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +5 -4
  48. package/compliance/cache/{3.0.6/domains → 3.0.8.previous/protocols}/media-buy/scenarios/pending_creatives_to_start.yaml +1 -1
  49. package/compliance/cache/{3.0.6/domains → 3.0.8.previous/protocols}/media-buy/scenarios/proposal_finalize.yaml +7 -3
  50. package/dist/lib/core/AgentClient.d.ts +22 -26
  51. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  52. package/dist/lib/core/AgentClient.js +77 -65
  53. package/dist/lib/core/AgentClient.js.map +1 -1
  54. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  55. package/dist/lib/core/TaskExecutor.js +33 -1
  56. package/dist/lib/core/TaskExecutor.js.map +1 -1
  57. package/dist/lib/index.d.ts +5 -0
  58. package/dist/lib/index.d.ts.map +1 -1
  59. package/dist/lib/index.js +52 -4
  60. package/dist/lib/index.js.map +1 -1
  61. package/dist/lib/schemas-data/3.0/a2ui/bound-value.json +1 -1
  62. package/dist/lib/schemas-data/3.0/a2ui/component.json +1 -1
  63. package/dist/lib/schemas-data/3.0/a2ui/si-catalog.json +25 -25
  64. package/dist/lib/schemas-data/3.0/a2ui/surface.json +2 -2
  65. package/dist/lib/schemas-data/3.0/a2ui/user-action.json +1 -1
  66. package/dist/lib/schemas-data/3.0/account/get-account-financials-request.json +5 -5
  67. package/dist/lib/schemas-data/3.0/account/get-account-financials-response.json +10 -10
  68. package/dist/lib/schemas-data/3.0/account/list-accounts-request.json +4 -4
  69. package/dist/lib/schemas-data/3.0/account/list-accounts-response.json +6 -6
  70. package/dist/lib/schemas-data/3.0/account/report-usage-request.json +5 -5
  71. package/dist/lib/schemas-data/3.0/account/report-usage-response.json +4 -4
  72. package/dist/lib/schemas-data/3.0/account/sync-accounts-request.json +9 -9
  73. package/dist/lib/schemas-data/3.0/account/sync-accounts-response.json +12 -12
  74. package/dist/lib/schemas-data/3.0/account/sync-governance-request.json +5 -5
  75. package/dist/lib/schemas-data/3.0/account/sync-governance-response.json +8 -8
  76. package/dist/lib/schemas-data/3.0/adagents.json +32 -32
  77. package/dist/lib/schemas-data/3.0/brand/acquire-rights-request.json +8 -8
  78. package/dist/lib/schemas-data/3.0/brand/acquire-rights-response.json +14 -14
  79. package/dist/lib/schemas-data/3.0/brand/creative-approval-request.json +4 -4
  80. package/dist/lib/schemas-data/3.0/brand/creative-approval-response.json +10 -10
  81. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-request.json +3 -3
  82. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-response.json +8 -8
  83. package/dist/lib/schemas-data/3.0/brand/get-rights-request.json +7 -7
  84. package/dist/lib/schemas-data/3.0/brand/get-rights-response.json +9 -9
  85. package/dist/lib/schemas-data/3.0/brand/revocation-notification.json +4 -4
  86. package/dist/lib/schemas-data/3.0/brand/rights-pricing-option.json +5 -5
  87. package/dist/lib/schemas-data/3.0/brand/rights-terms.json +3 -3
  88. package/dist/lib/schemas-data/3.0/brand/update-rights-request.json +4 -4
  89. package/dist/lib/schemas-data/3.0/brand/update-rights-response.json +9 -9
  90. package/dist/lib/schemas-data/3.0/brand.json +14 -14
  91. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-request.json +2 -2
  92. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-response.json +2 -2
  93. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-request.json +2 -2
  94. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-response.json +2 -2
  95. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-request.json +2 -2
  96. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-response.json +2 -2
  97. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-request.json +2 -2
  98. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-response.json +2 -2
  99. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-request.json +2 -2
  100. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-response.json +2 -2
  101. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-request.json +2 -2
  102. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-response.json +2 -2
  103. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-request.json +2 -2
  104. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-response.json +2 -2
  105. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-request.json +2 -2
  106. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-response.json +2 -2
  107. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-request.json +2 -2
  108. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-response.json +2 -2
  109. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-request.json +2 -2
  110. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-response.json +2 -2
  111. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-request.json +2 -2
  112. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-response.json +2 -2
  113. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-request.json +2 -2
  114. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-response.json +2 -2
  115. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-request.json +2 -2
  116. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-response.json +2 -2
  117. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-request.json +2 -2
  118. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-response.json +2 -2
  119. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-request.json +2 -2
  120. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-response.json +2 -2
  121. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-request.json +2 -2
  122. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-response.json +2 -2
  123. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-request.json +2 -2
  124. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-response.json +2 -2
  125. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-request.json +2 -2
  126. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-response.json +2 -2
  127. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-request.json +2 -2
  128. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-response.json +2 -2
  129. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-request.json +2 -2
  130. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-response.json +2 -2
  131. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-request.json +2 -2
  132. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-response.json +2 -2
  133. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-request.json +2 -2
  134. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-response.json +2 -2
  135. package/dist/lib/schemas-data/3.0/bundled/media-buy/package-request.json +2 -2
  136. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-request.json +2 -2
  137. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-response.json +2 -2
  138. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-request.json +2 -2
  139. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-response.json +2 -2
  140. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-request.json +2 -2
  141. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-response.json +2 -2
  142. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-request.json +2 -2
  143. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-response.json +2 -2
  144. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-request.json +2 -2
  145. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-response.json +2 -2
  146. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-request.json +2 -2
  147. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-response.json +2 -2
  148. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-request.json +2 -2
  149. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-response.json +2 -2
  150. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-request.json +2 -2
  151. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-response.json +2 -2
  152. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-request.json +2 -2
  153. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-response.json +2 -2
  154. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-request.json +2 -2
  155. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-response.json +2 -2
  156. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-request.json +2 -2
  157. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-response.json +2 -2
  158. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-request.json +2 -2
  159. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-response.json +2 -2
  160. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-request.json +2 -2
  161. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-response.json +2 -2
  162. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-request.json +2 -2
  163. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-response.json +2 -2
  164. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-request.json +2 -2
  165. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-response.json +2 -2
  166. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-request.json +2 -2
  167. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-response.json +2 -2
  168. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-request.json +2 -2
  169. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-response.json +2 -2
  170. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-request.json +2 -2
  171. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-response.json +2 -2
  172. package/dist/lib/schemas-data/3.0/collection/base-collection-source.json +3 -3
  173. package/dist/lib/schemas-data/3.0/collection/collection-list-changed-webhook.json +2 -2
  174. package/dist/lib/schemas-data/3.0/collection/collection-list-filters.json +7 -7
  175. package/dist/lib/schemas-data/3.0/collection/collection-list.json +5 -5
  176. package/dist/lib/schemas-data/3.0/collection/create-collection-list-request.json +7 -7
  177. package/dist/lib/schemas-data/3.0/collection/create-collection-list-response.json +4 -4
  178. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-request.json +4 -4
  179. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-response.json +3 -3
  180. package/dist/lib/schemas-data/3.0/collection/get-collection-list-request.json +4 -4
  181. package/dist/lib/schemas-data/3.0/collection/get-collection-list-response.json +10 -10
  182. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-request.json +5 -5
  183. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-response.json +5 -5
  184. package/dist/lib/schemas-data/3.0/collection/update-collection-list-request.json +7 -7
  185. package/dist/lib/schemas-data/3.0/collection/update-collection-list-response.json +4 -4
  186. package/dist/lib/schemas-data/3.0/content-standards/artifact-webhook-payload.json +3 -3
  187. package/dist/lib/schemas-data/3.0/content-standards/artifact.json +7 -7
  188. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-request.json +4 -4
  189. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-response.json +8 -8
  190. package/dist/lib/schemas-data/3.0/content-standards/content-standards.json +7 -7
  191. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-request.json +7 -7
  192. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-response.json +6 -6
  193. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-request.json +3 -3
  194. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-response.json +7 -7
  195. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-request.json +4 -4
  196. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-response.json +8 -8
  197. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-request.json +5 -5
  198. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-response.json +8 -8
  199. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-request.json +7 -7
  200. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-response.json +6 -6
  201. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-request.json +4 -4
  202. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-response.json +8 -8
  203. package/dist/lib/schemas-data/3.0/core/account-ref.json +2 -2
  204. package/dist/lib/schemas-data/3.0/core/account.json +9 -9
  205. package/dist/lib/schemas-data/3.0/core/activation-key.json +1 -1
  206. package/dist/lib/schemas-data/3.0/core/ad-inventory-config.json +1 -1
  207. package/dist/lib/schemas-data/3.0/core/agent-encryption-key.json +1 -1
  208. package/dist/lib/schemas-data/3.0/core/agent-signing-key.json +1 -1
  209. package/dist/lib/schemas-data/3.0/core/app-item.json +4 -4
  210. package/dist/lib/schemas-data/3.0/core/assets/asset-union.json +15 -15
  211. package/dist/lib/schemas-data/3.0/core/assets/audio-asset.json +3 -3
  212. package/dist/lib/schemas-data/3.0/core/assets/brief-asset.json +2 -2
  213. package/dist/lib/schemas-data/3.0/core/assets/catalog-asset.json +2 -2
  214. package/dist/lib/schemas-data/3.0/core/assets/css-asset.json +2 -2
  215. package/dist/lib/schemas-data/3.0/core/assets/daast-asset.json +4 -4
  216. package/dist/lib/schemas-data/3.0/core/assets/html-asset.json +2 -2
  217. package/dist/lib/schemas-data/3.0/core/assets/image-asset.json +2 -2
  218. package/dist/lib/schemas-data/3.0/core/assets/javascript-asset.json +3 -3
  219. package/dist/lib/schemas-data/3.0/core/assets/markdown-asset.json +2 -2
  220. package/dist/lib/schemas-data/3.0/core/assets/text-asset.json +2 -2
  221. package/dist/lib/schemas-data/3.0/core/assets/url-asset.json +3 -3
  222. package/dist/lib/schemas-data/3.0/core/assets/vast-asset.json +4 -4
  223. package/dist/lib/schemas-data/3.0/core/assets/video-asset.json +7 -7
  224. package/dist/lib/schemas-data/3.0/core/assets/webhook-asset.json +7 -7
  225. package/dist/lib/schemas-data/3.0/core/async-response-data.json +25 -25
  226. package/dist/lib/schemas-data/3.0/core/attribution-window.json +4 -4
  227. package/dist/lib/schemas-data/3.0/core/audience-member.json +3 -3
  228. package/dist/lib/schemas-data/3.0/core/audience-selector.json +4 -4
  229. package/dist/lib/schemas-data/3.0/core/brand-id.json +1 -1
  230. package/dist/lib/schemas-data/3.0/core/brand-ref.json +2 -2
  231. package/dist/lib/schemas-data/3.0/core/business-entity.json +2 -2
  232. package/dist/lib/schemas-data/3.0/core/cancellation-policy.json +2 -2
  233. package/dist/lib/schemas-data/3.0/core/catalog-field-mapping.json +2 -2
  234. package/dist/lib/schemas-data/3.0/core/catalog.json +7 -7
  235. package/dist/lib/schemas-data/3.0/core/catchment.json +5 -5
  236. package/dist/lib/schemas-data/3.0/core/collection-distribution.json +2 -2
  237. package/dist/lib/schemas-data/3.0/core/collection-list-ref.json +1 -1
  238. package/dist/lib/schemas-data/3.0/core/collection-selector.json +1 -1
  239. package/dist/lib/schemas-data/3.0/core/collection.json +13 -13
  240. package/dist/lib/schemas-data/3.0/core/content-rating.json +2 -2
  241. package/dist/lib/schemas-data/3.0/core/context.json +1 -1
  242. package/dist/lib/schemas-data/3.0/core/creative-asset.json +6 -6
  243. package/dist/lib/schemas-data/3.0/core/creative-assignment.json +1 -1
  244. package/dist/lib/schemas-data/3.0/core/creative-brief.json +4 -4
  245. package/dist/lib/schemas-data/3.0/core/creative-consumption.json +1 -1
  246. package/dist/lib/schemas-data/3.0/core/creative-filters.json +4 -4
  247. package/dist/lib/schemas-data/3.0/core/creative-item.json +1 -1
  248. package/dist/lib/schemas-data/3.0/core/creative-manifest.json +7 -7
  249. package/dist/lib/schemas-data/3.0/core/creative-policy.json +3 -3
  250. package/dist/lib/schemas-data/3.0/core/creative-variable.json +1 -1
  251. package/dist/lib/schemas-data/3.0/core/creative-variant.json +5 -5
  252. package/dist/lib/schemas-data/3.0/core/data-provider-signal-selector.json +1 -1
  253. package/dist/lib/schemas-data/3.0/core/date-range.json +1 -1
  254. package/dist/lib/schemas-data/3.0/core/datetime-range.json +1 -1
  255. package/dist/lib/schemas-data/3.0/core/daypart-target.json +2 -2
  256. package/dist/lib/schemas-data/3.0/core/deadline-policy.json +1 -1
  257. package/dist/lib/schemas-data/3.0/core/delivery-forecast.json +7 -7
  258. package/dist/lib/schemas-data/3.0/core/delivery-metrics.json +5 -5
  259. package/dist/lib/schemas-data/3.0/core/deployment.json +3 -3
  260. package/dist/lib/schemas-data/3.0/core/destination-item.json +4 -4
  261. package/dist/lib/schemas-data/3.0/core/destination.json +1 -1
  262. package/dist/lib/schemas-data/3.0/core/diagnostic-issue.json +1 -1
  263. package/dist/lib/schemas-data/3.0/core/duration.json +1 -1
  264. package/dist/lib/schemas-data/3.0/core/education-item.json +4 -4
  265. package/dist/lib/schemas-data/3.0/core/error.json +1 -1
  266. package/dist/lib/schemas-data/3.0/core/event-custom-data.json +2 -2
  267. package/dist/lib/schemas-data/3.0/core/event-source-health.json +3 -3
  268. package/dist/lib/schemas-data/3.0/core/event.json +6 -6
  269. package/dist/lib/schemas-data/3.0/core/ext.json +1 -1
  270. package/dist/lib/schemas-data/3.0/core/feature-requirement.json +1 -1
  271. package/dist/lib/schemas-data/3.0/core/flight-item.json +4 -4
  272. package/dist/lib/schemas-data/3.0/core/forecast-point.json +18 -18
  273. package/dist/lib/schemas-data/3.0/core/forecast-range.json +1 -1
  274. package/dist/lib/schemas-data/3.0/core/format-id.json +1 -1
  275. package/dist/lib/schemas-data/3.0/core/format.json +42 -42
  276. package/dist/lib/schemas-data/3.0/core/frequency-cap.json +4 -4
  277. package/dist/lib/schemas-data/3.0/core/generation-credential.json +3 -3
  278. package/dist/lib/schemas-data/3.0/core/geo-breakdown-support.json +3 -3
  279. package/dist/lib/schemas-data/3.0/core/hotel-item.json +4 -4
  280. package/dist/lib/schemas-data/3.0/core/identifier.json +2 -2
  281. package/dist/lib/schemas-data/3.0/core/industry-identifier.json +2 -2
  282. package/dist/lib/schemas-data/3.0/core/insertion-order.json +1 -1
  283. package/dist/lib/schemas-data/3.0/core/installment-deadlines.json +2 -2
  284. package/dist/lib/schemas-data/3.0/core/installment.json +9 -9
  285. package/dist/lib/schemas-data/3.0/core/job-item.json +3 -3
  286. package/dist/lib/schemas-data/3.0/core/limited-series.json +1 -1
  287. package/dist/lib/schemas-data/3.0/core/material-deadline.json +1 -1
  288. package/dist/lib/schemas-data/3.0/core/mcp-webhook-payload.json +5 -5
  289. package/dist/lib/schemas-data/3.0/core/measurement-readiness.json +5 -5
  290. package/dist/lib/schemas-data/3.0/core/measurement-terms.json +3 -3
  291. package/dist/lib/schemas-data/3.0/core/measurement-window.json +1 -1
  292. package/dist/lib/schemas-data/3.0/core/media-buy-features.json +1 -1
  293. package/dist/lib/schemas-data/3.0/core/media-buy.json +7 -7
  294. package/dist/lib/schemas-data/3.0/core/offering-asset-group.json +15 -15
  295. package/dist/lib/schemas-data/3.0/core/offering.json +5 -5
  296. package/dist/lib/schemas-data/3.0/core/optimization-goal.json +6 -6
  297. package/dist/lib/schemas-data/3.0/core/outcome-measurement.json +2 -2
  298. package/dist/lib/schemas-data/3.0/core/overlay.json +1 -1
  299. package/dist/lib/schemas-data/3.0/core/package.json +14 -14
  300. package/dist/lib/schemas-data/3.0/core/pagination-request.json +1 -1
  301. package/dist/lib/schemas-data/3.0/core/pagination-response.json +1 -1
  302. package/dist/lib/schemas-data/3.0/core/performance-feedback.json +3 -3
  303. package/dist/lib/schemas-data/3.0/core/performance-standard.json +4 -4
  304. package/dist/lib/schemas-data/3.0/core/placement-definition.json +5 -5
  305. package/dist/lib/schemas-data/3.0/core/placement.json +2 -2
  306. package/dist/lib/schemas-data/3.0/core/planned-delivery.json +5 -5
  307. package/dist/lib/schemas-data/3.0/core/price.json +1 -1
  308. package/dist/lib/schemas-data/3.0/core/pricing-option.json +10 -10
  309. package/dist/lib/schemas-data/3.0/core/product-allocation.json +4 -4
  310. package/dist/lib/schemas-data/3.0/core/product-filters.json +16 -16
  311. package/dist/lib/schemas-data/3.0/core/product.json +28 -28
  312. package/dist/lib/schemas-data/3.0/core/property-id.json +1 -1
  313. package/dist/lib/schemas-data/3.0/core/property-list-ref.json +1 -1
  314. package/dist/lib/schemas-data/3.0/core/property-tag.json +1 -1
  315. package/dist/lib/schemas-data/3.0/core/property.json +6 -6
  316. package/dist/lib/schemas-data/3.0/core/proposal.json +6 -6
  317. package/dist/lib/schemas-data/3.0/core/protocol-envelope.json +3 -3
  318. package/dist/lib/schemas-data/3.0/core/provenance.json +6 -6
  319. package/dist/lib/schemas-data/3.0/core/publisher-property-selector.json +3 -3
  320. package/dist/lib/schemas-data/3.0/core/push-notification-config.json +2 -2
  321. package/dist/lib/schemas-data/3.0/core/real-estate-item.json +4 -4
  322. package/dist/lib/schemas-data/3.0/core/reference-asset.json +1 -1
  323. package/dist/lib/schemas-data/3.0/core/reporting-capabilities.json +5 -5
  324. package/dist/lib/schemas-data/3.0/core/reporting-webhook.json +3 -3
  325. package/dist/lib/schemas-data/3.0/core/requirements/asset-requirements.json +13 -13
  326. package/dist/lib/schemas-data/3.0/core/requirements/audio-asset-requirements.json +1 -1
  327. package/dist/lib/schemas-data/3.0/core/requirements/catalog-field-binding.json +4 -4
  328. package/dist/lib/schemas-data/3.0/core/requirements/catalog-requirements.json +5 -5
  329. package/dist/lib/schemas-data/3.0/core/requirements/css-asset-requirements.json +1 -1
  330. package/dist/lib/schemas-data/3.0/core/requirements/daast-asset-requirements.json +1 -1
  331. package/dist/lib/schemas-data/3.0/core/requirements/html-asset-requirements.json +1 -1
  332. package/dist/lib/schemas-data/3.0/core/requirements/image-asset-requirements.json +2 -2
  333. package/dist/lib/schemas-data/3.0/core/requirements/javascript-asset-requirements.json +1 -1
  334. package/dist/lib/schemas-data/3.0/core/requirements/markdown-asset-requirements.json +1 -1
  335. package/dist/lib/schemas-data/3.0/core/requirements/offering-asset-constraint.json +4 -4
  336. package/dist/lib/schemas-data/3.0/core/requirements/text-asset-requirements.json +1 -1
  337. package/dist/lib/schemas-data/3.0/core/requirements/url-asset-requirements.json +1 -1
  338. package/dist/lib/schemas-data/3.0/core/requirements/vast-asset-requirements.json +1 -1
  339. package/dist/lib/schemas-data/3.0/core/requirements/video-asset-requirements.json +6 -6
  340. package/dist/lib/schemas-data/3.0/core/requirements/webhook-asset-requirements.json +1 -1
  341. package/dist/lib/schemas-data/3.0/core/response.json +1 -1
  342. package/dist/lib/schemas-data/3.0/core/rights-constraint.json +4 -4
  343. package/dist/lib/schemas-data/3.0/core/seller-agent-ref.json +1 -1
  344. package/dist/lib/schemas-data/3.0/core/signal-definition.json +3 -3
  345. package/dist/lib/schemas-data/3.0/core/signal-filters.json +2 -2
  346. package/dist/lib/schemas-data/3.0/core/signal-id.json +1 -1
  347. package/dist/lib/schemas-data/3.0/core/signal-pricing-option.json +2 -2
  348. package/dist/lib/schemas-data/3.0/core/signal-pricing.json +6 -6
  349. package/dist/lib/schemas-data/3.0/core/signal-targeting.json +4 -4
  350. package/dist/lib/schemas-data/3.0/core/special.json +2 -2
  351. package/dist/lib/schemas-data/3.0/core/start-timing.json +1 -1
  352. package/dist/lib/schemas-data/3.0/core/store-item.json +3 -3
  353. package/dist/lib/schemas-data/3.0/core/talent.json +2 -2
  354. package/dist/lib/schemas-data/3.0/core/targeting.json +20 -20
  355. package/dist/lib/schemas-data/3.0/core/tasks-get-request.json +3 -3
  356. package/dist/lib/schemas-data/3.0/core/tasks-get-response.json +7 -7
  357. package/dist/lib/schemas-data/3.0/core/tasks-list-request.json +11 -11
  358. package/dist/lib/schemas-data/3.0/core/tasks-list-response.json +6 -6
  359. package/dist/lib/schemas-data/3.0/core/user-match.json +3 -3
  360. package/dist/lib/schemas-data/3.0/core/vehicle-item.json +4 -4
  361. package/dist/lib/schemas-data/3.0/core/vendor-pricing-option.json +2 -2
  362. package/dist/lib/schemas-data/3.0/core/x-entity-types.json +1 -1
  363. package/dist/lib/schemas-data/3.0/creative/asset-types/index.json +5 -5
  364. package/dist/lib/schemas-data/3.0/creative/creative-feature-result.json +2 -2
  365. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-request.json +5 -5
  366. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-response.json +7 -7
  367. package/dist/lib/schemas-data/3.0/creative/get-creative-features-request.json +5 -5
  368. package/dist/lib/schemas-data/3.0/creative/get-creative-features-response.json +8 -8
  369. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-request.json +11 -11
  370. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-response.json +7 -7
  371. package/dist/lib/schemas-data/3.0/creative/list-creatives-request.json +8 -8
  372. package/dist/lib/schemas-data/3.0/creative/list-creatives-response.json +14 -14
  373. package/dist/lib/schemas-data/3.0/creative/preview-creative-request.json +11 -11
  374. package/dist/lib/schemas-data/3.0/creative/preview-creative-response.json +12 -12
  375. package/dist/lib/schemas-data/3.0/creative/preview-render.json +1 -1
  376. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-input-required.json +3 -3
  377. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-submitted.json +3 -3
  378. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-working.json +3 -3
  379. package/dist/lib/schemas-data/3.0/creative/sync-creatives-request.json +7 -7
  380. package/dist/lib/schemas-data/3.0/creative/sync-creatives-response.json +13 -13
  381. package/dist/lib/schemas-data/3.0/enums/account-scope.json +1 -1
  382. package/dist/lib/schemas-data/3.0/enums/account-status.json +1 -1
  383. package/dist/lib/schemas-data/3.0/enums/action-source.json +1 -1
  384. package/dist/lib/schemas-data/3.0/enums/adcp-protocol.json +1 -1
  385. package/dist/lib/schemas-data/3.0/enums/adjustment-kind.json +1 -1
  386. package/dist/lib/schemas-data/3.0/enums/advertiser-industry.json +1 -1
  387. package/dist/lib/schemas-data/3.0/enums/age-verification-method.json +1 -1
  388. package/dist/lib/schemas-data/3.0/enums/assessment-status.json +1 -1
  389. package/dist/lib/schemas-data/3.0/enums/asset-content-type.json +1 -1
  390. package/dist/lib/schemas-data/3.0/enums/attribution-model.json +1 -1
  391. package/dist/lib/schemas-data/3.0/enums/audience-source.json +1 -1
  392. package/dist/lib/schemas-data/3.0/enums/audience-status.json +1 -1
  393. package/dist/lib/schemas-data/3.0/enums/audio-channel-layout.json +1 -1
  394. package/dist/lib/schemas-data/3.0/enums/auth-scheme.json +1 -1
  395. package/dist/lib/schemas-data/3.0/enums/available-metric.json +1 -1
  396. package/dist/lib/schemas-data/3.0/enums/billing-party.json +1 -1
  397. package/dist/lib/schemas-data/3.0/enums/binary-verdict.json +1 -1
  398. package/dist/lib/schemas-data/3.0/enums/brand-agent-type.json +1 -1
  399. package/dist/lib/schemas-data/3.0/enums/canceled-by.json +1 -1
  400. package/dist/lib/schemas-data/3.0/enums/catalog-action.json +1 -1
  401. package/dist/lib/schemas-data/3.0/enums/catalog-item-status.json +1 -1
  402. package/dist/lib/schemas-data/3.0/enums/catalog-type.json +1 -1
  403. package/dist/lib/schemas-data/3.0/enums/channels.json +1 -1
  404. package/dist/lib/schemas-data/3.0/enums/cloud-storage-protocol.json +1 -1
  405. package/dist/lib/schemas-data/3.0/enums/co-branding-requirement.json +1 -1
  406. package/dist/lib/schemas-data/3.0/enums/collection-cadence.json +1 -1
  407. package/dist/lib/schemas-data/3.0/enums/collection-kind.json +1 -1
  408. package/dist/lib/schemas-data/3.0/enums/collection-relationship.json +1 -1
  409. package/dist/lib/schemas-data/3.0/enums/collection-status.json +1 -1
  410. package/dist/lib/schemas-data/3.0/enums/consent-basis.json +1 -1
  411. package/dist/lib/schemas-data/3.0/enums/content-id-type.json +1 -1
  412. package/dist/lib/schemas-data/3.0/enums/content-rating-system.json +1 -1
  413. package/dist/lib/schemas-data/3.0/enums/creative-action.json +1 -1
  414. package/dist/lib/schemas-data/3.0/enums/creative-agent-capability.json +1 -1
  415. package/dist/lib/schemas-data/3.0/enums/creative-approval-status.json +1 -1
  416. package/dist/lib/schemas-data/3.0/enums/creative-identifier-type.json +1 -1
  417. package/dist/lib/schemas-data/3.0/enums/creative-quality.json +1 -1
  418. package/dist/lib/schemas-data/3.0/enums/creative-sort-field.json +1 -1
  419. package/dist/lib/schemas-data/3.0/enums/creative-status.json +1 -1
  420. package/dist/lib/schemas-data/3.0/enums/daast-tracking-event.json +1 -1
  421. package/dist/lib/schemas-data/3.0/enums/daast-version.json +1 -1
  422. package/dist/lib/schemas-data/3.0/enums/day-of-week.json +1 -1
  423. package/dist/lib/schemas-data/3.0/enums/delegation-authority.json +1 -1
  424. package/dist/lib/schemas-data/3.0/enums/delivery-type.json +1 -1
  425. package/dist/lib/schemas-data/3.0/enums/demographic-system.json +1 -1
  426. package/dist/lib/schemas-data/3.0/enums/derivative-type.json +1 -1
  427. package/dist/lib/schemas-data/3.0/enums/device-platform.json +1 -1
  428. package/dist/lib/schemas-data/3.0/enums/device-type.json +1 -1
  429. package/dist/lib/schemas-data/3.0/enums/digital-source-type.json +1 -1
  430. package/dist/lib/schemas-data/3.0/enums/dimension-unit.json +1 -1
  431. package/dist/lib/schemas-data/3.0/enums/disclosure-persistence.json +1 -1
  432. package/dist/lib/schemas-data/3.0/enums/disclosure-position.json +1 -1
  433. package/dist/lib/schemas-data/3.0/enums/distance-unit.json +1 -1
  434. package/dist/lib/schemas-data/3.0/enums/distribution-identifier-type.json +1 -1
  435. package/dist/lib/schemas-data/3.0/enums/error-code.json +1 -1
  436. package/dist/lib/schemas-data/3.0/enums/escalation-severity.json +1 -1
  437. package/dist/lib/schemas-data/3.0/enums/event-type.json +1 -1
  438. package/dist/lib/schemas-data/3.0/enums/exclusivity.json +1 -1
  439. package/dist/lib/schemas-data/3.0/enums/feature-check-status.json +1 -1
  440. package/dist/lib/schemas-data/3.0/enums/feed-format.json +1 -1
  441. package/dist/lib/schemas-data/3.0/enums/feedback-source.json +1 -1
  442. package/dist/lib/schemas-data/3.0/enums/forecast-method.json +1 -1
  443. package/dist/lib/schemas-data/3.0/enums/forecast-range-unit.json +1 -1
  444. package/dist/lib/schemas-data/3.0/enums/forecastable-metric.json +1 -1
  445. package/dist/lib/schemas-data/3.0/enums/format-id-parameter.json +1 -1
  446. package/dist/lib/schemas-data/3.0/enums/frame-rate-type.json +1 -1
  447. package/dist/lib/schemas-data/3.0/enums/frequency-cap-scope.json +1 -1
  448. package/dist/lib/schemas-data/3.0/enums/genre-taxonomy.json +1 -1
  449. package/dist/lib/schemas-data/3.0/enums/geo-level.json +1 -1
  450. package/dist/lib/schemas-data/3.0/enums/gop-type.json +1 -1
  451. package/dist/lib/schemas-data/3.0/enums/governance-decision.json +1 -1
  452. package/dist/lib/schemas-data/3.0/enums/governance-domain.json +1 -1
  453. package/dist/lib/schemas-data/3.0/enums/governance-mode.json +1 -1
  454. package/dist/lib/schemas-data/3.0/enums/governance-phase.json +1 -1
  455. package/dist/lib/schemas-data/3.0/enums/history-entry-type.json +1 -1
  456. package/dist/lib/schemas-data/3.0/enums/http-method.json +1 -1
  457. package/dist/lib/schemas-data/3.0/enums/identifier-types.json +1 -1
  458. package/dist/lib/schemas-data/3.0/enums/installment-status.json +1 -1
  459. package/dist/lib/schemas-data/3.0/enums/javascript-module-type.json +1 -1
  460. package/dist/lib/schemas-data/3.0/enums/landing-page-requirement.json +1 -1
  461. package/dist/lib/schemas-data/3.0/enums/makegood-remedy.json +1 -1
  462. package/dist/lib/schemas-data/3.0/enums/markdown-flavor.json +1 -1
  463. package/dist/lib/schemas-data/3.0/enums/match-id-type.json +1 -1
  464. package/dist/lib/schemas-data/3.0/enums/match-type.json +1 -1
  465. package/dist/lib/schemas-data/3.0/enums/media-buy-status.json +1 -1
  466. package/dist/lib/schemas-data/3.0/enums/media-buy-valid-action.json +1 -1
  467. package/dist/lib/schemas-data/3.0/enums/metric-type.json +1 -1
  468. package/dist/lib/schemas-data/3.0/enums/metro-system.json +1 -1
  469. package/dist/lib/schemas-data/3.0/enums/moov-atom-position.json +1 -1
  470. package/dist/lib/schemas-data/3.0/enums/notification-type.json +1 -1
  471. package/dist/lib/schemas-data/3.0/enums/outcome-type.json +1 -1
  472. package/dist/lib/schemas-data/3.0/enums/pacing.json +1 -1
  473. package/dist/lib/schemas-data/3.0/enums/payment-terms.json +1 -1
  474. package/dist/lib/schemas-data/3.0/enums/performance-standard-metric.json +1 -1
  475. package/dist/lib/schemas-data/3.0/enums/policy-category.json +1 -1
  476. package/dist/lib/schemas-data/3.0/enums/policy-enforcement.json +1 -1
  477. package/dist/lib/schemas-data/3.0/enums/postal-system.json +1 -1
  478. package/dist/lib/schemas-data/3.0/enums/preview-output-format.json +1 -1
  479. package/dist/lib/schemas-data/3.0/enums/pricing-model.json +1 -1
  480. package/dist/lib/schemas-data/3.0/enums/production-quality.json +1 -1
  481. package/dist/lib/schemas-data/3.0/enums/property-type.json +1 -1
  482. package/dist/lib/schemas-data/3.0/enums/proposal-status.json +1 -1
  483. package/dist/lib/schemas-data/3.0/enums/publisher-identifier-types.json +1 -1
  484. package/dist/lib/schemas-data/3.0/enums/purchase-type.json +1 -1
  485. package/dist/lib/schemas-data/3.0/enums/reach-unit.json +1 -1
  486. package/dist/lib/schemas-data/3.0/enums/reporting-frequency.json +1 -1
  487. package/dist/lib/schemas-data/3.0/enums/response-type.json +1 -1
  488. package/dist/lib/schemas-data/3.0/enums/restricted-attribute.json +1 -1
  489. package/dist/lib/schemas-data/3.0/enums/right-type.json +1 -1
  490. package/dist/lib/schemas-data/3.0/enums/right-use.json +1 -1
  491. package/dist/lib/schemas-data/3.0/enums/rights-billing-period.json +1 -1
  492. package/dist/lib/schemas-data/3.0/enums/scan-type.json +1 -1
  493. package/dist/lib/schemas-data/3.0/enums/si-session-status.json +1 -1
  494. package/dist/lib/schemas-data/3.0/enums/signal-catalog-type.json +1 -1
  495. package/dist/lib/schemas-data/3.0/enums/signal-source.json +1 -1
  496. package/dist/lib/schemas-data/3.0/enums/signal-value-type.json +1 -1
  497. package/dist/lib/schemas-data/3.0/enums/snapshot-unavailable-reason.json +1 -1
  498. package/dist/lib/schemas-data/3.0/enums/sort-direction.json +1 -1
  499. package/dist/lib/schemas-data/3.0/enums/sort-metric.json +1 -1
  500. package/dist/lib/schemas-data/3.0/enums/special-category.json +1 -1
  501. package/dist/lib/schemas-data/3.0/enums/specialism.json +1 -1
  502. package/dist/lib/schemas-data/3.0/enums/talent-role.json +1 -1
  503. package/dist/lib/schemas-data/3.0/enums/task-status.json +1 -1
  504. package/dist/lib/schemas-data/3.0/enums/task-type.json +1 -1
  505. package/dist/lib/schemas-data/3.0/enums/transport-mode.json +1 -1
  506. package/dist/lib/schemas-data/3.0/enums/travel-time-unit.json +1 -1
  507. package/dist/lib/schemas-data/3.0/enums/uid-type.json +1 -1
  508. package/dist/lib/schemas-data/3.0/enums/universal-macro.json +1 -1
  509. package/dist/lib/schemas-data/3.0/enums/update-frequency.json +1 -1
  510. package/dist/lib/schemas-data/3.0/enums/url-asset-type.json +1 -1
  511. package/dist/lib/schemas-data/3.0/enums/validation-mode.json +1 -1
  512. package/dist/lib/schemas-data/3.0/enums/vast-tracking-event.json +1 -1
  513. package/dist/lib/schemas-data/3.0/enums/vast-version.json +1 -1
  514. package/dist/lib/schemas-data/3.0/enums/viewability-standard.json +1 -1
  515. package/dist/lib/schemas-data/3.0/enums/wcag-level.json +1 -1
  516. package/dist/lib/schemas-data/3.0/enums/webhook-response-type.json +1 -1
  517. package/dist/lib/schemas-data/3.0/enums/webhook-security-method.json +1 -1
  518. package/dist/lib/schemas-data/3.0/error-details/account-setup-required.json +1 -1
  519. package/dist/lib/schemas-data/3.0/error-details/audience-too-small.json +1 -1
  520. package/dist/lib/schemas-data/3.0/error-details/budget-too-low.json +1 -1
  521. package/dist/lib/schemas-data/3.0/error-details/conflict.json +1 -1
  522. package/dist/lib/schemas-data/3.0/error-details/creative-rejected.json +1 -1
  523. package/dist/lib/schemas-data/3.0/error-details/policy-violation.json +1 -1
  524. package/dist/lib/schemas-data/3.0/error-details/rate-limited.json +1 -1
  525. package/dist/lib/schemas-data/3.0/error-details/vendor-error-codes.json +1 -1
  526. package/dist/lib/schemas-data/3.0/extensions/extension-meta.json +1 -1
  527. package/dist/lib/schemas-data/3.0/extensions/index.json +2 -2
  528. package/dist/lib/schemas-data/3.0/governance/attribute-definition.json +1 -1
  529. package/dist/lib/schemas-data/3.0/governance/audience-constraints.json +3 -3
  530. package/dist/lib/schemas-data/3.0/governance/check-governance-request.json +7 -7
  531. package/dist/lib/schemas-data/3.0/governance/check-governance-response.json +6 -6
  532. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-request.json +4 -4
  533. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-response.json +9 -9
  534. package/dist/lib/schemas-data/3.0/governance/policy-category-definition.json +2 -2
  535. package/dist/lib/schemas-data/3.0/governance/policy-entry.json +6 -6
  536. package/dist/lib/schemas-data/3.0/governance/policy-ref.json +1 -1
  537. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-request.json +6 -6
  538. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-response.json +4 -4
  539. package/dist/lib/schemas-data/3.0/governance/sync-plans-request.json +13 -13
  540. package/dist/lib/schemas-data/3.0/governance/sync-plans-response.json +4 -4
  541. package/dist/lib/schemas-data/3.0/index.json +364 -364
  542. package/dist/lib/schemas-data/3.0/manifest.json +3 -3
  543. package/dist/lib/schemas-data/3.0/manifest.schema.json +1 -1
  544. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-input-required.json +4 -4
  545. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-submitted.json +3 -3
  546. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-working.json +3 -3
  547. package/dist/lib/schemas-data/3.0/media-buy/build-creative-request.json +11 -11
  548. package/dist/lib/schemas-data/3.0/media-buy/build-creative-response.json +17 -17
  549. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-input-required.json +4 -4
  550. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-submitted.json +3 -3
  551. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-working.json +3 -3
  552. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-request.json +12 -12
  553. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-response.json +15 -15
  554. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-request.json +17 -17
  555. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-response.json +24 -24
  556. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-request.json +7 -7
  557. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-response.json +19 -19
  558. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-input-required.json +4 -4
  559. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-submitted.json +3 -3
  560. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-working.json +3 -3
  561. package/dist/lib/schemas-data/3.0/media-buy/get-products-request.json +11 -11
  562. package/dist/lib/schemas-data/3.0/media-buy/get-products-response.json +8 -8
  563. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-request.json +11 -11
  564. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-response.json +7 -7
  565. package/dist/lib/schemas-data/3.0/media-buy/log-event-request.json +4 -4
  566. package/dist/lib/schemas-data/3.0/media-buy/log-event-response.json +6 -6
  567. package/dist/lib/schemas-data/3.0/media-buy/package-request.json +12 -12
  568. package/dist/lib/schemas-data/3.0/media-buy/package-update.json +13 -13
  569. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-request.json +6 -6
  570. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-response.json +6 -6
  571. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-request.json +7 -7
  572. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-response.json +9 -9
  573. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  574. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-submitted.json +3 -3
  575. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-working.json +3 -3
  576. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-request.json +7 -7
  577. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-response.json +9 -9
  578. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-request.json +5 -5
  579. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-response.json +10 -10
  580. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-input-required.json +3 -3
  581. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-submitted.json +3 -3
  582. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-working.json +3 -3
  583. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-request.json +10 -10
  584. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-response.json +10 -10
  585. package/dist/lib/schemas-data/3.0/pricing-options/cpa-option.json +4 -4
  586. package/dist/lib/schemas-data/3.0/pricing-options/cpc-option.json +4 -4
  587. package/dist/lib/schemas-data/3.0/pricing-options/cpcv-option.json +4 -4
  588. package/dist/lib/schemas-data/3.0/pricing-options/cpm-option.json +4 -4
  589. package/dist/lib/schemas-data/3.0/pricing-options/cpp-option.json +5 -5
  590. package/dist/lib/schemas-data/3.0/pricing-options/cpv-option.json +4 -4
  591. package/dist/lib/schemas-data/3.0/pricing-options/flat-rate-option.json +4 -4
  592. package/dist/lib/schemas-data/3.0/pricing-options/price-breakdown.json +2 -2
  593. package/dist/lib/schemas-data/3.0/pricing-options/price-guidance.json +1 -1
  594. package/dist/lib/schemas-data/3.0/pricing-options/time-option.json +4 -4
  595. package/dist/lib/schemas-data/3.0/pricing-options/vcpm-option.json +4 -4
  596. package/dist/lib/schemas-data/3.0/property/authorization-result.json +1 -1
  597. package/dist/lib/schemas-data/3.0/property/base-property-source.json +4 -4
  598. package/dist/lib/schemas-data/3.0/property/create-property-list-request.json +7 -7
  599. package/dist/lib/schemas-data/3.0/property/create-property-list-response.json +4 -4
  600. package/dist/lib/schemas-data/3.0/property/delete-property-list-request.json +4 -4
  601. package/dist/lib/schemas-data/3.0/property/delete-property-list-response.json +3 -3
  602. package/dist/lib/schemas-data/3.0/property/delivery-record.json +3 -3
  603. package/dist/lib/schemas-data/3.0/property/get-property-list-request.json +4 -4
  604. package/dist/lib/schemas-data/3.0/property/get-property-list-response.json +7 -7
  605. package/dist/lib/schemas-data/3.0/property/list-property-lists-request.json +5 -5
  606. package/dist/lib/schemas-data/3.0/property/list-property-lists-response.json +5 -5
  607. package/dist/lib/schemas-data/3.0/property/property-error.json +2 -2
  608. package/dist/lib/schemas-data/3.0/property/property-feature-definition.json +2 -2
  609. package/dist/lib/schemas-data/3.0/property/property-feature-result.json +4 -4
  610. package/dist/lib/schemas-data/3.0/property/property-feature-value.json +2 -2
  611. package/dist/lib/schemas-data/3.0/property/property-feature.json +1 -1
  612. package/dist/lib/schemas-data/3.0/property/property-list-changed-webhook.json +2 -2
  613. package/dist/lib/schemas-data/3.0/property/property-list-filters.json +5 -5
  614. package/dist/lib/schemas-data/3.0/property/property-list.json +6 -6
  615. package/dist/lib/schemas-data/3.0/property/update-property-list-request.json +7 -7
  616. package/dist/lib/schemas-data/3.0/property/update-property-list-response.json +4 -4
  617. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-request.json +5 -5
  618. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-response.json +4 -4
  619. package/dist/lib/schemas-data/3.0/property/validation-result.json +5 -5
  620. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-request.json +3 -3
  621. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-response.json +25 -25
  622. package/dist/lib/schemas-data/3.0/signals/activate-signal-request.json +5 -5
  623. package/dist/lib/schemas-data/3.0/signals/activate-signal-response.json +7 -7
  624. package/dist/lib/schemas-data/3.0/signals/get-signals-request.json +8 -8
  625. package/dist/lib/schemas-data/3.0/signals/get-signals-response.json +10 -10
  626. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-capabilities.json +1 -1
  627. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-request.json +3 -3
  628. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-response.json +4 -4
  629. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-identity.json +1 -1
  630. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-request.json +5 -5
  631. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-response.json +7 -7
  632. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-request.json +3 -3
  633. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-response.json +7 -7
  634. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-request.json +3 -3
  635. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-response.json +5 -5
  636. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-ui-element.json +1 -1
  637. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  638. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  639. package/dist/lib/server/create-adcp-server.js +182 -0
  640. package/dist/lib/server/create-adcp-server.js.map +1 -1
  641. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js +1 -1
  642. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts +0 -10
  643. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts.map +1 -1
  644. package/dist/lib/server/decisioning/specialisms/creative.d.ts +7 -22
  645. package/dist/lib/server/decisioning/specialisms/creative.d.ts.map +1 -1
  646. package/dist/lib/server/error-arm-tools.d.ts +56 -0
  647. package/dist/lib/server/error-arm-tools.d.ts.map +1 -0
  648. package/dist/lib/server/error-arm-tools.js +219 -0
  649. package/dist/lib/server/error-arm-tools.js.map +1 -0
  650. package/dist/lib/server/errors.d.ts +10 -0
  651. package/dist/lib/server/errors.d.ts.map +1 -1
  652. package/dist/lib/server/errors.js +10 -0
  653. package/dist/lib/server/errors.js.map +1 -1
  654. package/dist/lib/server/wire-spec-fields.generated.d.ts +29 -29
  655. package/dist/lib/server/wire-spec-fields.generated.js +31 -31
  656. package/dist/lib/testing/storyboard/request-builder.d.ts +18 -0
  657. package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -1
  658. package/dist/lib/testing/storyboard/request-builder.js +83 -24
  659. package/dist/lib/testing/storyboard/request-builder.js.map +1 -1
  660. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  661. package/dist/lib/testing/storyboard/runner.js +35 -0
  662. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  663. package/dist/lib/types/core.generated.js +2 -2
  664. package/dist/lib/types/manifest.generated.d.ts +3 -3
  665. package/dist/lib/types/manifest.generated.js +1 -1
  666. package/dist/lib/utils/activation-key-builders.d.ts +21 -0
  667. package/dist/lib/utils/activation-key-builders.d.ts.map +1 -0
  668. package/dist/lib/utils/activation-key-builders.js +28 -0
  669. package/dist/lib/utils/activation-key-builders.js.map +1 -0
  670. package/dist/lib/utils/build-creative-return-builders.d.ts +24 -0
  671. package/dist/lib/utils/build-creative-return-builders.d.ts.map +1 -0
  672. package/dist/lib/utils/build-creative-return-builders.js +42 -0
  673. package/dist/lib/utils/build-creative-return-builders.js.map +1 -0
  674. package/dist/lib/utils/media-buy-delivery-notification-builders.d.ts +25 -0
  675. package/dist/lib/utils/media-buy-delivery-notification-builders.d.ts.map +1 -0
  676. package/dist/lib/utils/media-buy-delivery-notification-builders.js +41 -0
  677. package/dist/lib/utils/media-buy-delivery-notification-builders.js.map +1 -0
  678. package/dist/lib/utils/preview-creative-builders.d.ts +18 -0
  679. package/dist/lib/utils/preview-creative-builders.d.ts.map +1 -0
  680. package/dist/lib/utils/preview-creative-builders.js +28 -0
  681. package/dist/lib/utils/preview-creative-builders.js.map +1 -0
  682. package/dist/lib/utils/signal-id-builders.d.ts +21 -0
  683. package/dist/lib/utils/signal-id-builders.d.ts.map +1 -0
  684. package/dist/lib/utils/signal-id-builders.js +24 -0
  685. package/dist/lib/utils/signal-id-builders.js.map +1 -0
  686. package/dist/lib/version.d.ts +7 -7
  687. package/dist/lib/version.d.ts.map +1 -1
  688. package/dist/lib/version.js +7 -5
  689. package/dist/lib/version.js.map +1 -1
  690. package/docs/guides/BUILD-AN-AGENT.md +25 -36
  691. package/docs/llms.txt +4 -4
  692. package/examples/hello_creative_adapter_ad_server.ts +13 -14
  693. package/examples/hello_creative_adapter_template.ts +15 -13
  694. package/examples/hello_seller_adapter_proposal_mode.ts +71 -0
  695. package/examples/hello_signals_adapter_marketplace.ts +9 -12
  696. package/examples/signals-agent.ts +11 -15
  697. package/package.json +2 -2
  698. package/skills/SHAPE-GOTCHAS.md +83 -19
  699. package/skills/build-creative-agent/SKILL.md +23 -8
  700. package/skills/build-decisioning-creative-template/SKILL.md +8 -10
  701. package/skills/build-decisioning-platform/SKILL.md +1 -1
  702. package/skills/build-decisioning-platform/advanced/REFERENCE.md +4 -8
  703. package/skills/build-decisioning-signal-marketplace/SKILL.md +6 -8
  704. package/skills/build-retail-media-agent/SKILL.md +31 -25
  705. package/skills/build-seller-agent/SKILL.md +14 -8
  706. package/skills/build-seller-agent/deployment.md +34 -36
  707. package/skills/build-seller-agent/specialisms/audience-sync.md +27 -57
  708. package/skills/build-seller-agent/specialisms/sales-broadcast-tv.md +48 -49
  709. package/skills/build-seller-agent/specialisms/sales-proposal-mode.md +47 -45
  710. package/skills/build-seller-agent/specialisms/sales-streaming-tv.md +45 -0
  711. package/skills/build-seller-agent/specialisms/signed-requests.md +11 -4
  712. package/skills/build-signals-agent/SKILL.md +21 -20
  713. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/brand/index.yaml +0 -0
  714. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/creative/index.yaml +0 -0
  715. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/governance/index.yaml +0 -0
  716. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/media-buy/creative-reception.yaml +0 -0
  717. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/media-buy/index.yaml +0 -0
  718. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  719. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  720. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  721. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/media-buy/state-machine.yaml +0 -0
  722. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/signals/index.yaml +0 -0
  723. /package/compliance/cache/{3.0.6 → 3.0.8}/domains/sponsored-intelligence/index.yaml +0 -0
  724. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/brand/index.yaml +0 -0
  725. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/creative/index.yaml +0 -0
  726. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/governance/index.yaml +0 -0
  727. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/creative-reception.yaml +0 -0
  728. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/index.yaml +0 -0
  729. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  730. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  731. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  732. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/media-buy/state-machine.yaml +0 -0
  733. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/signals/index.yaml +0 -0
  734. /package/compliance/cache/{3.0.6 → 3.0.8}/protocols/sponsored-intelligence/index.yaml +0 -0
  735. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/audience-sync/index.yaml +0 -0
  736. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/brand-rights/index.yaml +0 -0
  737. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  738. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/collection-lists/index.yaml +0 -0
  739. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/content-standards/index.yaml +0 -0
  740. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/creative-ad-server/index.yaml +0 -0
  741. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/creative-generative/generative-seller.yaml +0 -0
  742. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/creative-generative/index.yaml +0 -0
  743. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/creative-template/index.yaml +0 -0
  744. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/governance-aware-seller/index.yaml +0 -0
  745. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  746. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/governance-spend-authority/denied.yaml +0 -0
  747. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/governance-spend-authority/index.yaml +0 -0
  748. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/property-lists/index.yaml +0 -0
  749. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  750. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/sales-catalog-driven/index.yaml +0 -0
  751. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/sales-guaranteed/index.yaml +0 -0
  752. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  753. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/sales-proposal-mode/index.yaml +0 -0
  754. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/sales-social/index.yaml +0 -0
  755. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/signal-marketplace/index.yaml +0 -0
  756. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  757. /package/compliance/cache/{3.0.6 → 3.0.8}/specialisms/signal-owned/index.yaml +0 -0
  758. /package/compliance/cache/{3.0.6 → 3.0.8}/test-kits/acme-outdoor.yaml +0 -0
  759. /package/compliance/cache/{3.0.6 → 3.0.8}/test-kits/bistro-oranje.yaml +0 -0
  760. /package/compliance/cache/{3.0.6 → 3.0.8}/test-kits/nova-motors.yaml +0 -0
  761. /package/compliance/cache/{3.0.6 → 3.0.8}/test-kits/osei-natural.yaml +0 -0
  762. /package/compliance/cache/{3.0.6 → 3.0.8}/test-kits/signed-requests-runner.yaml +0 -0
  763. /package/compliance/cache/{3.0.6 → 3.0.8}/test-kits/substitution-observer-runner.yaml +0 -0
  764. /package/compliance/cache/{3.0.6 → 3.0.8}/test-kits/summit-foods.yaml +0 -0
  765. /package/compliance/cache/{3.0.6 → 3.0.8}/test-kits/webhook-receiver-runner.yaml +0 -0
  766. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  767. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/002-full-plan.json +0 -0
  768. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  769. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  770. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  771. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  772. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  773. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  774. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  775. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  776. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  777. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/README.md +0 -0
  778. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/canonicalization.json +0 -0
  779. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/keys.json +0 -0
  780. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  781. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  782. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  783. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  784. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  785. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  786. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  787. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  788. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  789. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  790. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  791. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  792. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  793. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  794. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  795. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  796. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  797. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  798. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  799. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  800. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  801. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  802. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  803. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  804. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  805. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  806. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  807. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  808. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  809. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  810. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  811. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  812. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  813. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  814. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  815. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  816. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  817. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  818. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  819. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/README.md +0 -0
  820. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/keys.json +0 -0
  821. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  822. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  823. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  824. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  825. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  826. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  827. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  828. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  829. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  830. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  831. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  832. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  833. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  834. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  835. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  836. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  837. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  838. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  839. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  840. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  841. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  842. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  843. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  844. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  845. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  846. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  847. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  848. /package/compliance/cache/{3.0.6 → 3.0.8}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  849. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/capability-discovery.yaml +0 -0
  850. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/collection-lists-pagination-integrity.yaml +0 -0
  851. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/content-standards-pagination-integrity.yaml +0 -0
  852. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/deterministic-testing.yaml +0 -0
  853. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/error-compliance.yaml +0 -0
  854. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/fictional-entities.yaml +0 -0
  855. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  856. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/get-signals-pagination-integrity.yaml +0 -0
  857. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/idempotency.yaml +0 -0
  858. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/pagination-integrity-creative-formats.yaml +0 -0
  859. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/pagination-integrity-list-accounts.yaml +0 -0
  860. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/pagination-integrity.yaml +0 -0
  861. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/property-lists-pagination-integrity.yaml +0 -0
  862. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/runner-output-contract.yaml +0 -0
  863. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/schema-validation.yaml +0 -0
  864. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/security.yaml +0 -0
  865. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/signed-requests.yaml +0 -0
  866. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/storyboard-schema.yaml +0 -0
  867. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/v3-envelope-integrity.yaml +0 -0
  868. /package/compliance/cache/{3.0.6 → 3.0.8}/universal/webhook-emission.yaml +0 -0
  869. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/brand/index.yaml +0 -0
  870. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/creative/index.yaml +0 -0
  871. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/governance/index.yaml +0 -0
  872. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/creative-reception.yaml +0 -0
  873. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/index.yaml +0 -0
  874. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  875. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  876. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  877. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/media-buy/state-machine.yaml +0 -0
  878. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/signals/index.yaml +0 -0
  879. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/domains/sponsored-intelligence/index.yaml +0 -0
  880. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/brand/index.yaml +0 -0
  881. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/creative/index.yaml +0 -0
  882. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/governance/index.yaml +0 -0
  883. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/media-buy/creative-reception.yaml +0 -0
  884. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/media-buy/index.yaml +0 -0
  885. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  886. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  887. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  888. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/media-buy/state-machine.yaml +0 -0
  889. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/signals/index.yaml +0 -0
  890. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/protocols/sponsored-intelligence/index.yaml +0 -0
  891. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/audience-sync/index.yaml +0 -0
  892. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/brand-rights/index.yaml +0 -0
  893. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  894. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/collection-lists/index.yaml +0 -0
  895. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/content-standards/index.yaml +0 -0
  896. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/creative-ad-server/index.yaml +0 -0
  897. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/creative-generative/generative-seller.yaml +0 -0
  898. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/creative-generative/index.yaml +0 -0
  899. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/creative-template/index.yaml +0 -0
  900. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/governance-aware-seller/index.yaml +0 -0
  901. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  902. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/governance-spend-authority/denied.yaml +0 -0
  903. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/governance-spend-authority/index.yaml +0 -0
  904. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/property-lists/index.yaml +0 -0
  905. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  906. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/sales-catalog-driven/index.yaml +0 -0
  907. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/sales-guaranteed/index.yaml +0 -0
  908. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  909. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/sales-proposal-mode/index.yaml +0 -0
  910. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/sales-social/index.yaml +0 -0
  911. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/signal-marketplace/index.yaml +0 -0
  912. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  913. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/specialisms/signal-owned/index.yaml +0 -0
  914. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-kits/acme-outdoor.yaml +0 -0
  915. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-kits/bistro-oranje.yaml +0 -0
  916. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-kits/nova-motors.yaml +0 -0
  917. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-kits/osei-natural.yaml +0 -0
  918. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-kits/signed-requests-runner.yaml +0 -0
  919. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-kits/substitution-observer-runner.yaml +0 -0
  920. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-kits/summit-foods.yaml +0 -0
  921. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-kits/webhook-receiver-runner.yaml +0 -0
  922. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  923. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/002-full-plan.json +0 -0
  924. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  925. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  926. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  927. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  928. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  929. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  930. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  931. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  932. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  933. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/README.md +0 -0
  934. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/canonicalization.json +0 -0
  935. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/keys.json +0 -0
  936. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  937. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  938. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  939. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  940. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  941. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  942. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  943. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  944. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  945. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  946. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  947. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  948. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  949. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  950. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  951. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  952. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  953. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  954. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  955. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  956. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  957. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  958. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  959. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  960. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  961. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  962. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  963. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  964. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  965. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  966. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  967. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  968. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  969. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  970. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  971. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  972. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  973. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  974. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  975. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/README.md +0 -0
  976. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/keys.json +0 -0
  977. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  978. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  979. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  980. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  981. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  982. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  983. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  984. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  985. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  986. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  987. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  988. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  989. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  990. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  991. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  992. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  993. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  994. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  995. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  996. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  997. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  998. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  999. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  1000. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  1001. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  1002. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  1003. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  1004. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  1005. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/capability-discovery.yaml +0 -0
  1006. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/collection-lists-pagination-integrity.yaml +0 -0
  1007. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/content-standards-pagination-integrity.yaml +0 -0
  1008. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/deterministic-testing.yaml +0 -0
  1009. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/error-compliance.yaml +0 -0
  1010. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/fictional-entities.yaml +0 -0
  1011. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  1012. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/get-signals-pagination-integrity.yaml +0 -0
  1013. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/idempotency.yaml +0 -0
  1014. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/pagination-integrity-creative-formats.yaml +0 -0
  1015. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/pagination-integrity-list-accounts.yaml +0 -0
  1016. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/pagination-integrity.yaml +0 -0
  1017. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/property-lists-pagination-integrity.yaml +0 -0
  1018. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/runner-output-contract.yaml +0 -0
  1019. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/schema-validation.yaml +0 -0
  1020. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/security.yaml +0 -0
  1021. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/signed-requests.yaml +0 -0
  1022. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/storyboard-schema.yaml +0 -0
  1023. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/v3-envelope-integrity.yaml +0 -0
  1024. /package/compliance/cache/{3.0.6.previous → 3.0.8.previous}/universal/webhook-emission.yaml +0 -0
@@ -5,20 +5,18 @@ description: Use when building an AdCP retail media network agent — a platform
5
5
 
6
6
  # Build a Retail Media Agent
7
7
 
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.
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 worked seller adapter** and replace its `// SWAP:` markers with calls to your backend.
9
9
 
10
10
  ## Pick your fork target
11
11
 
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.
12
+ | Specialism | Status | Fork this | Mock upstream | Storyboard |
13
+ | ---------------------- | ------- | --------------------------------------------------------------------------------- | ----------------------------------- | ---------------------- |
14
+ | `sales-catalog-driven` | stable | [`hello_seller_adapter_social.ts`](../../examples/hello_seller_adapter_social.ts) | `npx adcp mock-server sales-social` | `sales_catalog_driven` |
15
+ | `sales-retail-media` | preview | Same | Same | placeholder |
13
16
 
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
+ The social fork target is the closest baseline because it already implements the catalog-driven surface (`syncCatalogs`, `syncEventSources`, `logEvent`) on top of `SalesIngestionPlatform`. Walled-garden social platforms and retail media networks share the same wire-level shape — buyer pushes catalogs and audiences, platform reports conversions, both close the loop via `provide_performance_feedback`. Apply the retail-specific deltas below.
18
18
 
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\``.
20
-
21
- For exact response shapes, error codes, and optional fields, `docs/llms.txt` is the canonical reference.
19
+ For exact response shapes, error codes, and optional fields, [`docs/llms.txt`](../../docs/llms.txt) is the canonical reference. The fork target stays in sync with the spec because PR #1394's three-gate contract fails CI when it drifts.
22
20
 
23
21
  ## When to use this skill
24
22
 
@@ -36,31 +34,39 @@ For exact response shapes, error codes, and optional fields, `docs/llms.txt` is
36
34
 
37
35
  ## Cross-cutting rules
38
36
 
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):
37
+ Every retail-media agent hits the cross-cutting rules in [`../cross-cutting.md`](../cross-cutting.md) plus 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:
38
+
39
+ - [`idempotency_key`](../cross-cutting.md#idempotency_key-is-required-on-every-mutating-call) on `sync_catalogs`, `sync_event_sources`, `log_event`, `provide_performance_feedback`
40
+ - [Webhooks](../cross-cutting.md#webhooks-stable-operation_id-across-retries) — for catalog-ingestion completions, use `catalog_sync.${catalog_id}.${batch_id}` as the stable `operation_id`
41
+ - [SHAPE-GOTCHAS §6](../SHAPE-GOTCHAS.md#6-log_event-projection-for-walled-garden-capis) — `log_event` field-name + UNIX-seconds + `user_match` projections (shared with sales-social CAPIs)
42
+
43
+ ## Specialism deltas
40
44
 
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`
45
+ ### `sales-catalog-driven`
43
46
 
44
- ## Specialism deltas at a glance
47
+ What's different from the social baseline you forked:
45
48
 
46
- **`sales-catalog-driven`**
49
+ - **Products declare catalog support**: `supports_catalog: true` and `supports_conversion_tracking: true` on each `Product`.
50
+ - **`create_media_buy` accepts `packages[].catalogs[]`** — references to previously-synced catalog ids. The seller renders the dynamic ad from the catalog row at serve time.
51
+ - **`sync_catalogs`** ingests product feeds (JSON / CSV / XML). Required per-row fields: `product_id`, `title`, `price`, `image_url`, `category`. Reject rows missing any of these with a structured error and surface the per-row failures in the response.
52
+ - **`sync_event_sources`** registers conversion endpoints — `purchase`, `add_to_cart`, `page_view`, `search`. Each event source has a `source_id` the buyer references on subsequent `log_event` calls.
53
+ - **`log_event` accepts `content_ids`** — the catalog row IDs the conversion attaches to. Counter-only responses pass the storyboard today; closed-loop attribution lands in 3.1.
54
+ - **`provide_performance_feedback`** accepts buyer optimization signals (clicked / not-clicked / converted / not-converted on specific impressions). Use it to close the bid-quality loop.
47
55
 
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
56
+ ### `sales-retail-media`
54
57
 
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.
58
+ Currently a v3.1 placeholder (empty `phases` in `index.yaml`); the protocol baseline is all that's enforced today. Claim the specialism to advertise intent. The forward-looking deltas on top of `sales-catalog-driven`:
56
59
 
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.
60
+ - **Onsite placement encoding** in `publisher_properties` and `format_ids` — search results, product detail page (PDP), homepage, category, offsite (display retargeting), in-store (DOOH).
61
+ - **Sponsored-product vs sponsored-display** distinction surfaces as separate `format_ids` per product.
62
+ - **Offsite + in-store** require `publisher_properties.environment` to disambiguate the rendering surface (web vs DOOH vs CTV) — the buyer's targeting overlays vary by environment.
63
+ - **Closed-loop ROAS** lands with attribution in 3.1.
58
64
 
59
65
  ## Validate locally
60
66
 
61
67
  ```bash
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"
68
+ # Run the fork-matrix gate against the social baseline
69
+ npm run compliance:fork-matrix -- --test-name-pattern="hello-seller-adapter-social"
64
70
 
65
71
  # Or validate your forked agent directly against the catalog-driven storyboard
66
72
  adcp storyboard run http://127.0.0.1:3005/mcp sales_catalog_driven \
@@ -73,7 +79,7 @@ For deeper validation: [`docs/guides/VALIDATE-YOUR-AGENT.md`](../../docs/guides/
73
79
 
74
80
  ## Common shape gotchas
75
81
 
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).
82
+ `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) and [§6](../SHAPE-GOTCHAS.md#6-log_event-projection-for-walled-garden-capis) for `log_event` field-rename + UNIX-seconds patterns shared with social CAPIs.
77
83
 
78
84
  ## Migration notes
79
85
 
@@ -11,14 +11,19 @@ A seller agent receives briefs from buyers, returns products, accepts media buys
11
11
 
12
12
  Each of these is a worked, currently-running, three-gate-tested reference adapter. Fork it, swap the upstream, ship.
13
13
 
14
- | Specialism | Fork this | Mock upstream | Storyboard |
15
- | --- | --- | --- | --- |
16
- | `sales-guaranteed` | [`hello_seller_adapter_guaranteed.ts`](../../examples/hello_seller_adapter_guaranteed.ts) | `npx adcp mock-server sales-guaranteed` | `sales_guaranteed` |
17
- | `sales-non-guaranteed` | [`hello_seller_adapter_non_guaranteed.ts`](../../examples/hello_seller_adapter_non_guaranteed.ts) | `npx adcp mock-server sales-non-guaranteed` | `sales_non_guaranteed` |
18
- | `sales-social` | [`hello_seller_adapter_social.ts`](../../examples/hello_seller_adapter_social.ts) | `npx adcp mock-server sales-social` | `sales_social` |
19
- | Multi-tenant holdco hub | [`hello_seller_adapter_multi_tenant.ts`](../../examples/hello_seller_adapter_multi_tenant.ts) | composed | per specialism |
14
+ | Specialism | Fork this | Mock upstream | Storyboard |
15
+ | ----------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------------------- | ---------------------- |
16
+ | `sales-guaranteed` | [`hello_seller_adapter_guaranteed.ts`](../../examples/hello_seller_adapter_guaranteed.ts) | `npx adcp mock-server sales-guaranteed` | `sales_guaranteed` |
17
+ | `sales-non-guaranteed` | [`hello_seller_adapter_non_guaranteed.ts`](../../examples/hello_seller_adapter_non_guaranteed.ts) | `npx adcp mock-server sales-non-guaranteed` | `sales_non_guaranteed` |
18
+ | `sales-social` | [`hello_seller_adapter_social.ts`](../../examples/hello_seller_adapter_social.ts) | `npx adcp mock-server sales-social` | `sales_social` |
19
+ | Multi-tenant holdco hub | [`hello_seller_adapter_multi_tenant.ts`](../../examples/hello_seller_adapter_multi_tenant.ts) | composed | per specialism |
20
20
 
21
- The other sales-* specialisms (`sales-broadcast-tv`, `sales-streaming-tv`, `sales-exchange`, `sales-proposal-mode`) currently fork from `sales-guaranteed` or `sales-non-guaranteed` and apply specialism deltas — see `specialisms/<id>.md`. `sales-streaming-tv` and `sales-exchange` are preview specialisms with placeholder storyboards (claim them to advertise intent; baseline is all that's enforced today).
21
+ The other sales-\* specialisms reuse one of the primary fork targets and apply specialism deltas:
22
+
23
+ - [`sales-broadcast-tv`](specialisms/sales-broadcast-tv.md) — forks `hello_seller_adapter_guaranteed.ts`; deltas around DMA, GRP, daypart, agency estimate number, measurement windows.
24
+ - [`sales-streaming-tv`](specialisms/sales-streaming-tv.md) — forks `hello_seller_adapter_guaranteed.ts`; deltas around CTV (audience-vs-program targeting, reach/freq forecast). Preview specialism — placeholder storyboard.
25
+ - [`sales-proposal-mode`](specialisms/sales-proposal-mode.md) — forks `hello_seller_adapter_proposal_mode.ts`; deltas around `ProposalManager` two-platform composition, `ctx.recipes` hydration, sole-stateful exemption.
26
+ - `sales-exchange` — forks `hello_seller_adapter_non_guaranteed.ts`; preview specialism (placeholder storyboard).
22
27
 
23
28
  For exact response shapes, error codes, and optional fields, `docs/llms.txt` is the canonical reference. The fork target stays in sync with the spec because PR #1394's three-gate contract fails CI when it drifts.
24
29
 
@@ -38,7 +43,7 @@ For exact response shapes, error codes, and optional fields, `docs/llms.txt` is
38
43
 
39
44
  ## Cross-cutting rules
40
45
 
41
- Every sales-* seller hits the cross-cutting rules in [`../cross-cutting.md`](../cross-cutting.md). The high-traffic ones for sellers (deep-linked to the rule):
46
+ Every sales-\* seller hits the cross-cutting rules in [`../cross-cutting.md`](../cross-cutting.md). The high-traffic ones for sellers (deep-linked to the rule):
42
47
 
43
48
  - [`idempotency_key`](../cross-cutting.md#idempotency_key-is-required-on-every-mutating-call) on every mutating request — `create_media_buy`, `update_media_buy`, `sync_creatives`, `sync_audiences`, etc.
44
49
  - [Resolve-then-authorize](../cross-cutting.md#resolve-then-authorize--uniform-errors-for-not-found--not-yours) — byte-equivalent errors for `media_buy_id` cross-tenant lookups
@@ -53,6 +58,7 @@ The fork target covers the baseline. Specialism subpages cover the deltas — wh
53
58
  - [`specialisms/sales-guaranteed.md`](specialisms/sales-guaranteed.md) — **read before coding if you claim `sales-guaranteed`**: IO-task envelope, three `create_media_buy` return shapes (task envelope / `pending_creatives` / `active`), `TERMS_REJECTED` on aggressive `measurement_terms`. Applying only the task-envelope path fails 5 storyboard `create_media_buy` steps.
54
59
  - [`specialisms/sales-non-guaranteed.md`](specialisms/sales-non-guaranteed.md) — **read if your inventory clears at request time** (programmatic auction, no HITL approval): sync confirmation, `bid_price`, `update_media_buy` for in-flight changes.
55
60
  - [`specialisms/sales-broadcast-tv.md`](specialisms/sales-broadcast-tv.md) — **read if you sell linear / broadcast TV**: `agency_estimate_number`, Ad-ID `industry_identifiers`, `measurement_windows` (Live/C3/C7).
61
+ - [`specialisms/sales-streaming-tv.md`](specialisms/sales-streaming-tv.md) — **read if you sell CTV / OTT streaming inventory** (preview): audience-vs-program targeting, reach/freq forecast, frequency caps.
56
62
  - [`specialisms/sales-social.md`](specialisms/sales-social.md) — **read if you're a social platform** (Snap, Meta, TikTok, etc.): additive — claim alongside `sales-non-guaranteed`. Adds `sync_audiences`, `sync_catalogs` (DPA), `log_event` (conversions), `get_account_financials`.
57
63
  - [`specialisms/sales-proposal-mode.md`](specialisms/sales-proposal-mode.md) — **read if you negotiate via proposals before line-itemizing**: `proposals[]` with `budget_allocations`, `buying_mode: 'refine'`.
58
64
  - [`specialisms/audience-sync.md`](specialisms/audience-sync.md) — **read if buyers push audiences to you** (walled-garden + identity-provider patterns): `sync_audiences` track. Hashed identifiers, match-rate telemetry.
@@ -8,7 +8,7 @@ Companion to [`SKILL.md`](./SKILL.md). Read this only when you need deployment s
8
8
 
9
9
  - **Mounting under an existing Express app** (especially alongside OAuth 2.1 Authorization Server routes like `mcpAuthRouter({ provider })`) — use `createExpressAdapter`.
10
10
  - **Stdio transport** — for CLI / desktop / local-subprocess agents.
11
- - **Hand-rolled HTTP** — when even `createExpressAdapter` doesn't fit; `createAdcpServer().connect(transport)` is the raw escape hatch.
11
+ - **Hand-rolled HTTP** — when even `createExpressAdapter` doesn't fit; `createAdcpServerFromPlatform(...).connect(transport)` is the raw escape hatch.
12
12
 
13
13
  ### Multi-host HTTP
14
14
 
@@ -16,16 +16,23 @@ Pass functions for `publicUrl` and `protectedResource`, branch on `ctx.host` in
16
16
 
17
17
  ```typescript
18
18
  import { UnknownHostError, hostname } from '@adcp/sdk';
19
- import { verifyBearer } from '@adcp/sdk/server';
20
- import { serve, createAdcpServer } from '@adcp/sdk/server/legacy/v5';
21
-
22
- // Host → adapter config. Whatever shape suits your deployment (DB, env, static).
23
- // Cache the CONFIG (not the AdcpServer). serve() still instantiates the
24
- // server per request today, but a config Map keeps the expensive part
25
- // (handler bundle, idempotency store, DB pool) at module scope.
26
- const adapters = new Map<string, { name: string; handlers: MediaBuyHandlers }>([
27
- ['snap.agentic-adapters.scope3.com', { name: 'Snap seller', handlers: snapHandlers }],
28
- ['meta.agentic-adapters.scope3.com', { name: 'Meta seller', handlers: metaHandlers }],
19
+ import {
20
+ createAdcpServerFromPlatform,
21
+ serve,
22
+ verifyBearer,
23
+ type DecisioningPlatform,
24
+ } from '@adcp/sdk/server';
25
+
26
+ declare const snapPlatform: DecisioningPlatform;
27
+ declare const metaPlatform: DecisioningPlatform;
28
+
29
+ // Host → platform. Whatever shape suits your deployment (DB, env, static).
30
+ // Cache the PLATFORM (not the AdcpServer). serve() still instantiates the
31
+ // server per request today, but a platform Map keeps the expensive part
32
+ // (platform handlers, idempotency store, DB pool) at module scope.
33
+ const adapters = new Map<string, { name: string; platform: DecisioningPlatform }>([
34
+ ['snap.agentic-adapters.scope3.com', { name: 'Snap seller', platform: snapPlatform }],
35
+ ['meta.agentic-adapters.scope3.com', { name: 'Meta seller', platform: metaPlatform }],
29
36
  // ... one entry per hostname you front
30
37
  ]);
31
38
 
@@ -40,11 +47,9 @@ serve(
40
47
  // UnknownHostError → 404 (generic body, routing table stays off the wire).
41
48
  // Any other thrown error still surfaces as 500.
42
49
  if (!cfg) throw new UnknownHostError(`No adapter configured for ${ctx.host}`);
43
- return createAdcpServer({
50
+ return createAdcpServerFromPlatform(cfg.platform, {
44
51
  name: cfg.name,
45
52
  version: '1.0.0',
46
- resolveAccount: async (ref, { authInfo }) => lookupAccount(ctx.host, ref, authInfo),
47
- mediaBuy: cfg.handlers,
48
53
  });
49
54
  },
50
55
  {
@@ -77,9 +82,9 @@ Each unique host runs its resolver once and the result is cached. Every host adv
77
82
 
78
83
  **Unknown hosts: throw `UnknownHostError` from the factory.** `serve()` catches it and responds 404 with a generic body (the routing table never crosses the wire). Throwing any other `Error` stays as a 500 so unrelated bugs remain loud.
79
84
 
80
- **Factory runs per request.** `serve()` calls the factory on every incoming request (to avoid cross-request state bleed). By default it closes the returned server at the end of each request — so caching the `AdcpServer` from one call to the next is unsafe without opt-in. Keep the default-path factory cheap: look up a pre-built adapter config from a module-scoped `Map`, and let `createAdcpServer(...)` build a fresh wrapper from that config on every call.
85
+ **Factory runs per request.** `serve()` calls the factory on every incoming request (to avoid cross-request state bleed). By default it closes the returned server at the end of each request — so caching the `AdcpServer` from one call to the next is unsafe without opt-in. Keep the default-path factory cheap: look up a pre-built platform from a module-scoped `Map`, and let `createAdcpServerFromPlatform(...)` build a fresh wrapper from that platform on every call.
81
86
 
82
- **Pass `reuseAgent: true` to cache `AdcpServer` instances per host.** When the tool-registration cost inside `createAdcpServer(...)` is a measurable part of request latency (common in multi-host deployments with many tools per host), flip the flag and cache the returned server in the factory:
87
+ **Pass `reuseAgent: true` to cache `AdcpServer` instances per host.** When the tool-registration cost inside `createAdcpServerFromPlatform(...)` is a measurable part of request latency (common in multi-host deployments with many tools per host), flip the flag and cache the returned server in the factory:
83
88
 
84
89
  ```typescript
85
90
  const agents = new Map<string, AdcpServer>();
@@ -89,11 +94,9 @@ serve(
89
94
  if (!agent) {
90
95
  const cfg = adapters.get(ctx.host);
91
96
  if (!cfg) throw new UnknownHostError(`No adapter for ${ctx.host}`);
92
- agent = createAdcpServer({
97
+ agent = createAdcpServerFromPlatform(cfg.platform, {
93
98
  name: cfg.name,
94
99
  version: '1.0.0',
95
- resolveAccount: cfg.resolveAccount,
96
- mediaBuy: cfg.handlers,
97
100
  });
98
101
  agents.set(ctx.host, agent);
99
102
  }
@@ -117,18 +120,19 @@ When your agent is _both_ an OAuth 2.1 AS (issues tokens) and a protected resour
117
120
 
118
121
  ```typescript
119
122
  import express from 'express';
120
- import { createExpressAdapter, verifyBearer, anyOf, verifyApiKey } from '@adcp/sdk/server';
121
- import { createAdcpServer } from '@adcp/sdk/server/legacy/v5';
123
+ import {
124
+ createAdcpServerFromPlatform,
125
+ createExpressAdapter,
126
+ verifyBearer,
127
+ anyOf,
128
+ verifyApiKey,
129
+ } from '@adcp/sdk/server';
122
130
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
123
131
  import { mcpAuthRouter } from '@modelcontextprotocol/sdk/server/auth/router.js';
124
132
 
125
- const agent = createAdcpServer({
133
+ const agent = createAdcpServerFromPlatform(snapPlatform, {
126
134
  name: 'Snap seller',
127
135
  version: '1.0.0',
128
- resolveAccount: async (ref, { authInfo }) => lookupAccount(ref, authInfo),
129
- mediaBuy: {
130
- /* ... */
131
- },
132
136
  });
133
137
 
134
138
  const adapter = createExpressAdapter({
@@ -192,7 +196,7 @@ The shape when one Node process fronts N hostnames AND each hostname is also its
192
196
  ```typescript
193
197
  import express from 'express';
194
198
  import {
195
- createAdcpServer,
199
+ createAdcpServerFromPlatform,
196
200
  createExpressAdapter,
197
201
  verifyBearer,
198
202
  resolveHost,
@@ -218,11 +222,9 @@ const app = express();
218
222
  // AS routes, and the MCP endpoint.
219
223
  const routersByHost = new Map<string, express.Router>();
220
224
  for (const [host, cfg] of adapters) {
221
- const agent = createAdcpServer({
225
+ const agent = createAdcpServerFromPlatform(cfg.platform, {
222
226
  name: cfg.name,
223
227
  version: '1.0.0',
224
- resolveAccount: async (ref, { authInfo }) => cfg.lookupAccount(ref, authInfo),
225
- mediaBuy: cfg.handlers,
226
228
  });
227
229
 
228
230
  const adapter = createExpressAdapter({
@@ -390,15 +392,11 @@ You own: the `mcpAuthRouter` wiring (provider-specific), the per-request `transp
390
392
 
391
393
  ```typescript
392
394
  import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
393
- import { createAdcpServer } from '@adcp/sdk/server/legacy/v5';
395
+ import { createAdcpServerFromPlatform } from '@adcp/sdk/server';
394
396
 
395
- const server = createAdcpServer({
397
+ const server = createAdcpServerFromPlatform(localSellerPlatform, {
396
398
  name: 'Local Seller',
397
399
  version: '1.0.0',
398
- resolveAccount: async ref => lookupAccount(ref),
399
- mediaBuy: {
400
- /* ... */
401
- },
402
400
  });
403
401
 
404
402
  await server.connect(new StdioServerTransport());
@@ -2,60 +2,30 @@
2
2
 
3
3
  Companion to [`../SKILL.md`](../SKILL.md). The SKILL.md baseline applies; this file covers only the deltas for `audience-sync`.
4
4
 
5
- Storyboard: `audience_sync`. Track is `audiences` separate from the core seller lifecycle, but lives in this skill because identifier sync and account discovery sit next to media-buying.
6
-
7
- Required tools: `sync_audiences` and `list_accounts`. `sync_audiences` is overloaded — it handles three cases through its request payload:
8
-
9
- - **Discovery**: call with no `audiences` array (or empty). Returns the audiences already on the platform for the account.
10
- - **Add**: each audience entry has an `add: [{ hashed_email }, { hashed_phone }, ...]` array of hashed identifiers.
11
- - **Delete**: each audience entry has `delete: true`.
12
-
13
- There is no separate `delete_audience` tool deletion rides on `sync_audiences`.
14
-
15
- ```typescript
16
- createAdcpServer({
17
- accounts: {
18
- syncAccounts: /* baseline */,
19
- listAccounts: async (params, ctx) => {
20
- const { items } = await ctx.store.list('accounts');
21
- const brandFilter = params.brand?.domain;
22
- return { accounts: brandFilter ? items.filter((a) => a.brand.domain === brandFilter) : items };
23
- },
24
- },
25
- eventTracking: {
26
- syncAudiences: async (params, ctx) => {
27
- // Discovery modeno audiences in request
28
- if (!params.audiences?.length) {
29
- const { items } = await ctx.store.list('audiences');
30
- return { audiences: items.map((a) => ({ audience_id: a.audience_id, name: a.name, status: 'active' as const })) };
31
- }
32
- // Add / delete mode
33
- return {
34
- audiences: await Promise.all(params.audiences.map(async (a) => {
35
- if (a.delete) {
36
- await ctx.store.delete('audiences', a.audience_id);
37
- return { audience_id: a.audience_id, name: a.name, action: 'deleted' as const, status: 'inactive' as const };
38
- }
39
- const identifiers = a.add ?? [];
40
- const uploaded = identifiers.length;
41
- const matched = Math.floor(uploaded * 0.72); // simulated match rate
42
- await ctx.store.put('audiences', a.audience_id, { ...a, uploaded, matched });
43
- return {
44
- audience_id: a.audience_id,
45
- name: a.name,
46
- action: 'created' as const,
47
- status: 'active' as const,
48
- uploaded_count: uploaded,
49
- matched_count: matched,
50
- effective_match_rate: uploaded ? matched / uploaded : 0,
51
- };
52
- })),
53
- };
54
- },
55
- },
56
- });
57
- ```
58
-
59
- **Identifier rules:** each `add` entry is a single-identifier object (`{hashed_email}` OR `{hashed_phone}`, not both). Values are SHA-256 of lowercased, trimmed input. Salting/normalization is out-of-band between buyer and platform — document your expected input format.
60
-
61
- **Platform types:** destinations span `['dsp', 'retail_media', 'social', 'audio', 'pmax']`. Each has its own `activation_key` shape — see `skills/build-signals-agent/SKILL.md` for activation patterns, which are shared across signals and audience sync.
5
+ **Fork target**: [`examples/hello_seller_adapter_social.ts`](../../../examples/hello_seller_adapter_social.ts) is the worked, passing reference for the audience surface it already implements `syncAudiences` + `listAccounts` against an `AudiencePlatform` and a walled-garden mock upstream. Replace the `// SWAP:` markers with calls to your real backend. See [SHAPE-GOTCHAS.md](../../SHAPE-GOTCHAS.md) for response-shape pitfalls.
6
+
7
+ Storyboard: `audience_sync` (track `audiences`).
8
+
9
+ ## What's different from the social baseline
10
+
11
+ `audience-sync` is the **audiences-only slice** of `sales-social` same `AudiencePlatform` surface, no `SalesCorePlatform` (no `getProducts` / `createMediaBuy`). Single-specialism `audience-sync` adopters are typically identity providers / data onboarders that don't sell media inventory; they push hashed audiences upstream and report match rates.
12
+
13
+ If you also sell media (Snap, Meta, TikTok, retail media), claim **both** `audience-sync` and `sales-social` (or whichever sales specialism fits) and keep the full `SalesIngestionPlatform`.
14
+
15
+ ## Tool surface (audience-only)
16
+
17
+ - `sync_audiences` — overloaded by request payload:
18
+ - **Discovery**: empty/missing `audiences` array → return audiences already on the platform for the account.
19
+ - **Add**: each audience entry has `add: [{ hashed_email } | { hashed_phone } | …]` — hashed identifiers to push.
20
+ - **Delete**: each audience entry has `delete: true` (no separate `delete_audience` tool).
21
+ - `list_accounts` buyer-side account discovery; supports `brand` filter.
22
+
23
+ ## Identifier rules
24
+
25
+ Each `add` entry is a **single-identifier object** (`{hashed_email}` OR `{hashed_phone}`, never both in one entry). Values are SHA-256 of lowercased, trimmed input. Salting/normalization is out-of-band between buyer and platform — document your expected input format in your `capabilities.features`.
26
+
27
+ Drop entries that fail your validation rather than synthesize identifiers see [SHAPE-GOTCHAS §6.3](../../SHAPE-GOTCHAS.md#63-hashed-identifier-requirement--read-eventuser_match-drop-on-empty) for the parallel pattern on `log_event`.
28
+
29
+ ## Activation destinations
30
+
31
+ Destinations span `['dsp', 'retail_media', 'social', 'audio', 'pmax']`. Each has its own `activation_key` shape — see [SHAPE-GOTCHAS §1](../../SHAPE-GOTCHAS.md#1-activationkey-oneof--keyvalue-are-top-level-not-nested) for the flat-vs-nested gotcha and `skills/build-signals-agent/SKILL.md` for the broader activation-polling pattern (shared across signals and audience sync).
@@ -2,70 +2,69 @@
2
2
 
3
3
  Companion to [`../SKILL.md`](../SKILL.md). The SKILL.md baseline applies; this file covers only the deltas for `sales-broadcast-tv`.
4
4
 
5
- Storyboard: `media_buy_broadcast_seller`. Broadcast has four protocol surfaces not used in digital.
5
+ **Fork target**: [`examples/hello_seller_adapter_guaranteed.ts`](../../../examples/hello_seller_adapter_guaranteed.ts) broadcast linear inventory is guaranteed by definition (spots are reserved against demo'd ratings). Inherit the IO-task envelope, three `create_media_buy` return shapes, and `targeting_overlay` echo pattern from [`sales-guaranteed.md`](sales-guaranteed.md). Replace the `// SWAP:` markers with calls to your traffic / ratings stack and apply the broadcast deltas below.
6
6
 
7
- **Forecast surface**: `'reach_freq'` or `'package'`. Broadcast plans aren't quoted in spend curves — buyers want unique reach and frequency at a planned weight (GRPs), or a fully-priced package. Project your reach/freq tool (Nielsen, etc.) onto `Product.forecast` points where each point's `metrics` includes `reach_unique`, `frequency_avg`, `grps`, `spend`, and a `package: { spots, dayparts }` breakdown. Use `'package'` when the seller quotes a fixed bundle of spots; use `'reach_freq'` when the buyer is exploring weight levels. See [Delivery Forecasts § CTV with GRP Demographics](https://adcontextprotocol.org/docs/media-buy/product-discovery/media-products#ctv-with-grp-demographics) for the canonical worked example.
7
+ Storyboard: `media_buy_broadcast_seller`. See [SHAPE-GOTCHAS.md](../../SHAPE-GOTCHAS.md) for response-shape pitfalls.
8
8
 
9
- **Pricing** — unit-based (cost per spot). Until a `pricing_model: 'unit'` lands, express as CPM with a very high `fixed_price` that represents the cost per thousand spots equivalent, or use a custom pricing option ID and clarify in `description`.
9
+ ## What's different from `sales-guaranteed`
10
10
 
11
- **Agency estimate number** top-level on `create_media_buy`. Echo it on the response:
11
+ Five protocol surfaces digital sellers don't use: GRP-based forecasting, DMA + daypart targeting overlays, agency estimate numbers, per-package measurement terms, and Ad-ID validation on creatives.
12
12
 
13
- ```typescript
14
- {
15
- media_buy_id,
16
- agency_estimate_number: params.agency_estimate_number, // "PNNL-NM-2026-Q4-0847"
17
- status: 'submitted',
18
- // ...
19
- }
20
- ```
13
+ ## Forecast surface — `'reach_freq'` or `'package'`
21
14
 
22
- **Measurement terms** per-package on the request:
15
+ Broadcast plans aren't quoted in spend curves:
23
16
 
24
- ```typescript
25
- packages: [
26
- {
27
- product_id: 'primetime_30s_mf',
28
- measurement_terms: {
29
- billing_measurement: {
30
- vendor: { domain: 'videoamp.com' },
31
- measurement_window: 'c7',
32
- max_variance_percent: 10,
33
- },
34
- },
35
- },
36
- ];
37
- ```
17
+ - **`reach_freq`** — unique reach + frequency at a planned weight. Each `Product.forecast.points[i].metrics` includes `reach_unique`, `frequency_avg`, `grps`, `spend`. Use when the buyer is exploring weight levels.
18
+ - **`package`** — fully-priced spot bundle. Add `metrics.package: { spots, dayparts }` per point.
19
+
20
+ See [Delivery Forecasts § CTV with GRP Demographics](https://adcontextprotocol.org/docs/media-buy/product-discovery/media-products#ctv-with-grp-demographics) for the worked example (it covers GRP-based linear too).
21
+
22
+ ## DMA + daypart targeting
23
+
24
+ DMA codes (Designated Market Areas) ride on `targeting_overlay.geo`; daypart codes (`early_morning`, `daytime`, `prime_access`, `prime`, `late_news`, `overnight`) ride on `targeting_overlay.dayparts`. Echo on `get_media_buys` per the `sales-guaranteed` `targeting_overlay` echo rule — `createMediaBuyStore` handles persistence verbatim. The seller is responsible for collapsing DMA + daypart overlays into the correct station-and-time inventory upstream.
25
+
26
+ ## Pricing — unit-based (cost per spot)
38
27
 
39
- Echo `measurement_terms` on the response's package entries the buyer uses `c7` as the guarantee basis for reconciliation.
28
+ Until a `pricing_model: 'unit'` lands, express as CPM with a high `fixed_price` representing cost-per-thousand-spots equivalent, or use a custom `pricing_option_id` and clarify in `pricing_options[].description`.
40
29
 
41
- **Ad-ID on creatives** — `sync_creatives` rejects spots without a valid Ad-ID:
30
+ ## Agency estimate number
31
+
32
+ Top-level on `create_media_buy`. Echo on the response next to `media_buy_id` (e.g., `agency_estimate_number: "PNNL-NM-2026-Q4-0847"`).
33
+
34
+ ## Measurement terms — per-package on the request
35
+
36
+ Buyers send `packages[].measurement_terms.billing_measurement` with `vendor`, `measurement_window` (`'live' | 'c3' | 'c7'`), and `max_variance_percent`. Echo on response package entries — the buyer uses `c7` as the guarantee basis for reconciliation.
37
+
38
+ ## Ad-ID validation on `sync_creatives`
39
+
40
+ Reject spots without a valid Ad-ID in `industry_identifiers`:
42
41
 
43
42
  ```typescript
44
- syncCreatives: async (params) => ({
45
- creatives: params.creatives.map((c) => {
46
- const adId = c.industry_identifiers?.find((x) => x.type === 'ad_id')?.value;
47
- if (!adId) return { creative_id: c.creative_id, action: 'created', status: 'rejected',
48
- rejection_reason: 'Ad-ID required for broadcast spots' };
49
- return { creative_id: c.creative_id, action: 'created', status: 'accepted' };
50
- }),
51
- }),
43
+ const adId = c.industry_identifiers?.find(x => x.type === 'ad_id')?.value;
44
+ if (!adId) {
45
+ return {
46
+ creative_id: c.creative_id,
47
+ action: 'created',
48
+ status: 'rejected',
49
+ rejection_reason: 'Ad-ID required for broadcast spots',
50
+ };
51
+ }
52
52
  ```
53
53
 
54
- **Measurement windows on products** `reporting_capabilities.measurement_windows` is an **array of objects**, not string enum values. Each window object must match `MeasurementWindowSchema`:
54
+ ## Measurement windows — array of objects, not enum strings
55
+
56
+ `reporting_capabilities.measurement_windows` is an array of `MeasurementWindow` objects. Don't pass bare strings (`['live', 'c3', 'c7']`) — the schema rejects them:
55
57
 
56
58
  ```typescript
57
- reporting_capabilities: {
58
- // ...standard reporting fields...
59
- measurement_windows: [
60
- { window_id: 'live', duration_days: 0, expected_availability_days: 1, is_guarantee_basis: false },
61
- { window_id: 'c3', duration_days: 3, expected_availability_days: 4, is_guarantee_basis: false },
62
- { window_id: 'c7', duration_days: 7, expected_availability_days: 8, is_guarantee_basis: true },
63
- ],
64
- }
59
+ measurement_windows: [
60
+ { window_id: 'live', duration_days: 0, expected_availability_days: 1, is_guarantee_basis: false },
61
+ { window_id: 'c3', duration_days: 3, expected_availability_days: 4, is_guarantee_basis: false },
62
+ { window_id: 'c7', duration_days: 7, expected_availability_days: 8, is_guarantee_basis: true },
63
+ ];
65
64
  ```
66
65
 
67
- Don't declare `measurement_windows: ['live', 'c3', 'c7']` the Zod schema rejects bare strings and your product won't validate.
66
+ Each delivery row tags `measurement_window`, `is_final`, and `supersedes_window` (for window upgrades). Live ratings mature in 24h, C3 in ~4d, C7 in ~8d. Final reconciliation lands ~15d after last air date.
68
67
 
69
- **Measurement windows on delivery** — each delivery row tags `measurement_window: 'live' | 'c3' | 'c7'`, `is_final: boolean`, and `supersedes_window` (for window upgrades). Live ratings mature in 24h, C3 in ~4d, C7 in ~8d. Final reconciliation lands ~15d after last air date.
68
+ ## Window-update webhooks
70
69
 
71
- **Emit window_update webhooks** via `ctx.emitWebhook` (see [§ Webhooks](#webhooks-async-completion-signed-outbound) above). Use `operation_id: \`window_update.${media_buy_id}.${stage}\`` so C3 → C7 supersession retries share a stable idempotency_key.
70
+ Emit via `ctx.emitWebhook` with `operation_id: \`window_update.${media_buy_id}.${stage}\`` so C3 → C7 supersession retries share a stable idempotency key. See [`../../cross-cutting.md` § Webhooks](../../cross-cutting.md#webhooks-stable-operation_id-across-retries).
@@ -2,48 +2,50 @@
2
2
 
3
3
  Companion to [`../SKILL.md`](../SKILL.md). The SKILL.md baseline applies; this file covers only the deltas for `sales-proposal-mode`.
4
4
 
5
- Storyboard: `media_buy_proposal_mode`. The acceptance path inverts the baseline buyer sends `proposal_id` + `total_budget`, no `packages`.
6
-
7
- `get_products` returns a `proposals[]` array alongside products:
8
-
9
- ```typescript
10
- return {
11
- products: PRODUCTS,
12
- proposals: [
13
- {
14
- proposal_id: 'balanced_reach_q2',
15
- name: 'Balanced Reach Plan',
16
- rationale: 'CTV for premium reach, OLV for sports frequency, display for always-on context.',
17
- total_budget: { amount: 50000, currency: 'USD' },
18
- budget_allocations: [
19
- { product_id: 'ctv_outdoor_lifestyle', pricing_option_id: 'ctv_cpm', amount: 25000, currency: 'USD' },
20
- { product_id: 'olv_sports', pricing_option_id: 'olv_cpm', amount: 15000, currency: 'USD' },
21
- { product_id: 'display_endemic', pricing_option_id: 'display_cpm', amount: 10000, currency: 'USD' },
22
- ],
23
- forecast: { impressions: 3_500_000, reach: 1_200_000, frequency: 2.9 },
24
- },
25
- ],
26
- sandbox: true,
27
- };
28
- ```
29
-
30
- Handle `buying_mode: 'refine'` by returning an updated `proposals[]` plus `refinement_applied[]` describing what changed.
31
-
32
- `create_media_buy` with `proposal_id`:
33
-
34
- ```typescript
35
- createMediaBuy: async (params, ctx) => {
36
- if (params.proposal_id) {
37
- const proposal = PROPOSALS[params.proposal_id];
38
- if (!proposal) return adcpError('INVALID_REQUEST', { message: `Unknown proposal_id: ${params.proposal_id}` });
39
- // TTL check — return PROPOSAL_EXPIRED if the proposal has aged out
40
- return {
41
- media_buy_id: `mb_${randomUUID()}`,
42
- status: 'active' as const, // instant on proposal accept
43
- proposal_id: proposal.proposal_id,
44
- packages: proposal.budget_allocations.map((a, i) => ({ /* expand server-side */ })),
45
- };
46
- }
47
- // ... fall through to baseline packages path
48
- },
49
- ```
5
+ **Fork target**: [`examples/hello_seller_adapter_proposal_mode.ts`](../../../examples/hello_seller_adapter_proposal_mode.ts) is the worked, passing reference adapter for this specialism. It demonstrates the v1.5 `ProposalManager` + `DecisioningPlatform` two-platform composition: `ProposalManager` curates, refines, and finalizes; `SalesCorePlatform.createMediaBuy` reads the committed recipe from `ctx.recipes` and creates the order. Replace the `// SWAP:` markers with calls to your real backend. See [SHAPE-GOTCHAS.md](../../SHAPE-GOTCHAS.md) for response-shape pitfalls.
6
+
7
+ Storyboard: `media_buy_seller/proposal_finalize` (subset of `media_buy_seller`).
8
+
9
+ ## What's different from the baseline seller flow
10
+
11
+ The acceptance path inverts the baseline. Instead of the buyer composing a `packages[]` array and calling `create_media_buy`, the seller curates a media plan, the buyer iterates, and `create_media_buy(proposal_id=…, total_budget=…)` accepts the locked plan in one call.
12
+
13
+ Three new surfaces:
14
+
15
+ | Surface | Owned by | Does |
16
+ | ------------------- | ------------------- | ----------------------------------------------------------------------------------------------- |
17
+ | `get_products` | `ProposalManager` | Returns curated `proposals[]` alongside `products[]` when the request carries a `brief`. |
18
+ | `refine_products` | `ProposalManager` | Applies buyer asks to a draft proposal, returns updated `proposals[]` + `refinement_applied[]`. |
19
+ | `finalize_proposal` | `ProposalManager` | Locks pricing, hands committed recipes to the framework's `InMemoryProposalStore`. |
20
+ | `create_media_buy` | `SalesCorePlatform` | Reads `ctx.recipes` (hydrated from the committed proposal); never re-fetches upstream. |
21
+
22
+ The framework owns proposal-state transitions (`draft → committed → consumed`) via `InMemoryProposalStore`. The adapter is stateless — it projects upstream proposal documents onto the AdCP wire shape and lets the framework manage lifecycle.
23
+
24
+ ## `ctx_metadata` for proposal-side identifiers
25
+
26
+ The fork target stashes the network code on the resolved account (`ctx.account.ctx_metadata.network_code`) so every proposal call routes to the correct upstream tenant without re-resolving. **Do not put bearer tokens or signing secrets in `ctx_metadata`** — re-derive credentials from `ctx.authInfo` per call. See [`docs/guides/CTX-METADATA-SAFETY.md`](../../../docs/guides/CTX-METADATA-SAFETY.md).
27
+
28
+ `ProposalManager.finalizeProposal` writes `upstream_ids.proposal_id` and `upstream_ids.line_item_template_id` onto the recipe. Those non-secret upstream IDs are exactly what `ctx_metadata` is for; the framework persists them in the committed-proposal store and rehydrates them in `sales.createMediaBuy(ctx)`.
29
+
30
+ ## Sole-stateful-step exemption
31
+
32
+ The proposal-mode storyboard treats `finalize_proposal` as a sole stateful step in some scenarios — when the only stateful peer (e.g., a parallel governance check) was skipped, the runner applies the sole-stateful-step exemption (`adcp#4053`, `adcp-client#1146/#1545`) so the downstream `create_media_buy` step doesn't cascade-skip. The fork target's tests cover this branch (`hello_seller_adapter_proposal_mode` exercises the exemption path under the storyboard runner).
33
+
34
+ If your adapter fails this scenario with `cascade-skip-on-skip`, check that `finalize_proposal` returns a populated `recipes` map — an empty map looks to the runner like the proposal didn't commit, which suppresses the exemption.
35
+
36
+ ## Refinement loop
37
+
38
+ `refine_products` accepts a `refine[]` array on the request. Each entry has `scope: 'request' | 'proposal'` and (when `scope='proposal'`) a `proposal_id` plus an `ask` string. Return:
39
+
40
+ - Updated `proposals[]` reflecting the applied ask.
41
+ - `refinement_applied[]` echoing each `refine[]` entry with `status: 'applied' | 'rejected'` so the buyer can audit which asks landed.
42
+
43
+ Reject `refine_products` calls without at least one `scope: 'proposal'` entry — there's nothing to refine.
44
+
45
+ ## TTL + `PROPOSAL_EXPIRED`
46
+
47
+ Committed proposals carry `expires_at`. On `create_media_buy(proposal_id=…)`, validate the TTL; return structured `PROPOSAL_EXPIRED` (use the SDK's typed-error helper) if the proposal aged out. The framework's `expiresAtGraceSeconds` capability lets you tolerate clock skew (the fork target sets 60 seconds).
48
+
49
+ ## When `proposal_id` is missing
50
+
51
+ Sellers that **only** accept proposals (no direct package-based buying) should reject `create_media_buy` without `proposal_id` with `INVALID_REQUEST` and a hint pointing at the proposal flow. The fork target shows the pattern. Sellers that accept both can fall through to the baseline packages path.