@adcp/sdk 12.1.0 → 13.0.0-rc.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 (464) hide show
  1. package/README.md +19 -3
  2. package/bin/adcp-fuzz.js +3 -1
  3. package/dist/lib/adapters/content-standards-adapter.d.mts +9 -9
  4. package/dist/lib/adapters/content-standards-adapter.d.ts +9 -9
  5. package/dist/lib/adapters/content-standards-adapter.d.ts.map +1 -1
  6. package/dist/lib/adapters/content-standards-adapter.js +22 -22
  7. package/dist/lib/adapters/content-standards-adapter.js.map +1 -1
  8. package/dist/lib/adapters/content-standards-adapter.mjs +18 -18
  9. package/dist/lib/adapters/content-standards-adapter.mjs.map +1 -1
  10. package/dist/lib/adapters/index.d.mts +2 -2
  11. package/dist/lib/adapters/index.d.ts +2 -2
  12. package/dist/lib/adapters/index.d.ts.map +1 -1
  13. package/dist/lib/adapters/index.js +10 -10
  14. package/dist/lib/adapters/index.js.map +1 -1
  15. package/dist/lib/adapters/index.mjs +9 -9
  16. package/dist/lib/adapters/index.mjs.map +1 -1
  17. package/dist/lib/auth/oauth/authorization-required.d.mts +3 -0
  18. package/dist/lib/auth/oauth/authorization-required.d.ts +3 -0
  19. package/dist/lib/auth/oauth/authorization-required.d.ts.map +1 -1
  20. package/dist/lib/auth/oauth/authorization-required.js +12 -9
  21. package/dist/lib/auth/oauth/authorization-required.js.map +1 -1
  22. package/dist/lib/auth/oauth/authorization-required.mjs +12 -9
  23. package/dist/lib/auth/oauth/authorization-required.mjs.map +1 -1
  24. package/dist/lib/auth/oauth/provider-cache.d.mts +7 -0
  25. package/dist/lib/auth/oauth/provider-cache.d.ts +8 -0
  26. package/dist/lib/auth/oauth/provider-cache.d.ts.map +1 -0
  27. package/dist/lib/auth/oauth/provider-cache.js +44 -0
  28. package/dist/lib/auth/oauth/provider-cache.js.map +1 -0
  29. package/dist/lib/auth/oauth/provider-cache.mjs +19 -0
  30. package/dist/lib/auth/oauth/provider-cache.mjs.map +1 -0
  31. package/dist/lib/conformance/invariants/uniformError.js +1 -1
  32. package/dist/lib/conformance/invariants/uniformError.js.map +1 -1
  33. package/dist/lib/conformance/invariants/uniformError.mjs +1 -1
  34. package/dist/lib/conformance/invariants/uniformError.mjs.map +1 -1
  35. package/dist/lib/conformance/runners.js +1 -1
  36. package/dist/lib/conformance/runners.js.map +1 -1
  37. package/dist/lib/conformance/runners.mjs +1 -1
  38. package/dist/lib/conformance/runners.mjs.map +1 -1
  39. package/dist/lib/conformance/seeder.js +5 -5
  40. package/dist/lib/conformance/seeder.js.map +1 -1
  41. package/dist/lib/conformance/seeder.mjs +5 -5
  42. package/dist/lib/conformance/seeder.mjs.map +1 -1
  43. package/dist/lib/core/ADCPMultiAgentClient.d.mts +26 -29
  44. package/dist/lib/core/ADCPMultiAgentClient.d.ts +26 -29
  45. package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -1
  46. package/dist/lib/core/ADCPMultiAgentClient.js +27 -19
  47. package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -1
  48. package/dist/lib/core/ADCPMultiAgentClient.mjs +27 -19
  49. package/dist/lib/core/ADCPMultiAgentClient.mjs.map +1 -1
  50. package/dist/lib/core/AgentClient.d.mts +148 -138
  51. package/dist/lib/core/AgentClient.d.ts +148 -138
  52. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  53. package/dist/lib/core/AgentClient.js +174 -85
  54. package/dist/lib/core/AgentClient.js.map +1 -1
  55. package/dist/lib/core/AgentClient.mjs +174 -85
  56. package/dist/lib/core/AgentClient.mjs.map +1 -1
  57. package/dist/lib/core/AsyncHandler.d.mts +18 -16
  58. package/dist/lib/core/AsyncHandler.d.ts +18 -16
  59. package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
  60. package/dist/lib/core/AsyncHandler.js +22 -1
  61. package/dist/lib/core/AsyncHandler.js.map +1 -1
  62. package/dist/lib/core/AsyncHandler.mjs +22 -1
  63. package/dist/lib/core/AsyncHandler.mjs.map +1 -1
  64. package/dist/lib/core/ConversationTypes.d.mts +6 -2
  65. package/dist/lib/core/ConversationTypes.d.ts +6 -2
  66. package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
  67. package/dist/lib/core/ConversationTypes.js.map +1 -1
  68. package/dist/lib/core/CreativeAgentClient.d.mts +41 -17
  69. package/dist/lib/core/CreativeAgentClient.d.ts +41 -17
  70. package/dist/lib/core/CreativeAgentClient.d.ts.map +1 -1
  71. package/dist/lib/core/CreativeAgentClient.js +39 -12
  72. package/dist/lib/core/CreativeAgentClient.js.map +1 -1
  73. package/dist/lib/core/CreativeAgentClient.mjs +39 -12
  74. package/dist/lib/core/CreativeAgentClient.mjs.map +1 -1
  75. package/dist/lib/core/SingleAgentClient.d.mts +129 -52
  76. package/dist/lib/core/SingleAgentClient.d.ts +129 -52
  77. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  78. package/dist/lib/core/SingleAgentClient.js +1748 -218
  79. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  80. package/dist/lib/core/SingleAgentClient.mjs +1758 -218
  81. package/dist/lib/core/SingleAgentClient.mjs.map +1 -1
  82. package/dist/lib/core/TaskExecutor.d.mts +9 -0
  83. package/dist/lib/core/TaskExecutor.d.ts +9 -0
  84. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  85. package/dist/lib/core/TaskExecutor.js +137 -44
  86. package/dist/lib/core/TaskExecutor.js.map +1 -1
  87. package/dist/lib/core/TaskExecutor.mjs +137 -44
  88. package/dist/lib/core/TaskExecutor.mjs.map +1 -1
  89. package/dist/lib/index.d.mts +111 -17
  90. package/dist/lib/index.d.ts +111 -17
  91. package/dist/lib/index.d.ts.map +1 -1
  92. package/dist/lib/index.js +94 -94
  93. package/dist/lib/index.js.map +1 -1
  94. package/dist/lib/index.mjs +93 -94
  95. package/dist/lib/index.mjs.map +1 -1
  96. package/dist/lib/net/ssrf-fetch.d.mts +13 -1
  97. package/dist/lib/net/ssrf-fetch.d.ts +13 -1
  98. package/dist/lib/net/ssrf-fetch.d.ts.map +1 -1
  99. package/dist/lib/net/ssrf-fetch.js +14 -7
  100. package/dist/lib/net/ssrf-fetch.js.map +1 -1
  101. package/dist/lib/net/ssrf-fetch.mjs +14 -7
  102. package/dist/lib/net/ssrf-fetch.mjs.map +1 -1
  103. package/dist/lib/protocols/a2a.d.mts +2 -2
  104. package/dist/lib/protocols/a2a.d.ts +2 -2
  105. package/dist/lib/protocols/a2a.d.ts.map +1 -1
  106. package/dist/lib/protocols/a2a.js +14 -9
  107. package/dist/lib/protocols/a2a.js.map +1 -1
  108. package/dist/lib/protocols/a2a.mjs +14 -9
  109. package/dist/lib/protocols/a2a.mjs.map +1 -1
  110. package/dist/lib/protocols/index.d.mts +20 -3
  111. package/dist/lib/protocols/index.d.ts +20 -3
  112. package/dist/lib/protocols/index.d.ts.map +1 -1
  113. package/dist/lib/protocols/index.js +44 -31
  114. package/dist/lib/protocols/index.js.map +1 -1
  115. package/dist/lib/protocols/index.mjs +44 -32
  116. package/dist/lib/protocols/index.mjs.map +1 -1
  117. package/dist/lib/protocols/mcp-modern.d.ts.map +1 -1
  118. package/dist/lib/protocols/mcp-modern.js +87 -12
  119. package/dist/lib/protocols/mcp-modern.js.map +1 -1
  120. package/dist/lib/protocols/mcp-modern.mjs +89 -12
  121. package/dist/lib/protocols/mcp-modern.mjs.map +1 -1
  122. package/dist/lib/protocols/mcp-tasks.d.mts +3 -0
  123. package/dist/lib/protocols/mcp-tasks.d.ts +3 -0
  124. package/dist/lib/protocols/mcp-tasks.d.ts.map +1 -1
  125. package/dist/lib/protocols/mcp-tasks.js +21 -11
  126. package/dist/lib/protocols/mcp-tasks.js.map +1 -1
  127. package/dist/lib/protocols/mcp-tasks.mjs +21 -11
  128. package/dist/lib/protocols/mcp-tasks.mjs.map +1 -1
  129. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  130. package/dist/lib/server/create-adcp-server.d.mts +6 -0
  131. package/dist/lib/server/create-adcp-server.d.ts +6 -0
  132. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  133. package/dist/lib/server/create-adcp-server.js +295 -48
  134. package/dist/lib/server/create-adcp-server.js.map +1 -1
  135. package/dist/lib/server/create-adcp-server.mjs +301 -50
  136. package/dist/lib/server/create-adcp-server.mjs.map +1 -1
  137. package/dist/lib/server/decisioning/assembly-helpers.d.mts +27 -13
  138. package/dist/lib/server/decisioning/assembly-helpers.d.ts +27 -13
  139. package/dist/lib/server/decisioning/assembly-helpers.d.ts.map +1 -1
  140. package/dist/lib/server/decisioning/assembly-helpers.js +136 -14
  141. package/dist/lib/server/decisioning/assembly-helpers.js.map +1 -1
  142. package/dist/lib/server/decisioning/assembly-helpers.mjs +134 -13
  143. package/dist/lib/server/decisioning/assembly-helpers.mjs.map +1 -1
  144. package/dist/lib/server/decisioning/index.d.mts +13 -12
  145. package/dist/lib/server/decisioning/index.d.ts +13 -12
  146. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  147. package/dist/lib/server/decisioning/index.js +6 -0
  148. package/dist/lib/server/decisioning/index.js.map +1 -1
  149. package/dist/lib/server/decisioning/index.mjs +9 -3
  150. package/dist/lib/server/decisioning/index.mjs.map +1 -1
  151. package/dist/lib/server/decisioning/list-helpers.d.mts +13 -3
  152. package/dist/lib/server/decisioning/list-helpers.d.ts +13 -3
  153. package/dist/lib/server/decisioning/list-helpers.d.ts.map +1 -1
  154. package/dist/lib/server/decisioning/list-helpers.js +13 -3
  155. package/dist/lib/server/decisioning/list-helpers.js.map +1 -1
  156. package/dist/lib/server/decisioning/list-helpers.mjs +11 -2
  157. package/dist/lib/server/decisioning/list-helpers.mjs.map +1 -1
  158. package/dist/lib/server/decisioning/manifest-helpers.d.mts +5 -3
  159. package/dist/lib/server/decisioning/manifest-helpers.d.ts +5 -3
  160. package/dist/lib/server/decisioning/manifest-helpers.d.ts.map +1 -1
  161. package/dist/lib/server/decisioning/manifest-helpers.js.map +1 -1
  162. package/dist/lib/server/decisioning/manifest-helpers.mjs.map +1 -1
  163. package/dist/lib/server/decisioning/proposal/dispatch.d.mts +2 -2
  164. package/dist/lib/server/decisioning/proposal/dispatch.d.ts +2 -2
  165. package/dist/lib/server/decisioning/proposal/dispatch.d.ts.map +1 -1
  166. package/dist/lib/server/decisioning/proposal/dispatch.js.map +1 -1
  167. package/dist/lib/server/decisioning/proposal/dispatch.mjs.map +1 -1
  168. package/dist/lib/server/decisioning/proposal/index.d.mts +1 -1
  169. package/dist/lib/server/decisioning/proposal/index.d.ts +1 -1
  170. package/dist/lib/server/decisioning/proposal/index.d.ts.map +1 -1
  171. package/dist/lib/server/decisioning/proposal/index.js.map +1 -1
  172. package/dist/lib/server/decisioning/proposal/index.mjs.map +1 -1
  173. package/dist/lib/server/decisioning/proposal/lifecycle.d.mts +3 -2
  174. package/dist/lib/server/decisioning/proposal/lifecycle.d.ts +3 -2
  175. package/dist/lib/server/decisioning/proposal/lifecycle.d.ts.map +1 -1
  176. package/dist/lib/server/decisioning/proposal/lifecycle.js.map +1 -1
  177. package/dist/lib/server/decisioning/proposal/lifecycle.mjs.map +1 -1
  178. package/dist/lib/server/decisioning/proposal/mock-manager.d.mts +3 -3
  179. package/dist/lib/server/decisioning/proposal/mock-manager.d.ts +3 -3
  180. package/dist/lib/server/decisioning/proposal/mock-manager.d.ts.map +1 -1
  181. package/dist/lib/server/decisioning/proposal/mock-manager.js.map +1 -1
  182. package/dist/lib/server/decisioning/proposal/mock-manager.mjs.map +1 -1
  183. package/dist/lib/server/decisioning/proposal/types.d.mts +10 -6
  184. package/dist/lib/server/decisioning/proposal/types.d.ts +10 -6
  185. package/dist/lib/server/decisioning/proposal/types.d.ts.map +1 -1
  186. package/dist/lib/server/decisioning/proposal/types.js.map +1 -1
  187. package/dist/lib/server/decisioning/proposal/types.mjs.map +1 -1
  188. package/dist/lib/server/decisioning/runtime/from-platform.d.mts +21 -2
  189. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +21 -2
  190. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  191. package/dist/lib/server/decisioning/runtime/from-platform.js +754 -81
  192. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  193. package/dist/lib/server/decisioning/runtime/from-platform.mjs +763 -81
  194. package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
  195. package/dist/lib/server/decisioning/specialisms/brand-rights.d.mts +9 -9
  196. package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts +9 -9
  197. package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts.map +1 -1
  198. package/dist/lib/server/decisioning/specialisms/brand-rights.js.map +1 -1
  199. package/dist/lib/server/decisioning/specialisms/content-standards.d.mts +16 -16
  200. package/dist/lib/server/decisioning/specialisms/content-standards.d.ts +16 -16
  201. package/dist/lib/server/decisioning/specialisms/content-standards.d.ts.map +1 -1
  202. package/dist/lib/server/decisioning/specialisms/content-standards.js.map +1 -1
  203. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.mts +15 -13
  204. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts +15 -13
  205. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts.map +1 -1
  206. package/dist/lib/server/decisioning/specialisms/creative-ad-server.js.map +1 -1
  207. package/dist/lib/server/decisioning/specialisms/creative.d.mts +12 -11
  208. package/dist/lib/server/decisioning/specialisms/creative.d.ts +12 -11
  209. package/dist/lib/server/decisioning/specialisms/creative.d.ts.map +1 -1
  210. package/dist/lib/server/decisioning/specialisms/creative.js.map +1 -1
  211. package/dist/lib/server/decisioning/specialisms/sales.d.mts +25 -15
  212. package/dist/lib/server/decisioning/specialisms/sales.d.ts +25 -15
  213. package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
  214. package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
  215. package/dist/lib/server/index.d.mts +3 -3
  216. package/dist/lib/server/index.d.ts +3 -3
  217. package/dist/lib/server/index.d.ts.map +1 -1
  218. package/dist/lib/server/index.js +72 -72
  219. package/dist/lib/server/index.js.map +1 -1
  220. package/dist/lib/server/index.mjs +36 -36
  221. package/dist/lib/server/index.mjs.map +1 -1
  222. package/dist/lib/server/legacy/v5/index.d.mts +1 -0
  223. package/dist/lib/server/legacy/v5/index.d.ts +1 -0
  224. package/dist/lib/server/legacy/v5/index.d.ts.map +1 -1
  225. package/dist/lib/server/legacy/v5/index.js +74 -1
  226. package/dist/lib/server/legacy/v5/index.js.map +1 -1
  227. package/dist/lib/server/legacy/v5/index.mjs +75 -1
  228. package/dist/lib/server/legacy/v5/index.mjs.map +1 -1
  229. package/dist/lib/server/responses.d.mts +2 -2
  230. package/dist/lib/server/responses.d.ts +2 -2
  231. package/dist/lib/server/responses.js.map +1 -1
  232. package/dist/lib/server/responses.mjs.map +1 -1
  233. package/dist/lib/testing/client.d.ts.map +1 -1
  234. package/dist/lib/testing/client.js +13 -5
  235. package/dist/lib/testing/client.js.map +1 -1
  236. package/dist/lib/testing/client.mjs +13 -5
  237. package/dist/lib/testing/client.mjs.map +1 -1
  238. package/dist/lib/testing/compliance/comply.d.mts +1 -1
  239. package/dist/lib/testing/compliance/comply.d.ts +1 -1
  240. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  241. package/dist/lib/testing/compliance/comply.js +16 -6
  242. package/dist/lib/testing/compliance/comply.js.map +1 -1
  243. package/dist/lib/testing/compliance/comply.mjs +16 -6
  244. package/dist/lib/testing/compliance/comply.mjs.map +1 -1
  245. package/dist/lib/testing/scenarios/brand-rights.js +6 -6
  246. package/dist/lib/testing/scenarios/brand-rights.js.map +1 -1
  247. package/dist/lib/testing/scenarios/brand-rights.mjs +6 -6
  248. package/dist/lib/testing/scenarios/brand-rights.mjs.map +1 -1
  249. package/dist/lib/testing/scenarios/creative.js +7 -7
  250. package/dist/lib/testing/scenarios/creative.js.map +1 -1
  251. package/dist/lib/testing/scenarios/creative.mjs +7 -7
  252. package/dist/lib/testing/scenarios/creative.mjs.map +1 -1
  253. package/dist/lib/testing/scenarios/discovery.js +2 -2
  254. package/dist/lib/testing/scenarios/discovery.js.map +1 -1
  255. package/dist/lib/testing/scenarios/discovery.mjs +2 -2
  256. package/dist/lib/testing/scenarios/discovery.mjs.map +1 -1
  257. package/dist/lib/testing/scenarios/edge-cases.js +11 -11
  258. package/dist/lib/testing/scenarios/edge-cases.js.map +1 -1
  259. package/dist/lib/testing/scenarios/edge-cases.mjs +11 -11
  260. package/dist/lib/testing/scenarios/edge-cases.mjs.map +1 -1
  261. package/dist/lib/testing/scenarios/governance.d.ts.map +1 -1
  262. package/dist/lib/testing/scenarios/governance.js +16 -22
  263. package/dist/lib/testing/scenarios/governance.js.map +1 -1
  264. package/dist/lib/testing/scenarios/governance.mjs +16 -22
  265. package/dist/lib/testing/scenarios/governance.mjs.map +1 -1
  266. package/dist/lib/testing/scenarios/media-buy.js +5 -5
  267. package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
  268. package/dist/lib/testing/scenarios/media-buy.mjs +5 -5
  269. package/dist/lib/testing/scenarios/media-buy.mjs.map +1 -1
  270. package/dist/lib/testing/scenarios/schema-compliance.js +1 -1
  271. package/dist/lib/testing/scenarios/schema-compliance.js.map +1 -1
  272. package/dist/lib/testing/scenarios/schema-compliance.mjs +1 -1
  273. package/dist/lib/testing/scenarios/schema-compliance.mjs.map +1 -1
  274. package/dist/lib/testing/scenarios/trusted-match.d.ts.map +1 -1
  275. package/dist/lib/testing/scenarios/trusted-match.js +4 -3
  276. package/dist/lib/testing/scenarios/trusted-match.js.map +1 -1
  277. package/dist/lib/testing/scenarios/trusted-match.mjs +4 -3
  278. package/dist/lib/testing/scenarios/trusted-match.mjs.map +1 -1
  279. package/dist/lib/testing/storyboard/probes.d.mts +6 -0
  280. package/dist/lib/testing/storyboard/probes.d.ts +6 -0
  281. package/dist/lib/testing/storyboard/probes.d.ts.map +1 -1
  282. package/dist/lib/testing/storyboard/probes.js +16 -5
  283. package/dist/lib/testing/storyboard/probes.js.map +1 -1
  284. package/dist/lib/testing/storyboard/probes.mjs +16 -5
  285. package/dist/lib/testing/storyboard/probes.mjs.map +1 -1
  286. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  287. package/dist/lib/testing/storyboard/runner.js +6 -2
  288. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  289. package/dist/lib/testing/storyboard/runner.mjs +6 -2
  290. package/dist/lib/testing/storyboard/runner.mjs.map +1 -1
  291. package/dist/lib/testing/storyboard/shape-drift-hints.d.mts +3 -4
  292. package/dist/lib/testing/storyboard/shape-drift-hints.d.ts +3 -4
  293. package/dist/lib/testing/storyboard/shape-drift-hints.d.ts.map +1 -1
  294. package/dist/lib/testing/storyboard/shape-drift-hints.js +27 -27
  295. package/dist/lib/testing/storyboard/shape-drift-hints.js.map +1 -1
  296. package/dist/lib/testing/storyboard/shape-drift-hints.mjs +27 -27
  297. package/dist/lib/testing/storyboard/shape-drift-hints.mjs.map +1 -1
  298. package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -1
  299. package/dist/lib/testing/storyboard/task-map.js +43 -5
  300. package/dist/lib/testing/storyboard/task-map.js.map +1 -1
  301. package/dist/lib/testing/storyboard/task-map.mjs +43 -5
  302. package/dist/lib/testing/storyboard/task-map.mjs.map +1 -1
  303. package/dist/lib/testing/test-helpers.d.mts +2 -2
  304. package/dist/lib/testing/test-helpers.d.ts +2 -2
  305. package/dist/lib/testing/test-helpers.js.map +1 -1
  306. package/dist/lib/testing/test-helpers.mjs.map +1 -1
  307. package/dist/lib/testing/types.d.mts +7 -1
  308. package/dist/lib/testing/types.d.ts +7 -1
  309. package/dist/lib/testing/types.d.ts.map +1 -1
  310. package/dist/lib/testing/types.js.map +1 -1
  311. package/dist/lib/types/adcp.d.mts +14 -14
  312. package/dist/lib/types/adcp.d.ts +14 -14
  313. package/dist/lib/types/adcp.d.ts.map +1 -1
  314. package/dist/lib/types/adcp.js.map +1 -1
  315. package/dist/lib/types/adcp.mjs.map +1 -1
  316. package/dist/lib/types/index.d.mts +2 -2
  317. package/dist/lib/types/index.d.ts +2 -2
  318. package/dist/lib/types/index.d.ts.map +1 -1
  319. package/dist/lib/types/index.js.map +1 -1
  320. package/dist/lib/types/index.mjs.map +1 -1
  321. package/dist/lib/utils/capabilities.d.mts +6 -0
  322. package/dist/lib/utils/capabilities.d.ts +6 -0
  323. package/dist/lib/utils/capabilities.d.ts.map +1 -1
  324. package/dist/lib/utils/capabilities.js +4 -0
  325. package/dist/lib/utils/capabilities.js.map +1 -1
  326. package/dist/lib/utils/capabilities.mjs +4 -0
  327. package/dist/lib/utils/capabilities.mjs.map +1 -1
  328. package/dist/lib/utils/creative-delivery.d.mts +52 -10
  329. package/dist/lib/utils/creative-delivery.d.ts +52 -10
  330. package/dist/lib/utils/creative-delivery.d.ts.map +1 -1
  331. package/dist/lib/utils/creative-delivery.js +104 -9
  332. package/dist/lib/utils/creative-delivery.js.map +1 -1
  333. package/dist/lib/utils/creative-delivery.mjs +104 -8
  334. package/dist/lib/utils/creative-delivery.mjs.map +1 -1
  335. package/dist/lib/utils/format-assets.d.mts +41 -38
  336. package/dist/lib/utils/format-assets.d.ts +41 -38
  337. package/dist/lib/utils/format-assets.d.ts.map +1 -1
  338. package/dist/lib/utils/format-assets.js +3 -1
  339. package/dist/lib/utils/format-assets.js.map +1 -1
  340. package/dist/lib/utils/format-assets.mjs +3 -1
  341. package/dist/lib/utils/format-assets.mjs.map +1 -1
  342. package/dist/lib/utils/index.d.mts +8 -8
  343. package/dist/lib/utils/index.d.ts +8 -8
  344. package/dist/lib/utils/index.d.ts.map +1 -1
  345. package/dist/lib/utils/index.js +11 -9
  346. package/dist/lib/utils/index.js.map +1 -1
  347. package/dist/lib/utils/index.mjs +9 -8
  348. package/dist/lib/utils/index.mjs.map +1 -1
  349. package/dist/lib/utils/preview-utils.d.mts +11 -8
  350. package/dist/lib/utils/preview-utils.d.ts +11 -8
  351. package/dist/lib/utils/preview-utils.d.ts.map +1 -1
  352. package/dist/lib/utils/preview-utils.js +4 -4
  353. package/dist/lib/utils/preview-utils.js.map +1 -1
  354. package/dist/lib/utils/preview-utils.mjs +3 -3
  355. package/dist/lib/utils/preview-utils.mjs.map +1 -1
  356. package/dist/lib/utils/tool-request-schemas.d.mts +2 -2
  357. package/dist/lib/utils/tool-request-schemas.d.ts +2 -2
  358. package/dist/lib/v2/projection/aao-reference-formats.json +492 -0
  359. package/dist/lib/v2/projection/augment-response.d.mts +31 -11
  360. package/dist/lib/v2/projection/augment-response.d.ts +31 -11
  361. package/dist/lib/v2/projection/augment-response.d.ts.map +1 -1
  362. package/dist/lib/v2/projection/augment-response.js +233 -27
  363. package/dist/lib/v2/projection/augment-response.js.map +1 -1
  364. package/dist/lib/v2/projection/augment-response.mjs +232 -27
  365. package/dist/lib/v2/projection/augment-response.mjs.map +1 -1
  366. package/dist/lib/v2/projection/builders.d.mts +7 -6
  367. package/dist/lib/v2/projection/builders.d.ts +7 -6
  368. package/dist/lib/v2/projection/builders.d.ts.map +1 -1
  369. package/dist/lib/v2/projection/builders.js +11 -8
  370. package/dist/lib/v2/projection/builders.js.map +1 -1
  371. package/dist/lib/v2/projection/builders.mjs +9 -6
  372. package/dist/lib/v2/projection/builders.mjs.map +1 -1
  373. package/dist/lib/v2/projection/catalog-snapshot.d.mts +47 -0
  374. package/dist/lib/v2/projection/catalog-snapshot.d.ts +48 -0
  375. package/dist/lib/v2/projection/catalog-snapshot.d.ts.map +1 -0
  376. package/dist/lib/v2/projection/catalog-snapshot.js +291 -0
  377. package/dist/lib/v2/projection/catalog-snapshot.js.map +1 -0
  378. package/dist/lib/v2/projection/catalog-snapshot.mjs +265 -0
  379. package/dist/lib/v2/projection/catalog-snapshot.mjs.map +1 -0
  380. package/dist/lib/v2/projection/catalog.d.mts +23 -2
  381. package/dist/lib/v2/projection/catalog.d.ts +23 -2
  382. package/dist/lib/v2/projection/catalog.d.ts.map +1 -1
  383. package/dist/lib/v2/projection/catalog.js +34 -10
  384. package/dist/lib/v2/projection/catalog.js.map +1 -1
  385. package/dist/lib/v2/projection/catalog.mjs +33 -10
  386. package/dist/lib/v2/projection/catalog.mjs.map +1 -1
  387. package/dist/lib/v2/projection/creative-delivery.d.mts +157 -0
  388. package/dist/lib/v2/projection/creative-delivery.d.ts +158 -0
  389. package/dist/lib/v2/projection/creative-delivery.d.ts.map +1 -0
  390. package/dist/lib/v2/projection/creative-delivery.js +967 -0
  391. package/dist/lib/v2/projection/creative-delivery.js.map +1 -0
  392. package/dist/lib/v2/projection/creative-delivery.mjs +941 -0
  393. package/dist/lib/v2/projection/creative-delivery.mjs.map +1 -0
  394. package/dist/lib/v2/projection/index.d.mts +8 -6
  395. package/dist/lib/v2/projection/index.d.ts +8 -6
  396. package/dist/lib/v2/projection/index.d.ts.map +1 -1
  397. package/dist/lib/v2/projection/index.js +26 -4
  398. package/dist/lib/v2/projection/index.js.map +1 -1
  399. package/dist/lib/v2/projection/index.mjs +28 -4
  400. package/dist/lib/v2/projection/index.mjs.map +1 -1
  401. package/dist/lib/v2/projection/legacy-metadata.d.mts +21 -0
  402. package/dist/lib/v2/projection/legacy-metadata.d.ts +22 -0
  403. package/dist/lib/v2/projection/legacy-metadata.d.ts.map +1 -0
  404. package/dist/lib/v2/projection/legacy-metadata.js +73 -0
  405. package/dist/lib/v2/projection/legacy-metadata.js.map +1 -0
  406. package/dist/lib/v2/projection/legacy-metadata.mjs +45 -0
  407. package/dist/lib/v2/projection/legacy-metadata.mjs.map +1 -0
  408. package/dist/lib/v2/projection/types.d.mts +29 -23
  409. package/dist/lib/v2/projection/types.d.ts +29 -23
  410. package/dist/lib/v2/projection/types.d.ts.map +1 -1
  411. package/dist/lib/v2/projection/types.js.map +1 -1
  412. package/dist/lib/v2/projection/v1-to-v2.d.mts +29 -6
  413. package/dist/lib/v2/projection/v1-to-v2.d.ts +29 -6
  414. package/dist/lib/v2/projection/v1-to-v2.d.ts.map +1 -1
  415. package/dist/lib/v2/projection/v1-to-v2.js +218 -9
  416. package/dist/lib/v2/projection/v1-to-v2.js.map +1 -1
  417. package/dist/lib/v2/projection/v1-to-v2.mjs +219 -10
  418. package/dist/lib/v2/projection/v1-to-v2.mjs.map +1 -1
  419. package/dist/lib/v2/projection/v2-to-v1.d.mts +31 -2
  420. package/dist/lib/v2/projection/v2-to-v1.d.ts +31 -2
  421. package/dist/lib/v2/projection/v2-to-v1.d.ts.map +1 -1
  422. package/dist/lib/v2/projection/v2-to-v1.js +138 -7
  423. package/dist/lib/v2/projection/v2-to-v1.js.map +1 -1
  424. package/dist/lib/v2/projection/v2-to-v1.mjs +135 -6
  425. package/dist/lib/v2/projection/v2-to-v1.mjs.map +1 -1
  426. package/dist/lib/v2/projection/write-side.d.mts +12 -13
  427. package/dist/lib/v2/projection/write-side.d.ts +12 -13
  428. package/dist/lib/v2/projection/write-side.d.ts.map +1 -1
  429. package/dist/lib/v2/projection/write-side.js +16 -12
  430. package/dist/lib/v2/projection/write-side.js.map +1 -1
  431. package/dist/lib/v2/projection/write-side.mjs +16 -12
  432. package/dist/lib/v2/projection/write-side.mjs.map +1 -1
  433. package/dist/lib/version.d.mts +3 -3
  434. package/dist/lib/version.d.ts +3 -3
  435. package/dist/lib/version.d.ts.map +1 -1
  436. package/dist/lib/version.js +3 -3
  437. package/dist/lib/version.js.map +1 -1
  438. package/dist/lib/version.mjs +3 -3
  439. package/dist/lib/version.mjs.map +1 -1
  440. package/docs/guides/BUILD-AN-AGENT.md +7 -2
  441. package/docs/guides/PREVIEW-ASSET-DURABILITY.md +6 -2
  442. package/docs/llms.txt +1 -0
  443. package/examples/README.md +1 -1
  444. package/examples/batch-preview-test.ts +3 -3
  445. package/examples/conversation-client.ts +2 -2
  446. package/examples/debug-preview-response.ts +1 -1
  447. package/examples/decisioning-platform-broadcast-tv.ts +10 -4
  448. package/examples/decisioning-platform-mock-seller.ts +16 -9
  449. package/examples/decisioning-platform-programmatic.ts +18 -7
  450. package/examples/error-compliant-server.ts +26 -16
  451. package/examples/generative-creative-demo.ts +7 -19
  452. package/examples/hello_creative_adapter_ad_server.ts +37 -16
  453. package/examples/hello_creative_adapter_template.ts +12 -10
  454. package/examples/hello_seller_adapter_guaranteed.ts +52 -23
  455. package/examples/hello_seller_adapter_multi_tenant.ts +6 -3
  456. package/examples/hello_seller_adapter_non_guaranteed.ts +54 -26
  457. package/examples/hello_seller_adapter_proposal_mode.ts +40 -14
  458. package/examples/hello_seller_adapter_social.ts +2 -7
  459. package/examples/inspect-card-formats.ts +1 -1
  460. package/examples/simple-getting-started.ts +1 -1
  461. package/examples/test-helpers-demo.ts +1 -1
  462. package/package.json +2 -2
  463. package/skills/build-decisioning-creative-template/SKILL.md +11 -11
  464. package/skills/build-decisioning-platform/advanced/REFERENCE.md +8 -2
@@ -5241,5 +5241,497 @@
5241
5241
  "canonical": {
5242
5242
  "kind": "agent_placement"
5243
5243
  }
5244
+ },
5245
+ {
5246
+ "format_id": {
5247
+ "agent_url": "https://creative.adcontextprotocol.org/",
5248
+ "id": "display_320x50_html"
5249
+ },
5250
+ "name": "Mobile Leaderboard - HTML5",
5251
+ "description": "320x50 HTML5 creative",
5252
+ "type": "display",
5253
+ "renders": [
5254
+ {
5255
+ "dimensions": {
5256
+ "height": 50,
5257
+ "responsive": {
5258
+ "height": false,
5259
+ "width": false
5260
+ },
5261
+ "width": 320
5262
+ },
5263
+ "role": "primary"
5264
+ }
5265
+ ],
5266
+ "assets": [
5267
+ {
5268
+ "item_type": "individual",
5269
+ "asset_id": "html_creative",
5270
+ "required": true,
5271
+ "asset_type": "html",
5272
+ "requirements": {
5273
+ "sandbox": "none",
5274
+ "width": 320,
5275
+ "height": 50,
5276
+ "max_file_size_mb": 0.5,
5277
+ "description": "HTML5 creative code"
5278
+ }
5279
+ },
5280
+ {
5281
+ "item_type": "individual",
5282
+ "asset_id": "impression_tracker",
5283
+ "required": false,
5284
+ "asset_type": "pixel_tracker",
5285
+ "requirements": {
5286
+ "description": "3rd party impression tracking pixel URL"
5287
+ },
5288
+ "event": "impression",
5289
+ "method": "img"
5290
+ },
5291
+ {
5292
+ "item_type": "individual",
5293
+ "asset_id": "viewability_tracker",
5294
+ "required": false,
5295
+ "asset_type": "pixel_tracker",
5296
+ "event": "viewable_mrc_50",
5297
+ "method": "img",
5298
+ "requirements": {
5299
+ "description": "MRC 50% viewable tracker pixel (1-second viewability for display, 2-seconds with audio for video). Optional — measurement vendor URLs the seller's renderer fires when the viewable threshold is met."
5300
+ }
5301
+ },
5302
+ {
5303
+ "item_type": "individual",
5304
+ "asset_id": "click_tracker",
5305
+ "required": false,
5306
+ "asset_type": "pixel_tracker",
5307
+ "event": "click",
5308
+ "method": "img",
5309
+ "requirements": {
5310
+ "description": "Click measurement tracker pixel (distinct from landing_page_url, the destination). Optional — measurement vendor URL fired when the user clicks the creative, in addition to navigating to landing_page_url."
5311
+ }
5312
+ }
5313
+ ],
5314
+ "supported_macros": [
5315
+ "MEDIA_BUY_ID",
5316
+ "CREATIVE_ID",
5317
+ "CACHEBUSTER",
5318
+ "CLICK_URL",
5319
+ "DEVICE_TYPE",
5320
+ "GDPR",
5321
+ "GDPR_CONSENT",
5322
+ "US_PRIVACY",
5323
+ "GPP_STRING"
5324
+ ],
5325
+ "assets_required": [
5326
+ {
5327
+ "asset_id": "html_creative",
5328
+ "item_type": "individual",
5329
+ "required": true,
5330
+ "asset_type": "html",
5331
+ "requirements": {
5332
+ "sandbox": "none",
5333
+ "width": 320,
5334
+ "height": 50,
5335
+ "max_file_size_mb": 0.5,
5336
+ "description": "HTML5 creative code"
5337
+ }
5338
+ }
5339
+ ],
5340
+ "canonical": {
5341
+ "kind": "html5"
5342
+ }
5343
+ },
5344
+ {
5345
+ "format_id": {
5346
+ "agent_url": "https://creative.adcontextprotocol.org/",
5347
+ "id": "display_300x50_html"
5348
+ },
5349
+ "name": "Mobile Banner - HTML5",
5350
+ "description": "300x50 HTML5 creative",
5351
+ "type": "display",
5352
+ "renders": [
5353
+ {
5354
+ "dimensions": {
5355
+ "height": 50,
5356
+ "responsive": {
5357
+ "height": false,
5358
+ "width": false
5359
+ },
5360
+ "width": 300
5361
+ },
5362
+ "role": "primary"
5363
+ }
5364
+ ],
5365
+ "assets": [
5366
+ {
5367
+ "item_type": "individual",
5368
+ "asset_id": "html_creative",
5369
+ "required": true,
5370
+ "asset_type": "html",
5371
+ "requirements": {
5372
+ "sandbox": "none",
5373
+ "width": 300,
5374
+ "height": 50,
5375
+ "max_file_size_mb": 0.5,
5376
+ "description": "HTML5 creative code"
5377
+ }
5378
+ },
5379
+ {
5380
+ "item_type": "individual",
5381
+ "asset_id": "impression_tracker",
5382
+ "required": false,
5383
+ "asset_type": "pixel_tracker",
5384
+ "requirements": {
5385
+ "description": "3rd party impression tracking pixel URL"
5386
+ },
5387
+ "event": "impression",
5388
+ "method": "img"
5389
+ },
5390
+ {
5391
+ "item_type": "individual",
5392
+ "asset_id": "viewability_tracker",
5393
+ "required": false,
5394
+ "asset_type": "pixel_tracker",
5395
+ "event": "viewable_mrc_50",
5396
+ "method": "img",
5397
+ "requirements": {
5398
+ "description": "MRC 50% viewable tracker pixel (1-second viewability for display, 2-seconds with audio for video). Optional — measurement vendor URLs the seller's renderer fires when the viewable threshold is met."
5399
+ }
5400
+ },
5401
+ {
5402
+ "item_type": "individual",
5403
+ "asset_id": "click_tracker",
5404
+ "required": false,
5405
+ "asset_type": "pixel_tracker",
5406
+ "event": "click",
5407
+ "method": "img",
5408
+ "requirements": {
5409
+ "description": "Click measurement tracker pixel (distinct from landing_page_url, the destination). Optional — measurement vendor URL fired when the user clicks the creative, in addition to navigating to landing_page_url."
5410
+ }
5411
+ }
5412
+ ],
5413
+ "supported_macros": [
5414
+ "MEDIA_BUY_ID",
5415
+ "CREATIVE_ID",
5416
+ "CACHEBUSTER",
5417
+ "CLICK_URL",
5418
+ "DEVICE_TYPE",
5419
+ "GDPR",
5420
+ "GDPR_CONSENT",
5421
+ "US_PRIVACY",
5422
+ "GPP_STRING"
5423
+ ],
5424
+ "assets_required": [
5425
+ {
5426
+ "asset_id": "html_creative",
5427
+ "item_type": "individual",
5428
+ "required": true,
5429
+ "asset_type": "html",
5430
+ "requirements": {
5431
+ "sandbox": "none",
5432
+ "width": 300,
5433
+ "height": 50,
5434
+ "max_file_size_mb": 0.5,
5435
+ "description": "HTML5 creative code"
5436
+ }
5437
+ }
5438
+ ],
5439
+ "canonical": {
5440
+ "kind": "html5"
5441
+ }
5442
+ },
5443
+ {
5444
+ "format_id": {
5445
+ "agent_url": "https://creative.adcontextprotocol.org/",
5446
+ "id": "display_static"
5447
+ },
5448
+ "name": "Static Display",
5449
+ "description": "Legacy static image display format (supports any dimensions)",
5450
+ "type": "display",
5451
+ "accepts_parameters": [
5452
+ "dimensions"
5453
+ ],
5454
+ "assets": [
5455
+ {
5456
+ "item_type": "individual",
5457
+ "asset_id": "banner_image",
5458
+ "required": true,
5459
+ "asset_type": "image",
5460
+ "requirements": {
5461
+ "containers": [
5462
+ "jpg",
5463
+ "png",
5464
+ "gif",
5465
+ "webp"
5466
+ ]
5467
+ }
5468
+ },
5469
+ {
5470
+ "item_type": "individual",
5471
+ "asset_id": "click_url",
5472
+ "required": true,
5473
+ "asset_type": "url",
5474
+ "requirements": {
5475
+ "url_type": "clickthrough",
5476
+ "description": "Clickthrough destination URL"
5477
+ }
5478
+ },
5479
+ {
5480
+ "item_type": "individual",
5481
+ "asset_id": "impression_tracker",
5482
+ "required": false,
5483
+ "asset_type": "pixel_tracker",
5484
+ "requirements": {
5485
+ "description": "3rd party impression tracking pixel URL"
5486
+ },
5487
+ "event": "impression",
5488
+ "method": "img"
5489
+ },
5490
+ {
5491
+ "item_type": "individual",
5492
+ "asset_id": "viewability_tracker",
5493
+ "required": false,
5494
+ "asset_type": "pixel_tracker",
5495
+ "event": "viewable_mrc_50",
5496
+ "method": "img",
5497
+ "requirements": {
5498
+ "description": "MRC 50% viewable tracker pixel (1-second viewability for display, 2-seconds with audio for video). Optional — measurement vendor URLs the seller's renderer fires when the viewable threshold is met."
5499
+ }
5500
+ },
5501
+ {
5502
+ "item_type": "individual",
5503
+ "asset_id": "click_tracker",
5504
+ "required": false,
5505
+ "asset_type": "pixel_tracker",
5506
+ "event": "click",
5507
+ "method": "img",
5508
+ "requirements": {
5509
+ "description": "Click measurement tracker pixel (distinct from landing_page_url, the destination). Optional — measurement vendor URL fired when the user clicks the creative, in addition to navigating to landing_page_url."
5510
+ }
5511
+ }
5512
+ ],
5513
+ "supported_macros": [
5514
+ "MEDIA_BUY_ID",
5515
+ "CREATIVE_ID",
5516
+ "CACHEBUSTER",
5517
+ "CLICK_URL",
5518
+ "DEVICE_TYPE",
5519
+ "GDPR",
5520
+ "GDPR_CONSENT",
5521
+ "US_PRIVACY",
5522
+ "GPP_STRING"
5523
+ ],
5524
+ "assets_required": [
5525
+ {
5526
+ "asset_id": "banner_image",
5527
+ "item_type": "individual",
5528
+ "required": true,
5529
+ "asset_type": "image",
5530
+ "requirements": {
5531
+ "containers": [
5532
+ "jpg",
5533
+ "png",
5534
+ "gif",
5535
+ "webp"
5536
+ ]
5537
+ }
5538
+ },
5539
+ {
5540
+ "asset_id": "click_url",
5541
+ "item_type": "individual",
5542
+ "required": true,
5543
+ "asset_type": "url",
5544
+ "requirements": {
5545
+ "url_type": "clickthrough",
5546
+ "description": "Clickthrough destination URL"
5547
+ }
5548
+ }
5549
+ ],
5550
+ "canonical": {
5551
+ "kind": "image"
5552
+ }
5553
+ },
5554
+ {
5555
+ "format_id": {
5556
+ "agent_url": "https://creative.adcontextprotocol.org/",
5557
+ "id": "video_hosted"
5558
+ },
5559
+ "name": "Hosted Video",
5560
+ "description": "Legacy hosted video format (supports any duration)",
5561
+ "type": "video",
5562
+ "accepts_parameters": [
5563
+ "duration"
5564
+ ],
5565
+ "assets": [
5566
+ {
5567
+ "item_type": "individual",
5568
+ "asset_id": "video_file",
5569
+ "required": true,
5570
+ "asset_type": "video",
5571
+ "requirements": {
5572
+ "containers": [
5573
+ "mp4",
5574
+ "mov",
5575
+ "webm"
5576
+ ]
5577
+ }
5578
+ },
5579
+ {
5580
+ "item_type": "individual",
5581
+ "asset_id": "impression_tracker",
5582
+ "required": false,
5583
+ "asset_type": "pixel_tracker",
5584
+ "requirements": {
5585
+ "description": "3rd party impression tracking pixel URL"
5586
+ },
5587
+ "event": "impression",
5588
+ "method": "img"
5589
+ },
5590
+ {
5591
+ "item_type": "individual",
5592
+ "asset_id": "viewability_tracker",
5593
+ "required": false,
5594
+ "asset_type": "pixel_tracker",
5595
+ "event": "viewable_mrc_50",
5596
+ "method": "img",
5597
+ "requirements": {
5598
+ "description": "MRC 50% viewable tracker pixel (1-second viewability for display, 2-seconds with audio for video). Optional — measurement vendor URLs the seller's renderer fires when the viewable threshold is met."
5599
+ }
5600
+ },
5601
+ {
5602
+ "item_type": "individual",
5603
+ "asset_id": "click_tracker",
5604
+ "required": false,
5605
+ "asset_type": "pixel_tracker",
5606
+ "event": "click",
5607
+ "method": "img",
5608
+ "requirements": {
5609
+ "description": "Click measurement tracker pixel (distinct from landing_page_url, the destination). Optional — measurement vendor URL fired when the user clicks the creative, in addition to navigating to landing_page_url."
5610
+ }
5611
+ }
5612
+ ],
5613
+ "supported_macros": [
5614
+ "MEDIA_BUY_ID",
5615
+ "CREATIVE_ID",
5616
+ "CACHEBUSTER",
5617
+ "CLICK_URL",
5618
+ "DEVICE_TYPE",
5619
+ "GDPR",
5620
+ "GDPR_CONSENT",
5621
+ "US_PRIVACY",
5622
+ "GPP_STRING",
5623
+ "VIDEO_ID",
5624
+ "POD_POSITION",
5625
+ "CONTENT_GENRE"
5626
+ ],
5627
+ "assets_required": [
5628
+ {
5629
+ "asset_id": "video_file",
5630
+ "item_type": "individual",
5631
+ "required": true,
5632
+ "asset_type": "video",
5633
+ "requirements": {
5634
+ "containers": [
5635
+ "mp4",
5636
+ "mov",
5637
+ "webm"
5638
+ ]
5639
+ }
5640
+ }
5641
+ ],
5642
+ "canonical": {
5643
+ "kind": "video_hosted"
5644
+ }
5645
+ },
5646
+ {
5647
+ "format_id": {
5648
+ "agent_url": "https://creative.adcontextprotocol.org/",
5649
+ "id": "audio_30s"
5650
+ },
5651
+ "name": "Hosted Audio - 30 seconds",
5652
+ "description": "Legacy 30-second hosted audio format",
5653
+ "type": "audio",
5654
+ "assets": [
5655
+ {
5656
+ "item_type": "individual",
5657
+ "asset_id": "audio_file",
5658
+ "required": true,
5659
+ "asset_type": "audio",
5660
+ "requirements": {
5661
+ "min_duration_ms": 30000,
5662
+ "max_duration_ms": 30000,
5663
+ "containers": [
5664
+ "mp3",
5665
+ "aac",
5666
+ "m4a"
5667
+ ]
5668
+ }
5669
+ },
5670
+ {
5671
+ "item_type": "individual",
5672
+ "asset_id": "impression_tracker",
5673
+ "required": false,
5674
+ "asset_type": "pixel_tracker",
5675
+ "requirements": {
5676
+ "description": "3rd party impression tracking pixel URL"
5677
+ },
5678
+ "event": "impression",
5679
+ "method": "img"
5680
+ },
5681
+ {
5682
+ "item_type": "individual",
5683
+ "asset_id": "viewability_tracker",
5684
+ "required": false,
5685
+ "asset_type": "pixel_tracker",
5686
+ "event": "viewable_mrc_50",
5687
+ "method": "img",
5688
+ "requirements": {
5689
+ "description": "MRC 50% viewable tracker pixel (1-second viewability for display, 2-seconds with audio for video). Optional — measurement vendor URLs the seller's renderer fires when the viewable threshold is met."
5690
+ }
5691
+ },
5692
+ {
5693
+ "item_type": "individual",
5694
+ "asset_id": "click_tracker",
5695
+ "required": false,
5696
+ "asset_type": "pixel_tracker",
5697
+ "event": "click",
5698
+ "method": "img",
5699
+ "requirements": {
5700
+ "description": "Click measurement tracker pixel (distinct from landing_page_url, the destination). Optional — measurement vendor URL fired when the user clicks the creative, in addition to navigating to landing_page_url."
5701
+ }
5702
+ }
5703
+ ],
5704
+ "supported_macros": [
5705
+ "MEDIA_BUY_ID",
5706
+ "CREATIVE_ID",
5707
+ "CACHEBUSTER",
5708
+ "CLICK_URL",
5709
+ "DEVICE_TYPE",
5710
+ "GDPR",
5711
+ "GDPR_CONSENT",
5712
+ "US_PRIVACY",
5713
+ "GPP_STRING",
5714
+ "CONTENT_GENRE"
5715
+ ],
5716
+ "assets_required": [
5717
+ {
5718
+ "asset_id": "audio_file",
5719
+ "item_type": "individual",
5720
+ "required": true,
5721
+ "asset_type": "audio",
5722
+ "requirements": {
5723
+ "min_duration_ms": 30000,
5724
+ "max_duration_ms": 30000,
5725
+ "containers": [
5726
+ "mp3",
5727
+ "aac",
5728
+ "m4a"
5729
+ ]
5730
+ }
5731
+ }
5732
+ ],
5733
+ "canonical": {
5734
+ "kind": "audio_hosted"
5735
+ }
5244
5736
  }
5245
5737
  ]
@@ -20,6 +20,20 @@
20
20
  * `toCanonicalOnlyProduct` / `toCanonicalOnlyResponse`.
21
21
  */
22
22
  import type { V1Product, V2ProductFormatDeclaration, ProjectionDiagnostic } from './types.mjs';
23
+ import type { V1ToV2ProjectionOptions } from './v1-to-v2.mjs';
24
+ import type { CanonicalFormatDeclaration } from './legacy-metadata.mjs';
25
+ /** Protocol Error shape used for portable response-level projection advisories. */
26
+ export interface CanonicalProjectionError {
27
+ code: ProjectionDiagnostic['code'];
28
+ message: string;
29
+ field: string;
30
+ recovery: 'correctable';
31
+ source: 'sdk';
32
+ sdk_id: string;
33
+ details: ProjectionDiagnostic['error']['details'];
34
+ }
35
+ /** Flatten the projector's internal diagnostic into the protocol `Error` shape. */
36
+ export declare function projectionDiagnosticToError(diagnostic: ProjectionDiagnostic): CanonicalProjectionError;
23
37
  /**
24
38
  * A Product that has been augmented with `format_options[]` while
25
39
  * preserving the original `format_ids[]`. Carries the projection
@@ -52,7 +66,7 @@ export type V2AugmentedProduct<P> = P & {
52
66
  * @see toCanonicalOnlyProduct — the canonical-only counterpart that DROPS
53
67
  * `format_ids[]` for a fully-migrated consumer.
54
68
  */
55
- export declare function augmentProductWithFormatOptions<P extends V1Product>(product: P): {
69
+ export declare function augmentProductWithFormatOptions<P extends V1Product>(product: P, options?: V1ToV2ProjectionOptions): {
56
70
  product: V2AugmentedProduct<P>;
57
71
  diagnostics: ProjectionDiagnostic[];
58
72
  };
@@ -72,7 +86,7 @@ export declare function augmentProductWithFormatOptions<P extends V1Product>(pro
72
86
  */
73
87
  export declare function withFormatOptions<R extends {
74
88
  products?: V1Product[];
75
- }>(response: R): {
89
+ }>(response: R, options?: V1ToV2ProjectionOptions): {
76
90
  response: R & {
77
91
  products: V2AugmentedProduct<V1Product>[];
78
92
  };
@@ -86,7 +100,8 @@ export declare function withFormatOptions<R extends {
86
100
  * silently bypass the canonical model.
87
101
  */
88
102
  export type CanonicalOnlyProduct<P> = Omit<P, 'format_ids'> & {
89
- format_options: V2ProductFormatDeclaration[];
103
+ format_ids?: never;
104
+ format_options: CanonicalFormatDeclaration[];
90
105
  };
91
106
  /**
92
107
  * Project a single Product to the canonical-only shape: `format_options[]`
@@ -101,9 +116,9 @@ export type CanonicalOnlyProduct<P> = Omit<P, 'format_ids'> & {
101
116
  * the projection can't map is surfaced as `FORMAT_PROJECTION_FAILED`.
102
117
  * - **v2-native input** (`format_options[]` already present): keeps the
103
118
  * seller's canonical surface and drops the redundant v1 fallback. If a
104
- * `format_ids[]` entry exists that no `format_options[].v1_format_ref`
105
- * covers, it surfaces as `LEGACY_FORMAT_ID_DROPPED_UNMAPPED` — the gap
106
- * the projection path can't see.
119
+ * legacy routing entry exists that no canonical option covers, it
120
+ * surfaces a canonical-safe `LEGACY_FORMAT_ID_DROPPED_UNMAPPED`
121
+ * diagnostic without echoing the routing identifier.
107
122
  * - **neither shape**: returns `format_options: []`; there is nothing to
108
123
  * project and nothing to lose.
109
124
  *
@@ -113,7 +128,7 @@ export type CanonicalOnlyProduct<P> = Omit<P, 'format_ids'> & {
113
128
  * non-invertibility tracked at adcontextprotocol/adcp#4842 — this is the
114
129
  * read-side transparency half.
115
130
  */
116
- export declare function toCanonicalOnlyProduct<P extends V1Product>(product: P): {
131
+ export declare function toCanonicalOnlyProduct<P extends V1Product>(product: P, options?: V1ToV2ProjectionOptions): {
117
132
  product: CanonicalOnlyProduct<P>;
118
133
  diagnostics: ProjectionDiagnostic[];
119
134
  };
@@ -124,15 +139,20 @@ export declare function toCanonicalOnlyProduct<P extends V1Product>(product: P):
124
139
  * alongside the response's existing `errors[]`.
125
140
  *
126
141
  * Response-level counterpart to {@link toCanonicalOnlyProduct}; same
127
- * never-silently-lose-a-format guarantee, aggregated across products. The
128
- * canonical-only sibling of {@link withFormatOptions} (which is additive
129
- * and preserves `format_ids[]`).
142
+ * fail-closed guarantee, aggregated across products. A wholly unmappable
143
+ * legacy product cannot be represented as a canonical Product because the
144
+ * protocol requires `format_options` to contain at least one declaration. It
145
+ * is therefore omitted from the canonical list and surfaced through the
146
+ * response's portable `errors[]` plus the SDK convenience diagnostics. A
147
+ * partially mappable product remains with its mapped options and advisories
148
+ * for the refs that could not be projected.
130
149
  */
131
150
  export declare function toCanonicalOnlyResponse<R extends {
132
151
  products?: V1Product[];
133
- }>(response: R): {
152
+ }>(response: R, options?: V1ToV2ProjectionOptions): {
134
153
  response: Omit<R, 'products'> & {
135
154
  products: CanonicalOnlyProduct<V1Product>[];
155
+ errors?: unknown[];
136
156
  };
137
157
  diagnostics: ProjectionDiagnostic[];
138
158
  };
@@ -20,6 +20,20 @@
20
20
  * `toCanonicalOnlyProduct` / `toCanonicalOnlyResponse`.
21
21
  */
22
22
  import type { V1Product, V2ProductFormatDeclaration, ProjectionDiagnostic } from './types';
23
+ import type { V1ToV2ProjectionOptions } from './v1-to-v2';
24
+ import type { CanonicalFormatDeclaration } from './legacy-metadata';
25
+ /** Protocol Error shape used for portable response-level projection advisories. */
26
+ export interface CanonicalProjectionError {
27
+ code: ProjectionDiagnostic['code'];
28
+ message: string;
29
+ field: string;
30
+ recovery: 'correctable';
31
+ source: 'sdk';
32
+ sdk_id: string;
33
+ details: ProjectionDiagnostic['error']['details'];
34
+ }
35
+ /** Flatten the projector's internal diagnostic into the protocol `Error` shape. */
36
+ export declare function projectionDiagnosticToError(diagnostic: ProjectionDiagnostic): CanonicalProjectionError;
23
37
  /**
24
38
  * A Product that has been augmented with `format_options[]` while
25
39
  * preserving the original `format_ids[]`. Carries the projection
@@ -52,7 +66,7 @@ export type V2AugmentedProduct<P> = P & {
52
66
  * @see toCanonicalOnlyProduct — the canonical-only counterpart that DROPS
53
67
  * `format_ids[]` for a fully-migrated consumer.
54
68
  */
55
- export declare function augmentProductWithFormatOptions<P extends V1Product>(product: P): {
69
+ export declare function augmentProductWithFormatOptions<P extends V1Product>(product: P, options?: V1ToV2ProjectionOptions): {
56
70
  product: V2AugmentedProduct<P>;
57
71
  diagnostics: ProjectionDiagnostic[];
58
72
  };
@@ -72,7 +86,7 @@ export declare function augmentProductWithFormatOptions<P extends V1Product>(pro
72
86
  */
73
87
  export declare function withFormatOptions<R extends {
74
88
  products?: V1Product[];
75
- }>(response: R): {
89
+ }>(response: R, options?: V1ToV2ProjectionOptions): {
76
90
  response: R & {
77
91
  products: V2AugmentedProduct<V1Product>[];
78
92
  };
@@ -86,7 +100,8 @@ export declare function withFormatOptions<R extends {
86
100
  * silently bypass the canonical model.
87
101
  */
88
102
  export type CanonicalOnlyProduct<P> = Omit<P, 'format_ids'> & {
89
- format_options: V2ProductFormatDeclaration[];
103
+ format_ids?: never;
104
+ format_options: CanonicalFormatDeclaration[];
90
105
  };
91
106
  /**
92
107
  * Project a single Product to the canonical-only shape: `format_options[]`
@@ -101,9 +116,9 @@ export type CanonicalOnlyProduct<P> = Omit<P, 'format_ids'> & {
101
116
  * the projection can't map is surfaced as `FORMAT_PROJECTION_FAILED`.
102
117
  * - **v2-native input** (`format_options[]` already present): keeps the
103
118
  * seller's canonical surface and drops the redundant v1 fallback. If a
104
- * `format_ids[]` entry exists that no `format_options[].v1_format_ref`
105
- * covers, it surfaces as `LEGACY_FORMAT_ID_DROPPED_UNMAPPED` — the gap
106
- * the projection path can't see.
119
+ * legacy routing entry exists that no canonical option covers, it
120
+ * surfaces a canonical-safe `LEGACY_FORMAT_ID_DROPPED_UNMAPPED`
121
+ * diagnostic without echoing the routing identifier.
107
122
  * - **neither shape**: returns `format_options: []`; there is nothing to
108
123
  * project and nothing to lose.
109
124
  *
@@ -113,7 +128,7 @@ export type CanonicalOnlyProduct<P> = Omit<P, 'format_ids'> & {
113
128
  * non-invertibility tracked at adcontextprotocol/adcp#4842 — this is the
114
129
  * read-side transparency half.
115
130
  */
116
- export declare function toCanonicalOnlyProduct<P extends V1Product>(product: P): {
131
+ export declare function toCanonicalOnlyProduct<P extends V1Product>(product: P, options?: V1ToV2ProjectionOptions): {
117
132
  product: CanonicalOnlyProduct<P>;
118
133
  diagnostics: ProjectionDiagnostic[];
119
134
  };
@@ -124,15 +139,20 @@ export declare function toCanonicalOnlyProduct<P extends V1Product>(product: P):
124
139
  * alongside the response's existing `errors[]`.
125
140
  *
126
141
  * Response-level counterpart to {@link toCanonicalOnlyProduct}; same
127
- * never-silently-lose-a-format guarantee, aggregated across products. The
128
- * canonical-only sibling of {@link withFormatOptions} (which is additive
129
- * and preserves `format_ids[]`).
142
+ * fail-closed guarantee, aggregated across products. A wholly unmappable
143
+ * legacy product cannot be represented as a canonical Product because the
144
+ * protocol requires `format_options` to contain at least one declaration. It
145
+ * is therefore omitted from the canonical list and surfaced through the
146
+ * response's portable `errors[]` plus the SDK convenience diagnostics. A
147
+ * partially mappable product remains with its mapped options and advisories
148
+ * for the refs that could not be projected.
130
149
  */
131
150
  export declare function toCanonicalOnlyResponse<R extends {
132
151
  products?: V1Product[];
133
- }>(response: R): {
152
+ }>(response: R, options?: V1ToV2ProjectionOptions): {
134
153
  response: Omit<R, 'products'> & {
135
154
  products: CanonicalOnlyProduct<V1Product>[];
155
+ errors?: unknown[];
136
156
  };
137
157
  diagnostics: ProjectionDiagnostic[];
138
158
  };