@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
@@ -62,6 +62,7 @@ var import_node_crypto = require("node:crypto");
62
62
  var import_node_fs = require("node:fs");
63
63
  var import_node_path = require("node:path");
64
64
  var import_account_policy = require('./account-policy.js');
65
+ var import_creative_build_probe = require('./creative-build-probe.js');
65
66
  var import_client = require('../client.js');
66
67
  var import_protocols = require('../../protocols/index.js');
67
68
  var import_rawResponseCapture = require('../../protocols/rawResponseCapture.js');
@@ -76,6 +77,7 @@ var import_parallel_dispatch = require('./parallel-dispatch.js');
76
77
  var import_path = require('./path.js');
77
78
  var import_rate_limit_trip = require('./rate-limit-trip.js');
78
79
  var import_redact_secrets = require('../../utils/redact-secrets.js');
80
+ var import_property_list_reference = require('./property-list-reference.js');
79
81
  var import_response_unwrapper = require('../../utils/response-unwrapper.js');
80
82
  var import_envelope_status_compat = require('../../utils/envelope-status-compat.js');
81
83
  var import_test_controller = require('../test-controller.js');
@@ -761,38 +763,48 @@ function filterResponseHeaders(headers) {
761
763
  async function runStoryboard(agentUrlOrUrls, storyboard, options = {}) {
762
764
  options = applyReusableProfileOptions(options);
763
765
  if ((0, import_client.hasTestClientScope)() && !options._discoveryPass) options = { ...options, _discoveryPass: {} };
764
- return (0, import_protocols.withMCPConnectionScope)(
765
- async () => {
766
- options = applyStoryboardVersionOptions(storyboard, options);
767
- options = (0, import_functional_dispatch.applyFunctionalRequestSigning)(options, {
768
- ...options.complianceDir && { complianceDir: options.complianceDir },
769
- ...options.adcpVersion && { version: options.adcpVersion }
770
- });
771
- options = (0, import_test_kit.resolveDeclaredTestKit)(storyboard, options);
772
- options = (0, import_native_a2a_compliance.applyNativeA2AComplianceTransportOptions)(options);
773
- if ((0, import_client.hasTestClientScope)() && options._client && !options.agents) {
774
- const resolution = (0, import_client.getOrCreateClientResolution)(
775
- typeof agentUrlOrUrls === "string" ? agentUrlOrUrls : agentUrlOrUrls[0],
776
- options
766
+ return (0, import_property_list_reference.withPropertyListCredentialRedaction)(
767
+ () => (0, import_protocols.withMCPConnectionScope)(
768
+ async () => {
769
+ options = applyStoryboardVersionOptions(storyboard, options);
770
+ options = (0, import_functional_dispatch.applyFunctionalRequestSigning)(options, {
771
+ ...options.complianceDir && { complianceDir: options.complianceDir },
772
+ ...options.adcpVersion && { version: options.adcpVersion }
773
+ });
774
+ options = (0, import_test_kit.resolveDeclaredTestKit)(storyboard, options);
775
+ options = (0, import_native_a2a_compliance.applyNativeA2AComplianceTransportOptions)(options);
776
+ if (storyboard.requires?.[0] === "property_list_reference_runner" && storyboardCapabilityPredicates(storyboard).length === 0 && propertyListReferenceNeedsMcp(options)) {
777
+ return buildRequirementUnmetResult(
778
+ Array.isArray(agentUrlOrUrls) ? agentUrlOrUrls : [agentUrlOrUrls],
779
+ storyboard,
780
+ "property_list_reference_runner",
781
+ "Credential-isolated property-list references currently require MCP; A2A probe coverage is unavailable."
782
+ );
783
+ }
784
+ if ((0, import_client.hasTestClientScope)() && options._client && !options.agents) {
785
+ const resolution = (0, import_client.getOrCreateClientResolution)(
786
+ typeof agentUrlOrUrls === "string" ? agentUrlOrUrls : agentUrlOrUrls[0],
787
+ options
788
+ );
789
+ const discovered = await (0, import_client.getOrDiscoverProfile)(resolution.client, options);
790
+ options = {
791
+ ...options,
792
+ _profile: discovered.step.passed ? discovered.profile : void 0,
793
+ agentTools: discovered.step.passed ? discovered.profile.tools : void 0
794
+ };
795
+ }
796
+ const schemaRoot = getRunSchemaRoot(options);
797
+ const runBody = () => (0, import_schema_loader.withServedReleaseSchemaRoots)(
798
+ options.servedReleaseSchemaRoots,
799
+ () => runStoryboardBody(agentUrlOrUrls, storyboard, options)
777
800
  );
778
- const discovered = await (0, import_client.getOrDiscoverProfile)(resolution.client, options);
779
- options = {
780
- ...options,
781
- _profile: discovered.step.passed ? discovered.profile : void 0,
782
- agentTools: discovered.step.passed ? discovered.profile.tools : void 0
783
- };
784
- }
785
- const schemaRoot = getRunSchemaRoot(options);
786
- const runBody = () => (0, import_schema_loader.withServedReleaseSchemaRoots)(
787
- options.servedReleaseSchemaRoots,
788
- () => runStoryboardBody(agentUrlOrUrls, storyboard, options)
789
- );
790
- if (schemaRoot) {
791
- return await (0, import_schema_loader.withExternalSchemaRoot)(schemaRoot.adcpVersion, schemaRoot.schemaRoot, runBody);
792
- }
793
- return await runBody();
794
- },
795
- { isolate: !(0, import_client.hasTestClientScope)() }
801
+ if (schemaRoot) {
802
+ return await (0, import_schema_loader.withExternalSchemaRoot)(schemaRoot.adcpVersion, schemaRoot.schemaRoot, runBody);
803
+ }
804
+ return await runBody();
805
+ },
806
+ { isolate: !(0, import_client.hasTestClientScope)() }
807
+ )
796
808
  );
797
809
  }
798
810
  async function runStoryboardBody(agentUrlOrUrls, storyboard, options) {
@@ -872,6 +884,7 @@ async function runStoryboardBody(agentUrlOrUrls, storyboard, options) {
872
884
  'runStoryboard: webhook_receiver is incompatible with multi_instance_strategy: "multi-pass". Each pass would bind a fresh receiver URL, so agents caching the pass-1 URL would deliver to a dead port in pass 2. Use round-robin when the storyboard needs a webhook receiver, or run multi-pass on a storyboard without webhook observation.'
873
885
  );
874
886
  }
887
+ if (storyboard.creative_build_probe) return executeStoryboardPass(agentUrls, storyboard, options, 0);
875
888
  return runMultiPass(agentUrls, storyboard, options);
876
889
  }
877
890
  if (options.agents) {
@@ -1024,6 +1037,7 @@ const REQUIREMENT_TO_SKIP_REASON = {
1024
1037
  webhook_replay_receiver: "not_applicable",
1025
1038
  trusted_match_context_router_runner: "not_applicable",
1026
1039
  trusted_match_publisher_auth_runner: "requirement_unmet",
1040
+ property_list_reference_runner: "requirement_unmet",
1027
1041
  request_signer: "not_applicable",
1028
1042
  multi_agent: "requirement_unmet"
1029
1043
  };
@@ -1130,6 +1144,9 @@ function buildRequiredAnyOfToolsMissingResult(agentUrls, storyboard, detail) {
1130
1144
  notices: []
1131
1145
  };
1132
1146
  }
1147
+ function propertyListReferenceNeedsMcp(options) {
1148
+ return options.agents ? Object.values(options.agents).some((agent) => (agent.transport ?? options.protocol) === "a2a") : options.protocol === "a2a";
1149
+ }
1133
1150
  async function checkRequires(requires, storyboard, options, profile, precomputed) {
1134
1151
  let preparedPublisherAuthProbes = getPreparedTrustedMatchPublisherAuth(options);
1135
1152
  for (const requirement of requires) {
@@ -1168,6 +1185,15 @@ async function checkRequires(requires, storyboard, options, profile, precomputed
1168
1185
  }
1169
1186
  case "real_wire":
1170
1187
  break;
1188
+ case "property_list_reference_runner": {
1189
+ if (propertyListReferenceNeedsMcp(options)) {
1190
+ return {
1191
+ requirement,
1192
+ detail: "Credential-isolated property-list references currently require MCP; A2A probe coverage is unavailable."
1193
+ };
1194
+ }
1195
+ break;
1196
+ }
1171
1197
  case "webhook_receiver": {
1172
1198
  if (options.webhook_receiver === void 0) {
1173
1199
  return {
@@ -1457,7 +1483,7 @@ function collectCapabilityNotices(storyboard, profile) {
1457
1483
  if (requestSigning?.["supported"] !== true) {
1458
1484
  notices.push({
1459
1485
  severity: "future_required",
1460
- code: "request_signing.required",
1486
+ code: "request_signing_required_in_4_0",
1461
1487
  message: "RFC 9421 request signing (`request_signing.supported: true`) is not advertised. Required for spend-committing operations in AdCP 4.0 \u2014 declare the capability and pre-register the runner compliance test keypair before the 4.0 cut.",
1462
1488
  effective_version: "4.0",
1463
1489
  capability_path: "request_signing.supported",
@@ -1478,7 +1504,7 @@ function collectCapabilityNotices(storyboard, profile) {
1478
1504
  if (webhookSigning?.["legacy_hmac_fallback"] === true) {
1479
1505
  notices.push({
1480
1506
  severity: "deprecation",
1481
- code: "webhook_signing.legacy_hmac_fallback.removed",
1507
+ code: "legacy_hmac_fallback_removed_in_4_0",
1482
1508
  message: "`webhook_signing.legacy_hmac_fallback: true` is deprecated and removed in AdCP 4.0. Migrate webhook signature verification to RFC 9421 before the 4.0 cut.",
1483
1509
  effective_version: "4.0",
1484
1510
  capability_path: "webhook_signing.legacy_hmac_fallback",
@@ -1998,16 +2024,118 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
1998
2024
  }
1999
2025
  let seedingPhaseResult = null;
2000
2026
  let seedingFailed = false;
2027
+ let creativeBuildCatalogFailed = false;
2001
2028
  let seedingMissingController = false;
2002
2029
  let seedingUnsupported = false;
2003
2030
  let fixtureUnsatisfied = false;
2004
2031
  let fixtureBindings;
2005
2032
  let fixtureResolutionRecords;
2006
2033
  let fixtureCoverageGap;
2034
+ if (storyboard.creative_build_probe && !skipControllerSeedingForPhaseGates) {
2035
+ let resolution;
2036
+ try {
2037
+ resolution = routingContext || isMultiInstance ? {
2038
+ status: "unsatisfied",
2039
+ detail: `fixture_unsatisfied: creative_format:${storyboard.creative_build_probe.context_prefix}: resolve an independent fixture for each routed or replicated agent in a single-agent run`
2040
+ } : (0, import_creative_build_probe.prepareCreativeBuildProbe)(
2041
+ profile?.raw_capabilities,
2042
+ storyboard.creative_build_probe,
2043
+ options.test_kit,
2044
+ options.adcpVersion
2045
+ );
2046
+ } catch (error) {
2047
+ await Promise.allSettled([
2048
+ ...webhookReceiver ? [webhookReceiver.close()] : [],
2049
+ ...!callerOwnsClients ? [(0, import_protocols.closeScopedConnections)(options.protocol)] : []
2050
+ ]);
2051
+ throw error;
2052
+ }
2053
+ const handle = storyboard.creative_build_probe.context_prefix;
2054
+ fixtureResolutionRecords = [
2055
+ {
2056
+ fixture_type: "creative_format",
2057
+ handle,
2058
+ requirements: resolution.status === "resolved" ? resolution.requirements : [],
2059
+ status: resolution.status,
2060
+ ...resolution.status === "resolved" ? {
2061
+ seller_ids: resolution.capabilityId !== void 0 ? { capability_id: resolution.capabilityId } : { format_id: resolution.formatId }
2062
+ } : {},
2063
+ strategy: "discover",
2064
+ strategies_attempted: [
2065
+ {
2066
+ strategy: "discover",
2067
+ disposition: resolution.status === "unsatisfied" ? "unavailable" : resolution.status,
2068
+ detail: resolution.status === "resolved" ? `Bound build route using ${resolution.source} input` : resolution.detail
2069
+ }
2070
+ ]
2071
+ }
2072
+ ];
2073
+ if (resolution.status !== "resolved") {
2074
+ const noPhasesIndex = phaseResults.findIndex((phase) => phase.phase_id === "no_phases");
2075
+ if (noPhasesIndex >= 0) {
2076
+ skippedCount -= phaseResults[noPhasesIndex].steps.filter((step) => step.skipped).length;
2077
+ phaseResults.splice(noPhasesIndex, 1);
2078
+ }
2079
+ }
2080
+ if (resolution.status === "failed") {
2081
+ seedingFailed = true;
2082
+ creativeBuildCatalogFailed = true;
2083
+ failedCount += 1;
2084
+ seedingPhaseResult = {
2085
+ phase_id: "fixture_resolution",
2086
+ phase_title: "Creative build fixture resolution",
2087
+ passed: false,
2088
+ duration_ms: 0,
2089
+ steps: [
2090
+ {
2091
+ storyboard_id: storyboard.id,
2092
+ phase_id: "fixture_resolution",
2093
+ step_id: "creative_build_catalog",
2094
+ title: "Validate advertised creative build catalog",
2095
+ task: "get_adcp_capabilities",
2096
+ passed: false,
2097
+ duration_ms: 0,
2098
+ context: {},
2099
+ extraction: { path: "none" },
2100
+ validations: [
2101
+ {
2102
+ check: "creative_build_probe_catalog",
2103
+ passed: false,
2104
+ description: "Advertised creative catalog satisfies its format and routing contract",
2105
+ error: resolution.detail
2106
+ }
2107
+ ]
2108
+ }
2109
+ ]
2110
+ };
2111
+ } else if (resolution.status === "resolved") {
2112
+ for (const key of [
2113
+ "capability_id",
2114
+ "target_format_id",
2115
+ "message",
2116
+ "creative_manifest",
2117
+ "creative_id",
2118
+ "transformer_id",
2119
+ "config"
2120
+ ]) {
2121
+ delete context[`${handle}_${key}`];
2122
+ }
2123
+ Object.assign(context, resolution.context);
2124
+ options = { ...options, contracts: [.../* @__PURE__ */ new Set([...options.contracts ?? [], "creative_build_probe_runner"])] };
2125
+ } else {
2126
+ fixtureUnsatisfied = true;
2127
+ if (preSeeded === void 0 || preSeeded.attach) skippedCount += 1;
2128
+ fixtureCoverageGap = {
2129
+ reason: "fixture_unsatisfied",
2130
+ detail: resolution.detail,
2131
+ fixtures: [{ fixture_type: "creative_format", handle, requirements: [] }]
2132
+ };
2133
+ }
2134
+ }
2007
2135
  {
2008
2136
  let seeding;
2009
2137
  try {
2010
- seeding = creativeAssetFixtureGap || skipControllerSeedingForPhaseGates ? null : preSeeded !== void 0 ? preSeeded.result : await (0, import_seeding.runControllerSeeding)(
2138
+ seeding = creativeAssetFixtureGap || fixtureUnsatisfied || seedingFailed || skipControllerSeedingForPhaseGates ? null : preSeeded !== void 0 ? preSeeded.result : await (0, import_seeding.runControllerSeeding)(
2011
2139
  clients[0],
2012
2140
  storyboard,
2013
2141
  options,
@@ -2068,7 +2196,7 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
2068
2196
  }
2069
2197
  }
2070
2198
  fixtureBindings = seeding.bindings;
2071
- fixtureResolutionRecords = seeding.resolutionRecords;
2199
+ fixtureResolutionRecords = fixtureResolutionRecords ? [...fixtureResolutionRecords, ...seeding.resolutionRecords ?? []] : seeding.resolutionRecords;
2072
2200
  fixtureUnsatisfied = seeding.fixtureUnsatisfied === true && seeding.failedCount === 0;
2073
2201
  if (fixtureUnsatisfied) {
2074
2202
  const noPhasesIndex = phaseResults.findIndex((phase) => phase.phase_id === "no_phases");
@@ -2310,6 +2438,12 @@ async function executeStoryboardPass(agentUrls, storyboard, options, dispatchOff
2310
2438
  } : seedingUnsupported ? {
2311
2439
  skip_reason: "fixture_seed_unsupported",
2312
2440
  skip: { reason: "not_applicable", detail: FIXTURE_SEED_UNSUPPORTED_DETAIL }
2441
+ } : creativeBuildCatalogFailed ? {
2442
+ skip_reason: "prerequisite_failed",
2443
+ skip: {
2444
+ reason: "prerequisite_failed",
2445
+ detail: "Creative build catalog validation failed in fixture_resolution.creative_build_catalog."
2446
+ }
2313
2447
  } : seedingFailed ? {
2314
2448
  skip_reason: "controller_seeding_failed",
2315
2449
  skip: { reason: "prerequisite_failed", detail: CONTROLLER_SEEDING_FAILED_DETAIL }
@@ -3105,32 +3239,57 @@ function summarizeStrictValidation(phases) {
3105
3239
  }
3106
3240
  async function runStoryboardStep(agentUrl, storyboard, stepId, options = {}) {
3107
3241
  options = applyReusableProfileOptions(options);
3108
- return (0, import_protocols.withMCPConnectionScope)(
3109
- async () => {
3110
- storyboard = (0, import_loader.normalizeValidationOnlyTasks)(storyboard);
3111
- (0, import_loader.validateStoryboardShape)(storyboard);
3112
- options = applyStoryboardVersionOptions(storyboard, options);
3113
- options = (0, import_functional_dispatch.applyFunctionalRequestSigning)(options, {
3114
- ...options.complianceDir && { complianceDir: options.complianceDir },
3115
- ...options.adcpVersion && { version: options.adcpVersion }
3116
- });
3117
- options = (0, import_test_kit.resolveDeclaredTestKit)(storyboard, options);
3118
- options = (0, import_native_a2a_compliance.applyNativeA2AComplianceTransportOptions)(options);
3119
- const schemaRoot = getRunSchemaRoot(options);
3120
- const runBody = () => (0, import_schema_loader.withServedReleaseSchemaRoots)(
3121
- options.servedReleaseSchemaRoots,
3122
- () => runStoryboardStepBody(agentUrl, storyboard, stepId, options)
3123
- );
3124
- if (schemaRoot) {
3125
- return await (0, import_schema_loader.withExternalSchemaRoot)(schemaRoot.adcpVersion, schemaRoot.schemaRoot, runBody);
3126
- }
3127
- return await runBody();
3128
- },
3129
- { isolate: !(0, import_client.hasTestClientScope)() }
3242
+ return (0, import_property_list_reference.withPropertyListCredentialRedaction)(
3243
+ () => (0, import_protocols.withMCPConnectionScope)(
3244
+ async () => {
3245
+ storyboard = (0, import_loader.normalizeValidationOnlyTasks)(storyboard);
3246
+ (0, import_loader.validateStoryboardShape)(storyboard);
3247
+ options = applyStoryboardVersionOptions(storyboard, options);
3248
+ options = (0, import_functional_dispatch.applyFunctionalRequestSigning)(options, {
3249
+ ...options.complianceDir && { complianceDir: options.complianceDir },
3250
+ ...options.adcpVersion && { version: options.adcpVersion }
3251
+ });
3252
+ options = (0, import_test_kit.resolveDeclaredTestKit)(storyboard, options);
3253
+ options = (0, import_native_a2a_compliance.applyNativeA2AComplianceTransportOptions)(options);
3254
+ const schemaRoot = getRunSchemaRoot(options);
3255
+ const runBody = () => (0, import_schema_loader.withServedReleaseSchemaRoots)(
3256
+ options.servedReleaseSchemaRoots,
3257
+ () => runStoryboardStepBody(agentUrl, storyboard, stepId, options)
3258
+ );
3259
+ if (schemaRoot) {
3260
+ return await (0, import_schema_loader.withExternalSchemaRoot)(schemaRoot.adcpVersion, schemaRoot.schemaRoot, runBody);
3261
+ }
3262
+ return await runBody();
3263
+ },
3264
+ { isolate: !(0, import_client.hasTestClientScope)() }
3265
+ )
3130
3266
  );
3131
3267
  }
3132
3268
  async function runStoryboardStepBody(agentUrl, storyboard, stepId, options) {
3133
3269
  (0, import_test_kit.validateTestKit)(options.test_kit);
3270
+ if (storyboard.requires?.[0] === "property_list_reference_runner" && storyboardCapabilityPredicates(storyboard).length === 0 && propertyListReferenceNeedsMcp(options)) {
3271
+ const found2 = flattenSteps(storyboard).find((entry) => entry.step.id === stepId);
3272
+ if (!found2) throw new Error(`Step "${stepId}" not found in storyboard "${storyboard.id}".`);
3273
+ return {
3274
+ storyboard_id: storyboard.id,
3275
+ step_id: stepId,
3276
+ phase_id: found2.phaseId,
3277
+ title: found2.step.title,
3278
+ task: found2.step.task,
3279
+ passed: true,
3280
+ skipped: true,
3281
+ skip_reason: "requirement_unmet",
3282
+ skip: {
3283
+ reason: "requirement_unmet",
3284
+ requirement: "property_list_reference_runner",
3285
+ detail: "Credential-isolated property-list references currently require MCP; A2A probe coverage is unavailable."
3286
+ },
3287
+ duration_ms: 0,
3288
+ validations: [],
3289
+ context: { ...storyboard.context, ...options.context },
3290
+ extraction: { path: "none" }
3291
+ };
3292
+ }
3134
3293
  const clientResolution = (0, import_client.getOrCreateClientResolution)(agentUrl, options);
3135
3294
  const client = clientResolution.client;
3136
3295
  let profile;
@@ -3181,6 +3340,77 @@ async function runStoryboardStepBody(agentUrl, storyboard, stepId, options) {
3181
3340
  return result;
3182
3341
  }
3183
3342
  }
3343
+ if (storyboard.creative_build_probe) {
3344
+ let resolution;
3345
+ try {
3346
+ resolution = (0, import_creative_build_probe.prepareCreativeBuildProbe)(
3347
+ profile?.raw_capabilities,
3348
+ storyboard.creative_build_probe,
3349
+ options.test_kit,
3350
+ options.adcpVersion
3351
+ );
3352
+ } catch (error) {
3353
+ if (!clientResolution.reusedShared) {
3354
+ await Promise.allSettled([(0, import_protocols.closeScopedConnections)(options.protocol)]);
3355
+ }
3356
+ throw error;
3357
+ }
3358
+ if (resolution.status === "failed") {
3359
+ if (!clientResolution.reusedShared) await (0, import_protocols.closeScopedConnections)(options.protocol);
3360
+ return {
3361
+ storyboard_id: storyboard.id,
3362
+ step_id: found.step.id,
3363
+ phase_id: found.phaseId,
3364
+ title: found.step.title,
3365
+ task: found.step.task,
3366
+ passed: false,
3367
+ duration_ms: 0,
3368
+ validations: [
3369
+ {
3370
+ check: "creative_build_probe_catalog",
3371
+ passed: false,
3372
+ description: "Advertised creative catalog satisfies its format and routing contract",
3373
+ error: resolution.detail
3374
+ }
3375
+ ],
3376
+ context,
3377
+ extraction: { path: "none" },
3378
+ contributions: Array.from(options.contributions ?? [])
3379
+ };
3380
+ }
3381
+ if (resolution.status === "unsatisfied") {
3382
+ if (!clientResolution.reusedShared) await (0, import_protocols.closeScopedConnections)(options.protocol);
3383
+ return {
3384
+ storyboard_id: storyboard.id,
3385
+ step_id: found.step.id,
3386
+ phase_id: found.phaseId,
3387
+ title: found.step.title,
3388
+ task: found.step.task,
3389
+ passed: true,
3390
+ skipped: true,
3391
+ skip_reason: "fixture_unsatisfied",
3392
+ skip: { reason: "not_applicable", detail: resolution.detail },
3393
+ duration_ms: 0,
3394
+ validations: [],
3395
+ context,
3396
+ extraction: { path: "none" },
3397
+ contributions: Array.from(options.contributions ?? [])
3398
+ };
3399
+ }
3400
+ for (const key of [
3401
+ "capability_id",
3402
+ "target_format_id",
3403
+ "message",
3404
+ "creative_manifest",
3405
+ "creative_id",
3406
+ "transformer_id",
3407
+ "config"
3408
+ ]) {
3409
+ delete context[`${storyboard.creative_build_probe.context_prefix}_${key}`];
3410
+ }
3411
+ Object.assign(context, resolution.context);
3412
+ options = { ...options, contracts: [.../* @__PURE__ */ new Set([...options.contracts ?? [], "creative_build_probe_runner"])] };
3413
+ }
3184
3414
  const injectedReceiver = options._webhookReceiver;
3185
3415
  const webhookReceiver = injectedReceiver ?? (options.webhook_receiver ? await (0, import_webhook_receiver.createWebhookReceiver)({
3186
3416
  ...options.webhook_receiver.mode && { mode: options.webhook_receiver.mode },
@@ -3962,6 +4192,10 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
3962
4192
  }
3963
4193
  }
3964
4194
  const effectiveRequestUrl = requestUrl ?? runState.agentUrl;
4195
+ (0, import_property_list_reference.rememberPropertyListCredentials)(
4196
+ taskResult?.data ?? (caughtError instanceof import_response_unwrapper.ResponseSchemaValidationError ? caughtError.data : void 0),
4197
+ (step.validations ?? []).flatMap((validation) => validation.auth_token_path ? [validation.auth_token_path] : [])
4198
+ );
3965
4199
  const requestRecord = {
3966
4200
  transport: options.protocol === "a2a" ? "a2a" : "mcp",
3967
4201
  operation: effectiveStep.task,
@@ -4148,6 +4382,9 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
4148
4382
  (av) => (0, import_context.injectContext)({ __v: av }, context, runState.runnerVars).__v
4149
4383
  );
4150
4384
  }
4385
+ if (resolved.denied_list_id !== void 0) {
4386
+ resolved.denied_list_id = (0, import_context.injectContext)({ value: resolved.denied_list_id }, context, runState.runnerVars).value;
4387
+ }
4151
4388
  return resolved;
4152
4389
  });
4153
4390
  const upstreamTraffic = await prefetchUpstreamTraffic(
@@ -4192,7 +4429,30 @@ async function executeStep(client, step, storyboardId, phaseId, context, allStep
4192
4429
  };
4193
4430
  })()
4194
4431
  };
4195
- validations = (0, import_validations.runValidations)(resolvedValidations, vctx);
4432
+ validations = (0, import_validations.runValidations)(
4433
+ resolvedValidations.filter((validation) => validation.check !== "property_list_reference"),
4434
+ vctx
4435
+ );
4436
+ for (const validation of resolvedValidations.filter((validation2) => validation2.check === "property_list_reference")) {
4437
+ const result = effectiveStep.task !== "create_property_list" || !validationTaskResult?.success ? {
4438
+ check: validation.check,
4439
+ passed: false,
4440
+ description: validation.description,
4441
+ error: "property_list_reference requires a successful create_property_list response."
4442
+ } : options.protocol === "a2a" ? {
4443
+ check: validation.check,
4444
+ passed: false,
4445
+ description: validation.description,
4446
+ error: "Credential-isolated reference resolution requires MCP."
4447
+ } : await (0, import_property_list_reference.verifyPropertyListReference)(validation, validationTaskResult.data, {
4448
+ agentUrl: client.getDiscoveredMcpEndpoint?.() ?? runState.agentUrl,
4449
+ version: options.adcpVersion ?? options._serverAdcpVersion,
4450
+ signal: options.signal,
4451
+ allowHttp: options.allow_http,
4452
+ redactValues: runCredentialValues(options)
4453
+ });
4454
+ validations.push((0, import_validations.decorateValidationResult)(result, vctx, validation));
4455
+ }
4196
4456
  if (crossResponses && crossResponses.dispatches.length > 1) {
4197
4457
  const perResponseValidations = resolvedValidations.filter(
4198
4458
  (v) => v.check !== "cross_response_field_equal" && v.check !== "cross_response_count_distinct"