@adcp/sdk 16.0.0-beta.7 → 16.0.0-beta.9

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 (408) hide show
  1. package/AGENTS.md +3 -3
  2. package/README.md +20 -0
  3. package/bin/adcp.js +10 -13
  4. package/dist/lib/conformance/index.d.mts +2 -0
  5. package/dist/lib/conformance/index.d.ts +2 -0
  6. package/dist/lib/conformance/index.js +3 -0
  7. package/dist/lib/conformance/index.mjs +2 -0
  8. package/dist/lib/conformance/property-lists.d.mts +14 -0
  9. package/dist/lib/conformance/property-lists.d.ts +14 -0
  10. package/dist/lib/conformance/property-lists.js +45 -0
  11. package/dist/lib/conformance/property-lists.mjs +21 -0
  12. package/dist/lib/conformance/runConformance.js +20 -1
  13. package/dist/lib/conformance/runConformance.mjs +20 -1
  14. package/dist/lib/conformance/types.d.mts +3 -0
  15. package/dist/lib/conformance/types.d.ts +3 -0
  16. package/dist/lib/core/AgentClient.d.mts +8 -5
  17. package/dist/lib/core/AgentClient.d.ts +8 -5
  18. package/dist/lib/core/AgentClient.js +9 -4
  19. package/dist/lib/core/AgentClient.mjs +9 -4
  20. package/dist/lib/core/SingleAgentClient.d.mts +32 -115
  21. package/dist/lib/core/SingleAgentClient.d.ts +32 -115
  22. package/dist/lib/core/SingleAgentClient.js +379 -273
  23. package/dist/lib/core/SingleAgentClient.mjs +387 -275
  24. package/dist/lib/core/TaskExecutor.d.mts +1 -16
  25. package/dist/lib/core/TaskExecutor.d.ts +1 -16
  26. package/dist/lib/core/TaskExecutor.js +34 -51
  27. package/dist/lib/core/TaskExecutor.mjs +12 -29
  28. package/dist/lib/core/product-cache.d.mts +3 -1
  29. package/dist/lib/core/product-cache.d.ts +3 -1
  30. package/dist/lib/core/product-cache.js +2 -1
  31. package/dist/lib/core/product-cache.mjs +2 -1
  32. package/dist/lib/errors/index.d.mts +2 -8
  33. package/dist/lib/errors/index.d.ts +2 -8
  34. package/dist/lib/errors/index.js +4 -4
  35. package/dist/lib/errors/index.mjs +4 -4
  36. package/dist/lib/identifiers.d.mts +53 -0
  37. package/dist/lib/identifiers.d.ts +53 -0
  38. package/dist/lib/identifiers.js +212 -0
  39. package/dist/lib/identifiers.mjs +163 -0
  40. package/dist/lib/index.d.mts +7 -5
  41. package/dist/lib/index.d.ts +7 -5
  42. package/dist/lib/index.js +2 -14
  43. package/dist/lib/index.mjs +1 -14
  44. package/dist/lib/media-buy/compatibility.d.mts +1 -1
  45. package/dist/lib/media-buy/compatibility.d.ts +1 -1
  46. package/dist/lib/media-buy/compatibility.js +26 -45
  47. package/dist/lib/media-buy/compatibility.mjs +26 -45
  48. package/dist/lib/media-buy/index.d.mts +1 -1
  49. package/dist/lib/media-buy/index.d.ts +1 -1
  50. package/dist/lib/media-buy/legacy-purchase-continuation.d.mts +2 -2
  51. package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
  52. package/dist/lib/media-buy/property-policy.d.mts +15 -1
  53. package/dist/lib/media-buy/property-policy.d.ts +15 -1
  54. package/dist/lib/media-buy/property-policy.js +135 -3
  55. package/dist/lib/media-buy/property-policy.mjs +134 -3
  56. package/dist/lib/protocols/index.js +14 -22
  57. package/dist/lib/protocols/index.mjs +5 -13
  58. package/dist/lib/registry/index.d.mts +12 -0
  59. package/dist/lib/registry/index.d.ts +12 -0
  60. package/dist/lib/registry/index.js +159 -5
  61. package/dist/lib/registry/index.mjs +156 -4
  62. package/dist/lib/registry/types.d.mts +26 -2
  63. package/dist/lib/registry/types.d.ts +26 -2
  64. package/dist/lib/registry/types.generated.d.mts +51 -11
  65. package/dist/lib/registry/types.generated.d.ts +51 -11
  66. package/dist/lib/reporting/source/conformance.d.mts +8 -8
  67. package/dist/lib/reporting/source/conformance.d.ts +8 -8
  68. package/dist/lib/reporting/source/manifest.d.mts +27 -27
  69. package/dist/lib/reporting/source/manifest.d.ts +27 -27
  70. package/dist/lib/server/create-adcp-server.js +6 -0
  71. package/dist/lib/server/create-adcp-server.mjs +6 -0
  72. package/dist/lib/server/decisioning/specialisms/lists.d.mts +4 -4
  73. package/dist/lib/server/decisioning/specialisms/lists.d.ts +4 -4
  74. package/dist/lib/server/index.d.mts +3 -0
  75. package/dist/lib/server/index.d.ts +3 -0
  76. package/dist/lib/server/index.js +8 -1
  77. package/dist/lib/server/index.mjs +4 -0
  78. package/dist/lib/server/property-lists.d.mts +36 -0
  79. package/dist/lib/server/property-lists.d.ts +36 -0
  80. package/dist/lib/server/property-lists.js +154 -0
  81. package/dist/lib/server/property-lists.mjs +129 -0
  82. package/dist/lib/server/targeting-helpers.d.mts +2 -0
  83. package/dist/lib/server/targeting-helpers.d.ts +2 -0
  84. package/dist/lib/server/targeting-helpers.js +28 -1
  85. package/dist/lib/server/targeting-helpers.mjs +18 -1
  86. package/dist/lib/signing/parser.js +2 -2
  87. package/dist/lib/signing/parser.mjs +2 -2
  88. package/dist/lib/signing/server.d.mts +1 -1
  89. package/dist/lib/signing/server.d.ts +1 -1
  90. package/dist/lib/signing/server.mjs +5 -1
  91. package/dist/lib/signing/webhook-verifier.d.mts +11 -0
  92. package/dist/lib/signing/webhook-verifier.d.ts +11 -0
  93. package/dist/lib/signing/webhook-verifier.js +11 -3
  94. package/dist/lib/signing/webhook-verifier.mjs +11 -3
  95. package/dist/lib/supply-path/verify.js +12 -2
  96. package/dist/lib/supply-path/verify.mjs +2 -2
  97. package/dist/lib/testing/compliance/comply.js +0 -8
  98. package/dist/lib/testing/compliance/comply.mjs +0 -8
  99. package/dist/lib/testing/compliance/storyboard-tracks.js +11 -0
  100. package/dist/lib/testing/compliance/storyboard-tracks.mjs +11 -0
  101. package/dist/lib/testing/index.d.mts +2 -0
  102. package/dist/lib/testing/index.d.ts +2 -0
  103. package/dist/lib/testing/index.js +5 -0
  104. package/dist/lib/testing/index.mjs +3 -0
  105. package/dist/lib/testing/scenarios/capabilities.d.mts +2 -2
  106. package/dist/lib/testing/scenarios/capabilities.d.ts +2 -2
  107. package/dist/lib/testing/scenarios/capabilities.js +8 -41
  108. package/dist/lib/testing/scenarios/capabilities.mjs +9 -42
  109. package/dist/lib/testing/storyboard/creative-build-probe.d.mts +34 -0
  110. package/dist/lib/testing/storyboard/creative-build-probe.d.ts +34 -0
  111. package/dist/lib/testing/storyboard/creative-build-probe.js +395 -0
  112. package/dist/lib/testing/storyboard/creative-build-probe.mjs +373 -0
  113. package/dist/lib/testing/storyboard/index.d.mts +2 -0
  114. package/dist/lib/testing/storyboard/index.d.ts +2 -0
  115. package/dist/lib/testing/storyboard/index.js +5 -0
  116. package/dist/lib/testing/storyboard/index.mjs +3 -0
  117. package/dist/lib/testing/storyboard/loader.js +12 -0
  118. package/dist/lib/testing/storyboard/loader.mjs +12 -0
  119. package/dist/lib/testing/storyboard/property-list-reference.d.mts +15 -0
  120. package/dist/lib/testing/storyboard/property-list-reference.d.ts +15 -0
  121. package/dist/lib/testing/storyboard/property-list-reference.js +514 -0
  122. package/dist/lib/testing/storyboard/property-list-reference.mjs +487 -0
  123. package/dist/lib/testing/storyboard/runner.js +318 -58
  124. package/dist/lib/testing/storyboard/runner.mjs +322 -58
  125. package/dist/lib/testing/storyboard/types.d.mts +38 -16
  126. package/dist/lib/testing/storyboard/types.d.ts +38 -16
  127. package/dist/lib/testing/storyboard/types.js +1 -0
  128. package/dist/lib/testing/storyboard/types.mjs +1 -0
  129. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  130. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  131. package/dist/lib/testing/storyboard/validations.js +64 -0
  132. package/dist/lib/testing/storyboard/validations.mjs +67 -1
  133. package/dist/lib/testing/types.d.mts +15 -1
  134. package/dist/lib/testing/types.d.ts +15 -1
  135. package/dist/lib/types/schemas.generated.d.ts +65 -65
  136. package/dist/lib/types/wellknown-schemas.generated.d.mts +21 -21
  137. package/dist/lib/types/wellknown-schemas.generated.d.ts +21 -21
  138. package/dist/lib/utils/adcp-version-config.js +6 -0
  139. package/dist/lib/utils/adcp-version-config.mjs +6 -0
  140. package/dist/lib/utils/capabilities.d.mts +7 -9
  141. package/dist/lib/utils/capabilities.d.ts +7 -9
  142. package/dist/lib/utils/capabilities.js +14 -28
  143. package/dist/lib/utils/capabilities.mjs +14 -27
  144. package/dist/lib/utils/creative-adapter.d.mts +15 -113
  145. package/dist/lib/utils/creative-adapter.d.ts +15 -113
  146. package/dist/lib/utils/creative-adapter.js +7 -106
  147. package/dist/lib/utils/creative-adapter.mjs +7 -102
  148. package/dist/lib/utils/format-renders.d.mts +20 -80
  149. package/dist/lib/utils/format-renders.d.ts +20 -80
  150. package/dist/lib/utils/format-renders.js +7 -67
  151. package/dist/lib/utils/format-renders.mjs +7 -66
  152. package/dist/lib/utils/index.d.mts +1 -2
  153. package/dist/lib/utils/index.d.ts +1 -2
  154. package/dist/lib/utils/index.js +0 -7
  155. package/dist/lib/utils/index.mjs +0 -6
  156. package/dist/lib/utils/preview-normalizer.d.mts +31 -80
  157. package/dist/lib/utils/preview-normalizer.d.ts +31 -80
  158. package/dist/lib/utils/preview-normalizer.js +5 -50
  159. package/dist/lib/utils/preview-normalizer.mjs +5 -49
  160. package/dist/lib/utils/pricing-adapter.d.mts +2 -36
  161. package/dist/lib/utils/pricing-adapter.d.ts +2 -36
  162. package/dist/lib/utils/pricing-adapter.js +0 -105
  163. package/dist/lib/utils/pricing-adapter.mjs +0 -100
  164. package/dist/lib/utils/request-normalizer.d.mts +1 -2
  165. package/dist/lib/utils/request-normalizer.d.ts +1 -2
  166. package/dist/lib/v2/projection/creative-delivery.d.mts +2 -0
  167. package/dist/lib/v2/projection/creative-delivery.d.ts +2 -0
  168. package/dist/lib/v2/projection/creative-delivery.js +7 -0
  169. package/dist/lib/v2/projection/creative-delivery.mjs +6 -0
  170. package/dist/lib/v2/projection/legacy-metadata.d.mts +12 -0
  171. package/dist/lib/v2/projection/legacy-metadata.d.ts +12 -0
  172. package/dist/lib/v2/projection/legacy-metadata.js +41 -1
  173. package/dist/lib/v2/projection/legacy-metadata.mjs +37 -1
  174. package/dist/lib/v2/projection/legacy-normalization.d.mts +1 -1
  175. package/dist/lib/v2/projection/legacy-normalization.d.ts +1 -1
  176. package/dist/lib/v2/projection/v1-to-v2.js +13 -0
  177. package/dist/lib/v2/projection/v1-to-v2.mjs +14 -0
  178. package/dist/lib/validation/client-hooks.d.mts +1 -4
  179. package/dist/lib/validation/client-hooks.d.ts +1 -4
  180. package/dist/lib/validation/get-products-request.d.mts +1 -1
  181. package/dist/lib/validation/get-products-request.d.ts +1 -1
  182. package/dist/lib/validation/schema-loader.js +6 -0
  183. package/dist/lib/validation/schema-loader.mjs +6 -0
  184. package/dist/lib/validation/schema-validator.js +1 -26
  185. package/dist/lib/validation/schema-validator.mjs +1 -26
  186. package/dist/lib/version.d.mts +5 -5
  187. package/dist/lib/version.d.ts +5 -5
  188. package/dist/lib/version.js +3 -5
  189. package/dist/lib/version.mjs +3 -5
  190. package/docs/TYPE-SUMMARY.md +2 -2
  191. package/docs/development/PROTOCOL_DIFFERENCES.md +1 -1
  192. package/docs/guides/CONFORMANCE.md +25 -0
  193. package/docs/guides/CREATIVE-BUILD-PROBE.md +156 -0
  194. package/docs/guides/CREATIVE-DELIVERY.md +45 -6
  195. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
  196. package/docs/guides/PROPERTY-LISTS.md +264 -0
  197. package/docs/guides/SIGNING-GUIDE.md +25 -0
  198. package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
  199. package/docs/llms.txt +2 -2
  200. package/docs/migration-13-to-14.md +20 -16
  201. package/docs/migration-14.x-rc-worksheet.md +5 -5
  202. package/docs/migration-4.x-to-5.x.md +12 -7
  203. package/docs/migration-drop-adcp-2.md +25 -0
  204. package/package.json +3 -18
  205. package/skills/call-adcp-agent/SKILL.md +23 -25
  206. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.mts +0 -3
  207. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +0 -3
  208. package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +0 -33
  209. package/dist/lib/adapters/legacy/v2-5/create_media_buy.mjs +0 -9
  210. package/dist/lib/adapters/legacy/v2-5/get_products.d.mts +0 -8
  211. package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +0 -8
  212. package/dist/lib/adapters/legacy/v2-5/get_products.js +0 -33
  213. package/dist/lib/adapters/legacy/v2-5/get_products.mjs +0 -9
  214. package/dist/lib/adapters/legacy/v2-5/index.d.mts +0 -34
  215. package/dist/lib/adapters/legacy/v2-5/index.d.ts +0 -34
  216. package/dist/lib/adapters/legacy/v2-5/index.js +0 -50
  217. package/dist/lib/adapters/legacy/v2-5/index.mjs +0 -25
  218. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.mts +0 -8
  219. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +0 -8
  220. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +0 -33
  221. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.mjs +0 -9
  222. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.mts +0 -3
  223. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +0 -3
  224. package/dist/lib/adapters/legacy/v2-5/preview_creative.js +0 -33
  225. package/dist/lib/adapters/legacy/v2-5/preview_creative.mjs +0 -9
  226. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +0 -11
  227. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +0 -11
  228. package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +0 -32
  229. package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs +0 -8
  230. package/dist/lib/adapters/legacy/v2-5/types.d.mts +0 -39
  231. package/dist/lib/adapters/legacy/v2-5/types.d.ts +0 -39
  232. package/dist/lib/adapters/legacy/v2-5/types.js +0 -16
  233. package/dist/lib/adapters/legacy/v2-5/types.mjs +0 -0
  234. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.mts +0 -3
  235. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +0 -3
  236. package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +0 -35
  237. package/dist/lib/adapters/legacy/v2-5/update_media_buy.mjs +0 -11
  238. package/dist/lib/schemas-data/v2.5/_provenance.json +0 -8
  239. package/dist/lib/schemas-data/v2.5/adagents.json +0 -494
  240. package/dist/lib/schemas-data/v2.5/core/activation-key.json +0 -50
  241. package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +0 -32
  242. package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +0 -21
  243. package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +0 -87
  244. package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +0 -21
  245. package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +0 -38
  246. package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +0 -21
  247. package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +0 -31
  248. package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +0 -21
  249. package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +0 -26
  250. package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +0 -87
  251. package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +0 -44
  252. package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +0 -71
  253. package/dist/lib/schemas-data/v2.5/core/async-response-data.json +0 -88
  254. package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +0 -33
  255. package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +0 -409
  256. package/dist/lib/schemas-data/v2.5/core/context.json +0 -8
  257. package/dist/lib/schemas-data/v2.5/core/creative-asset.json +0 -125
  258. package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +0 -31
  259. package/dist/lib/schemas-data/v2.5/core/creative-filters.json +0 -111
  260. package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +0 -72
  261. package/dist/lib/schemas-data/v2.5/core/creative-policy.json +0 -27
  262. package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +0 -171
  263. package/dist/lib/schemas-data/v2.5/core/deployment.json +0 -93
  264. package/dist/lib/schemas-data/v2.5/core/destination.json +0 -53
  265. package/dist/lib/schemas-data/v2.5/core/error.json +0 -40
  266. package/dist/lib/schemas-data/v2.5/core/ext.json +0 -8
  267. package/dist/lib/schemas-data/v2.5/core/format-id.json +0 -47
  268. package/dist/lib/schemas-data/v2.5/core/format.json +0 -324
  269. package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +0 -18
  270. package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +0 -152
  271. package/dist/lib/schemas-data/v2.5/core/measurement.json +0 -48
  272. package/dist/lib/schemas-data/v2.5/core/media-buy.json +0 -62
  273. package/dist/lib/schemas-data/v2.5/core/package.json +0 -72
  274. package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +0 -90
  275. package/dist/lib/schemas-data/v2.5/core/placement.json +0 -34
  276. package/dist/lib/schemas-data/v2.5/core/pricing-option.json +0 -35
  277. package/dist/lib/schemas-data/v2.5/core/product-filters.json +0 -102
  278. package/dist/lib/schemas-data/v2.5/core/product.json +0 -153
  279. package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +0 -115
  280. package/dist/lib/schemas-data/v2.5/core/promoted-products.json +0 -67
  281. package/dist/lib/schemas-data/v2.5/core/property-id.json +0 -14
  282. package/dist/lib/schemas-data/v2.5/core/property-tag.json +0 -16
  283. package/dist/lib/schemas-data/v2.5/core/property.json +0 -62
  284. package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +0 -146
  285. package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +0 -92
  286. package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +0 -48
  287. package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +0 -71
  288. package/dist/lib/schemas-data/v2.5/core/response.json +0 -24
  289. package/dist/lib/schemas-data/v2.5/core/signal-filters.json +0 -35
  290. package/dist/lib/schemas-data/v2.5/core/start-timing.json +0 -18
  291. package/dist/lib/schemas-data/v2.5/core/sub-asset.json +0 -79
  292. package/dist/lib/schemas-data/v2.5/core/targeting.json +0 -50
  293. package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +0 -43
  294. package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +0 -166
  295. package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +0 -192
  296. package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +0 -183
  297. package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +0 -101
  298. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +0 -73
  299. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +0 -61
  300. package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +0 -164
  301. package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +0 -245
  302. package/dist/lib/schemas-data/v2.5/creative/preview-render.json +0 -225
  303. package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +0 -11
  304. package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +0 -22
  305. package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +0 -11
  306. package/dist/lib/schemas-data/v2.5/enums/available-metric.json +0 -18
  307. package/dist/lib/schemas-data/v2.5/enums/channels.json +0 -18
  308. package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +0 -12
  309. package/dist/lib/schemas-data/v2.5/enums/creative-action.json +0 -14
  310. package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +0 -13
  311. package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +0 -15
  312. package/dist/lib/schemas-data/v2.5/enums/creative-status.json +0 -19
  313. package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +0 -20
  314. package/dist/lib/schemas-data/v2.5/enums/daast-version.json +0 -11
  315. package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +0 -15
  316. package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +0 -13
  317. package/dist/lib/schemas-data/v2.5/enums/feed-format.json +0 -12
  318. package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +0 -13
  319. package/dist/lib/schemas-data/v2.5/enums/format-category.json +0 -16
  320. package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +0 -11
  321. package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +0 -13
  322. package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +0 -11
  323. package/dist/lib/schemas-data/v2.5/enums/http-method.json +0 -11
  324. package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +0 -34
  325. package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +0 -12
  326. package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +0 -12
  327. package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +0 -11
  328. package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +0 -19
  329. package/dist/lib/schemas-data/v2.5/enums/metric-type.json +0 -17
  330. package/dist/lib/schemas-data/v2.5/enums/notification-type.json +0 -13
  331. package/dist/lib/schemas-data/v2.5/enums/pacing.json +0 -17
  332. package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +0 -11
  333. package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +0 -25
  334. package/dist/lib/schemas-data/v2.5/enums/property-type.json +0 -16
  335. package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +0 -19
  336. package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +0 -12
  337. package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +0 -12
  338. package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +0 -11
  339. package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +0 -103
  340. package/dist/lib/schemas-data/v2.5/enums/task-status.json +0 -29
  341. package/dist/lib/schemas-data/v2.5/enums/task-type.json +0 -27
  342. package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +0 -13
  343. package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +0 -12
  344. package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +0 -11
  345. package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +0 -25
  346. package/dist/lib/schemas-data/v2.5/enums/vast-version.json +0 -14
  347. package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +0 -13
  348. package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +0 -12
  349. package/dist/lib/schemas-data/v2.5/index.json +0 -604
  350. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +0 -31
  351. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +0 -65
  352. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +0 -31
  353. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +0 -16
  354. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +0 -36
  355. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +0 -126
  356. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +0 -97
  357. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +0 -54
  358. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +0 -285
  359. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +0 -38
  360. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +0 -21
  361. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +0 -34
  362. package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +0 -28
  363. package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +0 -33
  364. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +0 -26
  365. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +0 -70
  366. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +0 -58
  367. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +0 -61
  368. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +0 -137
  369. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +0 -437
  370. package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +0 -80
  371. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +0 -88
  372. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +0 -66
  373. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +0 -25
  374. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +0 -16
  375. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +0 -46
  376. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +0 -178
  377. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +0 -149
  378. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +0 -24
  379. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +0 -16
  380. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +0 -36
  381. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +0 -129
  382. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +0 -99
  383. package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +0 -52
  384. package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +0 -52
  385. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +0 -81
  386. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +0 -52
  387. package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +0 -73
  388. package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +0 -88
  389. package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +0 -93
  390. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +0 -81
  391. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +0 -52
  392. package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +0 -33
  393. package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +0 -32
  394. package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +0 -68
  395. package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +0 -59
  396. package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +0 -100
  397. package/dist/lib/types/v2-5/index.d.mts +0 -1
  398. package/dist/lib/types/v2-5/index.d.ts +0 -1
  399. package/dist/lib/types/v2-5/index.js +0 -22
  400. package/dist/lib/types/v2-5/index.mjs +0 -1
  401. package/dist/lib/types/v2-5/tools.generated.d.mts +0 -3568
  402. package/dist/lib/types/v2-5/tools.generated.d.ts +0 -3568
  403. package/dist/lib/types/v2-5/tools.generated.js +0 -16
  404. package/dist/lib/types/v2-5/tools.generated.mjs +0 -0
  405. package/dist/lib/utils/sync-creatives-adapter.d.mts +0 -33
  406. package/dist/lib/utils/sync-creatives-adapter.d.ts +0 -33
  407. package/dist/lib/utils/sync-creatives-adapter.js +0 -83
  408. package/dist/lib/utils/sync-creatives-adapter.mjs +0 -59
package/AGENTS.md CHANGED
@@ -19,7 +19,7 @@ This document contains essential guidelines for AI coding assistants (Claude, Co
19
19
 
20
20
  **Testing an agent for conformance?** — Read `docs/guides/CONFORMANCE.md` and call `runConformance(agentUrl, opts)` from `@adcp/sdk/conformance`. Property-based fuzzing against the bundled JSON schemas; stateless tier covers 11 discovery tools across every protocol.
21
21
 
22
- **Migration guides** — [Account change feed](docs/migration-account-change-feed.md) (wake-up parsing, guarded bootstrap/drain, subscriber registration and ownership boundaries); `docs/migration-6.6-to-6.7.md` (fifteen adopter recipes; two breaking changes — `'implicit'` enforces inline-`account_id` refusal and `SalesPlatform` split into `SalesCorePlatform & SalesIngestionPlatform`; plus `definePlatform` helpers, `composeMethod`, `accounts.resolve` security presets, `accounts.upsert/list/syncGovernance(ctx)`, typed errors, `issues[].hint`, `BuyerAgentRegistry`, `createTenantRegistry`, `createOAuthPassthroughResolver`, `createRosterAccountStore`, `createTenantStore` w/ built-in tenant gate, `MEDIA_BUY_TRANSITIONS` lifecycle helpers, `createMediaBuyStore` for `targeting_overlay` echo, `NoAccountCtx` narrow, `refAccountId(ref)`); `docs/migration-5.x-to-6.x.md` (5 → 6 framework shape); `docs/migration-4.x-to-5.x.md` (4 → 5); `docs/migration-buyer-agent-registry.md` (registry deep-dive).
22
+ **Migration guides** — [AdCP 2 retirement](docs/migration-drop-adcp-2.md) (AdCP 3-only discovery, removed compatibility APIs, and last supporting SDK pins); [Account change feed](docs/migration-account-change-feed.md) (wake-up parsing, guarded bootstrap/drain, subscriber registration and ownership boundaries); `docs/migration-6.6-to-6.7.md` (fifteen adopter recipes; two breaking changes — `'implicit'` enforces inline-`account_id` refusal and `SalesPlatform` split into `SalesCorePlatform & SalesIngestionPlatform`; plus `definePlatform` helpers, `composeMethod`, `accounts.resolve` security presets, `accounts.upsert/list/syncGovernance(ctx)`, typed errors, `issues[].hint`, `BuyerAgentRegistry`, `createTenantRegistry`, `createOAuthPassthroughResolver`, `createRosterAccountStore`, `createTenantStore` w/ built-in tenant gate, `MEDIA_BUY_TRANSITIONS` lifecycle helpers, `createMediaBuyStore` for `targeting_overlay` echo, `NoAccountCtx` narrow, `refAccountId(ref)`); `docs/migration-5.x-to-6.x.md` (5 → 6 framework shape); `docs/migration-4.x-to-5.x.md` (4 → 5); `docs/migration-buyer-agent-registry.md` (registry deep-dive).
23
23
 
24
24
  **Putting credentials in `ctx_metadata`?** — Don't. Read `docs/guides/CTX-METADATA-SAFETY.md` — wire-strip protects buyer responses but not log lines / error envelopes / heap dumps / adopter strings. Re-derive bearers per request; embed only non-secret upstream IDs.
25
25
 
@@ -263,7 +263,7 @@ npm run generate-zod-schemas # Generate runtime validation
263
263
 
264
264
  ### Wire-version compat (v3 SDK ↔ legacy sellers)
265
265
 
266
- The SDK speaks one AdCP major (`ADCP_VERSION` in `src/lib/version.ts`, currently `3.2.5`) on its public surface and adapts to legacy sellers underneath. v2.5 is the only active legacy shim; the recipe for adding a new one (e.g. v3 when the SDK pin moves to v4) lives in [`docs/development/WIRE-VERSION-COMPAT.md`](https://github.com/adcontextprotocol/adcp-client/blob/main/docs/development/WIRE-VERSION-COMPAT.md). Touch that doc whenever you add to `src/lib/adapters/legacy/`, `src/lib/types/v*-*/`, or `schemas/cache/<version>/`.
266
+ The SDK speaks one AdCP major (`ADCP_VERSION` in `src/lib/version.ts`, currently `3.2.5`) on its public surface and adapts to legacy sellers underneath. AdCP 2 support has been removed following its August 1, 2026 end of life. Maintained AdCP 3 compatibility and the policy for future major-version support are documented in [`docs/development/WIRE-VERSION-COMPAT.md`](https://github.com/adcontextprotocol/adcp-client/blob/main/docs/development/WIRE-VERSION-COMPAT.md). Touch that doc whenever you add to `src/lib/adapters/legacy/`, `src/lib/types/v*-*/`, or `schemas/cache/<version>/`.
267
267
 
268
268
  ## Testing Strategies
269
269
 
@@ -317,7 +317,7 @@ The pattern:
317
317
 
318
318
  - `normalizeRequestParams()` runs before validation, filling in derivable fields
319
319
  - `validateRequest()` runs Zod schemas after normalization
320
- - `adaptRequestForServerVersion()` handles v3→v2 downgrades for older servers
320
+ - `adaptRequestForServerVersion()` adapts requests to maintained AdCP 3 releases; AdCP 2 targets are rejected
321
321
 
322
322
  **Never add a required field without a backwards-compatible default or inference path.**
323
323
 
package/README.md CHANGED
@@ -34,6 +34,8 @@ npm install @adcp/sdk@adcp-3.1 # 13.x, maintained AdCP 3.1 line
34
34
  npm install @adcp/sdk@adcp-3.0 # 7.11.x, AdCP 3.0
35
35
  ```
36
36
 
37
+ AdCP 2 reached end of life on August 1, 2026. This checkout supports AdCP 3 agents only; review the [AdCP 2 retirement guide](./docs/migration-drop-adcp-2.md) before upgrading an integration that still calls AdCP 2 sellers.
38
+
37
39
  Upgrading to SDK 14? Read the [release-bound upgrade worksheet](./docs/migration-14.x-rc-worksheet.md), then use the [13-to-14](./docs/migration-13-to-14.md) or [12-to-14](./docs/migration-12-to-14.md) migration guide. The [prerelease history](./docs/releases/14.0.0-beta.0.md) covers changes made during the 14.0 beta cycle. The npm `latest` tag tracks SDK 14 (AdCP 3.2); SDK 13 stays available on `adcp-3.1` as the maintained AdCP 3.1 line. SDK 14 requires Node.js `^20.19.0 || >=22.12.0`. Older paths: [12-to-13](./docs/migration-12-to-13.md), **[MIGRATION-v8.md](./MIGRATION-v8.md)**, and [8.0-to-8.1](./docs/migration-8.0-to-8.1.md).
38
40
 
39
41
  ### Narrow type imports (`@adcp/sdk/types/<tool>`)
@@ -103,6 +105,7 @@ Start with the persona guide that matches your job:
103
105
  - [Build a seller](./docs/guides/SELLER-QUICKSTART-3.2.md)
104
106
  - [Call a seller](./docs/guides/BUYER-QUICKSTART-3.2.md)
105
107
  - [Adopt the account change feed](./docs/migration-account-change-feed.md)
108
+ - [Upgrade an integration that still uses AdCP 2](./docs/migration-drop-adcp-2.md)
106
109
  - [Upgrade from SDK 13](./docs/migration-13-to-14.md)
107
110
  - [Add AdCP to an existing platform](./docs/guides/EXISTING-PLATFORM.md)
108
111
  - [Run in production](./docs/guides/PRODUCTION-DURABILITY.md)
@@ -808,6 +811,23 @@ Build a registry service that:
808
811
 
809
812
  Library provides discovery logic - you add persistence layer.
810
813
 
814
+ ### Property catalog registration and errors
815
+
816
+ For bulk property catalog registration, use `RegistryClient.resolveIdentifiersAll()`
817
+ in default `resolve` mode (requires an API key and provenance); use `mode: 'lookup'`
818
+ for read-only resolution. It splits by count and request bytes, bounds concurrency,
819
+ honors rate-limit retry delays, and returns per-input outcomes. `saveProperty()`
820
+ updates hosted publisher configuration; `saveProperties()` fans out those updates
821
+ and is intended for one configuration per publisher domain. Both validate
822
+ `publisher_domain` before HTTP. See [the property-list guide](docs/guides/PROPERTY-LISTS.md)
823
+ for identifier validators, mixed app/CTV matching, MCP list serving, signed change
824
+ notifications, and certification.
825
+
826
+ Registry HTTP errors use `RegistryRequestError` / `isRegistryRequestError` with
827
+ `status`, `method`, `retryAfterMs`, and bounded untrusted `details`. Do not parse
828
+ `error.message` for HTTP status or retry timing. Local identifier validation uses
829
+ `IdentifierValidationError`; bulk resolve failures are available in each outcome.
830
+
811
831
  ### Brand relationship verification
812
832
 
813
833
  Use `RegistryClient.lookupBrand()` to resolve a domain and verify its relationship to a house. The public v3 registry does not expose an ordered-chain endpoint; v3 hierarchy is one level deep.
package/bin/adcp.js CHANGED
@@ -2023,7 +2023,6 @@ OPTIONS:
2023
2023
  --wait Wait for async/webhook responses
2024
2024
  --json Raw JSON output
2025
2025
  --debug Debug output
2026
- --allow-v2 Suppress the v2-sunset warning (unsupported since 2026-04-20)
2027
2026
  --help, -h Show help
2028
2027
 
2029
2028
  BUILT-IN AGENTS:
@@ -2121,7 +2120,7 @@ RUN OPTIONS (full assessment):
2121
2120
  --media-buy-lifecycle-compat
2122
2121
  Route compact media-buy storyboard steps through the
2123
2122
  SDK compatibility coordinator so the same storyboard can
2124
- exercise established v2.5–3.2 sellers.
2123
+ exercise established AdCP 3.0–3.2 sellers.
2125
2124
  --media-buy-compat-losses LOSSES
2126
2125
  Comma-separated guarantee losses explicitly accepted by
2127
2126
  that coordinator (for example feed_version_not_atomic).
@@ -4222,7 +4221,7 @@ function printFixtureResolution(records, coverageGaps) {
4222
4221
  const scope = record.product_handle ? `${record.product_handle}/` : '';
4223
4222
  if (record.status === 'resolved') {
4224
4223
  const ids = record.seller_ids || {};
4225
- const sellerId = ids.pricing_option_id || ids.product_id || '?';
4224
+ const sellerId = ids.pricing_option_id || ids.product_id || ids.capability_id || ids.format_id?.id || '?';
4226
4225
  console.log(` ✅ ${record.fixture_type} ${scope}${record.handle} → ${sellerId} (${record.strategy})`);
4227
4226
  } else if (record.status === 'unsatisfied') {
4228
4227
  continue;
@@ -5841,6 +5840,12 @@ function formatVerdict(verdict) {
5841
5840
 
5842
5841
  async function main() {
5843
5842
  const args = process.argv.slice(2);
5843
+ if (args.some(arg => arg === '--allow-v2' || arg.startsWith('--allow-v2='))) {
5844
+ console.error(
5845
+ 'ERROR: --allow-v2 has been removed. AdCP 2 reached end of life on 2026-08-01; upgrade the agent to AdCP 3. See https://github.com/adcontextprotocol/adcp-client/blob/main/docs/migration-drop-adcp-2.md'
5846
+ );
5847
+ process.exit(2);
5848
+ }
5844
5849
  if (args[0] === 'identity') return require('./adcp-identity.js').handleIdentityCommand(args.slice(1));
5845
5850
 
5846
5851
  // `--version` / `-v` is handled before subcommands and before the
@@ -5859,14 +5864,6 @@ async function main() {
5859
5864
  // skipped in CI, non-TTY, --json, and when ADCP_SKIP_VERSION_CHECK=1.
5860
5865
  scheduleVersionCheck(LIBRARY_VERSION);
5861
5866
 
5862
- // Global: suppress the v2-sunset warning before any subcommand runs.
5863
- // v2 went unsupported on 2026-04-20 (AdCP 3.0 GA, adcp#2220) — the library
5864
- // warns whenever an agent advertises v2 capabilities. The flag is for
5865
- // legacy holdouts who know what they're doing.
5866
- if (args.includes('--allow-v2')) {
5867
- process.env.ADCP_ALLOW_V2 = '1';
5868
- }
5869
-
5870
5867
  // Handle subcommands before global --help so their own --help works
5871
5868
  if (args[0] === 'registry') {
5872
5869
  const code = await handleRegistryCommand(args.slice(1));
@@ -5877,7 +5874,7 @@ async function main() {
5877
5874
  if (args[0] === 'init') {
5878
5875
  const { handleInitCommand } = require('./adcp-project.js');
5879
5876
  await handleInitCommand(
5880
- args.slice(1).filter(arg => arg !== '--allow-v2' && arg !== '--allow-http'),
5877
+ args.slice(1).filter(arg => arg !== '--allow-http'),
5881
5878
  { libraryVersion: LIBRARY_VERSION }
5882
5879
  );
5883
5880
  return;
@@ -5886,7 +5883,7 @@ async function main() {
5886
5883
  if (args[0] === 'doctor') {
5887
5884
  const { handleDoctorCommand } = require('./adcp-project.js');
5888
5885
  await handleDoctorCommand(
5889
- args.slice(1).filter(arg => arg !== '--allow-v2' && arg !== '--allow-http'),
5886
+ args.slice(1).filter(arg => arg !== '--allow-http'),
5890
5887
  {
5891
5888
  libraryVersion: LIBRARY_VERSION,
5892
5889
  adcpVersion: ADCP_VERSION,
@@ -19,6 +19,8 @@
19
19
  * ```
20
20
  */
21
21
  export { runConformance } from './runConformance.mjs';
22
+ export { runPropertyListConformance } from './property-lists.mjs';
23
+ export type { PropertyListConformanceReport } from './property-lists.mjs';
22
24
  export { runWebhookConformance } from './webhook.mjs';
23
25
  export { seedFixtures } from './seeder.mjs';
24
26
  export { TARGETING_GEOGRAPHY_CONFORMANCE_VECTORS, buildTargetingInputConformanceVectors, runTargetingInputConformance, } from './targeting.mjs';
@@ -19,6 +19,8 @@
19
19
  * ```
20
20
  */
21
21
  export { runConformance } from './runConformance';
22
+ export { runPropertyListConformance } from './property-lists';
23
+ export type { PropertyListConformanceReport } from './property-lists';
22
24
  export { runWebhookConformance } from './webhook';
23
25
  export { seedFixtures } from './seeder';
24
26
  export { TARGETING_GEOGRAPHY_CONFORMANCE_VECTORS, buildTargetingInputConformanceVectors, runTargetingInputConformance, } from './targeting';
@@ -29,12 +29,14 @@ __export(conformance_exports, {
29
29
  UPDATE_TIER_TOOLS: () => import_types.UPDATE_TIER_TOOLS,
30
30
  buildTargetingInputConformanceVectors: () => import_targeting.buildTargetingInputConformanceVectors,
31
31
  runConformance: () => import_runConformance.runConformance,
32
+ runPropertyListConformance: () => import_property_lists.runPropertyListConformance,
32
33
  runTargetingInputConformance: () => import_targeting.runTargetingInputConformance,
33
34
  runWebhookConformance: () => import_webhook.runWebhookConformance,
34
35
  seedFixtures: () => import_seeder.seedFixtures
35
36
  });
36
37
  module.exports = __toCommonJS(conformance_exports);
37
38
  var import_runConformance = require('./runConformance.js');
39
+ var import_property_lists = require('./property-lists.js');
38
40
  var import_webhook = require('./webhook.js');
39
41
  var import_seeder = require('./seeder.js');
40
42
  var import_targeting = require('./targeting.js');
@@ -52,6 +54,7 @@ var import_types = require('./types.js');
52
54
  UPDATE_TIER_TOOLS,
53
55
  buildTargetingInputConformanceVectors,
54
56
  runConformance,
57
+ runPropertyListConformance,
55
58
  runTargetingInputConformance,
56
59
  runWebhookConformance,
57
60
  seedFixtures
@@ -1,4 +1,5 @@
1
1
  import { runConformance } from "./runConformance.mjs";
2
+ import { runPropertyListConformance } from "./property-lists.mjs";
2
3
  import { runWebhookConformance } from "./webhook.mjs";
3
4
  import { seedFixtures } from "./seeder.mjs";
4
5
  import {
@@ -28,6 +29,7 @@ export {
28
29
  UPDATE_TIER_TOOLS,
29
30
  buildTargetingInputConformanceVectors,
30
31
  runConformance,
32
+ runPropertyListConformance,
31
33
  runTargetingInputConformance,
32
34
  runWebhookConformance,
33
35
  seedFixtures
@@ -0,0 +1,14 @@
1
+ import type { PropertyListReference } from '../types/tools.generated.mjs';
2
+ import { type ResolveListOptions } from '../server/targeting-helpers.mjs';
3
+ export interface PropertyListConformanceReport {
4
+ totalRuns: number;
5
+ totalFailures: number;
6
+ results: Array<{
7
+ index: number;
8
+ ok: boolean;
9
+ identifierCount?: number;
10
+ code?: string;
11
+ }>;
12
+ }
13
+ /** Certify buyer-issued references using the same MCP resolver sellers use, with caching disabled. */
14
+ export declare function runPropertyListConformance(references: readonly PropertyListReference[], options?: ResolveListOptions): Promise<PropertyListConformanceReport>;
@@ -0,0 +1,14 @@
1
+ import type { PropertyListReference } from '../types/tools.generated';
2
+ import { type ResolveListOptions } from '../server/targeting-helpers';
3
+ export interface PropertyListConformanceReport {
4
+ totalRuns: number;
5
+ totalFailures: number;
6
+ results: Array<{
7
+ index: number;
8
+ ok: boolean;
9
+ identifierCount?: number;
10
+ code?: string;
11
+ }>;
12
+ }
13
+ /** Certify buyer-issued references using the same MCP resolver sellers use, with caching disabled. */
14
+ export declare function runPropertyListConformance(references: readonly PropertyListReference[], options?: ResolveListOptions): Promise<PropertyListConformanceReport>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var property_lists_exports = {};
20
+ __export(property_lists_exports, {
21
+ runPropertyListConformance: () => runPropertyListConformance
22
+ });
23
+ module.exports = __toCommonJS(property_lists_exports);
24
+ var import_targeting_helpers = require('../server/targeting-helpers.js');
25
+ async function runPropertyListConformance(references, options = {}) {
26
+ const results = [];
27
+ for (const [index, reference] of references.entries()) {
28
+ try {
29
+ const resolved = await (0, import_targeting_helpers.resolvePropertyList)(reference, {
30
+ ...options,
31
+ cache: false,
32
+ strictResponseValidation: true
33
+ });
34
+ if (resolved.listId !== reference.list_id) throw new Error("property_list_identity_mismatch");
35
+ results.push({ index, ok: true, identifierCount: resolved.identifiers.length });
36
+ } catch {
37
+ results.push({ index, ok: false, code: "property_list_reference_unresolvable" });
38
+ }
39
+ }
40
+ return { totalRuns: results.length, totalFailures: results.filter((result) => !result.ok).length, results };
41
+ }
42
+ // Annotate the CommonJS export names for ESM import in node:
43
+ 0 && (module.exports = {
44
+ runPropertyListConformance
45
+ });
@@ -0,0 +1,21 @@
1
+ import { resolvePropertyList } from "../server/targeting-helpers.mjs";
2
+ async function runPropertyListConformance(references, options = {}) {
3
+ const results = [];
4
+ for (const [index, reference] of references.entries()) {
5
+ try {
6
+ const resolved = await resolvePropertyList(reference, {
7
+ ...options,
8
+ cache: false,
9
+ strictResponseValidation: true
10
+ });
11
+ if (resolved.listId !== reference.list_id) throw new Error("property_list_identity_mismatch");
12
+ results.push({ index, ok: true, identifierCount: resolved.identifiers.length });
13
+ } catch {
14
+ results.push({ index, ok: false, code: "property_list_reference_unresolvable" });
15
+ }
16
+ }
17
+ return { totalRuns: results.length, totalFailures: results.filter((result) => !result.ok).length, results };
18
+ }
19
+ export {
20
+ runPropertyListConformance
21
+ };
@@ -23,6 +23,7 @@ __export(runConformance_exports, {
23
23
  });
24
24
  module.exports = __toCommonJS(runConformance_exports);
25
25
  var import_AgentClient = require('../core/AgentClient.js');
26
+ var import_property_lists = require('./property-lists.js');
26
27
  var import_version = require('../version.js');
27
28
  var import_types = require('./types.js');
28
29
  var import_schemaLoader = require('./schemaLoader.js');
@@ -120,6 +121,23 @@ async function runConformance(agentUrl, options = {}) {
120
121
  });
121
122
  uniformError.push(report);
122
123
  }
124
+ const propertyLists = options.propertyListReferences ? await (0, import_property_lists.runPropertyListConformance)(options.propertyListReferences) : void 0;
125
+ for (const result of propertyLists?.results ?? []) {
126
+ if (result.ok) continue;
127
+ if (failures.length >= maxFailures) {
128
+ droppedFailures++;
129
+ continue;
130
+ }
131
+ failures.push({
132
+ tool: "get_property_list",
133
+ seed,
134
+ shrunk: false,
135
+ input: { propertyListReferenceIndex: result.index },
136
+ response: null,
137
+ verdict: "invalid",
138
+ invariantFailures: ["Buyer-issued property-list reference could not be resolved."]
139
+ });
140
+ }
123
141
  const completedAt = /* @__PURE__ */ new Date();
124
142
  return {
125
143
  agentUrl,
@@ -131,8 +149,9 @@ async function runConformance(agentUrl, options = {}) {
131
149
  fixturesUsed: mergedFixtures,
132
150
  autoSeeded: !!options.autoSeed,
133
151
  seedWarnings,
134
- totalRuns,
152
+ totalRuns: totalRuns + (propertyLists?.totalRuns ?? 0),
135
153
  totalFailures: failures.length + droppedFailures,
154
+ ...propertyLists ? { propertyLists } : {},
136
155
  droppedFailures,
137
156
  perTool,
138
157
  failures,
@@ -1,4 +1,5 @@
1
1
  import { AgentClient } from "../core/AgentClient.mjs";
2
+ import { runPropertyListConformance } from "./property-lists.mjs";
2
3
  import { parseAdcpMajorVersion } from "../version.mjs";
3
4
  import {
4
5
  COMPACT_LIFECYCLE_TOOLS,
@@ -105,6 +106,23 @@ async function runConformance(agentUrl, options = {}) {
105
106
  });
106
107
  uniformError.push(report);
107
108
  }
109
+ const propertyLists = options.propertyListReferences ? await runPropertyListConformance(options.propertyListReferences) : void 0;
110
+ for (const result of propertyLists?.results ?? []) {
111
+ if (result.ok) continue;
112
+ if (failures.length >= maxFailures) {
113
+ droppedFailures++;
114
+ continue;
115
+ }
116
+ failures.push({
117
+ tool: "get_property_list",
118
+ seed,
119
+ shrunk: false,
120
+ input: { propertyListReferenceIndex: result.index },
121
+ response: null,
122
+ verdict: "invalid",
123
+ invariantFailures: ["Buyer-issued property-list reference could not be resolved."]
124
+ });
125
+ }
108
126
  const completedAt = /* @__PURE__ */ new Date();
109
127
  return {
110
128
  agentUrl,
@@ -116,8 +134,9 @@ async function runConformance(agentUrl, options = {}) {
116
134
  fixturesUsed: mergedFixtures,
117
135
  autoSeeded: !!options.autoSeed,
118
136
  seedWarnings,
119
- totalRuns,
137
+ totalRuns: totalRuns + (propertyLists?.totalRuns ?? 0),
120
138
  totalFailures: failures.length + droppedFailures,
139
+ ...propertyLists ? { propertyLists } : {},
121
140
  droppedFailures,
122
141
  perTool,
123
142
  failures,
@@ -32,6 +32,8 @@ export declare const DEFAULT_TOOLS: readonly ConformanceToolName[];
32
32
  /** Tier 1 + Tier 2 + Tier 3. Used when `autoSeed` is true or fixtures were supplied. */
33
33
  export declare const DEFAULT_TOOLS_WITH_UPDATES: readonly ConformanceToolName[];
34
34
  export interface RunConformanceOptions {
35
+ /** Buyer-issued references to certify through the seller MCP resolution path (without cached results). */
36
+ propertyListReferences?: readonly import('../types/tools.generated.mjs').PropertyListReference[];
35
37
  /** Seed for reproducible runs. Omit for a random seed. */
36
38
  seed?: number;
37
39
  /** Subset of tools to fuzz. Defaults to the full stateless tier. */
@@ -210,6 +212,7 @@ export interface ConformanceToolStats {
210
212
  skipReason?: SkipReason;
211
213
  }
212
214
  export interface ConformanceReport {
215
+ propertyLists?: import('./property-lists.mjs').PropertyListConformanceReport;
213
216
  agentUrl: string;
214
217
  seed: number;
215
218
  /** Schema version the fuzzer loaded. Pinned so a report is replayable. */
@@ -32,6 +32,8 @@ export declare const DEFAULT_TOOLS: readonly ConformanceToolName[];
32
32
  /** Tier 1 + Tier 2 + Tier 3. Used when `autoSeed` is true or fixtures were supplied. */
33
33
  export declare const DEFAULT_TOOLS_WITH_UPDATES: readonly ConformanceToolName[];
34
34
  export interface RunConformanceOptions {
35
+ /** Buyer-issued references to certify through the seller MCP resolution path (without cached results). */
36
+ propertyListReferences?: readonly import('../types/tools.generated').PropertyListReference[];
35
37
  /** Seed for reproducible runs. Omit for a random seed. */
36
38
  seed?: number;
37
39
  /** Subset of tools to fuzz. Defaults to the full stateless tier. */
@@ -210,6 +212,7 @@ export interface ConformanceToolStats {
210
212
  skipReason?: SkipReason;
211
213
  }
212
214
  export interface ConformanceReport {
215
+ propertyLists?: import('./property-lists').PropertyListConformanceReport;
213
216
  agentUrl: string;
214
217
  seed: number;
215
218
  /** Schema version the fuzzer loaded. Pinned so a report is replayable. */
@@ -160,7 +160,7 @@ export type TaskRequestFor<K extends AdcpTaskName> = TaskRequestTypeMap[K];
160
160
  * - `governance` — buyer-side governance config
161
161
  * - `requireV3ForMutations` — enforce AdCP v3 before dispatching mutating tools
162
162
  */
163
- export type InProcessAgentClientConfig = Pick<SingleAgentClientConfig, 'adcpVersion' | 'wireAdcpVersion' | 'versionEnvelope' | 'debug' | 'validation' | 'governance' | 'onActivity' | 'legacyFormatConverter' | 'projectionCatalogs' | 'canonicalFormatLegacyResolver' | 'validateFeatures' | 'requireV3ForMutations' | 'allowV2' | 'workingTimeout' | 'defaultMaxClarifications' | 'persistConversations' | 'deferredStorage' | 'resolveDeferredAgent' | 'deferredTaskTtlSeconds'> & {
163
+ export type InProcessAgentClientConfig = Pick<SingleAgentClientConfig, 'adcpVersion' | 'wireAdcpVersion' | 'versionEnvelope' | 'debug' | 'validation' | 'governance' | 'onActivity' | 'legacyFormatConverter' | 'projectionCatalogs' | 'canonicalFormatLegacyResolver' | 'validateFeatures' | 'requireV3ForMutations' | 'workingTimeout' | 'defaultMaxClarifications' | 'persistConversations' | 'deferredStorage' | 'resolveDeferredAgent' | 'deferredTaskTtlSeconds'> & {
164
164
  /**
165
165
  * Human-readable name for this agent, used in debug logs and
166
166
  * `getAgentName()`. Defaults to `'in-process'`.
@@ -536,8 +536,10 @@ export declare class AgentClient {
536
536
  /**
537
537
  * Resolve the creative wire mode used by canonical writes without sending a
538
538
  * mutation. Uses capabilities, this tool's input schema, and the client wire
539
- * pin. Older peers with insufficient evidence return `unknown` and require
540
- * an unambiguous legacy reference during projection; conflicting evidence
539
+ * pin. Older peers with insufficient evidence return `unknown`; a matching
540
+ * seller-advertised product option can establish canonical delivery for an
541
+ * individual 3.1 write. Otherwise projection requires an unambiguous legacy
542
+ * reference. Conflicting evidence
541
543
  * or unproven support with a 3.2+ buyer pin throws `CreativeFormatCapabilityError`.
542
544
  */
543
545
  resolveCreativeFormatWireMode(taskType: 'sync_creatives' | 'create_media_buy' | 'update_media_buy', options?: Pick<TaskOptions, 'signal' | 'transport'>): Promise<CreativeFormatWireMode>;
@@ -553,13 +555,12 @@ export declare class AgentClient {
553
555
  * Return the seller's declared `adcp.idempotency.replay_ttl_seconds`, or
554
556
  * throw when a v3 seller omits the (required) declaration.
555
557
  *
556
- * Returns `undefined` for v2 agents — v2 pre-dates the idempotency envelope.
557
558
  */
558
559
  getIdempotencyReplayTtlSeconds(): Promise<number | undefined>;
559
560
  /**
560
561
  * Assert that the seller's capabilities corroborate this client's pinned
561
562
  * AdCP major (per `getAdcpVersion()`). Throws `VersionUnsupportedError`
562
- * otherwise. Set `ADCP_ALLOW_V2=1` to bypass.
563
+ * otherwise.
563
564
  */
564
565
  requireSupportedMajor(taskType?: string): Promise<void>;
565
566
  /**
@@ -739,6 +740,8 @@ export declare class AgentClient {
739
740
  * Get the agent protocol
740
741
  */
741
742
  getProtocol(): 'mcp' | 'a2a';
743
+ /** Resolved MCP endpoint already used by this client; never performs discovery. */
744
+ getDiscoveredMcpEndpoint(): string | undefined;
742
745
  /**
743
746
  * Get the canonical base URL for this agent
744
747
  *
@@ -160,7 +160,7 @@ export type TaskRequestFor<K extends AdcpTaskName> = TaskRequestTypeMap[K];
160
160
  * - `governance` — buyer-side governance config
161
161
  * - `requireV3ForMutations` — enforce AdCP v3 before dispatching mutating tools
162
162
  */
163
- export type InProcessAgentClientConfig = Pick<SingleAgentClientConfig, 'adcpVersion' | 'wireAdcpVersion' | 'versionEnvelope' | 'debug' | 'validation' | 'governance' | 'onActivity' | 'legacyFormatConverter' | 'projectionCatalogs' | 'canonicalFormatLegacyResolver' | 'validateFeatures' | 'requireV3ForMutations' | 'allowV2' | 'workingTimeout' | 'defaultMaxClarifications' | 'persistConversations' | 'deferredStorage' | 'resolveDeferredAgent' | 'deferredTaskTtlSeconds'> & {
163
+ export type InProcessAgentClientConfig = Pick<SingleAgentClientConfig, 'adcpVersion' | 'wireAdcpVersion' | 'versionEnvelope' | 'debug' | 'validation' | 'governance' | 'onActivity' | 'legacyFormatConverter' | 'projectionCatalogs' | 'canonicalFormatLegacyResolver' | 'validateFeatures' | 'requireV3ForMutations' | 'workingTimeout' | 'defaultMaxClarifications' | 'persistConversations' | 'deferredStorage' | 'resolveDeferredAgent' | 'deferredTaskTtlSeconds'> & {
164
164
  /**
165
165
  * Human-readable name for this agent, used in debug logs and
166
166
  * `getAgentName()`. Defaults to `'in-process'`.
@@ -536,8 +536,10 @@ export declare class AgentClient {
536
536
  /**
537
537
  * Resolve the creative wire mode used by canonical writes without sending a
538
538
  * mutation. Uses capabilities, this tool's input schema, and the client wire
539
- * pin. Older peers with insufficient evidence return `unknown` and require
540
- * an unambiguous legacy reference during projection; conflicting evidence
539
+ * pin. Older peers with insufficient evidence return `unknown`; a matching
540
+ * seller-advertised product option can establish canonical delivery for an
541
+ * individual 3.1 write. Otherwise projection requires an unambiguous legacy
542
+ * reference. Conflicting evidence
541
543
  * or unproven support with a 3.2+ buyer pin throws `CreativeFormatCapabilityError`.
542
544
  */
543
545
  resolveCreativeFormatWireMode(taskType: 'sync_creatives' | 'create_media_buy' | 'update_media_buy', options?: Pick<TaskOptions, 'signal' | 'transport'>): Promise<CreativeFormatWireMode>;
@@ -553,13 +555,12 @@ export declare class AgentClient {
553
555
  * Return the seller's declared `adcp.idempotency.replay_ttl_seconds`, or
554
556
  * throw when a v3 seller omits the (required) declaration.
555
557
  *
556
- * Returns `undefined` for v2 agents — v2 pre-dates the idempotency envelope.
557
558
  */
558
559
  getIdempotencyReplayTtlSeconds(): Promise<number | undefined>;
559
560
  /**
560
561
  * Assert that the seller's capabilities corroborate this client's pinned
561
562
  * AdCP major (per `getAdcpVersion()`). Throws `VersionUnsupportedError`
562
- * otherwise. Set `ADCP_ALLOW_V2=1` to bypass.
563
+ * otherwise.
563
564
  */
564
565
  requireSupportedMajor(taskType?: string): Promise<void>;
565
566
  /**
@@ -739,6 +740,8 @@ export declare class AgentClient {
739
740
  * Get the agent protocol
740
741
  */
741
742
  getProtocol(): 'mcp' | 'a2a';
743
+ /** Resolved MCP endpoint already used by this client; never performs discovery. */
744
+ getDiscoveredMcpEndpoint(): string | undefined;
742
745
  /**
743
746
  * Get the canonical base URL for this agent
744
747
  *
@@ -794,8 +794,10 @@ class AgentClient {
794
794
  /**
795
795
  * Resolve the creative wire mode used by canonical writes without sending a
796
796
  * mutation. Uses capabilities, this tool's input schema, and the client wire
797
- * pin. Older peers with insufficient evidence return `unknown` and require
798
- * an unambiguous legacy reference during projection; conflicting evidence
797
+ * pin. Older peers with insufficient evidence return `unknown`; a matching
798
+ * seller-advertised product option can establish canonical delivery for an
799
+ * individual 3.1 write. Otherwise projection requires an unambiguous legacy
800
+ * reference. Conflicting evidence
799
801
  * or unproven support with a 3.2+ buyer pin throws `CreativeFormatCapabilityError`.
800
802
  */
801
803
  async resolveCreativeFormatWireMode(taskType, options) {
@@ -821,7 +823,6 @@ class AgentClient {
821
823
  * Return the seller's declared `adcp.idempotency.replay_ttl_seconds`, or
822
824
  * throw when a v3 seller omits the (required) declaration.
823
825
  *
824
- * Returns `undefined` for v2 agents — v2 pre-dates the idempotency envelope.
825
826
  */
826
827
  async getIdempotencyReplayTtlSeconds() {
827
828
  return this.client.getIdempotencyReplayTtlSeconds();
@@ -829,7 +830,7 @@ class AgentClient {
829
830
  /**
830
831
  * Assert that the seller's capabilities corroborate this client's pinned
831
832
  * AdCP major (per `getAdcpVersion()`). Throws `VersionUnsupportedError`
832
- * otherwise. Set `ADCP_ALLOW_V2=1` to bypass.
833
+ * otherwise.
833
834
  */
834
835
  async requireSupportedMajor(taskType = "request") {
835
836
  return this.client.requireSupportedMajor(taskType);
@@ -1173,6 +1174,10 @@ class AgentClient {
1173
1174
  getProtocol() {
1174
1175
  return this.client.getProtocol();
1175
1176
  }
1177
+ /** Resolved MCP endpoint already used by this client; never performs discovery. */
1178
+ getDiscoveredMcpEndpoint() {
1179
+ return this.client.getDiscoveredMcpEndpoint();
1180
+ }
1176
1181
  /**
1177
1182
  * Get the canonical base URL for this agent
1178
1183
  *
@@ -762,8 +762,10 @@ class AgentClient {
762
762
  /**
763
763
  * Resolve the creative wire mode used by canonical writes without sending a
764
764
  * mutation. Uses capabilities, this tool's input schema, and the client wire
765
- * pin. Older peers with insufficient evidence return `unknown` and require
766
- * an unambiguous legacy reference during projection; conflicting evidence
765
+ * pin. Older peers with insufficient evidence return `unknown`; a matching
766
+ * seller-advertised product option can establish canonical delivery for an
767
+ * individual 3.1 write. Otherwise projection requires an unambiguous legacy
768
+ * reference. Conflicting evidence
767
769
  * or unproven support with a 3.2+ buyer pin throws `CreativeFormatCapabilityError`.
768
770
  */
769
771
  async resolveCreativeFormatWireMode(taskType, options) {
@@ -789,7 +791,6 @@ class AgentClient {
789
791
  * Return the seller's declared `adcp.idempotency.replay_ttl_seconds`, or
790
792
  * throw when a v3 seller omits the (required) declaration.
791
793
  *
792
- * Returns `undefined` for v2 agents — v2 pre-dates the idempotency envelope.
793
794
  */
794
795
  async getIdempotencyReplayTtlSeconds() {
795
796
  return this.client.getIdempotencyReplayTtlSeconds();
@@ -797,7 +798,7 @@ class AgentClient {
797
798
  /**
798
799
  * Assert that the seller's capabilities corroborate this client's pinned
799
800
  * AdCP major (per `getAdcpVersion()`). Throws `VersionUnsupportedError`
800
- * otherwise. Set `ADCP_ALLOW_V2=1` to bypass.
801
+ * otherwise.
801
802
  */
802
803
  async requireSupportedMajor(taskType = "request") {
803
804
  return this.client.requireSupportedMajor(taskType);
@@ -1141,6 +1142,10 @@ class AgentClient {
1141
1142
  getProtocol() {
1142
1143
  return this.client.getProtocol();
1143
1144
  }
1145
+ /** Resolved MCP endpoint already used by this client; never performs discovery. */
1146
+ getDiscoveredMcpEndpoint() {
1147
+ return this.client.getDiscoveredMcpEndpoint();
1148
+ }
1144
1149
  /**
1145
1150
  * Get the canonical base URL for this agent
1146
1151
  *