@adcp/sdk 16.0.0-beta.8 → 16.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (371) hide show
  1. package/AGENTS.md +3 -3
  2. package/README.md +5 -2
  3. package/bin/adcp.js +10 -13
  4. package/dist/lib/core/AgentClient.d.mts +8 -5
  5. package/dist/lib/core/AgentClient.d.ts +8 -5
  6. package/dist/lib/core/AgentClient.js +9 -4
  7. package/dist/lib/core/AgentClient.mjs +9 -4
  8. package/dist/lib/core/SingleAgentClient.d.mts +19 -112
  9. package/dist/lib/core/SingleAgentClient.d.ts +19 -112
  10. package/dist/lib/core/SingleAgentClient.js +270 -252
  11. package/dist/lib/core/SingleAgentClient.mjs +275 -253
  12. package/dist/lib/core/TaskExecutor.d.mts +1 -16
  13. package/dist/lib/core/TaskExecutor.d.ts +1 -16
  14. package/dist/lib/core/TaskExecutor.js +34 -51
  15. package/dist/lib/core/TaskExecutor.mjs +12 -29
  16. package/dist/lib/core/product-cache.d.mts +3 -1
  17. package/dist/lib/core/product-cache.d.ts +3 -1
  18. package/dist/lib/core/product-cache.js +2 -1
  19. package/dist/lib/core/product-cache.mjs +2 -1
  20. package/dist/lib/errors/index.d.mts +2 -8
  21. package/dist/lib/errors/index.d.ts +2 -8
  22. package/dist/lib/errors/index.js +4 -4
  23. package/dist/lib/errors/index.mjs +4 -4
  24. package/dist/lib/identity-3.3/revocation.js +6 -7
  25. package/dist/lib/identity-3.3/revocation.mjs +6 -7
  26. package/dist/lib/index.d.mts +4 -4
  27. package/dist/lib/index.d.ts +4 -4
  28. package/dist/lib/index.js +0 -14
  29. package/dist/lib/index.mjs +0 -14
  30. package/dist/lib/media-buy/compatibility.d.mts +1 -1
  31. package/dist/lib/media-buy/compatibility.d.ts +1 -1
  32. package/dist/lib/media-buy/compatibility.js +26 -45
  33. package/dist/lib/media-buy/compatibility.mjs +26 -45
  34. package/dist/lib/media-buy/legacy-purchase-continuation.d.mts +2 -2
  35. package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
  36. package/dist/lib/protocols/index.js +14 -22
  37. package/dist/lib/protocols/index.mjs +5 -13
  38. package/dist/lib/registry/types.d.mts +3 -2
  39. package/dist/lib/registry/types.d.ts +3 -2
  40. package/dist/lib/registry/types.generated.d.mts +51 -11
  41. package/dist/lib/registry/types.generated.d.ts +51 -11
  42. package/dist/lib/reporting/source/conformance.d.mts +8 -8
  43. package/dist/lib/reporting/source/conformance.d.ts +8 -8
  44. package/dist/lib/reporting/source/manifest.d.mts +27 -27
  45. package/dist/lib/reporting/source/manifest.d.ts +27 -27
  46. package/dist/lib/server/create-adcp-server.js +7 -1
  47. package/dist/lib/server/create-adcp-server.mjs +7 -1
  48. package/dist/lib/signing/crypto.d.mts +1 -1
  49. package/dist/lib/signing/crypto.d.ts +1 -1
  50. package/dist/lib/signing/crypto.js +2 -45
  51. package/dist/lib/signing/crypto.mjs +2 -46
  52. package/dist/lib/signing/web-bot-auth.d.mts +18 -10
  53. package/dist/lib/signing/web-bot-auth.d.ts +18 -10
  54. package/dist/lib/signing/web-bot-auth.js +29 -24
  55. package/dist/lib/signing/web-bot-auth.mjs +29 -24
  56. package/dist/lib/testing/compliance/comply.js +0 -8
  57. package/dist/lib/testing/compliance/comply.mjs +0 -8
  58. package/dist/lib/testing/compliance/storyboard-tracks.js +11 -0
  59. package/dist/lib/testing/compliance/storyboard-tracks.mjs +11 -0
  60. package/dist/lib/testing/index.d.mts +2 -0
  61. package/dist/lib/testing/index.d.ts +2 -0
  62. package/dist/lib/testing/index.js +5 -0
  63. package/dist/lib/testing/index.mjs +3 -0
  64. package/dist/lib/testing/scenarios/capabilities.d.mts +2 -2
  65. package/dist/lib/testing/scenarios/capabilities.d.ts +2 -2
  66. package/dist/lib/testing/scenarios/capabilities.js +8 -41
  67. package/dist/lib/testing/scenarios/capabilities.mjs +9 -42
  68. package/dist/lib/testing/storyboard/creative-build-probe.d.mts +34 -0
  69. package/dist/lib/testing/storyboard/creative-build-probe.d.ts +34 -0
  70. package/dist/lib/testing/storyboard/creative-build-probe.js +395 -0
  71. package/dist/lib/testing/storyboard/creative-build-probe.mjs +373 -0
  72. package/dist/lib/testing/storyboard/index.d.mts +2 -0
  73. package/dist/lib/testing/storyboard/index.d.ts +2 -0
  74. package/dist/lib/testing/storyboard/index.js +5 -0
  75. package/dist/lib/testing/storyboard/index.mjs +3 -0
  76. package/dist/lib/testing/storyboard/loader.js +12 -0
  77. package/dist/lib/testing/storyboard/loader.mjs +12 -0
  78. package/dist/lib/testing/storyboard/property-list-reference.d.mts +15 -0
  79. package/dist/lib/testing/storyboard/property-list-reference.d.ts +15 -0
  80. package/dist/lib/testing/storyboard/property-list-reference.js +514 -0
  81. package/dist/lib/testing/storyboard/property-list-reference.mjs +487 -0
  82. package/dist/lib/testing/storyboard/runner.js +318 -58
  83. package/dist/lib/testing/storyboard/runner.mjs +322 -58
  84. package/dist/lib/testing/storyboard/types.d.mts +38 -16
  85. package/dist/lib/testing/storyboard/types.d.ts +38 -16
  86. package/dist/lib/testing/storyboard/types.js +1 -0
  87. package/dist/lib/testing/storyboard/types.mjs +1 -0
  88. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  89. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  90. package/dist/lib/testing/storyboard/validations.js +64 -0
  91. package/dist/lib/testing/storyboard/validations.mjs +67 -1
  92. package/dist/lib/testing/types.d.mts +15 -1
  93. package/dist/lib/testing/types.d.ts +15 -1
  94. package/dist/lib/types/schemas.generated.d.ts +65 -65
  95. package/dist/lib/types/wellknown-schemas.generated.d.mts +21 -21
  96. package/dist/lib/types/wellknown-schemas.generated.d.ts +21 -21
  97. package/dist/lib/utils/adcp-version-config.js +6 -0
  98. package/dist/lib/utils/adcp-version-config.mjs +6 -0
  99. package/dist/lib/utils/capabilities.d.mts +7 -9
  100. package/dist/lib/utils/capabilities.d.ts +7 -9
  101. package/dist/lib/utils/capabilities.js +14 -28
  102. package/dist/lib/utils/capabilities.mjs +14 -27
  103. package/dist/lib/utils/creative-adapter.d.mts +15 -113
  104. package/dist/lib/utils/creative-adapter.d.ts +15 -113
  105. package/dist/lib/utils/creative-adapter.js +7 -106
  106. package/dist/lib/utils/creative-adapter.mjs +7 -102
  107. package/dist/lib/utils/format-renders.d.mts +20 -80
  108. package/dist/lib/utils/format-renders.d.ts +20 -80
  109. package/dist/lib/utils/format-renders.js +7 -67
  110. package/dist/lib/utils/format-renders.mjs +7 -66
  111. package/dist/lib/utils/index.d.mts +1 -2
  112. package/dist/lib/utils/index.d.ts +1 -2
  113. package/dist/lib/utils/index.js +0 -7
  114. package/dist/lib/utils/index.mjs +0 -6
  115. package/dist/lib/utils/preview-normalizer.d.mts +31 -80
  116. package/dist/lib/utils/preview-normalizer.d.ts +31 -80
  117. package/dist/lib/utils/preview-normalizer.js +5 -50
  118. package/dist/lib/utils/preview-normalizer.mjs +5 -49
  119. package/dist/lib/utils/pricing-adapter.d.mts +2 -36
  120. package/dist/lib/utils/pricing-adapter.d.ts +2 -36
  121. package/dist/lib/utils/pricing-adapter.js +0 -105
  122. package/dist/lib/utils/pricing-adapter.mjs +0 -100
  123. package/dist/lib/utils/request-normalizer.d.mts +1 -2
  124. package/dist/lib/utils/request-normalizer.d.ts +1 -2
  125. package/dist/lib/v2/projection/catalog.d.mts +4 -0
  126. package/dist/lib/v2/projection/catalog.d.ts +4 -0
  127. package/dist/lib/v2/projection/creative-delivery.d.mts +17 -9
  128. package/dist/lib/v2/projection/creative-delivery.d.ts +17 -9
  129. package/dist/lib/v2/projection/creative-delivery.js +78 -10
  130. package/dist/lib/v2/projection/creative-delivery.mjs +77 -10
  131. package/dist/lib/v2/projection/legacy-metadata.d.mts +12 -0
  132. package/dist/lib/v2/projection/legacy-metadata.d.ts +12 -0
  133. package/dist/lib/v2/projection/legacy-metadata.js +41 -1
  134. package/dist/lib/v2/projection/legacy-metadata.mjs +37 -1
  135. package/dist/lib/v2/projection/legacy-normalization.d.mts +1 -1
  136. package/dist/lib/v2/projection/legacy-normalization.d.ts +1 -1
  137. package/dist/lib/v2/projection/v1-to-v2.js +13 -0
  138. package/dist/lib/v2/projection/v1-to-v2.mjs +14 -0
  139. package/dist/lib/validation/client-hooks.d.mts +1 -4
  140. package/dist/lib/validation/client-hooks.d.ts +1 -4
  141. package/dist/lib/validation/get-products-request.d.mts +1 -1
  142. package/dist/lib/validation/get-products-request.d.ts +1 -1
  143. package/dist/lib/validation/schema-loader.js +6 -0
  144. package/dist/lib/validation/schema-loader.mjs +6 -0
  145. package/dist/lib/validation/schema-validator.js +1 -26
  146. package/dist/lib/validation/schema-validator.mjs +1 -26
  147. package/dist/lib/version.d.mts +5 -5
  148. package/dist/lib/version.d.ts +5 -5
  149. package/dist/lib/version.js +3 -5
  150. package/dist/lib/version.mjs +3 -5
  151. package/docs/TYPE-SUMMARY.md +2 -2
  152. package/docs/development/PROTOCOL_DIFFERENCES.md +1 -1
  153. package/docs/guides/CONFORMANCE.md +25 -0
  154. package/docs/guides/CREATIVE-BUILD-PROBE.md +156 -0
  155. package/docs/guides/CREATIVE-DELIVERY.md +63 -7
  156. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
  157. package/docs/guides/REPORTING-STABILITY.md +7 -7
  158. package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
  159. package/docs/llms.txt +3 -3
  160. package/docs/migration-13-to-14.md +20 -16
  161. package/docs/migration-14.x-rc-worksheet.md +5 -5
  162. package/docs/migration-4.x-to-5.x.md +12 -7
  163. package/docs/migration-agent-identity-3.3.md +44 -19
  164. package/docs/migration-drop-adcp-2.md +25 -0
  165. package/docs/migration-reporting-storage-package.md +3 -3
  166. package/docs/releases/16.0.0.md +20 -0
  167. package/package.json +3 -18
  168. package/skills/call-adcp-agent/SKILL.md +23 -25
  169. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.mts +0 -3
  170. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +0 -3
  171. package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +0 -33
  172. package/dist/lib/adapters/legacy/v2-5/create_media_buy.mjs +0 -9
  173. package/dist/lib/adapters/legacy/v2-5/get_products.d.mts +0 -8
  174. package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +0 -8
  175. package/dist/lib/adapters/legacy/v2-5/get_products.js +0 -33
  176. package/dist/lib/adapters/legacy/v2-5/get_products.mjs +0 -9
  177. package/dist/lib/adapters/legacy/v2-5/index.d.mts +0 -34
  178. package/dist/lib/adapters/legacy/v2-5/index.d.ts +0 -34
  179. package/dist/lib/adapters/legacy/v2-5/index.js +0 -50
  180. package/dist/lib/adapters/legacy/v2-5/index.mjs +0 -25
  181. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.mts +0 -8
  182. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +0 -8
  183. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +0 -33
  184. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.mjs +0 -9
  185. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.mts +0 -3
  186. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +0 -3
  187. package/dist/lib/adapters/legacy/v2-5/preview_creative.js +0 -33
  188. package/dist/lib/adapters/legacy/v2-5/preview_creative.mjs +0 -9
  189. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +0 -11
  190. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +0 -11
  191. package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +0 -32
  192. package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs +0 -8
  193. package/dist/lib/adapters/legacy/v2-5/types.d.mts +0 -39
  194. package/dist/lib/adapters/legacy/v2-5/types.d.ts +0 -39
  195. package/dist/lib/adapters/legacy/v2-5/types.js +0 -16
  196. package/dist/lib/adapters/legacy/v2-5/types.mjs +0 -0
  197. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.mts +0 -3
  198. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +0 -3
  199. package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +0 -35
  200. package/dist/lib/adapters/legacy/v2-5/update_media_buy.mjs +0 -11
  201. package/dist/lib/schemas-data/v2.5/_provenance.json +0 -8
  202. package/dist/lib/schemas-data/v2.5/adagents.json +0 -494
  203. package/dist/lib/schemas-data/v2.5/core/activation-key.json +0 -50
  204. package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +0 -32
  205. package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +0 -21
  206. package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +0 -87
  207. package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +0 -21
  208. package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +0 -38
  209. package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +0 -21
  210. package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +0 -31
  211. package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +0 -21
  212. package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +0 -26
  213. package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +0 -87
  214. package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +0 -44
  215. package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +0 -71
  216. package/dist/lib/schemas-data/v2.5/core/async-response-data.json +0 -88
  217. package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +0 -33
  218. package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +0 -409
  219. package/dist/lib/schemas-data/v2.5/core/context.json +0 -8
  220. package/dist/lib/schemas-data/v2.5/core/creative-asset.json +0 -125
  221. package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +0 -31
  222. package/dist/lib/schemas-data/v2.5/core/creative-filters.json +0 -111
  223. package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +0 -72
  224. package/dist/lib/schemas-data/v2.5/core/creative-policy.json +0 -27
  225. package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +0 -171
  226. package/dist/lib/schemas-data/v2.5/core/deployment.json +0 -93
  227. package/dist/lib/schemas-data/v2.5/core/destination.json +0 -53
  228. package/dist/lib/schemas-data/v2.5/core/error.json +0 -40
  229. package/dist/lib/schemas-data/v2.5/core/ext.json +0 -8
  230. package/dist/lib/schemas-data/v2.5/core/format-id.json +0 -47
  231. package/dist/lib/schemas-data/v2.5/core/format.json +0 -324
  232. package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +0 -18
  233. package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +0 -152
  234. package/dist/lib/schemas-data/v2.5/core/measurement.json +0 -48
  235. package/dist/lib/schemas-data/v2.5/core/media-buy.json +0 -62
  236. package/dist/lib/schemas-data/v2.5/core/package.json +0 -72
  237. package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +0 -90
  238. package/dist/lib/schemas-data/v2.5/core/placement.json +0 -34
  239. package/dist/lib/schemas-data/v2.5/core/pricing-option.json +0 -35
  240. package/dist/lib/schemas-data/v2.5/core/product-filters.json +0 -102
  241. package/dist/lib/schemas-data/v2.5/core/product.json +0 -153
  242. package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +0 -115
  243. package/dist/lib/schemas-data/v2.5/core/promoted-products.json +0 -67
  244. package/dist/lib/schemas-data/v2.5/core/property-id.json +0 -14
  245. package/dist/lib/schemas-data/v2.5/core/property-tag.json +0 -16
  246. package/dist/lib/schemas-data/v2.5/core/property.json +0 -62
  247. package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +0 -146
  248. package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +0 -92
  249. package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +0 -48
  250. package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +0 -71
  251. package/dist/lib/schemas-data/v2.5/core/response.json +0 -24
  252. package/dist/lib/schemas-data/v2.5/core/signal-filters.json +0 -35
  253. package/dist/lib/schemas-data/v2.5/core/start-timing.json +0 -18
  254. package/dist/lib/schemas-data/v2.5/core/sub-asset.json +0 -79
  255. package/dist/lib/schemas-data/v2.5/core/targeting.json +0 -50
  256. package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +0 -43
  257. package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +0 -166
  258. package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +0 -192
  259. package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +0 -183
  260. package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +0 -101
  261. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +0 -73
  262. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +0 -61
  263. package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +0 -164
  264. package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +0 -245
  265. package/dist/lib/schemas-data/v2.5/creative/preview-render.json +0 -225
  266. package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +0 -11
  267. package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +0 -22
  268. package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +0 -11
  269. package/dist/lib/schemas-data/v2.5/enums/available-metric.json +0 -18
  270. package/dist/lib/schemas-data/v2.5/enums/channels.json +0 -18
  271. package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +0 -12
  272. package/dist/lib/schemas-data/v2.5/enums/creative-action.json +0 -14
  273. package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +0 -13
  274. package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +0 -15
  275. package/dist/lib/schemas-data/v2.5/enums/creative-status.json +0 -19
  276. package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +0 -20
  277. package/dist/lib/schemas-data/v2.5/enums/daast-version.json +0 -11
  278. package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +0 -15
  279. package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +0 -13
  280. package/dist/lib/schemas-data/v2.5/enums/feed-format.json +0 -12
  281. package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +0 -13
  282. package/dist/lib/schemas-data/v2.5/enums/format-category.json +0 -16
  283. package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +0 -11
  284. package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +0 -13
  285. package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +0 -11
  286. package/dist/lib/schemas-data/v2.5/enums/http-method.json +0 -11
  287. package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +0 -34
  288. package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +0 -12
  289. package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +0 -12
  290. package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +0 -11
  291. package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +0 -19
  292. package/dist/lib/schemas-data/v2.5/enums/metric-type.json +0 -17
  293. package/dist/lib/schemas-data/v2.5/enums/notification-type.json +0 -13
  294. package/dist/lib/schemas-data/v2.5/enums/pacing.json +0 -17
  295. package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +0 -11
  296. package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +0 -25
  297. package/dist/lib/schemas-data/v2.5/enums/property-type.json +0 -16
  298. package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +0 -19
  299. package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +0 -12
  300. package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +0 -12
  301. package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +0 -11
  302. package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +0 -103
  303. package/dist/lib/schemas-data/v2.5/enums/task-status.json +0 -29
  304. package/dist/lib/schemas-data/v2.5/enums/task-type.json +0 -27
  305. package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +0 -13
  306. package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +0 -12
  307. package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +0 -11
  308. package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +0 -25
  309. package/dist/lib/schemas-data/v2.5/enums/vast-version.json +0 -14
  310. package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +0 -13
  311. package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +0 -12
  312. package/dist/lib/schemas-data/v2.5/index.json +0 -604
  313. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +0 -31
  314. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +0 -65
  315. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +0 -31
  316. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +0 -16
  317. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +0 -36
  318. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +0 -126
  319. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +0 -97
  320. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +0 -54
  321. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +0 -285
  322. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +0 -38
  323. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +0 -21
  324. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +0 -34
  325. package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +0 -28
  326. package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +0 -33
  327. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +0 -26
  328. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +0 -70
  329. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +0 -58
  330. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +0 -61
  331. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +0 -137
  332. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +0 -437
  333. package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +0 -80
  334. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +0 -88
  335. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +0 -66
  336. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +0 -25
  337. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +0 -16
  338. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +0 -46
  339. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +0 -178
  340. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +0 -149
  341. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +0 -24
  342. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +0 -16
  343. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +0 -36
  344. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +0 -129
  345. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +0 -99
  346. package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +0 -52
  347. package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +0 -52
  348. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +0 -81
  349. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +0 -52
  350. package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +0 -73
  351. package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +0 -88
  352. package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +0 -93
  353. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +0 -81
  354. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +0 -52
  355. package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +0 -33
  356. package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +0 -32
  357. package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +0 -68
  358. package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +0 -59
  359. package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +0 -100
  360. package/dist/lib/types/v2-5/index.d.mts +0 -1
  361. package/dist/lib/types/v2-5/index.d.ts +0 -1
  362. package/dist/lib/types/v2-5/index.js +0 -22
  363. package/dist/lib/types/v2-5/index.mjs +0 -1
  364. package/dist/lib/types/v2-5/tools.generated.d.mts +0 -3568
  365. package/dist/lib/types/v2-5/tools.generated.d.ts +0 -3568
  366. package/dist/lib/types/v2-5/tools.generated.js +0 -16
  367. package/dist/lib/types/v2-5/tools.generated.mjs +0 -0
  368. package/dist/lib/utils/sync-creatives-adapter.d.mts +0 -33
  369. package/dist/lib/utils/sync-creatives-adapter.d.ts +0 -33
  370. package/dist/lib/utils/sync-creatives-adapter.js +0 -83
  371. package/dist/lib/utils/sync-creatives-adapter.mjs +0 -59
@@ -1,3 +1,4 @@
1
+ import type { CreativeBuildProbeSpec } from './creative-build-probe';
1
2
  /**
2
3
  * Types for storyboard-driven testing.
3
4
  *
@@ -269,6 +270,8 @@ export interface Storyboard {
269
270
  * Omitted handles retain the compatibility strategy `["seed"]`.
270
271
  */
271
272
  fixture_resolution?: StoryboardFixtureResolution;
273
+ /** Opt-in runner preparation; does not add an agent protocol capability. */
274
+ creative_build_probe?: CreativeBuildProbeSpec;
272
275
  /**
273
276
  * Initial context values declared by the storyboard YAML. Runner callers may
274
277
  * override these defaults with `StoryboardRunOptions.context`.
@@ -475,7 +478,7 @@ export interface FixtureResolutionAttempt {
475
478
  export type FixtureResolutionEvidence = FixtureResolutionAttempt;
476
479
  /** Machine-readable record emitted exactly once for every fixture handle. */
477
480
  export interface FixtureResolutionRecord {
478
- fixture_type: 'product' | 'pricing_option';
481
+ fixture_type: 'product' | 'pricing_option' | 'creative_format';
479
482
  handle: string;
480
483
  product_handle?: string;
481
484
  requirements: FixtureMatchClause[];
@@ -483,8 +486,10 @@ export interface FixtureResolutionRecord {
483
486
  status: FixtureResolutionStatus;
484
487
  strategy?: FixtureResolutionStrategy;
485
488
  seller_ids?: {
486
- product_id: string;
489
+ product_id?: string;
487
490
  pricing_option_id?: string;
491
+ capability_id?: string;
492
+ format_id?: Record<string, unknown>;
488
493
  };
489
494
  }
490
495
  /** One storyboard-scoped coverage gap produced by fixture resolution. */
@@ -890,7 +895,10 @@ export interface RateLimitTripSpec {
890
895
  /** Maximum retry_after wait the runner will honor. Defaults to 30 seconds. */
891
896
  replay_max_wait_seconds?: number;
892
897
  }
893
- export type StoryboardValidationCheck = 'response_schema' | 'field_present' | 'field_absent' | 'envelope_field_present' | 'envelope_field_absent' | 'envelope_field_value' | 'envelope_field_value_or_absent' | 'field_value' | 'field_value_or_absent'
898
+ export type StoryboardValidationCheck = 'response_schema' | 'field_present'
899
+ /** Every item carries a non-null field at `array[*].field`; absent, null,
900
+ * or empty arrays grade not_applicable rather than passing vacuously. */
901
+ | 'all_fields_present' | 'field_absent' | 'envelope_field_present' | 'envelope_field_absent' | 'envelope_field_value' | 'envelope_field_value_or_absent' | 'field_value' | 'field_value_or_absent'
894
902
  /**
895
903
  * Assert that a string field in the task payload matches a JavaScript
896
904
  * regular expression source declared in `pattern`. Fails when the path is
@@ -1042,7 +1050,7 @@ export type StoryboardValidationCheck = 'response_schema' | 'field_present' | 'f
1042
1050
  * class: normalization, directionality, or range containment. Added for
1043
1051
  * adcp-client#2060.
1044
1052
  */
1045
- | 'canonical_format_satisfaction'
1053
+ | 'canonical_format_satisfaction' | 'property_list_reference'
1046
1054
  /**
1047
1055
  * Assert the cardinality of the array at `path`. Two configurations are
1048
1056
  * supported: exact-count via `value: N` (passes only when the resolved
@@ -1230,6 +1238,23 @@ export interface RefsResolveScope {
1230
1238
  equals: string;
1231
1239
  }
1232
1240
  export interface StoryboardValidation {
1241
+ /** Managing endpoint; $agent_url uses the issuer's discovered MCP endpoint (adcp#8289). */
1242
+ agent_url?: string;
1243
+ /** Creation-response path to the issued list ID. Defaults to list.list_id. */
1244
+ list_id_path?: string;
1245
+ /** Creation-response path to the read-only credential. Defaults to auth_token. */
1246
+ auth_token_path?: string;
1247
+ /** Existing owner-created control list; accepts a resolved $context.<key>. */
1248
+ denied_list_id?: string;
1249
+ /** Maximum identifiers requested per page, 1 through 10000. Required by the probe. */
1250
+ page_size?: number;
1251
+ /** Maximum pages to traverse, 1 through 100. Required by the probe. */
1252
+ max_pages?: number;
1253
+ /** Exact unordered snapshot, compared by (type, value). Required by the probe. */
1254
+ expected_identifiers?: Array<{
1255
+ type: string;
1256
+ value: string;
1257
+ }>;
1233
1258
  /** Stable authored validation identifier echoed into runner results when present. */
1234
1259
  id?: string;
1235
1260
  /** Known validation kind, or a future string graded not_applicable by older runners. */
@@ -2152,7 +2177,7 @@ export interface RunnerSelectionResult {
2152
2177
  *
2153
2178
  * Spec: adcp-client#1626, adcp-client#2281, adcp-client#2356.
2154
2179
  */
2155
- export type RequirementName = 'controller' | 'seeded_state' | 'real_wire' | 'webhook_receiver' | 'webhook_replay_receiver' | 'trusted_match_context_router_runner' | 'trusted_match_publisher_auth_runner' | 'request_signer' | 'multi_agent';
2180
+ export type RequirementName = 'controller' | 'seeded_state' | 'real_wire' | 'webhook_receiver' | 'webhook_replay_receiver' | 'trusted_match_context_router_runner' | 'trusted_match_publisher_auth_runner' | 'property_list_reference_runner' | 'request_signer' | 'multi_agent';
2156
2181
  /**
2157
2182
  * Enumeration of every requirement this SDK knows how to satisfy. The loader
2158
2183
  * accepts other non-empty strings for forward compatibility; the runner treats
@@ -2180,12 +2205,9 @@ export interface SchemaValidationError {
2180
2205
  * a deprecation or future-required advisory is the kind of thing a CI
2181
2206
  * gate or dashboard SHOULD have explicit handling for.
2182
2207
  *
2183
- * Code naming generally follows the dot-namespaced convention `<topic>.<event>`
2184
- * (e.g. `request_signing.required`, `webhook_signing.legacy_hmac_fallback.removed`);
2185
- * prefer the upstream runner-output contract's canonical code when it
2186
- * registers a different spelling. The *when* lives in the `effective_version`
2187
- * field, never in the code. This keeps the surface stable across spec versions
2188
- * — codes don't proliferate `_in_4_0` / `_in_5_0` siblings as the spec evolves.
2208
+ * Use the upstream runner-output contract's canonical codes so consumers can
2209
+ * aggregate the same advisory across runners. Keep each code stable for the
2210
+ * same advisory, including its version suffix where the contract defines one.
2189
2211
  *
2190
2212
  * Adding a new code is a wire-surface change AND a TypeScript breaking
2191
2213
  * change for adopters who narrowed on `code`. Coordinate with the upstream
@@ -2199,10 +2221,10 @@ export type NoticeCode =
2199
2221
  'signed_requests_specialism_deprecated'
2200
2222
  /** Agent lacks `request_signing.supported: true`. Required for spend-committing
2201
2223
  * operations in AdCP 4.0 per `effective_version`. */
2202
- | 'request_signing.required'
2224
+ | 'request_signing_required_in_4_0'
2203
2225
  /** Agent advertises `webhook_signing.legacy_hmac_fallback: true`. Removed in
2204
2226
  * AdCP 4.0 per `effective_version`. */
2205
- | 'webhook_signing.legacy_hmac_fallback.removed'
2227
+ | 'legacy_hmac_fallback_removed_in_4_0'
2206
2228
  /** Runner stripped request fields missing from the agent's advertised tool input schema. */
2207
2229
  | 'input_schema_field_stripped'
2208
2230
  /** The preflight get_adcp_capabilities response failed schema validation. */
@@ -2310,9 +2332,9 @@ export interface ValidationResult {
2310
2332
  /** Optional remediation hint. */
2311
2333
  remediation?: string;
2312
2334
  /**
2313
- * Marker for an implemented check whose declared applicability conditions
2314
- * were not met. Unknown authored check kinds fail closed; they never set
2315
- * this flag or contribute a false green result. Entries carrying this flag
2335
+ * Marker for a check that could not be graded because its applicability
2336
+ * conditions were not met or the runner does not recognize its authored kind.
2337
+ * Entries carrying this flag
2316
2338
  * contribute to `validations_not_applicable` so consumers can distinguish
2317
2339
  * inapplicable coverage from clean passes.
2318
2340
  */
@@ -68,6 +68,7 @@ const KNOWN_REQUIREMENTS = /* @__PURE__ */ new Set([
68
68
  "webhook_replay_receiver",
69
69
  "trusted_match_context_router_runner",
70
70
  "trusted_match_publisher_auth_runner",
71
+ "property_list_reference_runner",
71
72
  "request_signer",
72
73
  "multi_agent"
73
74
  ]);
@@ -42,6 +42,7 @@ const KNOWN_REQUIREMENTS = /* @__PURE__ */ new Set([
42
42
  "webhook_replay_receiver",
43
43
  "trusted_match_context_router_runner",
44
44
  "trusted_match_publisher_auth_runner",
45
+ "property_list_reference_runner",
45
46
  "request_signer",
46
47
  "multi_agent"
47
48
  ]);
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
197
197
  */
198
198
  export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
199
199
  /** Capability semver emitted in run summaries and used for advisory expiry. */
200
- export declare const RUNNER_CAPABILITY_VERSION = "16.0.0-beta.8";
200
+ export declare const RUNNER_CAPABILITY_VERSION = "16.0.0";
201
201
  /** True when a failed validation contributes to the owning step's grade. */
202
202
  export declare function validationFailsStep(result: ValidationResult): boolean;
203
203
  /**
@@ -197,7 +197,7 @@ export interface UpstreamTrafficQueryResult {
197
197
  */
198
198
  export declare function runValidations(validations: StoryboardValidation[], context: ValidationContext): ValidationResult[];
199
199
  /** Capability semver emitted in run summaries and used for advisory expiry. */
200
- export declare const RUNNER_CAPABILITY_VERSION = "16.0.0-beta.8";
200
+ export declare const RUNNER_CAPABILITY_VERSION = "16.0.0";
201
201
  /** True when a failed validation contributes to the owning step's grade. */
202
202
  export declare function validationFailsStep(result: ValidationResult): boolean;
203
203
  /**
@@ -75,10 +75,19 @@ function decorateValidationResult(result, context, validation) {
75
75
  }
76
76
  function runValidation(validation, ctx) {
77
77
  switch (validation.check) {
78
+ case "property_list_reference":
79
+ return {
80
+ check: validation.check,
81
+ passed: false,
82
+ description: validation.description,
83
+ error: "property_list_reference requires the asynchronous, credential-isolated storyboard runner."
84
+ };
78
85
  case "response_schema":
79
86
  return requireTaskResult(ctx, validation, (tr) => validateResponseSchema(validation, ctx, tr));
80
87
  case "field_present":
81
88
  return validateFieldPresent(validation, resolveTarget(ctx));
89
+ case "all_fields_present":
90
+ return validateAllFieldsPresent(validation, resolveTarget(ctx));
82
91
  case "field_absent":
83
92
  return validateFieldAbsent(validation, resolveTarget(ctx));
84
93
  case "envelope_field_present":
@@ -507,6 +516,61 @@ function validateFieldPresent(validation, taskResult) {
507
516
  actual: value ?? null
508
517
  };
509
518
  }
519
+ function validateAllFieldsPresent(validation, taskResult) {
520
+ const base = { check: validation.check, description: validation.description, path: validation.path };
521
+ const path = validation.path ?? "";
522
+ const segments = (0, import_path.parsePathWithWildcards)(path);
523
+ const wildcardIndex = segments.indexOf(import_path.WILDCARD);
524
+ const wildcardOffset = path.indexOf("[*].");
525
+ if (wildcardOffset <= 0 || wildcardIndex <= 0 || typeof segments[wildcardIndex + 1] !== "string" || segments.lastIndexOf(import_path.WILDCARD) !== wildcardIndex) {
526
+ return {
527
+ ...base,
528
+ passed: false,
529
+ error: "all_fields_present requires an array path followed by exactly one [*] and a non-empty field path",
530
+ json_pointer: null,
531
+ expected: "array[*].field",
532
+ actual: validation.path ?? null
533
+ };
534
+ }
535
+ const arrayPath = path.slice(0, wildcardOffset);
536
+ const fieldPath = path.slice(wildcardOffset + "[*].".length);
537
+ const arrayPointer = (0, import_path.toJsonPointer)(arrayPath);
538
+ const items = (0, import_path.resolvePath)(taskResult.data, arrayPath);
539
+ if (items == null || Array.isArray(items) && items.length === 0) {
540
+ return {
541
+ ...base,
542
+ passed: true,
543
+ not_applicable: true,
544
+ note: `Array '${arrayPath}' is absent, null, or empty; all_fields_present has no items to inspect`
545
+ };
546
+ }
547
+ if (!Array.isArray(items)) {
548
+ return {
549
+ ...base,
550
+ passed: false,
551
+ error: `Expected an array at path: ${arrayPath}`,
552
+ json_pointer: arrayPointer,
553
+ expected: "array",
554
+ actual: items
555
+ };
556
+ }
557
+ const missing = [];
558
+ const fieldPointer = (0, import_path.toJsonPointer)(fieldPath);
559
+ for (let index = 0; index < items.length; index++) {
560
+ if ((0, import_path.resolvePath)(items[index], fieldPath) == null) {
561
+ missing.push(`${arrayPointer}/${index}${fieldPointer}`);
562
+ }
563
+ }
564
+ if (missing.length === 0) return { ...base, passed: true };
565
+ return {
566
+ ...base,
567
+ passed: false,
568
+ error: `${missing.length} of ${items.length} items lack a non-null '${fieldPath}' (first: ${missing[0]})`,
569
+ json_pointer: missing[0],
570
+ expected: validation.path,
571
+ actual: missing
572
+ };
573
+ }
510
574
  function validateFieldAbsent(validation, taskResult) {
511
575
  const checkName = validation.check;
512
576
  if (!validation.path) {
@@ -14,11 +14,13 @@ import { isJsonContentType } from "../test-controller.mjs";
14
14
  import { globToRegExp } from "../../utils/glob.mjs";
15
15
  import {
16
16
  parsePath,
17
+ parsePathWithWildcards,
17
18
  resolvePath,
18
19
  resolvePathAll,
19
20
  resolvePortableIdentifierPathAll,
20
21
  toJsonPointer,
21
- validatePortableIdentifierPath
22
+ validatePortableIdentifierPath,
23
+ WILDCARD
22
24
  } from "./path.mjs";
23
25
  import { canonicalTargetUri } from "../../signing/canonicalize.mjs";
24
26
  import { detectShapeDriftHints } from "./shape-drift-hints.mjs";
@@ -54,10 +56,19 @@ function decorateValidationResult(result, context, validation) {
54
56
  }
55
57
  function runValidation(validation, ctx) {
56
58
  switch (validation.check) {
59
+ case "property_list_reference":
60
+ return {
61
+ check: validation.check,
62
+ passed: false,
63
+ description: validation.description,
64
+ error: "property_list_reference requires the asynchronous, credential-isolated storyboard runner."
65
+ };
57
66
  case "response_schema":
58
67
  return requireTaskResult(ctx, validation, (tr) => validateResponseSchema(validation, ctx, tr));
59
68
  case "field_present":
60
69
  return validateFieldPresent(validation, resolveTarget(ctx));
70
+ case "all_fields_present":
71
+ return validateAllFieldsPresent(validation, resolveTarget(ctx));
61
72
  case "field_absent":
62
73
  return validateFieldAbsent(validation, resolveTarget(ctx));
63
74
  case "envelope_field_present":
@@ -487,6 +498,61 @@ function validateFieldPresent(validation, taskResult) {
487
498
  actual: value ?? null
488
499
  };
489
500
  }
501
+ function validateAllFieldsPresent(validation, taskResult) {
502
+ const base = { check: validation.check, description: validation.description, path: validation.path };
503
+ const path = validation.path ?? "";
504
+ const segments = parsePathWithWildcards(path);
505
+ const wildcardIndex = segments.indexOf(WILDCARD);
506
+ const wildcardOffset = path.indexOf("[*].");
507
+ if (wildcardOffset <= 0 || wildcardIndex <= 0 || typeof segments[wildcardIndex + 1] !== "string" || segments.lastIndexOf(WILDCARD) !== wildcardIndex) {
508
+ return {
509
+ ...base,
510
+ passed: false,
511
+ error: "all_fields_present requires an array path followed by exactly one [*] and a non-empty field path",
512
+ json_pointer: null,
513
+ expected: "array[*].field",
514
+ actual: validation.path ?? null
515
+ };
516
+ }
517
+ const arrayPath = path.slice(0, wildcardOffset);
518
+ const fieldPath = path.slice(wildcardOffset + "[*].".length);
519
+ const arrayPointer = toJsonPointer(arrayPath);
520
+ const items = resolvePath(taskResult.data, arrayPath);
521
+ if (items == null || Array.isArray(items) && items.length === 0) {
522
+ return {
523
+ ...base,
524
+ passed: true,
525
+ not_applicable: true,
526
+ note: `Array '${arrayPath}' is absent, null, or empty; all_fields_present has no items to inspect`
527
+ };
528
+ }
529
+ if (!Array.isArray(items)) {
530
+ return {
531
+ ...base,
532
+ passed: false,
533
+ error: `Expected an array at path: ${arrayPath}`,
534
+ json_pointer: arrayPointer,
535
+ expected: "array",
536
+ actual: items
537
+ };
538
+ }
539
+ const missing = [];
540
+ const fieldPointer = toJsonPointer(fieldPath);
541
+ for (let index = 0; index < items.length; index++) {
542
+ if (resolvePath(items[index], fieldPath) == null) {
543
+ missing.push(`${arrayPointer}/${index}${fieldPointer}`);
544
+ }
545
+ }
546
+ if (missing.length === 0) return { ...base, passed: true };
547
+ return {
548
+ ...base,
549
+ passed: false,
550
+ error: `${missing.length} of ${items.length} items lack a non-null '${fieldPath}' (first: ${missing[0]})`,
551
+ json_pointer: missing[0],
552
+ expected: validation.path,
553
+ actual: missing
554
+ };
555
+ }
490
556
  function validateFieldAbsent(validation, taskResult) {
491
557
  const checkName = validation.check;
492
558
  if (!validation.path) {
@@ -34,7 +34,7 @@ export interface TestOptions {
34
34
  /**
35
35
  * Route compact media-buy storyboard steps through the SDK compatibility
36
36
  * coordinator. This lets the same compact-first storyboard exercise native
37
- * 3.2 sellers and established v2.5–3.2 sellers without task-name branching.
37
+ * 3.2 sellers and established AdCP 3.0–3.2 sellers without task-name branching.
38
38
  * Mutating guarantee losses remain fail-closed unless named here.
39
39
  */
40
40
  mediaBuyLifecycleCompatibility?: import('../media-buy/compatibility.mjs').MediaBuyLifecycleCoordinatorOptions;
@@ -265,10 +265,24 @@ export interface TestOptions {
265
265
  }
266
266
  export interface TestStepResult {
267
267
  step: string;
268
+ /** Authored storyboard step identifier, independent of the display title. */
269
+ step_id?: string;
268
270
  task?: string;
269
271
  passed: boolean;
270
272
  duration_ms: number;
271
273
  details?: string;
274
+ /**
275
+ * Compact runner verdicts; excludes request/response payloads and diagnostic values.
276
+ * Skipped steps are not observable even when their retained validations have verdicts.
277
+ */
278
+ validations?: Array<{
279
+ id?: string;
280
+ check: string;
281
+ passed: boolean;
282
+ severity?: 'required' | 'advisory';
283
+ not_applicable?: boolean;
284
+ severity_promoted_from_advisory?: boolean;
285
+ }>;
272
286
  error?: string;
273
287
  response_preview?: string;
274
288
  observation_data?: Record<string, unknown>;
@@ -34,7 +34,7 @@ export interface TestOptions {
34
34
  /**
35
35
  * Route compact media-buy storyboard steps through the SDK compatibility
36
36
  * coordinator. This lets the same compact-first storyboard exercise native
37
- * 3.2 sellers and established v2.5–3.2 sellers without task-name branching.
37
+ * 3.2 sellers and established AdCP 3.0–3.2 sellers without task-name branching.
38
38
  * Mutating guarantee losses remain fail-closed unless named here.
39
39
  */
40
40
  mediaBuyLifecycleCompatibility?: import('../media-buy/compatibility').MediaBuyLifecycleCoordinatorOptions;
@@ -265,10 +265,24 @@ export interface TestOptions {
265
265
  }
266
266
  export interface TestStepResult {
267
267
  step: string;
268
+ /** Authored storyboard step identifier, independent of the display title. */
269
+ step_id?: string;
268
270
  task?: string;
269
271
  passed: boolean;
270
272
  duration_ms: number;
271
273
  details?: string;
274
+ /**
275
+ * Compact runner verdicts; excludes request/response payloads and diagnostic values.
276
+ * Skipped steps are not observable even when their retained validations have verdicts.
277
+ */
278
+ validations?: Array<{
279
+ id?: string;
280
+ check: string;
281
+ passed: boolean;
282
+ severity?: 'required' | 'advisory';
283
+ not_applicable?: boolean;
284
+ severity_promoted_from_advisory?: boolean;
285
+ }>;
272
286
  error?: string;
273
287
  response_preview?: string;
274
288
  observation_data?: Record<string, unknown>;