@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
@@ -1078,6 +1078,127 @@ function buildSupportedVersionsList(capConfig, serverPin) {
1078
1078
  const pinMajor = (0, import_version.parseAdcpMajorVersion)(serverPin);
1079
1079
  return Number.isFinite(pinMajor) ? [String(pinMajor)] : [];
1080
1080
  }
1081
+ function isMcpToolResponse(value) {
1082
+ return Array.isArray(value.content);
1083
+ }
1084
+ function parseAdcpRelease(value) {
1085
+ if (typeof value !== "string") return void 0;
1086
+ let wire;
1087
+ try {
1088
+ wire = (0, import_version.toReleasePrecisionVersion)(value);
1089
+ } catch {
1090
+ return void 0;
1091
+ }
1092
+ const match = /^v?(\d+)\.(\d+)(?:-([a-zA-Z0-9.-]+))?$/.exec(wire);
1093
+ if (!match) return void 0;
1094
+ return {
1095
+ major: Number(match[1]),
1096
+ minor: Number(match[2]),
1097
+ ...match[3] !== void 0 && { prerelease: match[3] },
1098
+ value: wire
1099
+ };
1100
+ }
1101
+ function compareAdcpRelease(left, right) {
1102
+ if (left.major !== right.major) return left.major - right.major;
1103
+ if (left.minor !== right.minor) return left.minor - right.minor;
1104
+ if (left.prerelease === right.prerelease) return 0;
1105
+ if (left.prerelease === void 0) return 1;
1106
+ if (right.prerelease === void 0) return -1;
1107
+ const leftParts = left.prerelease.split(".");
1108
+ const rightParts = right.prerelease.split(".");
1109
+ for (let index = 0; index < Math.max(leftParts.length, rightParts.length); index += 1) {
1110
+ const leftPart = leftParts[index];
1111
+ const rightPart = rightParts[index];
1112
+ if (leftPart === void 0) return -1;
1113
+ if (rightPart === void 0) return 1;
1114
+ if (leftPart === rightPart) continue;
1115
+ const leftNumeric = /^\d+$/.test(leftPart);
1116
+ const rightNumeric = /^\d+$/.test(rightPart);
1117
+ if (leftNumeric && rightNumeric) return Number(leftPart) - Number(rightPart);
1118
+ if (leftNumeric !== rightNumeric) return leftNumeric ? -1 : 1;
1119
+ return leftPart.localeCompare(rightPart);
1120
+ }
1121
+ return 0;
1122
+ }
1123
+ let bundledCompatibleReleases;
1124
+ function bundledReleasesForMajors(majors, configured) {
1125
+ const acceptedMajors = new Set(majors);
1126
+ const releases = /* @__PURE__ */ new Map();
1127
+ bundledCompatibleReleases ??= import_version.COMPATIBLE_ADCP_VERSIONS.flatMap((version) => {
1128
+ if (!(0, import_schema_loader.hasSchemaBundle)(version)) return [];
1129
+ const parsed = parseAdcpRelease(version);
1130
+ return parsed ? [parsed] : [];
1131
+ });
1132
+ for (const parsed of bundledCompatibleReleases) {
1133
+ if (!acceptedMajors.has(parsed.major) || compareAdcpRelease(parsed, configured) > 0) continue;
1134
+ const key = `${parsed.major}.${parsed.minor}${parsed.prerelease ? `-${parsed.prerelease}` : ""}`;
1135
+ const existing = releases.get(key);
1136
+ if (!existing || parsed.value.startsWith("v")) releases.set(key, parsed);
1137
+ }
1138
+ return [...releases.values()];
1139
+ }
1140
+ function selectServedAdcpRelease(params, capConfig, serverPin) {
1141
+ const configured = parseAdcpRelease(serverPin);
1142
+ if (!configured) {
1143
+ return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1144
+ message: `Configured AdCP release ${JSON.stringify(serverPin)} is invalid.`,
1145
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1146
+ });
1147
+ }
1148
+ const advertisedValues = capConfig?.supported_versions?.length ? capConfig.supported_versions : void 0;
1149
+ const advertised = advertisedValues ? advertisedValues.map(parseAdcpRelease) : capConfig?.major_versions?.length ? bundledReleasesForMajors(capConfig.major_versions, configured) : [configured];
1150
+ if (advertised.some((value) => value === void 0)) {
1151
+ return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1152
+ message: "Seller capabilities contain an invalid supported_versions release.",
1153
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1154
+ });
1155
+ }
1156
+ const supported = advertised.filter(
1157
+ (candidate) => compareAdcpRelease(candidate, configured) <= 0
1158
+ );
1159
+ if (supported.length === 0) {
1160
+ return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1161
+ message: "Seller capabilities do not include a release this server can serve.",
1162
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1163
+ });
1164
+ }
1165
+ const requestedVersion = params.adcp_version;
1166
+ const requestedMajorRaw = params.adcp_major_version;
1167
+ const requestedMajor = typeof requestedMajorRaw === "number" ? requestedMajorRaw : typeof requestedMajorRaw === "string" ? Number.parseInt(requestedMajorRaw, 10) : void 0;
1168
+ let selected;
1169
+ if (requestedVersion !== void 0) {
1170
+ const requested = parseAdcpRelease(requestedVersion);
1171
+ if (!requested) {
1172
+ return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1173
+ message: `Request carries invalid adcp_version=${JSON.stringify(requestedVersion)}.`,
1174
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1175
+ });
1176
+ }
1177
+ if (requestedMajor !== void 0 && Number.isFinite(requestedMajor) && requestedMajor !== requested.major) {
1178
+ return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1179
+ message: `Request carries adcp_version=${JSON.stringify(requestedVersion)} (major ${requested.major}) and adcp_major_version=${JSON.stringify(requestedMajorRaw)}; majors must agree.`,
1180
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1181
+ });
1182
+ }
1183
+ selected = supported.filter((candidate) => candidate.major === requested.major && compareAdcpRelease(candidate, requested) <= 0).sort((left, right) => compareAdcpRelease(right, left))[0];
1184
+ } else if (requestedMajor !== void 0 && Number.isFinite(requestedMajor)) {
1185
+ selected = supported.filter((candidate) => candidate.major === requestedMajor).sort(compareAdcpRelease)[0];
1186
+ } else {
1187
+ selected = [...supported].sort((left, right) => compareAdcpRelease(right, left))[0];
1188
+ }
1189
+ if (!selected) {
1190
+ 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";
1191
+ return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1192
+ message: `Request claims ${claim}; no mutually supported AdCP release is available.`,
1193
+ details: { supported_versions: buildSupportedVersionsList(capConfig, serverPin) }
1194
+ });
1195
+ }
1196
+ const validationVersion = selected.value;
1197
+ return {
1198
+ validationVersion,
1199
+ ...(0, import_protocols.bundleSupportsAdcpVersionField)((0, import_schema_loader.resolveBundleKey)(validationVersion)) && { wireVersion: validationVersion }
1200
+ };
1201
+ }
1081
1202
  function createAdcpServer(config) {
1082
1203
  const {
1083
1204
  name,
@@ -1303,43 +1424,42 @@ function createAdcpServer(config) {
1303
1424
  responseEnhancer?.(response);
1304
1425
  return response;
1305
1426
  };
1427
+ const requestServedRelease = (params) => {
1428
+ const selected = selectServedAdcpRelease(params, capConfig, adcpVersion);
1429
+ return isMcpToolResponse(selected) ? void 0 : selected;
1430
+ };
1431
+ const releaseDefinesTool = (toolName, release) => {
1432
+ try {
1433
+ return (0, import_schema_loader.getValidator)(toolName, "request", release.validationVersion) !== void 0;
1434
+ } catch {
1435
+ return false;
1436
+ }
1437
+ };
1306
1438
  const finalizeProtocolTaskToolResponse = (toolName, params, response, opts = {}) => {
1439
+ const release = requestServedRelease(params) ?? {
1440
+ validationVersion: adcpVersion,
1441
+ ...servedAdcpVersion !== void 0 && { wireVersion: servedAdcpVersion }
1442
+ };
1307
1443
  sanitizeAdcpErrorEnvelope(response);
1308
- enrichErrorTwoLayer(response, toolName, toolsWithErrorArm);
1444
+ enrichErrorTwoLayer(response, toolName, (0, import_error_arm_tools.getToolsWithErrorArm)(release.validationVersion));
1309
1445
  if (!isErrorResponse(response)) {
1310
1446
  normalizeMediaBuyStatusCollision(response, toolName);
1311
1447
  injectEnvelopeStatusIntoResponse(response);
1312
- const validationError = protocolTaskResponseValidationError(toolName, response);
1448
+ const validationError = protocolTaskResponseValidationError(toolName, response, params);
1313
1449
  if (validationError) return finalizeProtocolTaskToolResponse(toolName, params, validationError, opts);
1314
1450
  }
1315
1451
  if (opts.echoContext !== false) injectContextIntoResponse(response, params.context);
1316
- injectVersionIntoResponse(response, servedAdcpVersion);
1452
+ injectVersionIntoResponse(response, release.wireVersion);
1317
1453
  return applyResponseEnhancer(response);
1318
1454
  };
1319
- const unsupportedVersionResponse = (params) => {
1320
- const reqAdcpVersion = params.adcp_version;
1321
- const reqAdcpMajorRaw = params.adcp_major_version;
1322
- const reqAdcpMajor = typeof reqAdcpMajorRaw === "number" ? reqAdcpMajorRaw : typeof reqAdcpMajorRaw === "string" ? Number.parseInt(reqAdcpMajorRaw, 10) : void 0;
1323
- if (typeof reqAdcpVersion === "string" && reqAdcpMajor !== void 0 && Number.isFinite(reqAdcpMajor)) {
1324
- const stringMajor = (0, import_version.parseAdcpMajorVersion)(reqAdcpVersion);
1325
- if (Number.isFinite(stringMajor) && stringMajor !== reqAdcpMajor) {
1326
- return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1327
- message: `Request carries adcp_version="${reqAdcpVersion}" (major ${stringMajor}) and adcp_major_version=${JSON.stringify(reqAdcpMajorRaw)}; majors must agree.`,
1328
- details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
1329
- });
1330
- }
1331
- }
1332
- const effectiveReqMajor = reqAdcpMajor !== void 0 && Number.isFinite(reqAdcpMajor) ? reqAdcpMajor : typeof reqAdcpVersion === "string" ? (0, import_version.parseAdcpMajorVersion)(reqAdcpVersion) : void 0;
1333
- if (effectiveReqMajor !== void 0 && Number.isFinite(effectiveReqMajor)) {
1334
- const supportedMajors = getAdvertisedSupportedMajors(capConfig, adcpVersion);
1335
- if (!supportedMajors.has(effectiveReqMajor)) {
1336
- const claimed = typeof reqAdcpVersion === "string" ? `adcp_version="${reqAdcpVersion}"` : `adcp_major_version=${JSON.stringify(reqAdcpMajorRaw)}`;
1337
- const supportedList = [...supportedMajors].sort((a, b) => a - b).join(", ");
1338
- return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1339
- message: `Request claims ${claimed} (major ${effectiveReqMajor}); this seller supports major ${supportedList}.`,
1340
- details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
1341
- });
1342
- }
1455
+ const unsupportedVersionResponse = (toolName, params) => {
1456
+ const selected = selectServedAdcpRelease(params, capConfig, adcpVersion);
1457
+ if (isMcpToolResponse(selected)) return selected;
1458
+ if (!releaseDefinesTool(toolName, selected)) {
1459
+ return (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1460
+ message: `${toolName} is not defined in the selected AdCP release ${selected.validationVersion}.`,
1461
+ details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
1462
+ });
1343
1463
  }
1344
1464
  return void 0;
1345
1465
  };
@@ -1358,7 +1478,7 @@ function createAdcpServer(config) {
1358
1478
  };
1359
1479
  const protocolTaskRequestValidationError = (toolName, params) => {
1360
1480
  const accountIssues = protocolTaskAccountExtensionIssues(params);
1361
- const outcome = requestValidationMode === "off" ? { valid: true, issues: [], schemaId: void 0 } : (0, import_schema_validator.validateRequest)(toolName, params, adcpVersion);
1481
+ const outcome = requestValidationMode === "off" ? { valid: true, issues: [], schemaId: void 0 } : (0, import_schema_validator.validateRequest)(toolName, params, requestServedRelease(params)?.validationVersion ?? adcpVersion);
1362
1482
  const issues = [...outcome.valid ? [] : outcome.issues, ...accountIssues];
1363
1483
  if (issues.length === 0) return void 0;
1364
1484
  if (requestValidationMode === "strict" || accountIssues.length > 0) {
@@ -1379,9 +1499,13 @@ function createAdcpServer(config) {
1379
1499
  );
1380
1500
  return void 0;
1381
1501
  };
1382
- const protocolTaskResponseValidationError = (toolName, response) => {
1502
+ const protocolTaskResponseValidationError = (toolName, response, params = {}) => {
1383
1503
  if (responseValidationMode === "off") return void 0;
1384
- const outcome = (0, import_schema_validator.validateResponse)(toolName, response.structuredContent, adcpVersion);
1504
+ const outcome = (0, import_schema_validator.validateResponse)(
1505
+ toolName,
1506
+ response.structuredContent,
1507
+ requestServedRelease(params)?.validationVersion ?? adcpVersion
1508
+ );
1385
1509
  if (outcome.valid) return void 0;
1386
1510
  logger.warn(
1387
1511
  `Schema validation warning (response) for ${toolName}: ${(0, import_schema_validator.formatIssues)(outcome.issues, 3, { rootSchemaId: outcome.schemaId })}`,
@@ -1631,7 +1755,23 @@ function createAdcpServer(config) {
1631
1755
  const hasAccount = "account" in schema.shape;
1632
1756
  const wrap = meta?.wrap ?? ((data, summary) => genericResponse(toolName, data, summary));
1633
1757
  const toolHandler = async (params, extra) => {
1634
- const ctx = { store: stateStore };
1758
+ const releaseSelection = selectServedAdcpRelease(params, capConfig, adcpVersion);
1759
+ let releaseError;
1760
+ let requestRelease;
1761
+ if (isMcpToolResponse(releaseSelection)) {
1762
+ releaseError = releaseSelection;
1763
+ requestRelease = {
1764
+ validationVersion: adcpVersion,
1765
+ ...servedAdcpVersion !== void 0 && { wireVersion: servedAdcpVersion }
1766
+ };
1767
+ } else {
1768
+ requestRelease = releaseSelection;
1769
+ }
1770
+ const requestErrorArms = (0, import_error_arm_tools.getToolsWithErrorArm)(requestRelease.validationVersion);
1771
+ const ctx = {
1772
+ store: stateStore,
1773
+ servedAdcpVersion: requestRelease.validationVersion
1774
+ };
1635
1775
  if (extra?.authInfo) {
1636
1776
  ctx.authInfo = extra.authInfo;
1637
1777
  const authInfo = ctx.authInfo;
@@ -1645,13 +1785,22 @@ function createAdcpServer(config) {
1645
1785
  if (webhookEmitter) ctx.emitWebhook = webhookEmitter.emit.bind(webhookEmitter);
1646
1786
  const finalize = (response) => {
1647
1787
  sanitizeAdcpErrorEnvelope(response);
1648
- enrichErrorTwoLayer(response, toolName, toolsWithErrorArm);
1788
+ enrichErrorTwoLayer(response, toolName, requestErrorArms);
1649
1789
  normalizeMediaBuyStatusCollision(response, toolName);
1650
1790
  injectEnvelopeStatusIntoResponse(response);
1651
1791
  injectContextIntoResponse(response, params.context);
1652
- injectVersionIntoResponse(response, servedAdcpVersion);
1792
+ injectVersionIntoResponse(response, requestRelease.wireVersion);
1653
1793
  return applyResponseEnhancer(response);
1654
1794
  };
1795
+ if (releaseError) return finalize(releaseError);
1796
+ if (!releaseDefinesTool(toolName, requestRelease)) {
1797
+ return finalize(
1798
+ (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
1799
+ message: `${toolName} is not defined in the selected AdCP release ${requestRelease.validationVersion}.`,
1800
+ details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
1801
+ })
1802
+ );
1803
+ }
1655
1804
  if (agentRegistry !== void 0) {
1656
1805
  try {
1657
1806
  const resolved = await agentRegistry.resolve({
@@ -1755,7 +1904,7 @@ function createAdcpServer(config) {
1755
1904
  }
1756
1905
  }
1757
1906
  if (requestValidationMode !== "off") {
1758
- const outcome = (0, import_schema_validator.validateRequest)(toolName, params, adcpVersion);
1907
+ const outcome = (0, import_schema_validator.validateRequest)(toolName, params, requestRelease.validationVersion);
1759
1908
  if (!outcome.valid) {
1760
1909
  const issues = idempotencyDisabled && toolIsMutating ? outcome.issues.filter((i) => !(i.keyword === "required" && i.pointer === "/idempotency_key")) : outcome.issues;
1761
1910
  if (issues.length > 0) {
@@ -2370,7 +2519,7 @@ function createAdcpServer(config) {
2370
2519
  }
2371
2520
  if (responseValidationMode !== "off" && !isErrorResponse(formatted)) {
2372
2521
  const payload = formatted.structuredContent;
2373
- const outcome = (0, import_schema_validator.validateResponse)(toolName, payload, adcpVersion);
2522
+ const outcome = (0, import_schema_validator.validateResponse)(toolName, payload, requestRelease.validationVersion);
2374
2523
  if (!outcome.valid) {
2375
2524
  logger.warn(
2376
2525
  `Schema validation warning (response) for ${toolName}: ${(0, import_schema_validator.formatIssues)(outcome.issues, 3, { rootSchemaId: outcome.schemaId })}`,
@@ -2538,7 +2687,7 @@ function createAdcpServer(config) {
2538
2687
  if (validationError) return finalizeProtocolTaskToolResponse("get_task_status", params ?? {}, validationError);
2539
2688
  const boundsError = protocolTaskBoundsError("get_task_status", params ?? {});
2540
2689
  if (boundsError) return finalizeProtocolTaskToolResponse("get_task_status", params ?? {}, boundsError);
2541
- const versionError = unsupportedVersionResponse(params ?? {});
2690
+ const versionError = unsupportedVersionResponse("get_task_status", params ?? {});
2542
2691
  if (versionError) return finalizeProtocolTaskToolResponse("get_task_status", params ?? {}, versionError);
2543
2692
  const taskId = typeof params?.task_id === "string" ? params.task_id : "";
2544
2693
  const { accountId, ownerScope, error } = await resolveTaskQueryAccountId(
@@ -2612,7 +2761,7 @@ function createAdcpServer(config) {
2612
2761
  if (validationError) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, validationError);
2613
2762
  const boundsError = protocolTaskBoundsError("list_tasks", params ?? {});
2614
2763
  if (boundsError) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, boundsError);
2615
- const versionError = unsupportedVersionResponse(params ?? {});
2764
+ const versionError = unsupportedVersionResponse("list_tasks", params ?? {});
2616
2765
  if (versionError) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, versionError);
2617
2766
  const { accountId, ownerScope, error } = await resolveTaskQueryAccountId(params ?? {}, extra, "list_tasks");
2618
2767
  if (error) return finalizeProtocolTaskToolResponse("list_tasks", params ?? {}, error);
@@ -2758,6 +2907,9 @@ function createAdcpServer(config) {
2758
2907
  if (protocols.includes("media_buy") || capConfig?.features) {
2759
2908
  capabilitiesData.media_buy = {
2760
2909
  features: {
2910
+ ...capConfig?.features?.canonicalCreatives !== void 0 && {
2911
+ canonical_creatives: capConfig.features.canonicalCreatives
2912
+ },
2761
2913
  inline_creative_management: capConfig?.features?.inlineCreativeManagement ?? false,
2762
2914
  property_list_filtering: capConfig?.features?.propertyListFiltering ?? false,
2763
2915
  content_standards: capConfig?.features?.contentStandards ?? false,
@@ -2813,6 +2965,52 @@ function createAdcpServer(config) {
2813
2965
  annotations: { readOnlyHint: true }
2814
2966
  },
2815
2967
  (async (params, extra = {}) => {
2968
+ const requestParams = isPlainObject(params) ? params : {};
2969
+ const releaseSelection = selectServedAdcpRelease(requestParams, capConfig, adcpVersion);
2970
+ const release = isMcpToolResponse(releaseSelection) ? {
2971
+ validationVersion: adcpVersion,
2972
+ ...servedAdcpVersion !== void 0 && { wireVersion: servedAdcpVersion }
2973
+ } : releaseSelection;
2974
+ const finalizeCapabilityResponse = (response2) => {
2975
+ sanitizeAdcpErrorEnvelope(response2);
2976
+ injectContextIntoResponse(response2, requestParams.context);
2977
+ injectVersionIntoResponse(response2, release.wireVersion);
2978
+ return applyResponseEnhancer(response2);
2979
+ };
2980
+ if (isMcpToolResponse(releaseSelection)) {
2981
+ return finalizeCapabilityResponse(releaseSelection);
2982
+ }
2983
+ if (!releaseDefinesTool("get_adcp_capabilities", release)) {
2984
+ return finalizeCapabilityResponse(
2985
+ (0, import_errors.adcpError)("VERSION_UNSUPPORTED", {
2986
+ message: `get_adcp_capabilities is not defined in the selected AdCP release ${release.validationVersion}.`,
2987
+ details: { supported_versions: buildSupportedVersionsList(capConfig, adcpVersion) }
2988
+ })
2989
+ );
2990
+ }
2991
+ if (requestValidationMode !== "off") {
2992
+ const requestOutcome = (0, import_schema_validator.validateRequest)("get_adcp_capabilities", requestParams, release.validationVersion);
2993
+ if (!requestOutcome.valid) {
2994
+ logger.warn(
2995
+ `Schema validation warning (request) for get_adcp_capabilities: ${(0, import_schema_validator.formatIssues)(requestOutcome.issues, 3, { rootSchemaId: requestOutcome.schemaId })}`,
2996
+ {
2997
+ tool: "get_adcp_capabilities",
2998
+ issues: requestOutcome.issues
2999
+ }
3000
+ );
3001
+ if (requestValidationMode === "strict") {
3002
+ return finalizeCapabilityResponse(
3003
+ (0, import_errors.adcpError)(
3004
+ "VALIDATION_ERROR",
3005
+ (0, import_schema_errors.buildAdcpValidationErrorPayload)("get_adcp_capabilities", "request", requestOutcome.issues, {
3006
+ exposeSchemaPath: exposeErrorDetails,
3007
+ rootSchemaId: requestOutcome.schemaId
3008
+ })
3009
+ )
3010
+ );
3011
+ }
3012
+ }
3013
+ }
2816
3014
  if (agentRegistry !== void 0 && extra.authInfo !== void 0) {
2817
3015
  const authInfo = extra.authInfo;
2818
3016
  const inboundCredential = authInfo.extra?.credential;
@@ -2824,28 +3022,77 @@ function createAdcpServer(config) {
2824
3022
  input: params
2825
3023
  });
2826
3024
  if (resolved?.status === "suspended" || resolved?.status === "blocked") {
2827
- return (0, import_errors.adcpError)(resolved.status === "suspended" ? "AGENT_SUSPENDED" : "AGENT_BLOCKED", {
2828
- message: resolved.status === "suspended" ? "Buyer agent is suspended. Contact the seller to restore access." : "Buyer agent is blocked.",
2829
- recovery: "terminal"
2830
- });
3025
+ return finalizeCapabilityResponse(
3026
+ (0, import_errors.adcpError)(resolved.status === "suspended" ? "AGENT_SUSPENDED" : "AGENT_BLOCKED", {
3027
+ message: resolved.status === "suspended" ? "Buyer agent is suspended. Contact the seller to restore access." : "Buyer agent is blocked.",
3028
+ recovery: "terminal"
3029
+ })
3030
+ );
2831
3031
  }
2832
3032
  } catch (err) {
2833
3033
  logger.warn("Buyer-agent registry resolution failed for get_adcp_capabilities", {
2834
3034
  error: err instanceof Error ? (0, import_redact.redactCredentialPatterns)(err.message) : (0, import_redact.redactCredentialPatterns)(String(err))
2835
3035
  });
2836
- return (0, import_errors.adcpError)("SERVICE_UNAVAILABLE", {
2837
- message: "Buyer-agent registry is unavailable",
2838
- recovery: "transient"
2839
- });
3036
+ return finalizeCapabilityResponse(
3037
+ (0, import_errors.adcpError)("SERVICE_UNAVAILABLE", {
3038
+ message: "Buyer-agent registry is unavailable",
3039
+ recovery: "transient"
3040
+ })
3041
+ );
2840
3042
  }
2841
3043
  }
2842
- const data = { ...capabilitiesData };
2843
- const ctx = params?.context;
3044
+ const data = {
3045
+ ...capabilitiesData,
3046
+ adcp: { ...capabilitiesData.adcp },
3047
+ ...capabilitiesData.media_buy !== void 0 && {
3048
+ media_buy: {
3049
+ ...capabilitiesData.media_buy,
3050
+ features: { ...capabilitiesData.media_buy.features }
3051
+ }
3052
+ }
3053
+ };
3054
+ const selected = parseAdcpRelease(release.validationVersion);
3055
+ if (selected !== void 0 && (selected.major < 3 || selected.major === 3 && selected.minor < 1)) {
3056
+ delete data.adcp.supported_versions;
3057
+ if (data.media_buy?.features !== void 0) {
3058
+ delete data.media_buy.features.canonical_creatives;
3059
+ }
3060
+ delete data.library_version;
3061
+ }
3062
+ const ctx = requestParams.context;
2844
3063
  if (ctx !== null && typeof ctx === "object" && !Array.isArray(ctx)) {
2845
3064
  data.context = ctx;
2846
3065
  }
2847
3066
  const response = (0, import_responses.capabilitiesResponse)(data);
2848
- injectVersionIntoResponse(response, servedAdcpVersion);
3067
+ injectVersionIntoResponse(response, release.wireVersion);
3068
+ if (responseValidationMode !== "off" && data.supported_protocols.length > 0) {
3069
+ const responseOutcome = (0, import_schema_validator.validateResponse)(
3070
+ "get_adcp_capabilities",
3071
+ response.structuredContent,
3072
+ release.validationVersion
3073
+ );
3074
+ if (!responseOutcome.valid) {
3075
+ logger.warn(
3076
+ `Schema validation warning (response) for get_adcp_capabilities: ${(0, import_schema_validator.formatIssues)(responseOutcome.issues, 3, { rootSchemaId: responseOutcome.schemaId })}`,
3077
+ {
3078
+ tool: "get_adcp_capabilities",
3079
+ issues: responseOutcome.issues,
3080
+ variant: responseOutcome.variant
3081
+ }
3082
+ );
3083
+ if (responseValidationMode === "strict") {
3084
+ return finalizeCapabilityResponse(
3085
+ (0, import_errors.adcpError)(
3086
+ "VALIDATION_ERROR",
3087
+ (0, import_schema_errors.buildAdcpValidationErrorPayload)("get_adcp_capabilities", "response", responseOutcome.issues, {
3088
+ exposeSchemaPath: exposeErrorDetails,
3089
+ rootSchemaId: responseOutcome.schemaId
3090
+ })
3091
+ )
3092
+ );
3093
+ }
3094
+ }
3095
+ }
2849
3096
  return applyResponseEnhancer(response);
2850
3097
  })
2851
3098
  );