@adcp/sdk 6.5.0 → 6.7.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 (1167) hide show
  1. package/ADCP_VERSION +1 -1
  2. package/AGENTS.md +4 -0
  3. package/README.md +29 -16
  4. package/bin/adcp-resolve.js +166 -0
  5. package/bin/adcp.js +547 -9
  6. package/compliance/cache/{3.0.1 → 3.0.5}/index.json +2 -2
  7. package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/audience-sync/index.yaml +1 -1
  8. package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/brand-rights/index.yaml +3 -3
  9. package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/sales-social/index.yaml +7 -0
  10. package/compliance/cache/{3.0.1 → 3.0.5}/universal/runner-output-contract.yaml +23 -4
  11. package/compliance/cache/{3.0.1 → 3.0.5}/universal/storyboard-schema.yaml +106 -1
  12. package/compliance/cache/{3.0.1 → 3.0.5}/universal/v3-envelope-integrity.yaml +4 -2
  13. package/dist/lib/adapters/implicit-account-store.d.ts +170 -0
  14. package/dist/lib/adapters/implicit-account-store.d.ts.map +1 -0
  15. package/dist/lib/adapters/implicit-account-store.js +313 -0
  16. package/dist/lib/adapters/implicit-account-store.js.map +1 -0
  17. package/dist/lib/adapters/index.d.ts +4 -0
  18. package/dist/lib/adapters/index.d.ts.map +1 -1
  19. package/dist/lib/adapters/index.js +19 -1
  20. package/dist/lib/adapters/index.js.map +1 -1
  21. package/dist/lib/adapters/oauth-passthrough-resolver.d.ts +191 -0
  22. package/dist/lib/adapters/oauth-passthrough-resolver.d.ts.map +1 -0
  23. package/dist/lib/adapters/oauth-passthrough-resolver.js +178 -0
  24. package/dist/lib/adapters/oauth-passthrough-resolver.js.map +1 -0
  25. package/dist/lib/adapters/roster-account-store.d.ts +221 -0
  26. package/dist/lib/adapters/roster-account-store.d.ts.map +1 -0
  27. package/dist/lib/adapters/roster-account-store.js +194 -0
  28. package/dist/lib/adapters/roster-account-store.js.map +1 -0
  29. package/dist/lib/auth/oauth/ClientCredentialsFlow.d.ts.map +1 -1
  30. package/dist/lib/auth/oauth/ClientCredentialsFlow.js +5 -1
  31. package/dist/lib/auth/oauth/ClientCredentialsFlow.js.map +1 -1
  32. package/dist/lib/auth/oauth/discovery.d.ts.map +1 -1
  33. package/dist/lib/auth/oauth/discovery.js +6 -1
  34. package/dist/lib/auth/oauth/discovery.js.map +1 -1
  35. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  36. package/dist/lib/core/SingleAgentClient.d.ts +22 -0
  37. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  38. package/dist/lib/core/SingleAgentClient.js +117 -23
  39. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  40. package/dist/lib/index.d.ts +3 -3
  41. package/dist/lib/index.d.ts.map +1 -1
  42. package/dist/lib/index.js +22 -7
  43. package/dist/lib/index.js.map +1 -1
  44. package/dist/lib/mock-server/creative-template/seed-data.d.ts +45 -0
  45. package/dist/lib/mock-server/creative-template/seed-data.d.ts.map +1 -0
  46. package/dist/lib/mock-server/creative-template/seed-data.js +149 -0
  47. package/dist/lib/mock-server/creative-template/seed-data.js.map +1 -0
  48. package/dist/lib/mock-server/creative-template/server.d.ts +13 -0
  49. package/dist/lib/mock-server/creative-template/server.d.ts.map +1 -0
  50. package/dist/lib/mock-server/creative-template/server.js +325 -0
  51. package/dist/lib/mock-server/creative-template/server.js.map +1 -0
  52. package/dist/lib/mock-server/index.d.ts +64 -0
  53. package/dist/lib/mock-server/index.d.ts.map +1 -0
  54. package/dist/lib/mock-server/index.js +225 -0
  55. package/dist/lib/mock-server/index.js.map +1 -0
  56. package/dist/lib/mock-server/sales-guaranteed/seed-data.d.ts +46 -0
  57. package/dist/lib/mock-server/sales-guaranteed/seed-data.d.ts.map +1 -0
  58. package/dist/lib/mock-server/sales-guaranteed/seed-data.js +167 -0
  59. package/dist/lib/mock-server/sales-guaranteed/seed-data.js.map +1 -0
  60. package/dist/lib/mock-server/sales-guaranteed/server.d.ts +14 -0
  61. package/dist/lib/mock-server/sales-guaranteed/server.d.ts.map +1 -0
  62. package/dist/lib/mock-server/sales-guaranteed/server.js +893 -0
  63. package/dist/lib/mock-server/sales-guaranteed/server.js.map +1 -0
  64. package/dist/lib/mock-server/sales-social/seed-data.d.ts +34 -0
  65. package/dist/lib/mock-server/sales-social/seed-data.d.ts.map +1 -0
  66. package/dist/lib/mock-server/sales-social/seed-data.js +42 -0
  67. package/dist/lib/mock-server/sales-social/seed-data.js.map +1 -0
  68. package/dist/lib/mock-server/sales-social/server.d.ts +17 -0
  69. package/dist/lib/mock-server/sales-social/server.d.ts.map +1 -0
  70. package/dist/lib/mock-server/sales-social/server.js +1219 -0
  71. package/dist/lib/mock-server/sales-social/server.js.map +1 -0
  72. package/dist/lib/mock-server/signal-marketplace/seed-data.d.ts +77 -0
  73. package/dist/lib/mock-server/signal-marketplace/seed-data.d.ts.map +1 -0
  74. package/dist/lib/mock-server/signal-marketplace/seed-data.js +194 -0
  75. package/dist/lib/mock-server/signal-marketplace/seed-data.js.map +1 -0
  76. package/dist/lib/mock-server/signal-marketplace/server.d.ts +15 -0
  77. package/dist/lib/mock-server/signal-marketplace/server.d.ts.map +1 -0
  78. package/dist/lib/mock-server/signal-marketplace/server.js +382 -0
  79. package/dist/lib/mock-server/signal-marketplace/server.js.map +1 -0
  80. package/dist/lib/protocols/mcp.d.ts +4 -4
  81. package/dist/lib/protocols/mcp.d.ts.map +1 -1
  82. package/dist/lib/protocols/mcp.js +19 -13
  83. package/dist/lib/protocols/mcp.js.map +1 -1
  84. package/dist/lib/schemas-data/3.0/a2ui/bound-value.json +1 -1
  85. package/dist/lib/schemas-data/3.0/a2ui/component.json +1 -1
  86. package/dist/lib/schemas-data/3.0/a2ui/si-catalog.json +25 -25
  87. package/dist/lib/schemas-data/3.0/a2ui/surface.json +2 -2
  88. package/dist/lib/schemas-data/3.0/a2ui/user-action.json +1 -1
  89. package/dist/lib/schemas-data/3.0/account/get-account-financials-request.json +5 -5
  90. package/dist/lib/schemas-data/3.0/account/get-account-financials-response.json +10 -10
  91. package/dist/lib/schemas-data/3.0/account/list-accounts-request.json +4 -4
  92. package/dist/lib/schemas-data/3.0/account/list-accounts-response.json +6 -6
  93. package/dist/lib/schemas-data/3.0/account/report-usage-request.json +5 -5
  94. package/dist/lib/schemas-data/3.0/account/report-usage-response.json +4 -4
  95. package/dist/lib/schemas-data/3.0/account/sync-accounts-request.json +9 -9
  96. package/dist/lib/schemas-data/3.0/account/sync-accounts-response.json +12 -12
  97. package/dist/lib/schemas-data/3.0/account/sync-governance-request.json +5 -5
  98. package/dist/lib/schemas-data/3.0/account/sync-governance-response.json +8 -8
  99. package/dist/lib/schemas-data/3.0/adagents.json +32 -32
  100. package/dist/lib/schemas-data/3.0/brand/acquire-rights-request.json +8 -8
  101. package/dist/lib/schemas-data/3.0/brand/acquire-rights-response.json +14 -14
  102. package/dist/lib/schemas-data/3.0/brand/creative-approval-request.json +4 -4
  103. package/dist/lib/schemas-data/3.0/brand/creative-approval-response.json +10 -10
  104. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-request.json +3 -3
  105. package/dist/lib/schemas-data/3.0/brand/get-brand-identity-response.json +8 -8
  106. package/dist/lib/schemas-data/3.0/brand/get-rights-request.json +7 -7
  107. package/dist/lib/schemas-data/3.0/brand/get-rights-response.json +9 -9
  108. package/dist/lib/schemas-data/3.0/brand/revocation-notification.json +4 -4
  109. package/dist/lib/schemas-data/3.0/brand/rights-pricing-option.json +5 -5
  110. package/dist/lib/schemas-data/3.0/brand/rights-terms.json +3 -3
  111. package/dist/lib/schemas-data/3.0/brand/update-rights-request.json +4 -4
  112. package/dist/lib/schemas-data/3.0/brand/update-rights-response.json +9 -9
  113. package/dist/lib/schemas-data/3.0/brand.json +14 -14
  114. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-request.json +2 -2
  115. package/dist/lib/schemas-data/3.0/bundled/content-standards/calibrate-content-response.json +35 -4
  116. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-request.json +2 -2
  117. package/dist/lib/schemas-data/3.0/bundled/content-standards/create-content-standards-response.json +35 -4
  118. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-request.json +2 -2
  119. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-content-standards-response.json +35 -4
  120. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-request.json +2 -2
  121. package/dist/lib/schemas-data/3.0/bundled/content-standards/get-media-buy-artifacts-response.json +35 -4
  122. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-request.json +2 -2
  123. package/dist/lib/schemas-data/3.0/bundled/content-standards/list-content-standards-response.json +35 -4
  124. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-request.json +2 -2
  125. package/dist/lib/schemas-data/3.0/bundled/content-standards/update-content-standards-response.json +35 -4
  126. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-request.json +2 -2
  127. package/dist/lib/schemas-data/3.0/bundled/content-standards/validate-content-delivery-response.json +35 -4
  128. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-request.json +2 -2
  129. package/dist/lib/schemas-data/3.0/bundled/core/tasks-get-response.json +2 -2
  130. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-request.json +2 -2
  131. package/dist/lib/schemas-data/3.0/bundled/core/tasks-list-response.json +2 -2
  132. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-request.json +2 -2
  133. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-delivery-response.json +40 -6
  134. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-request.json +7 -4
  135. package/dist/lib/schemas-data/3.0/bundled/creative/get-creative-features-response.json +35 -4
  136. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-request.json +2 -2
  137. package/dist/lib/schemas-data/3.0/bundled/creative/list-creative-formats-response.json +38 -7
  138. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-request.json +2 -2
  139. package/dist/lib/schemas-data/3.0/bundled/creative/list-creatives-response.json +40 -6
  140. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-request.json +11 -5
  141. package/dist/lib/schemas-data/3.0/bundled/creative/preview-creative-response.json +40 -6
  142. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-request.json +7 -4
  143. package/dist/lib/schemas-data/3.0/bundled/creative/sync-creatives-response.json +101 -8
  144. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-request.json +7 -4
  145. package/dist/lib/schemas-data/3.0/bundled/media-buy/build-creative-response.json +110 -11
  146. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-request.json +7 -4
  147. package/dist/lib/schemas-data/3.0/bundled/media-buy/create-media-buy-response.json +68 -6
  148. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-request.json +2 -2
  149. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buy-delivery-response.json +35 -4
  150. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-request.json +2 -2
  151. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-media-buys-response.json +35 -4
  152. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-request.json +2 -2
  153. package/dist/lib/schemas-data/3.0/bundled/media-buy/get-products-response.json +35 -4
  154. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-request.json +2 -2
  155. package/dist/lib/schemas-data/3.0/bundled/media-buy/list-creative-formats-response.json +38 -7
  156. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-request.json +2 -2
  157. package/dist/lib/schemas-data/3.0/bundled/media-buy/log-event-response.json +35 -4
  158. package/dist/lib/schemas-data/3.0/bundled/media-buy/package-request.json +7 -4
  159. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-request.json +2 -2
  160. package/dist/lib/schemas-data/3.0/bundled/media-buy/provide-performance-feedback-response.json +35 -4
  161. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-request.json +2 -2
  162. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-audiences-response.json +68 -6
  163. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-request.json +2 -2
  164. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-catalogs-response.json +68 -6
  165. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-request.json +2 -2
  166. package/dist/lib/schemas-data/3.0/bundled/media-buy/sync-event-sources-response.json +68 -6
  167. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-request.json +11 -5
  168. package/dist/lib/schemas-data/3.0/bundled/media-buy/update-media-buy-response.json +35 -4
  169. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-request.json +2 -2
  170. package/dist/lib/schemas-data/3.0/bundled/property/create-property-list-response.json +2 -2
  171. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-request.json +2 -2
  172. package/dist/lib/schemas-data/3.0/bundled/property/delete-property-list-response.json +2 -2
  173. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-request.json +2 -2
  174. package/dist/lib/schemas-data/3.0/bundled/property/get-property-list-response.json +2 -2
  175. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-request.json +2 -2
  176. package/dist/lib/schemas-data/3.0/bundled/property/list-property-lists-response.json +2 -2
  177. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-request.json +2 -2
  178. package/dist/lib/schemas-data/3.0/bundled/property/update-property-list-response.json +2 -2
  179. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-request.json +2 -2
  180. package/dist/lib/schemas-data/3.0/bundled/property/validate-property-delivery-response.json +2 -2
  181. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-request.json +2 -2
  182. package/dist/lib/schemas-data/3.0/bundled/protocol/get-adcp-capabilities-response.json +36 -5
  183. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-request.json +2 -2
  184. package/dist/lib/schemas-data/3.0/bundled/signals/activate-signal-response.json +35 -4
  185. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-request.json +2 -2
  186. package/dist/lib/schemas-data/3.0/bundled/signals/get-signals-response.json +35 -4
  187. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-request.json +2 -2
  188. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-get-offering-response.json +35 -4
  189. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-request.json +2 -2
  190. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-initiate-session-response.json +35 -4
  191. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-request.json +2 -2
  192. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-send-message-response.json +35 -4
  193. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-request.json +2 -2
  194. package/dist/lib/schemas-data/3.0/bundled/sponsored-intelligence/si-terminate-session-response.json +35 -4
  195. package/dist/lib/schemas-data/3.0/collection/base-collection-source.json +3 -3
  196. package/dist/lib/schemas-data/3.0/collection/collection-list-changed-webhook.json +2 -2
  197. package/dist/lib/schemas-data/3.0/collection/collection-list-filters.json +7 -7
  198. package/dist/lib/schemas-data/3.0/collection/collection-list.json +5 -5
  199. package/dist/lib/schemas-data/3.0/collection/create-collection-list-request.json +7 -7
  200. package/dist/lib/schemas-data/3.0/collection/create-collection-list-response.json +4 -4
  201. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-request.json +4 -4
  202. package/dist/lib/schemas-data/3.0/collection/delete-collection-list-response.json +3 -3
  203. package/dist/lib/schemas-data/3.0/collection/get-collection-list-request.json +4 -4
  204. package/dist/lib/schemas-data/3.0/collection/get-collection-list-response.json +10 -10
  205. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-request.json +5 -5
  206. package/dist/lib/schemas-data/3.0/collection/list-collection-lists-response.json +5 -5
  207. package/dist/lib/schemas-data/3.0/collection/update-collection-list-request.json +7 -7
  208. package/dist/lib/schemas-data/3.0/collection/update-collection-list-response.json +4 -4
  209. package/dist/lib/schemas-data/3.0/content-standards/artifact-webhook-payload.json +3 -3
  210. package/dist/lib/schemas-data/3.0/content-standards/artifact.json +7 -7
  211. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-request.json +4 -4
  212. package/dist/lib/schemas-data/3.0/content-standards/calibrate-content-response.json +8 -8
  213. package/dist/lib/schemas-data/3.0/content-standards/content-standards.json +7 -7
  214. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-request.json +7 -7
  215. package/dist/lib/schemas-data/3.0/content-standards/create-content-standards-response.json +6 -6
  216. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-request.json +3 -3
  217. package/dist/lib/schemas-data/3.0/content-standards/get-content-standards-response.json +7 -7
  218. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-request.json +4 -4
  219. package/dist/lib/schemas-data/3.0/content-standards/get-media-buy-artifacts-response.json +8 -8
  220. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-request.json +5 -5
  221. package/dist/lib/schemas-data/3.0/content-standards/list-content-standards-response.json +8 -8
  222. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-request.json +7 -7
  223. package/dist/lib/schemas-data/3.0/content-standards/update-content-standards-response.json +6 -6
  224. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-request.json +4 -4
  225. package/dist/lib/schemas-data/3.0/content-standards/validate-content-delivery-response.json +8 -8
  226. package/dist/lib/schemas-data/3.0/core/account-ref.json +2 -2
  227. package/dist/lib/schemas-data/3.0/core/account.json +9 -9
  228. package/dist/lib/schemas-data/3.0/core/activation-key.json +1 -1
  229. package/dist/lib/schemas-data/3.0/core/ad-inventory-config.json +1 -1
  230. package/dist/lib/schemas-data/3.0/core/agent-encryption-key.json +1 -1
  231. package/dist/lib/schemas-data/3.0/core/agent-signing-key.json +1 -1
  232. package/dist/lib/schemas-data/3.0/core/app-item.json +4 -4
  233. package/dist/lib/schemas-data/3.0/core/assets/asset-union.json +53 -0
  234. package/dist/lib/schemas-data/3.0/core/assets/audio-asset.json +3 -3
  235. package/dist/lib/schemas-data/3.0/core/assets/brief-asset.json +2 -2
  236. package/dist/lib/schemas-data/3.0/core/assets/catalog-asset.json +2 -2
  237. package/dist/lib/schemas-data/3.0/core/assets/css-asset.json +2 -2
  238. package/dist/lib/schemas-data/3.0/core/assets/daast-asset.json +4 -4
  239. package/dist/lib/schemas-data/3.0/core/assets/html-asset.json +2 -2
  240. package/dist/lib/schemas-data/3.0/core/assets/image-asset.json +2 -2
  241. package/dist/lib/schemas-data/3.0/core/assets/javascript-asset.json +3 -3
  242. package/dist/lib/schemas-data/3.0/core/assets/markdown-asset.json +2 -2
  243. package/dist/lib/schemas-data/3.0/core/assets/text-asset.json +2 -2
  244. package/dist/lib/schemas-data/3.0/core/assets/url-asset.json +6 -5
  245. package/dist/lib/schemas-data/3.0/core/assets/vast-asset.json +4 -4
  246. package/dist/lib/schemas-data/3.0/core/assets/video-asset.json +7 -7
  247. package/dist/lib/schemas-data/3.0/core/assets/webhook-asset.json +7 -7
  248. package/dist/lib/schemas-data/3.0/core/async-response-data.json +25 -25
  249. package/dist/lib/schemas-data/3.0/core/attribution-window.json +4 -4
  250. package/dist/lib/schemas-data/3.0/core/audience-member.json +3 -3
  251. package/dist/lib/schemas-data/3.0/core/audience-selector.json +4 -4
  252. package/dist/lib/schemas-data/3.0/core/brand-id.json +1 -1
  253. package/dist/lib/schemas-data/3.0/core/brand-ref.json +2 -2
  254. package/dist/lib/schemas-data/3.0/core/business-entity.json +2 -2
  255. package/dist/lib/schemas-data/3.0/core/cancellation-policy.json +2 -2
  256. package/dist/lib/schemas-data/3.0/core/catalog-field-mapping.json +2 -2
  257. package/dist/lib/schemas-data/3.0/core/catalog.json +7 -7
  258. package/dist/lib/schemas-data/3.0/core/catchment.json +5 -5
  259. package/dist/lib/schemas-data/3.0/core/collection-distribution.json +2 -2
  260. package/dist/lib/schemas-data/3.0/core/collection-list-ref.json +1 -1
  261. package/dist/lib/schemas-data/3.0/core/collection-selector.json +1 -1
  262. package/dist/lib/schemas-data/3.0/core/collection.json +13 -13
  263. package/dist/lib/schemas-data/3.0/core/content-rating.json +2 -2
  264. package/dist/lib/schemas-data/3.0/core/context.json +1 -1
  265. package/dist/lib/schemas-data/3.0/core/creative-asset.json +6 -52
  266. package/dist/lib/schemas-data/3.0/core/creative-assignment.json +1 -1
  267. package/dist/lib/schemas-data/3.0/core/creative-brief.json +4 -4
  268. package/dist/lib/schemas-data/3.0/core/creative-consumption.json +1 -1
  269. package/dist/lib/schemas-data/3.0/core/creative-filters.json +4 -4
  270. package/dist/lib/schemas-data/3.0/core/creative-item.json +1 -1
  271. package/dist/lib/schemas-data/3.0/core/creative-manifest.json +7 -53
  272. package/dist/lib/schemas-data/3.0/core/creative-policy.json +3 -3
  273. package/dist/lib/schemas-data/3.0/core/creative-variable.json +1 -1
  274. package/dist/lib/schemas-data/3.0/core/creative-variant.json +5 -5
  275. package/dist/lib/schemas-data/3.0/core/data-provider-signal-selector.json +1 -1
  276. package/dist/lib/schemas-data/3.0/core/date-range.json +1 -1
  277. package/dist/lib/schemas-data/3.0/core/datetime-range.json +1 -1
  278. package/dist/lib/schemas-data/3.0/core/daypart-target.json +2 -2
  279. package/dist/lib/schemas-data/3.0/core/deadline-policy.json +1 -1
  280. package/dist/lib/schemas-data/3.0/core/delivery-forecast.json +7 -7
  281. package/dist/lib/schemas-data/3.0/core/delivery-metrics.json +5 -5
  282. package/dist/lib/schemas-data/3.0/core/deployment.json +3 -3
  283. package/dist/lib/schemas-data/3.0/core/destination-item.json +4 -4
  284. package/dist/lib/schemas-data/3.0/core/destination.json +1 -1
  285. package/dist/lib/schemas-data/3.0/core/diagnostic-issue.json +1 -1
  286. package/dist/lib/schemas-data/3.0/core/duration.json +1 -1
  287. package/dist/lib/schemas-data/3.0/core/education-item.json +4 -4
  288. package/dist/lib/schemas-data/3.0/core/error.json +34 -3
  289. package/dist/lib/schemas-data/3.0/core/event-custom-data.json +2 -2
  290. package/dist/lib/schemas-data/3.0/core/event-source-health.json +3 -3
  291. package/dist/lib/schemas-data/3.0/core/event.json +6 -6
  292. package/dist/lib/schemas-data/3.0/core/ext.json +1 -1
  293. package/dist/lib/schemas-data/3.0/core/feature-requirement.json +1 -1
  294. package/dist/lib/schemas-data/3.0/core/flight-item.json +4 -4
  295. package/dist/lib/schemas-data/3.0/core/forecast-point.json +18 -18
  296. package/dist/lib/schemas-data/3.0/core/forecast-range.json +1 -1
  297. package/dist/lib/schemas-data/3.0/core/format-id.json +1 -1
  298. package/dist/lib/schemas-data/3.0/core/format.json +42 -42
  299. package/dist/lib/schemas-data/3.0/core/frequency-cap.json +4 -4
  300. package/dist/lib/schemas-data/3.0/core/generation-credential.json +3 -3
  301. package/dist/lib/schemas-data/3.0/core/geo-breakdown-support.json +3 -3
  302. package/dist/lib/schemas-data/3.0/core/hotel-item.json +4 -4
  303. package/dist/lib/schemas-data/3.0/core/identifier.json +2 -2
  304. package/dist/lib/schemas-data/3.0/core/industry-identifier.json +2 -2
  305. package/dist/lib/schemas-data/3.0/core/insertion-order.json +1 -1
  306. package/dist/lib/schemas-data/3.0/core/installment-deadlines.json +2 -2
  307. package/dist/lib/schemas-data/3.0/core/installment.json +9 -9
  308. package/dist/lib/schemas-data/3.0/core/job-item.json +3 -3
  309. package/dist/lib/schemas-data/3.0/core/limited-series.json +1 -1
  310. package/dist/lib/schemas-data/3.0/core/material-deadline.json +1 -1
  311. package/dist/lib/schemas-data/3.0/core/mcp-webhook-payload.json +5 -5
  312. package/dist/lib/schemas-data/3.0/core/measurement-readiness.json +5 -5
  313. package/dist/lib/schemas-data/3.0/core/measurement-terms.json +3 -3
  314. package/dist/lib/schemas-data/3.0/core/measurement-window.json +1 -1
  315. package/dist/lib/schemas-data/3.0/core/media-buy-features.json +1 -1
  316. package/dist/lib/schemas-data/3.0/core/media-buy.json +7 -7
  317. package/dist/lib/schemas-data/3.0/core/offering-asset-group.json +16 -16
  318. package/dist/lib/schemas-data/3.0/core/offering.json +5 -5
  319. package/dist/lib/schemas-data/3.0/core/optimization-goal.json +6 -6
  320. package/dist/lib/schemas-data/3.0/core/outcome-measurement.json +2 -2
  321. package/dist/lib/schemas-data/3.0/core/overlay.json +1 -1
  322. package/dist/lib/schemas-data/3.0/core/package.json +14 -14
  323. package/dist/lib/schemas-data/3.0/core/pagination-request.json +1 -1
  324. package/dist/lib/schemas-data/3.0/core/pagination-response.json +1 -1
  325. package/dist/lib/schemas-data/3.0/core/performance-feedback.json +3 -3
  326. package/dist/lib/schemas-data/3.0/core/performance-standard.json +4 -4
  327. package/dist/lib/schemas-data/3.0/core/placement-definition.json +5 -5
  328. package/dist/lib/schemas-data/3.0/core/placement.json +2 -2
  329. package/dist/lib/schemas-data/3.0/core/planned-delivery.json +5 -5
  330. package/dist/lib/schemas-data/3.0/core/price.json +1 -1
  331. package/dist/lib/schemas-data/3.0/core/pricing-option.json +10 -10
  332. package/dist/lib/schemas-data/3.0/core/product-allocation.json +4 -4
  333. package/dist/lib/schemas-data/3.0/core/product-filters.json +16 -16
  334. package/dist/lib/schemas-data/3.0/core/product.json +28 -28
  335. package/dist/lib/schemas-data/3.0/core/property-id.json +1 -1
  336. package/dist/lib/schemas-data/3.0/core/property-list-ref.json +1 -1
  337. package/dist/lib/schemas-data/3.0/core/property-tag.json +1 -1
  338. package/dist/lib/schemas-data/3.0/core/property.json +6 -6
  339. package/dist/lib/schemas-data/3.0/core/proposal.json +6 -6
  340. package/dist/lib/schemas-data/3.0/core/protocol-envelope.json +3 -3
  341. package/dist/lib/schemas-data/3.0/core/provenance.json +6 -6
  342. package/dist/lib/schemas-data/3.0/core/publisher-property-selector.json +3 -3
  343. package/dist/lib/schemas-data/3.0/core/push-notification-config.json +2 -2
  344. package/dist/lib/schemas-data/3.0/core/real-estate-item.json +4 -4
  345. package/dist/lib/schemas-data/3.0/core/reference-asset.json +1 -1
  346. package/dist/lib/schemas-data/3.0/core/reporting-capabilities.json +5 -5
  347. package/dist/lib/schemas-data/3.0/core/reporting-webhook.json +3 -3
  348. package/dist/lib/schemas-data/3.0/core/requirements/asset-requirements.json +13 -13
  349. package/dist/lib/schemas-data/3.0/core/requirements/audio-asset-requirements.json +1 -1
  350. package/dist/lib/schemas-data/3.0/core/requirements/catalog-field-binding.json +4 -4
  351. package/dist/lib/schemas-data/3.0/core/requirements/catalog-requirements.json +5 -5
  352. package/dist/lib/schemas-data/3.0/core/requirements/css-asset-requirements.json +1 -1
  353. package/dist/lib/schemas-data/3.0/core/requirements/daast-asset-requirements.json +1 -1
  354. package/dist/lib/schemas-data/3.0/core/requirements/html-asset-requirements.json +1 -1
  355. package/dist/lib/schemas-data/3.0/core/requirements/image-asset-requirements.json +2 -2
  356. package/dist/lib/schemas-data/3.0/core/requirements/javascript-asset-requirements.json +1 -1
  357. package/dist/lib/schemas-data/3.0/core/requirements/markdown-asset-requirements.json +1 -1
  358. package/dist/lib/schemas-data/3.0/core/requirements/offering-asset-constraint.json +4 -4
  359. package/dist/lib/schemas-data/3.0/core/requirements/text-asset-requirements.json +1 -1
  360. package/dist/lib/schemas-data/3.0/core/requirements/url-asset-requirements.json +2 -2
  361. package/dist/lib/schemas-data/3.0/core/requirements/vast-asset-requirements.json +1 -1
  362. package/dist/lib/schemas-data/3.0/core/requirements/video-asset-requirements.json +6 -6
  363. package/dist/lib/schemas-data/3.0/core/requirements/webhook-asset-requirements.json +1 -1
  364. package/dist/lib/schemas-data/3.0/core/response.json +1 -1
  365. package/dist/lib/schemas-data/3.0/core/rights-constraint.json +4 -4
  366. package/dist/lib/schemas-data/3.0/core/seller-agent-ref.json +1 -1
  367. package/dist/lib/schemas-data/3.0/core/signal-definition.json +3 -3
  368. package/dist/lib/schemas-data/3.0/core/signal-filters.json +2 -2
  369. package/dist/lib/schemas-data/3.0/core/signal-id.json +1 -1
  370. package/dist/lib/schemas-data/3.0/core/signal-pricing-option.json +2 -2
  371. package/dist/lib/schemas-data/3.0/core/signal-pricing.json +6 -6
  372. package/dist/lib/schemas-data/3.0/core/signal-targeting.json +4 -4
  373. package/dist/lib/schemas-data/3.0/core/special.json +2 -2
  374. package/dist/lib/schemas-data/3.0/core/start-timing.json +1 -1
  375. package/dist/lib/schemas-data/3.0/core/store-item.json +3 -3
  376. package/dist/lib/schemas-data/3.0/core/talent.json +2 -2
  377. package/dist/lib/schemas-data/3.0/core/targeting.json +20 -20
  378. package/dist/lib/schemas-data/3.0/core/tasks-get-request.json +3 -3
  379. package/dist/lib/schemas-data/3.0/core/tasks-get-response.json +7 -7
  380. package/dist/lib/schemas-data/3.0/core/tasks-list-request.json +11 -11
  381. package/dist/lib/schemas-data/3.0/core/tasks-list-response.json +6 -6
  382. package/dist/lib/schemas-data/3.0/core/user-match.json +3 -3
  383. package/dist/lib/schemas-data/3.0/core/vehicle-item.json +4 -4
  384. package/dist/lib/schemas-data/3.0/core/vendor-pricing-option.json +2 -2
  385. package/dist/lib/schemas-data/3.0/core/x-entity-types.json +1 -1
  386. package/dist/lib/schemas-data/3.0/creative/asset-types/index.json +5 -5
  387. package/dist/lib/schemas-data/3.0/creative/creative-feature-result.json +2 -2
  388. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-request.json +5 -5
  389. package/dist/lib/schemas-data/3.0/creative/get-creative-delivery-response.json +7 -7
  390. package/dist/lib/schemas-data/3.0/creative/get-creative-features-request.json +5 -5
  391. package/dist/lib/schemas-data/3.0/creative/get-creative-features-response.json +8 -8
  392. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-request.json +11 -11
  393. package/dist/lib/schemas-data/3.0/creative/list-creative-formats-response.json +7 -7
  394. package/dist/lib/schemas-data/3.0/creative/list-creatives-request.json +8 -8
  395. package/dist/lib/schemas-data/3.0/creative/list-creatives-response.json +14 -60
  396. package/dist/lib/schemas-data/3.0/creative/preview-creative-request.json +11 -11
  397. package/dist/lib/schemas-data/3.0/creative/preview-creative-response.json +12 -12
  398. package/dist/lib/schemas-data/3.0/creative/preview-render.json +1 -1
  399. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-input-required.json +3 -3
  400. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-submitted.json +3 -3
  401. package/dist/lib/schemas-data/3.0/creative/sync-creatives-async-response-working.json +3 -3
  402. package/dist/lib/schemas-data/3.0/creative/sync-creatives-request.json +7 -7
  403. package/dist/lib/schemas-data/3.0/creative/sync-creatives-response.json +13 -13
  404. package/dist/lib/schemas-data/3.0/enums/account-scope.json +1 -1
  405. package/dist/lib/schemas-data/3.0/enums/account-status.json +1 -1
  406. package/dist/lib/schemas-data/3.0/enums/action-source.json +1 -1
  407. package/dist/lib/schemas-data/3.0/enums/adcp-protocol.json +1 -1
  408. package/dist/lib/schemas-data/3.0/enums/adjustment-kind.json +1 -1
  409. package/dist/lib/schemas-data/3.0/enums/advertiser-industry.json +1 -1
  410. package/dist/lib/schemas-data/3.0/enums/age-verification-method.json +1 -1
  411. package/dist/lib/schemas-data/3.0/enums/assessment-status.json +1 -1
  412. package/dist/lib/schemas-data/3.0/enums/asset-content-type.json +1 -1
  413. package/dist/lib/schemas-data/3.0/enums/attribution-model.json +1 -1
  414. package/dist/lib/schemas-data/3.0/enums/audience-source.json +1 -1
  415. package/dist/lib/schemas-data/3.0/enums/audience-status.json +1 -1
  416. package/dist/lib/schemas-data/3.0/enums/audio-channel-layout.json +1 -1
  417. package/dist/lib/schemas-data/3.0/enums/auth-scheme.json +1 -1
  418. package/dist/lib/schemas-data/3.0/enums/available-metric.json +1 -1
  419. package/dist/lib/schemas-data/3.0/enums/billing-party.json +1 -1
  420. package/dist/lib/schemas-data/3.0/enums/binary-verdict.json +1 -1
  421. package/dist/lib/schemas-data/3.0/enums/brand-agent-type.json +1 -1
  422. package/dist/lib/schemas-data/3.0/enums/canceled-by.json +1 -1
  423. package/dist/lib/schemas-data/3.0/enums/catalog-action.json +1 -1
  424. package/dist/lib/schemas-data/3.0/enums/catalog-item-status.json +1 -1
  425. package/dist/lib/schemas-data/3.0/enums/catalog-type.json +1 -1
  426. package/dist/lib/schemas-data/3.0/enums/channels.json +1 -1
  427. package/dist/lib/schemas-data/3.0/enums/cloud-storage-protocol.json +1 -1
  428. package/dist/lib/schemas-data/3.0/enums/co-branding-requirement.json +1 -1
  429. package/dist/lib/schemas-data/3.0/enums/collection-cadence.json +1 -1
  430. package/dist/lib/schemas-data/3.0/enums/collection-kind.json +1 -1
  431. package/dist/lib/schemas-data/3.0/enums/collection-relationship.json +1 -1
  432. package/dist/lib/schemas-data/3.0/enums/collection-status.json +1 -1
  433. package/dist/lib/schemas-data/3.0/enums/consent-basis.json +1 -1
  434. package/dist/lib/schemas-data/3.0/enums/content-id-type.json +1 -1
  435. package/dist/lib/schemas-data/3.0/enums/content-rating-system.json +1 -1
  436. package/dist/lib/schemas-data/3.0/enums/creative-action.json +1 -1
  437. package/dist/lib/schemas-data/3.0/enums/creative-agent-capability.json +1 -1
  438. package/dist/lib/schemas-data/3.0/enums/creative-approval-status.json +1 -1
  439. package/dist/lib/schemas-data/3.0/enums/creative-identifier-type.json +1 -1
  440. package/dist/lib/schemas-data/3.0/enums/creative-quality.json +1 -1
  441. package/dist/lib/schemas-data/3.0/enums/creative-sort-field.json +1 -1
  442. package/dist/lib/schemas-data/3.0/enums/creative-status.json +1 -1
  443. package/dist/lib/schemas-data/3.0/enums/daast-tracking-event.json +1 -1
  444. package/dist/lib/schemas-data/3.0/enums/daast-version.json +1 -1
  445. package/dist/lib/schemas-data/3.0/enums/day-of-week.json +1 -1
  446. package/dist/lib/schemas-data/3.0/enums/delegation-authority.json +1 -1
  447. package/dist/lib/schemas-data/3.0/enums/delivery-type.json +1 -1
  448. package/dist/lib/schemas-data/3.0/enums/demographic-system.json +1 -1
  449. package/dist/lib/schemas-data/3.0/enums/derivative-type.json +1 -1
  450. package/dist/lib/schemas-data/3.0/enums/device-platform.json +1 -1
  451. package/dist/lib/schemas-data/3.0/enums/device-type.json +1 -1
  452. package/dist/lib/schemas-data/3.0/enums/digital-source-type.json +1 -1
  453. package/dist/lib/schemas-data/3.0/enums/dimension-unit.json +1 -1
  454. package/dist/lib/schemas-data/3.0/enums/disclosure-persistence.json +1 -1
  455. package/dist/lib/schemas-data/3.0/enums/disclosure-position.json +1 -1
  456. package/dist/lib/schemas-data/3.0/enums/distance-unit.json +1 -1
  457. package/dist/lib/schemas-data/3.0/enums/distribution-identifier-type.json +1 -1
  458. package/dist/lib/schemas-data/3.0/enums/error-code.json +185 -2
  459. package/dist/lib/schemas-data/3.0/enums/escalation-severity.json +1 -1
  460. package/dist/lib/schemas-data/3.0/enums/event-type.json +1 -1
  461. package/dist/lib/schemas-data/3.0/enums/exclusivity.json +1 -1
  462. package/dist/lib/schemas-data/3.0/enums/feature-check-status.json +1 -1
  463. package/dist/lib/schemas-data/3.0/enums/feed-format.json +1 -1
  464. package/dist/lib/schemas-data/3.0/enums/feedback-source.json +1 -1
  465. package/dist/lib/schemas-data/3.0/enums/forecast-method.json +1 -1
  466. package/dist/lib/schemas-data/3.0/enums/forecast-range-unit.json +1 -1
  467. package/dist/lib/schemas-data/3.0/enums/forecastable-metric.json +1 -1
  468. package/dist/lib/schemas-data/3.0/enums/format-id-parameter.json +1 -1
  469. package/dist/lib/schemas-data/3.0/enums/frame-rate-type.json +1 -1
  470. package/dist/lib/schemas-data/3.0/enums/frequency-cap-scope.json +1 -1
  471. package/dist/lib/schemas-data/3.0/enums/genre-taxonomy.json +1 -1
  472. package/dist/lib/schemas-data/3.0/enums/geo-level.json +1 -1
  473. package/dist/lib/schemas-data/3.0/enums/gop-type.json +1 -1
  474. package/dist/lib/schemas-data/3.0/enums/governance-decision.json +1 -1
  475. package/dist/lib/schemas-data/3.0/enums/governance-domain.json +1 -1
  476. package/dist/lib/schemas-data/3.0/enums/governance-mode.json +1 -1
  477. package/dist/lib/schemas-data/3.0/enums/governance-phase.json +1 -1
  478. package/dist/lib/schemas-data/3.0/enums/history-entry-type.json +1 -1
  479. package/dist/lib/schemas-data/3.0/enums/http-method.json +1 -1
  480. package/dist/lib/schemas-data/3.0/enums/identifier-types.json +1 -1
  481. package/dist/lib/schemas-data/3.0/enums/installment-status.json +1 -1
  482. package/dist/lib/schemas-data/3.0/enums/javascript-module-type.json +1 -1
  483. package/dist/lib/schemas-data/3.0/enums/landing-page-requirement.json +1 -1
  484. package/dist/lib/schemas-data/3.0/enums/makegood-remedy.json +1 -1
  485. package/dist/lib/schemas-data/3.0/enums/markdown-flavor.json +1 -1
  486. package/dist/lib/schemas-data/3.0/enums/match-id-type.json +1 -1
  487. package/dist/lib/schemas-data/3.0/enums/match-type.json +1 -1
  488. package/dist/lib/schemas-data/3.0/enums/media-buy-status.json +1 -1
  489. package/dist/lib/schemas-data/3.0/enums/media-buy-valid-action.json +1 -1
  490. package/dist/lib/schemas-data/3.0/enums/metric-type.json +1 -1
  491. package/dist/lib/schemas-data/3.0/enums/metro-system.json +1 -1
  492. package/dist/lib/schemas-data/3.0/enums/moov-atom-position.json +1 -1
  493. package/dist/lib/schemas-data/3.0/enums/notification-type.json +1 -1
  494. package/dist/lib/schemas-data/3.0/enums/outcome-type.json +1 -1
  495. package/dist/lib/schemas-data/3.0/enums/pacing.json +1 -1
  496. package/dist/lib/schemas-data/3.0/enums/payment-terms.json +1 -1
  497. package/dist/lib/schemas-data/3.0/enums/performance-standard-metric.json +1 -1
  498. package/dist/lib/schemas-data/3.0/enums/policy-category.json +1 -1
  499. package/dist/lib/schemas-data/3.0/enums/policy-enforcement.json +1 -1
  500. package/dist/lib/schemas-data/3.0/enums/postal-system.json +1 -1
  501. package/dist/lib/schemas-data/3.0/enums/preview-output-format.json +1 -1
  502. package/dist/lib/schemas-data/3.0/enums/pricing-model.json +1 -1
  503. package/dist/lib/schemas-data/3.0/enums/production-quality.json +1 -1
  504. package/dist/lib/schemas-data/3.0/enums/property-type.json +1 -1
  505. package/dist/lib/schemas-data/3.0/enums/proposal-status.json +1 -1
  506. package/dist/lib/schemas-data/3.0/enums/publisher-identifier-types.json +1 -1
  507. package/dist/lib/schemas-data/3.0/enums/purchase-type.json +1 -1
  508. package/dist/lib/schemas-data/3.0/enums/reach-unit.json +1 -1
  509. package/dist/lib/schemas-data/3.0/enums/reporting-frequency.json +1 -1
  510. package/dist/lib/schemas-data/3.0/enums/response-type.json +1 -1
  511. package/dist/lib/schemas-data/3.0/enums/restricted-attribute.json +1 -1
  512. package/dist/lib/schemas-data/3.0/enums/right-type.json +1 -1
  513. package/dist/lib/schemas-data/3.0/enums/right-use.json +1 -1
  514. package/dist/lib/schemas-data/3.0/enums/rights-billing-period.json +1 -1
  515. package/dist/lib/schemas-data/3.0/enums/scan-type.json +1 -1
  516. package/dist/lib/schemas-data/3.0/enums/si-session-status.json +1 -1
  517. package/dist/lib/schemas-data/3.0/enums/signal-catalog-type.json +1 -1
  518. package/dist/lib/schemas-data/3.0/enums/signal-source.json +1 -1
  519. package/dist/lib/schemas-data/3.0/enums/signal-value-type.json +1 -1
  520. package/dist/lib/schemas-data/3.0/enums/snapshot-unavailable-reason.json +1 -1
  521. package/dist/lib/schemas-data/3.0/enums/sort-direction.json +1 -1
  522. package/dist/lib/schemas-data/3.0/enums/sort-metric.json +1 -1
  523. package/dist/lib/schemas-data/3.0/enums/special-category.json +1 -1
  524. package/dist/lib/schemas-data/3.0/enums/specialism.json +1 -1
  525. package/dist/lib/schemas-data/3.0/enums/talent-role.json +1 -1
  526. package/dist/lib/schemas-data/3.0/enums/task-status.json +1 -1
  527. package/dist/lib/schemas-data/3.0/enums/task-type.json +1 -1
  528. package/dist/lib/schemas-data/3.0/enums/transport-mode.json +1 -1
  529. package/dist/lib/schemas-data/3.0/enums/travel-time-unit.json +1 -1
  530. package/dist/lib/schemas-data/3.0/enums/uid-type.json +1 -1
  531. package/dist/lib/schemas-data/3.0/enums/universal-macro.json +1 -1
  532. package/dist/lib/schemas-data/3.0/enums/update-frequency.json +1 -1
  533. package/dist/lib/schemas-data/3.0/enums/url-asset-type.json +1 -1
  534. package/dist/lib/schemas-data/3.0/enums/validation-mode.json +1 -1
  535. package/dist/lib/schemas-data/3.0/enums/vast-tracking-event.json +1 -1
  536. package/dist/lib/schemas-data/3.0/enums/vast-version.json +1 -1
  537. package/dist/lib/schemas-data/3.0/enums/viewability-standard.json +1 -1
  538. package/dist/lib/schemas-data/3.0/enums/wcag-level.json +1 -1
  539. package/dist/lib/schemas-data/3.0/enums/webhook-response-type.json +1 -1
  540. package/dist/lib/schemas-data/3.0/enums/webhook-security-method.json +1 -1
  541. package/dist/lib/schemas-data/3.0/error-details/account-setup-required.json +2 -2
  542. package/dist/lib/schemas-data/3.0/error-details/audience-too-small.json +2 -2
  543. package/dist/lib/schemas-data/3.0/error-details/budget-too-low.json +2 -2
  544. package/dist/lib/schemas-data/3.0/error-details/conflict.json +2 -2
  545. package/dist/lib/schemas-data/3.0/error-details/creative-rejected.json +2 -2
  546. package/dist/lib/schemas-data/3.0/error-details/policy-violation.json +2 -2
  547. package/dist/lib/schemas-data/3.0/error-details/rate-limited.json +1 -1
  548. package/dist/lib/schemas-data/3.0/error-details/vendor-error-codes.json +1 -1
  549. package/dist/lib/schemas-data/3.0/extensions/extension-meta.json +1 -1
  550. package/dist/lib/schemas-data/3.0/extensions/index.json +2 -2
  551. package/dist/lib/schemas-data/3.0/governance/attribute-definition.json +1 -1
  552. package/dist/lib/schemas-data/3.0/governance/audience-constraints.json +3 -3
  553. package/dist/lib/schemas-data/3.0/governance/check-governance-request.json +7 -7
  554. package/dist/lib/schemas-data/3.0/governance/check-governance-response.json +6 -6
  555. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-request.json +4 -4
  556. package/dist/lib/schemas-data/3.0/governance/get-plan-audit-logs-response.json +9 -9
  557. package/dist/lib/schemas-data/3.0/governance/policy-category-definition.json +2 -2
  558. package/dist/lib/schemas-data/3.0/governance/policy-entry.json +6 -6
  559. package/dist/lib/schemas-data/3.0/governance/policy-ref.json +1 -1
  560. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-request.json +6 -6
  561. package/dist/lib/schemas-data/3.0/governance/report-plan-outcome-response.json +4 -4
  562. package/dist/lib/schemas-data/3.0/governance/sync-plans-request.json +13 -13
  563. package/dist/lib/schemas-data/3.0/governance/sync-plans-response.json +4 -4
  564. package/dist/lib/schemas-data/3.0/index.json +364 -364
  565. package/dist/lib/schemas-data/3.0/manifest.json +1190 -0
  566. package/dist/lib/schemas-data/3.0/manifest.schema.json +202 -0
  567. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-input-required.json +4 -4
  568. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-submitted.json +3 -3
  569. package/dist/lib/schemas-data/3.0/media-buy/build-creative-async-response-working.json +3 -3
  570. package/dist/lib/schemas-data/3.0/media-buy/build-creative-request.json +11 -11
  571. package/dist/lib/schemas-data/3.0/media-buy/build-creative-response.json +17 -17
  572. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-input-required.json +4 -4
  573. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-submitted.json +3 -3
  574. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-async-response-working.json +3 -3
  575. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-request.json +12 -12
  576. package/dist/lib/schemas-data/3.0/media-buy/create-media-buy-response.json +15 -15
  577. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-request.json +17 -17
  578. package/dist/lib/schemas-data/3.0/media-buy/get-media-buy-delivery-response.json +24 -24
  579. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-request.json +7 -7
  580. package/dist/lib/schemas-data/3.0/media-buy/get-media-buys-response.json +19 -19
  581. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-input-required.json +4 -4
  582. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-submitted.json +3 -3
  583. package/dist/lib/schemas-data/3.0/media-buy/get-products-async-response-working.json +3 -3
  584. package/dist/lib/schemas-data/3.0/media-buy/get-products-request.json +11 -11
  585. package/dist/lib/schemas-data/3.0/media-buy/get-products-response.json +8 -8
  586. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-request.json +11 -11
  587. package/dist/lib/schemas-data/3.0/media-buy/list-creative-formats-response.json +7 -7
  588. package/dist/lib/schemas-data/3.0/media-buy/log-event-request.json +4 -4
  589. package/dist/lib/schemas-data/3.0/media-buy/log-event-response.json +6 -6
  590. package/dist/lib/schemas-data/3.0/media-buy/package-request.json +12 -12
  591. package/dist/lib/schemas-data/3.0/media-buy/package-update.json +13 -13
  592. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-request.json +6 -6
  593. package/dist/lib/schemas-data/3.0/media-buy/provide-performance-feedback-response.json +6 -6
  594. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-request.json +7 -7
  595. package/dist/lib/schemas-data/3.0/media-buy/sync-audiences-response.json +9 -9
  596. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-input-required.json +3 -3
  597. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-submitted.json +3 -3
  598. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-async-response-working.json +3 -3
  599. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-request.json +7 -7
  600. package/dist/lib/schemas-data/3.0/media-buy/sync-catalogs-response.json +9 -9
  601. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-request.json +5 -5
  602. package/dist/lib/schemas-data/3.0/media-buy/sync-event-sources-response.json +10 -10
  603. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-input-required.json +3 -3
  604. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-submitted.json +3 -3
  605. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-async-response-working.json +3 -3
  606. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-request.json +10 -10
  607. package/dist/lib/schemas-data/3.0/media-buy/update-media-buy-response.json +10 -10
  608. package/dist/lib/schemas-data/3.0/pricing-options/cpa-option.json +4 -4
  609. package/dist/lib/schemas-data/3.0/pricing-options/cpc-option.json +4 -4
  610. package/dist/lib/schemas-data/3.0/pricing-options/cpcv-option.json +4 -4
  611. package/dist/lib/schemas-data/3.0/pricing-options/cpm-option.json +4 -4
  612. package/dist/lib/schemas-data/3.0/pricing-options/cpp-option.json +5 -5
  613. package/dist/lib/schemas-data/3.0/pricing-options/cpv-option.json +4 -4
  614. package/dist/lib/schemas-data/3.0/pricing-options/flat-rate-option.json +4 -4
  615. package/dist/lib/schemas-data/3.0/pricing-options/price-breakdown.json +2 -2
  616. package/dist/lib/schemas-data/3.0/pricing-options/price-guidance.json +1 -1
  617. package/dist/lib/schemas-data/3.0/pricing-options/time-option.json +4 -4
  618. package/dist/lib/schemas-data/3.0/pricing-options/vcpm-option.json +4 -4
  619. package/dist/lib/schemas-data/3.0/property/authorization-result.json +1 -1
  620. package/dist/lib/schemas-data/3.0/property/base-property-source.json +4 -4
  621. package/dist/lib/schemas-data/3.0/property/create-property-list-request.json +7 -7
  622. package/dist/lib/schemas-data/3.0/property/create-property-list-response.json +4 -4
  623. package/dist/lib/schemas-data/3.0/property/delete-property-list-request.json +4 -4
  624. package/dist/lib/schemas-data/3.0/property/delete-property-list-response.json +3 -3
  625. package/dist/lib/schemas-data/3.0/property/delivery-record.json +3 -3
  626. package/dist/lib/schemas-data/3.0/property/get-property-list-request.json +4 -4
  627. package/dist/lib/schemas-data/3.0/property/get-property-list-response.json +7 -7
  628. package/dist/lib/schemas-data/3.0/property/list-property-lists-request.json +5 -5
  629. package/dist/lib/schemas-data/3.0/property/list-property-lists-response.json +5 -5
  630. package/dist/lib/schemas-data/3.0/property/property-error.json +2 -2
  631. package/dist/lib/schemas-data/3.0/property/property-feature-definition.json +2 -2
  632. package/dist/lib/schemas-data/3.0/property/property-feature-result.json +4 -4
  633. package/dist/lib/schemas-data/3.0/property/property-feature-value.json +2 -2
  634. package/dist/lib/schemas-data/3.0/property/property-feature.json +1 -1
  635. package/dist/lib/schemas-data/3.0/property/property-list-changed-webhook.json +2 -2
  636. package/dist/lib/schemas-data/3.0/property/property-list-filters.json +5 -5
  637. package/dist/lib/schemas-data/3.0/property/property-list.json +6 -6
  638. package/dist/lib/schemas-data/3.0/property/update-property-list-request.json +7 -7
  639. package/dist/lib/schemas-data/3.0/property/update-property-list-response.json +4 -4
  640. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-request.json +5 -5
  641. package/dist/lib/schemas-data/3.0/property/validate-property-delivery-response.json +4 -4
  642. package/dist/lib/schemas-data/3.0/property/validation-result.json +5 -5
  643. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-request.json +3 -3
  644. package/dist/lib/schemas-data/3.0/protocol/get-adcp-capabilities-response.json +26 -26
  645. package/dist/lib/schemas-data/3.0/signals/activate-signal-request.json +5 -5
  646. package/dist/lib/schemas-data/3.0/signals/activate-signal-response.json +7 -7
  647. package/dist/lib/schemas-data/3.0/signals/get-signals-request.json +8 -8
  648. package/dist/lib/schemas-data/3.0/signals/get-signals-response.json +10 -10
  649. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-capabilities.json +1 -1
  650. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-request.json +3 -3
  651. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-get-offering-response.json +4 -4
  652. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-identity.json +1 -1
  653. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-request.json +5 -5
  654. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-initiate-session-response.json +7 -7
  655. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-request.json +3 -3
  656. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-send-message-response.json +7 -7
  657. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-request.json +3 -3
  658. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-terminate-session-response.json +5 -5
  659. package/dist/lib/schemas-data/3.0/sponsored-intelligence/si-ui-element.json +1 -1
  660. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  661. package/dist/lib/server/adcp-server.d.ts +21 -0
  662. package/dist/lib/server/adcp-server.d.ts.map +1 -1
  663. package/dist/lib/server/adcp-server.js +22 -1
  664. package/dist/lib/server/adcp-server.js.map +1 -1
  665. package/dist/lib/server/auth-signature.d.ts.map +1 -1
  666. package/dist/lib/server/auth-signature.js +21 -0
  667. package/dist/lib/server/auth-signature.js.map +1 -1
  668. package/dist/lib/server/auth.d.ts +24 -0
  669. package/dist/lib/server/auth.d.ts.map +1 -1
  670. package/dist/lib/server/auth.js +71 -3
  671. package/dist/lib/server/auth.js.map +1 -1
  672. package/dist/lib/server/create-adcp-server.d.ts +203 -21
  673. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  674. package/dist/lib/server/create-adcp-server.js +322 -13
  675. package/dist/lib/server/create-adcp-server.js.map +1 -1
  676. package/dist/lib/server/decisioning/account.d.ts +340 -21
  677. package/dist/lib/server/decisioning/account.d.ts.map +1 -1
  678. package/dist/lib/server/decisioning/account.js +150 -4
  679. package/dist/lib/server/decisioning/account.js.map +1 -1
  680. package/dist/lib/server/decisioning/admin-router.d.ts.map +1 -1
  681. package/dist/lib/server/decisioning/admin-router.js +5 -1
  682. package/dist/lib/server/decisioning/admin-router.js.map +1 -1
  683. package/dist/lib/server/decisioning/buyer-agent.d.ts +465 -0
  684. package/dist/lib/server/decisioning/buyer-agent.d.ts.map +1 -0
  685. package/dist/lib/server/decisioning/buyer-agent.js +372 -0
  686. package/dist/lib/server/decisioning/buyer-agent.js.map +1 -0
  687. package/dist/lib/server/decisioning/capabilities.d.ts +39 -7
  688. package/dist/lib/server/decisioning/capabilities.d.ts.map +1 -1
  689. package/dist/lib/server/decisioning/compose.d.ts +93 -0
  690. package/dist/lib/server/decisioning/compose.d.ts.map +1 -0
  691. package/dist/lib/server/decisioning/compose.js +81 -0
  692. package/dist/lib/server/decisioning/compose.js.map +1 -0
  693. package/dist/lib/server/decisioning/context.d.ts +11 -0
  694. package/dist/lib/server/decisioning/context.d.ts.map +1 -1
  695. package/dist/lib/server/decisioning/index.d.ts +12 -3
  696. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  697. package/dist/lib/server/decisioning/index.js +45 -2
  698. package/dist/lib/server/decisioning/index.js.map +1 -1
  699. package/dist/lib/server/decisioning/platform-helpers.d.ts +269 -0
  700. package/dist/lib/server/decisioning/platform-helpers.d.ts.map +1 -0
  701. package/dist/lib/server/decisioning/platform-helpers.js +316 -0
  702. package/dist/lib/server/decisioning/platform-helpers.js.map +1 -0
  703. package/dist/lib/server/decisioning/platform.d.ts +127 -4
  704. package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
  705. package/dist/lib/server/decisioning/platform.js.map +1 -1
  706. package/dist/lib/server/decisioning/resolve-presets.d.ts +129 -0
  707. package/dist/lib/server/decisioning/resolve-presets.d.ts.map +1 -0
  708. package/dist/lib/server/decisioning/resolve-presets.js +142 -0
  709. package/dist/lib/server/decisioning/resolve-presets.js.map +1 -0
  710. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.d.ts +8 -0
  711. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.d.ts.map +1 -0
  712. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js +101 -0
  713. package/dist/lib/server/decisioning/runtime/entity-hydration.generated.js.map +1 -0
  714. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +91 -8
  715. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  716. package/dist/lib/server/decisioning/runtime/from-platform.js +764 -130
  717. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  718. package/dist/lib/server/decisioning/runtime/to-context.d.ts.map +1 -1
  719. package/dist/lib/server/decisioning/runtime/to-context.js +1 -0
  720. package/dist/lib/server/decisioning/runtime/to-context.js.map +1 -1
  721. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
  722. package/dist/lib/server/decisioning/runtime/validate-platform.js +31 -3
  723. package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
  724. package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts +83 -6
  725. package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts.map +1 -1
  726. package/dist/lib/server/decisioning/specialisms/brand-rights.js +12 -5
  727. package/dist/lib/server/decisioning/specialisms/brand-rights.js.map +1 -1
  728. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts +41 -4
  729. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts.map +1 -1
  730. package/dist/lib/server/decisioning/specialisms/creative.d.ts +47 -3
  731. package/dist/lib/server/decisioning/specialisms/creative.d.ts.map +1 -1
  732. package/dist/lib/server/decisioning/specialisms/sales.d.ts +115 -9
  733. package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
  734. package/dist/lib/server/decisioning/tenant-registry.d.ts.map +1 -1
  735. package/dist/lib/server/decisioning/tenant-registry.js +8 -3
  736. package/dist/lib/server/decisioning/tenant-registry.js.map +1 -1
  737. package/dist/lib/server/decisioning/tenant-store.d.ts +200 -0
  738. package/dist/lib/server/decisioning/tenant-store.d.ts.map +1 -0
  739. package/dist/lib/server/decisioning/tenant-store.js +182 -0
  740. package/dist/lib/server/decisioning/tenant-store.js.map +1 -0
  741. package/dist/lib/server/decisioning/validate-specialisms.d.ts +66 -0
  742. package/dist/lib/server/decisioning/validate-specialisms.d.ts.map +1 -0
  743. package/dist/lib/server/decisioning/validate-specialisms.js +119 -0
  744. package/dist/lib/server/decisioning/validate-specialisms.js.map +1 -0
  745. package/dist/lib/server/index.d.ts +11 -2
  746. package/dist/lib/server/index.d.ts.map +1 -1
  747. package/dist/lib/server/index.js +35 -3
  748. package/dist/lib/server/index.js.map +1 -1
  749. package/dist/lib/server/media-buy-store.d.ts +126 -0
  750. package/dist/lib/server/media-buy-store.d.ts.map +1 -0
  751. package/dist/lib/server/media-buy-store.js +171 -0
  752. package/dist/lib/server/media-buy-store.js.map +1 -0
  753. package/dist/lib/server/redact.d.ts +52 -0
  754. package/dist/lib/server/redact.d.ts.map +1 -0
  755. package/dist/lib/server/redact.js +86 -0
  756. package/dist/lib/server/redact.js.map +1 -0
  757. package/dist/lib/server/responses.d.ts +60 -1
  758. package/dist/lib/server/responses.d.ts.map +1 -1
  759. package/dist/lib/server/responses.js +110 -1
  760. package/dist/lib/server/responses.js.map +1 -1
  761. package/dist/lib/server/serve.d.ts.map +1 -1
  762. package/dist/lib/server/serve.js +35 -1
  763. package/dist/lib/server/serve.js.map +1 -1
  764. package/dist/lib/server/state-machine.d.ts +80 -0
  765. package/dist/lib/server/state-machine.d.ts.map +1 -0
  766. package/dist/lib/server/state-machine.js +125 -0
  767. package/dist/lib/server/state-machine.js.map +1 -0
  768. package/dist/lib/server/test-controller.d.ts +48 -0
  769. package/dist/lib/server/test-controller.d.ts.map +1 -1
  770. package/dist/lib/server/test-controller.js +89 -10
  771. package/dist/lib/server/test-controller.js.map +1 -1
  772. package/dist/lib/server/upstream-helpers.d.ts +182 -0
  773. package/dist/lib/server/upstream-helpers.d.ts.map +1 -0
  774. package/dist/lib/server/upstream-helpers.js +140 -0
  775. package/dist/lib/server/upstream-helpers.js.map +1 -0
  776. package/dist/lib/signing/agent-resolver/canonicalize.d.ts +44 -0
  777. package/dist/lib/signing/agent-resolver/canonicalize.d.ts.map +1 -0
  778. package/dist/lib/signing/agent-resolver/canonicalize.js +85 -0
  779. package/dist/lib/signing/agent-resolver/canonicalize.js.map +1 -0
  780. package/dist/lib/signing/agent-resolver/capabilities-types.d.ts +54 -0
  781. package/dist/lib/signing/agent-resolver/capabilities-types.d.ts.map +1 -0
  782. package/dist/lib/signing/agent-resolver/capabilities-types.js +49 -0
  783. package/dist/lib/signing/agent-resolver/capabilities-types.js.map +1 -0
  784. package/dist/lib/signing/agent-resolver/consistency.d.ts +84 -0
  785. package/dist/lib/signing/agent-resolver/consistency.d.ts.map +1 -0
  786. package/dist/lib/signing/agent-resolver/consistency.js +121 -0
  787. package/dist/lib/signing/agent-resolver/consistency.js.map +1 -0
  788. package/dist/lib/signing/agent-resolver/errors.d.ts +68 -0
  789. package/dist/lib/signing/agent-resolver/errors.d.ts.map +1 -0
  790. package/dist/lib/signing/agent-resolver/errors.js +45 -0
  791. package/dist/lib/signing/agent-resolver/errors.js.map +1 -0
  792. package/dist/lib/signing/agent-resolver/etld.d.ts +25 -0
  793. package/dist/lib/signing/agent-resolver/etld.d.ts.map +1 -0
  794. package/dist/lib/signing/agent-resolver/etld.js +75 -0
  795. package/dist/lib/signing/agent-resolver/etld.js.map +1 -0
  796. package/dist/lib/signing/agent-resolver/fetch-helpers.d.ts +41 -0
  797. package/dist/lib/signing/agent-resolver/fetch-helpers.d.ts.map +1 -0
  798. package/dist/lib/signing/agent-resolver/fetch-helpers.js +85 -0
  799. package/dist/lib/signing/agent-resolver/fetch-helpers.js.map +1 -0
  800. package/dist/lib/signing/agent-resolver/index.d.ts +26 -0
  801. package/dist/lib/signing/agent-resolver/index.d.ts.map +1 -0
  802. package/dist/lib/signing/agent-resolver/index.js +33 -0
  803. package/dist/lib/signing/agent-resolver/index.js.map +1 -0
  804. package/dist/lib/signing/agent-resolver/jwks-set.d.ts +76 -0
  805. package/dist/lib/signing/agent-resolver/jwks-set.d.ts.map +1 -0
  806. package/dist/lib/signing/agent-resolver/jwks-set.js +124 -0
  807. package/dist/lib/signing/agent-resolver/jwks-set.js.map +1 -0
  808. package/dist/lib/signing/agent-resolver/resolve-agent.d.ts +123 -0
  809. package/dist/lib/signing/agent-resolver/resolve-agent.d.ts.map +1 -0
  810. package/dist/lib/signing/agent-resolver/resolve-agent.js +398 -0
  811. package/dist/lib/signing/agent-resolver/resolve-agent.js.map +1 -0
  812. package/dist/lib/signing/agent-resolver/select-agent.d.ts +54 -0
  813. package/dist/lib/signing/agent-resolver/select-agent.d.ts.map +1 -0
  814. package/dist/lib/signing/agent-resolver/select-agent.js +94 -0
  815. package/dist/lib/signing/agent-resolver/select-agent.js.map +1 -0
  816. package/dist/lib/signing/agent-resolver/strict-json.d.ts +44 -0
  817. package/dist/lib/signing/agent-resolver/strict-json.d.ts.map +1 -0
  818. package/dist/lib/signing/agent-resolver/strict-json.js +219 -0
  819. package/dist/lib/signing/agent-resolver/strict-json.js.map +1 -0
  820. package/dist/lib/signing/capability-priming.d.ts.map +1 -1
  821. package/dist/lib/signing/capability-priming.js +2 -55
  822. package/dist/lib/signing/capability-priming.js.map +1 -1
  823. package/dist/lib/signing/protocol-response.d.ts +18 -0
  824. package/dist/lib/signing/protocol-response.d.ts.map +1 -0
  825. package/dist/lib/signing/protocol-response.js +69 -0
  826. package/dist/lib/signing/protocol-response.js.map +1 -0
  827. package/dist/lib/signing/server.d.ts +1 -0
  828. package/dist/lib/signing/server.d.ts.map +1 -1
  829. package/dist/lib/signing/server.js +10 -1
  830. package/dist/lib/signing/server.js.map +1 -1
  831. package/dist/lib/signing/testing.d.ts +64 -0
  832. package/dist/lib/signing/testing.d.ts.map +1 -1
  833. package/dist/lib/signing/testing.js +100 -5
  834. package/dist/lib/signing/testing.js.map +1 -1
  835. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  836. package/dist/lib/testing/compliance/comply.js +2 -0
  837. package/dist/lib/testing/compliance/comply.js.map +1 -1
  838. package/dist/lib/testing/compliance/types.d.ts +8 -0
  839. package/dist/lib/testing/compliance/types.d.ts.map +1 -1
  840. package/dist/lib/testing/storyboard/agent-routing.d.ts +92 -0
  841. package/dist/lib/testing/storyboard/agent-routing.d.ts.map +1 -0
  842. package/dist/lib/testing/storyboard/agent-routing.js +291 -0
  843. package/dist/lib/testing/storyboard/agent-routing.js.map +1 -0
  844. package/dist/lib/testing/storyboard/context.d.ts +22 -0
  845. package/dist/lib/testing/storyboard/context.d.ts.map +1 -1
  846. package/dist/lib/testing/storyboard/context.js +35 -8
  847. package/dist/lib/testing/storyboard/context.js.map +1 -1
  848. package/dist/lib/testing/storyboard/default-invariants.js +6 -35
  849. package/dist/lib/testing/storyboard/default-invariants.js.map +1 -1
  850. package/dist/lib/testing/storyboard/index.d.ts +1 -1
  851. package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
  852. package/dist/lib/testing/storyboard/index.js.map +1 -1
  853. package/dist/lib/testing/storyboard/loader.d.ts.map +1 -1
  854. package/dist/lib/testing/storyboard/loader.js +84 -12
  855. package/dist/lib/testing/storyboard/loader.js.map +1 -1
  856. package/dist/lib/testing/storyboard/request-builder.d.ts.map +1 -1
  857. package/dist/lib/testing/storyboard/request-builder.js +14 -1
  858. package/dist/lib/testing/storyboard/request-builder.js.map +1 -1
  859. package/dist/lib/testing/storyboard/runner.d.ts +17 -0
  860. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  861. package/dist/lib/testing/storyboard/runner.js +867 -144
  862. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  863. package/dist/lib/testing/storyboard/types.d.ts +254 -12
  864. package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
  865. package/dist/lib/testing/storyboard/types.js.map +1 -1
  866. package/dist/lib/testing/storyboard/validations.d.ts +65 -0
  867. package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
  868. package/dist/lib/testing/storyboard/validations.js +529 -2
  869. package/dist/lib/testing/storyboard/validations.js.map +1 -1
  870. package/dist/lib/testing/test-controller.d.ts +59 -1
  871. package/dist/lib/testing/test-controller.d.ts.map +1 -1
  872. package/dist/lib/testing/test-controller.js +30 -0
  873. package/dist/lib/testing/test-controller.js.map +1 -1
  874. package/dist/lib/testing/types.d.ts +14 -0
  875. package/dist/lib/testing/types.d.ts.map +1 -1
  876. package/dist/lib/types/core.generated.d.ts +299 -141
  877. package/dist/lib/types/core.generated.d.ts.map +1 -1
  878. package/dist/lib/types/core.generated.js +2 -2
  879. package/dist/lib/types/error-codes.d.ts +168 -108
  880. package/dist/lib/types/error-codes.d.ts.map +1 -1
  881. package/dist/lib/types/error-codes.js +23 -190
  882. package/dist/lib/types/error-codes.js.map +1 -1
  883. package/dist/lib/types/error-details.aliases.d.ts +48 -0
  884. package/dist/lib/types/error-details.aliases.d.ts.map +1 -0
  885. package/dist/lib/types/error-details.aliases.js +41 -0
  886. package/dist/lib/types/error-details.aliases.js.map +1 -0
  887. package/dist/lib/types/index.d.ts +14 -1
  888. package/dist/lib/types/index.d.ts.map +1 -1
  889. package/dist/lib/types/index.js +4 -0
  890. package/dist/lib/types/index.js.map +1 -1
  891. package/dist/lib/types/inline-enums.generated.d.ts +2 -4
  892. package/dist/lib/types/inline-enums.generated.d.ts.map +1 -1
  893. package/dist/lib/types/inline-enums.generated.js +10 -7
  894. package/dist/lib/types/inline-enums.generated.js.map +1 -1
  895. package/dist/lib/types/manifest.generated.d.ts +280 -0
  896. package/dist/lib/types/manifest.generated.d.ts.map +1 -0
  897. package/dist/lib/types/manifest.generated.js +339 -0
  898. package/dist/lib/types/manifest.generated.js.map +1 -0
  899. package/dist/lib/types/schemas.generated.d.ts +27229 -25160
  900. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  901. package/dist/lib/types/schemas.generated.js +584 -533
  902. package/dist/lib/types/schemas.generated.js.map +1 -1
  903. package/dist/lib/types/tools.generated.d.ts +146 -21
  904. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  905. package/dist/lib/types/v2-5/tools.generated.d.ts +48 -1
  906. package/dist/lib/types/v2-5/tools.generated.d.ts.map +1 -1
  907. package/dist/lib/upstream-recorder/index.d.ts +57 -0
  908. package/dist/lib/upstream-recorder/index.d.ts.map +1 -0
  909. package/dist/lib/upstream-recorder/index.js +62 -0
  910. package/dist/lib/upstream-recorder/index.js.map +1 -0
  911. package/dist/lib/upstream-recorder/recorder.d.ts +35 -0
  912. package/dist/lib/upstream-recorder/recorder.d.ts.map +1 -0
  913. package/dist/lib/upstream-recorder/recorder.js +507 -0
  914. package/dist/lib/upstream-recorder/recorder.js.map +1 -0
  915. package/dist/lib/upstream-recorder/types.d.ts +365 -0
  916. package/dist/lib/upstream-recorder/types.d.ts.map +1 -0
  917. package/dist/lib/upstream-recorder/types.js +30 -0
  918. package/dist/lib/upstream-recorder/types.js.map +1 -0
  919. package/dist/lib/utils/capabilities.d.ts +66 -3
  920. package/dist/lib/utils/capabilities.d.ts.map +1 -1
  921. package/dist/lib/utils/capabilities.js +111 -3
  922. package/dist/lib/utils/capabilities.js.map +1 -1
  923. package/dist/lib/utils/error-extraction.d.ts +24 -0
  924. package/dist/lib/utils/error-extraction.d.ts.map +1 -1
  925. package/dist/lib/utils/error-extraction.js +0 -2
  926. package/dist/lib/utils/error-extraction.js.map +1 -1
  927. package/dist/lib/utils/format-render-builders.d.ts +2 -1
  928. package/dist/lib/utils/format-render-builders.d.ts.map +1 -1
  929. package/dist/lib/utils/format-render-builders.js +0 -23
  930. package/dist/lib/utils/format-render-builders.js.map +1 -1
  931. package/dist/lib/utils/glob.d.ts +28 -0
  932. package/dist/lib/utils/glob.d.ts.map +1 -0
  933. package/dist/lib/utils/glob.js +37 -0
  934. package/dist/lib/utils/glob.js.map +1 -0
  935. package/dist/lib/utils/redact-secrets.d.ts +37 -0
  936. package/dist/lib/utils/redact-secrets.d.ts.map +1 -0
  937. package/dist/lib/utils/redact-secrets.js +65 -0
  938. package/dist/lib/utils/redact-secrets.js.map +1 -0
  939. package/dist/lib/utils/tool-request-schemas.d.ts.map +1 -1
  940. package/dist/lib/utils/tool-request-schemas.js +1 -0
  941. package/dist/lib/utils/tool-request-schemas.js.map +1 -1
  942. package/dist/lib/validation/hints.d.ts +50 -0
  943. package/dist/lib/validation/hints.d.ts.map +1 -0
  944. package/dist/lib/validation/hints.js +194 -0
  945. package/dist/lib/validation/hints.js.map +1 -0
  946. package/dist/lib/validation/schema-errors.d.ts +2 -1
  947. package/dist/lib/validation/schema-errors.d.ts.map +1 -1
  948. package/dist/lib/validation/schema-errors.js +39 -4
  949. package/dist/lib/validation/schema-errors.js.map +1 -1
  950. package/dist/lib/validation/schema-loader.d.ts +13 -0
  951. package/dist/lib/validation/schema-loader.d.ts.map +1 -1
  952. package/dist/lib/validation/schema-loader.js +20 -0
  953. package/dist/lib/validation/schema-loader.js.map +1 -1
  954. package/dist/lib/validation/schema-validator.d.ts +107 -2
  955. package/dist/lib/validation/schema-validator.d.ts.map +1 -1
  956. package/dist/lib/validation/schema-validator.js +205 -12
  957. package/dist/lib/validation/schema-validator.js.map +1 -1
  958. package/dist/lib/validation/sync-creatives.d.ts +30 -0
  959. package/dist/lib/validation/sync-creatives.d.ts.map +1 -1
  960. package/dist/lib/version.d.ts +7 -7
  961. package/dist/lib/version.d.ts.map +1 -1
  962. package/dist/lib/version.js +9 -5
  963. package/dist/lib/version.js.map +1 -1
  964. package/docs/guides/BUILD-AN-AGENT.md +267 -137
  965. package/docs/llms.txt +110 -55
  966. package/examples/CONTRIBUTING.md +173 -0
  967. package/examples/README.md +32 -0
  968. package/examples/comply-controller-seller.ts +9 -17
  969. package/examples/decisioning-platform-broadcast-tv.ts +3 -2
  970. package/examples/decisioning-platform-implicit-accounts.ts +168 -0
  971. package/examples/decisioning-platform-mock-seller.ts +3 -2
  972. package/examples/decisioning-platform-multi-tenant-db.ts +317 -0
  973. package/examples/decisioning-platform-programmatic.ts +3 -2
  974. package/examples/hello-cluster.ts +421 -0
  975. package/examples/hello_creative_adapter_template.ts +528 -0
  976. package/examples/hello_seller_adapter_guaranteed.ts +1080 -0
  977. package/examples/hello_seller_adapter_multi_tenant.ts +1046 -0
  978. package/examples/hello_seller_adapter_social.ts +829 -0
  979. package/examples/hello_signals_adapter_marketplace.ts +532 -0
  980. package/examples/seller-test-controller.ts +22 -28
  981. package/package.json +30 -3
  982. package/skills/SHAPE-GOTCHAS.md +233 -0
  983. package/skills/build-brand-rights-agent/SKILL.md +121 -16
  984. package/skills/build-creative-agent/SKILL.md +25 -1
  985. package/skills/build-decisioning-platform/advanced/MULTI-TENANT.md +104 -28
  986. package/skills/build-holdco-agent/SKILL.md +250 -0
  987. package/skills/build-seller-agent/SKILL.md +313 -49
  988. package/skills/build-seller-agent/specialisms/sales-broadcast-tv.md +2 -0
  989. package/skills/build-seller-agent/specialisms/sales-guaranteed.md +18 -0
  990. package/skills/build-seller-agent/specialisms/sales-non-guaranteed.md +2 -0
  991. package/skills/build-seller-agent/specialisms/sales-social.md +63 -2
  992. package/skills/build-signals-agent/SKILL.md +2 -0
  993. package/skills/call-adcp-agent.previous/SKILL.md +8 -86
  994. package/skills/run-by-experts/SKILL.md +116 -0
  995. package/skills/triage-storyboard-failure/SKILL.md +96 -0
  996. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/brand/index.yaml +0 -0
  997. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/creative/index.yaml +0 -0
  998. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/governance/index.yaml +0 -0
  999. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/creative-reception.yaml +0 -0
  1000. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/index.yaml +0 -0
  1001. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  1002. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  1003. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/delivery_reporting.yaml +0 -0
  1004. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/governance_approved.yaml +0 -0
  1005. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/governance_conditions.yaml +0 -0
  1006. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/governance_denied.yaml +0 -0
  1007. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  1008. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/invalid_transitions.yaml +0 -0
  1009. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  1010. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  1011. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  1012. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  1013. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/proposal_finalize.yaml +0 -0
  1014. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/scenarios/refine_products.yaml +0 -0
  1015. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/media-buy/state-machine.yaml +0 -0
  1016. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/signals/index.yaml +0 -0
  1017. /package/compliance/cache/{3.0.1 → 3.0.5}/domains/sponsored-intelligence/index.yaml +0 -0
  1018. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/brand/index.yaml +0 -0
  1019. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/creative/index.yaml +0 -0
  1020. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/governance/index.yaml +0 -0
  1021. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/creative-reception.yaml +0 -0
  1022. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/index.yaml +0 -0
  1023. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -0
  1024. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -0
  1025. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -0
  1026. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/governance_approved.yaml +0 -0
  1027. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/governance_conditions.yaml +0 -0
  1028. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/governance_denied.yaml +0 -0
  1029. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -0
  1030. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -0
  1031. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -0
  1032. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -0
  1033. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -0
  1034. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -0
  1035. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -0
  1036. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/scenarios/refine_products.yaml +0 -0
  1037. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/media-buy/state-machine.yaml +0 -0
  1038. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/signals/index.yaml +0 -0
  1039. /package/compliance/cache/{3.0.1 → 3.0.5}/protocols/sponsored-intelligence/index.yaml +0 -0
  1040. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -0
  1041. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/collection-lists/index.yaml +0 -0
  1042. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/content-standards/index.yaml +0 -0
  1043. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/creative-ad-server/index.yaml +0 -0
  1044. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/creative-generative/generative-seller.yaml +0 -0
  1045. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/creative-generative/index.yaml +0 -0
  1046. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/creative-template/index.yaml +0 -0
  1047. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/governance-aware-seller/index.yaml +0 -0
  1048. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/governance-delivery-monitor/index.yaml +0 -0
  1049. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/governance-spend-authority/denied.yaml +0 -0
  1050. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/governance-spend-authority/index.yaml +0 -0
  1051. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/property-lists/index.yaml +0 -0
  1052. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/sales-broadcast-tv/index.yaml +0 -0
  1053. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/sales-catalog-driven/index.yaml +0 -0
  1054. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/sales-guaranteed/index.yaml +0 -0
  1055. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/sales-non-guaranteed/index.yaml +0 -0
  1056. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/sales-proposal-mode/index.yaml +0 -0
  1057. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/signal-marketplace/index.yaml +0 -0
  1058. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -0
  1059. /package/compliance/cache/{3.0.1 → 3.0.5}/specialisms/signal-owned/index.yaml +0 -0
  1060. /package/compliance/cache/{3.0.1 → 3.0.5}/test-kits/acme-outdoor.yaml +0 -0
  1061. /package/compliance/cache/{3.0.1 → 3.0.5}/test-kits/bistro-oranje.yaml +0 -0
  1062. /package/compliance/cache/{3.0.1 → 3.0.5}/test-kits/nova-motors.yaml +0 -0
  1063. /package/compliance/cache/{3.0.1 → 3.0.5}/test-kits/osei-natural.yaml +0 -0
  1064. /package/compliance/cache/{3.0.1 → 3.0.5}/test-kits/signed-requests-runner.yaml +0 -0
  1065. /package/compliance/cache/{3.0.1 → 3.0.5}/test-kits/substitution-observer-runner.yaml +0 -0
  1066. /package/compliance/cache/{3.0.1 → 3.0.5}/test-kits/summit-foods.yaml +0 -0
  1067. /package/compliance/cache/{3.0.1 → 3.0.5}/test-kits/webhook-receiver-runner.yaml +0 -0
  1068. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/001-minimal-plan.json +0 -0
  1069. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/002-full-plan.json +0 -0
  1070. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -0
  1071. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/004a-human-review-omitted.json +0 -0
  1072. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -0
  1073. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -0
  1074. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -0
  1075. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -0
  1076. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -0
  1077. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/007-unicode-objectives.json +0 -0
  1078. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -0
  1079. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/README.md +0 -0
  1080. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/canonicalization.json +0 -0
  1081. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/keys.json +0 -0
  1082. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/001-no-signature-header.json +0 -0
  1083. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/002-wrong-tag.json +0 -0
  1084. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/003-expired-signature.json +0 -0
  1085. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/004-window-too-long.json +0 -0
  1086. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -0
  1087. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -0
  1088. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -0
  1089. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -0
  1090. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -0
  1091. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -0
  1092. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/011-malformed-header.json +0 -0
  1093. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -0
  1094. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/013-expires-le-created.json +0 -0
  1095. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -0
  1096. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/015-signature-invalid.json +0 -0
  1097. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -0
  1098. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/017-key-revoked.json +0 -0
  1099. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -0
  1100. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -0
  1101. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/020-rate-abuse.json +0 -0
  1102. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -0
  1103. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -0
  1104. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -0
  1105. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -0
  1106. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -0
  1107. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -0
  1108. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -0
  1109. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/001-basic-post.json +0 -0
  1110. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -0
  1111. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/003-es256-post.json +0 -0
  1112. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -0
  1113. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -0
  1114. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -0
  1115. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -0
  1116. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -0
  1117. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -0
  1118. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -0
  1119. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -0
  1120. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -0
  1121. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/README.md +0 -0
  1122. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/keys.json +0 -0
  1123. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -0
  1124. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -0
  1125. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -0
  1126. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -0
  1127. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -0
  1128. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -0
  1129. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -0
  1130. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -0
  1131. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -0
  1132. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -0
  1133. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -0
  1134. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -0
  1135. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -0
  1136. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -0
  1137. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -0
  1138. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -0
  1139. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -0
  1140. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -0
  1141. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -0
  1142. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -0
  1143. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -0
  1144. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/positive/001-basic-post.json +0 -0
  1145. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/positive/002-es256-post.json +0 -0
  1146. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -0
  1147. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -0
  1148. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -0
  1149. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -0
  1150. /package/compliance/cache/{3.0.1 → 3.0.5}/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -0
  1151. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/capability-discovery.yaml +0 -0
  1152. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/collection-lists-pagination-integrity.yaml +0 -0
  1153. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/content-standards-pagination-integrity.yaml +0 -0
  1154. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/deterministic-testing.yaml +0 -0
  1155. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/error-compliance.yaml +0 -0
  1156. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/fictional-entities.yaml +0 -0
  1157. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/get-media-buys-pagination-integrity.yaml +0 -0
  1158. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/get-signals-pagination-integrity.yaml +0 -0
  1159. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/idempotency.yaml +0 -0
  1160. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/pagination-integrity-creative-formats.yaml +0 -0
  1161. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/pagination-integrity-list-accounts.yaml +0 -0
  1162. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/pagination-integrity.yaml +0 -0
  1163. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/property-lists-pagination-integrity.yaml +0 -0
  1164. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/schema-validation.yaml +0 -0
  1165. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/security.yaml +0 -0
  1166. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/signed-requests.yaml +0 -0
  1167. /package/compliance/cache/{3.0.1 → 3.0.5}/universal/webhook-emission.yaml +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adcp/sdk",
3
- "version": "6.5.0",
3
+ "version": "6.7.0",
4
4
  "description": "AdCP SDK — client, server, and compliance harnesses for the AdContext Protocol (MCP + A2A)",
5
5
  "workspaces": [
6
6
  ".",
@@ -110,6 +110,16 @@
110
110
  "require": "./dist/lib/express-mcp/index.js",
111
111
  "types": "./dist/lib/express-mcp/index.d.ts"
112
112
  },
113
+ "./mock-server": {
114
+ "import": "./dist/lib/mock-server/index.js",
115
+ "require": "./dist/lib/mock-server/index.js",
116
+ "types": "./dist/lib/mock-server/index.d.ts"
117
+ },
118
+ "./upstream-recorder": {
119
+ "import": "./dist/lib/upstream-recorder/index.js",
120
+ "require": "./dist/lib/upstream-recorder/index.js",
121
+ "types": "./dist/lib/upstream-recorder/index.d.ts"
122
+ },
113
123
  "./package.json": "./package.json"
114
124
  },
115
125
  "typesVersions": {
@@ -164,6 +174,12 @@
164
174
  ],
165
175
  "express-mcp": [
166
176
  "dist/lib/express-mcp/index.d.ts"
177
+ ],
178
+ "mock-server": [
179
+ "dist/lib/mock-server/index.d.ts"
180
+ ],
181
+ "upstream-recorder": [
182
+ "dist/lib/upstream-recorder/index.d.ts"
167
183
  ]
168
184
  }
169
185
  },
@@ -190,8 +206,12 @@
190
206
  "build": "npm run build:lib",
191
207
  "build:lib": "npm run sync-version && tsc --project tsconfig.lib.json && tsx scripts/copy-schemas-to-dist.ts",
192
208
  "build:test-agents": "npm run build:lib && tsc -p test-agents/tsconfig.json --rootDir test-agents",
209
+ "pretest": "npm run schemas:ensure",
193
210
  "test": "NODE_ENV=test node --test-timeout=60000 --test-force-exit --test test/*.test.js test/lib/*.test.js",
211
+ "pretest:lib": "npm run schemas:ensure",
194
212
  "test:lib": "NODE_ENV=test node --test-timeout=60000 --test-force-exit --test test/lib/*.test.js",
213
+ "pretest:examples": "npm run build",
214
+ "test:examples": "NODE_ENV=test node --test-timeout=180000 --test-force-exit --test-concurrency=1 --test test/examples/*.test.js",
195
215
  "test:e2e": "node test/e2e/adcp-e2e.test.js",
196
216
  "test:protocols": "node test/run-protocol-tests.js",
197
217
  "changeset": "changeset",
@@ -206,8 +226,11 @@
206
226
  "sync-schemas": "tsx scripts/sync-schemas.ts",
207
227
  "sync-schemas:v2.5": "tsx scripts/sync-v2-5-schemas.ts",
208
228
  "sync-schemas:all": "npm run sync-schemas && npm run sync-schemas:v2.5",
229
+ "schemas:ensure": "tsx scripts/schemas-ensure.ts",
209
230
  "schema-diff": "tsx scripts/schema-diff.ts",
210
- "generate-types": "tsx scripts/generate-types.ts && tsx scripts/generate-enum-arrays.ts",
231
+ "generate-types": "tsx scripts/generate-types.ts && tsx scripts/generate-enum-arrays.ts && tsx scripts/generate-manifest-derived.ts && tsx scripts/generate-entity-hydration.ts",
232
+ "generate-manifest-derived": "tsx scripts/generate-manifest-derived.ts",
233
+ "generate-entity-hydration": "tsx scripts/generate-entity-hydration.ts",
211
234
  "generate-types:v2.5": "tsx scripts/generate-v2-5-types.ts",
212
235
  "generate-types:all": "npm run generate-types && npm run generate-types:v2.5",
213
236
  "generate-registry-types": "tsx scripts/generate-registry-types.ts",
@@ -220,6 +243,7 @@
220
243
  "compliance:skill-matrix": "tsx scripts/manual-testing/run-skill-matrix.ts",
221
244
  "typecheck:skill-examples": "tsx scripts/typecheck-skill-examples.ts",
222
245
  "check:skill-sync": "tsx scripts/check-skill-sync.ts",
246
+ "check:adopter-types": "tsx scripts/check-adopter-types.ts",
223
247
  "sync-version": "tsx scripts/sync-version.ts",
224
248
  "validate-schemas": "tsx scripts/validate-schemas.ts",
225
249
  "lint": "eslint 'src/lib/testing/**/*.ts'",
@@ -238,6 +262,7 @@
238
262
  "ci:pre-push": "npm run ci:schema-check && npm run ci:quick",
239
263
  "hooks:install": "node scripts/install-hooks.js",
240
264
  "hooks:uninstall": "rm -f .git/hooks/pre-push",
265
+ "hello-cluster": "tsx examples/hello-cluster.ts",
241
266
  "registry:cron": "tsx src/registry/cron.ts",
242
267
  "registry:validate-all": "tsx src/registry/cron.ts --all",
243
268
  "registry:validate-pending": "tsx src/registry/cron.ts --pending",
@@ -275,7 +300,9 @@
275
300
  "ajv-formats": "^3.0.1",
276
301
  "fast-check": "^3.23.2",
277
302
  "jose": "^6.2.2",
303
+ "secure-json-parse": "^4.1.0",
278
304
  "structured-headers": "^2.0.2",
305
+ "tldts": "^7.0.29",
279
306
  "undici": "^6.25.0",
280
307
  "yaml": "^2.7.1"
281
308
  },
@@ -332,5 +359,5 @@
332
359
  },
333
360
  "minimatch": "^10.2.1"
334
361
  },
335
- "adcp_version": "3.0.1"
362
+ "adcp_version": "3.0.5"
336
363
  }
@@ -0,0 +1,233 @@
1
+ # Common shape gotchas
2
+
3
+ Discriminated-union and embedded-shape patterns adopters consistently get wrong on the first pass. The strict response validators in the storyboard runner catch these at runtime; type checkers don't, because the types are technically satisfiable in the wrong shape. Each entry below: the wrong shape adopters write first, the right shape, and a one-line "why."
4
+
5
+ Six patterns surfaced repeatedly while building reference adapters (`examples/hello_{seller,creative,signals}_adapter_*.ts`) and during blind LLM matrix runs. Catching them costs 1–3 iterations of "why is this field reported missing?" — this page is the shortcut.
6
+
7
+ ---
8
+
9
+ ## 1. `ActivationKey` `oneOf` — `key`/`value` are top-level, not nested
10
+
11
+ When returning `activate_signal` deployments with `type: 'key_value'` activation keys, `key` and `value` sit at the TOP level of `activation_key`. NOT nested under a `key_value` sub-field.
12
+
13
+ ✗ Wrong (intuitive — the discriminator name *suggests* nesting):
14
+
15
+ ```ts
16
+ activation_key: {
17
+ type: 'key_value',
18
+ key_value: { key: 'segment', value: 'abc123' },
19
+ }
20
+ ```
21
+
22
+ ✓ Right (matches `/schemas/3.0/core/activation-key.json` `oneOf[1]`):
23
+
24
+ ```ts
25
+ activation_key: {
26
+ type: 'key_value',
27
+ key: 'segment',
28
+ value: 'abc123',
29
+ }
30
+ ```
31
+
32
+ `value` MUST be a string. The schema allows a `segment_id` variant for platform-segment-id activations:
33
+
34
+ ```ts
35
+ activation_key: { type: 'segment_id', segment_id: 'plat_seg_xyz' }
36
+ ```
37
+
38
+ — same flatness, single string ID under the discriminator.
39
+
40
+ ---
41
+
42
+ ## 2. `signal_ids` is `signal_id[]` (provenance objects), not `string[]`
43
+
44
+ `get_signals` accepts a `signal_ids` filter to look up specific signals by data-provider provenance. The filter is an array of provenance tuples, NOT bare ID strings.
45
+
46
+ ✗ Wrong:
47
+
48
+ ```ts
49
+ { signal_ids: ['cohort_abc', 'cohort_xyz'] }
50
+ ```
51
+
52
+ ✓ Right (matches `/schemas/3.0/core/signal-id.json`):
53
+
54
+ ```ts
55
+ {
56
+ signal_ids: [
57
+ { source: 'catalog', data_provider_domain: 'tridentauto.example', id: 'likely_ev_buyers' },
58
+ { source: 'catalog', data_provider_domain: 'tridentauto.example', id: 'purchase_propensity' },
59
+ ],
60
+ }
61
+ ```
62
+
63
+ `SignalID` is a discriminated union: `source: 'catalog'` (with `data_provider_domain` + `id`) or `source: 'agent'` (with `agent_url` + `id`). When implementing the filter on the seller side, narrow on `source` before reading `data_provider_domain` — only the catalog variant has it.
64
+
65
+ ---
66
+
67
+ ## 3. `VASTAsset` requires an embedded `delivery_type` discriminator
68
+
69
+ `asset_type: 'vast'` is itself a discriminator at the asset level. A *second* discriminator (`delivery_type`) picks between inline VAST XML and a redirect URL. Both are required; you can't pass `content` or `vast_url` without `delivery_type`.
70
+
71
+ ✗ Wrong (flat `content` without `delivery_type`):
72
+
73
+ ```ts
74
+ { asset_type: 'vast', content: '<VAST version="4.2">...</VAST>' }
75
+ ```
76
+
77
+ ✓ Right — inline VAST:
78
+
79
+ ```ts
80
+ { asset_type: 'vast', delivery_type: 'inline', content: '<VAST version="4.2">...</VAST>' }
81
+ ```
82
+
83
+ ✓ Right — redirect VAST:
84
+
85
+ ```ts
86
+ { asset_type: 'vast', delivery_type: 'redirect', vast_url: 'https://ad-server.example/vast/abc.xml' }
87
+ ```
88
+
89
+ Same pattern applies to `DAASTAsset` (audio).
90
+
91
+ ---
92
+
93
+ ## 4. `PreviewCreativeResponse` is a three-way discriminated union
94
+
95
+ `preview_creative` returns one of `single | batch | variant`, with `response_type` as the discriminator. Even single-preview responses use the `previews[]` ARRAY shape — the validator grades per variant and won't accept a flat single-preview shape.
96
+
97
+ ✗ Wrong (flat object, no discriminator):
98
+
99
+ ```ts
100
+ { preview: { type: 'url', url: 'https://...', expires_at: '...' } }
101
+ ```
102
+
103
+ ✓ Right (single-variant `previews[]` array):
104
+
105
+ ```ts
106
+ {
107
+ response_type: 'single',
108
+ previews: [
109
+ {
110
+ preview_id: 'prv_abc',
111
+ renders: [
112
+ {
113
+ render_id: 'rnd_1',
114
+ output_format: 'url',
115
+ preview_url: 'https://preview.example/abc',
116
+ role: 'primary',
117
+ },
118
+ ],
119
+ input: { name: 'default' },
120
+ },
121
+ ],
122
+ expires_at: '2026-05-03T00:00:00Z',
123
+ }
124
+ ```
125
+
126
+ Each `PreviewRender` requires `render_id`, `output_format: 'url'` (or `'inline_html'`), `preview_url`, and `role`. Don't omit `role` — the validator requires it.
127
+
128
+ ---
129
+
130
+ ## 5. `BuildCreativeReturn` has 4 valid shapes — framework auto-wraps the bare manifest
131
+
132
+ `build_creative` handlers can return any of:
133
+
134
+ ```ts
135
+ type BuildCreativeReturn =
136
+ | CreativeManifest // bare single — framework wraps as { creative_manifest: <obj> }
137
+ | CreativeManifest[] // bare multi — framework wraps as { creative_manifests: <arr> }
138
+ | BuildCreativeSuccess // shaped single — passthrough; you set sandbox/expires_at/preview
139
+ | BuildCreativeMultiSuccess // shaped multi — passthrough
140
+ ```
141
+
142
+ Easy mistake: return a bare `CreativeManifest` and confirm the response *seems* fine via tests that read `response.format_id` directly. The wire shape after framework wrapping is `response.creative_manifest.format_id` — a level deeper. Storyboards check the wire path; if you didn't go through the framework wrapper in your test, the storyboard will surface "field missing at `creative_manifest.format_id`" while your local test passes.
143
+
144
+ If you need to set `sandbox: true` or attach `preview` previews, return the shaped envelope directly:
145
+
146
+ ```ts
147
+ return {
148
+ creative_manifest: { format_id: { agent_url, id }, assets },
149
+ sandbox: true,
150
+ expires_at: '2026-05-03T00:00:00Z',
151
+ };
152
+ ```
153
+
154
+ ---
155
+
156
+ ## 6. `log_event` projection for walled-garden CAPIs
157
+
158
+ Sales-social adopters fronting walled-garden conversion APIs translate AdCP's `log_event` wire shape onto the upstream CAPI's. Three projections trip every walled-garden integration on the first pass — the upstream returns `400` and the AdCP wire surface gives no hint that the field name or encoding was the problem.
159
+
160
+ | AdCP wire (`Event`) | Walled-garden CAPI | Translation |
161
+ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
162
+ | `event_type` (string) | `event_name` (string) | rename on the way out |
163
+ | `event_time` (ISO 8601 string) | `event_time` (UNIX seconds, number) | `Math.floor(new Date(t).getTime() / 1000)` |
164
+ | `user_match` (`hashed_email` / `hashed_phone` / `uids[]` / `click_id` / `client_ip`+`client_user_agent`) | `user_data.{email_sha256,phone_sha256,external_id_sha256}` (≥1 required) | map per the upstream's identifier types; drop events with empty `user_match` |
165
+
166
+ ### 6.1 `event_name`, not `event_type`
167
+
168
+ ✗ Wrong (passes AdCP type-check, fails the walled-garden 400):
169
+
170
+ ```ts
171
+ upstream.trackEvents({ events: req.events });
172
+ ```
173
+
174
+ ✓ Right:
175
+
176
+ ```ts
177
+ upstream.trackEvents({
178
+ events: req.events.map(e => ({
179
+ event_name: e.event_type,
180
+ // …other fields…
181
+ })),
182
+ });
183
+ ```
184
+
185
+ ### 6.2 UNIX seconds, not ISO 8601
186
+
187
+ ✗ Wrong:
188
+
189
+ ```ts
190
+ { event_time: e.event_time } // '2026-04-05T14:30:00Z'
191
+ ```
192
+
193
+ ✓ Right:
194
+
195
+ ```ts
196
+ { event_time: Math.floor(new Date(e.event_time).getTime() / 1000) }
197
+ ```
198
+
199
+ ### 6.3 Hashed-identifier requirement — read `Event.user_match`, drop on empty
200
+
201
+ Every walled-garden CAPI rejects events without at least one matchable identifier in `user_data` — typically `email_sha256`, `phone_sha256`, or `external_id_sha256` (64-char lowercase hex SHA-256). The AdCP wire field is `Event.user_match` (per `/schemas/3.0.4/core/user-match.json` — `hashed_email`, `hashed_phone`, `uids[]`, `click_id`, `client_ip`+`client_user_agent`). Project it onto the upstream's `user_data` shape; **drop events with empty `user_match`** rather than synthesize a fake identifier.
202
+
203
+ ```ts
204
+ const userData: { external_id_sha256?: string; email_sha256?: string; phone_sha256?: string } = {};
205
+ if (e.user_match?.hashed_email) userData.email_sha256 = e.user_match.hashed_email;
206
+ if (e.user_match?.hashed_phone) userData.phone_sha256 = e.user_match.hashed_phone;
207
+ const firstUid = e.user_match?.uids?.[0]?.value;
208
+ if (firstUid && /^[a-f0-9]{64}$/.test(firstUid)) userData.external_id_sha256 = firstUid;
209
+ if (Object.keys(userData).length === 0) continue; // drop unmatchable events
210
+ ```
211
+
212
+ ✗ **Do not** synthesize `external_id_sha256` from `event_id` (or any non-identity field). `event_id` is a buyer-side dedup string per `/schemas/3.0.4/core/event.json`; hashing it and shipping as a stable user identifier fabricates a matching signal the buyer never granted, joins unrelated events as the "same user" in the platform's identity graph, and pollutes attribution. The defensible behavior is to drop unmatchable events and surface the delta via `events_received` − `events_processed` so the buyer can populate `user_match` and retry.
213
+
214
+ The `examples/hello_seller_adapter_social.ts` reference adapter codifies all three patterns in its `logEvent` handler; build-seller-agent §sales-social references this section, and AdCP's `createTranslationMap` helper (#1285) handles the buyer→upstream id mapping when the buyer carries a `media_buy_id` that needs translation to an upstream pixel-source id.
215
+
216
+ ---
217
+
218
+ ## How to debug a "Field not found at path: …" error fast
219
+
220
+ The validator's path naming is precise. When you see:
221
+
222
+ ```
223
+ ✗ Response matches schema: : Invalid input;
224
+ ✗ Field not found at path: deployments[0].activation_key
225
+ ```
226
+
227
+ Three steps:
228
+
229
+ 1. Find the schema file the validator names (typically `/schemas/3.0/<protocol>/<task>-response.json` or `/schemas/3.0/core/<type>.json`).
230
+ 2. Inside the schema, find the `oneOf` (or `anyOf`) at that path. The error path tells you which variant the validator was trying to match.
231
+ 3. Compare the schema's required fields to your actual response. The wrong shape tells you which discriminator branch you accidentally landed on.
232
+
233
+ Schemas are the authoritative spec for shape. Prose around the schema (in skills, in field descriptions) is supplementary — when prose and schema disagree, the schema wins, and the validator agrees with the schema.
@@ -13,7 +13,7 @@ A brand rights agent represents a brand's identity and licensing. Buyers discove
13
13
 
14
14
  - User wants to build an agent that manages brand identity and licensing
15
15
  - User mentions brand rights, brand guidelines, creative approval, or licensing
16
- - User references `get_brand_identity`, `get_rights`, or `acquire_rights`
16
+ - User references `get_brand_identity`, `get_rights`, `acquire_rights`, `update_rights`, or `creative_approval`
17
17
 
18
18
  **Not this skill:**
19
19
 
@@ -23,9 +23,9 @@ A brand rights agent represents a brand's identity and licensing. Buyers discove
23
23
 
24
24
  ## Specialisms This Skill Covers
25
25
 
26
- | Specialism | Status | Delta |
27
- | -------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ |
28
- | `brand-rights` | stable | First-class tools: `get_brand_identity`, `get_rights`, `acquire_rights`. `update_rights` and `creative_approval` are spec-tracked but not schema-backed (see Protocol Status below). | [§ brand-rights](#specialism-brand-rights) |
26
+ | Specialism | Status | Delta | See |
27
+ | -------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
28
+ | `brand-rights` | stable | First-class tools: `get_brand_identity`, `get_rights`, `acquire_rights`, `update_rights`. `creative_approval` is webhook-only wire your HTTP receiver at the `approval_webhook` URL. | [§ brand-rights](#specialism-brand-rights) |
29
29
 
30
30
  Storyboard: `brand_rights`. The specialism tests identity discovery → rights search → acquisition → enforcement (including expired-campaign denial).
31
31
 
@@ -33,7 +33,7 @@ Storyboard: `brand_rights`. The specialism tests identity discovery → rights s
33
33
 
34
34
  Full treatment in `skills/build-seller-agent/SKILL.md` §Protocol-Wide Requirements and §Composing. Minimum viable pointers:
35
35
 
36
- - **`idempotency_key`** on every mutating request (`acquire_rights` and `update_rights` / `creative_approval` once their schemas land). Wire `createIdempotencyStore` into `createAdcpServer({ idempotency })`.
36
+ - **`idempotency_key`** on every mutating request (`acquire_rights`, `update_rights`, and the `creative_approval` webhook payload). Wire `createIdempotencyStore` into `createAdcpServer({ idempotency })`. The framework auto-applies idempotency middleware to mutating tools; for the `creative_approval` webhook receiver, validate `idempotency_key` yourself and replay the cached verdict on resubmission.
37
37
  - **Authentication** via `serve({ authenticate })` with `verifyApiKey`/`verifyBearer` from `@adcp/sdk/server`. Unauthenticated agents fail the universal `security_baseline` storyboard.
38
38
  - **Signature-header transparency**: accept `Signature-Input`/`Signature` headers even if you don't claim `signed-requests`.
39
39
 
@@ -68,17 +68,15 @@ How are generated creatives reviewed?
68
68
 
69
69
  ## Protocol Status
70
70
 
71
- Three tools are first-class in the `brandRights` domain group. Two additional operations are spec-tracked but not yet schema-backed.
71
+ Four MCP/A2A tools are first-class in the `brandRights` domain group. `creative_approval` is webhook-only the spec models it as an HTTP POST from the buyer to the `approval_webhook` URL the seller returned in `acquire_rights`.
72
72
 
73
- | Operation | Status | How to implement |
74
- | -------------------- | --------------------------------------------- | ----------------------------------------------------------------- |
75
- | `get_brand_identity` | Published schema — `brand/get-brand-identity` | `brandRights.getBrandIdentity` handler |
76
- | `get_rights` | Published schema — `brand/get-rights` | `brandRights.getRights` handler |
77
- | `acquire_rights` | Published schema — `brand/acquire-rights` | `brandRights.acquireRights` handler |
78
- | `update_rights` | Spec prose only no JSON schema | HTTP endpoint outside MCP surface |
79
- | `creative_approval` | Webhook contract, no JSON schema | HTTP endpoint your agent hosts (URL returned in `acquire_rights`) |
80
-
81
- Upstream tracking for the two schema gaps: https://github.com/adcontextprotocol/adcp/issues/2253. The SDK will register handlers for both once schemas land.
73
+ | Operation | Status | How to implement |
74
+ | -------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
75
+ | `get_brand_identity` | Published schema — `brand/get-brand-identity` | `brandRights.getBrandIdentity` handler |
76
+ | `get_rights` | Published schema — `brand/get-rights` | `brandRights.getRights` handler |
77
+ | `acquire_rights` | Published schema — `brand/acquire-rights` | `brandRights.acquireRights` handler |
78
+ | `update_rights` | Published schema`brand/update-rights` | `brandRights.updateRights` handler (mutating) |
79
+ | `creative_approval` | Published schema `brand/creative-approval` | Webhook receiver at the URL you returned in `acquire_rights.approval_webhook`; dispatch to `brandRights.reviewCreativeApproval` |
82
80
 
83
81
  <a name="specialism-brand-rights"></a>
84
82
 
@@ -193,7 +191,114 @@ Three success variants plus an error variant. The most common is `acquired`. Thr
193
191
  { rights_id, status: 'rejected', brand_id, reason, suggestions? }
194
192
  ```
195
193
 
196
- **Creative approval.** The `approval_webhook` in your `acquire_rights` response is a URL **your agent hosts** the buyer POSTs `creative-approval-request` there when a generated creative needs review. Payload shapes (`creative-approval-request`/`creative-approval-response`) are spec-tracked but not yet schema-published (adcontextprotocol/adcp#2253); accept at minimum the creative reference and a `rights_grant_id`, return a decision.
194
+ **`update_rights`**returns either a success arm (with re-issued credentials) or the error arm
195
+
196
+ Mutating; framework auto-applies idempotency middleware. Carry only the fields you're changing — omitted fields stay at their current value (parallels `update_media_buy` semantics). The framework hydrates the underlying grant from `rights_id`, so handlers read the resolved grant from `ctx.store`.
197
+
198
+ ```typescript
199
+ // Success — change applied
200
+ {
201
+ rights_id: 'likeness_commercial_standard',
202
+ terms: { /* updated rights-terms shape */ },
203
+ generation_credentials: [ /* re-issued with the new constraint */ ],
204
+ rights_constraint: { /* updated for re-embedding in creative manifests */ },
205
+ paused: false,
206
+ implementation_date: '2026-05-02T19:00:00Z', // string when live immediately
207
+ }
208
+ // Pending rights-holder approval
209
+ {
210
+ rights_id: 'likeness_commercial_standard',
211
+ terms: { /* updated terms */ },
212
+ implementation_date: null, // null = follow-up via push_notification_config webhook
213
+ }
214
+ // Error — buyer-fixable rejection. Throw `adcpError('INVALID_REQUEST', ...)`
215
+ // for single-error cases; the multi-error arm is for batch failures.
216
+ {
217
+ errors: [{ code: 'INVALID_REQUEST', message: 'impression_cap below delivered count' }],
218
+ }
219
+ ```
220
+
221
+ Common rejections to surface as errors: `impression_cap` below already-delivered count, `end_date` earlier than current `end_date`, switching to a `pricing_option_id` from a different `get_rights` offering than the original.
222
+
223
+ **Creative approval (webhook).** The `approval_webhook` in your `acquire_rights` response is a URL **your agent hosts** — the buyer POSTs `CreativeApprovalRequest` there when a generated creative needs review. Schema is published in 3.0.x (`brand/creative-approval-{request,response}.json`); the SDK does NOT register this as an MCP/A2A tool because it's webhook-only.
224
+
225
+ The receiver pattern: **authenticate first**, then validate the request body with `CreativeApprovalRequestSchema`, dispatch to `brandRights.reviewCreativeApproval(req, ctx)`, and serialize the result with the typed builders.
226
+
227
+ > **Security order matters.** The auth check (Bearer token from `acquire_rights.approval_webhook.authentication.credentials`, or your RFC 9421 signature verifier) MUST run **before** the idempotency-store lookup. The cache is a verdict store keyed by `(principal, idempotency_key)`; an unauthenticated lookup turns the endpoint into a replay-existence oracle and lets anyone who can reach the URL pull back a previously-issued verdict. Same posture as `acquire_rights` — apply the same `verifyApiKey` / signature middleware to this route.
228
+
229
+ > **SSRF on `creative_url`.** The buyer's `creative_url` is a buyer-controlled URL the brand-rights agent typically fetches to render or scan for review. Treat it like any inbound URL: route through your standard SSRF-guarded HTTP client (https-only in prod, no RFC 1918 / loopback / link-local / metadata-service IPs). The SDK applies the same allowlist on `push_notification_config.url` via `extractPushConfig` — match that posture for `creative_url`.
230
+
231
+ ```typescript
232
+ import express from 'express';
233
+ import {
234
+ creativeApprovalApproved,
235
+ creativeApprovalRejected,
236
+ creativeApprovalPendingReview,
237
+ } from '@adcp/sdk/server';
238
+ import { CreativeApprovalRequestSchema } from '@adcp/sdk/types';
239
+
240
+ const app = express();
241
+ // Cap payload size to bound a hostile body.
242
+ app.use(express.json({ limit: '256kb' }));
243
+
244
+ // Auth middleware — verify Bearer token / RFC 9421 signature against the
245
+ // (principal, rights_id) you advertised on `acquire_rights`. Run BEFORE
246
+ // idempotency-store lookup; verdicts are tenant-scoped state.
247
+ app.use('/webhooks/creative-approval', verifyApprovalWebhookAuth);
248
+
249
+ app.post('/webhooks/creative-approval', async (req, res) => {
250
+ const parsed = CreativeApprovalRequestSchema.safeParse(req.body);
251
+ if (!parsed.success) {
252
+ return res.status(400).json({ errors: [{ code: 'INVALID_REQUEST', message: 'malformed creative-approval request' }] });
253
+ }
254
+
255
+ // Idempotency — keyed by (authenticated principal, idempotency_key) so
256
+ // verdicts can't leak across tenants. Replay the cached verdict if seen.
257
+ const principal = req.adcpPrincipal; // set by verifyApprovalWebhookAuth
258
+ const cached = await idempotencyStore.get(`${principal}:${parsed.data.idempotency_key}`);
259
+ if (cached) return res.json(cached);
260
+
261
+ // Dispatch to the platform — same `reviewCreativeApproval` method shape
262
+ // as if it were a tool. The framework doesn't auto-wire HTTP for webhook-
263
+ // only surfaces, so adopters host the route themselves.
264
+ try {
265
+ const verdict = await platform.brandRights.reviewCreativeApproval(parsed.data, /* ctx built per request */);
266
+ await idempotencyStore.set(`${principal}:${parsed.data.idempotency_key}`, verdict);
267
+ return res.json(verdict);
268
+ } catch (err) {
269
+ return res.status(500).json({ errors: [{ code: 'INTERNAL_ERROR', message: err.message }] });
270
+ }
271
+ });
272
+ ```
273
+
274
+ Three success arms (Approved / Rejected / PendingReview) plus an error arm. Arm choice depends on review pipeline — auto-approve immediately, route to human review, or pre-flight reject for hard violations. Use the typed builders so the discriminator (`status`) is injected for you:
275
+
276
+ ```typescript
277
+ // Approved
278
+ creativeApprovalApproved({
279
+ rights_id: 'likeness_commercial_standard',
280
+ creative_id: 'cr_42',
281
+ creative_url: 'https://buyer.example.com/creatives/42.mp4',
282
+ approved_at: new Date().toISOString(),
283
+ conditions: ['approved for NL only'], // optional
284
+ });
285
+
286
+ // Rejected
287
+ creativeApprovalRejected({
288
+ rights_id: 'likeness_commercial_standard',
289
+ creative_id: 'cr_42',
290
+ reason: 'logo not visible per brand standards',
291
+ suggestions: ['enlarge the logo to 15% of the frame'],
292
+ });
293
+
294
+ // Pending — buyer polls `status_url` or waits up to `estimated_response_time`
295
+ creativeApprovalPendingReview({
296
+ rights_id: 'likeness_commercial_standard',
297
+ creative_id: 'cr_42',
298
+ estimated_response_time: '24h',
299
+ status_url: 'https://brand.example/approvals/cr_42',
300
+ });
301
+ ```
197
302
 
198
303
  **Revocation webhook.** The `acquire_rights` _request_ carries a required `revocation_webhook`. Persist it against the grant. When you need to revoke (credential rotation, terms violation, brand takedown), use `ctx.emitWebhook` — don't hand-roll `fetch`. See [`skills/build-seller-agent/SKILL.md`](../build-seller-agent/SKILL.md) § Webhooks for the full wiring; minimal call:
199
304
 
@@ -9,6 +9,8 @@ description: Use when building an AdCP creative agent — an ad server, creative
9
9
 
10
10
  A creative agent manages the creative lifecycle: accepts assets from buyers, stores them in a library, builds serving tags, and renders previews. Unlike a generative seller (which also sells inventory), a creative agent is a standalone creative platform — it manages creatives but doesn't sell media.
11
11
 
12
+ > **Common shape gotchas:** `PreviewCreativeResponse` is a three-way discriminated union (`single` | `batch` | `variant`); `BuildCreativeReturn` has 4 valid shapes (framework auto-wraps bare manifests); `VASTAsset` requires `delivery_type` (`'inline'` or `'redirect'`) before `content`/`vast_url`. See [SHAPE-GOTCHAS.md](../SHAPE-GOTCHAS.md) for the patterns adopters consistently get wrong on first pass — schema validators catch these at runtime; type checkers don't.
13
+
12
14
  ## When to Use
13
15
 
14
16
  - User wants to build an ad server, creative management platform, or creative rendering service
@@ -93,6 +95,26 @@ What happens when a creative is synced:
93
95
  > **Cross-cutting pitfalls matrix runs keep catching:**
94
96
  >
95
97
  > - **Declare `capabilities.specialisms: ['creative-ad-server'] as const` (or `'creative-template'` / `'creative-generative'`) 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.
98
+ > - **`list_creative_formats` response — each `Format` MUST have strict-shape `renders[]` and `assets[]`** (matrix v2 PR #1207 keeps catching this).
99
+ > - `renders[i]` requires `role` (string) PLUS exactly one of `dimensions: { width, height }` (object — NOT `{ width, height }` inline at the render root) OR `parameters_from_format_id: true`.
100
+ > - `assets[i]` requires the **discriminator quartet**: `item_type: 'individual' as const` + `asset_id` + `asset_type` (`'image'`/`'video'`/`'audio'`/`'text'`/`'click_url'`/`'html'`) + `required: boolean`. Missing any of these fails strict validation with `must match exactly one schema in oneOf`.
101
+ >
102
+ > ```ts
103
+ > // ✗ WRONG — passes lenient mode but fails strict (the actual mistake matrix v2 catches)
104
+ > { format_id, renders: [{ width: 300, height: 250 }],
105
+ > assets: [{ asset_id: 'image', required: true }] }
106
+ >
107
+ > // ✓ RIGHT — passes strict
108
+ > { format_id,
109
+ > renders: [{ role: 'primary', dimensions: { width: 300, height: 250 } }],
110
+ > assets: [{
111
+ > item_type: 'individual' as const,
112
+ > asset_id: 'image',
113
+ > asset_type: 'image',
114
+ > required: true,
115
+ > accepted_media_types: ['image/jpeg', 'image/png'],
116
+ > }] }
117
+ > ```
96
118
  > - `build_creative` response is `{ creative_manifest: { format_id, assets } }` (single) or `{ creative_manifests: [...] }` (multi). Platform-native fields at the top level (`tag_url`, `creative_id`, `media_type`) are **invalid** — use `buildCreativeResponse({ creative_manifest })` / `buildCreativeMultiResponse({ creative_manifests })` from `@adcp/sdk/server` to lock the shape at compile time.
97
119
  > - Each asset in `creative_manifest.assets` requires an `asset_type` discriminator. Use the typed factories (`imageAsset`, `videoAsset`, `audioAsset`, `htmlAsset`, `urlAsset`, `textAsset`) so the discriminator is injected for you; a plain `{ serving_tag: { content: '<vast>...' } }` fails validation.
98
120
  > - `preview_creative` renders have the same pattern — each `renders[]` entry is a oneOf on `output_format`. Use `urlRender({...})`, `htmlRender({...})`, or `bothRender({...})` to inject the discriminator and require the matching `preview_url` / `preview_html` field automatically.
@@ -105,7 +127,7 @@ What happens when a creative is synced:
105
127
  | Tool | Handler | Contract (field list) | Gotchas |
106
128
  | ----------------------- | ------------------------------ | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
107
129
  | `get_adcp_capabilities` | auto-generated | n/a | Do not register manually. |
108
- | `list_creative_formats` | `creative.listCreativeFormats` | [`#list_creative_formats`](../../docs/llms.txt#list_creative_formats) | Each `renders[]` entry MUST have `role` + exactly one of `dimensions` (object) OR `parameters_from_format_id: true`. `{width, height}` shorthand fails wrap in `dimensions`. |
130
+ | `list_creative_formats` | `creative.listCreativeFormats` | [`#list_creative_formats`](../../docs/llms.txt#list_creative_formats) | Each `renders[]` entry MUST have `role` + exactly one of `dimensions` (object) OR `parameters_from_format_id: true` `{width, height}` shorthand fails. Each `assets[]` entry MUST have `item_type: 'individual' as const` + `asset_id` + `asset_type` (image/video/audio/text/click_url/html) + `required: boolean`. See the strict-shape callout above the table. |
109
131
  | `sync_creatives` | `creative.syncCreatives` | [`#sync_creatives`](../../docs/llms.txt#sync_creatives) | Echo `creative_id`; `action` ∈ `created \| updated \| unchanged \| failed \| deleted`. |
110
132
  | `list_creatives` | `creative.listCreatives` | [`#list_creatives`](../../docs/llms.txt#list_creatives) | Honor `args.filters?.format_ids` when present. `created_date` + `updated_date` on each row are required ISO timestamps. |
111
133
  | `preview_creative` | `creative.previewCreative` | [`#preview_creative`](../../docs/llms.txt#preview_creative) | `renders[].output_format` is a discriminator — use `urlRender({...})`, `htmlRender({...})`, or `bothRender({...})` so the discriminator is injected and the required `preview_url`/`preview_html` field is enforced at compile time. |
@@ -670,6 +692,8 @@ Output formats returned by `list_creative_formats` for ad servers are **serving-
670
692
 
671
693
  Storyboard: `creative_template`. Stateless — build from the inline `creative_manifest` in the request, do not call `ctx.store`.
672
694
 
695
+ **Fork target**: `examples/hello_creative_adapter_template.ts` is the worked, passing reference adapter for this specialism. CI gates strict tsc + storyboard pass + upstream-traffic façade. Replace the `// SWAP:` markers with calls to your real backend.
696
+
673
697
  Formats declare `variables` the template will substitute:
674
698
 
675
699
  ```typescript