@adcp/sdk 6.8.0 → 6.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (837) hide show
  1. package/ADCP_VERSION +1 -1
  2. package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/inventory_list_targeting.yaml +5 -0
  3. package/compliance/cache/{3.0.5 → 3.0.6}/index.json +2 -2
  4. package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +5 -0
  5. package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-guaranteed/index.yaml +1 -1
  6. package/compliance/cache/{3.0.5 → 3.0.6}/universal/storyboard-schema.yaml +15 -0
  7. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  8. package/dist/lib/core/AgentClient.js +20 -0
  9. package/dist/lib/core/AgentClient.js.map +1 -1
  10. package/dist/lib/mock-server/creative-template/seed-data.d.ts +1 -1
  11. package/dist/lib/mock-server/creative-template/seed-data.d.ts.map +1 -1
  12. package/dist/lib/mock-server/creative-template/seed-data.js +53 -0
  13. package/dist/lib/mock-server/creative-template/seed-data.js.map +1 -1
  14. package/dist/lib/mock-server/creative-template/server.d.ts.map +1 -1
  15. package/dist/lib/mock-server/creative-template/server.js +12 -0
  16. package/dist/lib/mock-server/creative-template/server.js.map +1 -1
  17. package/dist/lib/schemas-data/3.0/a2ui/bound-value.json +1 -1
  18. package/dist/lib/schemas-data/3.0/a2ui/component.json +1 -1
  19. package/dist/lib/schemas-data/3.0/a2ui/si-catalog.json +25 -25
  20. package/dist/lib/schemas-data/3.0/a2ui/surface.json +2 -2
  21. package/dist/lib/schemas-data/3.0/a2ui/user-action.json +1 -1
  22. package/dist/lib/schemas-data/3.0/account/get-account-financials-request.json +5 -5
  23. package/dist/lib/schemas-data/3.0/account/get-account-financials-response.json +10 -10
  24. package/dist/lib/schemas-data/3.0/account/list-accounts-request.json +4 -4
  25. package/dist/lib/schemas-data/3.0/account/list-accounts-response.json +6 -6
  26. package/dist/lib/schemas-data/3.0/account/report-usage-request.json +5 -5
  27. package/dist/lib/schemas-data/3.0/account/report-usage-response.json +4 -4
  28. package/dist/lib/schemas-data/3.0/account/sync-accounts-request.json +9 -9
  29. package/dist/lib/schemas-data/3.0/account/sync-accounts-response.json +12 -12
  30. package/dist/lib/schemas-data/3.0/account/sync-governance-request.json +5 -5
  31. package/dist/lib/schemas-data/3.0/account/sync-governance-response.json +8 -8
  32. package/dist/lib/schemas-data/3.0/adagents.json +32 -32
  33. package/dist/lib/schemas-data/3.0/brand/acquire-rights-request.json +8 -8
  34. package/dist/lib/schemas-data/3.0/brand/acquire-rights-response.json +14 -14
  35. package/dist/lib/schemas-data/3.0/brand/creative-approval-request.json +4 -4
  36. package/dist/lib/schemas-data/3.0/brand/creative-approval-response.json +10 -10
  37. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-request.json +3 -3
  38. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-response.json +8 -8
  39. package/dist/lib/schemas-data/3.0/brand/get-rights-request.json +7 -7
  40. package/dist/lib/schemas-data/3.0/brand/get-rights-response.json +9 -9
  41. package/dist/lib/schemas-data/3.0/brand/revocation-notification.json +4 -4
  42. package/dist/lib/schemas-data/3.0/brand/rights-pricing-option.json +5 -5
  43. package/dist/lib/schemas-data/3.0/brand/rights-terms.json +3 -3
  44. package/dist/lib/schemas-data/3.0/brand/update-rights-request.json +4 -4
  45. package/dist/lib/schemas-data/3.0/brand/update-rights-response.json +9 -9
  46. package/dist/lib/schemas-data/3.0/brand.json +14 -14
  47. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-request.json +2 -2
  48. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-response.json +2 -2
  49. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-request.json +2 -2
  50. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-response.json +2 -2
  51. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-request.json +2 -2
  52. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-response.json +2 -2
  53. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-request.json +2 -2
  54. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-response.json +2 -2
  55. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-request.json +2 -2
  56. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-response.json +2 -2
  57. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-request.json +2 -2
  58. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-response.json +2 -2
  59. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-request.json +2 -2
  60. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-response.json +2 -2
  61. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-request.json +2 -2
  62. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-response.json +2 -2
  63. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-request.json +2 -2
  64. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-response.json +2 -2
  65. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-request.json +2 -2
  66. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-response.json +2 -2
  67. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-request.json +2 -2
  68. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-response.json +2 -2
  69. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-request.json +2 -2
  70. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-response.json +2 -2
  71. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-request.json +2 -2
  72. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-response.json +2 -2
  73. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-request.json +2 -2
  74. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-response.json +2 -2
  75. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-request.json +2 -2
  76. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-response.json +2 -2
  77. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-request.json +2 -2
  78. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-response.json +2 -2
  79. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-request.json +2 -2
  80. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-response.json +2 -2
  81. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-request.json +2 -2
  82. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-response.json +2 -2
  83. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-request.json +2 -2
  84. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-response.json +2 -2
  85. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-request.json +2 -2
  86. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-response.json +2 -2
  87. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-request.json +2 -2
  88. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-response.json +2 -2
  89. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-request.json +2 -2
  90. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-response.json +2 -2
  91. package/dist/lib/schemas-data/3.0/bundled/media-buy/package-request.json +2 -2
  92. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-request.json +2 -2
  93. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-response.json +2 -2
  94. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-request.json +2 -2
  95. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-response.json +2 -2
  96. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-request.json +2 -2
  97. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-response.json +2 -2
  98. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-request.json +2 -2
  99. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-response.json +2 -2
  100. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-request.json +2 -2
  101. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-response.json +2 -2
  102. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-request.json +2 -2
  103. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-response.json +2 -2
  104. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-request.json +2 -2
  105. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-response.json +2 -2
  106. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-request.json +2 -2
  107. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-response.json +2 -2
  108. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-request.json +2 -2
  109. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-response.json +2 -2
  110. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-request.json +2 -2
  111. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-response.json +2 -2
  112. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-request.json +2 -2
  113. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-response.json +2 -2
  114. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-request.json +2 -2
  115. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-response.json +2 -2
  116. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-request.json +2 -2
  117. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-response.json +2 -2
  118. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-request.json +2 -2
  119. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-response.json +2 -2
  120. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-request.json +2 -2
  121. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-response.json +2 -2
  122. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-request.json +2 -2
  123. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-response.json +2 -2
  124. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-request.json +2 -2
  125. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-response.json +2 -2
  126. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-request.json +2 -2
  127. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-response.json +2 -2
  128. package/dist/lib/schemas-data/3.0/collection/base-collection-source.json +3 -3
  129. package/dist/lib/schemas-data/3.0/collection/collection-list-changed-webhook.json +2 -2
  130. package/dist/lib/schemas-data/3.0/collection/collection-list-filters.json +7 -7
  131. package/dist/lib/schemas-data/3.0/collection/collection-list.json +5 -5
  132. package/dist/lib/schemas-data/3.0/collection/create-collection-list-request.json +7 -7
  133. package/dist/lib/schemas-data/3.0/collection/create-collection-list-response.json +4 -4
  134. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-request.json +4 -4
  135. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-response.json +3 -3
  136. package/dist/lib/schemas-data/3.0/collection/get-collection-list-request.json +4 -4
  137. package/dist/lib/schemas-data/3.0/collection/get-collection-list-response.json +10 -10
  138. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-request.json +5 -5
  139. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-response.json +5 -5
  140. package/dist/lib/schemas-data/3.0/collection/update-collection-list-request.json +7 -7
  141. package/dist/lib/schemas-data/3.0/collection/update-collection-list-response.json +4 -4
  142. package/dist/lib/schemas-data/3.0/content-standards/artifact-webhook-payload.json +3 -3
  143. package/dist/lib/schemas-data/3.0/content-standards/artifact.json +7 -7
  144. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-request.json +4 -4
  145. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-response.json +8 -8
  146. package/dist/lib/schemas-data/3.0/content-standards/content-standards.json +7 -7
  147. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-request.json +7 -7
  148. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-response.json +6 -6
  149. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-request.json +3 -3
  150. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-response.json +7 -7
  151. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-request.json +4 -4
  152. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-response.json +8 -8
  153. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-request.json +5 -5
  154. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-response.json +8 -8
  155. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-request.json +7 -7
  156. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-response.json +6 -6
  157. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-request.json +4 -4
  158. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-response.json +8 -8
  159. package/dist/lib/schemas-data/3.0/core/account-ref.json +2 -2
  160. package/dist/lib/schemas-data/3.0/core/account.json +9 -9
  161. package/dist/lib/schemas-data/3.0/core/activation-key.json +1 -1
  162. package/dist/lib/schemas-data/3.0/core/ad-inventory-config.json +1 -1
  163. package/dist/lib/schemas-data/3.0/core/agent-encryption-key.json +1 -1
  164. package/dist/lib/schemas-data/3.0/core/agent-signing-key.json +1 -1
  165. package/dist/lib/schemas-data/3.0/core/app-item.json +4 -4
  166. package/dist/lib/schemas-data/3.0/core/assets/asset-union.json +15 -15
  167. package/dist/lib/schemas-data/3.0/core/assets/audio-asset.json +3 -3
  168. package/dist/lib/schemas-data/3.0/core/assets/brief-asset.json +2 -2
  169. package/dist/lib/schemas-data/3.0/core/assets/catalog-asset.json +2 -2
  170. package/dist/lib/schemas-data/3.0/core/assets/css-asset.json +2 -2
  171. package/dist/lib/schemas-data/3.0/core/assets/daast-asset.json +4 -4
  172. package/dist/lib/schemas-data/3.0/core/assets/html-asset.json +2 -2
  173. package/dist/lib/schemas-data/3.0/core/assets/image-asset.json +2 -2
  174. package/dist/lib/schemas-data/3.0/core/assets/javascript-asset.json +3 -3
  175. package/dist/lib/schemas-data/3.0/core/assets/markdown-asset.json +2 -2
  176. package/dist/lib/schemas-data/3.0/core/assets/text-asset.json +2 -2
  177. package/dist/lib/schemas-data/3.0/core/assets/url-asset.json +3 -3
  178. package/dist/lib/schemas-data/3.0/core/assets/vast-asset.json +4 -4
  179. package/dist/lib/schemas-data/3.0/core/assets/video-asset.json +7 -7
  180. package/dist/lib/schemas-data/3.0/core/assets/webhook-asset.json +7 -7
  181. package/dist/lib/schemas-data/3.0/core/async-response-data.json +25 -25
  182. package/dist/lib/schemas-data/3.0/core/attribution-window.json +4 -4
  183. package/dist/lib/schemas-data/3.0/core/audience-member.json +3 -3
  184. package/dist/lib/schemas-data/3.0/core/audience-selector.json +4 -4
  185. package/dist/lib/schemas-data/3.0/core/brand-id.json +1 -1
  186. package/dist/lib/schemas-data/3.0/core/brand-ref.json +2 -2
  187. package/dist/lib/schemas-data/3.0/core/business-entity.json +2 -2
  188. package/dist/lib/schemas-data/3.0/core/cancellation-policy.json +2 -2
  189. package/dist/lib/schemas-data/3.0/core/catalog-field-mapping.json +2 -2
  190. package/dist/lib/schemas-data/3.0/core/catalog.json +7 -7
  191. package/dist/lib/schemas-data/3.0/core/catchment.json +5 -5
  192. package/dist/lib/schemas-data/3.0/core/collection-distribution.json +2 -2
  193. package/dist/lib/schemas-data/3.0/core/collection-list-ref.json +1 -1
  194. package/dist/lib/schemas-data/3.0/core/collection-selector.json +1 -1
  195. package/dist/lib/schemas-data/3.0/core/collection.json +13 -13
  196. package/dist/lib/schemas-data/3.0/core/content-rating.json +2 -2
  197. package/dist/lib/schemas-data/3.0/core/context.json +1 -1
  198. package/dist/lib/schemas-data/3.0/core/creative-asset.json +6 -6
  199. package/dist/lib/schemas-data/3.0/core/creative-assignment.json +1 -1
  200. package/dist/lib/schemas-data/3.0/core/creative-brief.json +4 -4
  201. package/dist/lib/schemas-data/3.0/core/creative-consumption.json +1 -1
  202. package/dist/lib/schemas-data/3.0/core/creative-filters.json +4 -4
  203. package/dist/lib/schemas-data/3.0/core/creative-item.json +1 -1
  204. package/dist/lib/schemas-data/3.0/core/creative-manifest.json +7 -7
  205. package/dist/lib/schemas-data/3.0/core/creative-policy.json +3 -3
  206. package/dist/lib/schemas-data/3.0/core/creative-variable.json +1 -1
  207. package/dist/lib/schemas-data/3.0/core/creative-variant.json +5 -5
  208. package/dist/lib/schemas-data/3.0/core/data-provider-signal-selector.json +1 -1
  209. package/dist/lib/schemas-data/3.0/core/date-range.json +1 -1
  210. package/dist/lib/schemas-data/3.0/core/datetime-range.json +1 -1
  211. package/dist/lib/schemas-data/3.0/core/daypart-target.json +2 -2
  212. package/dist/lib/schemas-data/3.0/core/deadline-policy.json +1 -1
  213. package/dist/lib/schemas-data/3.0/core/delivery-forecast.json +7 -7
  214. package/dist/lib/schemas-data/3.0/core/delivery-metrics.json +5 -5
  215. package/dist/lib/schemas-data/3.0/core/deployment.json +3 -3
  216. package/dist/lib/schemas-data/3.0/core/destination-item.json +4 -4
  217. package/dist/lib/schemas-data/3.0/core/destination.json +1 -1
  218. package/dist/lib/schemas-data/3.0/core/diagnostic-issue.json +1 -1
  219. package/dist/lib/schemas-data/3.0/core/duration.json +1 -1
  220. package/dist/lib/schemas-data/3.0/core/education-item.json +4 -4
  221. package/dist/lib/schemas-data/3.0/core/error.json +1 -1
  222. package/dist/lib/schemas-data/3.0/core/event-custom-data.json +2 -2
  223. package/dist/lib/schemas-data/3.0/core/event-source-health.json +3 -3
  224. package/dist/lib/schemas-data/3.0/core/event.json +6 -6
  225. package/dist/lib/schemas-data/3.0/core/ext.json +1 -1
  226. package/dist/lib/schemas-data/3.0/core/feature-requirement.json +1 -1
  227. package/dist/lib/schemas-data/3.0/core/flight-item.json +4 -4
  228. package/dist/lib/schemas-data/3.0/core/forecast-point.json +18 -18
  229. package/dist/lib/schemas-data/3.0/core/forecast-range.json +1 -1
  230. package/dist/lib/schemas-data/3.0/core/format-id.json +1 -1
  231. package/dist/lib/schemas-data/3.0/core/format.json +42 -42
  232. package/dist/lib/schemas-data/3.0/core/frequency-cap.json +4 -4
  233. package/dist/lib/schemas-data/3.0/core/generation-credential.json +3 -3
  234. package/dist/lib/schemas-data/3.0/core/geo-breakdown-support.json +3 -3
  235. package/dist/lib/schemas-data/3.0/core/hotel-item.json +4 -4
  236. package/dist/lib/schemas-data/3.0/core/identifier.json +2 -2
  237. package/dist/lib/schemas-data/3.0/core/industry-identifier.json +2 -2
  238. package/dist/lib/schemas-data/3.0/core/insertion-order.json +1 -1
  239. package/dist/lib/schemas-data/3.0/core/installment-deadlines.json +2 -2
  240. package/dist/lib/schemas-data/3.0/core/installment.json +9 -9
  241. package/dist/lib/schemas-data/3.0/core/job-item.json +3 -3
  242. package/dist/lib/schemas-data/3.0/core/limited-series.json +1 -1
  243. package/dist/lib/schemas-data/3.0/core/material-deadline.json +1 -1
  244. package/dist/lib/schemas-data/3.0/core/mcp-webhook-payload.json +5 -5
  245. package/dist/lib/schemas-data/3.0/core/measurement-readiness.json +5 -5
  246. package/dist/lib/schemas-data/3.0/core/measurement-terms.json +3 -3
  247. package/dist/lib/schemas-data/3.0/core/measurement-window.json +1 -1
  248. package/dist/lib/schemas-data/3.0/core/media-buy-features.json +1 -1
  249. package/dist/lib/schemas-data/3.0/core/media-buy.json +7 -7
  250. package/dist/lib/schemas-data/3.0/core/offering-asset-group.json +15 -15
  251. package/dist/lib/schemas-data/3.0/core/offering.json +5 -5
  252. package/dist/lib/schemas-data/3.0/core/optimization-goal.json +6 -6
  253. package/dist/lib/schemas-data/3.0/core/outcome-measurement.json +2 -2
  254. package/dist/lib/schemas-data/3.0/core/overlay.json +1 -1
  255. package/dist/lib/schemas-data/3.0/core/package.json +14 -14
  256. package/dist/lib/schemas-data/3.0/core/pagination-request.json +1 -1
  257. package/dist/lib/schemas-data/3.0/core/pagination-response.json +1 -1
  258. package/dist/lib/schemas-data/3.0/core/performance-feedback.json +3 -3
  259. package/dist/lib/schemas-data/3.0/core/performance-standard.json +4 -4
  260. package/dist/lib/schemas-data/3.0/core/placement-definition.json +5 -5
  261. package/dist/lib/schemas-data/3.0/core/placement.json +2 -2
  262. package/dist/lib/schemas-data/3.0/core/planned-delivery.json +5 -5
  263. package/dist/lib/schemas-data/3.0/core/price.json +1 -1
  264. package/dist/lib/schemas-data/3.0/core/pricing-option.json +10 -10
  265. package/dist/lib/schemas-data/3.0/core/product-allocation.json +4 -4
  266. package/dist/lib/schemas-data/3.0/core/product-filters.json +16 -16
  267. package/dist/lib/schemas-data/3.0/core/product.json +28 -28
  268. package/dist/lib/schemas-data/3.0/core/property-id.json +1 -1
  269. package/dist/lib/schemas-data/3.0/core/property-list-ref.json +1 -1
  270. package/dist/lib/schemas-data/3.0/core/property-tag.json +1 -1
  271. package/dist/lib/schemas-data/3.0/core/property.json +6 -6
  272. package/dist/lib/schemas-data/3.0/core/proposal.json +6 -6
  273. package/dist/lib/schemas-data/3.0/core/protocol-envelope.json +3 -3
  274. package/dist/lib/schemas-data/3.0/core/provenance.json +6 -6
  275. package/dist/lib/schemas-data/3.0/core/publisher-property-selector.json +3 -3
  276. package/dist/lib/schemas-data/3.0/core/push-notification-config.json +2 -2
  277. package/dist/lib/schemas-data/3.0/core/real-estate-item.json +4 -4
  278. package/dist/lib/schemas-data/3.0/core/reference-asset.json +1 -1
  279. package/dist/lib/schemas-data/3.0/core/reporting-capabilities.json +5 -5
  280. package/dist/lib/schemas-data/3.0/core/reporting-webhook.json +3 -3
  281. package/dist/lib/schemas-data/3.0/core/requirements/asset-requirements.json +13 -13
  282. package/dist/lib/schemas-data/3.0/core/requirements/audio-asset-requirements.json +1 -1
  283. package/dist/lib/schemas-data/3.0/core/requirements/catalog-field-binding.json +4 -4
  284. package/dist/lib/schemas-data/3.0/core/requirements/catalog-requirements.json +5 -5
  285. package/dist/lib/schemas-data/3.0/core/requirements/css-asset-requirements.json +1 -1
  286. package/dist/lib/schemas-data/3.0/core/requirements/daast-asset-requirements.json +1 -1
  287. package/dist/lib/schemas-data/3.0/core/requirements/html-asset-requirements.json +1 -1
  288. package/dist/lib/schemas-data/3.0/core/requirements/image-asset-requirements.json +2 -2
  289. package/dist/lib/schemas-data/3.0/core/requirements/javascript-asset-requirements.json +1 -1
  290. package/dist/lib/schemas-data/3.0/core/requirements/markdown-asset-requirements.json +1 -1
  291. package/dist/lib/schemas-data/3.0/core/requirements/offering-asset-constraint.json +4 -4
  292. package/dist/lib/schemas-data/3.0/core/requirements/text-asset-requirements.json +1 -1
  293. package/dist/lib/schemas-data/3.0/core/requirements/url-asset-requirements.json +1 -1
  294. package/dist/lib/schemas-data/3.0/core/requirements/vast-asset-requirements.json +1 -1
  295. package/dist/lib/schemas-data/3.0/core/requirements/video-asset-requirements.json +6 -6
  296. package/dist/lib/schemas-data/3.0/core/requirements/webhook-asset-requirements.json +1 -1
  297. package/dist/lib/schemas-data/3.0/core/response.json +1 -1
  298. package/dist/lib/schemas-data/3.0/core/rights-constraint.json +4 -4
  299. package/dist/lib/schemas-data/3.0/core/seller-agent-ref.json +1 -1
  300. package/dist/lib/schemas-data/3.0/core/signal-definition.json +3 -3
  301. package/dist/lib/schemas-data/3.0/core/signal-filters.json +2 -2
  302. package/dist/lib/schemas-data/3.0/core/signal-id.json +1 -1
  303. package/dist/lib/schemas-data/3.0/core/signal-pricing-option.json +2 -2
  304. package/dist/lib/schemas-data/3.0/core/signal-pricing.json +6 -6
  305. package/dist/lib/schemas-data/3.0/core/signal-targeting.json +4 -4
  306. package/dist/lib/schemas-data/3.0/core/special.json +2 -2
  307. package/dist/lib/schemas-data/3.0/core/start-timing.json +1 -1
  308. package/dist/lib/schemas-data/3.0/core/store-item.json +3 -3
  309. package/dist/lib/schemas-data/3.0/core/talent.json +2 -2
  310. package/dist/lib/schemas-data/3.0/core/targeting.json +20 -20
  311. package/dist/lib/schemas-data/3.0/core/tasks-get-request.json +3 -3
  312. package/dist/lib/schemas-data/3.0/core/tasks-get-response.json +7 -7
  313. package/dist/lib/schemas-data/3.0/core/tasks-list-request.json +11 -11
  314. package/dist/lib/schemas-data/3.0/core/tasks-list-response.json +6 -6
  315. package/dist/lib/schemas-data/3.0/core/user-match.json +3 -3
  316. package/dist/lib/schemas-data/3.0/core/vehicle-item.json +4 -4
  317. package/dist/lib/schemas-data/3.0/core/vendor-pricing-option.json +2 -2
  318. package/dist/lib/schemas-data/3.0/core/x-entity-types.json +1 -1
  319. package/dist/lib/schemas-data/3.0/creative/asset-types/index.json +5 -5
  320. package/dist/lib/schemas-data/3.0/creative/creative-feature-result.json +2 -2
  321. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-request.json +5 -5
  322. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-response.json +7 -7
  323. package/dist/lib/schemas-data/3.0/creative/get-creative-features-request.json +5 -5
  324. package/dist/lib/schemas-data/3.0/creative/get-creative-features-response.json +8 -8
  325. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-request.json +11 -11
  326. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-response.json +7 -7
  327. package/dist/lib/schemas-data/3.0/creative/list-creatives-request.json +8 -8
  328. package/dist/lib/schemas-data/3.0/creative/list-creatives-response.json +14 -14
  329. package/dist/lib/schemas-data/3.0/creative/preview-creative-request.json +11 -11
  330. package/dist/lib/schemas-data/3.0/creative/preview-creative-response.json +12 -12
  331. package/dist/lib/schemas-data/3.0/creative/preview-render.json +1 -1
  332. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-input-required.json +3 -3
  333. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-submitted.json +3 -3
  334. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-working.json +3 -3
  335. package/dist/lib/schemas-data/3.0/creative/sync-creatives-request.json +7 -7
  336. package/dist/lib/schemas-data/3.0/creative/sync-creatives-response.json +13 -13
  337. package/dist/lib/schemas-data/3.0/enums/account-scope.json +1 -1
  338. package/dist/lib/schemas-data/3.0/enums/account-status.json +1 -1
  339. package/dist/lib/schemas-data/3.0/enums/action-source.json +1 -1
  340. package/dist/lib/schemas-data/3.0/enums/adcp-protocol.json +1 -1
  341. package/dist/lib/schemas-data/3.0/enums/adjustment-kind.json +1 -1
  342. package/dist/lib/schemas-data/3.0/enums/advertiser-industry.json +1 -1
  343. package/dist/lib/schemas-data/3.0/enums/age-verification-method.json +1 -1
  344. package/dist/lib/schemas-data/3.0/enums/assessment-status.json +1 -1
  345. package/dist/lib/schemas-data/3.0/enums/asset-content-type.json +1 -1
  346. package/dist/lib/schemas-data/3.0/enums/attribution-model.json +1 -1
  347. package/dist/lib/schemas-data/3.0/enums/audience-source.json +1 -1
  348. package/dist/lib/schemas-data/3.0/enums/audience-status.json +1 -1
  349. package/dist/lib/schemas-data/3.0/enums/audio-channel-layout.json +1 -1
  350. package/dist/lib/schemas-data/3.0/enums/auth-scheme.json +1 -1
  351. package/dist/lib/schemas-data/3.0/enums/available-metric.json +1 -1
  352. package/dist/lib/schemas-data/3.0/enums/billing-party.json +1 -1
  353. package/dist/lib/schemas-data/3.0/enums/binary-verdict.json +1 -1
  354. package/dist/lib/schemas-data/3.0/enums/brand-agent-type.json +1 -1
  355. package/dist/lib/schemas-data/3.0/enums/canceled-by.json +1 -1
  356. package/dist/lib/schemas-data/3.0/enums/catalog-action.json +1 -1
  357. package/dist/lib/schemas-data/3.0/enums/catalog-item-status.json +1 -1
  358. package/dist/lib/schemas-data/3.0/enums/catalog-type.json +1 -1
  359. package/dist/lib/schemas-data/3.0/enums/channels.json +1 -1
  360. package/dist/lib/schemas-data/3.0/enums/cloud-storage-protocol.json +1 -1
  361. package/dist/lib/schemas-data/3.0/enums/co-branding-requirement.json +1 -1
  362. package/dist/lib/schemas-data/3.0/enums/collection-cadence.json +1 -1
  363. package/dist/lib/schemas-data/3.0/enums/collection-kind.json +1 -1
  364. package/dist/lib/schemas-data/3.0/enums/collection-relationship.json +1 -1
  365. package/dist/lib/schemas-data/3.0/enums/collection-status.json +1 -1
  366. package/dist/lib/schemas-data/3.0/enums/consent-basis.json +1 -1
  367. package/dist/lib/schemas-data/3.0/enums/content-id-type.json +1 -1
  368. package/dist/lib/schemas-data/3.0/enums/content-rating-system.json +1 -1
  369. package/dist/lib/schemas-data/3.0/enums/creative-action.json +1 -1
  370. package/dist/lib/schemas-data/3.0/enums/creative-agent-capability.json +1 -1
  371. package/dist/lib/schemas-data/3.0/enums/creative-approval-status.json +1 -1
  372. package/dist/lib/schemas-data/3.0/enums/creative-identifier-type.json +1 -1
  373. package/dist/lib/schemas-data/3.0/enums/creative-quality.json +1 -1
  374. package/dist/lib/schemas-data/3.0/enums/creative-sort-field.json +1 -1
  375. package/dist/lib/schemas-data/3.0/enums/creative-status.json +1 -1
  376. package/dist/lib/schemas-data/3.0/enums/daast-tracking-event.json +1 -1
  377. package/dist/lib/schemas-data/3.0/enums/daast-version.json +1 -1
  378. package/dist/lib/schemas-data/3.0/enums/day-of-week.json +1 -1
  379. package/dist/lib/schemas-data/3.0/enums/delegation-authority.json +1 -1
  380. package/dist/lib/schemas-data/3.0/enums/delivery-type.json +1 -1
  381. package/dist/lib/schemas-data/3.0/enums/demographic-system.json +1 -1
  382. package/dist/lib/schemas-data/3.0/enums/derivative-type.json +1 -1
  383. package/dist/lib/schemas-data/3.0/enums/device-platform.json +1 -1
  384. package/dist/lib/schemas-data/3.0/enums/device-type.json +1 -1
  385. package/dist/lib/schemas-data/3.0/enums/digital-source-type.json +1 -1
  386. package/dist/lib/schemas-data/3.0/enums/dimension-unit.json +1 -1
  387. package/dist/lib/schemas-data/3.0/enums/disclosure-persistence.json +1 -1
  388. package/dist/lib/schemas-data/3.0/enums/disclosure-position.json +1 -1
  389. package/dist/lib/schemas-data/3.0/enums/distance-unit.json +1 -1
  390. package/dist/lib/schemas-data/3.0/enums/distribution-identifier-type.json +1 -1
  391. package/dist/lib/schemas-data/3.0/enums/error-code.json +3 -3
  392. package/dist/lib/schemas-data/3.0/enums/escalation-severity.json +1 -1
  393. package/dist/lib/schemas-data/3.0/enums/event-type.json +1 -1
  394. package/dist/lib/schemas-data/3.0/enums/exclusivity.json +1 -1
  395. package/dist/lib/schemas-data/3.0/enums/feature-check-status.json +1 -1
  396. package/dist/lib/schemas-data/3.0/enums/feed-format.json +1 -1
  397. package/dist/lib/schemas-data/3.0/enums/feedback-source.json +1 -1
  398. package/dist/lib/schemas-data/3.0/enums/forecast-method.json +1 -1
  399. package/dist/lib/schemas-data/3.0/enums/forecast-range-unit.json +1 -1
  400. package/dist/lib/schemas-data/3.0/enums/forecastable-metric.json +1 -1
  401. package/dist/lib/schemas-data/3.0/enums/format-id-parameter.json +1 -1
  402. package/dist/lib/schemas-data/3.0/enums/frame-rate-type.json +1 -1
  403. package/dist/lib/schemas-data/3.0/enums/frequency-cap-scope.json +1 -1
  404. package/dist/lib/schemas-data/3.0/enums/genre-taxonomy.json +1 -1
  405. package/dist/lib/schemas-data/3.0/enums/geo-level.json +1 -1
  406. package/dist/lib/schemas-data/3.0/enums/gop-type.json +1 -1
  407. package/dist/lib/schemas-data/3.0/enums/governance-decision.json +1 -1
  408. package/dist/lib/schemas-data/3.0/enums/governance-domain.json +1 -1
  409. package/dist/lib/schemas-data/3.0/enums/governance-mode.json +1 -1
  410. package/dist/lib/schemas-data/3.0/enums/governance-phase.json +1 -1
  411. package/dist/lib/schemas-data/3.0/enums/history-entry-type.json +1 -1
  412. package/dist/lib/schemas-data/3.0/enums/http-method.json +1 -1
  413. package/dist/lib/schemas-data/3.0/enums/identifier-types.json +1 -1
  414. package/dist/lib/schemas-data/3.0/enums/installment-status.json +1 -1
  415. package/dist/lib/schemas-data/3.0/enums/javascript-module-type.json +1 -1
  416. package/dist/lib/schemas-data/3.0/enums/landing-page-requirement.json +1 -1
  417. package/dist/lib/schemas-data/3.0/enums/makegood-remedy.json +1 -1
  418. package/dist/lib/schemas-data/3.0/enums/markdown-flavor.json +1 -1
  419. package/dist/lib/schemas-data/3.0/enums/match-id-type.json +1 -1
  420. package/dist/lib/schemas-data/3.0/enums/match-type.json +1 -1
  421. package/dist/lib/schemas-data/3.0/enums/media-buy-status.json +1 -1
  422. package/dist/lib/schemas-data/3.0/enums/media-buy-valid-action.json +1 -1
  423. package/dist/lib/schemas-data/3.0/enums/metric-type.json +1 -1
  424. package/dist/lib/schemas-data/3.0/enums/metro-system.json +1 -1
  425. package/dist/lib/schemas-data/3.0/enums/moov-atom-position.json +1 -1
  426. package/dist/lib/schemas-data/3.0/enums/notification-type.json +1 -1
  427. package/dist/lib/schemas-data/3.0/enums/outcome-type.json +1 -1
  428. package/dist/lib/schemas-data/3.0/enums/pacing.json +1 -1
  429. package/dist/lib/schemas-data/3.0/enums/payment-terms.json +1 -1
  430. package/dist/lib/schemas-data/3.0/enums/performance-standard-metric.json +1 -1
  431. package/dist/lib/schemas-data/3.0/enums/policy-category.json +1 -1
  432. package/dist/lib/schemas-data/3.0/enums/policy-enforcement.json +1 -1
  433. package/dist/lib/schemas-data/3.0/enums/postal-system.json +1 -1
  434. package/dist/lib/schemas-data/3.0/enums/preview-output-format.json +1 -1
  435. package/dist/lib/schemas-data/3.0/enums/pricing-model.json +1 -1
  436. package/dist/lib/schemas-data/3.0/enums/production-quality.json +1 -1
  437. package/dist/lib/schemas-data/3.0/enums/property-type.json +1 -1
  438. package/dist/lib/schemas-data/3.0/enums/proposal-status.json +1 -1
  439. package/dist/lib/schemas-data/3.0/enums/publisher-identifier-types.json +1 -1
  440. package/dist/lib/schemas-data/3.0/enums/purchase-type.json +1 -1
  441. package/dist/lib/schemas-data/3.0/enums/reach-unit.json +1 -1
  442. package/dist/lib/schemas-data/3.0/enums/reporting-frequency.json +1 -1
  443. package/dist/lib/schemas-data/3.0/enums/response-type.json +1 -1
  444. package/dist/lib/schemas-data/3.0/enums/restricted-attribute.json +1 -1
  445. package/dist/lib/schemas-data/3.0/enums/right-type.json +1 -1
  446. package/dist/lib/schemas-data/3.0/enums/right-use.json +1 -1
  447. package/dist/lib/schemas-data/3.0/enums/rights-billing-period.json +1 -1
  448. package/dist/lib/schemas-data/3.0/enums/scan-type.json +1 -1
  449. package/dist/lib/schemas-data/3.0/enums/si-session-status.json +1 -1
  450. package/dist/lib/schemas-data/3.0/enums/signal-catalog-type.json +1 -1
  451. package/dist/lib/schemas-data/3.0/enums/signal-source.json +1 -1
  452. package/dist/lib/schemas-data/3.0/enums/signal-value-type.json +1 -1
  453. package/dist/lib/schemas-data/3.0/enums/snapshot-unavailable-reason.json +1 -1
  454. package/dist/lib/schemas-data/3.0/enums/sort-direction.json +1 -1
  455. package/dist/lib/schemas-data/3.0/enums/sort-metric.json +1 -1
  456. package/dist/lib/schemas-data/3.0/enums/special-category.json +1 -1
  457. package/dist/lib/schemas-data/3.0/enums/specialism.json +1 -1
  458. package/dist/lib/schemas-data/3.0/enums/talent-role.json +1 -1
  459. package/dist/lib/schemas-data/3.0/enums/task-status.json +1 -1
  460. package/dist/lib/schemas-data/3.0/enums/task-type.json +1 -1
  461. package/dist/lib/schemas-data/3.0/enums/transport-mode.json +1 -1
  462. package/dist/lib/schemas-data/3.0/enums/travel-time-unit.json +1 -1
  463. package/dist/lib/schemas-data/3.0/enums/uid-type.json +1 -1
  464. package/dist/lib/schemas-data/3.0/enums/universal-macro.json +1 -1
  465. package/dist/lib/schemas-data/3.0/enums/update-frequency.json +1 -1
  466. package/dist/lib/schemas-data/3.0/enums/url-asset-type.json +1 -1
  467. package/dist/lib/schemas-data/3.0/enums/validation-mode.json +1 -1
  468. package/dist/lib/schemas-data/3.0/enums/vast-tracking-event.json +1 -1
  469. package/dist/lib/schemas-data/3.0/enums/vast-version.json +1 -1
  470. package/dist/lib/schemas-data/3.0/enums/viewability-standard.json +1 -1
  471. package/dist/lib/schemas-data/3.0/enums/wcag-level.json +1 -1
  472. package/dist/lib/schemas-data/3.0/enums/webhook-response-type.json +1 -1
  473. package/dist/lib/schemas-data/3.0/enums/webhook-security-method.json +1 -1
  474. package/dist/lib/schemas-data/3.0/error-details/account-setup-required.json +1 -1
  475. package/dist/lib/schemas-data/3.0/error-details/audience-too-small.json +1 -1
  476. package/dist/lib/schemas-data/3.0/error-details/budget-too-low.json +1 -1
  477. package/dist/lib/schemas-data/3.0/error-details/conflict.json +1 -1
  478. package/dist/lib/schemas-data/3.0/error-details/creative-rejected.json +1 -1
  479. package/dist/lib/schemas-data/3.0/error-details/policy-violation.json +1 -1
  480. package/dist/lib/schemas-data/3.0/error-details/rate-limited.json +1 -1
  481. package/dist/lib/schemas-data/3.0/error-details/vendor-error-codes.json +1 -1
  482. package/dist/lib/schemas-data/3.0/extensions/extension-meta.json +1 -1
  483. package/dist/lib/schemas-data/3.0/extensions/index.json +2 -2
  484. package/dist/lib/schemas-data/3.0/governance/attribute-definition.json +1 -1
  485. package/dist/lib/schemas-data/3.0/governance/audience-constraints.json +3 -3
  486. package/dist/lib/schemas-data/3.0/governance/check-governance-request.json +7 -7
  487. package/dist/lib/schemas-data/3.0/governance/check-governance-response.json +6 -6
  488. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-request.json +4 -4
  489. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-response.json +9 -9
  490. package/dist/lib/schemas-data/3.0/governance/policy-category-definition.json +2 -2
  491. package/dist/lib/schemas-data/3.0/governance/policy-entry.json +6 -6
  492. package/dist/lib/schemas-data/3.0/governance/policy-ref.json +1 -1
  493. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-request.json +6 -6
  494. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-response.json +4 -4
  495. package/dist/lib/schemas-data/3.0/governance/sync-plans-request.json +13 -13
  496. package/dist/lib/schemas-data/3.0/governance/sync-plans-response.json +4 -4
  497. package/dist/lib/schemas-data/3.0/index.json +364 -364
  498. package/dist/lib/schemas-data/3.0/manifest.json +5 -5
  499. package/dist/lib/schemas-data/3.0/manifest.schema.json +1 -1
  500. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-input-required.json +4 -4
  501. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-submitted.json +3 -3
  502. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-working.json +3 -3
  503. package/dist/lib/schemas-data/3.0/media-buy/build-creative-request.json +11 -11
  504. package/dist/lib/schemas-data/3.0/media-buy/build-creative-response.json +17 -17
  505. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-input-required.json +4 -4
  506. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-submitted.json +3 -3
  507. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-working.json +3 -3
  508. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-request.json +12 -12
  509. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-response.json +15 -15
  510. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-request.json +17 -17
  511. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-response.json +24 -24
  512. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-request.json +7 -7
  513. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-response.json +19 -19
  514. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-input-required.json +4 -4
  515. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-submitted.json +3 -3
  516. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-working.json +3 -3
  517. package/dist/lib/schemas-data/3.0/media-buy/get-products-request.json +11 -11
  518. package/dist/lib/schemas-data/3.0/media-buy/get-products-response.json +8 -8
  519. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-request.json +11 -11
  520. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-response.json +7 -7
  521. package/dist/lib/schemas-data/3.0/media-buy/log-event-request.json +4 -4
  522. package/dist/lib/schemas-data/3.0/media-buy/log-event-response.json +6 -6
  523. package/dist/lib/schemas-data/3.0/media-buy/package-request.json +12 -12
  524. package/dist/lib/schemas-data/3.0/media-buy/package-update.json +13 -13
  525. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-request.json +6 -6
  526. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-response.json +6 -6
  527. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-request.json +7 -7
  528. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-response.json +9 -9
  529. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  530. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-submitted.json +3 -3
  531. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-working.json +3 -3
  532. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-request.json +7 -7
  533. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-response.json +9 -9
  534. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-request.json +5 -5
  535. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-response.json +10 -10
  536. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-input-required.json +3 -3
  537. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-submitted.json +3 -3
  538. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-working.json +3 -3
  539. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-request.json +10 -10
  540. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-response.json +10 -10
  541. package/dist/lib/schemas-data/3.0/pricing-options/cpa-option.json +4 -4
  542. package/dist/lib/schemas-data/3.0/pricing-options/cpc-option.json +4 -4
  543. package/dist/lib/schemas-data/3.0/pricing-options/cpcv-option.json +4 -4
  544. package/dist/lib/schemas-data/3.0/pricing-options/cpm-option.json +4 -4
  545. package/dist/lib/schemas-data/3.0/pricing-options/cpp-option.json +5 -5
  546. package/dist/lib/schemas-data/3.0/pricing-options/cpv-option.json +4 -4
  547. package/dist/lib/schemas-data/3.0/pricing-options/flat-rate-option.json +4 -4
  548. package/dist/lib/schemas-data/3.0/pricing-options/price-breakdown.json +2 -2
  549. package/dist/lib/schemas-data/3.0/pricing-options/price-guidance.json +1 -1
  550. package/dist/lib/schemas-data/3.0/pricing-options/time-option.json +4 -4
  551. package/dist/lib/schemas-data/3.0/pricing-options/vcpm-option.json +4 -4
  552. package/dist/lib/schemas-data/3.0/property/authorization-result.json +1 -1
  553. package/dist/lib/schemas-data/3.0/property/base-property-source.json +4 -4
  554. package/dist/lib/schemas-data/3.0/property/create-property-list-request.json +7 -7
  555. package/dist/lib/schemas-data/3.0/property/create-property-list-response.json +4 -4
  556. package/dist/lib/schemas-data/3.0/property/delete-property-list-request.json +4 -4
  557. package/dist/lib/schemas-data/3.0/property/delete-property-list-response.json +3 -3
  558. package/dist/lib/schemas-data/3.0/property/delivery-record.json +3 -3
  559. package/dist/lib/schemas-data/3.0/property/get-property-list-request.json +4 -4
  560. package/dist/lib/schemas-data/3.0/property/get-property-list-response.json +7 -7
  561. package/dist/lib/schemas-data/3.0/property/list-property-lists-request.json +5 -5
  562. package/dist/lib/schemas-data/3.0/property/list-property-lists-response.json +5 -5
  563. package/dist/lib/schemas-data/3.0/property/property-error.json +2 -2
  564. package/dist/lib/schemas-data/3.0/property/property-feature-definition.json +2 -2
  565. package/dist/lib/schemas-data/3.0/property/property-feature-result.json +4 -4
  566. package/dist/lib/schemas-data/3.0/property/property-feature-value.json +2 -2
  567. package/dist/lib/schemas-data/3.0/property/property-feature.json +1 -1
  568. package/dist/lib/schemas-data/3.0/property/property-list-changed-webhook.json +2 -2
  569. package/dist/lib/schemas-data/3.0/property/property-list-filters.json +5 -5
  570. package/dist/lib/schemas-data/3.0/property/property-list.json +6 -6
  571. package/dist/lib/schemas-data/3.0/property/update-property-list-request.json +7 -7
  572. package/dist/lib/schemas-data/3.0/property/update-property-list-response.json +4 -4
  573. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-request.json +5 -5
  574. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-response.json +4 -4
  575. package/dist/lib/schemas-data/3.0/property/validation-result.json +5 -5
  576. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-request.json +3 -3
  577. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-response.json +25 -25
  578. package/dist/lib/schemas-data/3.0/signals/activate-signal-request.json +5 -5
  579. package/dist/lib/schemas-data/3.0/signals/activate-signal-response.json +7 -7
  580. package/dist/lib/schemas-data/3.0/signals/get-signals-request.json +8 -8
  581. package/dist/lib/schemas-data/3.0/signals/get-signals-response.json +10 -10
  582. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-capabilities.json +1 -1
  583. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-request.json +3 -3
  584. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-response.json +4 -4
  585. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-identity.json +1 -1
  586. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-request.json +5 -5
  587. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-response.json +7 -7
  588. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-request.json +3 -3
  589. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-response.json +7 -7
  590. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-request.json +3 -3
  591. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-response.json +5 -5
  592. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-ui-element.json +1 -1
  593. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  594. package/dist/lib/server/decisioning/account.d.ts +14 -0
  595. package/dist/lib/server/decisioning/account.d.ts.map +1 -1
  596. package/dist/lib/server/decisioning/account.js.map +1 -1
  597. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js +1 -1
  598. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  599. package/dist/lib/server/decisioning/runtime/from-platform.js +36 -11
  600. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  601. package/dist/lib/server/index.d.ts +1 -0
  602. package/dist/lib/server/index.d.ts.map +1 -1
  603. package/dist/lib/server/index.js +7 -1
  604. package/dist/lib/server/index.js.map +1 -1
  605. package/dist/lib/server/socket-mode/conformance-client.d.ts +83 -0
  606. package/dist/lib/server/socket-mode/conformance-client.d.ts.map +1 -0
  607. package/dist/lib/server/socket-mode/conformance-client.js +117 -0
  608. package/dist/lib/server/socket-mode/conformance-client.js.map +1 -0
  609. package/dist/lib/server/socket-mode/index.d.ts +15 -0
  610. package/dist/lib/server/socket-mode/index.d.ts.map +1 -0
  611. package/dist/lib/server/socket-mode/index.js +20 -0
  612. package/dist/lib/server/socket-mode/index.js.map +1 -0
  613. package/dist/lib/server/socket-mode/ws-transport.d.ts +26 -0
  614. package/dist/lib/server/socket-mode/ws-transport.d.ts.map +1 -0
  615. package/dist/lib/server/socket-mode/ws-transport.js +93 -0
  616. package/dist/lib/server/socket-mode/ws-transport.js.map +1 -0
  617. package/dist/lib/testing/comply-controller.d.ts +42 -1
  618. package/dist/lib/testing/comply-controller.d.ts.map +1 -1
  619. package/dist/lib/testing/comply-controller.js +13 -1
  620. package/dist/lib/testing/comply-controller.js.map +1 -1
  621. package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -1
  622. package/dist/lib/testing/storyboard/request-builder.js +63 -40
  623. package/dist/lib/testing/storyboard/request-builder.js.map +1 -1
  624. package/dist/lib/types/core.generated.d.ts +54 -14
  625. package/dist/lib/types/core.generated.d.ts.map +1 -1
  626. package/dist/lib/types/core.generated.js +2 -2
  627. package/dist/lib/types/error-codes.d.ts +2 -2
  628. package/dist/lib/types/index.d.ts +1 -1
  629. package/dist/lib/types/index.d.ts.map +1 -1
  630. package/dist/lib/types/index.js.map +1 -1
  631. package/dist/lib/types/manifest.generated.d.ts +5 -5
  632. package/dist/lib/types/manifest.generated.js +3 -3
  633. package/dist/lib/types/manifest.generated.js.map +1 -1
  634. package/dist/lib/types/schemas.generated.d.ts +465 -381
  635. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  636. package/dist/lib/types/schemas.generated.js +171 -143
  637. package/dist/lib/types/schemas.generated.js.map +1 -1
  638. package/dist/lib/types/tools.generated.d.ts +42 -14
  639. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  640. package/dist/lib/version.d.ts +7 -7
  641. package/dist/lib/version.d.ts.map +1 -1
  642. package/dist/lib/version.js +6 -5
  643. package/dist/lib/version.js.map +1 -1
  644. package/docs/llms.txt +4 -3
  645. package/examples/hello_creative_adapter_ad_server.ts +22 -3
  646. package/examples/hello_creative_adapter_template.ts +61 -6
  647. package/examples/hello_seller_adapter_guaranteed.ts +85 -10
  648. package/examples/hello_seller_adapter_multi_tenant.ts +39 -5
  649. package/examples/hello_seller_adapter_non_guaranteed.ts +54 -3
  650. package/examples/hello_seller_adapter_social.ts +1 -1
  651. package/examples/hello_signals_adapter_marketplace.ts +34 -29
  652. package/package.json +5 -4
  653. package/skills/SHAPE-GOTCHAS.md +18 -0
  654. package/skills/build-brand-rights-agent/SKILL.md +61 -597
  655. package/skills/build-creative-agent/SKILL.md +69 -750
  656. package/skills/build-generative-seller-agent/SKILL.md +43 -583
  657. package/skills/build-governance-agent/SKILL.md +63 -959
  658. package/skills/build-holdco-agent/SKILL.md +8 -0
  659. package/skills/build-retail-media-agent/SKILL.md +46 -480
  660. package/skills/build-seller-agent/SKILL.md +53 -1797
  661. package/skills/build-si-agent/SKILL.md +50 -368
  662. package/skills/build-signals-agent/SKILL.md +49 -539
  663. package/skills/cross-cutting.md +84 -0
  664. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/brand/index.yaml +0 -0
  665. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/creative/index.yaml +0 -0
  666. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/governance/index.yaml +0 -0
  667. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/creative-reception.yaml +0 -0
  668. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/index.yaml +0 -0
  669. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  670. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  671. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  672. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
  673. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
  674. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
  675. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  676. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
  677. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  678. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  679. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  680. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  681. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  682. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/media-buy/state-machine.yaml +0 -0
  683. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/signals/index.yaml +0 -0
  684. /package/compliance/cache/{3.0.5 → 3.0.6}/domains/sponsored-intelligence/index.yaml +0 -0
  685. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/brand/index.yaml +0 -0
  686. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/creative/index.yaml +0 -0
  687. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/governance/index.yaml +0 -0
  688. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/creative-reception.yaml +0 -0
  689. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/index.yaml +0 -0
  690. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  691. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  692. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  693. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
  694. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
  695. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
  696. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  697. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
  698. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  699. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  700. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  701. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  702. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  703. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/media-buy/state-machine.yaml +0 -0
  704. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/signals/index.yaml +0 -0
  705. /package/compliance/cache/{3.0.5 → 3.0.6}/protocols/sponsored-intelligence/index.yaml +0 -0
  706. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/audience-sync/index.yaml +0 -0
  707. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/brand-rights/index.yaml +0 -0
  708. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  709. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/collection-lists/index.yaml +0 -0
  710. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/content-standards/index.yaml +0 -0
  711. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-ad-server/index.yaml +0 -0
  712. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-generative/generative-seller.yaml +0 -0
  713. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-generative/index.yaml +0 -0
  714. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/creative-template/index.yaml +0 -0
  715. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-aware-seller/index.yaml +0 -0
  716. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  717. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-spend-authority/denied.yaml +0 -0
  718. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/governance-spend-authority/index.yaml +0 -0
  719. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/property-lists/index.yaml +0 -0
  720. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  721. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-catalog-driven/index.yaml +0 -0
  722. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  723. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-proposal-mode/index.yaml +0 -0
  724. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/sales-social/index.yaml +0 -0
  725. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-marketplace/index.yaml +0 -0
  726. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  727. /package/compliance/cache/{3.0.5 → 3.0.6}/specialisms/signal-owned/index.yaml +0 -0
  728. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/acme-outdoor.yaml +0 -0
  729. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/bistro-oranje.yaml +0 -0
  730. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/nova-motors.yaml +0 -0
  731. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/osei-natural.yaml +0 -0
  732. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/signed-requests-runner.yaml +0 -0
  733. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/substitution-observer-runner.yaml +0 -0
  734. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/summit-foods.yaml +0 -0
  735. /package/compliance/cache/{3.0.5 → 3.0.6}/test-kits/webhook-receiver-runner.yaml +0 -0
  736. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  737. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/002-full-plan.json +0 -0
  738. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  739. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  740. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  741. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  742. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  743. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  744. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  745. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  746. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  747. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/README.md +0 -0
  748. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/canonicalization.json +0 -0
  749. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/keys.json +0 -0
  750. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  751. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  752. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  753. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  754. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  755. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  756. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  757. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  758. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  759. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  760. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  761. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  762. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  763. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  764. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  765. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  766. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  767. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  768. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  769. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  770. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  771. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  772. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  773. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  774. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  775. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  776. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  777. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  778. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  779. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  780. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  781. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  782. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  783. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  784. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  785. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  786. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  787. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  788. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  789. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/README.md +0 -0
  790. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/keys.json +0 -0
  791. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  792. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  793. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  794. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  795. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  796. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  797. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  798. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  799. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  800. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  801. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  802. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  803. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  804. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  805. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  806. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  807. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  808. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  809. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  810. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  811. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  812. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  813. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  814. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  815. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  816. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  817. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  818. /package/compliance/cache/{3.0.5 → 3.0.6}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  819. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/capability-discovery.yaml +0 -0
  820. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/collection-lists-pagination-integrity.yaml +0 -0
  821. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/content-standards-pagination-integrity.yaml +0 -0
  822. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/deterministic-testing.yaml +0 -0
  823. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/error-compliance.yaml +0 -0
  824. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/fictional-entities.yaml +0 -0
  825. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  826. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/get-signals-pagination-integrity.yaml +0 -0
  827. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/idempotency.yaml +0 -0
  828. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity-creative-formats.yaml +0 -0
  829. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity-list-accounts.yaml +0 -0
  830. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/pagination-integrity.yaml +0 -0
  831. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/property-lists-pagination-integrity.yaml +0 -0
  832. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/runner-output-contract.yaml +0 -0
  833. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/schema-validation.yaml +0 -0
  834. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/security.yaml +0 -0
  835. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/signed-requests.yaml +0 -0
  836. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/v3-envelope-integrity.yaml +0 -0
  837. /package/compliance/cache/{3.0.5 → 3.0.6}/universal/webhook-emission.yaml +0 -0
@@ -1,578 +1,88 @@
1
1
  ---
2
2
  name: build-signals-agent
3
- description: Use when building an AdCP signals agent, creating an audience data server, or standing up a data provider agent that serves targeting segments to buyers.
3
+ description: Use when building an AdCP signals agent a marketplace data provider, identity provider, CDP, or any system that serves audience or contextual signals to buyers.
4
4
  ---
5
5
 
6
6
  # Build a Signals Agent
7
7
 
8
- ## Overview
8
+ A signals agent serves audience and contextual targeting segments to buyer agents. The fastest path to a passing agent is to **fork the worked adapter** and replace its `// SWAP:` markers with calls to your backend.
9
9
 
10
- A signals agent serves audience segments to buyers for campaign targeting. Two tools: `get_signals` (discovery) and `activate_signal` (push to DSPs or sales agents). The business model — marketplace vs owned data — shapes every implementation decision. Determine that first.
10
+ ## Pick your fork target
11
11
 
12
- > **Common shape gotchas:** `signal_ids[]` in `get_signals` is `signal_id[]` (provenance objects with `source`/`data_provider_domain`/`id`), not bare strings. `activate_signal` returns deployments with `ActivationKey` `oneOf` — for `type: 'key_value'` the `key` and `value` fields sit at the TOP level of `activation_key`, NOT nested under a `key_value` sub-field. See [SHAPE-GOTCHAS.md](../SHAPE-GOTCHAS.md) for the patterns adopters consistently get wrong on first pass.
12
+ | Specialism | Archetype | Fork this | Mock upstream | Storyboard |
13
+ | --- | --- | --- | --- | --- |
14
+ | `signal-marketplace` | Multi-provider data marketplace (Oracle Data Cloud, LiveRamp, third-party data) | [`hello_signals_adapter_marketplace.ts`](../../examples/hello_signals_adapter_marketplace.ts) | `npx adcp mock-server signal-marketplace` | `signal_marketplace` |
15
+ | `signal-owned` | First-party / single-provider data (CDP, identity provider, contextual) | Fork the marketplace adapter; see [deletion list below](#what-to-delete-if-youre-single-specialism-signal-owned) | — | `signal_owned` |
13
16
 
14
- ## When to Use
17
+ Both specialisms share the same tool surface (`get_signals`, `activate_signal`, `list_accounts`); the difference is whether you serve segments from multiple `data_provider_domain` values or one. A `signal-owned` adapter is the marketplace adapter with the multi-provider directory simplified to a single seed.
15
18
 
16
- - User wants to build an agent that serves audience/targeting data
17
- - User mentions signals, segments, audiences, data provider, or CDP in the context of AdCP
18
- - User references `get_signals`, `activate_signal`, or the signals protocol
19
+ ### What to delete if you're single-specialism `signal-owned`
19
20
 
20
- **Not this skill:**
21
-
22
- - Selling ad inventory (products, packages, media buys) → `skills/build-seller-agent/`
23
- - Rendering creatives from briefs → that's a creative agent
24
- - Building a client that _calls_ a signals agent → see `docs/getting-started.md`
25
-
26
- **Often claimed alongside:** [`sales-social`](../build-seller-agent/SKILL.md) (walled-garden audience push), [`sales-non-guaranteed`](../build-seller-agent/SKILL.md) (DSP data marketplace as a side surface), [`audience-sync`](../build-seller-agent/SKILL.md) (identity-provider owned-graph activation). See [Common multi-specialism bundles](../../examples/README.md#common-multi-specialism-bundles).
27
-
28
- ## Specialisms This Skill Covers
29
-
30
- | Specialism | Status | Delta | See |
31
- | -------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
32
- | `signal-marketplace` | stable | `signal_id.source: 'catalog'` + resolvable `data_provider_domain`; span ≥2 providers in demos; platform activations are **async** (`is_live: false` → poll to live) | [§ signal-marketplace](#specialism-signal-marketplace) |
33
- | `signal-owned` | stable | `signal_id.source: 'agent'` + your `agent_url`; `value_type` constraints (`allowed_values` for categorical, `min`/`max` for numeric); `deployed_at` on deployments | [§ signal-owned](#specialism-signal-owned) |
34
-
35
- ## Protocol-Wide Requirements
36
-
37
- Full treatment lives in `skills/build-seller-agent/SKILL.md` §Protocol-Wide Requirements and §Composing. Minimum viable pointers for a signals agent:
38
-
39
- - **`idempotency_key`** on every mutating request (`activate_signal`, and any future mutating signals tools). Pass `createIdempotencyStore` to `createAdcpServerFromPlatform(platform, { idempotency })`.
40
- - **Authentication** via `serve({ authenticate })` with `verifyApiKey`/`verifyBearer` from `@adcp/sdk/server`. Unauthenticated agents fail the universal `security_baseline` storyboard.
41
- - **Signature-header transparency**: accept requests with `Signature-Input`/`Signature` headers even if you don't claim `signed-requests`.
42
-
43
- ## Before Writing Code
44
-
45
- Determine these four things. Ask the user — don't guess.
46
-
47
- ### 1. Marketplace or Owned?
48
-
49
- These are fundamentally different businesses.
50
-
51
- **Marketplace** — aggregates third-party data providers (LiveRamp, Oracle Data Cloud, Lotame). Each signal traces to a `data_provider_domain` that buyers can verify via `adagents.json`. `signal_type: "marketplace"`, `signal_id.source: "catalog"`.
52
-
53
- **Owned** — first-party data (retailer CDP, publisher contextual, CRM). Buyers trust your agent directly. `signal_type: "owned"` or `"custom"`, `signal_id.source: "agent"`.
54
-
55
- ### 2. What Segments?
56
-
57
- Get specifics: names, definitions, what each represents. Push for 3-5 segments with variety. Each needs:
21
+ **Forking the marketplace adapter for a `signal-owned` agent? Delete or replace these seams** — leaning on stable symbol names rather than line numbers (the adapter evolves; greppable identifiers don't):
58
22
 
59
- - Clear behavioral/demographic definition
60
- - Realistic `coverage_percentage` (typically 5-30%)
61
- - Value type: `binary` (in/out), `categorical` (tier levels define the categories), or `numeric` (score range — define min/max)
23
+ - Replace the multi-provider seed (the `UpstreamCohort` array seeded with multiple `data_provider_domain` / `data_provider_id` / `data_provider_name` triples) with your single-provider catalog. Every cohort gets the same `data_provider_domain` (your domain) and `data_provider_name` (your brand).
24
+ - Strip the marketplace-discovery code paths in `getSignals` that filter `signals[]` by `(data_provider_domain, data_provider_id)` pairs — single-provider adopters either return everything or filter on signal id alone.
25
+ - Set `signal_type: 'owned'` (not `'marketplace'`) in the `toAdcpSignal` projection. See [SHAPE-GOTCHAS §7](../SHAPE-GOTCHAS.md#7-signal_type-marketplace-vs-owned-vs-custom) for the `marketplace`/`owned`/`custom` decision table.
26
+ - Drop the marketplace governance sub-scenario in your storyboard run if you don't model multi-provider consent flows — `signal_owned` storyboard is simpler.
62
27
 
63
- ### 3. Pricing
28
+ **Keep**: the `accounts` / `createTenantStore` block (single-tenant adapters pass one tenant entry), `agentRegistry`, the `signals` SignalsPlatform block (`getSignals`, `activateSignal`, `listAccounts`), platform vs agent activation polling logic, `forceDeploymentStatus` for compliance-test determinism.
64
29
 
65
- At least one pricing option per signal. Signals use `VendorPricingOption` (field: `model`), distinct from product `PricingOption` (field: `pricing_model`).
30
+ 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.
66
31
 
67
- - `cpm` `{ pricing_option_id: "po_cpm", model: "cpm", cpm: 2.50, currency: "USD" }`
68
- - `percent_of_media` — `{ pricing_option_id: "po_pom", model: "percent_of_media", percent: 15, currency: "USD" }`
69
- - `flat_fee` — `{ pricing_option_id: "po_flat", model: "flat_fee", amount: 5000, period: "monthly", currency: "USD" }`
32
+ ## When to use this skill
70
33
 
71
- ### 4. Activation Destinations
34
+ - User wants to serve audience segments, identity data, or contextual targeting to buyers
35
+ - User mentions `get_signals`, `activate_signal`, or the AdCP signals protocol
36
+ - User describes themselves as a CDP, DMP, identity provider, or data marketplace
72
37
 
73
- If implementing `activate_signal`:
74
-
75
- - **Platform** (DSP): `type: "platform"`, returns `activation_key: { type: "segment_id", segment_id: "..." }`
76
- - **Agent** (sales agent): `type: "agent"`, returns `activation_key: { type: "key_value", key: "...", value: "..." }`
77
-
78
- ## Tools and Required Response Shapes
79
-
80
- > **Before writing any handler's return statement, fetch [`docs/llms.txt`](../../docs/llms.txt) and grep for `#### \`<tool_name>\``(e.g.`#### \`get_signals\``) to read the exact required + optional field list.** The schema-derived contract lives there; this skill covers patterns, gotchas, and domain-specific examples. Strict response validation is on by default in dev — it will tell you the exact field path if you drift, so write the obvious thing and trust the contract.
81
- >
82
- > **Cross-cutting pitfalls matrix runs keep catching:**
83
- >
84
- > - **Declare `capabilities.specialisms: ['signal-marketplace'] as const` (or `'signal-owned'`) on the `DecisioningPlatform` you pass to `createAdcpServerFromPlatform`.** Value is `string[]` of enum ids (not `[{id, version}]`). Agents that don't declare their specialism fail the grader with "No applicable tracks found" even if every tool works — tracks are gated on the specialism claim.
85
-
86
- **`get_adcp_capabilities`** — auto-generated by `createAdcpServerFromPlatform` from your typed `DecisioningPlatform`. Do not register manually.
87
-
88
- **`get_signals`** — handled by `signals.getSignals`
89
-
90
- Two discovery modes — support both:
91
-
92
- 1. `signal_spec` — natural language. Match against segment names and descriptions.
93
- 2. `signal_ids` — exact lookup by `{ source, data_provider_domain, id }` or `{ source, agent_url, id }`.
94
-
95
- Plus filtering via `filters.catalog_types`, `filters.max_cpm`, `filters.min_coverage_percentage`, and `max_results`.
96
-
97
- ```
98
- getSignalsResponse({
99
- signals: [{
100
- signal_agent_segment_id: string, // required - key for activate_signal
101
- name: string, // required
102
- description: string, // required
103
- signal_type: 'marketplace' | 'owned' | 'custom', // required
104
- data_provider: string, // required - your company name
105
- coverage_percentage: number, // required - 0 to 100
106
- deployments: [], // required - empty array (not live until activated)
107
- pricing_options: [{ // required - at least one
108
- pricing_option_id: string, // required
109
- model: 'cpm', // required - discriminator
110
- cpm: number, // required for cpm model
111
- currency: 'USD', // required
112
- }],
113
- // signal_id is critical — shape depends on marketplace vs owned:
114
- signal_id: {
115
- source: 'catalog', // marketplace
116
- data_provider_domain: string, // marketplace — domain for provenance verification
117
- id: string, // unique segment ID
118
- },
119
- // OR for owned:
120
- signal_id: {
121
- source: 'agent', // owned
122
- agent_url: string, // your agent URL
123
- id: string,
124
- },
125
- value_type: 'binary' | 'categorical' | 'numeric', // optional but recommended
126
- }],
127
- sandbox: true, // for mock data
128
- })
129
- ```
130
-
131
- **`activate_signal`** — handled by `signals.activateSignal`
132
-
133
- Look up by `signal_agent_segment_id`. Validate `pricing_option_id`. Return deployments matching the requested destinations. **Platform activation is async; agent activation is sync** — different shape per destination type, driven by the compliance contract:
134
-
135
- ```
136
- activateSignalResponse({
137
- deployments: [
138
- // Platform (DSP) — ASYNC. First response returns is_live:false plus
139
- // an ETA AND the planned activation_key. Buyer re-sends activate_signal
140
- // to poll until is_live:true; final response adds deployed_at.
141
- {
142
- type: 'platform',
143
- platform: string,
144
- account: string | null, // echo from request
145
- is_live: false, // flips true on completion
146
- estimated_activation_duration_minutes: number, // present while activating
147
- activation_key: { type: 'segment_id', segment_id: string }, // committed up front
148
- deployed_at: string, // ISO; present when is_live:true
149
- },
150
- // Agent (sales-agent) — SYNC. First response is the final response.
151
- {
152
- type: 'agent',
153
- agent_url: string,
154
- is_live: true,
155
- activation_key: { type: 'key_value', key: string, value: string },
156
- deployed_at: string, // ISO timestamp
157
- },
158
- ],
159
- sandbox: true,
160
- })
161
- ```
162
-
163
- ### Context and Ext Passthrough
164
-
165
- The framework auto-echoes the request's `context` into every response — **do not set `context` yourself in your handler return values.** It's injected post-handler only when the field isn't already present.
166
-
167
- **Crucial:** `context` is schema-typed as an object. If your handler hand-sets a string or narrative description, validation fails with `/context: must be object` and the framework does not overwrite. Leave the field out entirely; the framework handles it.
168
-
169
- Some schemas also define an `ext` field for vendor-namespaced extensions. If your request schema includes `ext`, accept it without error. Tools with explicit `ext` support: `activate_signal`.
170
-
171
- ## SDK Quick Reference
172
-
173
- | SDK piece | Usage |
174
- | ----------------------------------------------------- | ------------------------------------------------------------------------------ |
175
- | `createAdcpServerFromPlatform(platform, opts)` | Create server from a typed `DecisioningPlatform` — compile-time specialism enforcement, auto-capabilities |
176
- | `createAdcpServer(config)` *(legacy)* | v5 handler-bag entry. Mid-migration / escape-hatch only; reach via `@adcp/sdk/server/legacy/v5` |
177
- | `serve(() => createAdcpServerFromPlatform(platform, opts))` | Start HTTP server on `:3001/mcp` |
178
- | `signals: { getSignals, activateSignal }` | Domain group — register handlers by name |
179
- | `ctx.store.put(collection, id, data)` | Persist state (activations, segment cache) across requests |
180
- | `ctx.store.get(collection, id)` | Retrieve persisted state |
181
- | `getSignalsResponse(data)` | Auto-applied response builder (don't call manually) |
182
- | `activateSignalResponse(data)` | Auto-applied response builder (don't call manually) |
183
- | `adcpError(code, { message })` | Structured error (`SIGNAL_NOT_FOUND`, `INVALID_DESTINATION`) |
184
- | `createIdempotencyStore({ backend, ttlSeconds })` | Required on every mutating tool — pass via `createAdcpServerFromPlatform(platform, { idempotency })` |
185
- | `memoryBackend()` / `pgBackend(pool)` | Idempotency backends (from `@adcp/sdk/server`) |
186
- | `type Signal = GetSignalsResponse['signals'][number]` | Type for a single signal object |
187
-
188
- Import: `import { createAdcpServerFromPlatform, serve, adcpError } from '@adcp/sdk/server';`
189
- Server-only: `import { createIdempotencyStore, memoryBackend } from '@adcp/sdk/server';`
190
- Types: `import type { GetSignalsResponse } from '@adcp/sdk';`
38
+ **Not this skill:**
191
39
 
192
- ## Setup
40
+ - Selling ad inventory → `skills/build-seller-agent/`
41
+ - Audience push (sync to a walled garden) → that's the `audience-sync` track in `skills/build-seller-agent/`
193
42
 
194
- ```bash
195
- npm init -y
196
- npm install @adcp/sdk
197
- npm install -D typescript @types/node
198
- ```
43
+ ## Cross-cutting rules
199
44
 
200
- Minimal `tsconfig.json`:
201
-
202
- ```json
203
- {
204
- "compilerOptions": {
205
- "target": "ES2022",
206
- "module": "Node16",
207
- "moduleResolution": "Node16",
208
- "strict": true,
209
- "skipLibCheck": true,
210
- "outDir": "dist"
211
- }
212
- }
213
- ```
45
+ Every signals agent hits the cross-cutting rules in [`../cross-cutting.md`](../cross-cutting.md). The high-traffic ones for signals (deep-linked to the rule):
214
46
 
215
- `skipLibCheck: true` avoids false-positive errors from transitive `.d.ts` files (e.g., `@opentelemetry/api`).
216
-
217
- ## Implementation
218
-
219
- 1. Single `.ts` file — all tools in one file
220
- 2. Use `createAdcpServerFromPlatform` with `signals: SignalsPlatform` on a typed `DecisioningPlatform` class — `get_adcp_capabilities` is auto-generated
221
- 3. Handlers return raw data objects — response builders (`getSignalsResponse`, `activateSignalResponse`) are auto-applied
222
- 4. Use `ctx.store` for persisting signal activations across requests (InMemoryStateStore by default)
223
- 5. Set `sandbox: true` for mock/demo data
224
- 6. Context passthrough is handled by the framework — no need to manually echo `args.context`
225
-
226
- ```typescript
227
- import {
228
- createAdcpServerFromPlatform,
229
- serve,
230
- AdcpError,
231
- createIdempotencyStore,
232
- memoryBackend,
233
- type DecisioningPlatform,
234
- type SignalsPlatform,
235
- type AccountStore,
236
- } from '@adcp/sdk/server';
237
- import type { GetSignalsResponse } from '@adcp/sdk';
238
-
239
- // Type the catalog explicitly. Each entry MUST include `signal_agent_segment_id`
240
- // — it's the key buyers pass to `activate_signal` and the field the framework
241
- // uses to auto-store the signal for hydration on the activate call. If you
242
- // omit it, `tsc` flags every entry; the response validator rejects the
243
- // `get_signals` reply at runtime in dev/test (strict mode default).
244
- type Signal = GetSignalsResponse['signals'][number];
245
- const signals: Signal[] = [
246
- /* your signal objects — `signal_agent_segment_id` is required on each */
247
- ];
248
-
249
- // Publisher-internal storage for activations. Persist to your real DB in
250
- // production; this Map is for the worked example. Note: a module-level Map
251
- // is fine for single-tenant agents but leaks across tenants in a
252
- // multi-tenant deployment — partition by `account.id` if you front many.
253
- const activations = new Map<string, { destinations: unknown[]; activated_at: string }>();
254
-
255
- // Idempotency — required for v3 compliance. `activate_signal` is mutating;
256
- // `get_signals` is read-only and exempt from key validation.
257
- const idempotency = createIdempotencyStore({
258
- backend: memoryBackend(), // pgBackend(pool) for production
259
- ttlSeconds: 86400, // 24 hours (spec bounds: 1h–7d)
260
- });
261
-
262
- class MySignals implements DecisioningPlatform {
263
- capabilities = {
264
- specialisms: ['signal-marketplace'] as const,
265
- config: {},
266
- };
267
-
268
- // Single-tenant agent: AccountStore.resolve returns the same synthetic
269
- // account every request. `upsert` and `list` are optional — omit them on
270
- // stateless platforms (the framework returns `UNSUPPORTED_FEATURE` to
271
- // buyers calling `sync_accounts` / `list_accounts`).
272
- accounts: AccountStore = {
273
- resolve: async () => ({
274
- id: 'sg_acc_1',
275
- operator: 'me',
276
- ctx_metadata: {},
277
- }),
278
- };
279
-
280
- signals: SignalsPlatform = {
281
- getSignals: async params => {
282
- let results = signals;
283
- if (params.signal_spec) {
284
- const query = params.signal_spec.toLowerCase();
285
- results = results.filter(
286
- s => s.name.toLowerCase().includes(query) || s.description.toLowerCase().includes(query)
287
- );
288
- }
289
- if (params.signal_ids) {
290
- results = results.filter(s => params.signal_ids!.some(id => id.id === s.signal_id.id));
291
- }
292
- return { signals: results, sandbox: true };
293
- },
294
-
295
- activateSignal: async params => {
296
- const signal = signals.find(s => s.signal_agent_segment_id === params.signal_agent_segment_id);
297
- // Throw `AdcpError` for buyer-fixable rejection. The framework
298
- // catches the throw, projects to the spec's error envelope, and
299
- // returns it to the buyer. Returning `adcpError(...)` from the
300
- // success arm doesn't typecheck — `activateSignal` is declared
301
- // `Promise<ActivateSignalSuccess>`, error is the throw path.
302
- if (!signal) {
303
- throw new AdcpError('SIGNAL_NOT_FOUND', {
304
- recovery: 'correctable',
305
- message: `Unknown segment: ${params.signal_agent_segment_id}`,
306
- });
307
- }
308
-
309
- // Persist activation. Single-tenant: module-level Map is fine.
310
- // Multi-tenant: partition by ctx.account.id (passed as 2nd arg).
311
- activations.set(params.signal_agent_segment_id, {
312
- destinations: params.destinations,
313
- activated_at: new Date().toISOString(),
314
- });
315
-
316
- // Platform (DSP) activation is ASYNC per spec — return `is_live: false`
317
- // with `estimated_activation_duration_minutes`. The buyer polls
318
- // (a subsequent `activate_signal` with the same destinations, or a
319
- // provider-specific status tool) until `is_live: true`.
320
- //
321
- // Agent (sales-agent) activation is SYNC — return `is_live: true` with
322
- // `activation_key.type: 'key_value'` and a `deployed_at` timestamp.
323
- //
324
- // Both shapes include `activation_key` so the buyer knows how to
325
- // reference the segment when building media buys through the DSP or SA.
326
- const deployments = params.destinations.map(dest => {
327
- if (dest.type === 'platform') {
328
- return {
329
- type: 'platform' as const,
330
- platform: dest.platform,
331
- is_live: false,
332
- estimated_activation_duration_minutes: 30,
333
- // Return activation_key even while is_live is false — the
334
- // buyer needs to know the planned segment_id now so it can
335
- // reference it in downstream media buys. `is_live` just
336
- // flags whether the DSP has confirmed provisioning;
337
- // `activation_key` is the agent's commitment.
338
- activation_key: {
339
- type: 'segment_id' as const,
340
- segment_id: `${dest.platform}_${signal.signal_id.id}`,
341
- },
342
- };
343
- }
344
- return {
345
- type: 'agent' as const,
346
- agent_url: dest.agent_url,
347
- is_live: true,
348
- activation_key: { type: 'key_value' as const, key: 'audience', value: signal.signal_id.id },
349
- deployed_at: new Date().toISOString(),
350
- };
351
- });
352
- return { deployments, sandbox: true };
353
- },
354
- };
355
- }
356
-
357
- const platform = new MySignals();
358
-
359
- serve(() =>
360
- createAdcpServerFromPlatform(platform, {
361
- name: 'My Signals Agent',
362
- version: '1.0.0',
363
- idempotency,
364
- // Principal scoping for idempotency. MUST never return undefined.
365
- resolveSessionKey: () => 'default-principal',
366
- })
367
- );
368
- ```
47
+ - [`idempotency_key`](../cross-cutting.md#idempotency_key-is-required-on-every-mutating-call) on `activate_signal`
48
+ - [Authentication](../cross-cutting.md#authentication-is-mandatory) — `serve({ authenticate })` baseline
49
+ - [Resolve-then-authorize](../cross-cutting.md#resolve-then-authorize--uniform-errors-for-not-found--not-yours) — byte-equivalent errors on `signal_agent_segment_id` lookups across tenants
50
+ - [Webhooks](../cross-cutting.md#webhooks-stable-operation_id-across-retries) — for async platform-activation completions, use `signal_activation.${signal_agent_segment_id}.${platform}` as the stable `operation_id`
369
51
 
370
- ## Idempotency
52
+ Two signals-specific notes on top of those:
371
53
 
372
- AdCP v3 requires an `idempotency_key` on every mutating request — for signals agents that's `activate_signal` only (`get_signals` is read-only and exempt). Idempotency is already wired in the Implementation example above. The framework then handles:
54
+ ### Async platform activation
373
55
 
374
- - Missing/malformed key `INVALID_REQUEST` (spec pattern `^[A-Za-z0-9_.:-]{16,255}$`)
375
- - JCS-canonicalized payload hashing with same-key-different-payload → `IDEMPOTENCY_CONFLICT` (no payload leaked in the error body)
376
- - Past-TTL replay → `IDEMPOTENCY_EXPIRED` (±60s clock-skew tolerance)
377
- - Cache hits replay the cached envelope with `replayed: true` injected
378
- - `adcp.idempotency.replay_ttl_seconds` auto-declared on `get_adcp_capabilities`
379
- - Only successful responses cache — a failed activation re-executes on retry
380
- - Atomic claim so concurrent retries with a fresh key don't all race to activate
56
+ Platform activations (`type: 'platform'`) take minutes-to-hours to propagate to the DSP. Return `is_live: false` with `estimated_activation_duration_minutes` on first call; the buyer polls `activate_signal` again until `is_live: true`. **Commit `activation_key` up front** so the buyer can trust it across the poll window. Agent activations (`type: 'agent'`) are instant — return `is_live: true` immediately.
381
57
 
382
- Scoping is per-principal via `resolveSessionKey` (override with `resolveIdempotencyPrincipal` for custom scoping). `ttlSeconds` must be 3600–604800 out of range throws at construction. If you register mutating handlers without wiring `idempotency`, the framework logs an error at server-creation time.
58
+ `forceDeploymentStatus` in your `TestControllerStore` flips pending deployments to live for deterministic compliance tests.
383
59
 
384
- **Critical: probe the pool at boot (pgBackend).** `pg.Pool` is lazy — `new Pool({ connectionString })` does not validate the URL. A bad `DATABASE_URL` lets the server start, advertise `IdempotencySupported`, and then silently fail every `activate_signal` call. Wire `readinessCheck` on `serve()` so the server never accepts traffic with a broken pool:
60
+ ### Provenance — `data_provider_domain` must resolve
385
61
 
386
- ```ts
387
- const store = createIdempotencyStore({ backend: pgBackend(pool), ttlSeconds: 86400 });
388
- pool.on('error', err => console.error('pg pool error', err)); // prevent crash on idle-client errors
389
- serve(createAgent, {
390
- readinessCheck: () => store.probe(), // throws with a descriptive error if pool/table is broken
391
- });
392
- ```
62
+ Buyers fetch `https://{domain}/adagents.json` out-of-band to verify the provider. Use real domains even in demos, not `example.com`. For marketplace adopters, seed ≥2 different `data_provider_domain` values so the multi-provider nature is visible to the storyboard.
393
63
 
394
- ## Protecting your agent
395
-
396
- **An AdCP agent that accepts unauthenticated requests is non-compliant** (see `security_baseline` in the universal storyboard bundle). Ask the operator: "API key, OAuth, or both?" — then wire one of these into `serve()`.
397
-
398
- ```typescript
399
- import { serve } from '@adcp/sdk';
400
- import { verifyApiKey, verifyBearer, anyOf } from '@adcp/sdk/server';
401
-
402
- // API key — simplest, good for B2B integrations
403
- serve(createAgent, {
404
- authenticate: verifyApiKey({
405
- verify: async token => {
406
- const row = await db.api_keys.findUnique({ where: { token } });
407
- return row ? { principal: row.account_id } : null;
408
- },
409
- }),
410
- });
411
-
412
- // OAuth — best when buyers authenticate as themselves
413
- const AGENT_URL = 'https://my-agent.example.com/mcp';
414
- serve(createAgent, {
415
- publicUrl: AGENT_URL, // canonical RFC 8707 audience — also served as `resource` in protected-resource metadata
416
- authenticate: verifyBearer({
417
- jwksUri: 'https://auth.example.com/.well-known/jwks.json',
418
- issuer: 'https://auth.example.com',
419
- audience: AGENT_URL, // MUST equal publicUrl
420
- }),
421
- protectedResource: { authorization_servers: ['https://auth.example.com'] },
422
- });
423
-
424
- // Both
425
- serve(createAgent, {
426
- publicUrl: AGENT_URL,
427
- authenticate: anyOf(verifyApiKey({ verify: lookupKey }), verifyBearer({ jwksUri, issuer, audience: AGENT_URL })),
428
- protectedResource: { authorization_servers: [issuer] },
429
- });
430
- ```
64
+ ## Specialism deltas at a glance
431
65
 
432
- The framework produces RFC 6750-compliant `WWW-Authenticate: Bearer` 401s on failure, and serves `/.well-known/oauth-protected-resource<mountPath>` with `publicUrl` as the `resource` field so buyers get tokens bound to the right audience. The default JWT allowlist is asymmetric-only (RS*/ES*/PS\*/EdDSA) to prevent algorithm-confusion attacks.
66
+ **`signal-marketplace`** multi-provider directory (`signals[].data_provider_domain` varies), platform-activation polling pattern, marketplace governance sub-scenario in the storyboard exercises consent flows.
433
67
 
434
- ## Validate Locally
68
+ **`signal-owned`** single `data_provider_domain` across all signals. `value_type` drives targeting semantics: `binary` (in/out), `categorical` (with `allowed_values: [...]`), `numeric` (with `min`, `max`, optional `units`). For the `signal_type` value (`marketplace`/`owned`/`custom`) decision, see [SHAPE-GOTCHAS §7](../SHAPE-GOTCHAS.md#7-signal_type-marketplace-vs-owned-vs-custom).
435
69
 
436
- **Full validation checklist:** [docs/guides/VALIDATE-YOUR-AGENT.md](../../docs/guides/VALIDATE-YOUR-AGENT.md). Signals-specific commands:
70
+ ## Validate locally
437
71
 
438
72
  ```bash
439
- # Boot
440
- npx tsx agent.ts &
73
+ # Run the fork-matrix gate
74
+ npm run compliance:fork-matrix -- --test-name-pattern="hello-signals-adapter-marketplace"
441
75
 
442
- # Happy path the specialism you're claiming
443
- npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp signal_owned --auth $TOKEN # owned data
444
- npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp signal_marketplace --auth $TOKEN # marketplace
445
-
446
- # Marketplace governance sub-scenario (if you claim signal_marketplace)
447
- npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp signal_marketplace/governance_denied --auth $TOKEN
448
-
449
- # Cross-cutting obligations
450
- npx @adcp/sdk@latest storyboard run http://localhost:3001/mcp \
451
- --storyboards security_baseline,idempotency,schema_validation,error_compliance --auth $TOKEN
452
-
453
- # Rejection-surface fuzz
454
- npx @adcp/sdk@latest fuzz http://localhost:3001/mcp --tools get_signals --auth-token $TOKEN
455
- ```
456
-
457
- Common failure decoder:
458
-
459
- - `value_type` mismatch → `binary` vs. `continuous` — pick one; continuous signals return `value`, binary signals return membership
460
- - Missing `deployments` on signal → required even if empty `[]`
461
- - `activate_signal` returns sync success on a marketplace signal → marketplace activations are async; commit to an `activation_key` up-front and return `submitted`
462
- - Missing `coverage_percentage` or `pricing_options` → required on every signal
463
-
464
- **Keep iterating until all steps pass.** Can't bind ports? `npm run compliance:skill-matrix -- --filter signals` runs an isolated end-to-end test.
465
-
466
- ## Common Mistakes
467
-
468
- | Mistake | Fix |
469
- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
470
- | Using `createTaskCapableServer` + `server.tool()` | Use `createAdcpServerFromPlatform` with `signals: SignalsPlatform` on a typed `DecisioningPlatform` class |
471
- | Calling `createAdcpServer` directly in new code | Reach for `createAdcpServerFromPlatform`; `createAdcpServer` lives at `@adcp/sdk/server/legacy/v5` for mid-migration / escape-hatch only |
472
- | Using module-level Maps for state | Use `ctx.store.put/get` — framework provides `InMemoryStateStore` by default |
473
- | Manually registering `get_adcp_capabilities` | Auto-generated by `createAdcpServerFromPlatform` from your typed `DecisioningPlatform` |
474
- | Calling response builders manually | Handlers return raw data — `getSignalsResponse`/`activateSignalResponse` are auto-applied |
475
- | Missing `signal_agent_segment_id` on signals | Buyers can't activate without it |
476
- | Wrong `signal_id` shape | Marketplace: `{ source: "catalog", data_provider_domain, id }`. Owned: `{ source: "agent", agent_url, id }` |
477
- | Missing `data_provider` field | Required on every signal — your company/brand name |
478
- | Empty `pricing_options` array | Must have at least one pricing option per signal |
479
- | `is_live: true` in get_signals deployments | Signals aren't live until `activate_signal` — use empty `deployments: []` |
480
- | Activation doesn't match destination type | If request has `type: "platform"`, deployment must be `type: "platform"` |
481
- | `sandbox: false` on mock data | Buyers may treat mock data as real |
482
-
483
- ## Specialism Details
484
-
485
- ### <a name="specialism-signal-marketplace"></a>signal-marketplace
486
-
487
- **Async platform activation.** Unlike agent activations (`type: 'agent'`), platform activations (`type: 'platform'`) are not instant — the segment takes minutes-to-hours to propagate to the DSP. Return `is_live: false` with an estimate, then the buyer polls `activate_signal` again until `is_live: true`.
488
-
489
- ```typescript
490
- activateSignal: async (params, ctx) => {
491
- const signal = signals.find((s) => s.signal_agent_segment_id === params.signal_agent_segment_id);
492
- if (!signal) return adcpError('SIGNAL_NOT_FOUND', { message: `Unknown segment` });
493
-
494
- const deployments = await Promise.all(params.destinations.map(async (dest) => {
495
- if (dest.type === 'platform') {
496
- // Async — check whether this destination has already been propagated
497
- const existing = await ctx.store.get('deployments', `${params.signal_agent_segment_id}:${dest.platform}`);
498
- if (existing?.is_live) return existing;
499
- if (!existing) {
500
- const pending = {
501
- type: 'platform' as const,
502
- platform: dest.platform,
503
- account: dest.account ?? null,
504
- is_live: false,
505
- estimated_activation_duration_minutes: 45,
506
- // Commit the activation_key up front so the buyer can trust it across the poll window:
507
- activation_key: {
508
- type: 'segment_id' as const,
509
- segment_id: `${dest.platform}_${signal.signal_id.id}`,
510
- },
511
- };
512
- await ctx.store.put('deployments', `${params.signal_agent_segment_id}:${dest.platform}`, pending);
513
- return pending;
514
- }
515
- return existing; // still propagating
516
- }
517
- // Agent activations are instant
518
- return {
519
- type: 'agent' as const,
520
- agent_url: dest.agent_url,
521
- is_live: true,
522
- deployed_at: new Date().toISOString(),
523
- activation_key: { type: 'key_value' as const, key: 'audience', value: signal.signal_id.id },
524
- };
525
- }));
526
- return { deployments, sandbox: true };
527
- },
76
+ # Or validate your forked agent directly against its storyboard
77
+ adcp storyboard run http://127.0.0.1:3001/mcp signal_marketplace \
78
+ --bearer "$ADCP_AUTH_TOKEN" --include-bundles --json
528
79
  ```
529
80
 
530
- Use `forceDeploymentStatus` in your `TestControllerStore` (if you implement compliance_testing) to flip pending deployments to live for deterministic tests.
531
-
532
- **Provenance.** `data_provider_domain` must be resolvable — buyers fetch `https://{domain}/adagents.json` out-of-band to verify the provider. Use real domains even in demos, not `example.com`. For a marketplace demo, seed ≥2 different `data_provider_domain` values so the multi-provider nature is visible.
533
-
534
- ### <a name="specialism-signal-owned"></a>signal-owned
535
-
536
- **Value types** drive targeting semantics. The storyboard validates these fields:
81
+ The fork-matrix gate is the three-gate contract from [`docs/guides/EXAMPLE-TEST-CONTRACT.md`](../../docs/guides/EXAMPLE-TEST-CONTRACT.md): tsc strict / storyboard zero-failures / upstream façade.
537
82
 
538
- ```typescript
539
- // Binary — in/out of the segment
540
- { value_type: 'binary' as const }
541
-
542
- // Categorical — enumerated tier/level
543
- {
544
- value_type: 'categorical' as const,
545
- allowed_values: ['bronze', 'silver', 'gold', 'platinum'], // required for categorical
546
- }
547
-
548
- // Numeric — continuous score or count
549
- {
550
- value_type: 'numeric' as const,
551
- min: 0,
552
- max: 100,
553
- units: 'purchase_frequency_last_90d', // optional but recommended
554
- }
555
- ```
556
-
557
- `signal_type: 'custom'` is for first-party signals that don't fit the `owned` conceptual model (e.g. contextual signals derived from page content rather than user identity). Use `owned` by default; pick `custom` only when the user data model differs materially.
558
-
559
- Platform activations are async (same pattern as marketplace). Agent activations include `deployed_at`:
560
-
561
- ```typescript
562
- {
563
- type: 'agent' as const,
564
- agent_url: dest.agent_url,
565
- is_live: true,
566
- deployed_at: new Date().toISOString(),
567
- activation_key: { type: 'key_value' as const, key: 'audience', value: signal.signal_id.id },
568
- }
569
- ```
83
+ For deeper validation: [`docs/guides/VALIDATE-YOUR-AGENT.md`](../../docs/guides/VALIDATE-YOUR-AGENT.md).
570
84
 
571
- ## Reference
85
+ ## Migration notes
572
86
 
573
- - `examples/signals-agent.ts` — complete runnable example
574
- - `storyboards/signal_marketplace.yaml` — buyer call sequences for marketplace agent
575
- - `storyboards/signal_owned.yaml` — call sequences for owned data agent
576
- - `docs/guides/BUILD-AN-AGENT.md` — SDK patterns
577
- - `docs/TYPE-SUMMARY.md` — curated type signatures
578
- - `docs/llms.txt` — full protocol reference
87
+ - 6.6 → 6.7: [`docs/migration-6.6-to-6.7.md`](../../docs/migration-6.6-to-6.7.md)
88
+ - 4.x → 5.x: [`docs/migration-4.x-to-5.x.md`](../../docs/migration-4.x-to-5.x.md)