@adcp/sdk 14.0.0-rc.38 → 14.0.0-rc.39

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 (600) hide show
  1. package/bin/adcp-storyboard-summary.js +286 -0
  2. package/bin/adcp.js +221 -10
  3. package/dist/lib/conformance/schemaLoader.d.mts +1 -1
  4. package/dist/lib/conformance/schemaLoader.d.ts +1 -1
  5. package/dist/lib/core/AgentClient.d.mts +6 -1
  6. package/dist/lib/core/AgentClient.d.ts +6 -1
  7. package/dist/lib/core/AgentClient.js +9 -0
  8. package/dist/lib/core/AgentClient.mjs +9 -0
  9. package/dist/lib/core/ConversationTypes.d.mts +29 -0
  10. package/dist/lib/core/ConversationTypes.d.ts +29 -0
  11. package/dist/lib/core/SingleAgentClient.d.mts +3 -1
  12. package/dist/lib/core/SingleAgentClient.d.ts +3 -1
  13. package/dist/lib/core/SingleAgentClient.js +9 -1
  14. package/dist/lib/core/SingleAgentClient.mjs +9 -1
  15. package/dist/lib/core/TaskExecutor.d.mts +13 -1
  16. package/dist/lib/core/TaskExecutor.d.ts +13 -1
  17. package/dist/lib/core/TaskExecutor.js +216 -18
  18. package/dist/lib/core/TaskExecutor.mjs +216 -19
  19. package/dist/lib/index.d.mts +5 -2
  20. package/dist/lib/index.d.ts +5 -2
  21. package/dist/lib/index.js +10 -1
  22. package/dist/lib/index.mjs +10 -1
  23. package/dist/lib/media-buy/action-assessment.d.mts +77 -0
  24. package/dist/lib/media-buy/action-assessment.d.ts +77 -0
  25. package/dist/lib/media-buy/action-assessment.js +300 -0
  26. package/dist/lib/media-buy/action-assessment.mjs +284 -0
  27. package/dist/lib/media-buy/action-constraints.d.mts +9 -0
  28. package/dist/lib/media-buy/action-constraints.d.ts +9 -0
  29. package/dist/lib/media-buy/action-constraints.js +170 -0
  30. package/dist/lib/media-buy/action-constraints.mjs +146 -0
  31. package/dist/lib/media-buy/action-contracts.d.mts +40 -0
  32. package/dist/lib/media-buy/action-contracts.d.ts +40 -0
  33. package/dist/lib/media-buy/action-contracts.js +304 -0
  34. package/dist/lib/media-buy/action-contracts.mjs +267 -0
  35. package/dist/lib/media-buy/action-metadata.generated.d.mts +37 -0
  36. package/dist/lib/media-buy/action-metadata.generated.d.ts +37 -0
  37. package/dist/lib/media-buy/action-metadata.generated.js +128 -0
  38. package/dist/lib/media-buy/action-metadata.generated.mjs +101 -0
  39. package/dist/lib/media-buy/action-types.d.mts +106 -0
  40. package/dist/lib/media-buy/action-types.d.ts +106 -0
  41. package/dist/lib/{types/v3-1-beta/tools.generated.js → media-buy/action-types.js} +2 -2
  42. package/dist/lib/media-buy/actions.d.mts +6 -0
  43. package/dist/lib/media-buy/actions.d.ts +6 -0
  44. package/dist/lib/media-buy/actions.js +38 -0
  45. package/dist/lib/media-buy/actions.mjs +9 -0
  46. package/dist/lib/media-buy/available-actions.d.mts +2 -1
  47. package/dist/lib/media-buy/available-actions.d.ts +2 -1
  48. package/dist/lib/media-buy/available-actions.js +4 -3
  49. package/dist/lib/media-buy/available-actions.mjs +4 -3
  50. package/dist/lib/media-buy/compatibility.js +3 -0
  51. package/dist/lib/media-buy/compatibility.mjs +3 -0
  52. package/dist/lib/media-buy/index.d.mts +4 -0
  53. package/dist/lib/media-buy/index.d.ts +4 -0
  54. package/dist/lib/media-buy/index.js +3 -1
  55. package/dist/lib/media-buy/index.mjs +1 -0
  56. package/dist/lib/media-buy/legacy-action-ids.d.mts +1 -0
  57. package/dist/lib/media-buy/legacy-action-ids.d.ts +1 -0
  58. package/dist/lib/media-buy/legacy-action-ids.js +50 -0
  59. package/dist/lib/media-buy/legacy-action-ids.mjs +26 -0
  60. package/dist/lib/media-buy/mutations.d.mts +70 -0
  61. package/dist/lib/media-buy/mutations.d.ts +70 -0
  62. package/dist/lib/media-buy/mutations.js +525 -0
  63. package/dist/lib/media-buy/mutations.mjs +498 -0
  64. package/dist/lib/media-buy/preflight.d.mts +20 -69
  65. package/dist/lib/media-buy/preflight.d.ts +20 -69
  66. package/dist/lib/media-buy/preflight.js +100 -336
  67. package/dist/lib/media-buy/preflight.mjs +111 -333
  68. package/dist/lib/media-buy/targeting-input.d.mts +7 -4
  69. package/dist/lib/media-buy/targeting-input.d.ts +7 -4
  70. package/dist/lib/media-buy/types.d.mts +55 -7
  71. package/dist/lib/media-buy/types.d.ts +55 -7
  72. package/dist/lib/protocols/rawResponseCapture.d.mts +12 -0
  73. package/dist/lib/protocols/rawResponseCapture.d.ts +12 -0
  74. package/dist/lib/protocols/rawResponseCapture.js +33 -3
  75. package/dist/lib/protocols/rawResponseCapture.mjs +32 -3
  76. package/dist/lib/registry/types.generated.d.mts +377 -9
  77. package/dist/lib/registry/types.generated.d.ts +377 -9
  78. package/dist/lib/reporting/evidence.d.mts +1 -0
  79. package/dist/lib/reporting/evidence.d.ts +1 -0
  80. package/dist/lib/reporting/evidence.js +32 -3
  81. package/dist/lib/reporting/evidence.mjs +31 -3
  82. package/dist/lib/reporting/ledger/handler.d.mts +51 -1
  83. package/dist/lib/reporting/ledger/handler.d.ts +51 -1
  84. package/dist/lib/reporting/ledger/handler.js +306 -38
  85. package/dist/lib/reporting/ledger/handler.mjs +304 -37
  86. package/dist/lib/reporting/ledger/health.d.mts +12 -0
  87. package/dist/lib/reporting/ledger/health.d.ts +12 -0
  88. package/dist/lib/reporting/ledger/health.js +15 -2
  89. package/dist/lib/reporting/ledger/health.mjs +13 -1
  90. package/dist/lib/reporting/ledger/index.d.mts +3 -0
  91. package/dist/lib/reporting/ledger/index.d.ts +3 -0
  92. package/dist/lib/reporting/ledger/index.js +7 -1
  93. package/dist/lib/reporting/ledger/index.mjs +3 -0
  94. package/dist/lib/reporting/ledger/lifecycle.d.mts +31 -4
  95. package/dist/lib/reporting/ledger/lifecycle.d.ts +31 -4
  96. package/dist/lib/reporting/ledger/lifecycle.js +244 -37
  97. package/dist/lib/reporting/ledger/lifecycle.mjs +244 -37
  98. package/dist/lib/reporting/ledger/managed-postgres.d.mts +231 -0
  99. package/dist/lib/reporting/ledger/managed-postgres.d.ts +231 -0
  100. package/dist/lib/reporting/ledger/managed-postgres.js +1797 -0
  101. package/dist/lib/reporting/ledger/managed-postgres.mjs +1776 -0
  102. package/dist/lib/reporting/ledger/managed.d.mts +355 -0
  103. package/dist/lib/reporting/ledger/managed.d.ts +355 -0
  104. package/dist/lib/reporting/ledger/managed.js +661 -0
  105. package/dist/lib/reporting/ledger/managed.mjs +633 -0
  106. package/dist/lib/reporting/ledger/notification-activity.d.mts +222 -0
  107. package/dist/lib/reporting/ledger/notification-activity.d.ts +222 -0
  108. package/dist/lib/reporting/ledger/notification-activity.js +1139 -0
  109. package/dist/lib/reporting/ledger/notification-activity.mjs +1110 -0
  110. package/dist/lib/reporting/ledger/postgres.d.mts +161 -1
  111. package/dist/lib/reporting/ledger/postgres.d.ts +161 -1
  112. package/dist/lib/reporting/ledger/postgres.js +1153 -21
  113. package/dist/lib/reporting/ledger/postgres.mjs +1152 -21
  114. package/dist/lib/reporting/ledger/producer.d.mts +8 -0
  115. package/dist/lib/reporting/ledger/producer.d.ts +8 -0
  116. package/dist/lib/reporting/ledger/producer.js +146 -52
  117. package/dist/lib/reporting/ledger/producer.mjs +146 -51
  118. package/dist/lib/reporting/ledger/types.d.mts +358 -1
  119. package/dist/lib/reporting/ledger/types.d.ts +358 -1
  120. package/dist/lib/reporting/ledger/types.js +3 -0
  121. package/dist/lib/reporting/ledger/types.mjs +2 -0
  122. package/dist/lib/reporting/service/conformance.d.mts +35 -0
  123. package/dist/lib/reporting/service/conformance.d.ts +35 -0
  124. package/dist/lib/reporting/service/conformance.js +89 -0
  125. package/dist/lib/reporting/service/conformance.mjs +68 -0
  126. package/dist/lib/reporting/service/index.d.mts +182 -0
  127. package/dist/lib/reporting/service/index.d.ts +182 -0
  128. package/dist/lib/reporting/service/index.js +793 -0
  129. package/dist/lib/reporting/service/index.mjs +787 -0
  130. package/dist/lib/reporting/source/index.d.mts +2 -1
  131. package/dist/lib/reporting/source/index.d.ts +2 -1
  132. package/dist/lib/reporting/source/index.js +16 -3
  133. package/dist/lib/reporting/source/index.mjs +12 -1
  134. package/dist/lib/reporting/source/inline.d.mts +88 -1
  135. package/dist/lib/reporting/source/inline.d.ts +88 -1
  136. package/dist/lib/reporting/source/inline.js +1161 -163
  137. package/dist/lib/reporting/source/inline.mjs +1166 -163
  138. package/dist/lib/reporting/source/manifest.js +12 -7
  139. package/dist/lib/reporting/source/manifest.mjs +12 -7
  140. package/dist/lib/reporting/source/source.d.mts +26 -0
  141. package/dist/lib/reporting/source/source.d.ts +26 -0
  142. package/dist/lib/reporting/source/source.js +71 -2
  143. package/dist/lib/reporting/source/source.mjs +65 -1
  144. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  145. package/dist/lib/server/create-adcp-server.d.mts +18 -0
  146. package/dist/lib/server/create-adcp-server.d.ts +18 -0
  147. package/dist/lib/server/create-adcp-server.js +52 -2
  148. package/dist/lib/server/create-adcp-server.mjs +52 -2
  149. package/dist/lib/server/decisioning/account.d.mts +1 -1
  150. package/dist/lib/server/decisioning/account.d.ts +1 -1
  151. package/dist/lib/server/decisioning/index.d.mts +1 -0
  152. package/dist/lib/server/decisioning/index.d.ts +1 -0
  153. package/dist/lib/server/decisioning/platform.d.mts +3 -0
  154. package/dist/lib/server/decisioning/platform.d.ts +3 -0
  155. package/dist/lib/server/decisioning/runtime/from-platform.js +88 -10
  156. package/dist/lib/server/decisioning/runtime/from-platform.mjs +88 -10
  157. package/dist/lib/server/decisioning/specialisms/reporting.d.mts +38 -0
  158. package/dist/lib/server/decisioning/specialisms/reporting.d.ts +38 -0
  159. package/dist/lib/{types/v3-1-beta/index.js → server/decisioning/specialisms/reporting.js} +2 -8
  160. package/dist/lib/server/decisioning/specialisms/reporting.mjs +0 -0
  161. package/dist/lib/server/index.d.mts +4 -2
  162. package/dist/lib/server/index.d.ts +4 -2
  163. package/dist/lib/server/index.js +5 -0
  164. package/dist/lib/server/index.mjs +4 -0
  165. package/dist/lib/server/media-buy-action-resolver.d.mts +63 -0
  166. package/dist/lib/server/media-buy-action-resolver.d.ts +63 -0
  167. package/dist/lib/server/media-buy-action-resolver.js +297 -0
  168. package/dist/lib/server/media-buy-action-resolver.mjs +285 -0
  169. package/dist/lib/server/media-buy-actions.d.mts +7 -8
  170. package/dist/lib/server/media-buy-actions.d.ts +7 -8
  171. package/dist/lib/server/media-buy-actions.js +57 -14
  172. package/dist/lib/server/media-buy-actions.mjs +63 -14
  173. package/dist/lib/server/notification-subscriptions/index.d.mts +2 -2
  174. package/dist/lib/server/notification-subscriptions/index.d.ts +2 -2
  175. package/dist/lib/server/notification-subscriptions/index.js +2 -0
  176. package/dist/lib/server/notification-subscriptions/index.mjs +2 -0
  177. package/dist/lib/server/notification-subscriptions/postgres-runtime.d.mts +3 -1
  178. package/dist/lib/server/notification-subscriptions/postgres-runtime.d.ts +3 -1
  179. package/dist/lib/server/notification-subscriptions/postgres-runtime.js +1 -0
  180. package/dist/lib/server/notification-subscriptions/postgres-runtime.mjs +1 -0
  181. package/dist/lib/server/notification-subscriptions/runtime.d.mts +12 -1
  182. package/dist/lib/server/notification-subscriptions/runtime.d.ts +12 -1
  183. package/dist/lib/server/notification-subscriptions/runtime.js +102 -16
  184. package/dist/lib/server/notification-subscriptions/runtime.mjs +101 -16
  185. package/dist/lib/server/notification-subscriptions/types.d.mts +104 -1
  186. package/dist/lib/server/notification-subscriptions/types.d.ts +104 -1
  187. package/dist/lib/server/webhook-emitter.d.mts +40 -5
  188. package/dist/lib/server/webhook-emitter.d.ts +40 -5
  189. package/dist/lib/server/webhook-emitter.js +23 -12
  190. package/dist/lib/server/webhook-emitter.mjs +23 -12
  191. package/dist/lib/storage/interfaces.d.mts +14 -2
  192. package/dist/lib/storage/interfaces.d.ts +14 -2
  193. package/dist/lib/testing/compliance/comply.d.mts +9 -3
  194. package/dist/lib/testing/compliance/comply.d.ts +9 -3
  195. package/dist/lib/testing/compliance/comply.js +158 -3
  196. package/dist/lib/testing/compliance/comply.mjs +159 -4
  197. package/dist/lib/testing/compliance/storyboard-tracks.js +7 -5
  198. package/dist/lib/testing/compliance/storyboard-tracks.mjs +7 -5
  199. package/dist/lib/testing/compliance/summary.js +10 -1
  200. package/dist/lib/testing/compliance/summary.mjs +10 -1
  201. package/dist/lib/testing/index.d.mts +1 -1
  202. package/dist/lib/testing/index.d.ts +1 -1
  203. package/dist/lib/testing/index.js +2 -0
  204. package/dist/lib/testing/index.mjs +3 -1
  205. package/dist/lib/testing/storyboard/agent-routing.d.mts +12 -43
  206. package/dist/lib/testing/storyboard/agent-routing.d.ts +12 -43
  207. package/dist/lib/testing/storyboard/agent-routing.js +75 -13
  208. package/dist/lib/testing/storyboard/agent-routing.mjs +70 -12
  209. package/dist/lib/testing/storyboard/index.d.mts +1 -0
  210. package/dist/lib/testing/storyboard/index.d.ts +1 -0
  211. package/dist/lib/testing/storyboard/index.js +3 -0
  212. package/dist/lib/testing/storyboard/index.mjs +2 -0
  213. package/dist/lib/testing/storyboard/junit.d.mts +1 -1
  214. package/dist/lib/testing/storyboard/junit.d.ts +1 -1
  215. package/dist/lib/testing/storyboard/junit.js +21 -2
  216. package/dist/lib/testing/storyboard/junit.mjs +21 -2
  217. package/dist/lib/testing/storyboard/probes.d.mts +130 -0
  218. package/dist/lib/testing/storyboard/probes.d.ts +130 -0
  219. package/dist/lib/testing/storyboard/probes.js +682 -10
  220. package/dist/lib/testing/storyboard/probes.mjs +683 -3
  221. package/dist/lib/testing/storyboard/request-signing/builder.d.mts +16 -5
  222. package/dist/lib/testing/storyboard/request-signing/builder.d.ts +16 -5
  223. package/dist/lib/testing/storyboard/request-signing/grader.d.mts +44 -1
  224. package/dist/lib/testing/storyboard/request-signing/grader.d.ts +44 -1
  225. package/dist/lib/testing/storyboard/request-signing/grader.js +46 -22
  226. package/dist/lib/testing/storyboard/request-signing/grader.mjs +43 -21
  227. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.mts +86 -11
  228. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.d.ts +86 -11
  229. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.js +119 -25
  230. package/dist/lib/testing/storyboard/request-signing/probe-dispatch.mjs +117 -26
  231. package/dist/lib/testing/storyboard/request-signing/synthesize.js +22 -2
  232. package/dist/lib/testing/storyboard/request-signing/synthesize.mjs +22 -2
  233. package/dist/lib/testing/storyboard/runner.d.mts +103 -0
  234. package/dist/lib/testing/storyboard/runner.d.ts +103 -0
  235. package/dist/lib/testing/storyboard/runner.js +1090 -268
  236. package/dist/lib/testing/storyboard/runner.mjs +1096 -261
  237. package/dist/lib/testing/storyboard/seeding.d.mts +4 -1
  238. package/dist/lib/testing/storyboard/seeding.d.ts +4 -1
  239. package/dist/lib/testing/storyboard/seeding.js +55 -24
  240. package/dist/lib/testing/storyboard/seeding.mjs +55 -24
  241. package/dist/lib/testing/storyboard/test-kit.d.mts +37 -3
  242. package/dist/lib/testing/storyboard/test-kit.d.ts +37 -3
  243. package/dist/lib/testing/storyboard/test-kit.js +8 -2
  244. package/dist/lib/testing/storyboard/test-kit.mjs +7 -2
  245. package/dist/lib/testing/storyboard/types.d.mts +132 -10
  246. package/dist/lib/testing/storyboard/types.d.ts +132 -10
  247. package/dist/lib/testing/storyboard/types.js +17 -0
  248. package/dist/lib/testing/storyboard/types.mjs +16 -0
  249. package/dist/lib/testing/storyboard/validations.d.mts +1 -1
  250. package/dist/lib/testing/storyboard/validations.d.ts +1 -1
  251. package/dist/lib/testing/storyboard/validations.js +16 -0
  252. package/dist/lib/testing/storyboard/validations.mjs +16 -0
  253. package/dist/lib/testing/test-controller.d.mts +1 -1
  254. package/dist/lib/testing/test-controller.d.ts +1 -1
  255. package/dist/lib/types/buy-products.d.ts +71 -6
  256. package/dist/lib/types/control-media-buy.d.ts +25 -11
  257. package/dist/lib/types/core.generated.d.mts +69 -10
  258. package/dist/lib/types/core.generated.d.ts +69 -10
  259. package/dist/lib/types/create-media-buy.d.ts +71 -6
  260. package/dist/lib/types/forward-compat-error-codes.d.mts +7 -6
  261. package/dist/lib/types/forward-compat-error-codes.d.ts +7 -6
  262. package/dist/lib/types/index.d.mts +2 -2
  263. package/dist/lib/types/index.d.ts +2 -2
  264. package/dist/lib/types/schemas.generated.d.ts +8040 -8116
  265. package/dist/lib/types/schemas.generated.js +1074 -309
  266. package/dist/lib/types/schemas.generated.mjs +1068 -309
  267. package/dist/lib/types/tools.generated.d.mts +65 -6
  268. package/dist/lib/types/tools.generated.d.ts +65 -6
  269. package/dist/lib/types/update-media-buy.d.ts +71 -6
  270. package/dist/lib/utils/redact-secrets.d.mts +1 -1
  271. package/dist/lib/utils/redact-secrets.d.ts +1 -1
  272. package/dist/lib/utils/redact-secrets.js +1 -1
  273. package/dist/lib/utils/redact-secrets.mjs +1 -1
  274. package/dist/lib/v2/projection/cache-versions.d.mts +0 -1
  275. package/dist/lib/v2/projection/cache-versions.d.ts +0 -1
  276. package/dist/lib/v2/projection/cache-versions.js +1 -15
  277. package/dist/lib/v2/projection/cache-versions.mjs +1 -14
  278. package/dist/lib/v2/projection/canonical-properties.js +2 -2
  279. package/dist/lib/v2/projection/canonical-properties.mjs +3 -3
  280. package/dist/lib/v2/projection/registry.d.mts +1 -1
  281. package/dist/lib/v2/projection/registry.d.ts +1 -1
  282. package/dist/lib/v2/projection/registry.js +2 -2
  283. package/dist/lib/v2/projection/registry.mjs +3 -3
  284. package/dist/lib/version.d.mts +5 -5
  285. package/dist/lib/version.d.ts +5 -5
  286. package/dist/lib/version.js +3 -8
  287. package/dist/lib/version.mjs +3 -8
  288. package/dist/lib/wholesale-feed-sync/index.d.mts +1 -0
  289. package/dist/lib/wholesale-feed-sync/index.d.ts +1 -0
  290. package/dist/lib/wholesale-feed-sync/protocol-types.d.mts +42 -0
  291. package/dist/lib/wholesale-feed-sync/protocol-types.d.ts +42 -0
  292. package/dist/lib/wholesale-feed-sync/protocol-types.js +16 -0
  293. package/dist/lib/wholesale-feed-sync/protocol-types.mjs +0 -0
  294. package/dist/lib/wholesale-feed-sync/sync.d.mts +6 -6
  295. package/dist/lib/wholesale-feed-sync/sync.d.ts +6 -6
  296. package/dist/lib/wholesale-feed-sync/sync.js +3 -1
  297. package/dist/lib/wholesale-feed-sync/sync.mjs +3 -1
  298. package/dist/lib/wholesale-feed-sync/types.d.mts +15 -14
  299. package/dist/lib/wholesale-feed-sync/types.d.ts +15 -14
  300. package/dist/lib/wholesale-feed-sync/webhook-notification.d.mts +7 -5
  301. package/dist/lib/wholesale-feed-sync/webhook-notification.d.ts +7 -5
  302. package/dist/lib/wholesale-feed-sync/webhook-notification.js +45 -0
  303. package/dist/lib/wholesale-feed-sync/webhook-notification.mjs +44 -0
  304. package/docs/CLI.md +1 -1
  305. package/docs/TYPE-SUMMARY.md +118 -4
  306. package/docs/guides/ASYNC-API-REFERENCE.md +62 -1
  307. package/docs/guides/ASYNC-DEVELOPER-GUIDE.md +25 -0
  308. package/docs/guides/ASYNC-DOCUMENTATION-INDEX.md +3 -0
  309. package/docs/guides/BUYER-QUICKSTART-3.2.md +5 -0
  310. package/docs/guides/DURABLE-BUYER-WRITES.md +337 -0
  311. package/docs/guides/EXISTING-PLATFORM.md +35 -0
  312. package/docs/guides/MEDIA-BUY-3.2-COMPATIBILITY.md +7 -3
  313. package/docs/guides/MEDIA-BUY-ACTION-ASSESSMENT.md +300 -0
  314. package/docs/guides/REPORTING-LEDGER.md +654 -3
  315. package/docs/guides/REPORTING-SOURCE-EXECUTOR.md +63 -1
  316. package/docs/guides/SELLER-QUICKSTART-3.2.md +2 -0
  317. package/docs/guides/VALIDATE-YOUR-AGENT.md +35 -0
  318. package/docs/guides/idempotency-crash-recovery.md +4 -0
  319. package/docs/llms.txt +4 -2
  320. package/docs/migration-14.x-rc-worksheet.md +5 -5
  321. package/docs/migration-7.9-to-7.10.md +7 -5
  322. package/examples/README.md +17 -0
  323. package/examples/durable-buyer-writes/caller.ts +745 -0
  324. package/examples/durable-buyer-writes/worker.ts +240 -0
  325. package/examples/reliable-reporting-service/README.md +100 -0
  326. package/examples/seller-3.2-starter.ts +7 -8
  327. package/examples/targeting-input-existing-platform.ts +153 -0
  328. package/package.json +41 -29
  329. package/skills/build-seller-agent/specialisms/signed-requests.md +11 -1
  330. package/skills/cross-cutting.md +28 -11
  331. package/compliance/cache/3.1.0-beta.7/domains/brand/index.yaml +0 -160
  332. package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/distributed_brand_resolution.yaml +0 -415
  333. package/compliance/cache/3.1.0-beta.7/domains/brand/scenarios/single_side_trust_extension.yaml +0 -454
  334. package/compliance/cache/3.1.0-beta.7/domains/creative/index.yaml +0 -339
  335. package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/billing_out_of_band.yaml +0 -153
  336. package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
  337. package/compliance/cache/3.1.0-beta.7/domains/creative/scenarios/native_in_feed.yaml +0 -543
  338. package/compliance/cache/3.1.0-beta.7/domains/governance/index.yaml +0 -682
  339. package/compliance/cache/3.1.0-beta.7/domains/media-buy/index.yaml +0 -781
  340. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/audience_buy_flow.yaml +0 -380
  341. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/available_actions.yaml +0 -565
  342. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
  343. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/canonical_formats.yaml +0 -711
  344. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
  345. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
  346. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/create_media_buy_async.yaml +0 -234
  347. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
  348. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/creative_reception.yaml +0 -247
  349. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/delivery_reporting.yaml +0 -357
  350. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment.yaml +0 -633
  351. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
  352. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/event_dedup_flow.yaml +0 -399
  353. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
  354. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_approved.yaml +0 -214
  355. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_conditions.yaml +0 -199
  356. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied.yaml +0 -204
  357. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
  358. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/invalid_transitions.yaml +0 -289
  359. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
  360. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
  361. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_accountability.yaml +0 -244
  362. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
  363. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
  364. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
  365. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow.yaml +0 -428
  366. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
  367. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/product_signal_targeting.yaml +0 -373
  368. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize.yaml +0 -399
  369. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
  370. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
  371. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
  372. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_enforcement.yaml +0 -517
  373. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
  374. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/reach_buy_flow.yaml +0 -823
  375. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
  376. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/refine_products.yaml +0 -148
  377. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
  378. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
  379. package/compliance/cache/3.1.0-beta.7/domains/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
  380. package/compliance/cache/3.1.0-beta.7/domains/media-buy/state-machine.yaml +0 -442
  381. package/compliance/cache/3.1.0-beta.7/domains/signals/index.yaml +0 -266
  382. package/compliance/cache/3.1.0-beta.7/domains/sponsored-intelligence/index.yaml +0 -256
  383. package/compliance/cache/3.1.0-beta.7/index.json +0 -356
  384. package/compliance/cache/3.1.0-beta.7/protocols/brand/index.yaml +0 -160
  385. package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/distributed_brand_resolution.yaml +0 -415
  386. package/compliance/cache/3.1.0-beta.7/protocols/brand/scenarios/single_side_trust_extension.yaml +0 -454
  387. package/compliance/cache/3.1.0-beta.7/protocols/creative/index.yaml +0 -339
  388. package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/billing_out_of_band.yaml +0 -153
  389. package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/creative_lifecycle_webhooks.yaml +0 -389
  390. package/compliance/cache/3.1.0-beta.7/protocols/creative/scenarios/native_in_feed.yaml +0 -543
  391. package/compliance/cache/3.1.0-beta.7/protocols/governance/index.yaml +0 -682
  392. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/index.yaml +0 -781
  393. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/audience_buy_flow.yaml +0 -380
  394. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/available_actions.yaml +0 -565
  395. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/billing_finality_delivery.yaml +0 -354
  396. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/canonical_formats.yaml +0 -711
  397. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/clicks_buy_flow.yaml +0 -264
  398. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/completed_views_buy_flow.yaml +0 -344
  399. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/create_media_buy_async.yaml +0 -234
  400. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_fate_after_cancellation.yaml +0 -419
  401. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/creative_reception.yaml +0 -247
  402. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/delivery_reporting.yaml +0 -357
  403. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment.yaml +0 -633
  404. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/dependency_impairment_cardinality.yaml +0 -800
  405. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/event_dedup_flow.yaml +0 -399
  406. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/frequency_cap_enforcement.yaml +0 -309
  407. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_approved.yaml +0 -214
  408. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_conditions.yaml +0 -199
  409. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied.yaml +0 -204
  410. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/governance_denied_recovery.yaml +0 -252
  411. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/invalid_transitions.yaml +0 -289
  412. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_no_match.yaml +0 -148
  413. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/inventory_list_targeting.yaml +0 -276
  414. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_accountability.yaml +0 -244
  415. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/measurement_terms_rejected.yaml +0 -203
  416. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/pending_creatives_to_start.yaml +0 -274
  417. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/per_creative_conversion_attribution.yaml +0 -500
  418. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow.yaml +0 -428
  419. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/performance_buy_flow_roas.yaml +0 -470
  420. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/product_signal_targeting.yaml +0 -373
  421. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize.yaml +0 -399
  422. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_finalize_asap_timing.yaml +0 -264
  423. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/proposal_not_found_errors.yaml +0 -257
  424. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_audit_observation.yaml +0 -333
  425. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_enforcement.yaml +0 -517
  426. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/provenance_truth_of_claim.yaml +0 -294
  427. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/reach_buy_flow.yaml +0 -823
  428. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_finalize_exclusivity.yaml +0 -360
  429. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/refine_products.yaml +0 -148
  430. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_accountability.yaml +0 -293
  431. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_catalog_precondition.yaml +0 -307
  432. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/scenarios/vendor_metric_optimization_flow.yaml +0 -576
  433. package/compliance/cache/3.1.0-beta.7/protocols/media-buy/state-machine.yaml +0 -442
  434. package/compliance/cache/3.1.0-beta.7/protocols/signals/index.yaml +0 -266
  435. package/compliance/cache/3.1.0-beta.7/protocols/sponsored-intelligence/index.yaml +0 -256
  436. package/compliance/cache/3.1.0-beta.7/specialisms/audience-sync/index.yaml +0 -313
  437. package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/index.yaml +0 -350
  438. package/compliance/cache/3.1.0-beta.7/specialisms/brand-rights/scenarios/governance_denied.yaml +0 -226
  439. package/compliance/cache/3.1.0-beta.7/specialisms/collection-lists/index.yaml +0 -359
  440. package/compliance/cache/3.1.0-beta.7/specialisms/content-standards/index.yaml +0 -572
  441. package/compliance/cache/3.1.0-beta.7/specialisms/creative-ad-server/index.yaml +0 -409
  442. package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/generative-seller.yaml +0 -807
  443. package/compliance/cache/3.1.0-beta.7/specialisms/creative-generative/index.yaml +0 -758
  444. package/compliance/cache/3.1.0-beta.7/specialisms/creative-template/index.yaml +0 -510
  445. package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/index.yaml +0 -143
  446. package/compliance/cache/3.1.0-beta.7/specialisms/governance-aware-seller/scenarios/governance_multi_agent_rejected.yaml +0 -117
  447. package/compliance/cache/3.1.0-beta.7/specialisms/governance-delivery-monitor/index.yaml +0 -441
  448. package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/denied.yaml +0 -221
  449. package/compliance/cache/3.1.0-beta.7/specialisms/governance-spend-authority/index.yaml +0 -330
  450. package/compliance/cache/3.1.0-beta.7/specialisms/property-lists/index.yaml +0 -482
  451. package/compliance/cache/3.1.0-beta.7/specialisms/sales-broadcast-tv/index.yaml +0 -738
  452. package/compliance/cache/3.1.0-beta.7/specialisms/sales-catalog-driven/index.yaml +0 -840
  453. package/compliance/cache/3.1.0-beta.7/specialisms/sales-guaranteed/index.yaml +0 -601
  454. package/compliance/cache/3.1.0-beta.7/specialisms/sales-non-guaranteed/index.yaml +0 -546
  455. package/compliance/cache/3.1.0-beta.7/specialisms/sales-proposal-mode/index.yaml +0 -586
  456. package/compliance/cache/3.1.0-beta.7/specialisms/sales-social/index.yaml +0 -919
  457. package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/index.yaml +0 -424
  458. package/compliance/cache/3.1.0-beta.7/specialisms/signal-marketplace/scenarios/governance_denied.yaml +0 -211
  459. package/compliance/cache/3.1.0-beta.7/specialisms/signal-owned/index.yaml +0 -317
  460. package/compliance/cache/3.1.0-beta.7/specialisms/sponsored-intelligence/index.yaml +0 -59
  461. package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor-live.yaml +0 -78
  462. package/compliance/cache/3.1.0-beta.7/test-kits/acme-outdoor.yaml +0 -223
  463. package/compliance/cache/3.1.0-beta.7/test-kits/billing-gate-runner.yaml +0 -115
  464. package/compliance/cache/3.1.0-beta.7/test-kits/bistro-oranje.yaml +0 -126
  465. package/compliance/cache/3.1.0-beta.7/test-kits/distributed-brand-runner.yaml +0 -281
  466. package/compliance/cache/3.1.0-beta.7/test-kits/nova-motors.yaml +0 -262
  467. package/compliance/cache/3.1.0-beta.7/test-kits/osei-natural.yaml +0 -126
  468. package/compliance/cache/3.1.0-beta.7/test-kits/parallel-dispatch-runner.yaml +0 -196
  469. package/compliance/cache/3.1.0-beta.7/test-kits/rate-limit-trip-runner.yaml +0 -172
  470. package/compliance/cache/3.1.0-beta.7/test-kits/signed-requests-runner.yaml +0 -155
  471. package/compliance/cache/3.1.0-beta.7/test-kits/single-side-trust-runner.yaml +0 -294
  472. package/compliance/cache/3.1.0-beta.7/test-kits/substitution-observer-runner.yaml +0 -688
  473. package/compliance/cache/3.1.0-beta.7/test-kits/summit-foods.yaml +0 -125
  474. package/compliance/cache/3.1.0-beta.7/test-kits/webhook-receiver-runner.yaml +0 -265
  475. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/001-minimal-plan.json +0 -43
  476. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/002-full-plan.json +0 -217
  477. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/003-bookkeeping-stripped.json +0 -60
  478. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004a-human-review-omitted.json +0 -43
  479. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/004b-human-review-explicit-null.json +0 -49
  480. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005a-policy-categories-order-1.json +0 -53
  481. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/005b-policy-categories-order-2.json +0 -57
  482. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006a-ext-trace-v1.json +0 -49
  483. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/006b-ext-trace-v2.json +0 -53
  484. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/007-unicode-objectives.json +0 -43
  485. package/compliance/cache/3.1.0-beta.7/test-vectors/plan-hash/008-numeric-canonicalization.json +0 -65
  486. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/README.md +0 -220
  487. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/canonicalization.json +0 -241
  488. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/keys.json +0 -60
  489. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/001-no-signature-header.json +0 -24
  490. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/002-wrong-tag.json +0 -26
  491. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/003-expired-signature.json +0 -26
  492. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/004-window-too-long.json +0 -26
  493. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/005-alg-not-allowed.json +0 -26
  494. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/006-missing-covered-component.json +0 -26
  495. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/007-missing-content-digest.json +0 -26
  496. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/008-unknown-keyid.json +0 -26
  497. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/009-key-ops-missing-verify.json +0 -27
  498. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/010-content-digest-mismatch.json +0 -33
  499. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/011-malformed-header.json +0 -27
  500. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/012-missing-expires-param.json +0 -26
  501. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/013-expires-le-created.json +0 -27
  502. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/014-missing-nonce-param.json +0 -27
  503. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/015-signature-invalid.json +0 -28
  504. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/016-replayed-nonce.json +0 -35
  505. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/017-key-revoked.json +0 -38
  506. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/018-digest-covered-when-forbidden.json +0 -28
  507. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/019-signature-without-signature-input.json +0 -26
  508. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/020-rate-abuse.json +0 -34
  509. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/021-duplicate-signature-input-label.json +0 -31
  510. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/022-multi-valued-content-type.json +0 -31
  511. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/023-multi-valued-content-digest.json +0 -32
  512. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/024-unquoted-string-param.json +0 -31
  513. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/025-jwk-alg-crv-mismatch.json +0 -43
  514. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/026-non-ascii-host.json +0 -31
  515. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/027-webhook-registration-authentication-unsigned.json +0 -25
  516. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/negative/028-unsigned-protocol-method-required.json +0 -26
  517. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/001-basic-post.json +0 -30
  518. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/002-post-with-content-digest.json +0 -31
  519. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/003-es256-post.json +0 -30
  520. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/004-multiple-signature-labels.json +0 -26
  521. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/005-default-port-stripped.json +0 -30
  522. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/006-dot-segment-path.json +0 -30
  523. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/007-query-byte-preserved.json +0 -30
  524. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/008-percent-encoded-path.json +0 -30
  525. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/009-percent-encoded-unreserved-decoded.json +0 -30
  526. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/010-percent-encoded-slash-preserved.json +0 -30
  527. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/011-ipv6-authority.json +0 -30
  528. package/compliance/cache/3.1.0-beta.7/test-vectors/request-signing/positive/012-ipv6-authority-default-port-stripped.json +0 -30
  529. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/README.md +0 -211
  530. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/keys.json +0 -61
  531. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/001-wrong-tag.json +0 -26
  532. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/002-expired-signature.json +0 -26
  533. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/003-window-too-long.json +0 -26
  534. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/004-alg-not-allowed.json +0 -26
  535. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/005-missing-authority-component.json +0 -26
  536. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/006-missing-content-digest.json +0 -25
  537. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/007-unknown-keyid.json +0 -26
  538. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/008-wrong-adcp-use.json +0 -26
  539. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/009-content-digest-mismatch.json +0 -26
  540. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/010-malformed-signature-input.json +0 -26
  541. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/011-signature-without-input.json +0 -25
  542. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/012-missing-expires-param.json +0 -26
  543. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/013-expires-le-created.json +0 -26
  544. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/014-missing-nonce-param.json +0 -26
  545. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/015-signature-invalid.json +0 -26
  546. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/016-replayed-nonce.json +0 -37
  547. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/017-key-revoked.json +0 -32
  548. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/018-rate-abuse.json +0 -33
  549. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/019-revocation-stale.json +0 -32
  550. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/020-key-ops-missing-verify.json +0 -41
  551. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/negative/021-base64-alphabet-mixing.json +0 -26
  552. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/001-basic-post.json +0 -24
  553. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/002-es256-post.json +0 -24
  554. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/003-multiple-signature-labels.json +0 -24
  555. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/004-default-port-stripped.json +0 -24
  556. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/005-percent-encoded-path.json +0 -24
  557. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/006-query-byte-preserved.json +0 -24
  558. package/compliance/cache/3.1.0-beta.7/test-vectors/webhook-signing/positive/007-body-without-idempotency-key.json +0 -25
  559. package/compliance/cache/3.1.0-beta.7/universal/billing-gate-dispatch.yaml +0 -450
  560. package/compliance/cache/3.1.0-beta.7/universal/canonical-format-validate-input.yaml +0 -640
  561. package/compliance/cache/3.1.0-beta.7/universal/capability-discovery.yaml +0 -125
  562. package/compliance/cache/3.1.0-beta.7/universal/collection-lists-pagination-integrity.yaml +0 -306
  563. package/compliance/cache/3.1.0-beta.7/universal/comply-controller-mode-gate.yaml +0 -141
  564. package/compliance/cache/3.1.0-beta.7/universal/content-standards-pagination-integrity.yaml +0 -326
  565. package/compliance/cache/3.1.0-beta.7/universal/deterministic-testing.yaml +0 -1430
  566. package/compliance/cache/3.1.0-beta.7/universal/error-compliance-signals.yaml +0 -377
  567. package/compliance/cache/3.1.0-beta.7/universal/error-compliance.yaml +0 -528
  568. package/compliance/cache/3.1.0-beta.7/universal/fictional-entities.yaml +0 -307
  569. package/compliance/cache/3.1.0-beta.7/universal/get-media-buys-pagination-integrity.yaml +0 -160
  570. package/compliance/cache/3.1.0-beta.7/universal/get-signals-pagination-integrity.yaml +0 -211
  571. package/compliance/cache/3.1.0-beta.7/universal/idempotency.yaml +0 -861
  572. package/compliance/cache/3.1.0-beta.7/universal/notification-config-event-scope.yaml +0 -119
  573. package/compliance/cache/3.1.0-beta.7/universal/notification-config-lifecycle.yaml +0 -337
  574. package/compliance/cache/3.1.0-beta.7/universal/notification-config-rejections.yaml +0 -107
  575. package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-creative-formats.yaml +0 -265
  576. package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity-list-accounts.yaml +0 -245
  577. package/compliance/cache/3.1.0-beta.7/universal/pagination-integrity.yaml +0 -263
  578. package/compliance/cache/3.1.0-beta.7/universal/property-lists-pagination-integrity.yaml +0 -307
  579. package/compliance/cache/3.1.0-beta.7/universal/read-tool-idempotency.yaml +0 -405
  580. package/compliance/cache/3.1.0-beta.7/universal/runner-output-contract.yaml +0 -1266
  581. package/compliance/cache/3.1.0-beta.7/universal/schema-validation-signals.yaml +0 -181
  582. package/compliance/cache/3.1.0-beta.7/universal/schema-validation.yaml +0 -548
  583. package/compliance/cache/3.1.0-beta.7/universal/security.yaml +0 -539
  584. package/compliance/cache/3.1.0-beta.7/universal/signed-requests.yaml +0 -217
  585. package/compliance/cache/3.1.0-beta.7/universal/stale-response-advisory.yaml +0 -295
  586. package/compliance/cache/3.1.0-beta.7/universal/storyboard-schema.yaml +0 -2136
  587. package/compliance/cache/3.1.0-beta.7/universal/v3-envelope-integrity.yaml +0 -117
  588. package/compliance/cache/3.1.0-beta.7/universal/version-negotiation.yaml +0 -130
  589. package/compliance/cache/3.1.0-beta.7/universal/webhook-emission.yaml +0 -411
  590. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-bulk-webhooks.yaml +0 -82
  591. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-product-webhooks.yaml +0 -83
  592. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-products.yaml +0 -151
  593. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signal-webhooks.yaml +0 -83
  594. package/compliance/cache/3.1.0-beta.7/universal/wholesale-feed-signals.yaml +0 -149
  595. package/dist/lib/types/v3-1-beta/index.d.mts +0 -1
  596. package/dist/lib/types/v3-1-beta/index.d.ts +0 -1
  597. package/dist/lib/types/v3-1-beta/index.mjs +0 -1
  598. package/dist/lib/types/v3-1-beta/tools.generated.d.mts +0 -26788
  599. package/dist/lib/types/v3-1-beta/tools.generated.d.ts +0 -26788
  600. /package/dist/lib/{types/v3-1-beta/tools.generated.mjs → media-buy/action-types.mjs} +0 -0
@@ -1424,10 +1424,11 @@ function createAdcpServerFromPlatform(platform, opts) {
1424
1424
  const somCandidate = explicitSom ?? derivedSom;
1425
1425
  const som = somCandidate != null && somCandidate.length > 0 ? somCandidate : void 0;
1426
1426
  const fc = platform.capabilities.frequency_capping;
1427
+ const reportingDelivery = platform.reporting?.capabilities;
1427
1428
  const targeting = platform.capabilities.targeting ? (0, import_capabilities.normalizeTargetingCapabilities)(platform.capabilities.targeting) : void 0;
1428
1429
  const hasSalesPlatform = platform.sales != null || platform.mediaBuyLifecycle != null || platform.proposalManager != null;
1429
1430
  const supportsProposals = platform.capabilities.supportsProposals ?? (platform.proposalManager != null || platform.mediaBuyLifecycle?.requestProposals != null || platform.mediaBuyLifecycle?.refineProposals != null ? true : hasSalesPlatform ? false : void 0);
1430
- const hasMediaBuyProjection = hasSalesPlatform || at != null || ct != null || cs != null || som != null || fc != null || targeting != null || supportsProposals !== void 0;
1431
+ const hasMediaBuyProjection = hasSalesPlatform || at != null || ct != null || cs != null || som != null || fc != null || reportingDelivery != null || targeting != null || supportsProposals !== void 0;
1431
1432
  const configuredAdcpVersion = opts.adcpVersion ?? import_version.ADCP_VERSION;
1432
1433
  const configuredRelease = parseAdcpRelease(configuredAdcpVersion);
1433
1434
  if (!configuredRelease) {
@@ -1435,6 +1436,9 @@ function createAdcpServerFromPlatform(platform, opts) {
1435
1436
  `Configured AdCP version '${configuredAdcpVersion}' is not a valid release identifier`
1436
1437
  );
1437
1438
  }
1439
+ if (reportingDelivery && !(0, import_adcp_version_config.isAdcpVersionAtLeast)(configuredAdcpVersion, "3.2.0-rc.3")) {
1440
+ throw new import_validate_platform.PlatformConfigError("Reliable Reporting Core requires an AdCP 3.2.0-rc.3 or newer schema pin");
1441
+ }
1438
1442
  for (const advertisedVersion of platform.capabilities.supported_versions ?? []) {
1439
1443
  const advertisedRelease = parseAdcpRelease(advertisedVersion);
1440
1444
  if (!advertisedRelease) {
@@ -1459,6 +1463,7 @@ function createAdcpServerFromPlatform(platform, opts) {
1459
1463
  ...cs != null && { content_standards: cs },
1460
1464
  ...som != null && { supported_optimization_metrics: som },
1461
1465
  ...fc != null && { frequency_capping: fc },
1466
+ ...reportingDelivery != null && { reporting_delivery: reportingDelivery },
1462
1467
  ...targeting != null && { execution: { targeting } },
1463
1468
  ...supportsProposals !== void 0 && { supports_proposals: supportsProposals },
1464
1469
  features: {
@@ -1528,6 +1533,13 @@ function createAdcpServerFromPlatform(platform, opts) {
1528
1533
  const adopterExtensionsSupported = platform.capabilities.extensions_supported;
1529
1534
  const adopterCapabilityExt = platform.capabilities.ext;
1530
1535
  const adopterOverrides = platform.capabilities.overrides;
1536
+ const adopterExperimentalFeatures = adopterOverrides?.experimental_features ?? [];
1537
+ if (reportingDelivery && !adopterExperimentalFeatures.includes("media_buy.reporting_delivery") && adopterExperimentalFeatures.length >= 32) {
1538
+ throw new import_validate_platform.PlatformConfigError(
1539
+ "Reliable Reporting Core cannot be added because experimental_features already contains 32 entries"
1540
+ );
1541
+ }
1542
+ const experimentalFeatures = reportingDelivery ? Array.from(/* @__PURE__ */ new Set([...adopterExperimentalFeatures, "media_buy.reporting_delivery"])) : adopterOverrides?.experimental_features;
1531
1543
  const adopterSupportedVersions = platform.capabilities.supported_versions;
1532
1544
  const hasOverridesObject = hasOverridesProjection || adopterOverrides !== void 0;
1533
1545
  const projectedCapabilitiesConfig = {
@@ -1557,7 +1569,8 @@ function createAdcpServerFromPlatform(platform, opts) {
1557
1569
  ...hasAccountProjection && {
1558
1570
  account: mergeCapabilityOverride(adopterOverrides?.account, accountOverrides)
1559
1571
  },
1560
- ...hasComplianceTestingProjection && complianceTestingOverrides != null && { compliance_testing: complianceTestingOverrides }
1572
+ ...hasComplianceTestingProjection && complianceTestingOverrides != null && { compliance_testing: complianceTestingOverrides },
1573
+ ...experimentalFeatures !== void 0 && { experimental_features: experimentalFeatures }
1561
1574
  }
1562
1575
  }
1563
1576
  };
@@ -1623,6 +1636,14 @@ function createAdcpServerFromPlatform(platform, opts) {
1623
1636
  // cross-credential collisions without reopening a duplicate-buy window
1624
1637
  // on create_media_buy/update_media_buy. Explicit adopter resolvers still
1625
1638
  // win for every tool.
1639
+ // A service-installed reporting platform names the consumer a receipt is
1640
+ // deposited for; scope that tool's replay by the same value rather than by
1641
+ // the caller's credential, which two operator seats can share.
1642
+ ...opts.resolveReportingConsumerId ?? platform.reporting?.resolveConsumerId ? {
1643
+ resolveReportingConsumerId: opts.resolveReportingConsumerId ?? ((ctx, params) => platform.reporting.resolveConsumerId(
1644
+ ctxFor(ctx, params)
1645
+ ))
1646
+ } : {},
1626
1647
  resolveIdempotencyPrincipal: opts.resolveIdempotencyPrincipal ?? ((ctx, _params, toolName) => import_create_adcp_server.COMPACT_MEDIA_BUY_MUTATION_TOOLS.has(toolName) ? authenticatedPrincipalFor(ctx) : ctx.authInfo?.clientId ?? ctx.sessionKey ?? ctx.account?.id ?? void 0),
1627
1648
  resolveAccount: async (ref, ctx) => {
1628
1649
  const start = Date.now();
@@ -1758,7 +1779,8 @@ function createAdcpServerFromPlatform(platform, opts) {
1758
1779
  ),
1759
1780
  "mediaBuy",
1760
1781
  mergeOpts,
1761
- defaultCreativeWireMode
1782
+ defaultCreativeWireMode,
1783
+ platform.mediaBuyLifecycle?.getMediaBuyDelivery !== void 0 || platform.sales?.getMediaBuyDelivery !== void 0
1762
1784
  ),
1763
1785
  proposalNegotiation: platformProposalNegotiation ?? opts.proposalNegotiation,
1764
1786
  creative: mergeHandlers(
@@ -2475,13 +2497,14 @@ const mergeSeamLoggedKeys = /* @__PURE__ */ new Set();
2475
2497
  function _resetMergeSeamDedupe() {
2476
2498
  mergeSeamLoggedKeys.clear();
2477
2499
  }
2478
- function mergeHandlers(custom, platform, domain, opts) {
2500
+ function mergeHandlers(custom, platform, domain, opts, composedKeys = /* @__PURE__ */ new Set()) {
2479
2501
  if (!custom && !platform) return void 0;
2480
2502
  if (!custom) return platform;
2481
2503
  if (!platform) return custom;
2482
2504
  if (opts.mode !== "silent") {
2483
2505
  const collisions = [];
2484
2506
  for (const key of Object.keys(platform)) {
2507
+ if (composedKeys.has(key)) continue;
2485
2508
  if (key in custom) collisions.push(key);
2486
2509
  }
2487
2510
  if (collisions.length > 0) {
@@ -2499,10 +2522,26 @@ function mergeHandlers(custom, platform, domain, opts) {
2499
2522
  }
2500
2523
  return { ...custom, ...platform };
2501
2524
  }
2502
- function mergeMediaBuyHandlers(custom, platform, domain, opts, fallbackWireMode) {
2503
- const merged = mergeHandlers(custom, platform, domain, opts);
2525
+ function mergeMediaBuyHandlers(custom, platform, domain, opts, fallbackWireMode, platformServesCumulativeDelivery) {
2526
+ const composesDelivery = !platformServesCumulativeDelivery && typeof custom?.getMediaBuyDelivery === "function" && typeof platform?.getMediaBuyDelivery === "function";
2527
+ const merged = mergeHandlers(
2528
+ custom,
2529
+ platform,
2530
+ domain,
2531
+ opts,
2532
+ composesDelivery ? /* @__PURE__ */ new Set(["getMediaBuyDelivery"]) : void 0
2533
+ );
2504
2534
  if (!custom || !platform || !merged) return merged;
2505
2535
  const routed = { ...merged };
2536
+ const customDelivery = custom.getMediaBuyDelivery;
2537
+ const platformDelivery = platform.getMediaBuyDelivery;
2538
+ if (composesDelivery && typeof customDelivery === "function" && typeof platformDelivery === "function") {
2539
+ routed.getMediaBuyDelivery = (...args) => {
2540
+ const revisionId = args[0]?.reporting_revision_id;
2541
+ const exactRevisionRead = typeof revisionId === "string" && revisionId.length > 0;
2542
+ return exactRevisionRead ? Reflect.apply(platformDelivery, platform, args) : Reflect.apply(customDelivery, custom, args);
2543
+ };
2544
+ }
2506
2545
  for (const key of ["createMediaBuy", "updateMediaBuy", "getMediaBuys"]) {
2507
2546
  const customHandler = custom[key];
2508
2547
  const platformHandler = platform[key];
@@ -3567,10 +3606,12 @@ function buildProposalNegotiationHandlers(platform, taskRegistry, taskWebhookEmi
3567
3606
  function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observability, logger, pushOpts, ctxFor, ctxMetadataStore, mediaBuyStore, proposalStore, legacyFormatConverter, legacyFormatResolver, legacyFormatResolverOptions, canonicalFormatLegacyResolver, creativeWireMode) {
3568
3607
  const sales = platform.sales;
3569
3608
  const lifecycle = platform.mediaBuyLifecycle;
3570
- const getMediaBuyDelivery = lifecycle?.getMediaBuyDelivery ?? sales?.getMediaBuyDelivery;
3609
+ const reporting = platform.reporting;
3610
+ const liveMediaBuyDelivery = lifecycle?.getMediaBuyDelivery ?? sales?.getMediaBuyDelivery;
3611
+ const getMediaBuyDelivery = liveMediaBuyDelivery ?? reporting?.getMediaBuyDelivery;
3571
3612
  const getMediaBuys = lifecycle?.getMediaBuys ?? sales?.getMediaBuys;
3572
3613
  const proposalManager = platform.proposalManager;
3573
- if (!sales && !lifecycle && !proposalManager) return void 0;
3614
+ if (!sales && !lifecycle && !proposalManager && !reporting) return void 0;
3574
3615
  const dispatchCompactMutation = async (tool, params, ctx, invoke) => {
3575
3616
  return projectSync(
3576
3617
  async () => {
@@ -3623,6 +3664,16 @@ function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observab
3623
3664
  (value) => value
3624
3665
  );
3625
3666
  };
3667
+ const reportingContext = (tool, params, ctx) => {
3668
+ if (ctx.authInfo === void 0 && ctx.agent === void 0) {
3669
+ throw new import_async_outcome.AdcpError("AUTH_MISSING", {
3670
+ message: `${tool} requires an authenticated buyer principal`,
3671
+ recovery: "correctable"
3672
+ });
3673
+ }
3674
+ if (!ctx.account?.id) throw missingAccountError(tool, platform.accounts.resolution);
3675
+ return ctxFor(ctx, params);
3676
+ };
3626
3677
  return {
3627
3678
  ...lifecycle?.listProducts && {
3628
3679
  listProducts: async (...[params, ctx]) => {
@@ -4074,7 +4125,11 @@ function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observab
4074
4125
  ...getMediaBuyDelivery && {
4075
4126
  getMediaBuyDelivery: async (...[params, ctx]) => {
4076
4127
  const responseWireMode = creativeWireModeForRequest(ctx, creativeWireMode, params);
4077
- const reqCtx = ctxFor(ctx, params);
4128
+ const requestedRevisionId = params.reporting_revision_id;
4129
+ const exactRevisionRead = typeof requestedRevisionId === "string" && requestedRevisionId.length > 0;
4130
+ const exactRevisionRequested = exactRevisionRead;
4131
+ const reportingRevisionRequested = exactRevisionRequested && reporting !== void 0;
4132
+ const reqCtx = reportingRevisionRequested ? reportingContext("get_media_buy_delivery", params, ctx) : ctxFor(ctx, params);
4078
4133
  if (proposalStore) {
4079
4134
  const ids = params.media_buy_ids;
4080
4135
  const firstId = Array.isArray(ids) && ids.length > 0 ? ids[0] : void 0;
@@ -4091,7 +4146,18 @@ function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observab
4091
4146
  }
4092
4147
  return projectSync(
4093
4148
  async () => {
4094
- const result = await getMediaBuyDelivery(asValidatedDomainRequest(params), reqCtx);
4149
+ const selectedDelivery = exactRevisionRequested ? reporting?.getMediaBuyDelivery ?? liveMediaBuyDelivery : liveMediaBuyDelivery;
4150
+ if (!selectedDelivery) {
4151
+ throw new import_async_outcome.AdcpError("UNSUPPORTED_FEATURE", {
4152
+ message: "This reporting-only platform does not provide cumulative delivery reads",
4153
+ recovery: "correctable"
4154
+ });
4155
+ }
4156
+ const servedByReportingLedger = exactRevisionRead && reporting?.getMediaBuyDelivery !== void 0 && selectedDelivery === reporting.getMediaBuyDelivery;
4157
+ const result = await selectedDelivery(asValidatedDomainRequest(params), reqCtx);
4158
+ if (servedByReportingLedger) {
4159
+ return result;
4160
+ }
4095
4161
  warnIfTruncatedMultiIdResponse(
4096
4162
  "getMediaBuyDelivery",
4097
4163
  "media_buy_ids",
@@ -4111,6 +4177,18 @@ function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observab
4111
4177
  );
4112
4178
  }
4113
4179
  },
4180
+ ...reporting?.getReportingStatus && {
4181
+ getReportingStatus: async (...[params, ctx]) => projectSync(
4182
+ () => reporting.getReportingStatus(params, reportingContext("get_reporting_status", params, ctx)),
4183
+ (value) => value
4184
+ )
4185
+ },
4186
+ ...reporting?.syncReportingStatus && {
4187
+ syncReportingStatus: async (...[params, ctx]) => projectSync(
4188
+ () => reporting.syncReportingStatus(params, reportingContext("sync_reporting_status", params, ctx)),
4189
+ (value) => value
4190
+ )
4191
+ },
4114
4192
  // Optional methods — return UNSUPPORTED_FEATURE when the platform omits
4115
4193
  // them. Adopters that haven't migrated to the v6 platform interface for
4116
4194
  // these specific tools can still pass raw handlers via opts.legacyHandlers.mediaBuy
@@ -1453,10 +1453,11 @@ function createAdcpServerFromPlatform(platform, opts) {
1453
1453
  const somCandidate = explicitSom ?? derivedSom;
1454
1454
  const som = somCandidate != null && somCandidate.length > 0 ? somCandidate : void 0;
1455
1455
  const fc = platform.capabilities.frequency_capping;
1456
+ const reportingDelivery = platform.reporting?.capabilities;
1456
1457
  const targeting = platform.capabilities.targeting ? normalizeTargetingCapabilities(platform.capabilities.targeting) : void 0;
1457
1458
  const hasSalesPlatform = platform.sales != null || platform.mediaBuyLifecycle != null || platform.proposalManager != null;
1458
1459
  const supportsProposals = platform.capabilities.supportsProposals ?? (platform.proposalManager != null || platform.mediaBuyLifecycle?.requestProposals != null || platform.mediaBuyLifecycle?.refineProposals != null ? true : hasSalesPlatform ? false : void 0);
1459
- const hasMediaBuyProjection = hasSalesPlatform || at != null || ct != null || cs != null || som != null || fc != null || targeting != null || supportsProposals !== void 0;
1460
+ const hasMediaBuyProjection = hasSalesPlatform || at != null || ct != null || cs != null || som != null || fc != null || reportingDelivery != null || targeting != null || supportsProposals !== void 0;
1460
1461
  const configuredAdcpVersion = opts.adcpVersion ?? ADCP_VERSION;
1461
1462
  const configuredRelease = parseAdcpRelease(configuredAdcpVersion);
1462
1463
  if (!configuredRelease) {
@@ -1464,6 +1465,9 @@ function createAdcpServerFromPlatform(platform, opts) {
1464
1465
  `Configured AdCP version '${configuredAdcpVersion}' is not a valid release identifier`
1465
1466
  );
1466
1467
  }
1468
+ if (reportingDelivery && !isAdcpVersionAtLeast(configuredAdcpVersion, "3.2.0-rc.3")) {
1469
+ throw new PlatformConfigError("Reliable Reporting Core requires an AdCP 3.2.0-rc.3 or newer schema pin");
1470
+ }
1467
1471
  for (const advertisedVersion of platform.capabilities.supported_versions ?? []) {
1468
1472
  const advertisedRelease = parseAdcpRelease(advertisedVersion);
1469
1473
  if (!advertisedRelease) {
@@ -1488,6 +1492,7 @@ function createAdcpServerFromPlatform(platform, opts) {
1488
1492
  ...cs != null && { content_standards: cs },
1489
1493
  ...som != null && { supported_optimization_metrics: som },
1490
1494
  ...fc != null && { frequency_capping: fc },
1495
+ ...reportingDelivery != null && { reporting_delivery: reportingDelivery },
1491
1496
  ...targeting != null && { execution: { targeting } },
1492
1497
  ...supportsProposals !== void 0 && { supports_proposals: supportsProposals },
1493
1498
  features: {
@@ -1557,6 +1562,13 @@ function createAdcpServerFromPlatform(platform, opts) {
1557
1562
  const adopterExtensionsSupported = platform.capabilities.extensions_supported;
1558
1563
  const adopterCapabilityExt = platform.capabilities.ext;
1559
1564
  const adopterOverrides = platform.capabilities.overrides;
1565
+ const adopterExperimentalFeatures = adopterOverrides?.experimental_features ?? [];
1566
+ if (reportingDelivery && !adopterExperimentalFeatures.includes("media_buy.reporting_delivery") && adopterExperimentalFeatures.length >= 32) {
1567
+ throw new PlatformConfigError(
1568
+ "Reliable Reporting Core cannot be added because experimental_features already contains 32 entries"
1569
+ );
1570
+ }
1571
+ const experimentalFeatures = reportingDelivery ? Array.from(/* @__PURE__ */ new Set([...adopterExperimentalFeatures, "media_buy.reporting_delivery"])) : adopterOverrides?.experimental_features;
1560
1572
  const adopterSupportedVersions = platform.capabilities.supported_versions;
1561
1573
  const hasOverridesObject = hasOverridesProjection || adopterOverrides !== void 0;
1562
1574
  const projectedCapabilitiesConfig = {
@@ -1586,7 +1598,8 @@ function createAdcpServerFromPlatform(platform, opts) {
1586
1598
  ...hasAccountProjection && {
1587
1599
  account: mergeCapabilityOverride(adopterOverrides?.account, accountOverrides)
1588
1600
  },
1589
- ...hasComplianceTestingProjection && complianceTestingOverrides != null && { compliance_testing: complianceTestingOverrides }
1601
+ ...hasComplianceTestingProjection && complianceTestingOverrides != null && { compliance_testing: complianceTestingOverrides },
1602
+ ...experimentalFeatures !== void 0 && { experimental_features: experimentalFeatures }
1590
1603
  }
1591
1604
  }
1592
1605
  };
@@ -1652,6 +1665,14 @@ function createAdcpServerFromPlatform(platform, opts) {
1652
1665
  // cross-credential collisions without reopening a duplicate-buy window
1653
1666
  // on create_media_buy/update_media_buy. Explicit adopter resolvers still
1654
1667
  // win for every tool.
1668
+ // A service-installed reporting platform names the consumer a receipt is
1669
+ // deposited for; scope that tool's replay by the same value rather than by
1670
+ // the caller's credential, which two operator seats can share.
1671
+ ...opts.resolveReportingConsumerId ?? platform.reporting?.resolveConsumerId ? {
1672
+ resolveReportingConsumerId: opts.resolveReportingConsumerId ?? ((ctx, params) => platform.reporting.resolveConsumerId(
1673
+ ctxFor(ctx, params)
1674
+ ))
1675
+ } : {},
1655
1676
  resolveIdempotencyPrincipal: opts.resolveIdempotencyPrincipal ?? ((ctx, _params, toolName) => COMPACT_MEDIA_BUY_MUTATION_TOOLS.has(toolName) ? authenticatedPrincipalFor(ctx) : ctx.authInfo?.clientId ?? ctx.sessionKey ?? ctx.account?.id ?? void 0),
1656
1677
  resolveAccount: async (ref, ctx) => {
1657
1678
  const start = Date.now();
@@ -1787,7 +1808,8 @@ function createAdcpServerFromPlatform(platform, opts) {
1787
1808
  ),
1788
1809
  "mediaBuy",
1789
1810
  mergeOpts,
1790
- defaultCreativeWireMode
1811
+ defaultCreativeWireMode,
1812
+ platform.mediaBuyLifecycle?.getMediaBuyDelivery !== void 0 || platform.sales?.getMediaBuyDelivery !== void 0
1791
1813
  ),
1792
1814
  proposalNegotiation: platformProposalNegotiation ?? opts.proposalNegotiation,
1793
1815
  creative: mergeHandlers(
@@ -2504,13 +2526,14 @@ const mergeSeamLoggedKeys = /* @__PURE__ */ new Set();
2504
2526
  function _resetMergeSeamDedupe() {
2505
2527
  mergeSeamLoggedKeys.clear();
2506
2528
  }
2507
- function mergeHandlers(custom, platform, domain, opts) {
2529
+ function mergeHandlers(custom, platform, domain, opts, composedKeys = /* @__PURE__ */ new Set()) {
2508
2530
  if (!custom && !platform) return void 0;
2509
2531
  if (!custom) return platform;
2510
2532
  if (!platform) return custom;
2511
2533
  if (opts.mode !== "silent") {
2512
2534
  const collisions = [];
2513
2535
  for (const key of Object.keys(platform)) {
2536
+ if (composedKeys.has(key)) continue;
2514
2537
  if (key in custom) collisions.push(key);
2515
2538
  }
2516
2539
  if (collisions.length > 0) {
@@ -2528,10 +2551,26 @@ function mergeHandlers(custom, platform, domain, opts) {
2528
2551
  }
2529
2552
  return { ...custom, ...platform };
2530
2553
  }
2531
- function mergeMediaBuyHandlers(custom, platform, domain, opts, fallbackWireMode) {
2532
- const merged = mergeHandlers(custom, platform, domain, opts);
2554
+ function mergeMediaBuyHandlers(custom, platform, domain, opts, fallbackWireMode, platformServesCumulativeDelivery) {
2555
+ const composesDelivery = !platformServesCumulativeDelivery && typeof custom?.getMediaBuyDelivery === "function" && typeof platform?.getMediaBuyDelivery === "function";
2556
+ const merged = mergeHandlers(
2557
+ custom,
2558
+ platform,
2559
+ domain,
2560
+ opts,
2561
+ composesDelivery ? /* @__PURE__ */ new Set(["getMediaBuyDelivery"]) : void 0
2562
+ );
2533
2563
  if (!custom || !platform || !merged) return merged;
2534
2564
  const routed = { ...merged };
2565
+ const customDelivery = custom.getMediaBuyDelivery;
2566
+ const platformDelivery = platform.getMediaBuyDelivery;
2567
+ if (composesDelivery && typeof customDelivery === "function" && typeof platformDelivery === "function") {
2568
+ routed.getMediaBuyDelivery = (...args) => {
2569
+ const revisionId = args[0]?.reporting_revision_id;
2570
+ const exactRevisionRead = typeof revisionId === "string" && revisionId.length > 0;
2571
+ return exactRevisionRead ? Reflect.apply(platformDelivery, platform, args) : Reflect.apply(customDelivery, custom, args);
2572
+ };
2573
+ }
2535
2574
  for (const key of ["createMediaBuy", "updateMediaBuy", "getMediaBuys"]) {
2536
2575
  const customHandler = custom[key];
2537
2576
  const platformHandler = platform[key];
@@ -3596,10 +3635,12 @@ function buildProposalNegotiationHandlers(platform, taskRegistry, taskWebhookEmi
3596
3635
  function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observability, logger, pushOpts, ctxFor, ctxMetadataStore, mediaBuyStore, proposalStore, legacyFormatConverter, legacyFormatResolver, legacyFormatResolverOptions, canonicalFormatLegacyResolver, creativeWireMode) {
3597
3636
  const sales = platform.sales;
3598
3637
  const lifecycle = platform.mediaBuyLifecycle;
3599
- const getMediaBuyDelivery = lifecycle?.getMediaBuyDelivery ?? sales?.getMediaBuyDelivery;
3638
+ const reporting = platform.reporting;
3639
+ const liveMediaBuyDelivery = lifecycle?.getMediaBuyDelivery ?? sales?.getMediaBuyDelivery;
3640
+ const getMediaBuyDelivery = liveMediaBuyDelivery ?? reporting?.getMediaBuyDelivery;
3600
3641
  const getMediaBuys = lifecycle?.getMediaBuys ?? sales?.getMediaBuys;
3601
3642
  const proposalManager = platform.proposalManager;
3602
- if (!sales && !lifecycle && !proposalManager) return void 0;
3643
+ if (!sales && !lifecycle && !proposalManager && !reporting) return void 0;
3603
3644
  const dispatchCompactMutation = async (tool, params, ctx, invoke) => {
3604
3645
  return projectSync(
3605
3646
  async () => {
@@ -3652,6 +3693,16 @@ function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observab
3652
3693
  (value) => value
3653
3694
  );
3654
3695
  };
3696
+ const reportingContext = (tool, params, ctx) => {
3697
+ if (ctx.authInfo === void 0 && ctx.agent === void 0) {
3698
+ throw new AdcpError("AUTH_MISSING", {
3699
+ message: `${tool} requires an authenticated buyer principal`,
3700
+ recovery: "correctable"
3701
+ });
3702
+ }
3703
+ if (!ctx.account?.id) throw missingAccountError(tool, platform.accounts.resolution);
3704
+ return ctxFor(ctx, params);
3705
+ };
3655
3706
  return {
3656
3707
  ...lifecycle?.listProducts && {
3657
3708
  listProducts: async (...[params, ctx]) => {
@@ -4103,7 +4154,11 @@ function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observab
4103
4154
  ...getMediaBuyDelivery && {
4104
4155
  getMediaBuyDelivery: async (...[params, ctx]) => {
4105
4156
  const responseWireMode = creativeWireModeForRequest(ctx, creativeWireMode, params);
4106
- const reqCtx = ctxFor(ctx, params);
4157
+ const requestedRevisionId = params.reporting_revision_id;
4158
+ const exactRevisionRead = typeof requestedRevisionId === "string" && requestedRevisionId.length > 0;
4159
+ const exactRevisionRequested = exactRevisionRead;
4160
+ const reportingRevisionRequested = exactRevisionRequested && reporting !== void 0;
4161
+ const reqCtx = reportingRevisionRequested ? reportingContext("get_media_buy_delivery", params, ctx) : ctxFor(ctx, params);
4107
4162
  if (proposalStore) {
4108
4163
  const ids = params.media_buy_ids;
4109
4164
  const firstId = Array.isArray(ids) && ids.length > 0 ? ids[0] : void 0;
@@ -4120,7 +4175,18 @@ function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observab
4120
4175
  }
4121
4176
  return projectSync(
4122
4177
  async () => {
4123
- const result = await getMediaBuyDelivery(asValidatedDomainRequest(params), reqCtx);
4178
+ const selectedDelivery = exactRevisionRequested ? reporting?.getMediaBuyDelivery ?? liveMediaBuyDelivery : liveMediaBuyDelivery;
4179
+ if (!selectedDelivery) {
4180
+ throw new AdcpError("UNSUPPORTED_FEATURE", {
4181
+ message: "This reporting-only platform does not provide cumulative delivery reads",
4182
+ recovery: "correctable"
4183
+ });
4184
+ }
4185
+ const servedByReportingLedger = exactRevisionRead && reporting?.getMediaBuyDelivery !== void 0 && selectedDelivery === reporting.getMediaBuyDelivery;
4186
+ const result = await selectedDelivery(asValidatedDomainRequest(params), reqCtx);
4187
+ if (servedByReportingLedger) {
4188
+ return result;
4189
+ }
4124
4190
  warnIfTruncatedMultiIdResponse(
4125
4191
  "getMediaBuyDelivery",
4126
4192
  "media_buy_ids",
@@ -4140,6 +4206,18 @@ function buildMediaBuyHandlers(platform, taskRegistry, taskWebhookEmit, observab
4140
4206
  );
4141
4207
  }
4142
4208
  },
4209
+ ...reporting?.getReportingStatus && {
4210
+ getReportingStatus: async (...[params, ctx]) => projectSync(
4211
+ () => reporting.getReportingStatus(params, reportingContext("get_reporting_status", params, ctx)),
4212
+ (value) => value
4213
+ )
4214
+ },
4215
+ ...reporting?.syncReportingStatus && {
4216
+ syncReportingStatus: async (...[params, ctx]) => projectSync(
4217
+ () => reporting.syncReportingStatus(params, reportingContext("sync_reporting_status", params, ctx)),
4218
+ (value) => value
4219
+ )
4220
+ },
4143
4221
  // Optional methods — return UNSUPPORTED_FEATURE when the platform omits
4144
4222
  // them. Adopters that haven't migrated to the v6 platform interface for
4145
4223
  // these specific tools can still pass raw handlers via opts.legacyHandlers.mediaBuy
@@ -0,0 +1,38 @@
1
+ import type { Account } from '../account.mjs';
2
+ import type { RequestContext } from '../context.mjs';
3
+ import type { AdcpToolMap } from '../../create-adcp-server.mjs';
4
+ import type { ReportingDeliveryCapabilities } from '../../../types/tools.generated.mjs';
5
+ type Ctx<TCtxMeta> = RequestContext<Account<TCtxMeta>>;
6
+ /**
7
+ * Reliable Reporting Core platform surface.
8
+ *
9
+ * Adopters normally receive this object from
10
+ * `createReliableReportingService(...).install(platform)`. Keeping reporting
11
+ * separate from `SalesPlatform.getMediaBuyDelivery` lets the framework route
12
+ * exact ledger revisions without replacing an adopter's ordinary live
13
+ * delivery handler.
14
+ *
15
+ * @public
16
+ */
17
+ export interface ReliableReportingPlatform<TCtxMeta = Record<string, unknown>> {
18
+ /** Capability document derived from the reporting components installed. */
19
+ readonly capabilities: ReportingDeliveryCapabilities;
20
+ /** Snapshot-stable reads from the authoritative reporting ledger. */
21
+ getReportingStatus(request: AdcpToolMap['get_reporting_status']['params'], context: Ctx<TCtxMeta>): Promise<AdcpToolMap['get_reporting_status']['result']>;
22
+ /** Exact immutable revision reads; requests must carry reporting_revision_id. */
23
+ getMediaBuyDelivery(request: AdcpToolMap['get_media_buy_delivery']['params'], context: Ctx<TCtxMeta>): Promise<AdcpToolMap['get_media_buy_delivery']['result']>;
24
+ /** Present only when authenticated consumer identity resolution is installed. */
25
+ syncReportingStatus?(request: AdcpToolMap['sync_reporting_status']['params'], context: Ctx<TCtxMeta>): Promise<AdcpToolMap['sync_reporting_status']['result']>;
26
+ /**
27
+ * The identity `syncReportingStatus` deposits a receipt for, exposed so the
28
+ * framework can scope `sync_reporting_status` replay by the same value the
29
+ * receipt is recorded under. Present exactly when `syncReportingStatus` is.
30
+ *
31
+ * Without it the framework falls back to the caller's credential identity,
32
+ * which is wrong whenever an adopter maps two operator seats sharing one
33
+ * OAuth `client_id` to different reporting consumers: the second seat would
34
+ * be served the first's cached response and deposit nothing.
35
+ */
36
+ readonly resolveConsumerId?: (context: Ctx<TCtxMeta>) => string | Promise<string>;
37
+ }
38
+ export {};
@@ -0,0 +1,38 @@
1
+ import type { Account } from '../account';
2
+ import type { RequestContext } from '../context';
3
+ import type { AdcpToolMap } from '../../create-adcp-server';
4
+ import type { ReportingDeliveryCapabilities } from '../../../types/tools.generated';
5
+ type Ctx<TCtxMeta> = RequestContext<Account<TCtxMeta>>;
6
+ /**
7
+ * Reliable Reporting Core platform surface.
8
+ *
9
+ * Adopters normally receive this object from
10
+ * `createReliableReportingService(...).install(platform)`. Keeping reporting
11
+ * separate from `SalesPlatform.getMediaBuyDelivery` lets the framework route
12
+ * exact ledger revisions without replacing an adopter's ordinary live
13
+ * delivery handler.
14
+ *
15
+ * @public
16
+ */
17
+ export interface ReliableReportingPlatform<TCtxMeta = Record<string, unknown>> {
18
+ /** Capability document derived from the reporting components installed. */
19
+ readonly capabilities: ReportingDeliveryCapabilities;
20
+ /** Snapshot-stable reads from the authoritative reporting ledger. */
21
+ getReportingStatus(request: AdcpToolMap['get_reporting_status']['params'], context: Ctx<TCtxMeta>): Promise<AdcpToolMap['get_reporting_status']['result']>;
22
+ /** Exact immutable revision reads; requests must carry reporting_revision_id. */
23
+ getMediaBuyDelivery(request: AdcpToolMap['get_media_buy_delivery']['params'], context: Ctx<TCtxMeta>): Promise<AdcpToolMap['get_media_buy_delivery']['result']>;
24
+ /** Present only when authenticated consumer identity resolution is installed. */
25
+ syncReportingStatus?(request: AdcpToolMap['sync_reporting_status']['params'], context: Ctx<TCtxMeta>): Promise<AdcpToolMap['sync_reporting_status']['result']>;
26
+ /**
27
+ * The identity `syncReportingStatus` deposits a receipt for, exposed so the
28
+ * framework can scope `sync_reporting_status` replay by the same value the
29
+ * receipt is recorded under. Present exactly when `syncReportingStatus` is.
30
+ *
31
+ * Without it the framework falls back to the caller's credential identity,
32
+ * which is wrong whenever an adopter maps two operator seats sharing one
33
+ * OAuth `client_id` to different reporting consumers: the second seat would
34
+ * be served the first's cached response and deposit nothing.
35
+ */
36
+ readonly resolveConsumerId?: (context: Ctx<TCtxMeta>) => string | Promise<string>;
37
+ }
38
+ export {};
@@ -11,12 +11,6 @@ var __copyProps = (to, from, except, desc) => {
11
11
  }
12
12
  return to;
13
13
  };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
14
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
- var v3_1_beta_exports = {};
17
- module.exports = __toCommonJS(v3_1_beta_exports);
18
- __reExport(v3_1_beta_exports, require('./tools.generated.js'), module.exports);
19
- // Annotate the CommonJS export names for ESM import in node:
20
- 0 && (module.exports = {
21
- ...require('./tools.generated.js')
22
- });
15
+ var reporting_exports = {};
16
+ module.exports = __toCommonJS(reporting_exports);
@@ -74,8 +74,8 @@ export { pgWebhookDeliveryStore, pgWebhookDeliveryRecoveryBackend, redisWebhookD
74
74
  export type { PgWebhookDeliveryStoreOptions, PgWebhookDeliveryRecoveryOptions, RedisWebhookDeliveryStoreOptions, RedisWebhookDeliveryRecoveryOptions, ProtectedWebhookAuthentication, WebhookAuthenticationAdapter, WebhookAuthenticationContext, StoredWebhookDeliverySnapshot, PreparedWebhookDeliverySnapshot, PrepareWebhookDeliveryOptions, WebhookRecoveryRecord, WebhookRecoveryLease, WebhookRecoveryCheckpointResult, WebhookRecoveryCheckpointOutcome, WebhookDeliveryRecoveryBackend, DurableWebhookDeliveryRecovery, CreateWebhookDeliveryRecoveryOptions, PollWebhookDeliveryRecoveryOptions, CreatePostgresWebhookRuntimeOptions, PostgresWebhookRecoveryPollOptions, PostgresWebhookRuntime, WebhookRecoveryDisposition, } from './webhook-delivery/index.mjs';
75
75
  export type { WebhookEmitter, RecoverableWebhookEmitter, WebhookEmitterOptions, WebhookEmitParams, WebhookEmitResult, WebhookRecoveredDelivery, WebhookEmitAttempt, WebhookEmitAttemptResult, WebhookDeliveryBinding, WebhookDeliveryRetired, WebhookDeliveryRecord, WebhookDeliveryKey, WebhookDeliveryProposal, WebhookDeliverySnapshot, WebhookDeliveryRecovery, WebhookDeliveryRecoveryClaim, WebhookDeliveryStore, WebhookIdempotencyKeyStore, WebhookRetryOptions, WebhookAuthentication, WebhookAttemptAuthorizer, WebhookAttemptAuthorizationDecision, WebhookAttemptSuppressionReason, } from './webhook-emitter.mjs';
76
76
  export type { SigningProvider } from '../signing/provider.mjs';
77
- export { ACCOUNT_NOTIFICATION_TYPES, CALLER_NOTIFICATION_TYPES, NOTIFICATION_SUBSCRIPTION_MIGRATION, NotificationSubscriptionValidationError, createPersistentNotificationRuntime, createPersistentNotificationProtocolHandlers, createPostgresPersistentNotificationRuntime, getNotificationSubscriptionMigration, memoryNotificationSubscriptionStore, pgNotificationSubscriptionStore, projectNotificationSubscriptionReadback, validatePersistentNotificationDestination, } from './notification-subscriptions/index.mjs';
78
- export type { CreatePostgresPersistentNotificationRuntimeOptions, NotificationAuthenticationMode, NotificationCredentialBindingAdapter, NotificationDeliveryAuthorizationInput, NotificationDeliveryAuthorizer, NotificationDestinationValidator, NotificationEvent, NotificationEventAnchor, NotificationFanoutDelivery, NotificationFanoutResult, NotificationProofAdapter, NotificationReplacementResult, NotificationSubscriptionConfigInput, NotificationSubscriptionMatch, NotificationSubscriptionScope, NotificationSubscriptionSet, NotificationSubscriptionStore, NotificationSubscriptionStoreReplaceResult, NotificationSubscriptionView, PersistentNotificationRuntime, PersistentNotificationRuntimeOptions, PostgresNotificationSubscriptionStoreOptions, PostgresPersistentNotificationRuntime, StoredNotificationAuthentication, StoredNotificationSubscription, } from './notification-subscriptions/index.mjs';
77
+ export { ACCOUNT_NOTIFICATION_TYPES, CALLER_NOTIFICATION_TYPES, NOTIFICATION_SUBSCRIPTION_MIGRATION, NotificationSubscriptionValidationError, createPersistentNotificationRuntime, createPersistentNotificationProtocolHandlers, createPostgresPersistentNotificationRuntime, getNotificationSubscriptionMigration, memoryNotificationSubscriptionStore, notificationSuppressionDisposition, pgNotificationSubscriptionStore, projectNotificationSubscriptionReadback, validatePersistentNotificationDestination, } from './notification-subscriptions/index.mjs';
78
+ export type { CreatePostgresPersistentNotificationRuntimeOptions, NotificationAuthenticationMode, NotificationCredentialBindingAdapter, NotificationDeliveryAuthorizationInput, NotificationDeliveryAttemptCheckpoint, NotificationDeliveryAttemptCheckpointInput, NotificationDeliveryAuthorizer, NotificationDestinationValidator, NotificationEvent, NotificationEventAnchor, NotificationFanoutDelivery, NotificationFanoutResult, NotificationProofAdapter, NotificationRecipientRef, NotificationReplacementResult, NotificationSubscriptionConfigInput, NotificationSubscriptionMatch, NotificationSubscriptionScope, NotificationSubscriptionSet, NotificationSubscriptionStore, NotificationSubscriptionStoreReplaceResult, NotificationSuppressionDisposition, NotificationSubscriptionView, PersistentNotificationRuntime, PersistentNotificationRuntimeOptions, PostgresNotificationSubscriptionStoreOptions, PostgresPersistentNotificationRuntime, StoredNotificationAuthentication, StoredNotificationSubscription, } from './notification-subscriptions/index.mjs';
79
79
  export { createPinAndBindFetch, WEBHOOK_SSRF_POLICY, LOOPBACK_OK_WEBHOOK_SSRF_POLICY } from './pin-and-bind-fetch.mjs';
80
80
  export type { PinAndBindFetchOptions, DnsLookupAll } from './pin-and-bind-fetch.mjs';
81
81
  export { checkGovernance, createAdcpGovernanceEnforcementMiddleware, governanceDeniedError, governanceUnavailableError, } from './governance.mjs';
@@ -98,3 +98,5 @@ export { createOAuthPassthroughResolver, type OAuthPassthroughResolverOptions, }
98
98
  export { createRosterAccountStore, type RosterAccountStoreOptions } from '../adapters/roster-account-store.mjs';
99
99
  export { createDerivedAccountStore, type DerivedAccountStoreOptions, type DerivedAccountStoreBaseOptions, type DerivedSingletonAccountStoreOptions, type DerivedRosterAccountStoreOptions, } from '../adapters/derived-account-store.mjs';
100
100
  export { ConformanceClient, WebSocketTransport, type ConformanceClientOptions, type ConformanceStatus, } from './socket-mode/index.mjs';
101
+ export { mediaBuyActionResolver } from './media-buy-action-resolver.mjs';
102
+ export type { SellerActionDecision, SellerActionResolutionOptions, SellerActionResolution, } from './media-buy-action-resolver.mjs';
@@ -74,8 +74,8 @@ export { pgWebhookDeliveryStore, pgWebhookDeliveryRecoveryBackend, redisWebhookD
74
74
  export type { PgWebhookDeliveryStoreOptions, PgWebhookDeliveryRecoveryOptions, RedisWebhookDeliveryStoreOptions, RedisWebhookDeliveryRecoveryOptions, ProtectedWebhookAuthentication, WebhookAuthenticationAdapter, WebhookAuthenticationContext, StoredWebhookDeliverySnapshot, PreparedWebhookDeliverySnapshot, PrepareWebhookDeliveryOptions, WebhookRecoveryRecord, WebhookRecoveryLease, WebhookRecoveryCheckpointResult, WebhookRecoveryCheckpointOutcome, WebhookDeliveryRecoveryBackend, DurableWebhookDeliveryRecovery, CreateWebhookDeliveryRecoveryOptions, PollWebhookDeliveryRecoveryOptions, CreatePostgresWebhookRuntimeOptions, PostgresWebhookRecoveryPollOptions, PostgresWebhookRuntime, WebhookRecoveryDisposition, } from './webhook-delivery';
75
75
  export type { WebhookEmitter, RecoverableWebhookEmitter, WebhookEmitterOptions, WebhookEmitParams, WebhookEmitResult, WebhookRecoveredDelivery, WebhookEmitAttempt, WebhookEmitAttemptResult, WebhookDeliveryBinding, WebhookDeliveryRetired, WebhookDeliveryRecord, WebhookDeliveryKey, WebhookDeliveryProposal, WebhookDeliverySnapshot, WebhookDeliveryRecovery, WebhookDeliveryRecoveryClaim, WebhookDeliveryStore, WebhookIdempotencyKeyStore, WebhookRetryOptions, WebhookAuthentication, WebhookAttemptAuthorizer, WebhookAttemptAuthorizationDecision, WebhookAttemptSuppressionReason, } from './webhook-emitter';
76
76
  export type { SigningProvider } from '../signing/provider';
77
- export { ACCOUNT_NOTIFICATION_TYPES, CALLER_NOTIFICATION_TYPES, NOTIFICATION_SUBSCRIPTION_MIGRATION, NotificationSubscriptionValidationError, createPersistentNotificationRuntime, createPersistentNotificationProtocolHandlers, createPostgresPersistentNotificationRuntime, getNotificationSubscriptionMigration, memoryNotificationSubscriptionStore, pgNotificationSubscriptionStore, projectNotificationSubscriptionReadback, validatePersistentNotificationDestination, } from './notification-subscriptions';
78
- export type { CreatePostgresPersistentNotificationRuntimeOptions, NotificationAuthenticationMode, NotificationCredentialBindingAdapter, NotificationDeliveryAuthorizationInput, NotificationDeliveryAuthorizer, NotificationDestinationValidator, NotificationEvent, NotificationEventAnchor, NotificationFanoutDelivery, NotificationFanoutResult, NotificationProofAdapter, NotificationReplacementResult, NotificationSubscriptionConfigInput, NotificationSubscriptionMatch, NotificationSubscriptionScope, NotificationSubscriptionSet, NotificationSubscriptionStore, NotificationSubscriptionStoreReplaceResult, NotificationSubscriptionView, PersistentNotificationRuntime, PersistentNotificationRuntimeOptions, PostgresNotificationSubscriptionStoreOptions, PostgresPersistentNotificationRuntime, StoredNotificationAuthentication, StoredNotificationSubscription, } from './notification-subscriptions';
77
+ export { ACCOUNT_NOTIFICATION_TYPES, CALLER_NOTIFICATION_TYPES, NOTIFICATION_SUBSCRIPTION_MIGRATION, NotificationSubscriptionValidationError, createPersistentNotificationRuntime, createPersistentNotificationProtocolHandlers, createPostgresPersistentNotificationRuntime, getNotificationSubscriptionMigration, memoryNotificationSubscriptionStore, notificationSuppressionDisposition, pgNotificationSubscriptionStore, projectNotificationSubscriptionReadback, validatePersistentNotificationDestination, } from './notification-subscriptions';
78
+ export type { CreatePostgresPersistentNotificationRuntimeOptions, NotificationAuthenticationMode, NotificationCredentialBindingAdapter, NotificationDeliveryAuthorizationInput, NotificationDeliveryAttemptCheckpoint, NotificationDeliveryAttemptCheckpointInput, NotificationDeliveryAuthorizer, NotificationDestinationValidator, NotificationEvent, NotificationEventAnchor, NotificationFanoutDelivery, NotificationFanoutResult, NotificationProofAdapter, NotificationRecipientRef, NotificationReplacementResult, NotificationSubscriptionConfigInput, NotificationSubscriptionMatch, NotificationSubscriptionScope, NotificationSubscriptionSet, NotificationSubscriptionStore, NotificationSubscriptionStoreReplaceResult, NotificationSuppressionDisposition, NotificationSubscriptionView, PersistentNotificationRuntime, PersistentNotificationRuntimeOptions, PostgresNotificationSubscriptionStoreOptions, PostgresPersistentNotificationRuntime, StoredNotificationAuthentication, StoredNotificationSubscription, } from './notification-subscriptions';
79
79
  export { createPinAndBindFetch, WEBHOOK_SSRF_POLICY, LOOPBACK_OK_WEBHOOK_SSRF_POLICY } from './pin-and-bind-fetch';
80
80
  export type { PinAndBindFetchOptions, DnsLookupAll } from './pin-and-bind-fetch';
81
81
  export { checkGovernance, createAdcpGovernanceEnforcementMiddleware, governanceDeniedError, governanceUnavailableError, } from './governance';
@@ -98,3 +98,5 @@ export { createOAuthPassthroughResolver, type OAuthPassthroughResolverOptions, }
98
98
  export { createRosterAccountStore, type RosterAccountStoreOptions } from '../adapters/roster-account-store';
99
99
  export { createDerivedAccountStore, type DerivedAccountStoreOptions, type DerivedAccountStoreBaseOptions, type DerivedSingletonAccountStoreOptions, type DerivedRosterAccountStoreOptions, } from '../adapters/derived-account-store';
100
100
  export { ConformanceClient, WebSocketTransport, type ConformanceClientOptions, type ConformanceStatus, } from './socket-mode';
101
+ export { mediaBuyActionResolver } from './media-buy-action-resolver';
102
+ export type { SellerActionDecision, SellerActionResolutionOptions, SellerActionResolution, } from './media-buy-action-resolver';
@@ -209,6 +209,7 @@ __export(server_exports, {
209
209
  matchesCollectionList: () => import_targeting_helpers.matchesCollectionList,
210
210
  matchesPropertyList: () => import_targeting_helpers.matchesPropertyList,
211
211
  mcpToolNameResolver: () => import_auth_signature.mcpToolNameResolver,
212
+ mediaBuyActionResolver: () => import_media_buy_action_resolver.mediaBuyActionResolver,
212
213
  memoryBackend: () => import_idempotency.memoryBackend,
213
214
  memoryCtxMetadataStore: () => import_ctx_metadata.memoryCtxMetadataStore,
214
215
  memoryNotificationSubscriptionStore: () => import_notification_subscriptions.memoryNotificationSubscriptionStore,
@@ -222,6 +223,7 @@ __export(server_exports, {
222
223
  mergeSeededProductsIntoResponse: () => import_test_controller_bridge.mergeSeededProductsIntoResponse,
223
224
  normalizeError: () => import_normalize_errors.normalizeError,
224
225
  normalizeErrors: () => import_normalize_errors.normalizeErrors,
226
+ notificationSuppressionDisposition: () => import_notification_subscriptions.notificationSuppressionDisposition,
225
227
  patchWithRetry: () => import_state_store.patchWithRetry,
226
228
  pgBackend: () => import_idempotency.pgBackend,
227
229
  pgCtxMetadataStore: () => import_ctx_metadata.pgCtxMetadataStore,
@@ -336,6 +338,7 @@ var import_oauth_passthrough_resolver = require('../adapters/oauth-passthrough-r
336
338
  var import_roster_account_store = require('../adapters/roster-account-store.js');
337
339
  var import_derived_account_store = require('../adapters/derived-account-store.js');
338
340
  var import_socket_mode = require('./socket-mode/index.js');
341
+ var import_media_buy_action_resolver = require('./media-buy-action-resolver.js');
339
342
  // Annotate the CommonJS export names for ESM import in node:
340
343
  0 && (module.exports = {
341
344
  A2AInvocationError,
@@ -528,6 +531,7 @@ var import_socket_mode = require('./socket-mode/index.js');
528
531
  matchesCollectionList,
529
532
  matchesPropertyList,
530
533
  mcpToolNameResolver,
534
+ mediaBuyActionResolver,
531
535
  memoryBackend,
532
536
  memoryCtxMetadataStore,
533
537
  memoryNotificationSubscriptionStore,
@@ -541,6 +545,7 @@ var import_socket_mode = require('./socket-mode/index.js');
541
545
  mergeSeededProductsIntoResponse,
542
546
  normalizeError,
543
547
  normalizeErrors,
548
+ notificationSuppressionDisposition,
544
549
  patchWithRetry,
545
550
  pgBackend,
546
551
  pgCtxMetadataStore,
@@ -208,6 +208,7 @@ import {
208
208
  createPostgresPersistentNotificationRuntime,
209
209
  getNotificationSubscriptionMigration,
210
210
  memoryNotificationSubscriptionStore,
211
+ notificationSuppressionDisposition,
211
212
  pgNotificationSubscriptionStore,
212
213
  projectNotificationSubscriptionReadback,
213
214
  validatePersistentNotificationDestination
@@ -285,6 +286,7 @@ import {
285
286
  ConformanceClient,
286
287
  WebSocketTransport
287
288
  } from "./socket-mode/index.mjs";
289
+ import { mediaBuyActionResolver } from "./media-buy-action-resolver.mjs";
288
290
  export {
289
291
  A2AInvocationError,
290
292
  ACCOUNT_NOTIFICATION_TYPES,
@@ -476,6 +478,7 @@ export {
476
478
  matchesCollectionList,
477
479
  matchesPropertyList,
478
480
  mcpToolNameResolver,
481
+ mediaBuyActionResolver,
479
482
  memoryBackend,
480
483
  memoryCtxMetadataStore,
481
484
  memoryNotificationSubscriptionStore,
@@ -489,6 +492,7 @@ export {
489
492
  mergeSeededProductsIntoResponse,
490
493
  normalizeError,
491
494
  normalizeErrors,
495
+ notificationSuppressionDisposition,
492
496
  patchWithRetry,
493
497
  pgBackend,
494
498
  pgCtxMetadataStore,