@adcp/sdk 16.0.0-beta.8 → 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 (355) hide show
  1. package/AGENTS.md +3 -3
  2. package/README.md +3 -0
  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/index.d.mts +4 -4
  25. package/dist/lib/index.d.ts +4 -4
  26. package/dist/lib/index.js +0 -14
  27. package/dist/lib/index.mjs +0 -14
  28. package/dist/lib/media-buy/compatibility.d.mts +1 -1
  29. package/dist/lib/media-buy/compatibility.d.ts +1 -1
  30. package/dist/lib/media-buy/compatibility.js +26 -45
  31. package/dist/lib/media-buy/compatibility.mjs +26 -45
  32. package/dist/lib/media-buy/legacy-purchase-continuation.d.mts +2 -2
  33. package/dist/lib/media-buy/legacy-purchase-continuation.d.ts +2 -2
  34. package/dist/lib/protocols/index.js +14 -22
  35. package/dist/lib/protocols/index.mjs +5 -13
  36. package/dist/lib/registry/types.d.mts +3 -2
  37. package/dist/lib/registry/types.d.ts +3 -2
  38. package/dist/lib/registry/types.generated.d.mts +51 -11
  39. package/dist/lib/registry/types.generated.d.ts +51 -11
  40. package/dist/lib/reporting/source/conformance.d.mts +8 -8
  41. package/dist/lib/reporting/source/conformance.d.ts +8 -8
  42. package/dist/lib/reporting/source/manifest.d.mts +27 -27
  43. package/dist/lib/reporting/source/manifest.d.ts +27 -27
  44. package/dist/lib/server/create-adcp-server.js +6 -0
  45. package/dist/lib/server/create-adcp-server.mjs +6 -0
  46. package/dist/lib/testing/compliance/comply.js +0 -8
  47. package/dist/lib/testing/compliance/comply.mjs +0 -8
  48. package/dist/lib/testing/compliance/storyboard-tracks.js +11 -0
  49. package/dist/lib/testing/compliance/storyboard-tracks.mjs +11 -0
  50. package/dist/lib/testing/index.d.mts +2 -0
  51. package/dist/lib/testing/index.d.ts +2 -0
  52. package/dist/lib/testing/index.js +5 -0
  53. package/dist/lib/testing/index.mjs +3 -0
  54. package/dist/lib/testing/scenarios/capabilities.d.mts +2 -2
  55. package/dist/lib/testing/scenarios/capabilities.d.ts +2 -2
  56. package/dist/lib/testing/scenarios/capabilities.js +8 -41
  57. package/dist/lib/testing/scenarios/capabilities.mjs +9 -42
  58. package/dist/lib/testing/storyboard/creative-build-probe.d.mts +34 -0
  59. package/dist/lib/testing/storyboard/creative-build-probe.d.ts +34 -0
  60. package/dist/lib/testing/storyboard/creative-build-probe.js +395 -0
  61. package/dist/lib/testing/storyboard/creative-build-probe.mjs +373 -0
  62. package/dist/lib/testing/storyboard/index.d.mts +2 -0
  63. package/dist/lib/testing/storyboard/index.d.ts +2 -0
  64. package/dist/lib/testing/storyboard/index.js +5 -0
  65. package/dist/lib/testing/storyboard/index.mjs +3 -0
  66. package/dist/lib/testing/storyboard/loader.js +12 -0
  67. package/dist/lib/testing/storyboard/loader.mjs +12 -0
  68. package/dist/lib/testing/storyboard/property-list-reference.d.mts +15 -0
  69. package/dist/lib/testing/storyboard/property-list-reference.d.ts +15 -0
  70. package/dist/lib/testing/storyboard/property-list-reference.js +514 -0
  71. package/dist/lib/testing/storyboard/property-list-reference.mjs +487 -0
  72. package/dist/lib/testing/storyboard/runner.js +318 -58
  73. package/dist/lib/testing/storyboard/runner.mjs +322 -58
  74. package/dist/lib/testing/storyboard/types.d.mts +38 -16
  75. package/dist/lib/testing/storyboard/types.d.ts +38 -16
  76. package/dist/lib/testing/storyboard/types.js +1 -0
  77. package/dist/lib/testing/storyboard/types.mjs +1 -0
  78. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  79. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  80. package/dist/lib/testing/storyboard/validations.js +64 -0
  81. package/dist/lib/testing/storyboard/validations.mjs +67 -1
  82. package/dist/lib/testing/types.d.mts +15 -1
  83. package/dist/lib/testing/types.d.ts +15 -1
  84. package/dist/lib/types/schemas.generated.d.ts +65 -65
  85. package/dist/lib/types/wellknown-schemas.generated.d.mts +21 -21
  86. package/dist/lib/types/wellknown-schemas.generated.d.ts +21 -21
  87. package/dist/lib/utils/adcp-version-config.js +6 -0
  88. package/dist/lib/utils/adcp-version-config.mjs +6 -0
  89. package/dist/lib/utils/capabilities.d.mts +7 -9
  90. package/dist/lib/utils/capabilities.d.ts +7 -9
  91. package/dist/lib/utils/capabilities.js +14 -28
  92. package/dist/lib/utils/capabilities.mjs +14 -27
  93. package/dist/lib/utils/creative-adapter.d.mts +15 -113
  94. package/dist/lib/utils/creative-adapter.d.ts +15 -113
  95. package/dist/lib/utils/creative-adapter.js +7 -106
  96. package/dist/lib/utils/creative-adapter.mjs +7 -102
  97. package/dist/lib/utils/format-renders.d.mts +20 -80
  98. package/dist/lib/utils/format-renders.d.ts +20 -80
  99. package/dist/lib/utils/format-renders.js +7 -67
  100. package/dist/lib/utils/format-renders.mjs +7 -66
  101. package/dist/lib/utils/index.d.mts +1 -2
  102. package/dist/lib/utils/index.d.ts +1 -2
  103. package/dist/lib/utils/index.js +0 -7
  104. package/dist/lib/utils/index.mjs +0 -6
  105. package/dist/lib/utils/preview-normalizer.d.mts +31 -80
  106. package/dist/lib/utils/preview-normalizer.d.ts +31 -80
  107. package/dist/lib/utils/preview-normalizer.js +5 -50
  108. package/dist/lib/utils/preview-normalizer.mjs +5 -49
  109. package/dist/lib/utils/pricing-adapter.d.mts +2 -36
  110. package/dist/lib/utils/pricing-adapter.d.ts +2 -36
  111. package/dist/lib/utils/pricing-adapter.js +0 -105
  112. package/dist/lib/utils/pricing-adapter.mjs +0 -100
  113. package/dist/lib/utils/request-normalizer.d.mts +1 -2
  114. package/dist/lib/utils/request-normalizer.d.ts +1 -2
  115. package/dist/lib/v2/projection/creative-delivery.d.mts +2 -0
  116. package/dist/lib/v2/projection/creative-delivery.d.ts +2 -0
  117. package/dist/lib/v2/projection/creative-delivery.js +7 -0
  118. package/dist/lib/v2/projection/creative-delivery.mjs +6 -0
  119. package/dist/lib/v2/projection/legacy-metadata.d.mts +12 -0
  120. package/dist/lib/v2/projection/legacy-metadata.d.ts +12 -0
  121. package/dist/lib/v2/projection/legacy-metadata.js +41 -1
  122. package/dist/lib/v2/projection/legacy-metadata.mjs +37 -1
  123. package/dist/lib/v2/projection/legacy-normalization.d.mts +1 -1
  124. package/dist/lib/v2/projection/legacy-normalization.d.ts +1 -1
  125. package/dist/lib/v2/projection/v1-to-v2.js +13 -0
  126. package/dist/lib/v2/projection/v1-to-v2.mjs +14 -0
  127. package/dist/lib/validation/client-hooks.d.mts +1 -4
  128. package/dist/lib/validation/client-hooks.d.ts +1 -4
  129. package/dist/lib/validation/get-products-request.d.mts +1 -1
  130. package/dist/lib/validation/get-products-request.d.ts +1 -1
  131. package/dist/lib/validation/schema-loader.js +6 -0
  132. package/dist/lib/validation/schema-loader.mjs +6 -0
  133. package/dist/lib/validation/schema-validator.js +1 -26
  134. package/dist/lib/validation/schema-validator.mjs +1 -26
  135. package/dist/lib/version.d.mts +5 -5
  136. package/dist/lib/version.d.ts +5 -5
  137. package/dist/lib/version.js +3 -5
  138. package/dist/lib/version.mjs +3 -5
  139. package/docs/TYPE-SUMMARY.md +2 -2
  140. package/docs/development/PROTOCOL_DIFFERENCES.md +1 -1
  141. package/docs/guides/CONFORMANCE.md +25 -0
  142. package/docs/guides/CREATIVE-BUILD-PROBE.md +156 -0
  143. package/docs/guides/CREATIVE-DELIVERY.md +45 -6
  144. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +15 -18
  145. package/docs/guides/VALIDATE-YOUR-AGENT.md +5 -0
  146. package/docs/llms.txt +2 -2
  147. package/docs/migration-13-to-14.md +20 -16
  148. package/docs/migration-14.x-rc-worksheet.md +5 -5
  149. package/docs/migration-4.x-to-5.x.md +12 -7
  150. package/docs/migration-drop-adcp-2.md +25 -0
  151. package/package.json +3 -18
  152. package/skills/call-adcp-agent/SKILL.md +23 -25
  153. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.mts +0 -3
  154. package/dist/lib/adapters/legacy/v2-5/create_media_buy.d.ts +0 -3
  155. package/dist/lib/adapters/legacy/v2-5/create_media_buy.js +0 -33
  156. package/dist/lib/adapters/legacy/v2-5/create_media_buy.mjs +0 -9
  157. package/dist/lib/adapters/legacy/v2-5/get_products.d.mts +0 -8
  158. package/dist/lib/adapters/legacy/v2-5/get_products.d.ts +0 -8
  159. package/dist/lib/adapters/legacy/v2-5/get_products.js +0 -33
  160. package/dist/lib/adapters/legacy/v2-5/get_products.mjs +0 -9
  161. package/dist/lib/adapters/legacy/v2-5/index.d.mts +0 -34
  162. package/dist/lib/adapters/legacy/v2-5/index.d.ts +0 -34
  163. package/dist/lib/adapters/legacy/v2-5/index.js +0 -50
  164. package/dist/lib/adapters/legacy/v2-5/index.mjs +0 -25
  165. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.mts +0 -8
  166. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.d.ts +0 -8
  167. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.js +0 -33
  168. package/dist/lib/adapters/legacy/v2-5/list_creative_formats.mjs +0 -9
  169. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.mts +0 -3
  170. package/dist/lib/adapters/legacy/v2-5/preview_creative.d.ts +0 -3
  171. package/dist/lib/adapters/legacy/v2-5/preview_creative.js +0 -33
  172. package/dist/lib/adapters/legacy/v2-5/preview_creative.mjs +0 -9
  173. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.mts +0 -11
  174. package/dist/lib/adapters/legacy/v2-5/sync_creatives.d.ts +0 -11
  175. package/dist/lib/adapters/legacy/v2-5/sync_creatives.js +0 -32
  176. package/dist/lib/adapters/legacy/v2-5/sync_creatives.mjs +0 -8
  177. package/dist/lib/adapters/legacy/v2-5/types.d.mts +0 -39
  178. package/dist/lib/adapters/legacy/v2-5/types.d.ts +0 -39
  179. package/dist/lib/adapters/legacy/v2-5/types.js +0 -16
  180. package/dist/lib/adapters/legacy/v2-5/types.mjs +0 -0
  181. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.mts +0 -3
  182. package/dist/lib/adapters/legacy/v2-5/update_media_buy.d.ts +0 -3
  183. package/dist/lib/adapters/legacy/v2-5/update_media_buy.js +0 -35
  184. package/dist/lib/adapters/legacy/v2-5/update_media_buy.mjs +0 -11
  185. package/dist/lib/schemas-data/v2.5/_provenance.json +0 -8
  186. package/dist/lib/schemas-data/v2.5/adagents.json +0 -494
  187. package/dist/lib/schemas-data/v2.5/core/activation-key.json +0 -50
  188. package/dist/lib/schemas-data/v2.5/core/assets/audio-asset.json +0 -32
  189. package/dist/lib/schemas-data/v2.5/core/assets/css-asset.json +0 -21
  190. package/dist/lib/schemas-data/v2.5/core/assets/daast-asset.json +0 -87
  191. package/dist/lib/schemas-data/v2.5/core/assets/html-asset.json +0 -21
  192. package/dist/lib/schemas-data/v2.5/core/assets/image-asset.json +0 -38
  193. package/dist/lib/schemas-data/v2.5/core/assets/javascript-asset.json +0 -21
  194. package/dist/lib/schemas-data/v2.5/core/assets/markdown-asset.json +0 -31
  195. package/dist/lib/schemas-data/v2.5/core/assets/text-asset.json +0 -21
  196. package/dist/lib/schemas-data/v2.5/core/assets/url-asset.json +0 -26
  197. package/dist/lib/schemas-data/v2.5/core/assets/vast-asset.json +0 -87
  198. package/dist/lib/schemas-data/v2.5/core/assets/video-asset.json +0 -44
  199. package/dist/lib/schemas-data/v2.5/core/assets/webhook-asset.json +0 -71
  200. package/dist/lib/schemas-data/v2.5/core/async-response-data.json +0 -88
  201. package/dist/lib/schemas-data/v2.5/core/brand-manifest-ref.json +0 -33
  202. package/dist/lib/schemas-data/v2.5/core/brand-manifest.json +0 -409
  203. package/dist/lib/schemas-data/v2.5/core/context.json +0 -8
  204. package/dist/lib/schemas-data/v2.5/core/creative-asset.json +0 -125
  205. package/dist/lib/schemas-data/v2.5/core/creative-assignment.json +0 -31
  206. package/dist/lib/schemas-data/v2.5/core/creative-filters.json +0 -111
  207. package/dist/lib/schemas-data/v2.5/core/creative-manifest.json +0 -72
  208. package/dist/lib/schemas-data/v2.5/core/creative-policy.json +0 -27
  209. package/dist/lib/schemas-data/v2.5/core/delivery-metrics.json +0 -171
  210. package/dist/lib/schemas-data/v2.5/core/deployment.json +0 -93
  211. package/dist/lib/schemas-data/v2.5/core/destination.json +0 -53
  212. package/dist/lib/schemas-data/v2.5/core/error.json +0 -40
  213. package/dist/lib/schemas-data/v2.5/core/ext.json +0 -8
  214. package/dist/lib/schemas-data/v2.5/core/format-id.json +0 -47
  215. package/dist/lib/schemas-data/v2.5/core/format.json +0 -324
  216. package/dist/lib/schemas-data/v2.5/core/frequency-cap.json +0 -18
  217. package/dist/lib/schemas-data/v2.5/core/mcp-webhook-payload.json +0 -152
  218. package/dist/lib/schemas-data/v2.5/core/measurement.json +0 -48
  219. package/dist/lib/schemas-data/v2.5/core/media-buy.json +0 -62
  220. package/dist/lib/schemas-data/v2.5/core/package.json +0 -72
  221. package/dist/lib/schemas-data/v2.5/core/performance-feedback.json +0 -90
  222. package/dist/lib/schemas-data/v2.5/core/placement.json +0 -34
  223. package/dist/lib/schemas-data/v2.5/core/pricing-option.json +0 -35
  224. package/dist/lib/schemas-data/v2.5/core/product-filters.json +0 -102
  225. package/dist/lib/schemas-data/v2.5/core/product.json +0 -153
  226. package/dist/lib/schemas-data/v2.5/core/promoted-offerings.json +0 -115
  227. package/dist/lib/schemas-data/v2.5/core/promoted-products.json +0 -67
  228. package/dist/lib/schemas-data/v2.5/core/property-id.json +0 -14
  229. package/dist/lib/schemas-data/v2.5/core/property-tag.json +0 -16
  230. package/dist/lib/schemas-data/v2.5/core/property.json +0 -62
  231. package/dist/lib/schemas-data/v2.5/core/protocol-envelope.json +0 -146
  232. package/dist/lib/schemas-data/v2.5/core/publisher-property-selector.json +0 -92
  233. package/dist/lib/schemas-data/v2.5/core/push-notification-config.json +0 -48
  234. package/dist/lib/schemas-data/v2.5/core/reporting-capabilities.json +0 -71
  235. package/dist/lib/schemas-data/v2.5/core/response.json +0 -24
  236. package/dist/lib/schemas-data/v2.5/core/signal-filters.json +0 -35
  237. package/dist/lib/schemas-data/v2.5/core/start-timing.json +0 -18
  238. package/dist/lib/schemas-data/v2.5/core/sub-asset.json +0 -79
  239. package/dist/lib/schemas-data/v2.5/core/targeting.json +0 -50
  240. package/dist/lib/schemas-data/v2.5/core/tasks-get-request.json +0 -43
  241. package/dist/lib/schemas-data/v2.5/core/tasks-get-response.json +0 -166
  242. package/dist/lib/schemas-data/v2.5/core/tasks-list-request.json +0 -192
  243. package/dist/lib/schemas-data/v2.5/core/tasks-list-response.json +0 -183
  244. package/dist/lib/schemas-data/v2.5/creative/asset-types/index.json +0 -101
  245. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-request.json +0 -73
  246. package/dist/lib/schemas-data/v2.5/creative/list-creative-formats-response.json +0 -61
  247. package/dist/lib/schemas-data/v2.5/creative/preview-creative-request.json +0 -164
  248. package/dist/lib/schemas-data/v2.5/creative/preview-creative-response.json +0 -245
  249. package/dist/lib/schemas-data/v2.5/creative/preview-render.json +0 -225
  250. package/dist/lib/schemas-data/v2.5/enums/adcp-domain.json +0 -11
  251. package/dist/lib/schemas-data/v2.5/enums/asset-content-type.json +0 -22
  252. package/dist/lib/schemas-data/v2.5/enums/auth-scheme.json +0 -11
  253. package/dist/lib/schemas-data/v2.5/enums/available-metric.json +0 -18
  254. package/dist/lib/schemas-data/v2.5/enums/channels.json +0 -18
  255. package/dist/lib/schemas-data/v2.5/enums/co-branding-requirement.json +0 -12
  256. package/dist/lib/schemas-data/v2.5/enums/creative-action.json +0 -14
  257. package/dist/lib/schemas-data/v2.5/enums/creative-agent-capability.json +0 -13
  258. package/dist/lib/schemas-data/v2.5/enums/creative-sort-field.json +0 -15
  259. package/dist/lib/schemas-data/v2.5/enums/creative-status.json +0 -19
  260. package/dist/lib/schemas-data/v2.5/enums/daast-tracking-event.json +0 -20
  261. package/dist/lib/schemas-data/v2.5/enums/daast-version.json +0 -11
  262. package/dist/lib/schemas-data/v2.5/enums/delivery-type.json +0 -15
  263. package/dist/lib/schemas-data/v2.5/enums/dimension-unit.json +0 -13
  264. package/dist/lib/schemas-data/v2.5/enums/feed-format.json +0 -12
  265. package/dist/lib/schemas-data/v2.5/enums/feedback-source.json +0 -13
  266. package/dist/lib/schemas-data/v2.5/enums/format-category.json +0 -16
  267. package/dist/lib/schemas-data/v2.5/enums/format-id-parameter.json +0 -11
  268. package/dist/lib/schemas-data/v2.5/enums/frequency-cap-scope.json +0 -13
  269. package/dist/lib/schemas-data/v2.5/enums/history-entry-type.json +0 -11
  270. package/dist/lib/schemas-data/v2.5/enums/http-method.json +0 -11
  271. package/dist/lib/schemas-data/v2.5/enums/identifier-types.json +0 -34
  272. package/dist/lib/schemas-data/v2.5/enums/javascript-module-type.json +0 -12
  273. package/dist/lib/schemas-data/v2.5/enums/landing-page-requirement.json +0 -12
  274. package/dist/lib/schemas-data/v2.5/enums/markdown-flavor.json +0 -11
  275. package/dist/lib/schemas-data/v2.5/enums/media-buy-status.json +0 -19
  276. package/dist/lib/schemas-data/v2.5/enums/metric-type.json +0 -17
  277. package/dist/lib/schemas-data/v2.5/enums/notification-type.json +0 -13
  278. package/dist/lib/schemas-data/v2.5/enums/pacing.json +0 -17
  279. package/dist/lib/schemas-data/v2.5/enums/preview-output-format.json +0 -11
  280. package/dist/lib/schemas-data/v2.5/enums/pricing-model.json +0 -25
  281. package/dist/lib/schemas-data/v2.5/enums/property-type.json +0 -16
  282. package/dist/lib/schemas-data/v2.5/enums/publisher-identifier-types.json +0 -19
  283. package/dist/lib/schemas-data/v2.5/enums/reporting-frequency.json +0 -12
  284. package/dist/lib/schemas-data/v2.5/enums/signal-catalog-type.json +0 -12
  285. package/dist/lib/schemas-data/v2.5/enums/sort-direction.json +0 -11
  286. package/dist/lib/schemas-data/v2.5/enums/standard-format-ids.json +0 -103
  287. package/dist/lib/schemas-data/v2.5/enums/task-status.json +0 -29
  288. package/dist/lib/schemas-data/v2.5/enums/task-type.json +0 -27
  289. package/dist/lib/schemas-data/v2.5/enums/update-frequency.json +0 -13
  290. package/dist/lib/schemas-data/v2.5/enums/url-asset-type.json +0 -12
  291. package/dist/lib/schemas-data/v2.5/enums/validation-mode.json +0 -11
  292. package/dist/lib/schemas-data/v2.5/enums/vast-tracking-event.json +0 -25
  293. package/dist/lib/schemas-data/v2.5/enums/vast-version.json +0 -14
  294. package/dist/lib/schemas-data/v2.5/enums/webhook-response-type.json +0 -13
  295. package/dist/lib/schemas-data/v2.5/enums/webhook-security-method.json +0 -12
  296. package/dist/lib/schemas-data/v2.5/index.json +0 -604
  297. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-request.json +0 -31
  298. package/dist/lib/schemas-data/v2.5/media-buy/build-creative-response.json +0 -65
  299. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-input-required.json +0 -31
  300. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-submitted.json +0 -16
  301. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-async-response-working.json +0 -36
  302. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-request.json +0 -126
  303. package/dist/lib/schemas-data/v2.5/media-buy/create-media-buy-response.json +0 -97
  304. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-request.json +0 -54
  305. package/dist/lib/schemas-data/v2.5/media-buy/get-media-buy-delivery-response.json +0 -285
  306. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-input-required.json +0 -38
  307. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-submitted.json +0 -21
  308. package/dist/lib/schemas-data/v2.5/media-buy/get-products-async-response-working.json +0 -34
  309. package/dist/lib/schemas-data/v2.5/media-buy/get-products-request.json +0 -28
  310. package/dist/lib/schemas-data/v2.5/media-buy/get-products-response.json +0 -33
  311. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-request.json +0 -26
  312. package/dist/lib/schemas-data/v2.5/media-buy/list-authorized-properties-response.json +0 -70
  313. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-request.json +0 -58
  314. package/dist/lib/schemas-data/v2.5/media-buy/list-creative-formats-response.json +0 -61
  315. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-request.json +0 -137
  316. package/dist/lib/schemas-data/v2.5/media-buy/list-creatives-response.json +0 -437
  317. package/dist/lib/schemas-data/v2.5/media-buy/package-request.json +0 -80
  318. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-request.json +0 -88
  319. package/dist/lib/schemas-data/v2.5/media-buy/provide-performance-feedback-response.json +0 -66
  320. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-input-required.json +0 -25
  321. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-submitted.json +0 -16
  322. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-async-response-working.json +0 -46
  323. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-request.json +0 -178
  324. package/dist/lib/schemas-data/v2.5/media-buy/sync-creatives-response.json +0 -149
  325. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-input-required.json +0 -24
  326. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-submitted.json +0 -16
  327. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-async-response-working.json +0 -36
  328. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-request.json +0 -129
  329. package/dist/lib/schemas-data/v2.5/media-buy/update-media-buy-response.json +0 -99
  330. package/dist/lib/schemas-data/v2.5/pricing-options/cpc-option.json +0 -52
  331. package/dist/lib/schemas-data/v2.5/pricing-options/cpcv-option.json +0 -52
  332. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-auction-option.json +0 -81
  333. package/dist/lib/schemas-data/v2.5/pricing-options/cpm-fixed-option.json +0 -52
  334. package/dist/lib/schemas-data/v2.5/pricing-options/cpp-option.json +0 -73
  335. package/dist/lib/schemas-data/v2.5/pricing-options/cpv-option.json +0 -88
  336. package/dist/lib/schemas-data/v2.5/pricing-options/flat-rate-option.json +0 -93
  337. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-auction-option.json +0 -81
  338. package/dist/lib/schemas-data/v2.5/pricing-options/vcpm-fixed-option.json +0 -52
  339. package/dist/lib/schemas-data/v2.5/protocols/adcp-extension.json +0 -33
  340. package/dist/lib/schemas-data/v2.5/signals/activate-signal-request.json +0 -32
  341. package/dist/lib/schemas-data/v2.5/signals/activate-signal-response.json +0 -68
  342. package/dist/lib/schemas-data/v2.5/signals/get-signals-request.json +0 -59
  343. package/dist/lib/schemas-data/v2.5/signals/get-signals-response.json +0 -100
  344. package/dist/lib/types/v2-5/index.d.mts +0 -1
  345. package/dist/lib/types/v2-5/index.d.ts +0 -1
  346. package/dist/lib/types/v2-5/index.js +0 -22
  347. package/dist/lib/types/v2-5/index.mjs +0 -1
  348. package/dist/lib/types/v2-5/tools.generated.d.mts +0 -3568
  349. package/dist/lib/types/v2-5/tools.generated.d.ts +0 -3568
  350. package/dist/lib/types/v2-5/tools.generated.js +0 -16
  351. package/dist/lib/types/v2-5/tools.generated.mjs +0 -0
  352. package/dist/lib/utils/sync-creatives-adapter.d.mts +0 -33
  353. package/dist/lib/utils/sync-creatives-adapter.d.ts +0 -33
  354. package/dist/lib/utils/sync-creatives-adapter.js +0 -83
  355. package/dist/lib/utils/sync-creatives-adapter.mjs +0 -59
@@ -54,6 +54,7 @@ __export(protocols_exports, {
54
54
  wrapFetchWithTransportDiagnostics: () => import_transportDiagnostics2.wrapFetchWithTransportDiagnostics
55
55
  });
56
56
  module.exports = __toCommonJS(protocols_exports);
57
+ var import_errors = require('../errors/index.js');
57
58
  var import_mcp = require('./mcp.js');
58
59
  var import_mcp2 = require('./mcp.js');
59
60
  var import_mcp_scope = require('./mcp-scope.js');
@@ -70,13 +71,13 @@ var import_auth = require('../auth/index.js');
70
71
  var import_oauth = require('../auth/oauth/index.js');
71
72
  var import_authorization_required = require('../auth/oauth/authorization-required.js');
72
73
  var import_provider_cache = require('../auth/oauth/provider-cache.js');
73
- var import_errors = require('../errors/index.js');
74
+ var import_errors2 = require('../errors/index.js');
74
75
  var import_signedRequestRejection = require('./signedRequestRejection.js');
75
76
  var import_net = require('../net/index.js');
76
77
  var import_validation = require('../validation/index.js');
77
78
  var import_tracing = require('../observability/tracing.js');
78
79
  var import_version = require('../version.js');
79
- var import_errors2 = require('../errors/index.js');
80
+ var import_errors3 = require('../errors/index.js');
80
81
  var import_schema_loader = require('../validation/schema-loader.js');
81
82
  var import_client = require('../signing/client.js');
82
83
  var import_responseSizeLimit2 = require('./responseSizeLimit.js');
@@ -109,7 +110,7 @@ function resolveWireMajor(adcpVersion) {
109
110
  if (adcpVersion === void 0) return import_version.ADCP_MAJOR_VERSION;
110
111
  const parsed = (0, import_version.parseAdcpMajorVersion)(adcpVersion);
111
112
  if (!Number.isFinite(parsed)) {
112
- throw new import_errors2.ConfigurationError(
113
+ throw new import_errors3.ConfigurationError(
113
114
  `adcpVersion ${JSON.stringify(adcpVersion)} is not a valid AdCP version. Expected a semver string (e.g. '3.0.1', '3.1.0-beta.1') or a legacy alias (e.g. 'v3').`,
114
115
  "adcpVersion"
115
116
  );
@@ -126,7 +127,7 @@ function bundleSupportsAdcpVersionField(bundleKey) {
126
127
  return parseInt(minorMatch[1], 10) >= 1;
127
128
  }
128
129
  function buildVersionEnvelope(adcpVersion, serverVersion) {
129
- if (serverVersion === "v2") return {};
130
+ if (serverVersion === "v2") throw new import_errors.VersionUnsupportedError("request", "version", "v2");
130
131
  const wireMajor = resolveWireMajor(adcpVersion);
131
132
  const bundleKey = (0, import_schema_loader.resolveBundleKey)(adcpVersion ?? import_version.ADCP_VERSION);
132
133
  if (!bundleSupportsAdcpVersionField(bundleKey)) {
@@ -136,16 +137,9 @@ function buildVersionEnvelope(adcpVersion, serverVersion) {
136
137
  (0, import_schema_loader.validateAdcpVersionWire)(wireValue);
137
138
  return { adcp_major_version: wireMajor, adcp_version: wireValue };
138
139
  }
139
- let hasWarnedAboutV2PushNotificationSecret = false;
140
- function warnV2PushNotificationNeedsSecret() {
141
- if (hasWarnedAboutV2PushNotificationSecret) return;
142
- hasWarnedAboutV2PushNotificationSecret = true;
143
- console.warn(
144
- "[adcp] Suppressing push_notification_config for a v2 seller: AdCP 2.5 requires an `authentication` block and no `webhookSecret` is configured. Set `webhookSecret` to register async task-status webhooks with this agent, or move the agent to an AdCP 3.x pin, where the RFC 9421 webhook profile needs no shared secret."
145
- );
146
- }
147
140
  function buildVersionEnvelopeForMode(mode, adcpVersion, serverVersion) {
148
- if (mode === "none" || serverVersion === "v2") return {};
141
+ if (serverVersion === "v2") throw new import_errors.VersionUnsupportedError("request", "version", "v2");
142
+ if (mode === "none") return {};
149
143
  if (mode === "major-only") return { adcp_major_version: resolveWireMajor(adcpVersion) };
150
144
  return buildVersionEnvelope(adcpVersion, serverVersion);
151
145
  }
@@ -182,7 +176,7 @@ function prepareProtocolToolCall(agent, args, options = {}) {
182
176
  const argsWithVersion = applyVersionEnvelope(args, envelope);
183
177
  applyPublishedSchemaCompatibility(options.toolName, argsWithVersion, args);
184
178
  const effectiveBundle = typeof argsWithVersion.adcp_version === "string" ? (0, import_schema_loader.resolveBundleKey)(argsWithVersion.adcp_version) : void 0;
185
- const usesApplicationRegistration = options.serverVersion !== "v2" && (0, import_adcp_version_config.isAdcpVersionAtLeast)(effectiveBundle, "3.1.0");
179
+ const usesApplicationRegistration = (0, import_adcp_version_config.isAdcpVersionAtLeast)(effectiveBundle, "3.1.0");
186
180
  let pushNotificationConfig;
187
181
  let applicationPushNotificationConfig;
188
182
  let operationId;
@@ -196,8 +190,6 @@ function prepareProtocolToolCall(agent, args, options = {}) {
196
190
  credentials: options.webhookSecret
197
191
  }
198
192
  };
199
- } else if (options.serverVersion === "v2") {
200
- warnV2PushNotificationNeedsSecret();
201
193
  } else {
202
194
  pushNotificationConfig = {
203
195
  url: options.webhookUrl,
@@ -373,7 +365,7 @@ class ProtocolClient {
373
365
  }
374
366
  );
375
367
  } catch (err) {
376
- if (agent.oauth_client_credentials && (0, import_errors.is401Error)(err) && (0, import_signedRequestRejection.getSignedRequestRejection)(err)?.challenge?.scheme !== "signature") {
368
+ if (agent.oauth_client_credentials && (0, import_errors2.is401Error)(err) && (0, import_signedRequestRejection.getSignedRequestRejection)(err)?.challenge?.scheme !== "signature") {
377
369
  const ccStorage = (0, import_oauth.getAgentStorage)(agent);
378
370
  const allowPrivateIp = transport?.allowPrivateIp ?? (0, import_net.isLikelyPrivateUrl)(agent.agent_uri);
379
371
  await (0, import_oauth.ensureClientCredentialsTokens)(agent, {
@@ -405,7 +397,7 @@ class ProtocolClient {
405
397
  }
406
398
  );
407
399
  } catch (retryErr) {
408
- const rejection = (0, import_signedRequestRejection.getSignedRequestRejection)(retryErr) ?? ((0, import_errors.is401Error)(retryErr) ? (0, import_signedRequestRejection.getSignedRequestRejection)(err) : void 0);
400
+ const rejection = (0, import_signedRequestRejection.getSignedRequestRejection)(retryErr) ?? ((0, import_errors2.is401Error)(retryErr) ? (0, import_signedRequestRejection.getSignedRequestRejection)(err) : void 0);
409
401
  if (rejection) throw rejection;
410
402
  await rethrowAsNeedsAuthorization(
411
403
  retryErr,
@@ -447,7 +439,7 @@ class ProtocolClient {
447
439
  transport?.legacyCompat
448
440
  );
449
441
  } catch (err) {
450
- if (agent.oauth_client_credentials && (0, import_errors.is401Error)(err) && (0, import_signedRequestRejection.getSignedRequestRejection)(err)?.challenge?.scheme !== "signature") {
442
+ if (agent.oauth_client_credentials && (0, import_errors2.is401Error)(err) && (0, import_signedRequestRejection.getSignedRequestRejection)(err)?.challenge?.scheme !== "signature") {
451
443
  const ccStorage = (0, import_oauth.getAgentStorage)(agent);
452
444
  const allowPrivateIp = transport?.allowPrivateIp ?? (0, import_net.isLikelyPrivateUrl)(agent.agent_uri);
453
445
  await (0, import_oauth.ensureClientCredentialsTokens)(agent, {
@@ -476,7 +468,7 @@ class ProtocolClient {
476
468
  transport?.legacyCompat
477
469
  );
478
470
  } catch (retryErr) {
479
- const rejection = (0, import_signedRequestRejection.getSignedRequestRejection)(retryErr) ?? ((0, import_errors.is401Error)(retryErr) ? (0, import_signedRequestRejection.getSignedRequestRejection)(err) : void 0);
471
+ const rejection = (0, import_signedRequestRejection.getSignedRequestRejection)(retryErr) ?? ((0, import_errors2.is401Error)(retryErr) ? (0, import_signedRequestRejection.getSignedRequestRejection)(err) : void 0);
480
472
  if (rejection) throw rejection;
481
473
  await rethrowAsNeedsAuthorization(
482
474
  retryErr,
@@ -512,9 +504,9 @@ async function rethrowAsNeedsAuthorization(err, agentUrl, fetchFn, signal, confi
512
504
  const signedRejection = (0, import_signedRequestRejection.getSignedRequestRejection)(err);
513
505
  if (signedRejection) throw signedRejection;
514
506
  if (err instanceof import_oauth.NeedsAuthorizationError) throw err;
515
- if (!(0, import_errors.is401Error)(err)) return;
507
+ if (!(0, import_errors2.is401Error)(err)) return;
516
508
  if (recoveryMode === "static") {
517
- throw new import_errors.AuthenticationCredentialsRejectedError(agentUrl, err);
509
+ throw new import_errors2.AuthenticationCredentialsRejectedError(agentUrl, err);
518
510
  }
519
511
  const allowPrivateIp = configuredAllowPrivateIp ?? (0, import_net.isLikelyPrivateUrl)(agentUrl);
520
512
  const requirements = await (0, import_oauth.discoverAuthorizationRequirements)(agentUrl, { allowPrivateIp, fetchFn, signal });
@@ -3,6 +3,7 @@ import { dirname as __adcpDirname } from "node:path";
3
3
  import { createRequire as __adcpCreateRequire } from "node:module";
4
4
  const __dirname = __adcpDirname(__adcpFileURLToPath(import.meta.url));
5
5
  const require2 = __adcpCreateRequire(import.meta.url);
6
+ import { VersionUnsupportedError } from "../errors/index.mjs";
6
7
  import {
7
8
  callMCPTool,
8
9
  callMCPToolWithOAuth,
@@ -104,7 +105,7 @@ function bundleSupportsAdcpVersionField(bundleKey) {
104
105
  return parseInt(minorMatch[1], 10) >= 1;
105
106
  }
106
107
  function buildVersionEnvelope(adcpVersion, serverVersion) {
107
- if (serverVersion === "v2") return {};
108
+ if (serverVersion === "v2") throw new VersionUnsupportedError("request", "version", "v2");
108
109
  const wireMajor = resolveWireMajor(adcpVersion);
109
110
  const bundleKey = resolveBundleKey(adcpVersion ?? ADCP_VERSION);
110
111
  if (!bundleSupportsAdcpVersionField(bundleKey)) {
@@ -114,16 +115,9 @@ function buildVersionEnvelope(adcpVersion, serverVersion) {
114
115
  validateAdcpVersionWire(wireValue);
115
116
  return { adcp_major_version: wireMajor, adcp_version: wireValue };
116
117
  }
117
- let hasWarnedAboutV2PushNotificationSecret = false;
118
- function warnV2PushNotificationNeedsSecret() {
119
- if (hasWarnedAboutV2PushNotificationSecret) return;
120
- hasWarnedAboutV2PushNotificationSecret = true;
121
- console.warn(
122
- "[adcp] Suppressing push_notification_config for a v2 seller: AdCP 2.5 requires an `authentication` block and no `webhookSecret` is configured. Set `webhookSecret` to register async task-status webhooks with this agent, or move the agent to an AdCP 3.x pin, where the RFC 9421 webhook profile needs no shared secret."
123
- );
124
- }
125
118
  function buildVersionEnvelopeForMode(mode, adcpVersion, serverVersion) {
126
- if (mode === "none" || serverVersion === "v2") return {};
119
+ if (serverVersion === "v2") throw new VersionUnsupportedError("request", "version", "v2");
120
+ if (mode === "none") return {};
127
121
  if (mode === "major-only") return { adcp_major_version: resolveWireMajor(adcpVersion) };
128
122
  return buildVersionEnvelope(adcpVersion, serverVersion);
129
123
  }
@@ -160,7 +154,7 @@ function prepareProtocolToolCall(agent, args, options = {}) {
160
154
  const argsWithVersion = applyVersionEnvelope(args, envelope);
161
155
  applyPublishedSchemaCompatibility(options.toolName, argsWithVersion, args);
162
156
  const effectiveBundle = typeof argsWithVersion.adcp_version === "string" ? resolveBundleKey(argsWithVersion.adcp_version) : void 0;
163
- const usesApplicationRegistration = options.serverVersion !== "v2" && isAdcpVersionAtLeast(effectiveBundle, "3.1.0");
157
+ const usesApplicationRegistration = isAdcpVersionAtLeast(effectiveBundle, "3.1.0");
164
158
  let pushNotificationConfig;
165
159
  let applicationPushNotificationConfig;
166
160
  let operationId;
@@ -174,8 +168,6 @@ function prepareProtocolToolCall(agent, args, options = {}) {
174
168
  credentials: options.webhookSecret
175
169
  }
176
170
  };
177
- } else if (options.serverVersion === "v2") {
178
- warnV2PushNotificationNeedsSecret();
179
171
  } else {
180
172
  pushNotificationConfig = {
181
173
  url: options.webhookUrl,
@@ -144,9 +144,10 @@ export type SavePropertyRequest = Omit<RegistrySavePropertyRequest, 'authorized_
144
144
  /** Response from POST /api/properties/save (200) */
145
145
  export type SavePropertyResponse = operations['saveProperty']['responses']['200']['content']['application/json'];
146
146
  type RegistryResolveIdentifiersRequest = NonNullable<operations['resolveIdentifiers']['requestBody']>['content']['application/json'];
147
- /** Request body for POST /api/registry/resolve. `mode` defaults to `resolve` server-side. */
148
- export type ResolveIdentifiersRequest = Omit<RegistryResolveIdentifiersRequest, 'mode'> & {
147
+ /** Request body for POST /api/registry/resolve. Mode and sandbox use the registry's defaults when omitted. */
148
+ export type ResolveIdentifiersRequest = Omit<RegistryResolveIdentifiersRequest, 'mode' | 'sandbox'> & {
149
149
  mode?: RegistryResolveIdentifiersRequest['mode'];
150
+ sandbox?: RegistryResolveIdentifiersRequest['sandbox'];
150
151
  };
151
152
  /** Response from POST /api/registry/resolve (200) */
152
153
  export type ResolveIdentifiersResponse = operations['resolveIdentifiers']['responses']['200']['content']['application/json'];
@@ -144,9 +144,10 @@ export type SavePropertyRequest = Omit<RegistrySavePropertyRequest, 'authorized_
144
144
  /** Response from POST /api/properties/save (200) */
145
145
  export type SavePropertyResponse = operations['saveProperty']['responses']['200']['content']['application/json'];
146
146
  type RegistryResolveIdentifiersRequest = NonNullable<operations['resolveIdentifiers']['requestBody']>['content']['application/json'];
147
- /** Request body for POST /api/registry/resolve. `mode` defaults to `resolve` server-side. */
148
- export type ResolveIdentifiersRequest = Omit<RegistryResolveIdentifiersRequest, 'mode'> & {
147
+ /** Request body for POST /api/registry/resolve. Mode and sandbox use the registry's defaults when omitted. */
148
+ export type ResolveIdentifiersRequest = Omit<RegistryResolveIdentifiersRequest, 'mode' | 'sandbox'> & {
149
149
  mode?: RegistryResolveIdentifiersRequest['mode'];
150
+ sandbox?: RegistryResolveIdentifiersRequest['sandbox'];
150
151
  };
151
152
  /** Response from POST /api/registry/resolve (200) */
152
153
  export type ResolveIdentifiersResponse = operations['resolveIdentifiers']['responses']['200']['content']['application/json'];
@@ -283,7 +283,7 @@ export interface paths {
283
283
  put?: never;
284
284
  /**
285
285
  * Save property
286
- * @description Save or update a hosted property in the registry. Requires authentication. For existing properties, creates a revision-tracked edit. For new properties, creates the property directly. Cannot edit authoritative properties managed via adagents.json.
286
+ * @description Save or update a hosted property in the registry. Requires authentication. For bulk identifier contributions use resolveIdentifiers instead (up to 10,000 identifiers per request). This endpoint is limited to 60 requests/hour per user/IP. publisher_domain must be a lowercase hostname without a URL, port, whitespace, wildcard, or trailing dot. Reserved test domains are rejected unless sandbox is true. With sandbox: true the request is validated and a simulated result is returned without reading or writing a hosted property; the ID is ephemeral. For existing properties, creates a revision-tracked edit. For new properties, creates the property directly. Cannot edit authoritative properties managed via adagents.json.
287
287
  *
288
288
  * This is an identity-only write surface: the stored document always carries `authorized_agents: []`. Sales authorization lives solely in the publisher's own origin `adagents.json`; the community registry cannot mint or carry it. Any `authorized_agents` sent in the request body is ignored.
289
289
  */
@@ -525,6 +525,8 @@ export interface paths {
525
525
  * @description Given a percent-encoded `agent_url`, returns the publishers whose adagents.json authorizes that agent, with provenance (`discovery_method`, `manager_domain`), per-publisher property counts (`properties_authorized`, `properties_total`, scoped to this publisher only — never network-wide), signing-key pin status, and lifecycle state (`authorized` / `revoked`).
526
526
  *
527
527
  * Spec: [docs/aao/directory-api.mdx](/docs/aao/directory-api) (adcp#4823). This endpoint is the spec-compliant richer-shape replacement for the legacy `/api/registry/lookup/agent/{agentUrl}/domains`, which returns domain strings only.
528
+ *
529
+ * `agent_url` is matched with [AdCP URL canonicalization](/docs/reference/url-canonicalization) and a **non-root trailing slash is significant**: `https://a.example/mcp` and `https://a.example/mcp/` are different agents and can return different publisher sets, the same rule the SDK applies in `verify_agent_authorization`. Ask for the spelling the publisher's adagents.json lists. (Through 2026-10-18 this endpoint folded the two spellings together and answered both with the slashless agent's publishers; that disagreed with the spec and with the validator.) The `agent_url` in the response echoes the canonicalized lookup key, slash included.
528
530
  */
529
531
  get: operations["getPublishersForAgentLegacyApiPrefix"];
530
532
  put?: never;
@@ -547,6 +549,8 @@ export interface paths {
547
549
  * @description Given a percent-encoded `agent_url`, returns the publishers whose adagents.json authorizes that agent, with provenance (`discovery_method`, `manager_domain`), per-publisher property counts (`properties_authorized`, `properties_total`, scoped to this publisher only — never network-wide), signing-key pin status, and lifecycle state (`authorized` / `revoked`).
548
550
  *
549
551
  * Spec: [docs/aao/directory-api.mdx](/docs/aao/directory-api) (adcp#4823). This endpoint is the spec-compliant richer-shape replacement for the legacy `/api/registry/lookup/agent/{agentUrl}/domains`, which returns domain strings only.
552
+ *
553
+ * `agent_url` is matched with [AdCP URL canonicalization](/docs/reference/url-canonicalization) and a **non-root trailing slash is significant**: `https://a.example/mcp` and `https://a.example/mcp/` are different agents and can return different publisher sets, the same rule the SDK applies in `verify_agent_authorization`. Ask for the spelling the publisher's adagents.json lists. (Through 2026-10-18 this endpoint folded the two spellings together and answered both with the slashless agent's publishers; that disagreed with the spec and with the validator.) The `agent_url` in the response echoes the canonicalized lookup key, slash included.
550
554
  */
551
555
  get: operations["getPublishersForAgent"];
552
556
  put?: never;
@@ -2526,6 +2530,8 @@ export interface components {
2526
2530
  stats?: components["schemas"]["AgentStats"];
2527
2531
  capabilities?: components["schemas"]["AgentCapabilities"];
2528
2532
  compliance?: components["schemas"]["AgentCompliance"];
2533
+ /** @description Every raw agent_url spelling the directory has indexed under this agent's identity, with the listed (canonical) url first. The registry keys an agent by identity, folding a non-root trailing slash, but GET /v1/agents/{agent_url}/publishers matches spec-exactly with the slash significant — so a client answering "which publishers authorize this agent" must query once per spelling here and merge the results. */
2534
+ declared_urls?: string[];
2529
2535
  publisher_domains?: string[];
2530
2536
  property_summary?: components["schemas"]["PropertySummary"];
2531
2537
  };
@@ -2661,6 +2667,8 @@ export interface components {
2661
2667
  timeout_ms: number | null;
2662
2668
  storyboard_start_offset: number | null;
2663
2669
  auth_type: string | null;
2670
+ /** @description Declared specialisms the graded compliance release does not define. Capability resolution skipped them instead of voiding the run; they were not graded. Absent on ordinary runs. */
2671
+ tolerated_undefined_specialisms?: string[];
2664
2672
  } | null;
2665
2673
  /** @enum {string} */
2666
2674
  BadgeRole: "media-buy" | "creative" | "signals" | "governance" | "brand" | "sponsored-intelligence";
@@ -4246,13 +4254,31 @@ export interface components {
4246
4254
  storyboards_total: number | null;
4247
4255
  first_blocker: string | null;
4248
4256
  } | null;
4257
+ /** @description Owner/operator-only. Present while the newest scheduled heartbeat ran out of time, so the owner can see that the published result is not being refreshed. Null for other viewers and once a later heartbeat completes. This does not change the public verdict. */
4258
+ heartbeat_timeout?: {
4259
+ /** Format: uuid */
4260
+ run_id: string;
4261
+ /** Format: date-time */
4262
+ timed_out_at: string;
4263
+ duration_ms: number | null;
4264
+ timeout_ms: number | null;
4265
+ storyboards_completed: number | null;
4266
+ storyboards_total: number | null;
4267
+ consecutive: number;
4268
+ /** @description True when the streak filled the lookback window, so the real run of timeouts may be longer than `consecutive`. */
4269
+ consecutive_capped: boolean;
4270
+ /** Format: date-time */
4271
+ published_at: string | null;
4272
+ /** @description Ready-to-render owner-facing sentence. Built only from platform- and runner-generated values; no agent response text. */
4273
+ summary: string;
4274
+ } | null;
4249
4275
  /** @description How often the heartbeat re-tests this agent, in hours */
4250
4276
  check_interval_hours?: number;
4251
4277
  /** @description Specialisms the agent declared in get_adcp_capabilities, from the latest run */
4252
4278
  declared_specialisms?: string[];
4253
- /** @description Per-specialism pass/fail/untested status — keyed on declared specialism, derived from the matching storyboard's status */
4279
+ /** @description Per-specialism pass/fail/untested status — keyed on declared specialism, derived from the matching storyboard's status. `not_applicable` means AdCP introduced the specialism after the compliance release this run graded, so it could not be tested. */
4254
4280
  specialism_status?: {
4255
- [key: string]: "passing" | "failing" | "untested" | "unknown";
4281
+ [key: string]: "passing" | "failing" | "untested" | "unknown" | "not_applicable";
4256
4282
  };
4257
4283
  eligibility?: components["schemas"]["ComplianceEligibility"];
4258
4284
  /** @description Public per-storyboard verdicts and aggregate step counts. First-failure diagnostic fields are populated only for owners; scalar diagnostics are null and validation evidence is empty for other callers. */
@@ -4892,6 +4918,11 @@ export interface components {
4892
4918
  */
4893
4919
  OrganizationRevenueTier: "under_1m" | "1m_5m" | "5m_50m" | "50m_250m" | "250m_1b" | "1b_plus";
4894
4920
  ResolveResponse: {
4921
+ /**
4922
+ * @description Present for a non-persistent sandbox simulation. New property handles are ephemeral.
4923
+ * @enum {boolean}
4924
+ */
4925
+ sandbox?: true;
4895
4926
  resolved: components["schemas"]["ResolvedEntry"][];
4896
4927
  summary: {
4897
4928
  total: number;
@@ -4915,30 +4946,30 @@ export interface components {
4915
4946
  CatalogIdentifier: {
4916
4947
  /** @example domain */
4917
4948
  type: string;
4918
- /** @example nytimes.com */
4949
+ /** @example streamhaus.com */
4919
4950
  value: string;
4920
4951
  };
4952
+ /** @description Up to 10,000 identifiers plus provenance. resolve requires authentication and contributes unknown identifiers; lookup is read-only. Domain/subdomain values must follow core/identifier.json; production rejects reserved test domains. sandbox: true simulates contributions without writes. */
4921
4953
  ResolveRequest: {
4922
4954
  /** @description Identifiers to resolve (and, in resolve mode, contribute). Max 10,000 per call for all callers. */
4923
4955
  identifiers: components["schemas"]["CatalogIdentifier"][];
4924
4956
  provenance: components["schemas"]["FactProvenance"];
4925
4957
  /**
4926
- * @description `resolve` (default) contributes the identifiers, auto-creates missing catalog entries, logs demand activity, and returns rids — requires authentication. `lookup` is a pure read: no write, no activity log, no auth.
4958
+ * @description resolve (default) contributes identifiers, creates missing catalog entries, and logs activity; authentication is required. lookup is a public read with no writes or activity logging.
4927
4959
  * @default resolve
4928
4960
  * @enum {string}
4929
4961
  */
4930
4962
  mode: "resolve" | "lookup";
4963
+ /** @description Simulate contributions without storing properties, identifiers, facts, or activity. Reads existing catalog data; new handles are ephemeral. Reserved test domains are allowed only in sandbox mode. Defaults to false when omitted. */
4964
+ sandbox?: boolean;
4931
4965
  };
4932
4966
  FactProvenance: {
4933
4967
  /**
4934
- * @description How the caller knows these identifiers — the trust/audit envelope on the fact. Determines the confidence the catalog assigns. `crawl` is reserved for server-side pipelines; callers use the others.
4968
+ * @description How the caller knows these identifiers — the trust/audit envelope on the fact. Determines the confidence the catalog assigns. crawl is reserved for server-side pipelines; callers use the others.
4935
4969
  * @enum {string}
4936
4970
  */
4937
4971
  type: "agency_allowlist" | "publisher_declaration" | "impression_log" | "ssp_inventory" | "deal_history" | "crawl" | "data_partner" | "member_assertion";
4938
- /**
4939
- * @description Optional free-text annotation (campaign, dataset).
4940
- * @example unilever_q3
4941
- */
4972
+ /** @description Optional free-text annotation (campaign, dataset). */
4942
4973
  context?: string;
4943
4974
  };
4944
4975
  CatalogDisputeTriageResult: {
@@ -5731,6 +5762,11 @@ export interface operations {
5731
5762
  "application/json": {
5732
5763
  /** @example examplepub.com */
5733
5764
  publisher_domain: string;
5765
+ /**
5766
+ * @description Validate and simulate a save without persisting it. Allows reserved test hostnames.
5767
+ * @default false
5768
+ */
5769
+ sandbox?: boolean;
5734
5770
  /**
5735
5771
  * @description Ignored. Community-registry rows never assert sales authorization — the owner's origin adagents.json is the sole authorization source — so any value here is dropped and the stored document carries authorized_agents:[].
5736
5772
  * @example []
@@ -5770,6 +5806,8 @@ export interface operations {
5770
5806
  success: true;
5771
5807
  message: string;
5772
5808
  id: string;
5809
+ /** @enum {boolean} */
5810
+ sandbox?: true;
5773
5811
  revision_number?: number;
5774
5812
  };
5775
5813
  };
@@ -8475,7 +8513,7 @@ export interface operations {
8475
8513
  getAgentAuthorizations: {
8476
8514
  parameters: {
8477
8515
  query: {
8478
- /** @description Agent URL to look up. Canonicalized server-side (lowercased, trailing slashes trimmed). */
8516
+ /** @description Agent URL to look up. Canonicalized server-side per AdCP URL canonicalization: the scheme and host fold, the path does not. */
8479
8517
  agent_url: string;
8480
8518
  /** @description `effective` (default) applies override layer; `raw` reads base table. */
8481
8519
  include?: "raw" | "effective";
@@ -10954,6 +10992,8 @@ export interface operations {
10954
10992
  }[];
10955
10993
  }[];
10956
10994
  total_storyboards: number;
10995
+ /** @description Declared specialisms AdCP introduced after this compliance release. They have no bundle to run here, so they are listed separately instead of failing resolution. */
10996
+ specialisms_not_applicable?: string[];
10957
10997
  };
10958
10998
  };
10959
10999
  };
@@ -283,7 +283,7 @@ export interface paths {
283
283
  put?: never;
284
284
  /**
285
285
  * Save property
286
- * @description Save or update a hosted property in the registry. Requires authentication. For existing properties, creates a revision-tracked edit. For new properties, creates the property directly. Cannot edit authoritative properties managed via adagents.json.
286
+ * @description Save or update a hosted property in the registry. Requires authentication. For bulk identifier contributions use resolveIdentifiers instead (up to 10,000 identifiers per request). This endpoint is limited to 60 requests/hour per user/IP. publisher_domain must be a lowercase hostname without a URL, port, whitespace, wildcard, or trailing dot. Reserved test domains are rejected unless sandbox is true. With sandbox: true the request is validated and a simulated result is returned without reading or writing a hosted property; the ID is ephemeral. For existing properties, creates a revision-tracked edit. For new properties, creates the property directly. Cannot edit authoritative properties managed via adagents.json.
287
287
  *
288
288
  * This is an identity-only write surface: the stored document always carries `authorized_agents: []`. Sales authorization lives solely in the publisher's own origin `adagents.json`; the community registry cannot mint or carry it. Any `authorized_agents` sent in the request body is ignored.
289
289
  */
@@ -525,6 +525,8 @@ export interface paths {
525
525
  * @description Given a percent-encoded `agent_url`, returns the publishers whose adagents.json authorizes that agent, with provenance (`discovery_method`, `manager_domain`), per-publisher property counts (`properties_authorized`, `properties_total`, scoped to this publisher only — never network-wide), signing-key pin status, and lifecycle state (`authorized` / `revoked`).
526
526
  *
527
527
  * Spec: [docs/aao/directory-api.mdx](/docs/aao/directory-api) (adcp#4823). This endpoint is the spec-compliant richer-shape replacement for the legacy `/api/registry/lookup/agent/{agentUrl}/domains`, which returns domain strings only.
528
+ *
529
+ * `agent_url` is matched with [AdCP URL canonicalization](/docs/reference/url-canonicalization) and a **non-root trailing slash is significant**: `https://a.example/mcp` and `https://a.example/mcp/` are different agents and can return different publisher sets, the same rule the SDK applies in `verify_agent_authorization`. Ask for the spelling the publisher's adagents.json lists. (Through 2026-10-18 this endpoint folded the two spellings together and answered both with the slashless agent's publishers; that disagreed with the spec and with the validator.) The `agent_url` in the response echoes the canonicalized lookup key, slash included.
528
530
  */
529
531
  get: operations["getPublishersForAgentLegacyApiPrefix"];
530
532
  put?: never;
@@ -547,6 +549,8 @@ export interface paths {
547
549
  * @description Given a percent-encoded `agent_url`, returns the publishers whose adagents.json authorizes that agent, with provenance (`discovery_method`, `manager_domain`), per-publisher property counts (`properties_authorized`, `properties_total`, scoped to this publisher only — never network-wide), signing-key pin status, and lifecycle state (`authorized` / `revoked`).
548
550
  *
549
551
  * Spec: [docs/aao/directory-api.mdx](/docs/aao/directory-api) (adcp#4823). This endpoint is the spec-compliant richer-shape replacement for the legacy `/api/registry/lookup/agent/{agentUrl}/domains`, which returns domain strings only.
552
+ *
553
+ * `agent_url` is matched with [AdCP URL canonicalization](/docs/reference/url-canonicalization) and a **non-root trailing slash is significant**: `https://a.example/mcp` and `https://a.example/mcp/` are different agents and can return different publisher sets, the same rule the SDK applies in `verify_agent_authorization`. Ask for the spelling the publisher's adagents.json lists. (Through 2026-10-18 this endpoint folded the two spellings together and answered both with the slashless agent's publishers; that disagreed with the spec and with the validator.) The `agent_url` in the response echoes the canonicalized lookup key, slash included.
550
554
  */
551
555
  get: operations["getPublishersForAgent"];
552
556
  put?: never;
@@ -2526,6 +2530,8 @@ export interface components {
2526
2530
  stats?: components["schemas"]["AgentStats"];
2527
2531
  capabilities?: components["schemas"]["AgentCapabilities"];
2528
2532
  compliance?: components["schemas"]["AgentCompliance"];
2533
+ /** @description Every raw agent_url spelling the directory has indexed under this agent's identity, with the listed (canonical) url first. The registry keys an agent by identity, folding a non-root trailing slash, but GET /v1/agents/{agent_url}/publishers matches spec-exactly with the slash significant — so a client answering "which publishers authorize this agent" must query once per spelling here and merge the results. */
2534
+ declared_urls?: string[];
2529
2535
  publisher_domains?: string[];
2530
2536
  property_summary?: components["schemas"]["PropertySummary"];
2531
2537
  };
@@ -2661,6 +2667,8 @@ export interface components {
2661
2667
  timeout_ms: number | null;
2662
2668
  storyboard_start_offset: number | null;
2663
2669
  auth_type: string | null;
2670
+ /** @description Declared specialisms the graded compliance release does not define. Capability resolution skipped them instead of voiding the run; they were not graded. Absent on ordinary runs. */
2671
+ tolerated_undefined_specialisms?: string[];
2664
2672
  } | null;
2665
2673
  /** @enum {string} */
2666
2674
  BadgeRole: "media-buy" | "creative" | "signals" | "governance" | "brand" | "sponsored-intelligence";
@@ -4246,13 +4254,31 @@ export interface components {
4246
4254
  storyboards_total: number | null;
4247
4255
  first_blocker: string | null;
4248
4256
  } | null;
4257
+ /** @description Owner/operator-only. Present while the newest scheduled heartbeat ran out of time, so the owner can see that the published result is not being refreshed. Null for other viewers and once a later heartbeat completes. This does not change the public verdict. */
4258
+ heartbeat_timeout?: {
4259
+ /** Format: uuid */
4260
+ run_id: string;
4261
+ /** Format: date-time */
4262
+ timed_out_at: string;
4263
+ duration_ms: number | null;
4264
+ timeout_ms: number | null;
4265
+ storyboards_completed: number | null;
4266
+ storyboards_total: number | null;
4267
+ consecutive: number;
4268
+ /** @description True when the streak filled the lookback window, so the real run of timeouts may be longer than `consecutive`. */
4269
+ consecutive_capped: boolean;
4270
+ /** Format: date-time */
4271
+ published_at: string | null;
4272
+ /** @description Ready-to-render owner-facing sentence. Built only from platform- and runner-generated values; no agent response text. */
4273
+ summary: string;
4274
+ } | null;
4249
4275
  /** @description How often the heartbeat re-tests this agent, in hours */
4250
4276
  check_interval_hours?: number;
4251
4277
  /** @description Specialisms the agent declared in get_adcp_capabilities, from the latest run */
4252
4278
  declared_specialisms?: string[];
4253
- /** @description Per-specialism pass/fail/untested status — keyed on declared specialism, derived from the matching storyboard's status */
4279
+ /** @description Per-specialism pass/fail/untested status — keyed on declared specialism, derived from the matching storyboard's status. `not_applicable` means AdCP introduced the specialism after the compliance release this run graded, so it could not be tested. */
4254
4280
  specialism_status?: {
4255
- [key: string]: "passing" | "failing" | "untested" | "unknown";
4281
+ [key: string]: "passing" | "failing" | "untested" | "unknown" | "not_applicable";
4256
4282
  };
4257
4283
  eligibility?: components["schemas"]["ComplianceEligibility"];
4258
4284
  /** @description Public per-storyboard verdicts and aggregate step counts. First-failure diagnostic fields are populated only for owners; scalar diagnostics are null and validation evidence is empty for other callers. */
@@ -4892,6 +4918,11 @@ export interface components {
4892
4918
  */
4893
4919
  OrganizationRevenueTier: "under_1m" | "1m_5m" | "5m_50m" | "50m_250m" | "250m_1b" | "1b_plus";
4894
4920
  ResolveResponse: {
4921
+ /**
4922
+ * @description Present for a non-persistent sandbox simulation. New property handles are ephemeral.
4923
+ * @enum {boolean}
4924
+ */
4925
+ sandbox?: true;
4895
4926
  resolved: components["schemas"]["ResolvedEntry"][];
4896
4927
  summary: {
4897
4928
  total: number;
@@ -4915,30 +4946,30 @@ export interface components {
4915
4946
  CatalogIdentifier: {
4916
4947
  /** @example domain */
4917
4948
  type: string;
4918
- /** @example nytimes.com */
4949
+ /** @example streamhaus.com */
4919
4950
  value: string;
4920
4951
  };
4952
+ /** @description Up to 10,000 identifiers plus provenance. resolve requires authentication and contributes unknown identifiers; lookup is read-only. Domain/subdomain values must follow core/identifier.json; production rejects reserved test domains. sandbox: true simulates contributions without writes. */
4921
4953
  ResolveRequest: {
4922
4954
  /** @description Identifiers to resolve (and, in resolve mode, contribute). Max 10,000 per call for all callers. */
4923
4955
  identifiers: components["schemas"]["CatalogIdentifier"][];
4924
4956
  provenance: components["schemas"]["FactProvenance"];
4925
4957
  /**
4926
- * @description `resolve` (default) contributes the identifiers, auto-creates missing catalog entries, logs demand activity, and returns rids — requires authentication. `lookup` is a pure read: no write, no activity log, no auth.
4958
+ * @description resolve (default) contributes identifiers, creates missing catalog entries, and logs activity; authentication is required. lookup is a public read with no writes or activity logging.
4927
4959
  * @default resolve
4928
4960
  * @enum {string}
4929
4961
  */
4930
4962
  mode: "resolve" | "lookup";
4963
+ /** @description Simulate contributions without storing properties, identifiers, facts, or activity. Reads existing catalog data; new handles are ephemeral. Reserved test domains are allowed only in sandbox mode. Defaults to false when omitted. */
4964
+ sandbox?: boolean;
4931
4965
  };
4932
4966
  FactProvenance: {
4933
4967
  /**
4934
- * @description How the caller knows these identifiers — the trust/audit envelope on the fact. Determines the confidence the catalog assigns. `crawl` is reserved for server-side pipelines; callers use the others.
4968
+ * @description How the caller knows these identifiers — the trust/audit envelope on the fact. Determines the confidence the catalog assigns. crawl is reserved for server-side pipelines; callers use the others.
4935
4969
  * @enum {string}
4936
4970
  */
4937
4971
  type: "agency_allowlist" | "publisher_declaration" | "impression_log" | "ssp_inventory" | "deal_history" | "crawl" | "data_partner" | "member_assertion";
4938
- /**
4939
- * @description Optional free-text annotation (campaign, dataset).
4940
- * @example unilever_q3
4941
- */
4972
+ /** @description Optional free-text annotation (campaign, dataset). */
4942
4973
  context?: string;
4943
4974
  };
4944
4975
  CatalogDisputeTriageResult: {
@@ -5731,6 +5762,11 @@ export interface operations {
5731
5762
  "application/json": {
5732
5763
  /** @example examplepub.com */
5733
5764
  publisher_domain: string;
5765
+ /**
5766
+ * @description Validate and simulate a save without persisting it. Allows reserved test hostnames.
5767
+ * @default false
5768
+ */
5769
+ sandbox?: boolean;
5734
5770
  /**
5735
5771
  * @description Ignored. Community-registry rows never assert sales authorization — the owner's origin adagents.json is the sole authorization source — so any value here is dropped and the stored document carries authorized_agents:[].
5736
5772
  * @example []
@@ -5770,6 +5806,8 @@ export interface operations {
5770
5806
  success: true;
5771
5807
  message: string;
5772
5808
  id: string;
5809
+ /** @enum {boolean} */
5810
+ sandbox?: true;
5773
5811
  revision_number?: number;
5774
5812
  };
5775
5813
  };
@@ -8475,7 +8513,7 @@ export interface operations {
8475
8513
  getAgentAuthorizations: {
8476
8514
  parameters: {
8477
8515
  query: {
8478
- /** @description Agent URL to look up. Canonicalized server-side (lowercased, trailing slashes trimmed). */
8516
+ /** @description Agent URL to look up. Canonicalized server-side per AdCP URL canonicalization: the scheme and host fold, the path does not. */
8479
8517
  agent_url: string;
8480
8518
  /** @description `effective` (default) applies override layer; `raw` reads base table. */
8481
8519
  include?: "raw" | "effective";
@@ -10954,6 +10992,8 @@ export interface operations {
10954
10992
  }[];
10955
10993
  }[];
10956
10994
  total_storyboards: number;
10995
+ /** @description Declared specialisms AdCP introduced after this compliance release. They have no bundle to run here, so they are listed separately instead of failing resolution. */
10996
+ specialisms_not_applicable?: string[];
10957
10997
  };
10958
10998
  };
10959
10999
  };
@@ -197,7 +197,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
197
197
  semanticContractId: string;
198
198
  semanticContractVersion: string;
199
199
  semanticContractSha256: string;
200
- status: "delayed" | "present" | "missing" | "unsupported" | "partial" | "stale" | "explicit_zero";
200
+ status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
201
201
  dataThrough?: string | undefined;
202
202
  reason?: string | undefined;
203
203
  }[];
@@ -209,7 +209,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
209
209
  constituentId: string;
210
210
  constituentKind: "product";
211
211
  productId: string;
212
- status: "delayed" | "present" | "missing" | "unsupported" | "partial" | "stale" | "explicit_zero";
212
+ status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
213
213
  packageId?: undefined;
214
214
  mediaBuyId?: undefined;
215
215
  productBinding?: undefined;
@@ -229,7 +229,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
229
229
  bindingSha256: string;
230
230
  productId: string;
231
231
  };
232
- status: "delayed" | "present" | "missing" | "unsupported" | "partial" | "stale" | "explicit_zero";
232
+ status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
233
233
  mediaBuyId?: undefined;
234
234
  dataThrough?: string | undefined;
235
235
  reason?: string | undefined;
@@ -247,7 +247,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
247
247
  bindingSha256: string;
248
248
  productId: string;
249
249
  };
250
- status: "delayed" | "present" | "missing" | "unsupported" | "partial" | "stale" | "explicit_zero";
250
+ status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
251
251
  packageId?: undefined;
252
252
  dataThrough?: string | undefined;
253
253
  reason?: string | undefined;
@@ -449,7 +449,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
449
449
  semanticContractId: string;
450
450
  semanticContractVersion: string;
451
451
  semanticContractSha256: string;
452
- status: "delayed" | "present" | "missing" | "unsupported" | "partial" | "stale" | "explicit_zero";
452
+ status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
453
453
  dataThrough?: string | undefined;
454
454
  reason?: string | undefined;
455
455
  }[];
@@ -461,7 +461,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
461
461
  constituentId: string;
462
462
  constituentKind: "product";
463
463
  productId: string;
464
- status: "delayed" | "present" | "missing" | "unsupported" | "partial" | "stale" | "explicit_zero";
464
+ status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
465
465
  packageId?: undefined;
466
466
  mediaBuyId?: undefined;
467
467
  productBinding?: undefined;
@@ -481,7 +481,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
481
481
  bindingSha256: string;
482
482
  productId: string;
483
483
  };
484
- status: "delayed" | "present" | "missing" | "unsupported" | "partial" | "stale" | "explicit_zero";
484
+ status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
485
485
  mediaBuyId?: undefined;
486
486
  dataThrough?: string | undefined;
487
487
  reason?: string | undefined;
@@ -499,7 +499,7 @@ export declare function validateReportingRevisionSequenceV1(manifests: readonly
499
499
  bindingSha256: string;
500
500
  productId: string;
501
501
  };
502
- status: "delayed" | "present" | "missing" | "unsupported" | "partial" | "stale" | "explicit_zero";
502
+ status: "delayed" | "partial" | "present" | "missing" | "unsupported" | "stale" | "explicit_zero";
503
503
  packageId?: undefined;
504
504
  dataThrough?: string | undefined;
505
505
  reason?: string | undefined;