@adcp/sdk 12.1.1 → 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 (410) 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/provider-cache.d.mts +7 -0
  18. package/dist/lib/auth/oauth/provider-cache.d.ts +8 -0
  19. package/dist/lib/auth/oauth/provider-cache.d.ts.map +1 -0
  20. package/dist/lib/auth/oauth/provider-cache.js +44 -0
  21. package/dist/lib/auth/oauth/provider-cache.js.map +1 -0
  22. package/dist/lib/auth/oauth/provider-cache.mjs +19 -0
  23. package/dist/lib/auth/oauth/provider-cache.mjs.map +1 -0
  24. package/dist/lib/conformance/invariants/uniformError.js +1 -1
  25. package/dist/lib/conformance/invariants/uniformError.js.map +1 -1
  26. package/dist/lib/conformance/invariants/uniformError.mjs +1 -1
  27. package/dist/lib/conformance/invariants/uniformError.mjs.map +1 -1
  28. package/dist/lib/conformance/runners.js +1 -1
  29. package/dist/lib/conformance/runners.js.map +1 -1
  30. package/dist/lib/conformance/runners.mjs +1 -1
  31. package/dist/lib/conformance/runners.mjs.map +1 -1
  32. package/dist/lib/conformance/seeder.js +5 -5
  33. package/dist/lib/conformance/seeder.js.map +1 -1
  34. package/dist/lib/conformance/seeder.mjs +5 -5
  35. package/dist/lib/conformance/seeder.mjs.map +1 -1
  36. package/dist/lib/core/ADCPMultiAgentClient.d.mts +26 -29
  37. package/dist/lib/core/ADCPMultiAgentClient.d.ts +26 -29
  38. package/dist/lib/core/ADCPMultiAgentClient.d.ts.map +1 -1
  39. package/dist/lib/core/ADCPMultiAgentClient.js +27 -19
  40. package/dist/lib/core/ADCPMultiAgentClient.js.map +1 -1
  41. package/dist/lib/core/ADCPMultiAgentClient.mjs +27 -19
  42. package/dist/lib/core/ADCPMultiAgentClient.mjs.map +1 -1
  43. package/dist/lib/core/AgentClient.d.mts +148 -138
  44. package/dist/lib/core/AgentClient.d.ts +148 -138
  45. package/dist/lib/core/AgentClient.d.ts.map +1 -1
  46. package/dist/lib/core/AgentClient.js +174 -85
  47. package/dist/lib/core/AgentClient.js.map +1 -1
  48. package/dist/lib/core/AgentClient.mjs +174 -85
  49. package/dist/lib/core/AgentClient.mjs.map +1 -1
  50. package/dist/lib/core/AsyncHandler.d.mts +18 -16
  51. package/dist/lib/core/AsyncHandler.d.ts +18 -16
  52. package/dist/lib/core/AsyncHandler.d.ts.map +1 -1
  53. package/dist/lib/core/AsyncHandler.js +22 -1
  54. package/dist/lib/core/AsyncHandler.js.map +1 -1
  55. package/dist/lib/core/AsyncHandler.mjs +22 -1
  56. package/dist/lib/core/AsyncHandler.mjs.map +1 -1
  57. package/dist/lib/core/ConversationTypes.d.mts +6 -2
  58. package/dist/lib/core/ConversationTypes.d.ts +6 -2
  59. package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
  60. package/dist/lib/core/ConversationTypes.js.map +1 -1
  61. package/dist/lib/core/CreativeAgentClient.d.mts +41 -17
  62. package/dist/lib/core/CreativeAgentClient.d.ts +41 -17
  63. package/dist/lib/core/CreativeAgentClient.d.ts.map +1 -1
  64. package/dist/lib/core/CreativeAgentClient.js +39 -12
  65. package/dist/lib/core/CreativeAgentClient.js.map +1 -1
  66. package/dist/lib/core/CreativeAgentClient.mjs +39 -12
  67. package/dist/lib/core/CreativeAgentClient.mjs.map +1 -1
  68. package/dist/lib/core/SingleAgentClient.d.mts +127 -50
  69. package/dist/lib/core/SingleAgentClient.d.ts +127 -50
  70. package/dist/lib/core/SingleAgentClient.d.ts.map +1 -1
  71. package/dist/lib/core/SingleAgentClient.js +1617 -177
  72. package/dist/lib/core/SingleAgentClient.js.map +1 -1
  73. package/dist/lib/core/SingleAgentClient.mjs +1627 -177
  74. package/dist/lib/core/SingleAgentClient.mjs.map +1 -1
  75. package/dist/lib/core/TaskExecutor.d.mts +9 -0
  76. package/dist/lib/core/TaskExecutor.d.ts +9 -0
  77. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  78. package/dist/lib/core/TaskExecutor.js +136 -43
  79. package/dist/lib/core/TaskExecutor.js.map +1 -1
  80. package/dist/lib/core/TaskExecutor.mjs +136 -43
  81. package/dist/lib/core/TaskExecutor.mjs.map +1 -1
  82. package/dist/lib/index.d.mts +111 -17
  83. package/dist/lib/index.d.ts +111 -17
  84. package/dist/lib/index.d.ts.map +1 -1
  85. package/dist/lib/index.js +94 -94
  86. package/dist/lib/index.js.map +1 -1
  87. package/dist/lib/index.mjs +93 -94
  88. package/dist/lib/index.mjs.map +1 -1
  89. package/dist/lib/protocols/index.d.ts.map +1 -1
  90. package/dist/lib/protocols/index.js +6 -15
  91. package/dist/lib/protocols/index.js.map +1 -1
  92. package/dist/lib/protocols/index.mjs +6 -16
  93. package/dist/lib/protocols/index.mjs.map +1 -1
  94. package/dist/lib/protocols/mcp-modern.d.ts.map +1 -1
  95. package/dist/lib/protocols/mcp-modern.js +87 -12
  96. package/dist/lib/protocols/mcp-modern.js.map +1 -1
  97. package/dist/lib/protocols/mcp-modern.mjs +89 -12
  98. package/dist/lib/protocols/mcp-modern.mjs.map +1 -1
  99. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  100. package/dist/lib/server/create-adcp-server.d.mts +6 -0
  101. package/dist/lib/server/create-adcp-server.d.ts +6 -0
  102. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  103. package/dist/lib/server/create-adcp-server.js +295 -48
  104. package/dist/lib/server/create-adcp-server.js.map +1 -1
  105. package/dist/lib/server/create-adcp-server.mjs +301 -50
  106. package/dist/lib/server/create-adcp-server.mjs.map +1 -1
  107. package/dist/lib/server/decisioning/assembly-helpers.d.mts +27 -13
  108. package/dist/lib/server/decisioning/assembly-helpers.d.ts +27 -13
  109. package/dist/lib/server/decisioning/assembly-helpers.d.ts.map +1 -1
  110. package/dist/lib/server/decisioning/assembly-helpers.js +136 -14
  111. package/dist/lib/server/decisioning/assembly-helpers.js.map +1 -1
  112. package/dist/lib/server/decisioning/assembly-helpers.mjs +134 -13
  113. package/dist/lib/server/decisioning/assembly-helpers.mjs.map +1 -1
  114. package/dist/lib/server/decisioning/index.d.mts +13 -12
  115. package/dist/lib/server/decisioning/index.d.ts +13 -12
  116. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  117. package/dist/lib/server/decisioning/index.js +6 -0
  118. package/dist/lib/server/decisioning/index.js.map +1 -1
  119. package/dist/lib/server/decisioning/index.mjs +9 -3
  120. package/dist/lib/server/decisioning/index.mjs.map +1 -1
  121. package/dist/lib/server/decisioning/list-helpers.d.mts +13 -3
  122. package/dist/lib/server/decisioning/list-helpers.d.ts +13 -3
  123. package/dist/lib/server/decisioning/list-helpers.d.ts.map +1 -1
  124. package/dist/lib/server/decisioning/list-helpers.js +13 -3
  125. package/dist/lib/server/decisioning/list-helpers.js.map +1 -1
  126. package/dist/lib/server/decisioning/list-helpers.mjs +11 -2
  127. package/dist/lib/server/decisioning/list-helpers.mjs.map +1 -1
  128. package/dist/lib/server/decisioning/manifest-helpers.d.mts +5 -3
  129. package/dist/lib/server/decisioning/manifest-helpers.d.ts +5 -3
  130. package/dist/lib/server/decisioning/manifest-helpers.d.ts.map +1 -1
  131. package/dist/lib/server/decisioning/manifest-helpers.js.map +1 -1
  132. package/dist/lib/server/decisioning/manifest-helpers.mjs.map +1 -1
  133. package/dist/lib/server/decisioning/proposal/dispatch.d.mts +2 -2
  134. package/dist/lib/server/decisioning/proposal/dispatch.d.ts +2 -2
  135. package/dist/lib/server/decisioning/proposal/dispatch.d.ts.map +1 -1
  136. package/dist/lib/server/decisioning/proposal/dispatch.js.map +1 -1
  137. package/dist/lib/server/decisioning/proposal/dispatch.mjs.map +1 -1
  138. package/dist/lib/server/decisioning/proposal/index.d.mts +1 -1
  139. package/dist/lib/server/decisioning/proposal/index.d.ts +1 -1
  140. package/dist/lib/server/decisioning/proposal/index.d.ts.map +1 -1
  141. package/dist/lib/server/decisioning/proposal/index.js.map +1 -1
  142. package/dist/lib/server/decisioning/proposal/index.mjs.map +1 -1
  143. package/dist/lib/server/decisioning/proposal/lifecycle.d.mts +3 -2
  144. package/dist/lib/server/decisioning/proposal/lifecycle.d.ts +3 -2
  145. package/dist/lib/server/decisioning/proposal/lifecycle.d.ts.map +1 -1
  146. package/dist/lib/server/decisioning/proposal/lifecycle.js.map +1 -1
  147. package/dist/lib/server/decisioning/proposal/lifecycle.mjs.map +1 -1
  148. package/dist/lib/server/decisioning/proposal/mock-manager.d.mts +3 -3
  149. package/dist/lib/server/decisioning/proposal/mock-manager.d.ts +3 -3
  150. package/dist/lib/server/decisioning/proposal/mock-manager.d.ts.map +1 -1
  151. package/dist/lib/server/decisioning/proposal/mock-manager.js.map +1 -1
  152. package/dist/lib/server/decisioning/proposal/mock-manager.mjs.map +1 -1
  153. package/dist/lib/server/decisioning/proposal/types.d.mts +10 -6
  154. package/dist/lib/server/decisioning/proposal/types.d.ts +10 -6
  155. package/dist/lib/server/decisioning/proposal/types.d.ts.map +1 -1
  156. package/dist/lib/server/decisioning/proposal/types.js.map +1 -1
  157. package/dist/lib/server/decisioning/proposal/types.mjs.map +1 -1
  158. package/dist/lib/server/decisioning/runtime/from-platform.d.mts +21 -2
  159. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +21 -2
  160. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  161. package/dist/lib/server/decisioning/runtime/from-platform.js +754 -81
  162. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  163. package/dist/lib/server/decisioning/runtime/from-platform.mjs +763 -81
  164. package/dist/lib/server/decisioning/runtime/from-platform.mjs.map +1 -1
  165. package/dist/lib/server/decisioning/specialisms/brand-rights.d.mts +9 -9
  166. package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts +9 -9
  167. package/dist/lib/server/decisioning/specialisms/brand-rights.d.ts.map +1 -1
  168. package/dist/lib/server/decisioning/specialisms/brand-rights.js.map +1 -1
  169. package/dist/lib/server/decisioning/specialisms/content-standards.d.mts +16 -16
  170. package/dist/lib/server/decisioning/specialisms/content-standards.d.ts +16 -16
  171. package/dist/lib/server/decisioning/specialisms/content-standards.d.ts.map +1 -1
  172. package/dist/lib/server/decisioning/specialisms/content-standards.js.map +1 -1
  173. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.mts +15 -13
  174. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts +15 -13
  175. package/dist/lib/server/decisioning/specialisms/creative-ad-server.d.ts.map +1 -1
  176. package/dist/lib/server/decisioning/specialisms/creative-ad-server.js.map +1 -1
  177. package/dist/lib/server/decisioning/specialisms/creative.d.mts +12 -11
  178. package/dist/lib/server/decisioning/specialisms/creative.d.ts +12 -11
  179. package/dist/lib/server/decisioning/specialisms/creative.d.ts.map +1 -1
  180. package/dist/lib/server/decisioning/specialisms/creative.js.map +1 -1
  181. package/dist/lib/server/decisioning/specialisms/sales.d.mts +25 -15
  182. package/dist/lib/server/decisioning/specialisms/sales.d.ts +25 -15
  183. package/dist/lib/server/decisioning/specialisms/sales.d.ts.map +1 -1
  184. package/dist/lib/server/decisioning/specialisms/sales.js.map +1 -1
  185. package/dist/lib/server/index.d.mts +3 -3
  186. package/dist/lib/server/index.d.ts +3 -3
  187. package/dist/lib/server/index.d.ts.map +1 -1
  188. package/dist/lib/server/index.js +72 -72
  189. package/dist/lib/server/index.js.map +1 -1
  190. package/dist/lib/server/index.mjs +36 -36
  191. package/dist/lib/server/index.mjs.map +1 -1
  192. package/dist/lib/server/legacy/v5/index.d.mts +1 -0
  193. package/dist/lib/server/legacy/v5/index.d.ts +1 -0
  194. package/dist/lib/server/legacy/v5/index.d.ts.map +1 -1
  195. package/dist/lib/server/legacy/v5/index.js +74 -1
  196. package/dist/lib/server/legacy/v5/index.js.map +1 -1
  197. package/dist/lib/server/legacy/v5/index.mjs +75 -1
  198. package/dist/lib/server/legacy/v5/index.mjs.map +1 -1
  199. package/dist/lib/server/responses.d.mts +2 -2
  200. package/dist/lib/server/responses.d.ts +2 -2
  201. package/dist/lib/server/responses.js.map +1 -1
  202. package/dist/lib/server/responses.mjs.map +1 -1
  203. package/dist/lib/testing/client.js +1 -1
  204. package/dist/lib/testing/client.js.map +1 -1
  205. package/dist/lib/testing/client.mjs +1 -1
  206. package/dist/lib/testing/client.mjs.map +1 -1
  207. package/dist/lib/testing/scenarios/brand-rights.js +6 -6
  208. package/dist/lib/testing/scenarios/brand-rights.js.map +1 -1
  209. package/dist/lib/testing/scenarios/brand-rights.mjs +6 -6
  210. package/dist/lib/testing/scenarios/brand-rights.mjs.map +1 -1
  211. package/dist/lib/testing/scenarios/creative.js +7 -7
  212. package/dist/lib/testing/scenarios/creative.js.map +1 -1
  213. package/dist/lib/testing/scenarios/creative.mjs +7 -7
  214. package/dist/lib/testing/scenarios/creative.mjs.map +1 -1
  215. package/dist/lib/testing/scenarios/discovery.js +2 -2
  216. package/dist/lib/testing/scenarios/discovery.js.map +1 -1
  217. package/dist/lib/testing/scenarios/discovery.mjs +2 -2
  218. package/dist/lib/testing/scenarios/discovery.mjs.map +1 -1
  219. package/dist/lib/testing/scenarios/edge-cases.js +11 -11
  220. package/dist/lib/testing/scenarios/edge-cases.js.map +1 -1
  221. package/dist/lib/testing/scenarios/edge-cases.mjs +11 -11
  222. package/dist/lib/testing/scenarios/edge-cases.mjs.map +1 -1
  223. package/dist/lib/testing/scenarios/governance.d.ts.map +1 -1
  224. package/dist/lib/testing/scenarios/governance.js +16 -22
  225. package/dist/lib/testing/scenarios/governance.js.map +1 -1
  226. package/dist/lib/testing/scenarios/governance.mjs +16 -22
  227. package/dist/lib/testing/scenarios/governance.mjs.map +1 -1
  228. package/dist/lib/testing/scenarios/media-buy.js +5 -5
  229. package/dist/lib/testing/scenarios/media-buy.js.map +1 -1
  230. package/dist/lib/testing/scenarios/media-buy.mjs +5 -5
  231. package/dist/lib/testing/scenarios/media-buy.mjs.map +1 -1
  232. package/dist/lib/testing/scenarios/schema-compliance.js +1 -1
  233. package/dist/lib/testing/scenarios/schema-compliance.js.map +1 -1
  234. package/dist/lib/testing/scenarios/schema-compliance.mjs +1 -1
  235. package/dist/lib/testing/scenarios/schema-compliance.mjs.map +1 -1
  236. package/dist/lib/testing/scenarios/trusted-match.d.ts.map +1 -1
  237. package/dist/lib/testing/scenarios/trusted-match.js +4 -3
  238. package/dist/lib/testing/scenarios/trusted-match.js.map +1 -1
  239. package/dist/lib/testing/scenarios/trusted-match.mjs +4 -3
  240. package/dist/lib/testing/scenarios/trusted-match.mjs.map +1 -1
  241. package/dist/lib/testing/storyboard/shape-drift-hints.d.mts +3 -4
  242. package/dist/lib/testing/storyboard/shape-drift-hints.d.ts +3 -4
  243. package/dist/lib/testing/storyboard/shape-drift-hints.d.ts.map +1 -1
  244. package/dist/lib/testing/storyboard/shape-drift-hints.js +27 -27
  245. package/dist/lib/testing/storyboard/shape-drift-hints.js.map +1 -1
  246. package/dist/lib/testing/storyboard/shape-drift-hints.mjs +27 -27
  247. package/dist/lib/testing/storyboard/shape-drift-hints.mjs.map +1 -1
  248. package/dist/lib/testing/storyboard/task-map.d.ts.map +1 -1
  249. package/dist/lib/testing/storyboard/task-map.js +43 -5
  250. package/dist/lib/testing/storyboard/task-map.js.map +1 -1
  251. package/dist/lib/testing/storyboard/task-map.mjs +43 -5
  252. package/dist/lib/testing/storyboard/task-map.mjs.map +1 -1
  253. package/dist/lib/testing/test-helpers.d.mts +2 -2
  254. package/dist/lib/testing/test-helpers.d.ts +2 -2
  255. package/dist/lib/testing/test-helpers.js.map +1 -1
  256. package/dist/lib/testing/test-helpers.mjs.map +1 -1
  257. package/dist/lib/types/adcp.d.mts +14 -14
  258. package/dist/lib/types/adcp.d.ts +14 -14
  259. package/dist/lib/types/adcp.d.ts.map +1 -1
  260. package/dist/lib/types/adcp.js.map +1 -1
  261. package/dist/lib/types/adcp.mjs.map +1 -1
  262. package/dist/lib/types/index.d.mts +2 -2
  263. package/dist/lib/types/index.d.ts +2 -2
  264. package/dist/lib/types/index.d.ts.map +1 -1
  265. package/dist/lib/types/index.js.map +1 -1
  266. package/dist/lib/types/index.mjs.map +1 -1
  267. package/dist/lib/utils/capabilities.d.mts +6 -0
  268. package/dist/lib/utils/capabilities.d.ts +6 -0
  269. package/dist/lib/utils/capabilities.d.ts.map +1 -1
  270. package/dist/lib/utils/capabilities.js +4 -0
  271. package/dist/lib/utils/capabilities.js.map +1 -1
  272. package/dist/lib/utils/capabilities.mjs +4 -0
  273. package/dist/lib/utils/capabilities.mjs.map +1 -1
  274. package/dist/lib/utils/creative-delivery.d.mts +52 -10
  275. package/dist/lib/utils/creative-delivery.d.ts +52 -10
  276. package/dist/lib/utils/creative-delivery.d.ts.map +1 -1
  277. package/dist/lib/utils/creative-delivery.js +104 -9
  278. package/dist/lib/utils/creative-delivery.js.map +1 -1
  279. package/dist/lib/utils/creative-delivery.mjs +104 -8
  280. package/dist/lib/utils/creative-delivery.mjs.map +1 -1
  281. package/dist/lib/utils/format-assets.d.mts +41 -38
  282. package/dist/lib/utils/format-assets.d.ts +41 -38
  283. package/dist/lib/utils/format-assets.d.ts.map +1 -1
  284. package/dist/lib/utils/format-assets.js +3 -1
  285. package/dist/lib/utils/format-assets.js.map +1 -1
  286. package/dist/lib/utils/format-assets.mjs +3 -1
  287. package/dist/lib/utils/format-assets.mjs.map +1 -1
  288. package/dist/lib/utils/index.d.mts +8 -8
  289. package/dist/lib/utils/index.d.ts +8 -8
  290. package/dist/lib/utils/index.d.ts.map +1 -1
  291. package/dist/lib/utils/index.js +11 -9
  292. package/dist/lib/utils/index.js.map +1 -1
  293. package/dist/lib/utils/index.mjs +9 -8
  294. package/dist/lib/utils/index.mjs.map +1 -1
  295. package/dist/lib/utils/preview-utils.d.mts +11 -8
  296. package/dist/lib/utils/preview-utils.d.ts +11 -8
  297. package/dist/lib/utils/preview-utils.d.ts.map +1 -1
  298. package/dist/lib/utils/preview-utils.js +4 -4
  299. package/dist/lib/utils/preview-utils.js.map +1 -1
  300. package/dist/lib/utils/preview-utils.mjs +3 -3
  301. package/dist/lib/utils/preview-utils.mjs.map +1 -1
  302. package/dist/lib/utils/tool-request-schemas.d.mts +2 -2
  303. package/dist/lib/utils/tool-request-schemas.d.ts +2 -2
  304. package/dist/lib/v2/projection/aao-reference-formats.json +492 -0
  305. package/dist/lib/v2/projection/augment-response.d.mts +31 -11
  306. package/dist/lib/v2/projection/augment-response.d.ts +31 -11
  307. package/dist/lib/v2/projection/augment-response.d.ts.map +1 -1
  308. package/dist/lib/v2/projection/augment-response.js +233 -27
  309. package/dist/lib/v2/projection/augment-response.js.map +1 -1
  310. package/dist/lib/v2/projection/augment-response.mjs +232 -27
  311. package/dist/lib/v2/projection/augment-response.mjs.map +1 -1
  312. package/dist/lib/v2/projection/builders.d.mts +7 -6
  313. package/dist/lib/v2/projection/builders.d.ts +7 -6
  314. package/dist/lib/v2/projection/builders.d.ts.map +1 -1
  315. package/dist/lib/v2/projection/builders.js +11 -8
  316. package/dist/lib/v2/projection/builders.js.map +1 -1
  317. package/dist/lib/v2/projection/builders.mjs +9 -6
  318. package/dist/lib/v2/projection/builders.mjs.map +1 -1
  319. package/dist/lib/v2/projection/catalog-snapshot.d.mts +47 -0
  320. package/dist/lib/v2/projection/catalog-snapshot.d.ts +48 -0
  321. package/dist/lib/v2/projection/catalog-snapshot.d.ts.map +1 -0
  322. package/dist/lib/v2/projection/catalog-snapshot.js +291 -0
  323. package/dist/lib/v2/projection/catalog-snapshot.js.map +1 -0
  324. package/dist/lib/v2/projection/catalog-snapshot.mjs +265 -0
  325. package/dist/lib/v2/projection/catalog-snapshot.mjs.map +1 -0
  326. package/dist/lib/v2/projection/catalog.d.mts +23 -2
  327. package/dist/lib/v2/projection/catalog.d.ts +23 -2
  328. package/dist/lib/v2/projection/catalog.d.ts.map +1 -1
  329. package/dist/lib/v2/projection/catalog.js +34 -10
  330. package/dist/lib/v2/projection/catalog.js.map +1 -1
  331. package/dist/lib/v2/projection/catalog.mjs +33 -10
  332. package/dist/lib/v2/projection/catalog.mjs.map +1 -1
  333. package/dist/lib/v2/projection/creative-delivery.d.mts +157 -0
  334. package/dist/lib/v2/projection/creative-delivery.d.ts +158 -0
  335. package/dist/lib/v2/projection/creative-delivery.d.ts.map +1 -0
  336. package/dist/lib/v2/projection/creative-delivery.js +967 -0
  337. package/dist/lib/v2/projection/creative-delivery.js.map +1 -0
  338. package/dist/lib/v2/projection/creative-delivery.mjs +941 -0
  339. package/dist/lib/v2/projection/creative-delivery.mjs.map +1 -0
  340. package/dist/lib/v2/projection/index.d.mts +8 -6
  341. package/dist/lib/v2/projection/index.d.ts +8 -6
  342. package/dist/lib/v2/projection/index.d.ts.map +1 -1
  343. package/dist/lib/v2/projection/index.js +26 -4
  344. package/dist/lib/v2/projection/index.js.map +1 -1
  345. package/dist/lib/v2/projection/index.mjs +28 -4
  346. package/dist/lib/v2/projection/index.mjs.map +1 -1
  347. package/dist/lib/v2/projection/legacy-metadata.d.mts +21 -0
  348. package/dist/lib/v2/projection/legacy-metadata.d.ts +22 -0
  349. package/dist/lib/v2/projection/legacy-metadata.d.ts.map +1 -0
  350. package/dist/lib/v2/projection/legacy-metadata.js +73 -0
  351. package/dist/lib/v2/projection/legacy-metadata.js.map +1 -0
  352. package/dist/lib/v2/projection/legacy-metadata.mjs +45 -0
  353. package/dist/lib/v2/projection/legacy-metadata.mjs.map +1 -0
  354. package/dist/lib/v2/projection/types.d.mts +29 -23
  355. package/dist/lib/v2/projection/types.d.ts +29 -23
  356. package/dist/lib/v2/projection/types.d.ts.map +1 -1
  357. package/dist/lib/v2/projection/types.js.map +1 -1
  358. package/dist/lib/v2/projection/v1-to-v2.d.mts +29 -6
  359. package/dist/lib/v2/projection/v1-to-v2.d.ts +29 -6
  360. package/dist/lib/v2/projection/v1-to-v2.d.ts.map +1 -1
  361. package/dist/lib/v2/projection/v1-to-v2.js +218 -9
  362. package/dist/lib/v2/projection/v1-to-v2.js.map +1 -1
  363. package/dist/lib/v2/projection/v1-to-v2.mjs +219 -10
  364. package/dist/lib/v2/projection/v1-to-v2.mjs.map +1 -1
  365. package/dist/lib/v2/projection/v2-to-v1.d.mts +31 -2
  366. package/dist/lib/v2/projection/v2-to-v1.d.ts +31 -2
  367. package/dist/lib/v2/projection/v2-to-v1.d.ts.map +1 -1
  368. package/dist/lib/v2/projection/v2-to-v1.js +138 -7
  369. package/dist/lib/v2/projection/v2-to-v1.js.map +1 -1
  370. package/dist/lib/v2/projection/v2-to-v1.mjs +135 -6
  371. package/dist/lib/v2/projection/v2-to-v1.mjs.map +1 -1
  372. package/dist/lib/v2/projection/write-side.d.mts +12 -13
  373. package/dist/lib/v2/projection/write-side.d.ts +12 -13
  374. package/dist/lib/v2/projection/write-side.d.ts.map +1 -1
  375. package/dist/lib/v2/projection/write-side.js +16 -12
  376. package/dist/lib/v2/projection/write-side.js.map +1 -1
  377. package/dist/lib/v2/projection/write-side.mjs +16 -12
  378. package/dist/lib/v2/projection/write-side.mjs.map +1 -1
  379. package/dist/lib/version.d.mts +3 -3
  380. package/dist/lib/version.d.ts +3 -3
  381. package/dist/lib/version.d.ts.map +1 -1
  382. package/dist/lib/version.js +3 -3
  383. package/dist/lib/version.js.map +1 -1
  384. package/dist/lib/version.mjs +3 -3
  385. package/dist/lib/version.mjs.map +1 -1
  386. package/docs/guides/BUILD-AN-AGENT.md +7 -2
  387. package/docs/guides/PREVIEW-ASSET-DURABILITY.md +6 -2
  388. package/docs/llms.txt +1 -0
  389. package/examples/README.md +1 -1
  390. package/examples/batch-preview-test.ts +3 -3
  391. package/examples/conversation-client.ts +2 -2
  392. package/examples/debug-preview-response.ts +1 -1
  393. package/examples/decisioning-platform-broadcast-tv.ts +10 -4
  394. package/examples/decisioning-platform-mock-seller.ts +16 -9
  395. package/examples/decisioning-platform-programmatic.ts +18 -7
  396. package/examples/error-compliant-server.ts +26 -16
  397. package/examples/generative-creative-demo.ts +7 -19
  398. package/examples/hello_creative_adapter_ad_server.ts +37 -16
  399. package/examples/hello_creative_adapter_template.ts +12 -10
  400. package/examples/hello_seller_adapter_guaranteed.ts +52 -23
  401. package/examples/hello_seller_adapter_multi_tenant.ts +6 -3
  402. package/examples/hello_seller_adapter_non_guaranteed.ts +54 -26
  403. package/examples/hello_seller_adapter_proposal_mode.ts +40 -14
  404. package/examples/hello_seller_adapter_social.ts +2 -7
  405. package/examples/inspect-card-formats.ts +1 -1
  406. package/examples/simple-getting-started.ts +1 -1
  407. package/examples/test-helpers-demo.ts +1 -1
  408. package/package.json +2 -2
  409. package/skills/build-decisioning-creative-template/SKILL.md +11 -11
  410. package/skills/build-decisioning-platform/advanced/REFERENCE.md +8 -2
@@ -1,7 +1,11 @@
1
1
  import { z } from "zod";
2
- import { parseAdcpMajorVersion, toReleasePrecisionVersion } from "../version.mjs";
2
+ import {
3
+ COMPATIBLE_ADCP_VERSIONS,
4
+ parseAdcpMajorVersion,
5
+ toReleasePrecisionVersion
6
+ } from "../version.mjs";
3
7
  import { resolveAdcpVersion } from "../utils/adcp-version-config.mjs";
4
- import { resolveBundleKey } from "../validation/schema-loader.mjs";
8
+ import { getValidator, hasSchemaBundle, resolveBundleKey } from "../validation/schema-loader.mjs";
5
9
  import { TOOL_INPUT_SHAPES } from "../schemas/index.mjs";
6
10
  import { bundleSupportsAdcpVersionField } from "../protocols/index.mjs";
7
11
  import { getToolsWithErrorArm } from "./error-arm-tools.mjs";
@@ -1134,6 +1138,127 @@ function buildSupportedVersionsList(capConfig, serverPin) {
1134
1138
  const pinMajor = parseAdcpMajorVersion(serverPin);
1135
1139
  return Number.isFinite(pinMajor) ? [String(pinMajor)] : [];
1136
1140
  }
1141
+ function isMcpToolResponse(value) {
1142
+ return Array.isArray(value.content);
1143
+ }
1144
+ function parseAdcpRelease(value) {
1145
+ if (typeof value !== "string") return void 0;
1146
+ let wire;
1147
+ try {
1148
+ wire = toReleasePrecisionVersion(value);
1149
+ } catch {
1150
+ return void 0;
1151
+ }
1152
+ const match = /^v?(\d+)\.(\d+)(?:-([a-zA-Z0-9.-]+))?$/.exec(wire);
1153
+ if (!match) return void 0;
1154
+ return {
1155
+ major: Number(match[1]),
1156
+ minor: Number(match[2]),
1157
+ ...match[3] !== void 0 && { prerelease: match[3] },
1158
+ value: wire
1159
+ };
1160
+ }
1161
+ function compareAdcpRelease(left, right) {
1162
+ if (left.major !== right.major) return left.major - right.major;
1163
+ if (left.minor !== right.minor) return left.minor - right.minor;
1164
+ if (left.prerelease === right.prerelease) return 0;
1165
+ if (left.prerelease === void 0) return 1;
1166
+ if (right.prerelease === void 0) return -1;
1167
+ const leftParts = left.prerelease.split(".");
1168
+ const rightParts = right.prerelease.split(".");
1169
+ for (let index = 0; index < Math.max(leftParts.length, rightParts.length); index += 1) {
1170
+ const leftPart = leftParts[index];
1171
+ const rightPart = rightParts[index];
1172
+ if (leftPart === void 0) return -1;
1173
+ if (rightPart === void 0) return 1;
1174
+ if (leftPart === rightPart) continue;
1175
+ const leftNumeric = /^\d+$/.test(leftPart);
1176
+ const rightNumeric = /^\d+$/.test(rightPart);
1177
+ if (leftNumeric && rightNumeric) return Number(leftPart) - Number(rightPart);
1178
+ if (leftNumeric !== rightNumeric) return leftNumeric ? -1 : 1;
1179
+ return leftPart.localeCompare(rightPart);
1180
+ }
1181
+ return 0;
1182
+ }
1183
+ let bundledCompatibleReleases;
1184
+ function bundledReleasesForMajors(majors, configured) {
1185
+ const acceptedMajors = new Set(majors);
1186
+ const releases = /* @__PURE__ */ new Map();
1187
+ bundledCompatibleReleases ??= COMPATIBLE_ADCP_VERSIONS.flatMap((version) => {
1188
+ if (!hasSchemaBundle(version)) return [];
1189
+ const parsed = parseAdcpRelease(version);
1190
+ return parsed ? [parsed] : [];
1191
+ });
1192
+ for (const parsed of bundledCompatibleReleases) {
1193
+ if (!acceptedMajors.has(parsed.major) || compareAdcpRelease(parsed, configured) > 0) continue;
1194
+ const key = `${parsed.major}.${parsed.minor}${parsed.prerelease ? `-${parsed.prerelease}` : ""}`;
1195
+ const existing = releases.get(key);
1196
+ if (!existing || parsed.value.startsWith("v")) releases.set(key, parsed);
1197
+ }
1198
+ return [...releases.values()];
1199
+ }
1200
+ function selectServedAdcpRelease(params, capConfig, serverPin) {
1201
+ const configured = parseAdcpRelease(serverPin);
1202
+ if (!configured) {
1203
+ return adcpError("VERSION_UNSUPPORTED", {
1204
+ message: `Configured AdCP release ${JSON.stringify(serverPin)} is invalid.`,
1205
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1206
+ });
1207
+ }
1208
+ const advertisedValues = capConfig?.supported_versions?.length ? capConfig.supported_versions : void 0;
1209
+ const advertised = advertisedValues ? advertisedValues.map(parseAdcpRelease) : capConfig?.major_versions?.length ? bundledReleasesForMajors(capConfig.major_versions, configured) : [configured];
1210
+ if (advertised.some((value) => value === void 0)) {
1211
+ return adcpError("VERSION_UNSUPPORTED", {
1212
+ message: "Seller capabilities contain an invalid supported_versions release.",
1213
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1214
+ });
1215
+ }
1216
+ const supported = advertised.filter(
1217
+ (candidate) => compareAdcpRelease(candidate, configured) <= 0
1218
+ );
1219
+ if (supported.length === 0) {
1220
+ return adcpError("VERSION_UNSUPPORTED", {
1221
+ message: "Seller capabilities do not include a release this server can serve.",
1222
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1223
+ });
1224
+ }
1225
+ const requestedVersion = params.adcp_version;
1226
+ const requestedMajorRaw = params.adcp_major_version;
1227
+ const requestedMajor = typeof requestedMajorRaw === "number" ? requestedMajorRaw : typeof requestedMajorRaw === "string" ? Number.parseInt(requestedMajorRaw, 10) : void 0;
1228
+ let selected;
1229
+ if (requestedVersion !== void 0) {
1230
+ const requested = parseAdcpRelease(requestedVersion);
1231
+ if (!requested) {
1232
+ return adcpError("VERSION_UNSUPPORTED", {
1233
+ message: `Request carries invalid adcp_version=${JSON.stringify(requestedVersion)}.`,
1234
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1235
+ });
1236
+ }
1237
+ if (requestedMajor !== void 0 && Number.isFinite(requestedMajor) && requestedMajor !== requested.major) {
1238
+ return adcpError("VERSION_UNSUPPORTED", {
1239
+ message: `Request carries adcp_version=${JSON.stringify(requestedVersion)} (major ${requested.major}) and adcp_major_version=${JSON.stringify(requestedMajorRaw)}; majors must agree.`,
1240
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1241
+ });
1242
+ }
1243
+ selected = supported.filter((candidate) => candidate.major === requested.major && compareAdcpRelease(candidate, requested) <= 0).sort((left, right) => compareAdcpRelease(right, left))[0];
1244
+ } else if (requestedMajor !== void 0 && Number.isFinite(requestedMajor)) {
1245
+ selected = supported.filter((candidate) => candidate.major === requestedMajor).sort(compareAdcpRelease)[0];
1246
+ } else {
1247
+ selected = [...supported].sort((left, right) => compareAdcpRelease(right, left))[0];
1248
+ }
1249
+ if (!selected) {
1250
+ const claim = requestedVersion !== void 0 ? `adcp_version=${JSON.stringify(requestedVersion)}` : requestedMajorRaw !== void 0 ? `adcp_major_version=${JSON.stringify(requestedMajorRaw)} (major ${String(requestedMajor)})` : "no AdCP version";
1251
+ return adcpError("VERSION_UNSUPPORTED", {
1252
+ message: `Request claims ${claim}; no mutually supported AdCP release is available.`,
1253
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1254
+ });
1255
+ }
1256
+ const validationVersion = selected.value;
1257
+ return {
1258
+ validationVersion,
1259
+ ...bundleSupportsAdcpVersionField(resolveBundleKey(validationVersion)) && { wireVersion: validationVersion }
1260
+ };
1261
+ }
1137
1262
  function createAdcpServer(config) {
1138
1263
  const {
1139
1264
  name,
@@ -1359,43 +1484,42 @@ function createAdcpServer(config) {
1359
1484
  responseEnhancer?.(response);
1360
1485
  return response;
1361
1486
  };
1487
+ const requestServedRelease = (params) => {
1488
+ const selected = selectServedAdcpRelease(params, capConfig, adcpVersion);
1489
+ return isMcpToolResponse(selected) ? void 0 : selected;
1490
+ };
1491
+ const releaseDefinesTool = (toolName, release) => {
1492
+ try {
1493
+ return getValidator(toolName, "request", release.validationVersion) !== void 0;
1494
+ } catch {
1495
+ return false;
1496
+ }
1497
+ };
1362
1498
  const finalizeProtocolTaskToolResponse = (toolName, params, response, opts = {}) => {
1499
+ const release = requestServedRelease(params) ?? {
1500
+ validationVersion: adcpVersion,
1501
+ ...servedAdcpVersion !== void 0 && { wireVersion: servedAdcpVersion }
1502
+ };
1363
1503
  sanitizeAdcpErrorEnvelope(response);
1364
- enrichErrorTwoLayer(response, toolName, toolsWithErrorArm);
1504
+ enrichErrorTwoLayer(response, toolName, getToolsWithErrorArm(release.validationVersion));
1365
1505
  if (!isErrorResponse(response)) {
1366
1506
  normalizeMediaBuyStatusCollision(response, toolName);
1367
1507
  injectEnvelopeStatusIntoResponse(response);
1368
- const validationError = protocolTaskResponseValidationError(toolName, response);
1508
+ const validationError = protocolTaskResponseValidationError(toolName, response, params);
1369
1509
  if (validationError) return finalizeProtocolTaskToolResponse(toolName, params, validationError, opts);
1370
1510
  }
1371
1511
  if (opts.echoContext !== false) injectContextIntoResponse(response, params.context);
1372
- injectVersionIntoResponse(response, servedAdcpVersion);
1512
+ injectVersionIntoResponse(response, release.wireVersion);
1373
1513
  return applyResponseEnhancer(response);
1374
1514
  };
1375
- const unsupportedVersionResponse = (params) => {
1376
- const reqAdcpVersion = params.adcp_version;
1377
- const reqAdcpMajorRaw = params.adcp_major_version;
1378
- const reqAdcpMajor = typeof reqAdcpMajorRaw === "number" ? reqAdcpMajorRaw : typeof reqAdcpMajorRaw === "string" ? Number.parseInt(reqAdcpMajorRaw, 10) : void 0;
1379
- if (typeof reqAdcpVersion === "string" && reqAdcpMajor !== void 0 && Number.isFinite(reqAdcpMajor)) {
1380
- const stringMajor = parseAdcpMajorVersion(reqAdcpVersion);
1381
- if (Number.isFinite(stringMajor) && stringMajor !== reqAdcpMajor) {
1382
- return adcpError("VERSION_UNSUPPORTED", {
1383
- message: `Request carries adcp_version="${reqAdcpVersion}" (major ${stringMajor}) and adcp_major_version=${JSON.stringify(reqAdcpMajorRaw)}; majors must agree.`,
1384
- details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
1385
- });
1386
- }
1387
- }
1388
- const effectiveReqMajor = reqAdcpMajor !== void 0 && Number.isFinite(reqAdcpMajor) ? reqAdcpMajor : typeof reqAdcpVersion === "string" ? parseAdcpMajorVersion(reqAdcpVersion) : void 0;
1389
- if (effectiveReqMajor !== void 0 && Number.isFinite(effectiveReqMajor)) {
1390
- const supportedMajors = getAdvertisedSupportedMajors(capConfig, adcpVersion);
1391
- if (!supportedMajors.has(effectiveReqMajor)) {
1392
- const claimed = typeof reqAdcpVersion === "string" ? `adcp_version="${reqAdcpVersion}"` : `adcp_major_version=${JSON.stringify(reqAdcpMajorRaw)}`;
1393
- const supportedList = [...supportedMajors].sort((a, b) => a - b).join(", ");
1394
- return adcpError("VERSION_UNSUPPORTED", {
1395
- message: `Request claims ${claimed} (major ${effectiveReqMajor}); this seller supports major ${supportedList}.`,
1396
- details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
1397
- });
1398
- }
1515
+ const unsupportedVersionResponse = (toolName, params) => {
1516
+ const selected = selectServedAdcpRelease(params, capConfig, adcpVersion);
1517
+ if (isMcpToolResponse(selected)) return selected;
1518
+ if (!releaseDefinesTool(toolName, selected)) {
1519
+ return adcpError("VERSION_UNSUPPORTED", {
1520
+ message: `${toolName} is not defined in the selected AdCP release ${selected.validationVersion}.`,
1521
+ details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
1522
+ });
1399
1523
  }
1400
1524
  return void 0;
1401
1525
  };
@@ -1414,7 +1538,7 @@ function createAdcpServer(config) {
1414
1538
  };
1415
1539
  const protocolTaskRequestValidationError = (toolName, params) => {
1416
1540
  const accountIssues = protocolTaskAccountExtensionIssues(params);
1417
- const outcome = requestValidationMode === "off" ? { valid: true, issues: [], schemaId: void 0 } : validateRequest(toolName, params, adcpVersion);
1541
+ const outcome = requestValidationMode === "off" ? { valid: true, issues: [], schemaId: void 0 } : validateRequest(toolName, params, requestServedRelease(params)?.validationVersion ?? adcpVersion);
1418
1542
  const issues = [...outcome.valid ? [] : outcome.issues, ...accountIssues];
1419
1543
  if (issues.length === 0) return void 0;
1420
1544
  if (requestValidationMode === "strict" || accountIssues.length > 0) {
@@ -1435,9 +1559,13 @@ function createAdcpServer(config) {
1435
1559
  );
1436
1560
  return void 0;
1437
1561
  };
1438
- const protocolTaskResponseValidationError = (toolName, response) => {
1562
+ const protocolTaskResponseValidationError = (toolName, response, params = {}) => {
1439
1563
  if (responseValidationMode === "off") return void 0;
1440
- const outcome = validateResponse(toolName, response.structuredContent, adcpVersion);
1564
+ const outcome = validateResponse(
1565
+ toolName,
1566
+ response.structuredContent,
1567
+ requestServedRelease(params)?.validationVersion ?? adcpVersion
1568
+ );
1441
1569
  if (outcome.valid) return void 0;
1442
1570
  logger.warn(
1443
1571
  `Schema validation warning (response) for ${toolName}: ${formatIssues(outcome.issues, 3, { rootSchemaId: outcome.schemaId })}`,
@@ -1687,7 +1815,23 @@ function createAdcpServer(config) {
1687
1815
  const hasAccount = "account" in schema.shape;
1688
1816
  const wrap = meta?.wrap ?? ((data, summary) => genericResponse(toolName, data, summary));
1689
1817
  const toolHandler = async (params, extra) => {
1690
- const ctx = { store: stateStore };
1818
+ const releaseSelection = selectServedAdcpRelease(params, capConfig, adcpVersion);
1819
+ let releaseError;
1820
+ let requestRelease;
1821
+ if (isMcpToolResponse(releaseSelection)) {
1822
+ releaseError = releaseSelection;
1823
+ requestRelease = {
1824
+ validationVersion: adcpVersion,
1825
+ ...servedAdcpVersion !== void 0 && { wireVersion: servedAdcpVersion }
1826
+ };
1827
+ } else {
1828
+ requestRelease = releaseSelection;
1829
+ }
1830
+ const requestErrorArms = getToolsWithErrorArm(requestRelease.validationVersion);
1831
+ const ctx = {
1832
+ store: stateStore,
1833
+ servedAdcpVersion: requestRelease.validationVersion
1834
+ };
1691
1835
  if (extra?.authInfo) {
1692
1836
  ctx.authInfo = extra.authInfo;
1693
1837
  const authInfo = ctx.authInfo;
@@ -1701,13 +1845,22 @@ function createAdcpServer(config) {
1701
1845
  if (webhookEmitter) ctx.emitWebhook = webhookEmitter.emit.bind(webhookEmitter);
1702
1846
  const finalize = (response) => {
1703
1847
  sanitizeAdcpErrorEnvelope(response);
1704
- enrichErrorTwoLayer(response, toolName, toolsWithErrorArm);
1848
+ enrichErrorTwoLayer(response, toolName, requestErrorArms);
1705
1849
  normalizeMediaBuyStatusCollision(response, toolName);
1706
1850
  injectEnvelopeStatusIntoResponse(response);
1707
1851
  injectContextIntoResponse(response, params.context);
1708
- injectVersionIntoResponse(response, servedAdcpVersion);
1852
+ injectVersionIntoResponse(response, requestRelease.wireVersion);
1709
1853
  return applyResponseEnhancer(response);
1710
1854
  };
1855
+ if (releaseError) return finalize(releaseError);
1856
+ if (!releaseDefinesTool(toolName, requestRelease)) {
1857
+ return finalize(
1858
+ adcpError("VERSION_UNSUPPORTED", {
1859
+ message: `${toolName} is not defined in the selected AdCP release ${requestRelease.validationVersion}.`,
1860
+ details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
1861
+ })
1862
+ );
1863
+ }
1711
1864
  if (agentRegistry !== void 0) {
1712
1865
  try {
1713
1866
  const resolved = await agentRegistry.resolve({
@@ -1811,7 +1964,7 @@ function createAdcpServer(config) {
1811
1964
  }
1812
1965
  }
1813
1966
  if (requestValidationMode !== "off") {
1814
- const outcome = validateRequest(toolName, params, adcpVersion);
1967
+ const outcome = validateRequest(toolName, params, requestRelease.validationVersion);
1815
1968
  if (!outcome.valid) {
1816
1969
  const issues = idempotencyDisabled && toolIsMutating ? outcome.issues.filter((i) => !(i.keyword === "required" && i.pointer === "/idempotency_key")) : outcome.issues;
1817
1970
  if (issues.length > 0) {
@@ -2426,7 +2579,7 @@ function createAdcpServer(config) {
2426
2579
  }
2427
2580
  if (responseValidationMode !== "off" && !isErrorResponse(formatted)) {
2428
2581
  const payload = formatted.structuredContent;
2429
- const outcome = validateResponse(toolName, payload, adcpVersion);
2582
+ const outcome = validateResponse(toolName, payload, requestRelease.validationVersion);
2430
2583
  if (!outcome.valid) {
2431
2584
  logger.warn(
2432
2585
  `Schema validation warning (response) for ${toolName}: ${formatIssues(outcome.issues, 3, { rootSchemaId: outcome.schemaId })}`,
@@ -2594,7 +2747,7 @@ function createAdcpServer(config) {
2594
2747
  if (validationError) return finalizeProtocolTaskToolResponse("get_task_status", params ?? {}, validationError);
2595
2748
  const boundsError = protocolTaskBoundsError("get_task_status", params ?? {});
2596
2749
  if (boundsError) return finalizeProtocolTaskToolResponse("get_task_status", params ?? {}, boundsError);
2597
- const versionError = unsupportedVersionResponse(params ?? {});
2750
+ const versionError = unsupportedVersionResponse("get_task_status", params ?? {});
2598
2751
  if (versionError) return finalizeProtocolTaskToolResponse("get_task_status", params ?? {}, versionError);
2599
2752
  const taskId = typeof params?.task_id === "string" ? params.task_id : "";
2600
2753
  const { accountId, ownerScope, error } = await resolveTaskQueryAccountId(
@@ -2668,7 +2821,7 @@ function createAdcpServer(config) {
2668
2821
  if (validationError) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, validationError);
2669
2822
  const boundsError = protocolTaskBoundsError("list_tasks", params ?? {});
2670
2823
  if (boundsError) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, boundsError);
2671
- const versionError = unsupportedVersionResponse(params ?? {});
2824
+ const versionError = unsupportedVersionResponse("list_tasks", params ?? {});
2672
2825
  if (versionError) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, versionError);
2673
2826
  const { accountId, ownerScope, error } = await resolveTaskQueryAccountId(params ?? {}, extra, "list_tasks");
2674
2827
  if (error) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, error);
@@ -2814,6 +2967,9 @@ function createAdcpServer(config) {
2814
2967
  if (protocols.includes("media_buy") || capConfig?.features) {
2815
2968
  capabilitiesData.media_buy = {
2816
2969
  features: {
2970
+ ...capConfig?.features?.canonicalCreatives !== void 0 && {
2971
+ canonical_creatives: capConfig.features.canonicalCreatives
2972
+ },
2817
2973
  inline_creative_management: capConfig?.features?.inlineCreativeManagement ?? false,
2818
2974
  property_list_filtering: capConfig?.features?.propertyListFiltering ?? false,
2819
2975
  content_standards: capConfig?.features?.contentStandards ?? false,
@@ -2869,6 +3025,52 @@ function createAdcpServer(config) {
2869
3025
  annotations: { readOnlyHint: true }
2870
3026
  },
2871
3027
  (async (params, extra = {}) => {
3028
+ const requestParams = isPlainObject(params) ? params : {};
3029
+ const releaseSelection = selectServedAdcpRelease(requestParams, capConfig, adcpVersion);
3030
+ const release = isMcpToolResponse(releaseSelection) ? {
3031
+ validationVersion: adcpVersion,
3032
+ ...servedAdcpVersion !== void 0 && { wireVersion: servedAdcpVersion }
3033
+ } : releaseSelection;
3034
+ const finalizeCapabilityResponse = (response2) => {
3035
+ sanitizeAdcpErrorEnvelope(response2);
3036
+ injectContextIntoResponse(response2, requestParams.context);
3037
+ injectVersionIntoResponse(response2, release.wireVersion);
3038
+ return applyResponseEnhancer(response2);
3039
+ };
3040
+ if (isMcpToolResponse(releaseSelection)) {
3041
+ return finalizeCapabilityResponse(releaseSelection);
3042
+ }
3043
+ if (!releaseDefinesTool("get_adcp_capabilities", release)) {
3044
+ return finalizeCapabilityResponse(
3045
+ adcpError("VERSION_UNSUPPORTED", {
3046
+ message: `get_adcp_capabilities is not defined in the selected AdCP release ${release.validationVersion}.`,
3047
+ details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
3048
+ })
3049
+ );
3050
+ }
3051
+ if (requestValidationMode !== "off") {
3052
+ const requestOutcome = validateRequest("get_adcp_capabilities", requestParams, release.validationVersion);
3053
+ if (!requestOutcome.valid) {
3054
+ logger.warn(
3055
+ `Schema validation warning (request) for get_adcp_capabilities: ${formatIssues(requestOutcome.issues, 3, { rootSchemaId: requestOutcome.schemaId })}`,
3056
+ {
3057
+ tool: "get_adcp_capabilities",
3058
+ issues: requestOutcome.issues
3059
+ }
3060
+ );
3061
+ if (requestValidationMode === "strict") {
3062
+ return finalizeCapabilityResponse(
3063
+ adcpError(
3064
+ "VALIDATION_ERROR",
3065
+ buildAdcpValidationErrorPayload("get_adcp_capabilities", "request", requestOutcome.issues, {
3066
+ exposeSchemaPath: exposeErrorDetails,
3067
+ rootSchemaId: requestOutcome.schemaId
3068
+ })
3069
+ )
3070
+ );
3071
+ }
3072
+ }
3073
+ }
2872
3074
  if (agentRegistry !== void 0 && extra.authInfo !== void 0) {
2873
3075
  const authInfo = extra.authInfo;
2874
3076
  const inboundCredential = authInfo.extra?.credential;
@@ -2880,28 +3082,77 @@ function createAdcpServer(config) {
2880
3082
  input: params
2881
3083
  });
2882
3084
  if (resolved?.status === "suspended" || resolved?.status === "blocked") {
2883
- return adcpError(resolved.status === "suspended" ? "AGENT_SUSPENDED" : "AGENT_BLOCKED", {
2884
- message: resolved.status === "suspended" ? "Buyer agent is suspended. Contact the seller to restore access." : "Buyer agent is blocked.",
2885
- recovery: "terminal"
2886
- });
3085
+ return finalizeCapabilityResponse(
3086
+ adcpError(resolved.status === "suspended" ? "AGENT_SUSPENDED" : "AGENT_BLOCKED", {
3087
+ message: resolved.status === "suspended" ? "Buyer agent is suspended. Contact the seller to restore access." : "Buyer agent is blocked.",
3088
+ recovery: "terminal"
3089
+ })
3090
+ );
2887
3091
  }
2888
3092
  } catch (err) {
2889
3093
  logger.warn("Buyer-agent registry resolution failed for get_adcp_capabilities", {
2890
3094
  error: err instanceof Error ? redactCredentialPatterns(err.message) : redactCredentialPatterns(String(err))
2891
3095
  });
2892
- return adcpError("SERVICE_UNAVAILABLE", {
2893
- message: "Buyer-agent registry is unavailable",
2894
- recovery: "transient"
2895
- });
3096
+ return finalizeCapabilityResponse(
3097
+ adcpError("SERVICE_UNAVAILABLE", {
3098
+ message: "Buyer-agent registry is unavailable",
3099
+ recovery: "transient"
3100
+ })
3101
+ );
2896
3102
  }
2897
3103
  }
2898
- const data = { ...capabilitiesData };
2899
- const ctx = params?.context;
3104
+ const data = {
3105
+ ...capabilitiesData,
3106
+ adcp: { ...capabilitiesData.adcp },
3107
+ ...capabilitiesData.media_buy !== void 0 && {
3108
+ media_buy: {
3109
+ ...capabilitiesData.media_buy,
3110
+ features: { ...capabilitiesData.media_buy.features }
3111
+ }
3112
+ }
3113
+ };
3114
+ const selected = parseAdcpRelease(release.validationVersion);
3115
+ if (selected !== void 0 && (selected.major < 3 || selected.major === 3 && selected.minor < 1)) {
3116
+ delete data.adcp.supported_versions;
3117
+ if (data.media_buy?.features !== void 0) {
3118
+ delete data.media_buy.features.canonical_creatives;
3119
+ }
3120
+ delete data.library_version;
3121
+ }
3122
+ const ctx = requestParams.context;
2900
3123
  if (ctx !== null && typeof ctx === "object" && !Array.isArray(ctx)) {
2901
3124
  data.context = ctx;
2902
3125
  }
2903
3126
  const response = capabilitiesResponse(data);
2904
- injectVersionIntoResponse(response, servedAdcpVersion);
3127
+ injectVersionIntoResponse(response, release.wireVersion);
3128
+ if (responseValidationMode !== "off" && data.supported_protocols.length > 0) {
3129
+ const responseOutcome = validateResponse(
3130
+ "get_adcp_capabilities",
3131
+ response.structuredContent,
3132
+ release.validationVersion
3133
+ );
3134
+ if (!responseOutcome.valid) {
3135
+ logger.warn(
3136
+ `Schema validation warning (response) for get_adcp_capabilities: ${formatIssues(responseOutcome.issues, 3, { rootSchemaId: responseOutcome.schemaId })}`,
3137
+ {
3138
+ tool: "get_adcp_capabilities",
3139
+ issues: responseOutcome.issues,
3140
+ variant: responseOutcome.variant
3141
+ }
3142
+ );
3143
+ if (responseValidationMode === "strict") {
3144
+ return finalizeCapabilityResponse(
3145
+ adcpError(
3146
+ "VALIDATION_ERROR",
3147
+ buildAdcpValidationErrorPayload("get_adcp_capabilities", "response", responseOutcome.issues, {
3148
+ exposeSchemaPath: exposeErrorDetails,
3149
+ rootSchemaId: responseOutcome.schemaId
3150
+ })
3151
+ )
3152
+ );
3153
+ }
3154
+ }
3155
+ }
2905
3156
  return applyResponseEnhancer(response);
2906
3157
  })
2907
3158
  );