@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
@@ -86,10 +86,10 @@ function parseSignature(headerValue, expectedLabel, encoding = "legacy-base64url
86
86
  if (!rawBytes) malformed(`Signature header does not contain a byte sequence for label "${expectedLabel}"`);
87
87
  if (encoding === "rfc8941-base64") {
88
88
  if (!(0, import_content_digest.isPaddedStandardBase64)(rawBytes)) {
89
- malformed("Signature value must use padded standard Base64 for AdCP 3.2+");
89
+ malformed("Signature value must use padded standard Base64 for the selected signing profile");
90
90
  }
91
91
  } else if (!/^[A-Za-z0-9_-]+$/.test(rawBytes)) {
92
- malformed("Signature value must use unpadded Base64URL for AdCP 3.0/3.1");
92
+ malformed("Signature value must use unpadded Base64URL for the selected signing profile");
93
93
  }
94
94
  let dict;
95
95
  try {
@@ -60,10 +60,10 @@ function parseSignature(headerValue, expectedLabel, encoding = "legacy-base64url
60
60
  if (!rawBytes) malformed(`Signature header does not contain a byte sequence for label "${expectedLabel}"`);
61
61
  if (encoding === "rfc8941-base64") {
62
62
  if (!isPaddedStandardBase64(rawBytes)) {
63
- malformed("Signature value must use padded standard Base64 for AdCP 3.2+");
63
+ malformed("Signature value must use padded standard Base64 for the selected signing profile");
64
64
  }
65
65
  } else if (!/^[A-Za-z0-9_-]+$/.test(rawBytes)) {
66
- malformed("Signature value must use unpadded Base64URL for AdCP 3.0/3.1");
66
+ malformed("Signature value must use unpadded Base64URL for the selected signing profile");
67
67
  }
68
68
  let dict;
69
69
  try {
@@ -10,7 +10,7 @@
10
10
  */
11
11
  export type { SsrfDnsLookup } from '../net/index.mjs';
12
12
  export { buildResponseSignatureBase, buildSignatureBase, canonicalAuthority, canonicalMethod, canonicalTargetUri, formatSignatureParams, getHeaderValue, type RequestLike, type RequestCanonicalizationProfile, type ResponseLike, type SignatureParams, } from './canonicalize.mjs';
13
- export { computeContentDigest, contentDigestMatches, parseContentDigest } from './content-digest.mjs';
13
+ export { computeContentDigest, contentDigestMatches, parseContentDigest, type SfBinaryEncoding, } from './content-digest.mjs';
14
14
  export { requestContextFromExpress, requestContextFromFetch, requestContextFromLambda, type ExpressRequestLike, type FetchRequestLike, type LambdaRequestEvent, type RequestContextFromExpressOptions, type RequestContextFromLambdaOptions, } from './request-context.mjs';
15
15
  export { jwkToPublicKey, verifySignature, verifySignatureAsync } from './crypto.mjs';
16
16
  export { RequestSignatureError, RequestSigningErrorCodeMetadata, type RequestSignatureErrorCode, ResponseSignatureError, type ResponseSignatureErrorCode, WebhookSignatureError, type WebhookSignatureErrorCode, } from './errors.mjs';
@@ -10,7 +10,7 @@
10
10
  */
11
11
  export type { SsrfDnsLookup } from '../net';
12
12
  export { buildResponseSignatureBase, buildSignatureBase, canonicalAuthority, canonicalMethod, canonicalTargetUri, formatSignatureParams, getHeaderValue, type RequestLike, type RequestCanonicalizationProfile, type ResponseLike, type SignatureParams, } from './canonicalize';
13
- export { computeContentDigest, contentDigestMatches, parseContentDigest } from './content-digest';
13
+ export { computeContentDigest, contentDigestMatches, parseContentDigest, type SfBinaryEncoding, } from './content-digest';
14
14
  export { requestContextFromExpress, requestContextFromFetch, requestContextFromLambda, type ExpressRequestLike, type FetchRequestLike, type LambdaRequestEvent, type RequestContextFromExpressOptions, type RequestContextFromLambdaOptions, } from './request-context';
15
15
  export { jwkToPublicKey, verifySignature, verifySignatureAsync } from './crypto';
16
16
  export { RequestSignatureError, RequestSigningErrorCodeMetadata, type RequestSignatureErrorCode, ResponseSignatureError, type ResponseSignatureErrorCode, WebhookSignatureError, type WebhookSignatureErrorCode, } from './errors';
@@ -7,7 +7,11 @@ import {
7
7
  formatSignatureParams,
8
8
  getHeaderValue
9
9
  } from "./canonicalize.mjs";
10
- import { computeContentDigest, contentDigestMatches, parseContentDigest } from "./content-digest.mjs";
10
+ import {
11
+ computeContentDigest,
12
+ contentDigestMatches,
13
+ parseContentDigest
14
+ } from "./content-digest.mjs";
11
15
  import {
12
16
  requestContextFromExpress,
13
17
  requestContextFromFetch,
@@ -22,6 +22,7 @@
22
22
  * so failures can point at a specific spec clause. Numbers are 1-based to
23
23
  * match the security doc.
24
24
  */
25
+ import { type SfBinaryEncoding } from './content-digest.mjs';
25
26
  import type { JwksResolver } from './jwks.mjs';
26
27
  import { type PublisherSigningKeyPin } from './publisher-pins.mjs';
27
28
  import { type ReplayStore } from './replay.mjs';
@@ -43,6 +44,16 @@ export interface WebhookRequestLike {
43
44
  export declare const WEBHOOK_MANDATORY_COMPONENTS: ReadonlyArray<string>;
44
45
  export interface VerifyWebhookOptions {
45
46
  jwks: JwksResolver;
47
+ /**
48
+ * Trusted receiver configuration for the Signature byte sequence.
49
+ * Defaults to `legacy-base64url`, as the AdCP webhook-v1 profile requires
50
+ * throughout 3.x. Set `rfc8941-base64` only for an explicitly configured
51
+ * peer emitting standard padded Base64 (for example, a generic RFC 9421
52
+ * request signer with the webhook tag). There is no encoding fallback.
53
+ * URL canonicalization remains AdCP 3.2 in either mode; Signature encoding
54
+ * does not identify a webhook's AdCP version.
55
+ */
56
+ signatureEncoding?: SfBinaryEncoding;
46
57
  /** Applicable publishers from the verifier's own media-buy record. */
47
58
  publisherPins?: readonly PublisherSigningKeyPin[];
48
59
  /** Log the underlying request_signature_* discovery cause locally. */
@@ -22,6 +22,7 @@
22
22
  * so failures can point at a specific spec clause. Numbers are 1-based to
23
23
  * match the security doc.
24
24
  */
25
+ import { type SfBinaryEncoding } from './content-digest';
25
26
  import type { JwksResolver } from './jwks';
26
27
  import { type PublisherSigningKeyPin } from './publisher-pins';
27
28
  import { type ReplayStore } from './replay';
@@ -43,6 +44,16 @@ export interface WebhookRequestLike {
43
44
  export declare const WEBHOOK_MANDATORY_COMPONENTS: ReadonlyArray<string>;
44
45
  export interface VerifyWebhookOptions {
45
46
  jwks: JwksResolver;
47
+ /**
48
+ * Trusted receiver configuration for the Signature byte sequence.
49
+ * Defaults to `legacy-base64url`, as the AdCP webhook-v1 profile requires
50
+ * throughout 3.x. Set `rfc8941-base64` only for an explicitly configured
51
+ * peer emitting standard padded Base64 (for example, a generic RFC 9421
52
+ * request signer with the webhook tag). There is no encoding fallback.
53
+ * URL canonicalization remains AdCP 3.2 in either mode; Signature encoding
54
+ * does not identify a webhook's AdCP version.
55
+ */
56
+ signatureEncoding?: SfBinaryEncoding;
46
57
  /** Applicable publishers from the verifier's own media-buy record. */
47
58
  publisherPins?: readonly PublisherSigningKeyPin[];
48
59
  /** Log the underlying request_signature_* discovery cause locally. */
@@ -50,6 +50,7 @@ const WEBHOOK_MANDATORY_COMPONENTS = [
50
50
  "content-digest"
51
51
  ];
52
52
  async function verifyWebhookSignature(request, options) {
53
+ const signatureEncoding = resolveSignatureEncoding(options.signatureEncoding);
53
54
  const currentTime = options.now ?? (() => Date.now() / 1e3);
54
55
  const now = currentTime();
55
56
  const requiredTag = options.requiredTag ?? WEBHOOK_SIGNING_TAG;
@@ -66,12 +67,12 @@ async function verifyWebhookSignature(request, options) {
66
67
  let parsedSig;
67
68
  try {
68
69
  parsedInput = (0, import_parser.parseSignatureInput)(sigInputHeader);
69
- parsedSig = (0, import_parser.parseSignature)(sigHeader, parsedInput.label);
70
+ parsedSig = (0, import_parser.parseSignature)(sigHeader, parsedInput.label, signatureEncoding);
70
71
  } catch (err) {
71
72
  throw new import_errors.WebhookSignatureError(
72
73
  "webhook_signature_header_malformed",
73
74
  1,
74
- err instanceof Error ? err.message : String(err)
75
+ `${err instanceof Error ? err.message : String(err)} (webhook signatureEncoding="${signatureEncoding}").`
75
76
  );
76
77
  }
77
78
  requireParams(parsedInput);
@@ -239,6 +240,12 @@ async function verifyWebhookSignature(request, options) {
239
240
  verified_at: Math.floor(now)
240
241
  };
241
242
  }
243
+ function resolveSignatureEncoding(encoding = "legacy-base64url") {
244
+ if (encoding !== "legacy-base64url" && encoding !== "rfc8941-base64") {
245
+ throw new TypeError('signatureEncoding must be "legacy-base64url" or "rfc8941-base64".');
246
+ }
247
+ return encoding;
248
+ }
242
249
  function assertDelegatedOperatorAuthorizationActive(validUntil, now) {
243
250
  if (validUntil !== void 0 && (!Number.isFinite(validUntil) || now >= validUntil)) {
244
251
  throw new import_errors.WebhookSignatureError(
@@ -345,9 +352,10 @@ function isWebhookLoopbackHost(hostname) {
345
352
  return LOOPBACK_IPV4.test(normalized);
346
353
  }
347
354
  function createWebhookVerifier(options) {
355
+ const signatureEncoding = resolveSignatureEncoding(options.signatureEncoding);
348
356
  const replayStore = options.replayStore ?? new import_replay.InMemoryReplayStore();
349
357
  const revocationStore = options.revocationStore ?? new import_revocation.InMemoryRevocationStore();
350
- return (request) => verifyWebhookSignature(request, { ...options, replayStore, revocationStore });
358
+ return (request) => verifyWebhookSignature(request, { ...options, signatureEncoding, replayStore, revocationStore });
351
359
  }
352
360
  // Annotate the CommonJS export names for ESM import in node:
353
361
  0 && (module.exports = {
@@ -23,6 +23,7 @@ const WEBHOOK_MANDATORY_COMPONENTS = [
23
23
  "content-digest"
24
24
  ];
25
25
  async function verifyWebhookSignature(request, options) {
26
+ const signatureEncoding = resolveSignatureEncoding(options.signatureEncoding);
26
27
  const currentTime = options.now ?? (() => Date.now() / 1e3);
27
28
  const now = currentTime();
28
29
  const requiredTag = options.requiredTag ?? WEBHOOK_SIGNING_TAG;
@@ -39,12 +40,12 @@ async function verifyWebhookSignature(request, options) {
39
40
  let parsedSig;
40
41
  try {
41
42
  parsedInput = parseSignatureInput(sigInputHeader);
42
- parsedSig = parseSignature(sigHeader, parsedInput.label);
43
+ parsedSig = parseSignature(sigHeader, parsedInput.label, signatureEncoding);
43
44
  } catch (err) {
44
45
  throw new WebhookSignatureError(
45
46
  "webhook_signature_header_malformed",
46
47
  1,
47
- err instanceof Error ? err.message : String(err)
48
+ `${err instanceof Error ? err.message : String(err)} (webhook signatureEncoding="${signatureEncoding}").`
48
49
  );
49
50
  }
50
51
  requireParams(parsedInput);
@@ -212,6 +213,12 @@ async function verifyWebhookSignature(request, options) {
212
213
  verified_at: Math.floor(now)
213
214
  };
214
215
  }
216
+ function resolveSignatureEncoding(encoding = "legacy-base64url") {
217
+ if (encoding !== "legacy-base64url" && encoding !== "rfc8941-base64") {
218
+ throw new TypeError('signatureEncoding must be "legacy-base64url" or "rfc8941-base64".');
219
+ }
220
+ return encoding;
221
+ }
215
222
  function assertDelegatedOperatorAuthorizationActive(validUntil, now) {
216
223
  if (validUntil !== void 0 && (!Number.isFinite(validUntil) || now >= validUntil)) {
217
224
  throw new WebhookSignatureError(
@@ -318,9 +325,10 @@ function isWebhookLoopbackHost(hostname) {
318
325
  return LOOPBACK_IPV4.test(normalized);
319
326
  }
320
327
  function createWebhookVerifier(options) {
328
+ const signatureEncoding = resolveSignatureEncoding(options.signatureEncoding);
321
329
  const replayStore = options.replayStore ?? new InMemoryReplayStore();
322
330
  const revocationStore = options.revocationStore ?? new InMemoryRevocationStore();
323
- return (request) => verifyWebhookSignature(request, { ...options, replayStore, revocationStore });
331
+ return (request) => verifyWebhookSignature(request, { ...options, signatureEncoding, replayStore, revocationStore });
324
332
  }
325
333
  export {
326
334
  WEBHOOK_MANDATORY_COMPONENTS,
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __export = (target, all) => {
7
9
  for (var name in all)
@@ -15,6 +17,14 @@ var __copyProps = (to, from, except, desc) => {
15
17
  }
16
18
  return to;
17
19
  };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
18
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
29
  var verify_exports = {};
20
30
  __export(verify_exports, {
@@ -25,7 +35,6 @@ module.exports = __toCommonJS(verify_exports);
25
35
  var import_abort = require('../protocols/abort.js');
26
36
  var import_publisher_property_selector = require('../discovery/publisher-property-selector.js');
27
37
  var import_validation = require('./validation.js');
28
- var import_registry = require('../registry/index.js');
29
38
  var import_fetch_evidence = require('./fetch-evidence.js');
30
39
  var import_evaluate = require('./evaluate.js');
31
40
  var import_validation2 = require('./validation.js');
@@ -34,7 +43,8 @@ const MAX_PROPERTY_SELECTOR_EXPANSIONS = 4096;
34
43
  async function verifySupplyPath(request, options = { source: "authoritative" }) {
35
44
  const normalized = (0, import_validation2.validateSupplyPathRequest)(request);
36
45
  if (options.source === "registry") {
37
- const result = await (options.registry ?? new import_registry.RegistryClient()).verifySupplyPath(normalized);
46
+ const registry = options.registry ?? new (await import("../registry/index.js")).RegistryClient();
47
+ const result = await registry.verifySupplyPath(normalized);
38
48
  (0, import_validation2.assertRegistrySupplyPathResult)(result, normalized);
39
49
  return result;
40
50
  }
@@ -4,7 +4,6 @@ import {
4
4
  expandPublisherPropertySelector
5
5
  } from "../discovery/publisher-property-selector.mjs";
6
6
  import { domain, records, strings } from "./validation.mjs";
7
- import { RegistryClient } from "../registry/index.mjs";
8
7
  import { SupplyPathEvidenceSession } from "./fetch-evidence.mjs";
9
8
  import {
10
9
  isUnqualifiedPropertySelector,
@@ -20,7 +19,8 @@ const MAX_PROPERTY_SELECTOR_EXPANSIONS = 4096;
20
19
  async function verifySupplyPath(request, options = { source: "authoritative" }) {
21
20
  const normalized = validateSupplyPathRequest(request);
22
21
  if (options.source === "registry") {
23
- const result = await (options.registry ?? new RegistryClient()).verifySupplyPath(normalized);
22
+ const registry = options.registry ?? new (await import("../registry/index.mjs")).RegistryClient();
23
+ const result = await registry.verifySupplyPath(normalized);
24
24
  assertRegistrySupplyPathResult(result, normalized);
25
25
  return result;
26
26
  }
@@ -758,11 +758,9 @@ function inferDiscoveredServerAdcpVersion(profile, complianceVersion) {
758
758
  }
759
759
  if (profile.adcp_build_version) return profile.adcp_build_version;
760
760
  if (isLegacyPre31TypescriptSdkProfile(profile)) return "3.0";
761
- if (isLegacyV2Profile(profile)) return "v2.5";
762
761
  return void 0;
763
762
  }
764
763
  function negotiateVersionEnvelope(profile, complianceVersion) {
765
- if (isLegacyV2Profile(profile)) return "none";
766
764
  const supported = profile.adcp_supported_versions;
767
765
  if (supported?.length && supported.every(import_adcp_version_config.isPre31AdcpVersion)) return "major-only";
768
766
  if (profile.adcp_build_version && (0, import_adcp_version_config.isPre31AdcpVersion)(profile.adcp_build_version)) return "major-only";
@@ -770,12 +768,6 @@ function negotiateVersionEnvelope(profile, complianceVersion) {
770
768
  if ((0, import_adcp_version_config.isPre31AdcpVersion)(complianceVersion) && isLegacyV3Profile(profile)) return "major-only";
771
769
  return void 0;
772
770
  }
773
- function isLegacyV2Profile(profile) {
774
- if (profile.adcp_version === "v2") return true;
775
- const majors = profile.adcp_major_versions ?? [];
776
- if (majors.length > 0) return majors.includes(2) && !majors.includes(3);
777
- return !profile.tools.includes("get_adcp_capabilities");
778
- }
779
771
  function isLegacyV3Profile(profile) {
780
772
  if (profile.adcp_version === "v3") return true;
781
773
  if (profile.adcp_major_versions?.includes(3)) return true;
@@ -748,11 +748,9 @@ function inferDiscoveredServerAdcpVersion(profile, complianceVersion) {
748
748
  }
749
749
  if (profile.adcp_build_version) return profile.adcp_build_version;
750
750
  if (isLegacyPre31TypescriptSdkProfile(profile)) return "3.0";
751
- if (isLegacyV2Profile(profile)) return "v2.5";
752
751
  return void 0;
753
752
  }
754
753
  function negotiateVersionEnvelope(profile, complianceVersion) {
755
- if (isLegacyV2Profile(profile)) return "none";
756
754
  const supported = profile.adcp_supported_versions;
757
755
  if (supported?.length && supported.every(isPre31AdcpVersion)) return "major-only";
758
756
  if (profile.adcp_build_version && isPre31AdcpVersion(profile.adcp_build_version)) return "major-only";
@@ -760,12 +758,6 @@ function negotiateVersionEnvelope(profile, complianceVersion) {
760
758
  if (isPre31AdcpVersion(complianceVersion) && isLegacyV3Profile(profile)) return "major-only";
761
759
  return void 0;
762
760
  }
763
- function isLegacyV2Profile(profile) {
764
- if (profile.adcp_version === "v2") return true;
765
- const majors = profile.adcp_major_versions ?? [];
766
- if (majors.length > 0) return majors.includes(2) && !majors.includes(3);
767
- return !profile.tools.includes("get_adcp_capabilities");
768
- }
769
761
  function isLegacyV3Profile(profile) {
770
762
  if (profile.adcp_version === "v3") return true;
771
763
  if (profile.adcp_major_versions?.includes(3)) return true;
@@ -151,11 +151,22 @@ function mapStepToTestStep(stepResult) {
151
151
  }).join("; ");
152
152
  return {
153
153
  step: stepResult.title,
154
+ step_id: stepResult.step_id,
154
155
  task: stepResult.task,
155
156
  passed: stepResult.passed,
156
157
  duration_ms: stepResult.duration_ms,
157
158
  error: stepResult.error,
158
159
  details: validationDetails || void 0,
160
+ validations: stepResult.validations.map((v) => ({
161
+ ...v.id !== void 0 && { id: v.id },
162
+ check: v.check,
163
+ passed: v.passed,
164
+ ...v.severity !== void 0 && { severity: v.severity },
165
+ ...v.not_applicable !== void 0 && { not_applicable: v.not_applicable },
166
+ ...v.severity_promoted_from_advisory !== void 0 && {
167
+ severity_promoted_from_advisory: v.severity_promoted_from_advisory
168
+ }
169
+ })),
159
170
  observation_data: stepResult.response,
160
171
  warnings: stepResult.skipped ? [stepResult.skip?.detail ?? skipReasonLabel(stepResult.skip_reason) ?? "Step skipped"] : void 0,
161
172
  ...stepResult.skipped && { skipped: true },
@@ -126,11 +126,22 @@ function mapStepToTestStep(stepResult) {
126
126
  }).join("; ");
127
127
  return {
128
128
  step: stepResult.title,
129
+ step_id: stepResult.step_id,
129
130
  task: stepResult.task,
130
131
  passed: stepResult.passed,
131
132
  duration_ms: stepResult.duration_ms,
132
133
  error: stepResult.error,
133
134
  details: validationDetails || void 0,
135
+ validations: stepResult.validations.map((v) => ({
136
+ ...v.id !== void 0 && { id: v.id },
137
+ check: v.check,
138
+ passed: v.passed,
139
+ ...v.severity !== void 0 && { severity: v.severity },
140
+ ...v.not_applicable !== void 0 && { not_applicable: v.not_applicable },
141
+ ...v.severity_promoted_from_advisory !== void 0 && {
142
+ severity_promoted_from_advisory: v.severity_promoted_from_advisory
143
+ }
144
+ })),
134
145
  observation_data: stepResult.response,
135
146
  warnings: stepResult.skipped ? [stepResult.skip?.detail ?? skipReasonLabel(stepResult.skip_reason) ?? "Step skipped"] : void 0,
136
147
  ...stepResult.skipped && { skipped: true },
@@ -18,3 +18,5 @@ export { runAgainstLocalAgent } from './local-agent-runner.mjs';
18
18
  export type { LocalAgentRunResult, PerStoryboardOverride, RunAgainstLocalAgentOptions } from './local-agent-runner.mjs';
19
19
  export { registerExternalSchemaRoot, unregisterExternalSchemaRoot, withExternalSchemaRoot, withServedReleaseSchemaRoots, } from '../validation/index.mjs';
20
20
  export { runStoryboard, runStoryboardStep, applyAdcpVersionRunOptions, applyStoryboardVersionOptions, getFirstStepPreview, parseStoryboard, loadStoryboardFile, normalizeValidationOnlyTasks, VALIDATION_ONLY_TASK, applyFixtureBindingsToRequest, buildFixtureResolutionSpecs, FixtureBindingRegistry, matchesFixtureRequirements, normalizeFixtureMatchExpression, validateFixtureResolutionDeclarations, getComplianceCacheDir, loadComplianceIndex, listBundles, loadBundleStoryboards, listAllComplianceStoryboards, getComplianceStoryboardById, findBundleById, resolveBundleOrStoryboard, resolveStoryboardsForCapabilities, isComplianceVersionSupported, CapabilityResolutionError, TASK_TO_METHOD, executeStoryboardTask, expandCreativeAssetDirectives, findUnresolvedCreativeAssetDirectives, extractContext, injectContext, runValidations, resolvePath, RateLimitTripObserver, RATE_LIMIT_TRIP_CONTRACT, RATE_LIMIT_TRIP_DEFAULT_REPLAY_MAX_WAIT_SECONDS, RATE_LIMIT_TRIP_MAX_ATTEMPTS_MAX, RATE_LIMIT_TRIP_MAX_ATTEMPTS_MIN, validateRateLimitTripSpec, getSandboxEntities, getSandboxBrands, getSandboxBrand, isSandboxDomain, clearSandboxCache, registerAssertion, getAssertion, listAssertions, listDefaultAssertions, clearAssertionRegistry, resolveAssertions, type AssertionSpec, type AssertionContext, type AssertionResult, type RegisterAssertionOptions, type Storyboard, type StoryboardFixtureResolution, type FixtureResolutionStrategy, type FixtureMatchOperator, type FixtureMatchClause, type FixtureResolutionDeclaration, type ProductFixtureResolutionDeclaration, type PricingOptionFixtureResolutionDeclaration, type FixtureResolutionStatus, type FixtureResolutionRecord, type FixtureResolutionAttempt, type FixtureResolutionEvidence, type FixtureResolutionCoverageGap, type StoryboardInvariants, type StoryboardInvariantsObject, type StepInvariantsObject, type StoryboardPhase, type StoryboardStep, type RateLimitTripSpec, type StoryboardValidation, type RateLimitTripClient, type RateLimitTripFailureCode, type RateLimitTripObservation, type RateLimitTripObserverOptions, type RateLimitTripResponseSnapshot, type RateLimitTripStructuredResult, type RateLimitTripTaskOptions, type StoryboardContext, type StoryboardRunOptions, type TrustedMatchContextProviderEndpoint, type TrustedMatchContextRegistrationContext, type TrustedMatchContextRouterRunnerOptions, type TrustedMatchPublisherAuthOperation, type TrustedMatchPublisherCredentialState, type TrustedMatchPublisherAuthTls, type TrustedMatchPublisherAuthProbeConfiguration, type TrustedMatchPublisherAuthRunner, type ValidationResult, type StoryboardStepPreview, type StoryboardStepResult, type StoryboardStepHint, type StoryboardStepHintBase, type ContextValueRejectedHint, type ShapeDriftHint, type MissingRequiredFieldHint, type FormatMismatchHint, type MonotonicViolationHint, type ContextProvenanceEntry, type StoryboardPhaseResult, type StoryboardResult, type RunnerNotice, type NoticeCode, type NoticeSeverity, type AgentCapabilities, type BundleKind, type BundleRef, type CapabilityResolutionCode, type ComplianceIndex, type ComplianceIndexProtocol, type ComplianceIndexSpecialism, type ResolveOptions, type ResolvedBundle, type ResolvedStoryboards, type SandboxBrand, type SandboxAgent, type SandboxEntities, type BrandJson, type AdagentsJson, gradeOAuthMetadataGraph, gradeOAuthMetadataGraphVector, loadOAuthMetadataGraphVectors, normalizeOAuthResourceForComparison, redactOAuthUrlForOutput, type GradeOAuthMetadataGraphOptions, type OAuthMetadataGraphErrorCode, type OAuthMetadataGraphFinding, type OAuthMetadataGraphGrade, type OAuthMetadataGraphObservation, type OAuthMetadataGraphVector, type OAuthMetadataGraphVectorCorpus, BrandJsonSchema, AdagentsJsonSchema, MCP_SESSION_PROBE_TASK, } from './storyboard/index.mjs';
21
+ export { resolveCreativeBuildProbe, validateCreativeBuildProbeSpec } from './storyboard/index.mjs';
22
+ export type { CreativeBuildProbeSpec, CreativeBuildProbeInputFixture, CreativeBuildProbeResolution, } from './storyboard/index.mjs';
@@ -18,3 +18,5 @@ export { runAgainstLocalAgent } from './local-agent-runner';
18
18
  export type { LocalAgentRunResult, PerStoryboardOverride, RunAgainstLocalAgentOptions } from './local-agent-runner';
19
19
  export { registerExternalSchemaRoot, unregisterExternalSchemaRoot, withExternalSchemaRoot, withServedReleaseSchemaRoots, } from '../validation';
20
20
  export { runStoryboard, runStoryboardStep, applyAdcpVersionRunOptions, applyStoryboardVersionOptions, getFirstStepPreview, parseStoryboard, loadStoryboardFile, normalizeValidationOnlyTasks, VALIDATION_ONLY_TASK, applyFixtureBindingsToRequest, buildFixtureResolutionSpecs, FixtureBindingRegistry, matchesFixtureRequirements, normalizeFixtureMatchExpression, validateFixtureResolutionDeclarations, getComplianceCacheDir, loadComplianceIndex, listBundles, loadBundleStoryboards, listAllComplianceStoryboards, getComplianceStoryboardById, findBundleById, resolveBundleOrStoryboard, resolveStoryboardsForCapabilities, isComplianceVersionSupported, CapabilityResolutionError, TASK_TO_METHOD, executeStoryboardTask, expandCreativeAssetDirectives, findUnresolvedCreativeAssetDirectives, extractContext, injectContext, runValidations, resolvePath, RateLimitTripObserver, RATE_LIMIT_TRIP_CONTRACT, RATE_LIMIT_TRIP_DEFAULT_REPLAY_MAX_WAIT_SECONDS, RATE_LIMIT_TRIP_MAX_ATTEMPTS_MAX, RATE_LIMIT_TRIP_MAX_ATTEMPTS_MIN, validateRateLimitTripSpec, getSandboxEntities, getSandboxBrands, getSandboxBrand, isSandboxDomain, clearSandboxCache, registerAssertion, getAssertion, listAssertions, listDefaultAssertions, clearAssertionRegistry, resolveAssertions, type AssertionSpec, type AssertionContext, type AssertionResult, type RegisterAssertionOptions, type Storyboard, type StoryboardFixtureResolution, type FixtureResolutionStrategy, type FixtureMatchOperator, type FixtureMatchClause, type FixtureResolutionDeclaration, type ProductFixtureResolutionDeclaration, type PricingOptionFixtureResolutionDeclaration, type FixtureResolutionStatus, type FixtureResolutionRecord, type FixtureResolutionAttempt, type FixtureResolutionEvidence, type FixtureResolutionCoverageGap, type StoryboardInvariants, type StoryboardInvariantsObject, type StepInvariantsObject, type StoryboardPhase, type StoryboardStep, type RateLimitTripSpec, type StoryboardValidation, type RateLimitTripClient, type RateLimitTripFailureCode, type RateLimitTripObservation, type RateLimitTripObserverOptions, type RateLimitTripResponseSnapshot, type RateLimitTripStructuredResult, type RateLimitTripTaskOptions, type StoryboardContext, type StoryboardRunOptions, type TrustedMatchContextProviderEndpoint, type TrustedMatchContextRegistrationContext, type TrustedMatchContextRouterRunnerOptions, type TrustedMatchPublisherAuthOperation, type TrustedMatchPublisherCredentialState, type TrustedMatchPublisherAuthTls, type TrustedMatchPublisherAuthProbeConfiguration, type TrustedMatchPublisherAuthRunner, type ValidationResult, type StoryboardStepPreview, type StoryboardStepResult, type StoryboardStepHint, type StoryboardStepHintBase, type ContextValueRejectedHint, type ShapeDriftHint, type MissingRequiredFieldHint, type FormatMismatchHint, type MonotonicViolationHint, type ContextProvenanceEntry, type StoryboardPhaseResult, type StoryboardResult, type RunnerNotice, type NoticeCode, type NoticeSeverity, type AgentCapabilities, type BundleKind, type BundleRef, type CapabilityResolutionCode, type ComplianceIndex, type ComplianceIndexProtocol, type ComplianceIndexSpecialism, type ResolveOptions, type ResolvedBundle, type ResolvedStoryboards, type SandboxBrand, type SandboxAgent, type SandboxEntities, type BrandJson, type AdagentsJson, gradeOAuthMetadataGraph, gradeOAuthMetadataGraphVector, loadOAuthMetadataGraphVectors, normalizeOAuthResourceForComparison, redactOAuthUrlForOutput, type GradeOAuthMetadataGraphOptions, type OAuthMetadataGraphErrorCode, type OAuthMetadataGraphFinding, type OAuthMetadataGraphGrade, type OAuthMetadataGraphObservation, type OAuthMetadataGraphVector, type OAuthMetadataGraphVectorCorpus, BrandJsonSchema, AdagentsJsonSchema, MCP_SESSION_PROBE_TASK, } from './storyboard';
21
+ export { resolveCreativeBuildProbe, validateCreativeBuildProbeSpec } from './storyboard';
22
+ export type { CreativeBuildProbeSpec, CreativeBuildProbeInputFixture, CreativeBuildProbeResolution, } from './storyboard';
@@ -139,6 +139,7 @@ __export(testing_exports, {
139
139
  resolveAccountForMediaBuy: () => import_agent_tester.resolveAccountForMediaBuy,
140
140
  resolveAssertions: () => import_storyboard.resolveAssertions,
141
141
  resolveBundleOrStoryboard: () => import_storyboard.resolveBundleOrStoryboard,
142
+ resolveCreativeBuildProbe: () => import_storyboard2.resolveCreativeBuildProbe,
142
143
  resolvePath: () => import_storyboard.resolvePath,
143
144
  resolveStoryboardsForCapabilities: () => import_storyboard.resolveStoryboardsForCapabilities,
144
145
  runAgainstLocalAgent: () => import_local_agent_runner.runAgainstLocalAgent,
@@ -190,6 +191,7 @@ __export(testing_exports, {
190
191
  testTerminalStateEnforcement: () => import_agent_tester.testTerminalStateEnforcement,
191
192
  testValidation: () => import_agent_tester.testValidation,
192
193
  unregisterExternalSchemaRoot: () => import_validation.unregisterExternalSchemaRoot,
194
+ validateCreativeBuildProbeSpec: () => import_storyboard2.validateCreativeBuildProbeSpec,
193
195
  validateFixtureResolutionDeclarations: () => import_storyboard.validateFixtureResolutionDeclarations,
194
196
  validateRateLimitTripSpec: () => import_storyboard.validateRateLimitTripSpec,
195
197
  withExternalSchemaRoot: () => import_validation.withExternalSchemaRoot,
@@ -209,6 +211,7 @@ var import_test_controller_bridge = require('../server/test-controller-bridge.js
209
211
  var import_local_agent_runner = require('./local-agent-runner.js');
210
212
  var import_validation = require('../validation/index.js');
211
213
  var import_storyboard = require('./storyboard/index.js');
214
+ var import_storyboard2 = require('./storyboard/index.js');
212
215
  // Annotate the CommonJS export names for ESM import in node:
213
216
  0 && (module.exports = {
214
217
  AdagentsJsonSchema,
@@ -332,6 +335,7 @@ var import_storyboard = require('./storyboard/index.js');
332
335
  resolveAccountForMediaBuy,
333
336
  resolveAssertions,
334
337
  resolveBundleOrStoryboard,
338
+ resolveCreativeBuildProbe,
335
339
  resolvePath,
336
340
  resolveStoryboardsForCapabilities,
337
341
  runAgainstLocalAgent,
@@ -383,6 +387,7 @@ var import_storyboard = require('./storyboard/index.js');
383
387
  testTerminalStateEnforcement,
384
388
  testValidation,
385
389
  unregisterExternalSchemaRoot,
390
+ validateCreativeBuildProbeSpec,
386
391
  validateFixtureResolutionDeclarations,
387
392
  validateRateLimitTripSpec,
388
393
  withExternalSchemaRoot,
@@ -189,6 +189,7 @@ import {
189
189
  AdagentsJsonSchema,
190
190
  MCP_SESSION_PROBE_TASK
191
191
  } from "./storyboard/index.mjs";
192
+ import { resolveCreativeBuildProbe, validateCreativeBuildProbeSpec } from "./storyboard/index.mjs";
192
193
  export {
193
194
  AdagentsJsonSchema,
194
195
  BrandJsonSchema,
@@ -311,6 +312,7 @@ export {
311
312
  resolveAccountForMediaBuy,
312
313
  resolveAssertions,
313
314
  resolveBundleOrStoryboard,
315
+ resolveCreativeBuildProbe,
314
316
  resolvePath,
315
317
  resolveStoryboardsForCapabilities,
316
318
  runAgainstLocalAgent,
@@ -362,6 +364,7 @@ export {
362
364
  testTerminalStateEnforcement,
363
365
  testValidation,
364
366
  unregisterExternalSchemaRoot,
367
+ validateCreativeBuildProbeSpec,
365
368
  validateFixtureResolutionDeclarations,
366
369
  validateRateLimitTripSpec,
367
370
  withExternalSchemaRoot,
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Tests agent capability discovery including:
5
5
  * - get_adcp_capabilities (v3 agents)
6
- * - Synthetic capability detection (v2 agents)
6
+ * - Rejection of agents missing AdCP 3 capability discovery
7
7
  * - Protocol/tool cross-validation
8
8
  */
9
9
  import type { TestOptions, TestStepResult, AgentProfile } from '../types.mjs';
@@ -14,7 +14,7 @@ import type { TestOptions, TestStepResult, AgentProfile } from '../types.mjs';
14
14
  * 1. Discover agent profile (tools list)
15
15
  * 2. If get_adcp_capabilities exists, call it and validate response
16
16
  * 3. Cross-check reported protocols against available tools
17
- * 4. For v2 agents, build synthetic capabilities and note v3 upgrade path
17
+ * 4. Reject agents without AdCP 3 discovery
18
18
  */
19
19
  export declare function testCapabilityDiscovery(agentUrl: string, options: TestOptions): Promise<{
20
20
  steps: TestStepResult[];
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Tests agent capability discovery including:
5
5
  * - get_adcp_capabilities (v3 agents)
6
- * - Synthetic capability detection (v2 agents)
6
+ * - Rejection of agents missing AdCP 3 capability discovery
7
7
  * - Protocol/tool cross-validation
8
8
  */
9
9
  import type { TestOptions, TestStepResult, AgentProfile } from '../types';
@@ -14,7 +14,7 @@ import type { TestOptions, TestStepResult, AgentProfile } from '../types';
14
14
  * 1. Discover agent profile (tools list)
15
15
  * 2. If get_adcp_capabilities exists, call it and validate response
16
16
  * 3. Cross-check reported protocols against available tools
17
- * 4. For v2 agents, build synthetic capabilities and note v3 upgrade path
17
+ * 4. Reject agents without AdCP 3 discovery
18
18
  */
19
19
  export declare function testCapabilityDiscovery(agentUrl: string, options: TestOptions): Promise<{
20
20
  steps: TestStepResult[];
@@ -72,8 +72,8 @@ async function testCapabilityDiscovery(agentUrl, options) {
72
72
  step.error = result.error || "get_adcp_capabilities failed";
73
73
  steps.push(step);
74
74
  const toolInfos = profile.tools.map((name) => ({ name }));
75
- capabilities = (0, import_capabilities.buildSyntheticCapabilities)(toolInfos);
76
- profile.adcp_version = "v2";
75
+ capabilities = (0, import_capabilities.buildSyntheticV3Capabilities)(toolInfos);
76
+ profile.adcp_version = "v3";
77
77
  profile.supported_protocols = capabilities.protocols;
78
78
  steps.push({
79
79
  step: "Fallback to synthetic capabilities",
@@ -83,54 +83,21 @@ async function testCapabilityDiscovery(agentUrl, options) {
83
83
  });
84
84
  } else {
85
85
  const toolInfos = profile.tools.map((name) => ({ name }));
86
- capabilities = (0, import_capabilities.buildSyntheticCapabilities)(toolInfos);
87
- profile.adcp_version = "v2";
86
+ capabilities = (0, import_capabilities.buildSyntheticV3Capabilities)(toolInfos);
87
+ profile.adcp_version = "v3";
88
88
  profile.supported_protocols = capabilities.protocols;
89
89
  step.passed = false;
90
90
  step.error = "get_adcp_capabilities returned no data";
91
91
  steps.push(step);
92
92
  }
93
93
  } else {
94
- const toolInfos = profile.tools.map((name) => ({ name }));
95
- capabilities = (0, import_capabilities.buildSyntheticCapabilities)(toolInfos);
96
- profile.adcp_version = "v2";
97
- profile.supported_protocols = capabilities.protocols;
98
- profile.supports_governance = capabilities.protocols.includes("governance");
99
- profile.supports_si = capabilities.protocols.includes("sponsored_intelligence");
100
94
  steps.push({
101
- step: "Build synthetic capabilities (v2)",
102
- task: void 0,
103
- passed: true,
95
+ step: "Require AdCP 3 capability discovery",
96
+ passed: false,
104
97
  duration_ms: 0,
105
- details: `Agent does not support get_adcp_capabilities. Detected ${capabilities.protocols.length} protocol(s) from tools.`,
106
- response_preview: JSON.stringify(
107
- {
108
- version: capabilities.version,
109
- protocols: capabilities.protocols,
110
- features: capabilities.features,
111
- _synthetic: true
112
- },
113
- null,
114
- 2
115
- )
98
+ error: "Agent does not advertise get_adcp_capabilities. AdCP 2 reached end of life on 2026-08-01; upgrade the agent to AdCP 3."
116
99
  });
117
- const v3ToolsPresent = [
118
- ...import_capabilities.GOVERNANCE_TOOLS,
119
- ...import_capabilities.SPONSORED_INTELLIGENCE_TOOLS,
120
- ...import_capabilities.TRUSTED_MATCH_TOOLS,
121
- ...import_capabilities.COMPLIANCE_TOOLS
122
- ].filter((t) => profile.tools.includes(t));
123
- if (v3ToolsPresent.length > 0) {
124
- steps.push({
125
- step: "v3 upgrade potential detected",
126
- passed: true,
127
- duration_ms: 0,
128
- details: `Agent has ${v3ToolsPresent.length} v3 tool(s) but missing get_adcp_capabilities`,
129
- warnings: [
130
- `Consider implementing get_adcp_capabilities for better protocol discovery. v3 tools detected: ${v3ToolsPresent.join(", ")}`
131
- ]
132
- });
133
- }
100
+ return { steps, profile };
134
101
  }
135
102
  const { steps: crossValidationSteps } = crossValidateProtocolsAndTools(capabilities, profile.tools);
136
103
  steps.push(...crossValidationSteps);