@adcp/sdk 8.1.0-beta.13 → 8.1.0-beta.14

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 (363) hide show
  1. package/README.md +1 -1
  2. package/bin/adcp-registry.js +2 -2
  3. package/dist/lib/canonical-references/index.d.ts +107 -0
  4. package/dist/lib/canonical-references/index.d.ts.map +1 -0
  5. package/dist/lib/canonical-references/index.js +551 -0
  6. package/dist/lib/canonical-references/index.js.map +1 -0
  7. package/dist/lib/core/ConversationTypes.d.ts +7 -0
  8. package/dist/lib/core/ConversationTypes.d.ts.map +1 -1
  9. package/dist/lib/core/ProtocolResponseParser.d.ts +10 -0
  10. package/dist/lib/core/ProtocolResponseParser.d.ts.map +1 -1
  11. package/dist/lib/core/ProtocolResponseParser.js +110 -0
  12. package/dist/lib/core/ProtocolResponseParser.js.map +1 -1
  13. package/dist/lib/core/ResponseValidator.d.ts +2 -0
  14. package/dist/lib/core/ResponseValidator.d.ts.map +1 -1
  15. package/dist/lib/core/ResponseValidator.js +3 -3
  16. package/dist/lib/core/ResponseValidator.js.map +1 -1
  17. package/dist/lib/core/TaskExecutor.d.ts +2 -0
  18. package/dist/lib/core/TaskExecutor.d.ts.map +1 -1
  19. package/dist/lib/core/TaskExecutor.js +32 -8
  20. package/dist/lib/core/TaskExecutor.js.map +1 -1
  21. package/dist/lib/index.d.ts +5 -4
  22. package/dist/lib/index.d.ts.map +1 -1
  23. package/dist/lib/index.js +27 -11
  24. package/dist/lib/index.js.map +1 -1
  25. package/dist/lib/mock-server/creative-ad-server/server.d.ts +2 -0
  26. package/dist/lib/mock-server/creative-ad-server/server.d.ts.map +1 -1
  27. package/dist/lib/mock-server/creative-ad-server/server.js +37 -1
  28. package/dist/lib/mock-server/creative-ad-server/server.js.map +1 -1
  29. package/dist/lib/mock-server/creative-template/server.d.ts +2 -0
  30. package/dist/lib/mock-server/creative-template/server.d.ts.map +1 -1
  31. package/dist/lib/mock-server/creative-template/server.js +29 -2
  32. package/dist/lib/mock-server/creative-template/server.js.map +1 -1
  33. package/dist/lib/mock-server/index.d.ts +10 -1
  34. package/dist/lib/mock-server/index.d.ts.map +1 -1
  35. package/dist/lib/mock-server/index.js +38 -8
  36. package/dist/lib/mock-server/index.js.map +1 -1
  37. package/dist/lib/mock-server/sales-guaranteed/server.d.ts +2 -0
  38. package/dist/lib/mock-server/sales-guaranteed/server.d.ts.map +1 -1
  39. package/dist/lib/mock-server/sales-guaranteed/server.js +64 -7
  40. package/dist/lib/mock-server/sales-guaranteed/server.js.map +1 -1
  41. package/dist/lib/mock-server/sales-non-guaranteed/server.d.ts +2 -0
  42. package/dist/lib/mock-server/sales-non-guaranteed/server.d.ts.map +1 -1
  43. package/dist/lib/mock-server/sales-non-guaranteed/server.js +44 -1
  44. package/dist/lib/mock-server/sales-non-guaranteed/server.js.map +1 -1
  45. package/dist/lib/mock-server/sales-social/server.d.ts +2 -0
  46. package/dist/lib/mock-server/sales-social/server.d.ts.map +1 -1
  47. package/dist/lib/mock-server/sales-social/server.js +64 -4
  48. package/dist/lib/mock-server/sales-social/server.js.map +1 -1
  49. package/dist/lib/mock-server/scenario.d.ts +97 -0
  50. package/dist/lib/mock-server/scenario.d.ts.map +1 -0
  51. package/dist/lib/mock-server/scenario.js +464 -0
  52. package/dist/lib/mock-server/scenario.js.map +1 -0
  53. package/dist/lib/mock-server/signal-marketplace/server.d.ts +2 -0
  54. package/dist/lib/mock-server/signal-marketplace/server.d.ts.map +1 -1
  55. package/dist/lib/mock-server/signal-marketplace/server.js +29 -1
  56. package/dist/lib/mock-server/signal-marketplace/server.js.map +1 -1
  57. package/dist/lib/mock-server/sponsored-intelligence/server.d.ts +2 -0
  58. package/dist/lib/mock-server/sponsored-intelligence/server.d.ts.map +1 -1
  59. package/dist/lib/mock-server/sponsored-intelligence/server.js +47 -9
  60. package/dist/lib/mock-server/sponsored-intelligence/server.js.map +1 -1
  61. package/dist/lib/protocols/index.d.ts +4 -2
  62. package/dist/lib/protocols/index.d.ts.map +1 -1
  63. package/dist/lib/protocols/index.js +10 -3
  64. package/dist/lib/protocols/index.js.map +1 -1
  65. package/dist/lib/registry/index.d.ts +42 -16
  66. package/dist/lib/registry/index.d.ts.map +1 -1
  67. package/dist/lib/registry/index.js +191 -24
  68. package/dist/lib/registry/index.js.map +1 -1
  69. package/dist/lib/registry/types.d.ts +39 -8
  70. package/dist/lib/registry/types.d.ts.map +1 -1
  71. package/dist/lib/registry/types.generated.d.ts +2873 -699
  72. package/dist/lib/registry/types.generated.d.ts.map +1 -1
  73. package/dist/lib/registry/types.generated.js +2 -2
  74. package/dist/lib/registry/types.generated.js.map +1 -1
  75. package/dist/lib/schemas-data/v2.5/_provenance.json +1 -1
  76. package/dist/lib/server/a2a-adapter.d.ts +3 -1
  77. package/dist/lib/server/a2a-adapter.d.ts.map +1 -1
  78. package/dist/lib/server/a2a-adapter.js +11 -2
  79. package/dist/lib/server/a2a-adapter.js.map +1 -1
  80. package/dist/lib/server/adcp-server.js +32 -0
  81. package/dist/lib/server/adcp-server.js.map +1 -1
  82. package/dist/lib/server/create-adcp-server.d.ts +12 -6
  83. package/dist/lib/server/create-adcp-server.d.ts.map +1 -1
  84. package/dist/lib/server/create-adcp-server.js +72 -11
  85. package/dist/lib/server/create-adcp-server.js.map +1 -1
  86. package/dist/lib/server/decisioning/account.d.ts +17 -17
  87. package/dist/lib/server/decisioning/account.d.ts.map +1 -1
  88. package/dist/lib/server/decisioning/account.js.map +1 -1
  89. package/dist/lib/server/decisioning/buyer-agent.d.ts +27 -10
  90. package/dist/lib/server/decisioning/buyer-agent.d.ts.map +1 -1
  91. package/dist/lib/server/decisioning/buyer-agent.js +25 -7
  92. package/dist/lib/server/decisioning/buyer-agent.js.map +1 -1
  93. package/dist/lib/server/decisioning/capabilities.d.ts +35 -7
  94. package/dist/lib/server/decisioning/capabilities.d.ts.map +1 -1
  95. package/dist/lib/server/decisioning/errors-typed.d.ts +18 -16
  96. package/dist/lib/server/decisioning/errors-typed.d.ts.map +1 -1
  97. package/dist/lib/server/decisioning/errors-typed.js +26 -24
  98. package/dist/lib/server/decisioning/errors-typed.js.map +1 -1
  99. package/dist/lib/server/decisioning/index.d.ts +1 -1
  100. package/dist/lib/server/decisioning/index.d.ts.map +1 -1
  101. package/dist/lib/server/decisioning/index.js +4 -2
  102. package/dist/lib/server/decisioning/index.js.map +1 -1
  103. package/dist/lib/server/decisioning/platform-helpers.d.ts +3 -2
  104. package/dist/lib/server/decisioning/platform-helpers.d.ts.map +1 -1
  105. package/dist/lib/server/decisioning/platform-helpers.js +3 -2
  106. package/dist/lib/server/decisioning/platform-helpers.js.map +1 -1
  107. package/dist/lib/server/decisioning/platform.d.ts +27 -10
  108. package/dist/lib/server/decisioning/platform.d.ts.map +1 -1
  109. package/dist/lib/server/decisioning/platform.js.map +1 -1
  110. package/dist/lib/server/decisioning/runtime/from-platform.d.ts +14 -10
  111. package/dist/lib/server/decisioning/runtime/from-platform.d.ts.map +1 -1
  112. package/dist/lib/server/decisioning/runtime/from-platform.js +374 -59
  113. package/dist/lib/server/decisioning/runtime/from-platform.js.map +1 -1
  114. package/dist/lib/server/decisioning/runtime/validate-platform.d.ts.map +1 -1
  115. package/dist/lib/server/decisioning/runtime/validate-platform.js +3 -8
  116. package/dist/lib/server/decisioning/runtime/validate-platform.js.map +1 -1
  117. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.d.ts +9 -11
  118. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.d.ts.map +1 -1
  119. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.js +9 -11
  120. package/dist/lib/server/decisioning/specialisms/sponsored-intelligence.js.map +1 -1
  121. package/dist/lib/server/operational-platform.d.ts +6 -8
  122. package/dist/lib/server/operational-platform.d.ts.map +1 -1
  123. package/dist/lib/server/operational-platform.js +4 -6
  124. package/dist/lib/server/operational-platform.js.map +1 -1
  125. package/dist/lib/server/test-controller-bridge.d.ts +14 -14
  126. package/dist/lib/server/test-controller-bridge.d.ts.map +1 -1
  127. package/dist/lib/server/test-controller-bridge.js +16 -16
  128. package/dist/lib/server/test-controller-bridge.js.map +1 -1
  129. package/dist/lib/server/test-controller.d.ts +31 -9
  130. package/dist/lib/server/test-controller.d.ts.map +1 -1
  131. package/dist/lib/server/test-controller.js +106 -54
  132. package/dist/lib/server/test-controller.js.map +1 -1
  133. package/dist/lib/signing/canonicalize.d.ts +0 -53
  134. package/dist/lib/signing/canonicalize.d.ts.map +1 -1
  135. package/dist/lib/signing/canonicalize.js +1 -33
  136. package/dist/lib/signing/canonicalize.js.map +1 -1
  137. package/dist/lib/signing/client.d.ts +5 -5
  138. package/dist/lib/signing/client.d.ts.map +1 -1
  139. package/dist/lib/signing/client.js +1 -10
  140. package/dist/lib/signing/client.js.map +1 -1
  141. package/dist/lib/signing/errors.d.ts +0 -11
  142. package/dist/lib/signing/errors.d.ts.map +1 -1
  143. package/dist/lib/signing/errors.js +1 -11
  144. package/dist/lib/signing/errors.js.map +1 -1
  145. package/dist/lib/signing/jwks-helpers.d.ts +2 -4
  146. package/dist/lib/signing/jwks-helpers.d.ts.map +1 -1
  147. package/dist/lib/signing/jwks-helpers.js +9 -0
  148. package/dist/lib/signing/jwks-helpers.js.map +1 -1
  149. package/dist/lib/signing/provider.d.ts +11 -10
  150. package/dist/lib/signing/provider.d.ts.map +1 -1
  151. package/dist/lib/signing/request-context.d.ts +8 -11
  152. package/dist/lib/signing/request-context.d.ts.map +1 -1
  153. package/dist/lib/signing/request-context.js +7 -10
  154. package/dist/lib/signing/request-context.js.map +1 -1
  155. package/dist/lib/signing/server.d.ts +3 -4
  156. package/dist/lib/signing/server.d.ts.map +1 -1
  157. package/dist/lib/signing/server.js +1 -9
  158. package/dist/lib/signing/server.js.map +1 -1
  159. package/dist/lib/signing/signer-async.d.ts +2 -8
  160. package/dist/lib/signing/signer-async.d.ts.map +1 -1
  161. package/dist/lib/signing/signer-async.js +0 -12
  162. package/dist/lib/signing/signer-async.js.map +1 -1
  163. package/dist/lib/signing/signer.d.ts +4 -111
  164. package/dist/lib/signing/signer.d.ts.map +1 -1
  165. package/dist/lib/signing/signer.js +2 -98
  166. package/dist/lib/signing/signer.js.map +1 -1
  167. package/dist/lib/signing/testing.d.ts +10 -10
  168. package/dist/lib/signing/testing.d.ts.map +1 -1
  169. package/dist/lib/signing/testing.js +6 -13
  170. package/dist/lib/signing/testing.js.map +1 -1
  171. package/dist/lib/signing/types.d.ts +0 -36
  172. package/dist/lib/signing/types.d.ts.map +1 -1
  173. package/dist/lib/signing/types.js +1 -37
  174. package/dist/lib/signing/types.js.map +1 -1
  175. package/dist/lib/testing/agent-tester.d.ts +1 -0
  176. package/dist/lib/testing/agent-tester.d.ts.map +1 -1
  177. package/dist/lib/testing/agent-tester.js.map +1 -1
  178. package/dist/lib/testing/client.d.ts +1 -1
  179. package/dist/lib/testing/client.d.ts.map +1 -1
  180. package/dist/lib/testing/client.js +4 -2
  181. package/dist/lib/testing/client.js.map +1 -1
  182. package/dist/lib/testing/compliance/comply.d.ts +8 -0
  183. package/dist/lib/testing/compliance/comply.d.ts.map +1 -1
  184. package/dist/lib/testing/compliance/comply.js +98 -7
  185. package/dist/lib/testing/compliance/comply.js.map +1 -1
  186. package/dist/lib/testing/compliance/spec-conformance.d.ts +6 -6
  187. package/dist/lib/testing/compliance/spec-conformance.d.ts.map +1 -1
  188. package/dist/lib/testing/compliance/spec-conformance.js +6 -6
  189. package/dist/lib/testing/compliance/spec-conformance.js.map +1 -1
  190. package/dist/lib/testing/compliance/summary.d.ts +5 -0
  191. package/dist/lib/testing/compliance/summary.d.ts.map +1 -1
  192. package/dist/lib/testing/compliance/summary.js +17 -0
  193. package/dist/lib/testing/compliance/summary.js.map +1 -1
  194. package/dist/lib/testing/comply-controller.d.ts +19 -0
  195. package/dist/lib/testing/comply-controller.d.ts.map +1 -1
  196. package/dist/lib/testing/comply-controller.js +11 -8
  197. package/dist/lib/testing/comply-controller.js.map +1 -1
  198. package/dist/lib/testing/index.d.ts +4 -3
  199. package/dist/lib/testing/index.d.ts.map +1 -1
  200. package/dist/lib/testing/index.js +13 -1
  201. package/dist/lib/testing/index.js.map +1 -1
  202. package/dist/lib/testing/storyboard/canonical-format-satisfaction.d.ts +4 -0
  203. package/dist/lib/testing/storyboard/canonical-format-satisfaction.d.ts.map +1 -0
  204. package/dist/lib/testing/storyboard/canonical-format-satisfaction.js +881 -0
  205. package/dist/lib/testing/storyboard/canonical-format-satisfaction.js.map +1 -0
  206. package/dist/lib/testing/storyboard/compliance.d.ts +6 -0
  207. package/dist/lib/testing/storyboard/compliance.d.ts.map +1 -1
  208. package/dist/lib/testing/storyboard/compliance.js +8 -4
  209. package/dist/lib/testing/storyboard/compliance.js.map +1 -1
  210. package/dist/lib/testing/storyboard/index.d.ts +2 -1
  211. package/dist/lib/testing/storyboard/index.d.ts.map +1 -1
  212. package/dist/lib/testing/storyboard/index.js +9 -1
  213. package/dist/lib/testing/storyboard/index.js.map +1 -1
  214. package/dist/lib/testing/storyboard/loader.d.ts +3 -2
  215. package/dist/lib/testing/storyboard/loader.d.ts.map +1 -1
  216. package/dist/lib/testing/storyboard/loader.js +73 -2
  217. package/dist/lib/testing/storyboard/loader.js.map +1 -1
  218. package/dist/lib/testing/storyboard/path.d.ts +21 -0
  219. package/dist/lib/testing/storyboard/path.d.ts.map +1 -1
  220. package/dist/lib/testing/storyboard/path.js +86 -0
  221. package/dist/lib/testing/storyboard/path.js.map +1 -1
  222. package/dist/lib/testing/storyboard/rate-limit-trip.d.ts +92 -0
  223. package/dist/lib/testing/storyboard/rate-limit-trip.d.ts.map +1 -0
  224. package/dist/lib/testing/storyboard/rate-limit-trip.js +276 -0
  225. package/dist/lib/testing/storyboard/rate-limit-trip.js.map +1 -0
  226. package/dist/lib/testing/storyboard/runner.d.ts.map +1 -1
  227. package/dist/lib/testing/storyboard/runner.js +361 -28
  228. package/dist/lib/testing/storyboard/runner.js.map +1 -1
  229. package/dist/lib/testing/storyboard/seeding.d.ts +5 -4
  230. package/dist/lib/testing/storyboard/seeding.d.ts.map +1 -1
  231. package/dist/lib/testing/storyboard/seeding.js +23 -3
  232. package/dist/lib/testing/storyboard/seeding.js.map +1 -1
  233. package/dist/lib/testing/storyboard/types.d.ts +108 -20
  234. package/dist/lib/testing/storyboard/types.d.ts.map +1 -1
  235. package/dist/lib/testing/storyboard/types.js +1 -0
  236. package/dist/lib/testing/storyboard/types.js.map +1 -1
  237. package/dist/lib/testing/storyboard/validations.d.ts +18 -0
  238. package/dist/lib/testing/storyboard/validations.d.ts.map +1 -1
  239. package/dist/lib/testing/storyboard/validations.js +238 -33
  240. package/dist/lib/testing/storyboard/validations.js.map +1 -1
  241. package/dist/lib/testing/test-controller.d.ts +17 -25
  242. package/dist/lib/testing/test-controller.d.ts.map +1 -1
  243. package/dist/lib/testing/test-controller.js.map +1 -1
  244. package/dist/lib/testing/types.d.ts +13 -1
  245. package/dist/lib/testing/types.d.ts.map +1 -1
  246. package/dist/lib/types/check-governance.d.ts +1 -1
  247. package/dist/lib/types/comply-test-controller.d.ts +243 -3
  248. package/dist/lib/types/core.generated.d.ts +261 -21
  249. package/dist/lib/types/core.generated.d.ts.map +1 -1
  250. package/dist/lib/types/core.generated.js +1 -1
  251. package/dist/lib/types/create-media-buy.d.ts +107 -3
  252. package/dist/lib/types/error-codes.d.ts +2 -2
  253. package/dist/lib/types/get-adcp-capabilities.d.ts +1 -1
  254. package/dist/lib/types/get-media-buys.d.ts +107 -3
  255. package/dist/lib/types/get-plan-audit-logs.d.ts +1 -1
  256. package/dist/lib/types/get-products.d.ts +104 -3
  257. package/dist/lib/types/inline-enums.generated.d.ts +27 -17
  258. package/dist/lib/types/inline-enums.generated.d.ts.map +1 -1
  259. package/dist/lib/types/inline-enums.generated.js +39 -28
  260. package/dist/lib/types/inline-enums.generated.js.map +1 -1
  261. package/dist/lib/types/manifest.generated.d.ts +7 -4
  262. package/dist/lib/types/manifest.generated.d.ts.map +1 -1
  263. package/dist/lib/types/manifest.generated.js +2 -2
  264. package/dist/lib/types/manifest.generated.js.map +1 -1
  265. package/dist/lib/types/report-plan-outcome.d.ts +1 -1
  266. package/dist/lib/types/schemas.generated.d.ts +714 -193
  267. package/dist/lib/types/schemas.generated.d.ts.map +1 -1
  268. package/dist/lib/types/schemas.generated.js +194 -79
  269. package/dist/lib/types/schemas.generated.js.map +1 -1
  270. package/dist/lib/types/sync-plans.d.ts +1 -1
  271. package/dist/lib/types/tools.generated.d.ts +331 -28
  272. package/dist/lib/types/tools.generated.d.ts.map +1 -1
  273. package/dist/lib/types/update-media-buy.d.ts +107 -3
  274. package/dist/lib/types/v3-1-beta/tools.generated.d.ts +20 -0
  275. package/dist/lib/types/v3-1-beta/tools.generated.d.ts.map +1 -1
  276. package/dist/lib/upstream-recorder/constants.d.ts +2 -0
  277. package/dist/lib/upstream-recorder/constants.d.ts.map +1 -0
  278. package/dist/lib/upstream-recorder/constants.js +5 -0
  279. package/dist/lib/upstream-recorder/constants.js.map +1 -0
  280. package/dist/lib/upstream-recorder/index.d.ts +20 -10
  281. package/dist/lib/upstream-recorder/index.d.ts.map +1 -1
  282. package/dist/lib/upstream-recorder/index.js +21 -10
  283. package/dist/lib/upstream-recorder/index.js.map +1 -1
  284. package/dist/lib/upstream-recorder/recorder.d.ts +65 -0
  285. package/dist/lib/upstream-recorder/recorder.d.ts.map +1 -1
  286. package/dist/lib/upstream-recorder/recorder.js +500 -47
  287. package/dist/lib/upstream-recorder/recorder.js.map +1 -1
  288. package/dist/lib/upstream-recorder/types.d.ts +109 -13
  289. package/dist/lib/upstream-recorder/types.d.ts.map +1 -1
  290. package/dist/lib/upstream-recorder/types.js.map +1 -1
  291. package/dist/lib/utils/adcp-version-config.d.ts +1 -0
  292. package/dist/lib/utils/adcp-version-config.d.ts.map +1 -1
  293. package/dist/lib/utils/adcp-version-config.js +21 -0
  294. package/dist/lib/utils/adcp-version-config.js.map +1 -1
  295. package/dist/lib/utils/capability-rollups.d.ts +5 -5
  296. package/dist/lib/utils/capability-rollups.d.ts.map +1 -1
  297. package/dist/lib/utils/capability-rollups.js +1 -1
  298. package/dist/lib/utils/capability-rollups.js.map +1 -1
  299. package/dist/lib/utils/json-depth.d.ts +2 -0
  300. package/dist/lib/utils/json-depth.d.ts.map +1 -0
  301. package/dist/lib/utils/json-depth.js +5 -0
  302. package/dist/lib/utils/json-depth.js.map +1 -0
  303. package/dist/lib/utils/media-buy-delivery-notification-builders.d.ts +1 -1
  304. package/dist/lib/utils/media-buy-delivery-notification-builders.d.ts.map +1 -1
  305. package/dist/lib/utils/preview-creative-builders.d.ts +1 -1
  306. package/dist/lib/utils/preview-creative-builders.d.ts.map +1 -1
  307. package/dist/lib/utils/redact-secrets.d.ts +13 -2
  308. package/dist/lib/utils/redact-secrets.d.ts.map +1 -1
  309. package/dist/lib/utils/redact-secrets.js +40 -13
  310. package/dist/lib/utils/redact-secrets.js.map +1 -1
  311. package/dist/lib/utils/response-schemas.d.ts +1 -0
  312. package/dist/lib/utils/response-schemas.d.ts.map +1 -1
  313. package/dist/lib/utils/response-schemas.js +15 -0
  314. package/dist/lib/utils/response-schemas.js.map +1 -1
  315. package/dist/lib/utils/response-unwrapper.d.ts +2 -1
  316. package/dist/lib/utils/response-unwrapper.d.ts.map +1 -1
  317. package/dist/lib/utils/response-unwrapper.js +11 -3
  318. package/dist/lib/utils/response-unwrapper.js.map +1 -1
  319. package/dist/lib/utils/tool-request-schemas.d.ts +31 -1
  320. package/dist/lib/utils/tool-request-schemas.d.ts.map +1 -1
  321. package/dist/lib/v2/format-schema/fetch.d.ts +13 -5
  322. package/dist/lib/v2/format-schema/fetch.d.ts.map +1 -1
  323. package/dist/lib/v2/format-schema/fetch.js +27 -16
  324. package/dist/lib/v2/format-schema/fetch.js.map +1 -1
  325. package/dist/lib/v2/format-schema/index.d.ts +13 -11
  326. package/dist/lib/v2/format-schema/index.d.ts.map +1 -1
  327. package/dist/lib/v2/format-schema/index.js +19 -12
  328. package/dist/lib/v2/format-schema/index.js.map +1 -1
  329. package/dist/lib/v2/format-schema/resolver.d.ts +71 -0
  330. package/dist/lib/v2/format-schema/resolver.d.ts.map +1 -0
  331. package/dist/lib/v2/format-schema/resolver.js +284 -0
  332. package/dist/lib/v2/format-schema/resolver.js.map +1 -0
  333. package/dist/lib/v2/format-schema/sandbox-refs.d.ts +6 -0
  334. package/dist/lib/v2/format-schema/sandbox-refs.d.ts.map +1 -1
  335. package/dist/lib/v2/format-schema/sandbox-refs.js +36 -15
  336. package/dist/lib/v2/format-schema/sandbox-refs.js.map +1 -1
  337. package/dist/lib/validation/schema-loader.d.ts.map +1 -1
  338. package/dist/lib/validation/schema-loader.js +48 -3
  339. package/dist/lib/validation/schema-loader.js.map +1 -1
  340. package/dist/lib/version.d.ts +3 -3
  341. package/dist/lib/version.js +3 -3
  342. package/docs/guides/BUILD-AN-AGENT.md +7 -7
  343. package/docs/guides/CANONICAL-REFERENCE-RESOLVER.md +75 -0
  344. package/docs/llms.txt +37 -8
  345. package/examples/README.md +29 -16
  346. package/examples/hello_creative_adapter_ad_server.ts +8 -2
  347. package/examples/hello_seller_adapter_guaranteed.ts +26 -18
  348. package/examples/hello_seller_adapter_multi_tenant.ts +6 -6
  349. package/examples/hello_seller_adapter_social.ts +80 -4
  350. package/examples/hello_si_adapter_brand.ts +10 -21
  351. package/examples/hello_signals_adapter_marketplace.ts +184 -9
  352. package/examples/proxy-seller-snap/README.md +47 -0
  353. package/examples/proxy-seller-snap/index.ts +321 -0
  354. package/package.json +19 -4
  355. package/skills/build-creative-agent/SKILL.md +1 -15
  356. package/skills/build-decisioning-platform/SKILL.md +6 -1
  357. package/skills/build-seller-agent/SKILL.md +5 -2
  358. package/skills/build-si-agent/SKILL.md +2 -2
  359. package/skills/call-adcp-agent/SKILL.md +4 -1
  360. package/dist/lib/signing/response-verifier.d.ts +0 -105
  361. package/dist/lib/signing/response-verifier.d.ts.map +0 -1
  362. package/dist/lib/signing/response-verifier.js +0 -271
  363. package/dist/lib/signing/response-verifier.js.map +0 -1
@@ -183,6 +183,29 @@ export interface ComplyTestControllerRequest {
183
183
  */
184
184
  upstream_name?: string;
185
185
  result?: AdCPAsyncResponseData;
186
+ /**
187
+ * ISO 8601 timestamp; only return calls recorded at or after this time. Default: session start. Used by storyboard runners to scope upstream_traffic assertions to a specific step's window.
188
+ * @format date-time
189
+ */
190
+ since_timestamp?: string;
191
+ /**
192
+ * Optional server-side filter; reduces response size. Wildcard pattern matched against `<METHOD> <URL>`, e.g. 'POST * /audience/upload' or 'POST *'. When omitted, all recorded calls in the window are returned. **Grammar (normative):** `*` matches zero or more characters of any kind including `/`. No other characters have wildcard semantics — `?` is a literal question mark, `[` and `]` are literal brackets, etc. There is no escape mechanism — `*` is always a wildcard; if literal-asterisk matching is required, callers omit `endpoint_pattern` and filter response-side. Implementations MUST anchor the pattern (full-string match, not substring search). This narrow grammar is intentional — `endpoint_pattern` exists to discriminate platform endpoints (e.g., `POST * /audience/upload` vs `POST * /events/log`), not to express full path-segment grammars. Cross-runner determinism depends on this pinning: a runner that ships POSIX-glob semantics (`*` per-segment, `?` single-char-any) would grade the same storyboard differently than a runner picking the more permissive single-wildcard reading.
193
+ */
194
+ endpoint_pattern?: string;
195
+ /**
196
+ * Maximum number of calls to return. The response carries `total_count` and `truncated` so the runner can detect overflow.
197
+ * @minimum 1
198
+ * @maximum 1000
199
+ */
200
+ limit?: number;
201
+ /**
202
+ * Requested response shape per recorded call. `raw` (default) returns full payload — the load-bearing assertion target for arbitrary `payload_must_contain` paths, and the existing v2.0.0 contract. `digest` returns only `payload_digest_sha256` + `payload_length` + `content_type` + optional `identifier_match_proofs[]`, so privacy-conscious adopters can support `upstream_traffic` conformance without raw-payload disclosure. Whether digest mode satisfies a given adopter's data-handling obligations (GDPR processor responsibilities, internal data-classification policy, contractual restrictions) is for that adopter's counsel to determine — the spec doesn't promise digest mode clears any specific legal bar. Synthetic-vectors-only still applies (see UpstreamTrafficSuccess top-level description in comply-test-controller-response.json): digest mode reduces what the runner sees, but the controller must still operate on synthetic test data, not production traffic — running queries against production payloads would let a runner with a precomputed digest set learn membership of arbitrary identifiers in the adopter's user base. Adopters MAY unilaterally downgrade a `raw` request to `digest` when their policy requires it; the response's per-call `attestation_mode` field echoes what was actually returned. Storyboards that strictly require raw introspection set `attestation_mode_required: "raw"` on their `upstream_traffic` check — calls returned in digest mode then grade not_applicable rather than failing.
203
+ */
204
+ attestation_mode?: 'raw' | 'digest';
205
+ /**
206
+ * When `attestation_mode` is `digest`, the runner MAY supply SHA-256 digests (lowercase hex, 64 chars) of identifier values it wants the controller to verify echo for. The controller scans each recorded call's payload for string tokens whose SHA-256 hash matches any digest in this list and returns booleans in `recorded_calls[].identifier_match_proofs[]`. Lets the runner verify `identifier_paths` echo without ever transmitting plaintext identifiers to the controller — the digest is the comparison key. Cap of 64 digests per query to bound the controller's work; storyboards with more identifiers SHOULD batch across multiple queries. Has no effect when `attestation_mode` is `raw` (the runner does the matching in-process against the full payload).
207
+ */
208
+ identifier_value_digests?: string[];
186
209
  };
187
210
  context?: ContextObject;
188
211
  ext?: ExtensionObject;
@@ -4027,7 +4050,70 @@ export interface DiagnosticIssue {
4027
4050
  * attestation_mode digest — payload_digest_sha256 required, payload absent. identifier_match_proofs present when the request supplied identifier_value_digests.
4028
4051
  */
4029
4052
  export interface DigestAttestation {
4053
+ /**
4054
+ * HTTP method of the outbound call.
4055
+ */
4056
+ method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
4057
+ /**
4058
+ * Composed `<METHOD> <URL>` string used for `endpoint_pattern` matching, e.g. 'POST https://api.tiktok.com/v2/audience/upload'. Convenience field — the runner can also reconstruct from `method` + URL components.
4059
+ */
4060
+ endpoint: string;
4061
+ /**
4062
+ * Full URL of the outbound call (scheme + host + path + query). Treated as untrusted agent-controlled input by report renderers — see runner-output-contract.yaml > security.rendered_output_fencing.
4063
+ */
4064
+ url: string;
4065
+ /**
4066
+ * Host portion of the URL, useful for grouping calls by upstream platform.
4067
+ */
4068
+ host?: string;
4069
+ /**
4070
+ * Path portion of the URL (without query string).
4071
+ */
4072
+ path?: string;
4073
+ /**
4074
+ * Media type of the outbound request body, mirroring the agent's outbound `Content-Type` header (e.g., `application/json`, `application/x-www-form-urlencoded`, `multipart/form-data`, `text/plain`). In raw mode this describes the returned `payload`; in digest mode it describes the body the digest was computed over. Storyboard `payload_must_contain` JSONPath assertions are valid only when content_type is `application/json` or has a `+json` suffix AND attestation_mode is `raw` — digest mode and non-JSON content types grade `payload_must_contain` as not_applicable. Required so the runner can choose the right matcher deterministically.
4075
+ */
4076
+ content_type: string;
4030
4077
  attestation_mode: 'digest';
4078
+ /**
4079
+ * Optional adopter-supplied semantic tag for the call's role. Values: `platform_primary` for the primary upstream platform the adapter is integrating with (e.g., a TikTok audience-upload call from a sales-social adapter); `measurement` for ancillary calls to measurement vendors (DV, IAS, Nielsen, MOAT); `attribution` for server-side conversion APIs (TTD Trans-API, Meta CAPI, AppsFlyer/Branch postbacks) that flow alongside primary platform calls in a buy-step; `creative_serving` for ad-server / CDN / tag-build calls (GAM tag generation, VAST/CDN fetches, creative trafficking); `identity` for ID-graph / hashing-service calls (LiveRamp, ID5, UID2); `other` for everything else (config fetches, internal telemetry, consent signal exchange). Lets storyboards scope `upstream_traffic` assertions via `purpose_filter` so a buyer-agent adapter that legitimately calls measurement vendors during a single buy step doesn't muddy the platform-primary assertion. Calls without a `purpose` field are treated as `purpose: other` for `purpose_filter` matching — adopters who haven't classified are matched only by storyboards filtering on `other` (or by storyboards with no `purpose_filter`). Self-reported, not adversarially trustworthy — same trust model as the rest of recorded_calls; misclassification by a façade is bounded by the runner's reporting of unclassified-call counts in `actual` when filters match zero.
4080
+ */
4081
+ purpose?: 'platform_primary' | 'measurement' | 'attribution' | 'creative_serving' | 'identity' | 'other';
4082
+ /**
4083
+ * SHA-256 digest of the canonicalized outbound request body, lowercase hex (64 chars). Required when `attestation_mode` is `digest`; MUST be absent when `attestation_mode` is `raw`. Canonicalization order is normative: (1) controllers MUST apply the recursive secret-key redaction (same pattern as the raw-mode payload field) BEFORE computing the digest; (2) for `application/json` and `*+json` content types, controllers MUST then serialize the redacted body to RFC 8785 (JCS) canonical form — sorted keys, no extraneous whitespace — and digest the resulting bytes. Storyboard-supplied identifiers (hashed PII, request correlation values) MUST NOT be redacted before digest computation; they are the load-bearing match target for `identifier_match_proofs` and digesting them away makes echo verification impossible. Both `payload_digest_sha256` AND `identifier_match_proofs` MUST be computed against the same post-redaction canonical bytes — diverging the two surfaces breaks coherence between digest replay and identifier echo. JCS edge cases: payloads containing `NaN` or `Infinity` numbers MUST grade `not_applicable` for digest mode (RFC 8785 forbids them); payloads carrying numeric identifiers MUST serialize them as JSON strings before digest computation (adtech bid payloads regularly carry IDs outside ±2^53 where I-JSON / RFC 7493 number round-tripping diverges across implementations). For non-JSON content types the digest is computed over the post-redaction raw body bytes.
4084
+ * @pattern ^[a-f0-9]{64}$
4085
+ */
4086
+ payload_digest_sha256: string;
4087
+ /**
4088
+ * Byte length of the post-redaction canonicalized body. Required in both `raw` and `digest` modes — symmetric across modes so runners can detect adopter-side truncation regardless of attestation choice. In raw mode this MUST equal the byte length of the `payload` value as serialized for transmission; in digest mode this is the length of the canonicalized body the digest covers. Mismatch between observed payload length and reported `payload_length` is a controller-side bug worth surfacing in the report.
4089
+ * @minimum 0
4090
+ */
4091
+ payload_length: number;
4092
+ /**
4093
+ * Per-identifier echo proofs for digest-mode calls. Required when `attestation_mode` is `digest` AND the request supplied `params.identifier_value_digests`; MUST be absent or empty otherwise. Each entry corresponds to one digest from the request. Capped at 64 to match the request-side `params.identifier_value_digests` cap. Lets storyboards verify `identifier_paths` echo in digest mode without ever transmitting plaintext identifiers to the controller. SHA-256 is a privacy mechanism here, not a trust mechanism — controllers self-report `found` and a determined façade can return any boolean; consumers MUST NOT treat digest-mode passing as cryptographically more trustworthy than raw mode. Tokenization is normative: for `application/json` and `*+json` content types, controllers MUST scan exactly the JSON string-typed leaf values of the post-redaction canonicalized body — no substring matching, no word splitting, no case folding, no Unicode normalization. A token matches when its SHA-256 hash equals one of the requested digests byte-for-byte. For non-JSON content types (form-urlencoded, multipart, plain text), `identifier_match_proofs` MUST be empty and runner-side `identifier_paths` assertions targeting those calls grade `not_applicable` — token boundaries are not portably defined across non-JSON shapes.
4094
+ */
4095
+ identifier_match_proofs?: {
4096
+ /**
4097
+ * Echo of one digest from `params.identifier_value_digests` so the runner can pair this proof with the identifier it queried.
4098
+ * @pattern ^[a-f0-9]{64}$
4099
+ */
4100
+ identifier_value_sha256: string;
4101
+ /**
4102
+ * True if any string token in the recorded payload hashes to the queried digest. False otherwise.
4103
+ */
4104
+ found: boolean;
4105
+ }[];
4106
+ /**
4107
+ * ISO 8601 timestamp the adopter recorded the outbound call. MUST reflect the adopter's wall clock at the moment the outbound request was sent (not log-flush time), and MUST be monotonically non-decreasing across recorded_calls of a single response. Used by runners to scope assertions to a specific storyboard step's window — see runner-output-contract.yaml > validation_result for the timestamp boundary semantics.
4108
+ * @format date-time
4109
+ */
4110
+ timestamp: string;
4111
+ /**
4112
+ * HTTP status code returned by the upstream. Optional — adopters MAY omit when the call was instrumented before the response arrived.
4113
+ * @minimum 100
4114
+ * @maximum 599
4115
+ */
4116
+ status_code?: number;
4031
4117
  }
4032
4118
 
4033
4119
  /**
@@ -4050,6 +4136,11 @@ export interface DisplayTagFormatDeclaration {
4050
4136
  params: CanonicalFormatDisplayTag;
4051
4137
  }
4052
4138
 
4139
+ /**
4140
+ * Distance unit
4141
+ */
4142
+ export type DistanceUnit = 'km' | 'mi' | 'm';
4143
+
4053
4144
  /**
4054
4145
  * DOOH inventory allocation parameters. Sponsorship and takeover flat_rate options omit this field entirely — only include for digital out-of-home inventory.
4055
4146
  */
@@ -7218,7 +7309,57 @@ export interface PushNotificationConfig {
7218
7309
  * attestation_mode raw — payload is required; payload_digest_sha256 and identifier_match_proofs are absent. attestation_mode is required at the item level so the discriminator always has a value to dispatch on (no implicit defaults inside oneOf branches).
7219
7310
  */
7220
7311
  export interface RawAttestation {
7312
+ /**
7313
+ * HTTP method of the outbound call.
7314
+ */
7315
+ method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
7316
+ /**
7317
+ * Composed `<METHOD> <URL>` string used for `endpoint_pattern` matching, e.g. 'POST https://api.tiktok.com/v2/audience/upload'. Convenience field — the runner can also reconstruct from `method` + URL components.
7318
+ */
7319
+ endpoint: string;
7320
+ /**
7321
+ * Full URL of the outbound call (scheme + host + path + query). Treated as untrusted agent-controlled input by report renderers — see runner-output-contract.yaml > security.rendered_output_fencing.
7322
+ */
7323
+ url: string;
7324
+ /**
7325
+ * Host portion of the URL, useful for grouping calls by upstream platform.
7326
+ */
7327
+ host?: string;
7328
+ /**
7329
+ * Path portion of the URL (without query string).
7330
+ */
7331
+ path?: string;
7332
+ /**
7333
+ * Media type of the outbound request body, mirroring the agent's outbound `Content-Type` header (e.g., `application/json`, `application/x-www-form-urlencoded`, `multipart/form-data`, `text/plain`). In raw mode this describes the returned `payload`; in digest mode it describes the body the digest was computed over. Storyboard `payload_must_contain` JSONPath assertions are valid only when content_type is `application/json` or has a `+json` suffix AND attestation_mode is `raw` — digest mode and non-JSON content types grade `payload_must_contain` as not_applicable. Required so the runner can choose the right matcher deterministically.
7334
+ */
7335
+ content_type: string;
7221
7336
  attestation_mode: 'raw';
7337
+ /**
7338
+ * Optional adopter-supplied semantic tag for the call's role. Values: `platform_primary` for the primary upstream platform the adapter is integrating with (e.g., a TikTok audience-upload call from a sales-social adapter); `measurement` for ancillary calls to measurement vendors (DV, IAS, Nielsen, MOAT); `attribution` for server-side conversion APIs (TTD Trans-API, Meta CAPI, AppsFlyer/Branch postbacks) that flow alongside primary platform calls in a buy-step; `creative_serving` for ad-server / CDN / tag-build calls (GAM tag generation, VAST/CDN fetches, creative trafficking); `identity` for ID-graph / hashing-service calls (LiveRamp, ID5, UID2); `other` for everything else (config fetches, internal telemetry, consent signal exchange). Lets storyboards scope `upstream_traffic` assertions via `purpose_filter` so a buyer-agent adapter that legitimately calls measurement vendors during a single buy step doesn't muddy the platform-primary assertion. Calls without a `purpose` field are treated as `purpose: other` for `purpose_filter` matching — adopters who haven't classified are matched only by storyboards filtering on `other` (or by storyboards with no `purpose_filter`). Self-reported, not adversarially trustworthy — same trust model as the rest of recorded_calls; misclassification by a façade is bounded by the runner's reporting of unclassified-call counts in `actual` when filters match zero.
7339
+ */
7340
+ purpose?: 'platform_primary' | 'measurement' | 'attribution' | 'creative_serving' | 'identity' | 'other';
7341
+ /**
7342
+ * Request body the agent sent. Required when `attestation_mode` is `raw` (or omitted); MUST be absent when `attestation_mode` is `digest`. Object when content_type is JSON-shaped and the controller decoded it; string otherwise. Adopters MUST apply the recursive secret-key redaction described in this branch's top-level description before emission — secrets at any depth (Authorization values inlined into JSON bodies, embedded JWTs, presigned-URL tokens, OAuth refresh tokens) MUST be replaced with the literal string `[redacted]`. Storyboards that assert `payload_must_contain` or `identifier_paths` are matching against THIS field — secrets MUST be redacted but storyboard-supplied identifiers (hashed PII, request correlation values) MUST NOT be redacted. Adopters SHOULD cap individual payload size at 64 KiB; payloads exceeding that SHOULD be truncated with a trailing `[…truncated]` marker — large payloads bloat compliance reports and the LLM-rendered context windows that consume them.
7343
+ */
7344
+ payload: {
7345
+ [k: string]: unknown | undefined;
7346
+ };
7347
+ /**
7348
+ * Byte length of the post-redaction canonicalized body. Required in both `raw` and `digest` modes — symmetric across modes so runners can detect adopter-side truncation regardless of attestation choice. In raw mode this MUST equal the byte length of the `payload` value as serialized for transmission; in digest mode this is the length of the canonicalized body the digest covers. Mismatch between observed payload length and reported `payload_length` is a controller-side bug worth surfacing in the report.
7349
+ * @minimum 0
7350
+ */
7351
+ payload_length: number;
7352
+ /**
7353
+ * ISO 8601 timestamp the adopter recorded the outbound call. MUST reflect the adopter's wall clock at the moment the outbound request was sent (not log-flush time), and MUST be monotonically non-decreasing across recorded_calls of a single response. Used by runners to scope assertions to a specific storyboard step's window — see runner-output-contract.yaml > validation_result for the timestamp boundary semantics.
7354
+ * @format date-time
7355
+ */
7356
+ timestamp: string;
7357
+ /**
7358
+ * HTTP status code returned by the upstream. Optional — adopters MAY omit when the call was instrumented before the response arrived.
7359
+ * @minimum 100
7360
+ * @maximum 599
7361
+ */
7362
+ status_code?: number;
7222
7363
  }
7223
7364
 
7224
7365
  /**
@@ -8396,9 +8537,98 @@ export interface TargetingOverlay {
8396
8537
  /**
8397
8538
  * Target users within travel time, distance, or a custom boundary around arbitrary geographic points. Multiple entries use OR semantics — a user within range of any listed point is eligible. For campaigns targeting 10+ locations, consider using store_catchments with a location catalog instead. Seller must declare support in get_adcp_capabilities.
8398
8539
  */
8399
- geo_proximity?: {
8400
- [k: string]: unknown | undefined;
8401
- }[];
8540
+ geo_proximity?: ({
8541
+ /**
8542
+ * Latitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
8543
+ * @minimum -90
8544
+ * @maximum 90
8545
+ */
8546
+ lat: number;
8547
+ /**
8548
+ * Longitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
8549
+ * @minimum -180
8550
+ * @maximum 180
8551
+ */
8552
+ lng: number;
8553
+ /**
8554
+ * Human-readable label for this entry (e.g., 'Düsseldorf', 'Heathrow Airport', 'Primary trade area').
8555
+ */
8556
+ label?: string;
8557
+ /**
8558
+ * Travel time limit for isochrone calculation. The platform resolves this to a geographic boundary based on actual transportation networks.
8559
+ */
8560
+ travel_time: {
8561
+ /**
8562
+ * Travel time limit.
8563
+ * @minimum 1
8564
+ */
8565
+ value: number;
8566
+ unit: TravelTimeUnit;
8567
+ };
8568
+ transport_mode: TransportMode;
8569
+ ext?: ExtensionObject;
8570
+ } | {
8571
+ /**
8572
+ * Latitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
8573
+ * @minimum -90
8574
+ * @maximum 90
8575
+ */
8576
+ lat: number;
8577
+ /**
8578
+ * Longitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
8579
+ * @minimum -180
8580
+ * @maximum 180
8581
+ */
8582
+ lng: number;
8583
+ /**
8584
+ * Human-readable label for this entry (e.g., 'Düsseldorf', 'Heathrow Airport', 'Primary trade area').
8585
+ */
8586
+ label?: string;
8587
+ transport_mode?: TransportMode;
8588
+ /**
8589
+ * Simple radius from the point. The platform draws a circle of this distance around the coordinates.
8590
+ */
8591
+ radius: {
8592
+ /**
8593
+ * Radius distance.
8594
+ */
8595
+ value: number;
8596
+ unit: DistanceUnit;
8597
+ };
8598
+ ext?: ExtensionObject;
8599
+ } | {
8600
+ /**
8601
+ * Latitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
8602
+ * @minimum -90
8603
+ * @maximum 90
8604
+ */
8605
+ lat?: number;
8606
+ /**
8607
+ * Longitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
8608
+ * @minimum -180
8609
+ * @maximum 180
8610
+ */
8611
+ lng?: number;
8612
+ /**
8613
+ * Human-readable label for this entry (e.g., 'Düsseldorf', 'Heathrow Airport', 'Primary trade area').
8614
+ */
8615
+ label?: string;
8616
+ transport_mode?: TransportMode;
8617
+ /**
8618
+ * Pre-computed GeoJSON geometry defining the proximity boundary. Use when the buyer has already calculated isochrones (via TravelTime, Mapbox, etc.) or has custom boundaries. When geometry is provided, lat/lng are not required.
8619
+ */
8620
+ geometry: {
8621
+ /**
8622
+ * GeoJSON geometry type.
8623
+ */
8624
+ type: 'Polygon' | 'MultiPolygon';
8625
+ /**
8626
+ * GeoJSON coordinates array. For Polygon: array of linear rings. For MultiPolygon: array of polygons.
8627
+ */
8628
+ coordinates: unknown[];
8629
+ };
8630
+ ext?: ExtensionObject;
8631
+ })[];
8402
8632
  /**
8403
8633
  * Restrict to users with specific language preferences. ISO 639-1 codes (e.g., 'en', 'es', 'fr').
8404
8634
  */
@@ -8520,6 +8750,16 @@ export interface TimeBasedPricingOption {
8520
8750
  eligible_adjustments?: PriceAdjustmentKind[];
8521
8751
  }
8522
8752
 
8753
+ /**
8754
+ * Transportation mode for isochrone calculation. Required when travel_time is provided.
8755
+ */
8756
+ export type TransportMode = 'walking' | 'cycling' | 'driving' | 'public_transport';
8757
+
8758
+ /**
8759
+ * Time unit for isochrone (travel-time catchment) calculations.
8760
+ */
8761
+ export type TravelTimeUnit = 'min' | 'hr';
8762
+
8523
8763
  /**
8524
8764
  * Type of user identifier. Used in audience sync, event logging, and TMP identity match requests to tell the receiver which identity graph to resolve against.
8525
8765
  */
@@ -156,6 +156,18 @@ export type DevicePlatform = 'ios' | 'android' | 'windows' | 'macos' | 'linux' |
156
156
  * Device form factor categories for targeting and reporting. Complements device-platform (operating system) with hardware classification. OpenRTB mapping: 1 (Mobile/Tablet General) → mobile, 2 (PC) → desktop, 4 (Phone) → mobile, 5 (Tablet) → tablet, 6 (Connected Device) → ctv, 7 (Set Top Box) → ctv. DOOH inventory uses dooh.
157
157
  */
158
158
  export type DeviceType = 'desktop' | 'mobile' | 'tablet' | 'ctv' | 'dooh' | 'unknown';
159
+ /**
160
+ * Time unit for isochrone (travel-time catchment) calculations.
161
+ */
162
+ export type TravelTimeUnit = 'min' | 'hr';
163
+ /**
164
+ * Transportation mode for isochrone calculation. Required when travel_time is provided.
165
+ */
166
+ export type TransportMode = 'walking' | 'cycling' | 'driving' | 'public_transport';
167
+ /**
168
+ * Distance unit.
169
+ */
170
+ export type DistanceUnit = 'km' | 'mi' | 'm';
159
171
  /**
160
172
  * Keyword targeting match type. broad: ads may serve on queries semantically related to the keyword. phrase: ads serve when the query contains the keyword phrase. exact: ads serve only when the query matches the keyword exactly.
161
173
  */
@@ -1604,9 +1616,98 @@ export interface TargetingOverlay {
1604
1616
  /**
1605
1617
  * Target users within travel time, distance, or a custom boundary around arbitrary geographic points. Multiple entries use OR semantics — a user within range of any listed point is eligible. For campaigns targeting 10+ locations, consider using store_catchments with a location catalog instead. Seller must declare support in get_adcp_capabilities.
1606
1618
  */
1607
- geo_proximity?: {
1608
- [k: string]: unknown | undefined;
1609
- }[];
1619
+ geo_proximity?: ({
1620
+ /**
1621
+ * Latitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
1622
+ * @minimum -90
1623
+ * @maximum 90
1624
+ */
1625
+ lat: number;
1626
+ /**
1627
+ * Longitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
1628
+ * @minimum -180
1629
+ * @maximum 180
1630
+ */
1631
+ lng: number;
1632
+ /**
1633
+ * Human-readable label for this entry (e.g., 'Düsseldorf', 'Heathrow Airport', 'Primary trade area').
1634
+ */
1635
+ label?: string;
1636
+ /**
1637
+ * Travel time limit for isochrone calculation. The platform resolves this to a geographic boundary based on actual transportation networks.
1638
+ */
1639
+ travel_time: {
1640
+ /**
1641
+ * Travel time limit.
1642
+ * @minimum 1
1643
+ */
1644
+ value: number;
1645
+ unit: TravelTimeUnit;
1646
+ };
1647
+ transport_mode: TransportMode;
1648
+ ext?: ExtensionObject;
1649
+ } | {
1650
+ /**
1651
+ * Latitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
1652
+ * @minimum -90
1653
+ * @maximum 90
1654
+ */
1655
+ lat: number;
1656
+ /**
1657
+ * Longitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
1658
+ * @minimum -180
1659
+ * @maximum 180
1660
+ */
1661
+ lng: number;
1662
+ /**
1663
+ * Human-readable label for this entry (e.g., 'Düsseldorf', 'Heathrow Airport', 'Primary trade area').
1664
+ */
1665
+ label?: string;
1666
+ transport_mode?: TransportMode;
1667
+ /**
1668
+ * Simple radius from the point. The platform draws a circle of this distance around the coordinates.
1669
+ */
1670
+ radius: {
1671
+ /**
1672
+ * Radius distance.
1673
+ */
1674
+ value: number;
1675
+ unit: DistanceUnit;
1676
+ };
1677
+ ext?: ExtensionObject;
1678
+ } | {
1679
+ /**
1680
+ * Latitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
1681
+ * @minimum -90
1682
+ * @maximum 90
1683
+ */
1684
+ lat?: number;
1685
+ /**
1686
+ * Longitude in decimal degrees (WGS 84). Required for travel_time and radius methods.
1687
+ * @minimum -180
1688
+ * @maximum 180
1689
+ */
1690
+ lng?: number;
1691
+ /**
1692
+ * Human-readable label for this entry (e.g., 'Düsseldorf', 'Heathrow Airport', 'Primary trade area').
1693
+ */
1694
+ label?: string;
1695
+ transport_mode?: TransportMode;
1696
+ /**
1697
+ * Pre-computed GeoJSON geometry defining the proximity boundary. Use when the buyer has already calculated isochrones (via TravelTime, Mapbox, etc.) or has custom boundaries. When geometry is provided, lat/lng are not required.
1698
+ */
1699
+ geometry: {
1700
+ /**
1701
+ * GeoJSON geometry type.
1702
+ */
1703
+ type: 'Polygon' | 'MultiPolygon';
1704
+ /**
1705
+ * GeoJSON coordinates array. For Polygon: array of linear rings. For MultiPolygon: array of polygons.
1706
+ */
1707
+ coordinates: unknown[];
1708
+ };
1709
+ ext?: ExtensionObject;
1710
+ })[];
1610
1711
  /**
1611
1712
  * Restrict to users with specific language preferences. ISO 639-1 codes (e.g., 'en', 'es', 'fr').
1612
1713
  */
@@ -16518,9 +16619,95 @@ export interface ProductFilters {
16518
16619
  /**
16519
16620
  * Filter by proximity to geographic points. Returns products with inventory coverage near these locations. Follows the same format as the targeting overlay — each entry uses exactly one method: travel_time + transport_mode, radius, or geometry. For locally-bound inventory (DOOH, radio), filters to products with coverage in the area. For digital inventory, filters to products from sellers supporting geo_proximity targeting.
16520
16621
  */
16521
- geo_proximity?: {
16522
- [k: string]: unknown | undefined;
16523
- }[];
16622
+ geo_proximity?: ({
16623
+ /**
16624
+ * Latitude in decimal degrees (WGS 84)
16625
+ * @minimum -90
16626
+ * @maximum 90
16627
+ */
16628
+ lat: number;
16629
+ /**
16630
+ * Longitude in decimal degrees (WGS 84)
16631
+ * @minimum -180
16632
+ * @maximum 180
16633
+ */
16634
+ lng: number;
16635
+ /**
16636
+ * Human-readable label (e.g., 'Düsseldorf', 'Heathrow Airport')
16637
+ */
16638
+ label?: string;
16639
+ /**
16640
+ * Travel time limit for isochrone calculation
16641
+ */
16642
+ travel_time: {
16643
+ /**
16644
+ * Travel time limit
16645
+ * @minimum 1
16646
+ */
16647
+ value: number;
16648
+ unit: TravelTimeUnit;
16649
+ };
16650
+ transport_mode: TransportMode;
16651
+ } | {
16652
+ /**
16653
+ * Latitude in decimal degrees (WGS 84)
16654
+ * @minimum -90
16655
+ * @maximum 90
16656
+ */
16657
+ lat: number;
16658
+ /**
16659
+ * Longitude in decimal degrees (WGS 84)
16660
+ * @minimum -180
16661
+ * @maximum 180
16662
+ */
16663
+ lng: number;
16664
+ /**
16665
+ * Human-readable label (e.g., 'Düsseldorf', 'Heathrow Airport')
16666
+ */
16667
+ label?: string;
16668
+ transport_mode?: TransportMode;
16669
+ /**
16670
+ * Simple radius from the point
16671
+ */
16672
+ radius: {
16673
+ /**
16674
+ * Radius distance
16675
+ */
16676
+ value: number;
16677
+ unit: DistanceUnit;
16678
+ };
16679
+ } | {
16680
+ /**
16681
+ * Latitude in decimal degrees (WGS 84)
16682
+ * @minimum -90
16683
+ * @maximum 90
16684
+ */
16685
+ lat?: number;
16686
+ /**
16687
+ * Longitude in decimal degrees (WGS 84)
16688
+ * @minimum -180
16689
+ * @maximum 180
16690
+ */
16691
+ lng?: number;
16692
+ /**
16693
+ * Human-readable label (e.g., 'Düsseldorf', 'Heathrow Airport')
16694
+ */
16695
+ label?: string;
16696
+ transport_mode?: TransportMode;
16697
+ /**
16698
+ * Pre-computed GeoJSON geometry defining the proximity boundary
16699
+ */
16700
+ geometry: {
16701
+ /**
16702
+ * GeoJSON geometry type
16703
+ */
16704
+ type: 'Polygon' | 'MultiPolygon';
16705
+ /**
16706
+ * GeoJSON coordinates array
16707
+ */
16708
+ coordinates: unknown[];
16709
+ };
16710
+ })[];
16524
16711
  /**
16525
16712
  * Filter to products that can meet the buyer's performance standard requirements. Each entry specifies a metric, minimum threshold, and optionally a required vendor and standard. Products that cannot meet these thresholds or do not support the specified vendors are excluded. Use this to tell the seller upfront: 'I need DoubleVerify for viewability at 70% MRC.'
16526
16713
  */
@@ -19326,10 +19513,6 @@ export type GetAdCPCapabilitiesResponse = ProtocolEnvelope & {
19326
19513
  event_types?: ('product.created' | 'product.updated' | 'product.priced' | 'product.removed' | 'signal.created' | 'signal.updated' | 'signal.priced' | 'signal.removed' | 'wholesale_feed.bulk_change')[];
19327
19514
  };
19328
19515
  };
19329
- /**
19330
- * Transportation modes for isochrone-based catchment area calculations. Determines how travel time translates to geographic reach.
19331
- */
19332
- export type TransportMode = 'walking' | 'cycling' | 'driving' | 'public_transport';
19333
19516
  /**
19334
19517
  * Specialized capability claims an agent can make. Each specialism maps to a compliance storyboard bundle published at /compliance/{version}/specialisms/{id}/. An agent asserts specialisms it supports in get_adcp_capabilities; the AAO compliance runner executes the matching storyboards to verify the claim.
19335
19518
  */
@@ -21022,17 +21205,74 @@ export type Catchment = {
21022
21205
  coordinates: unknown[];
21023
21206
  };
21024
21207
  ext?: ExtensionObject;
21025
- } & {
21026
- [k: string]: unknown | undefined;
21027
- };
21028
- /**
21029
- * Time unit for isochrone (travel-time catchment) calculations.
21030
- */
21031
- export type TravelTimeUnit = 'min' | 'hr';
21032
- /**
21033
- * Distance unit.
21034
- */
21035
- export type DistanceUnit = 'km' | 'mi' | 'm';
21208
+ } & ({
21209
+ /**
21210
+ * Identifier for this catchment, used to reference specific catchment areas in targeting (e.g., 'walk', 'drive', 'primary').
21211
+ */
21212
+ catchment_id: string;
21213
+ /**
21214
+ * Human-readable label for this catchment (e.g., '15-min drive', '1km walking radius').
21215
+ */
21216
+ label?: string;
21217
+ /**
21218
+ * Travel time limit for isochrone calculation. The platform resolves this to a geographic boundary based on actual transportation networks, accounting for road connectivity, transit schedules, and terrain.
21219
+ */
21220
+ travel_time: {
21221
+ /**
21222
+ * Travel time limit.
21223
+ * @minimum 1
21224
+ */
21225
+ value: number;
21226
+ unit: TravelTimeUnit;
21227
+ };
21228
+ transport_mode: TransportMode;
21229
+ ext?: ExtensionObject;
21230
+ } | {
21231
+ /**
21232
+ * Identifier for this catchment, used to reference specific catchment areas in targeting (e.g., 'walk', 'drive', 'primary').
21233
+ */
21234
+ catchment_id: string;
21235
+ /**
21236
+ * Human-readable label for this catchment (e.g., '15-min drive', '1km walking radius').
21237
+ */
21238
+ label?: string;
21239
+ transport_mode?: TransportMode;
21240
+ /**
21241
+ * Simple radius from the store location. The platform draws a circle of this distance around the store's coordinates.
21242
+ */
21243
+ radius: {
21244
+ /**
21245
+ * Radius distance.
21246
+ */
21247
+ value: number;
21248
+ unit: DistanceUnit;
21249
+ };
21250
+ ext?: ExtensionObject;
21251
+ } | {
21252
+ /**
21253
+ * Identifier for this catchment, used to reference specific catchment areas in targeting (e.g., 'walk', 'drive', 'primary').
21254
+ */
21255
+ catchment_id: string;
21256
+ /**
21257
+ * Human-readable label for this catchment (e.g., '15-min drive', '1km walking radius').
21258
+ */
21259
+ label?: string;
21260
+ transport_mode?: TransportMode;
21261
+ /**
21262
+ * Pre-computed GeoJSON geometry defining the catchment boundary. Use this when the buyer has already calculated isochrones (via TravelTime, Mapbox, etc.) or has custom trade area boundaries. Supports Polygon and MultiPolygon types.
21263
+ */
21264
+ geometry: {
21265
+ /**
21266
+ * GeoJSON geometry type.
21267
+ */
21268
+ type: 'Polygon' | 'MultiPolygon';
21269
+ /**
21270
+ * GeoJSON coordinates array. For Polygon: array of linear rings. For MultiPolygon: array of polygons.
21271
+ */
21272
+ coordinates: unknown[];
21273
+ };
21274
+ ext?: ExtensionObject;
21275
+ });
21036
21276
  /**
21037
21277
  * A collection's presence on a specific publisher platform, identified by platform-specific identifiers. Enables cross-seller matching when the same collection is sold by different agents.
21038
21278
  */